示例#1
0
        public StatusTransaction skipOnStationSendManaul(int tpr_id, int tps_id, int next_mrm_id, int next_mvt_id)
        {
            try
            {
                InhCheckupDataContext cdc = new InhCheckupDataContext();

                trn_patient_regi  tpr = cdc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                trn_patient_queue tps = tpr.trn_patient_queues.Where(x => x.tps_id == tps_id).FirstOrDefault();

                Class.FunctionDataCls func = new Class.FunctionDataCls();
                updatePlanForSkip(ref tpr, tps_id);
                skipReserveCurrentQueue(ref tpr, tps_id);
                func.deleteCurrentQueue(ref cdc, ref tpr, tps_id);
                func.insertNextQueue(ref tpr, next_mrm_id, next_mvt_id);
                try
                {
                    cdc.SubmitChanges();
                    return(StatusTransaction.True);
                }
                catch (System.Data.Linq.ChangeConflictException)
                {
                    foreach (ObjectChangeConflict occ in cdc.ChangeConflicts)
                    {
                        cdc.Refresh(System.Data.Linq.RefreshMode.KeepChanges, occ.Object);
                    }
                    cdc.SubmitChanges();
                    return(StatusTransaction.True);
                }
            }
            catch (Exception ex)
            {
                Program.MessageError("ClsSkipOnStation", "skipOnStationSendManaul", ex, false);
                return(StatusTransaction.Error);
            }
        }
示例#2
0
 private void gridData_CellContentClick(object sender, DataGridViewCellEventArgs e)
 {
     if (gridData.Columns[e.ColumnIndex].Name == "colChageDoc" && e.RowIndex >= 0)
     {
         changing();
         dataCls result  = (dataCls)bindingData.Current;
         int     tpr_id  = result.tpr_id;
         bool    success = true;
         if (ableChangeDoctor(tpr_id))
         {
             frmSelectDoctor frm = new frmSelectDoctor();
             frmSelectDoctor.selectDocType type = frm.getSelectType;
             if (ableChangeDoctor(tpr_id))
             {
                 if (type == frmSelectDoctor.selectDocType.SelectedDoctor)
                 {
                     success = new Class.FunctionDataCls().changeDoctor(result.tpr_id, frm.get_mut_username, "PE");
                 }
                 else if (type == frmSelectDoctor.selectDocType.NoRequestDoctor)
                 {
                     success = new Class.FunctionDataCls().cancelPEDoctor(result.tpr_id);
                 }
             }
             else
             {
                 MessageBox.Show("ไม่สามารถเปลี่ยนแพทย์" + Environment.NewLine + "เนื่องจากได้มีการเรียกคนไข้เข้าห้องตรวจแล้ว", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
             }
         }
         else
         {
             MessageBox.Show("ไม่สามารถเปลี่ยนแพทย์" + Environment.NewLine + "เนื่องจากได้มีการเรียกคนไข้เข้าห้องตรวจแล้ว", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
         }
         changeDoctor();
     }
 }
示例#3
0
 private void btnCancel_Click(object sender, EventArgs e)
 {
     DisableBtnAll();
     try
     {
         int?           mvt_id         = Program.CurrentPatient_queue != null ? (int?)Program.CurrentPatient_queue.mvt_id : null;
         frmCancelQueue frmCancelQueue = new frmCancelQueue(tpr_id, mvt_id);
         if (frmCancelQueue.DialogResult == System.Windows.Forms.DialogResult.OK)
         {
             new ClsTCPClient().sendClearUnitDisplay();
             StatusEmptyRoom();
             Class.FunctionDataCls func = new Class.FunctionDataCls();
             lbAlertMsg.Text = func.getStringGotoNextRoom((int)tpr_id);
             new Class.ReserveSkipCls().SendAndReserve(tpr_id);
             this.tpr_id = null;
             return;
         }
         else
         {
             StatusWK();
         }
     }
     catch
     {
         lbAlertMsg.Text = "กรุณากด Cancel อีกครั้ง";
         StatusWK();
     }
 }
示例#4
0
 public StatusTransaction sendClearUnitDisplay()
 {
     try
     {
         if (PrePareData.StaticDataCls.UseUnitDisplay)
         {
             int tpr_id = 0;
             if (Program.CurrentRegis != null)
             {
                 tpr_id = Program.CurrentRegis.tpr_id;
             }
             int mhs_id = Program.CurrentSite.mhs_id;
             StatusTransaction chkVip = new Class.FunctionDataCls().chkVipType(tpr_id, mhs_id);
             if (chkVip == StatusTransaction.False)
             {
                 int mrd_id = 0;
                 if (Program.CurrentRoom != null)
                 {
                     mrd_id = Program.CurrentRoom.mrd_id;
                 }
                 StatusTransaction isCheckP = isCheckPoint(mrd_id);
                 if (isCheckP == StatusTransaction.False)
                 {
                     int?mvt_id = Program.CurrentPatient_queue.mvt_id;
                     return(sendClearUnitDisplay(tpr_id, mhs_id, mrd_id, (int)mvt_id));
                 }
                 else if (isCheckP == StatusTransaction.True)
                 {
                     return(StatusTransaction.False);
                 }
                 else
                 {
                     return(isCheckP);
                 }
             }
             else if (chkVip == StatusTransaction.True)
             {
                 return(StatusTransaction.False);
             }
             else
             {
                 return(chkVip);
             }
         }
         else
         {
             return(StatusTransaction.False);
         }
     }
     catch (Exception ex)
     {
         Program.MessageError("ClsTCPClient", "sendClearUnitDisplay()", ex, false);
         return(StatusTransaction.Error);
     }
 }
示例#5
0
        private void GridWaitingList_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (_mrm_id == null || _mrd_id == null || mut_id == null)
            {
            }
            else
            {
                if (e.RowIndex < 0)
                {
                    return;
                }
                try
                {
                    if (!_ableDoubleClick)
                    {
                        return;
                    }
                    DataGridView dgv = (DataGridView)sender;
                    Class.WaitingListCls.WaitingListDtl data = (Class.WaitingListCls.WaitingListDtl)dgv.Rows[e.RowIndex].DataBoundItem;
                    int         tpr_id  = data.tpr_id;
                    string      queueNo = "";
                    int         tps_id  = 0;
                    frmBGScreen frmbg   = new frmBGScreen();
                    frmbg.Show();
                    Application.DoEvents();

                    StatusTransaction onWaiting = new Class.FunctionDataCls().checkStatusWaiting(tpr_id, (int)_mrm_id, ref tps_id, ref queueNo);
                    frmbg.Close();
                    if (onWaiting == StatusTransaction.False)
                    {
                        _OnWaitingSuccessProcess(StatusTransaction.False, queueNo + " อยู่ในสถานะที่ไม่สามารถดำเนินการได้ กรุณาตรวจสอบ");
                    }
                    else
                    {
                        string            messageAlert = "";
                        frmManageWaiting  frmWaiting   = new frmManageWaiting();
                        StatusTransaction isCallQ      = frmWaiting.isCallQueue(tps_id, ref messageAlert);
                        if (isCallQ == StatusTransaction.True)
                        {
                        }
                        _OnWaitingSuccessProcess(isCallQ, messageAlert);
                    }
                }
                catch (Exception ex)
                {
                    Program.MessageError(this.Name, "GridWaitingList_CellDoubleClick", ex, false);
                }
                finally
                {
                    Program.RefreshWaiting = true;
                }
            }
        }
示例#6
0
 public StatusTransaction sendCallUnitDisplay()
 {
     try
     {
         try
         {
             using (InhCheckupDataContext cdc = new InhCheckupDataContext())
             {
                 var useDis = cdc.mst_project_configs.Where(x => x.mpc_code == "UseUnitDisplay").Select(x => x.mpc_value).FirstOrDefault();
                 if (!string.IsNullOrEmpty(useDis))
                 {
                     PrePareData.StaticDataCls.UseUnitDisplay = useDis == "true" ? true : false;
                 }
             }
         }
         catch
         {
         }
         if (PrePareData.StaticDataCls.UseUnitDisplay)
         {
             int tpr_id = Program.CurrentRegis.tpr_id;
             int mhs_id = Program.CurrentSite.mhs_id;
             StatusTransaction chkVip = new Class.FunctionDataCls().chkVipType(tpr_id, mhs_id);
             if (chkVip == StatusTransaction.False)
             {
                 int mrd_id = Program.CurrentRoom.mrd_id;
                 int?mvt_id = Program.CurrentPatient_queue.mvt_id;
                 return(sendCallUnitDisplay(tpr_id, mhs_id, mrd_id, (int)mvt_id));
             }
             else if (chkVip == StatusTransaction.True)
             {
                 return(StatusTransaction.False);
             }
             else
             {
                 return(chkVip);
             }
         }
         else
         {
             return(StatusTransaction.False);
         }
     }
     catch (Exception ex)
     {
         Program.MessageError("ClsTCPClient", "sendCallUnitDisplay()", ex, false);
         return(StatusTransaction.Error);
     }
 }
示例#7
0
        public void updatePendingPatientQueue(ref InhCheckupDataContext cdc, ref trn_patient_regi tpr, int mrm_id)
        {
            List <trn_patient_queue> tps = tpr.trn_patient_queues
                                           .Where(x => x.mrm_id == mrm_id).ToList();

            Class.FunctionDataCls func = new Class.FunctionDataCls();
            if (func.checkPassedCheckPointB(tpr.tpr_id))
            {
                cdc.trn_patient_queues.DeleteAllOnSubmit(tps);
                //tps.ForEach(x => x.tps_status = "CL");
            }
            else
            {
                tps.ForEach(x => x.tps_status = "PD");
            }
        }
示例#8
0
        private void GridWaitingList_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex < 0)
            {
                return;
            }
            try
            {
                if (!_ableDoubleClick)
                {
                    return;
                }

                Program.RefreshWaiting = false;
                int         tpr_id  = (int)(GridWaitingList.Rows[e.RowIndex].Cells["tpr_id"].Value);
                string      queueNo = "";
                int         tps_id  = 0;
                frmBGScreen frmbg   = new frmBGScreen();
                frmbg.Show();
                Application.DoEvents();
                StatusTransaction onWaiting = new Class.FunctionDataCls().checkStatusWaiting(tpr_id, Program.CurrentRoom.mrm_id, ref tps_id, ref queueNo);
                frmbg.Close();
                if (onWaiting == StatusTransaction.False)
                {
                    _OnWaitingSuccessProcess(StatusTransaction.False, queueNo + " อยู่ในสถานะที่ไม่สามารถดำเนินการได้ กรุณาตรวจสอบ");
                }
                else
                {
                    string            messageAlert = "";
                    frmManageWaiting  frmWaiting   = new frmManageWaiting();
                    StatusTransaction isCallQ      = frmWaiting.isCallQueue(tps_id, ref messageAlert);
                    if (isCallQ == StatusTransaction.True)
                    {
                    }
                    _OnWaitingSuccessProcess(isCallQ, messageAlert);
                }
            }
            catch (Exception ex)
            {
                Program.MessageError("UIWaitList", "GridWaitingList_CellDoubleClick", ex, false);
            }
            finally
            {
                Program.RefreshWaiting = true;
            }
        }
示例#9
0
        private void btnCallQueue_Click(object sender, EventArgs e)
        {
            StatusTransaction callQ = new Class.FunctionDataCls().callQueue(_tps_id);

            if (callQ == StatusTransaction.True)
            {
                transaction = StatusTransaction.True;
            }
            else if (callQ == StatusTransaction.False)
            {
                messageAlert = _queue_no + " ไม่สามารถดำเนินการต่อได้ กรุณาตรวจสอบอีกครั้ง";
            }
            else
            {
                transaction = callQ;
            }
            this.Close();
        }
示例#10
0
        public StatusTransaction pendingOnWaitingSendManaul(int tpr_id, int mvt_id, int mrm_id, int mhs_id, int next_mrm_id, int next_mvt_id, int tps_id)
        {
            try
            {
                InhCheckupDataContext cdc = new InhCheckupDataContext();

                trn_patient_regi  tpr = cdc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                trn_patient_queue tps = tpr.trn_patient_queues.Where(x => x.tps_id == tps_id).FirstOrDefault();

                if (tps != null && tps.tps_status == "NS" && tps.tps_ns_status == "QL")
                {
                    tpr.tpr_pending = true;
                    updatePendingPatientPlan(ref tpr, mvt_id, mrm_id, mhs_id);
                    updatePendingPatientQueue(ref cdc, ref tpr, mrm_id);
                    insertPatientPending(ref tpr, mrm_id);
                    Class.FunctionDataCls func = new Class.FunctionDataCls();
                    func.insertNextQueue(ref tpr, next_mrm_id, next_mvt_id);
                    // alert
                    try
                    {
                        cdc.SubmitChanges();
                        return(StatusTransaction.True);
                    }
                    catch (System.Data.Linq.ChangeConflictException)
                    {
                        return(StatusTransaction.NoProcess);
                    }
                }
                else
                {
                    return(StatusTransaction.NoProcess);
                }
            }
            catch (Exception ex)
            {
                Program.MessageError("ClsPendingOnStation", "pendingOnWaitingSendManaul", ex, false);
                return(StatusTransaction.Error);
            }
        }
示例#11
0
        private void DGV_Waiting_RowPrePaint(object sender, DataGridViewRowPrePaintEventArgs e)
        {
            DataGridView dgv = (DataGridView)sender;
            sp_get_waiting_room_hdrResult data = (sp_get_waiting_room_hdrResult)dgv.Rows[e.RowIndex].DataBoundItem;

            switch (data.holded)
            {
            case true:
                dgv.Rows[e.RowIndex].DefaultCellStyle.ForeColor          = Color.Red;
                dgv.Rows[e.RowIndex].DefaultCellStyle.SelectionForeColor = Color.Red;
                break;
            }
            if (mrm_code == "DC")
            {
                bool passCheckB = new Class.FunctionDataCls().checkPassedCheckPointB((int)data.tpr_id);
                bool isResult   = new Class.FunctionDataCls().checkEventDoctorResult((int)data.mvt_id);
                if (!passCheckB || isResult)
                {
                    dgv.Rows[e.RowIndex].Cells["colBtnCancelQueue"] = new DataGridViewTextBoxCell();
                    dgv.Rows[e.RowIndex].Cells["colSendToCheckB"]   = new DataGridViewTextBoxCell();
                }
            }
        }
示例#12
0
        private void cls_successCountDown(object sender, successTypeArgs e)
        {
            DisableBtnAll();

            StatusTransaction ready = CallQueue.P_CallQueueReady();

            if (ready == StatusTransaction.True)
            {
                StatusTransaction showUnit = new ClsTCPClient().sendCallUnitDisplay();
                if (showUnit == StatusTransaction.Error)
                {
                    //lbAlertMsg.Text = "เกิดความผิดพลาดทางเทคนิค ไม่สามารถแสดงผลบน unit display ได้";
                }
                Class.FunctionDataCls func = new Class.FunctionDataCls();
                resultUltrasound = func.popupUltrasoundLower();
                if (resultUltrasound == PopupUltrasoundLower.ResultPopupUltrasoundLower.BeforeStation)
                {
                    EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
                    List <int> mvt = mst.GetMstRoomEventByMrm(Program.CurrentRoom.mrm_id).Select(x => x.mvt_id).ToList();

                    Class.FunctionDataCls.sendQueueStatus result = func.sendQueueUltrasoundLower(resultUltrasound, mvt);
                    if (result == Class.FunctionDataCls.sendQueueStatus.error)
                    {
                        lbAlertMsg.Text = "เกิดความผิดพลาดทางเทคนิค ไม่สามารถส่งไป ultrasound ได้ กรุณาติดต่อผู้ดูแลระบบ";
                        AlertOutDepartment.LoadTime();
                        StatusWK();
                    }
                    else if (result == Class.FunctionDataCls.sendQueueStatus.sendSuccess)
                    {
                        new Class.logPatientFlowCls(Class.logPatientFlowCls.sendType.SendUltraSoundBefore,
                                                    (int)tpr_id,
                                                    (int)tps_id,
                                                    Program.CurrentSite.mhs_id,
                                                    Program.CurrentRoom.mrd_ename,
                                                    Program.CurrentUser.mut_username);

                        new ClsTCPClient().sendClearUnitDisplay();
                        StatusEmptyRoom();
                        lbAlertMsg.Text = func.GetStrSaveAndSend((int)tpr_id, "US", "UL");
                        this.tpr_id     = null;
                    }
                }
                else if (resultUltrasound == PopupUltrasoundLower.ResultPopupUltrasoundLower.AfterStation)
                {
                    AlertOutDepartment.LoadTime();

                    ReserveSkipCls reserveSkip = new ReserveSkipCls();
                    int?           skipRoom    = reserveSkip.CheckRoomSkip(tpr_id);
                    string         alert       = reserveSkip.MessegeAlertSkip(skipRoom);
                    StatusSendUltrasoundAfter();
                    lbAlertMsg.Text = alert;
                }
                else if (resultUltrasound == PopupUltrasoundLower.ResultPopupUltrasoundLower.AskMeLater)
                {
                    AlertOutDepartment.LoadTime();

                    ReserveSkipCls reserveSkip = new ReserveSkipCls();
                    int?           skipRoom    = reserveSkip.CheckRoomSkip(tpr_id);
                    StatusWK();
                    string alert = reserveSkip.MessegeAlertSkip(skipRoom);
                    lbAlertMsg.Text = alert;
                }
            }
            else if (ready == StatusTransaction.Error)
            {
                lbAlertMsg.Text = "กรุณากดปุ่ม Ready อีกครั้ง";
                StatusNSWR();
            }
        }
示例#13
0
        private bool ProcessSelectRoom(int select_mvt_id, int select_mrm_id, int waitingTime)
        {
            EmrClass.GetDataMasterCls mst  = new EmrClass.GetDataMasterCls();
            Class.FunctionDataCls     func = new Class.FunctionDataCls();
            int          tpr_id            = Program.CurrentRegis.tpr_id;
            int          mrm_id            = Program.CurrentRoom.mrm_id;
            mst_room_hdr currentRoom       = mst.GetMstRoomHdr(mrm_id);

            if (currentRoom != null && currentRoom.mrm_code == "EM" && Program.CurrentRoom.mrd_type == 'N')
            {
                mst_event selectRoom = mst.GetMstEvent(select_mvt_id);
                if (func.checkEyeDropper(tpr_id))
                {
                    if (selectRoom != null)
                    {
                        if (selectRoom.mvt_code == "EM")
                        {
                            if (MessageBox.Show("มีการเลือก Eye Dropper ซึ่งมีการรอ 15 นาที" + Environment.NewLine + "คุณต้องการดำเนินการต่อหรือไม่?", "Warning!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                            {
                                return(true);
                            }
                            else
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            var timelimit = Program.GetLimitTime("EDT");
                            if (waitingTime > timelimit)
                            {
                                if (MessageBox.Show("ห้องที่คุณเลือก มีเวลารอเกิน " + timelimit.ToString() + " นาที" + Environment.NewLine + "คุณต้องการดำเนินการต่อหรือไม่?", "Warning!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                                {
                                    return(true);
                                }
                                else
                                {
                                    return(false);
                                }
                            }
                            else
                            {
                                return(true);
                            }
                        }
                    }
                    return(false);
                }
                else
                {
                    if (selectRoom != null)
                    {
                        if (selectRoom.mvt_code != "EM")
                        {
                            if (MessageBox.Show("ส่งห้องที่ไม่ใช่ Eye Doctor คุณต้องการจะดำเนินการต่อหรือไม่?", "Warning!", MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
                            {
                                return(true);
                            }
                            else
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            return(true);
                        }
                    }
                    return(false);
                }
            }
            else
            {
                return(true);
            }
        }
示例#14
0
        public void ShowWaiting(int no, string txtSearch, int mhs_id, string roomCode)
        {
            using (InhCheckupDataContext cdc = new InhCheckupDataContext())
            {
                Class.FunctionDataCls func = new Class.FunctionDataCls();
                string   mhs_code          = cdc.mst_hpc_sites.Where(x => x.mhs_id == mhs_id).Select(x => x.mhs_code).FirstOrDefault();
                DateTime dateNow           = Program.GetServerDateTime();
                DateTime ResetDate         = new DateTime(dateNow.Year, dateNow.Month, dateNow.Day, 0, 0, 0);
                TimeSpan timenow           = dateNow.TimeOfDay;

                if (roomCode == "RG")
                {
                    List <gridProp> result = cdc.vw_tmp_arrives.Where(x => (x.flag_success == null || x.flag_success == 'N') &&
                                                                      x.ctloc_code == Program.CurrentSite.mhs_code &&
                                                                      x.paadm_admdate.Value.Date == dateNow.Date)
                                             .OrderBy(x => x.appt_arrivaltime)
                                             .Select(x => new gridProp
                    {
                        hn_no        = x.papmi_no,
                        patient_name = x.ttl_desc + x.papmi_name + " " + x.papmi_name2
                    }).ToList();
                    int number = 1;
                    result.ForEach(x => x.no = number++);
                    gridBS.DataSource        = result;
                }
                else
                {
                    using (InhCheckupDataContext contxt = new InhCheckupDataContext())
                    {
                        mst_room_hdr mstRoom = contxt.mst_room_hdrs
                                               .Where(x => x.mhs_id == mhs_id &&
                                                      x.mrm_status == 'A' &&
                                                      x.mrm_code == roomCode)
                                               .FirstOrDefault();

                        if (mstRoom != null)
                        {
                            List <sp_get_waiting_room_hdrResult> result = contxt.sp_get_waiting_room_hdr(mstRoom.mrm_id).ToList();
                            List <gridProp> data = result.Where(x => (txtSearch == null || txtSearch == string.Empty ? true
                                                                     : (x.tpt_hn_no.Contains(txtSearch) ||
                                                                        (x.tpt_hn_no.Replace("-", "").Contains(txtSearch)) ||
                                                                        (x.tpt_othername.ToUpper()).Contains(txtSearch.ToUpper()))))
                                                   .OrderBy(x => x.priority)
                                                   .Select((x, inx) => new gridProp
                            {
                                no           = inx + 1,
                                tpr_id       = (int)x.tpr_id,
                                tps_id       = (int)x.tps_id,
                                mhs_id       = mhs_id,
                                mvt_id       = x.mvt_id,
                                mrm_id       = mstRoom.mrm_id,
                                hn_no        = x.tpt_hn_no,
                                patient_name = x.tpt_othername,
                                callstatus   = x.holded == true ? "HD" : null
                            }).ToList();
                            gridBS.DataSource = data;
                            DGV_Waiting.AutoGenerateColumns = false;
                            DGV_Waiting.DataSource          = gridBS;

                            lbtitle1.Text = string.Format(no.ToString() + ".Waiting " + mstRoom.mrm_ename + "(Total {0})", gridBS.Count.ToString());
                            if (roomCode == "RG" || roomCode == "BM" || roomCode == "SC" || roomCode == "PH")
                            {
                                DGV_Waiting.Columns["colBtnCancelQueue"].Visible = false;
                                DGV_Waiting.Columns["colSendToCheckB"].Visible   = false;
                            }
                            else if (roomCode == "DC")
                            {
                                foreach (DataGridViewRow row in DGV_Waiting.Rows)
                                {
                                    gridProp gp = (gridProp)gridBS[row.Index];
                                    bool     checkDoctorResult = (cdc.mst_events.Where(x => x.mvt_id == gp.mvt_id).Select(x => x.mvt_code).FirstOrDefault() == "DC");
                                    if (!func.checkPassedCheckPointB(gp.tpr_id) || checkDoctorResult)
                                    {
                                        row.Cells["colBtnCancelQueue"] = new DataGridViewTextBoxCell();
                                        row.Cells["colSendToCheckB"]   = new DataGridViewTextBoxCell();
                                    }
                                }
                            }
                        }
                    }
                    //    List<gridProp> result = cdc.trn_patient_queues.Where(x => x.tps_status == "NS" &&
                    //                                                              (mhs_id == 0
                    //                                                               ? true
                    //                                                               : x.mst_room_hdr.mhs_id == mhs_id) &&
                    //                                                               x.mst_room_hdr.mrm_code == roomCode &&
                    //                                                               x.tps_create_date.Value.Date == dateNow.Date &&
                    //                                                               (txtSearch == null || txtSearch == string.Empty
                    //                                                               ? true
                    //                                                               : (x.trn_patient_regi.trn_patient.tpt_hn_no.Contains(txtSearch) ||
                    //                                                                 (x.trn_patient_regi.trn_patient.tpt_hn_no.Replace("-", "").Contains(txtSearch)) ||
                    //                                                                 (x.trn_patient_regi.trn_patient.tpt_othername.ToUpper()).Contains(txtSearch.ToUpper()))))
                    //                                                  .GroupBy(x => x.tpr_id)
                    //                                                  .Select(x => x.OrderByDescending(y => y.tps_update_date).FirstOrDefault())
                    //                                                  .Select(x => new gridProp
                    //                                                   {
                    //                                                       tpr_id = x.tpr_id,
                    //                                                       tps_id = x.tps_id,
                    //                                                       mhs_id = x.mst_room_hdr.mhs_id,
                    //                                                       mvt_id = x.mvt_id,
                    //                                                       mrm_id = x.mrm_id,
                    //                                                       hn_no = x.trn_patient_regi.trn_patient.tpt_hn_no,
                    //                                                       patient_name = x.trn_patient_regi.trn_patient.tpt_othername,
                    //                                                       callstatus = x.tps_call_status == "HD" ? "HD" : null,

                    //                                                       // Add Data for Order BY
                    //                                                       vip_hpc = (x.trn_patient_regi.trn_patient.tpt_vip_hpc == true) ? "Y" : "N",
                    //                                                       hold_flag = (x.tps_call_status == "HD" && (timenow.Subtract(x.tps_hold_date.Value.TimeOfDay)).TotalMinutes >= 0) ? "Y" : "N",
                    //                                                       bmSeq = Convert.ToInt32((x.tps_bm_seq != null) ? x.tps_bm_seq : 99),
                    //                                                       ordDate = Convert.ToDateTime((x.tps_call_status == "HD") ? x.tps_hold_date : x.tps_create_date),
                    //                                                       RTN_Nurse = x.trn_patient_regi.tpr_return_screening,
                    //                                                       type_EyeNurse = ((from t in cdc.mst_events where t.mvt_id == x.mvt_id select t.mvt_code).FirstOrDefault() == "EN") ? "Y" : "N",
                    //                                                       type_Lower = x.trn_patient_regi.tpr_miss_lower

                    //                                                   }).ToList();

                    //    // Add Order each Station
                    //    if (mhs_code == "01HPC2" || mhs_code == "01HPC3")
                    //    {
                    //        if (roomCode == "SC")
                    //        {
                    //            result = result.OrderByDescending(x => x.vip_hpc).ThenByDescending(x => x.RTN_Nurse).ThenByDescending(x => x.hold_flag).ThenBy(x => x.bmSeq).ThenBy(x => x.ordDate).ToList();
                    //        }
                    //        else if (roomCode == "EM")
                    //        {
                    //            result = result.OrderByDescending(x => x.type_EyeNurse).ThenByDescending(x => x.vip_hpc).ThenByDescending(x => x.hold_flag).ThenBy(x => x.bmSeq).ThenBy(x => x.ordDate).ToList();
                    //        }
                    //        else if (roomCode == "US")
                    //        {
                    //            result = result.OrderByDescending(x => x.type_Lower).ThenByDescending(x => x.vip_hpc).ThenByDescending(x => x.hold_flag).ThenBy(x => x.bmSeq).ThenBy(x => x.ordDate).ToList();
                    //        }
                    //        else
                    //        {
                    //            result = result.OrderByDescending(x => x.vip_hpc).ThenByDescending(x => x.hold_flag).ThenBy(x => x.bmSeq).ThenBy(x => x.ordDate).ToList();
                    //        }
                    //    }
                    //    else
                    //    {
                    //        if (roomCode == "EM")
                    //        {
                    //            result = result.OrderByDescending(x => x.type_EyeNurse).ThenByDescending(x => x.hold_flag).ThenBy(x => x.bmSeq).ThenBy(x => x.ordDate).ToList();
                    //        }
                    //        else if (roomCode == "US")
                    //        {
                    //            result = result.OrderByDescending(x => x.type_Lower).ThenByDescending(x => x.hold_flag).ThenBy(x => x.bmSeq).ThenBy(x => x.ordDate).ToList();
                    //        }
                    //        else
                    //        {
                    //            result = result.OrderByDescending(x => x.hold_flag).ThenBy(x => x.bmSeq).ThenBy(x => x.ordDate).ToList();
                    //        }
                    //    }

                    //    int number = 1;
                    //    result.ForEach(x => x.no = number++);
                    //    gridBS.DataSource = result;


                    //}
                    //DGV_Waiting.AutoGenerateColumns = false;
                    //DGV_Waiting.DataSource = gridBS;
                    //mst_room_hdr mrm = cdc.mst_room_hdrs.Where(x => x.mrm_code == roomCode && x.mhs_id == mhs_id).FirstOrDefault();
                    //if (mrm != null)
                    //{
                    //    lbtitle1.Text = string.Format(no.ToString() + ".Waiting " + mrm.mrm_ename + "(Total {0})", gridBS.Count.ToString());
                    //    if (roomCode == "RG" || roomCode == "BM" || roomCode == "SC" || roomCode == "PH")
                    //    {
                    //        DGV_Waiting.Columns["colBtnCancelQueue"].Visible = false;
                    //        DGV_Waiting.Columns["colSendToCheckB"].Visible = false;
                    //    }
                    //    else if (roomCode == "DC")
                    //    {
                    //        foreach (DataGridViewRow row in DGV_Waiting.Rows)
                    //        {
                    //            gridProp gp = (gridProp)gridBS[row.Index];
                    //            bool checkDoctorResult = (cdc.mst_events.Where(x => x.mvt_id == gp.mvt_id).Select(x => x.mvt_code).FirstOrDefault() == "DC");
                    //            if (!func.checkPassedCheckPointB(gp.tpr_id) || checkDoctorResult)
                    //            {
                    //                row.Cells["colBtnCancelQueue"] = new DataGridViewTextBoxCell();
                    //                row.Cells["colSendToCheckB"] = new DataGridViewTextBoxCell();
                    //            }
                    //        }
                    //    }
                    //}
                    //else
                    //{
                    //    lbtitle1.Text = string.Empty;
                    //}
                }
            }
        }
示例#15
0
        public StatusTransaction pendingOnStationSendAuto(int tpr_id, int mvt_id, int mrm_id, int mhs_id, int tps_id)
        {
            try
            {
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    Class.clsLogSendAuto logCls   = new Class.clsLogSendAuto();
                    List <log_send_auto> log_auto = null;
                    try
                    {
                        List <vw_patient_room> vw_pa_room = logCls.getLogSendAuto(tpr_id);
                        if (vw_pa_room != null)
                        {
                            log_auto = vw_pa_room.Select(x => new log_send_auto
                            {
                                tpr_id         = x.tpr_id,
                                process_type   = "P",
                                process_tps_id = tps_id,
                                login_flag     = x.login_flag,
                                mhs_code       = x.mhs_code,
                                mhs_ename      = x.mhs_ename,
                                mrm_ename      = x.mrm_ename,
                                mrm_id         = x.mrm_id,
                                mrm_seq_room   = x.mrm_seq_room,
                                mvt_code       = x.mvt_code,
                                mvt_id         = x.mvt_id,
                                mvt_type_cate  = x.mvt_type_cate.ToString(),
                                mze_code       = x.mze_code,
                                mze_ename      = x.mze_ename,
                                mze_id         = x.mze_id,
                                patient_vip    = x.patient_vip,
                                send_type      = x.send_type,
                                site_rm        = x.site_rm,
                                skip_seq       = x.skip_seq,
                                skip_type      = x.skip_type,
                                waiting_person = x.waiting_person,
                                waiting_time   = x.waiting_time
                            }).ToList();
                        }
                    }
                    catch (Exception ex)
                    {
                        Program.MessageError("log_send_auto", "", ex, false);
                    }

                    List <int>        list_mvt_id = new Class.FunctionDataCls().get_mvt_id(mrm_id);
                    StatusTransaction result      = CallQueue.PSendAutoAllRoom(Class.SendType.Pending, mrm_id, list_mvt_id, tps_id);
                    if (result == StatusTransaction.SendCheckB)
                    {
                        if (Program.CurrentSite.mhs_extra_pe_type == true && Program.CurrentRegis.tpr_pe_site2 == 'N' && (Program.CurrentRegis.tpr_pd_pe_site2 == null || Program.CurrentRegis.tpr_pd_pe_site2 == false))
                        {
                            return(StatusTransaction.ReSendManualSite2);
                        }
                        else
                        {
                            string            messege = "";
                            StatusTransaction returnB = new Class.SendQueue().ReturnToCheckB(Class.SendType.Pending, tpr_id, mrm_id, tps_id, list_mvt_id, ref messege);
                            if (returnB == StatusTransaction.True)
                            {
                                //new ClsTCPClient().sendClearUnitDisplay();
                                //new Class.FunctionDataCls().SendToCheckPointB(tpr_id, tps_id);
                            }
                            System.Windows.Forms.MessageBox.Show("ระบบไม่สามารถส่งห้องที่เหลือแบบอัตโนมัติได้ ผู้รับบริการจะถูกส่งไป Check point B", "Send Queue Alert", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Information);
                            return(returnB);
                        }
                    }
                    else if (result == StatusTransaction.True)
                    {
                        try
                        {
                            if (log_auto != null)
                            {
                                string queue_no   = cdc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).Select(x => x.tpr_queue_no).FirstOrDefault();
                                int?   log_tps_id = logCls.get_tps_id(tpr_id);
                                int    index      = 1;
                                log_auto.ForEach(x => { x.tps_id = log_tps_id; x.seq_id = index++; x.tpr_queue_no = queue_no; });
                                cdc.log_send_autos.InsertAllOnSubmit(log_auto);
                                cdc.SubmitChanges();
                            }
                        }
                        catch (Exception ex)
                        {
                            Program.MessageError("log_send_auto", "", ex, false);
                        }
                        return(result);
                    }
                    else
                    {
                        return(result);
                    }
                }
                //InhCheckupDataContext cdc = new InhCheckupDataContext();

                //trn_patient_regi tpr = cdc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                //tpr.tpr_pending = true;
                //updatePendingPatientPlan(ref tpr, mvt_id, mrm_id, mhs_id);
                //cdc.SubmitChanges();
                //updatePendingPatientQueue(ref cdc, ref tpr, mrm_id);
                //insertPatientPending(ref tpr, mrm_id);
                //CallQueue.PSendAutoAllRoom(true);
                //// alert
                //try
                //{
                //    cdc.SubmitChanges();
                //}
                //catch (System.Data.Linq.ChangeConflictException)
                //{
                //    foreach (ObjectChangeConflict occ in cdc.ChangeConflicts)
                //    {
                //        cdc.Refresh(System.Data.Linq.RefreshMode.KeepChanges, occ.Object);
                //    }
                //    cdc.SubmitChanges();
                //}
                //return true;
            }
            catch (Exception ex)
            {
                Program.MessageError("ClsPendingOnStation", "pendingOnStationSendAuto", ex, false);
                return(StatusTransaction.Error);
            }
        }
示例#16
0
 private StatusTransaction SendManualPendingCheckB(ref trn_patient_regi tpr, ref string messegeSend, string currentRoom)
 {
     try
     {
         StatusTransaction remainStation = new Class.FunctionDataCls().checkRemainEvent(tpr.tpr_id);
         if (remainStation == StatusTransaction.True)
         {
             frmChoiceRoom frm = new frmChoiceRoom();
             if (frm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
             {
                 int mrm_id = frm.GetMrmID;
                 int mvt_id = frm.mvtID;
                 new TransactionQueueCls().SendToRoom(ref tpr, ref messegeSend, mrm_id, mvt_id);
                 return(StatusTransaction.True);
             }
             else
             {
                 return(StatusTransaction.False);
             }
         }
         else if (remainStation == StatusTransaction.False)
         {
             if (tpr.tpr_PRM_check == true && tpr.tpr_pe_status == "RS" && currentRoom == "PT")
             {
                 frmChoicePRM frm    = new frmChoicePRM();
                 var          result = frm.ShowDialog();
                 if (result == DialogResult.Yes)
                 {
                     if (Program.CurrentSite.mhs_extra_pe_type == true && tpr.tpr_pe_site2 == 'N' && (tpr.tpr_pd_pe_site2 == null || tpr.tpr_pd_pe_site2 == false))
                     {
                         new TransactionQueueCls().SendToCheckC(ref tpr, ref messegeSend, true);
                         new TransactionQueueCls().SendToBook(ref tpr, ref messegeSend);
                         return(StatusTransaction.True);
                     }
                     else
                     {
                         new TransactionQueueCls().SendToCheckC(ref tpr, ref messegeSend);
                         return(StatusTransaction.True);
                     }
                 }
                 else
                 {
                     new TransactionQueueCls().SendToBook(ref tpr, ref messegeSend);
                     return(StatusTransaction.True);
                 }
             }
             else
             {
                 if (Program.CurrentSite.mhs_extra_pe_type == true && tpr.tpr_pe_site2 == 'N' && (tpr.tpr_pd_pe_site2 == null || tpr.tpr_pd_pe_site2 == false))
                 {
                     new TransactionQueueCls().SendToCheckC(ref tpr, ref messegeSend, true);
                     new TransactionQueueCls().SendToBook(ref tpr, ref messegeSend);
                     return(StatusTransaction.True);
                 }
                 else
                 {
                     new TransactionQueueCls().SendToCheckC(ref tpr, ref messegeSend);
                     return(StatusTransaction.True);
                 }
             }
         }
         else
         {
             return(StatusTransaction.Error);
         }
     }
     catch (Exception ex)
     {
         Program.MessageError("SendManual", "SendManualPendingCheckB", ex, false);
         return(StatusTransaction.Error);
     }
 }
示例#17
0
        private StatusTransaction SendToStation(int tpr_id, int?end_tps_id, int end_mrm_id, int send_mrm_id, int send_mvt_id, ref string messegeSend)
        {
            try
            {
                DateTime dateNow = Program.GetServerDateTime();
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    try
                    {
                        cdc.Connection.Open();
                        DbTransaction tran = cdc.Connection.BeginTransaction();
                        cdc.Transaction = tran;

                        int?send_tps_id = null;

                        StatusTransaction get_tps = get_send_to_tps_id(tpr_id, send_mrm_id, send_mvt_id, ref send_tps_id);
                        trn_patient_queue send_patient_queue;
                        if (get_tps == StatusTransaction.True)
                        {
                            if (send_tps_id != null)
                            {
                                send_patient_queue                 = cdc.trn_patient_queues.Where(x => x.tps_id == send_tps_id).FirstOrDefault();
                                send_patient_queue.mrm_id          = send_mrm_id;
                                send_patient_queue.mvt_id          = send_mvt_id;
                                send_patient_queue.mrd_id          = null;
                                send_patient_queue.tps_end_date    = null;
                                send_patient_queue.tps_start_date  = null;
                                send_patient_queue.tps_status      = "NS";
                                send_patient_queue.tps_ns_status   = "QL";
                                send_patient_queue.tps_update_by   = Program.CurrentUser.mut_username;
                                send_patient_queue.tps_update_date = dateNow;
                            }
                            else
                            {
                                send_patient_queue                 = new trn_patient_queue();
                                send_patient_queue.tpr_id          = tpr_id;
                                send_patient_queue.tps_create_by   = Program.CurrentUser.mut_username;
                                send_patient_queue.tps_create_date = dateNow;
                                send_patient_queue.mrm_id          = send_mrm_id;
                                send_patient_queue.mvt_id          = send_mvt_id;
                                send_patient_queue.mrd_id          = null;
                                send_patient_queue.tps_end_date    = null;
                                send_patient_queue.tps_start_date  = null;
                                send_patient_queue.tps_status      = "NS";
                                send_patient_queue.tps_ns_status   = "QL";
                                send_patient_queue.tps_update_by   = Program.CurrentUser.mut_username;
                                send_patient_queue.tps_update_date = dateNow;
                                cdc.trn_patient_queues.InsertOnSubmit(send_patient_queue);
                            }
                        }
                        else
                        {
                            messegeSend = "เกิดความผิดพลาดของระบบ กรุณากดส่งอีกครั้ง";
                            return(StatusTransaction.Error);
                        }

                        List <int>        list_tpl_id = new List <int>();
                        StatusTransaction get_tpl     = get_list_tpl_id(tpr_id, end_mrm_id, ref list_tpl_id);
                        if (get_tpl == StatusTransaction.True)
                        {
                            if (list_tpl_id != null && list_tpl_id.Count() > 0)
                            {
                                List <trn_patient_plan> list_patient_plan = cdc.trn_patient_plans.Where(x => list_tpl_id.Contains(x.tpl_id)).ToList();
                                list_patient_plan.ForEach(x => x.tpl_status = 'P');
                            }
                            else
                            {
                                messegeSend = "เกิดความผิดพลาดของระบบ กรุณากดส่งอีกครั้ง";
                                return(StatusTransaction.Error);
                            }
                        }
                        else
                        {
                            return(StatusTransaction.Error);
                        }

                        if (end_tps_id != null && end_tps_id > 0)
                        {
                            trn_patient_queue end_patient_queue = cdc.trn_patient_queues.Where(x => x.tps_id == end_tps_id).FirstOrDefault();
                            if (end_patient_queue != null)
                            {
                                end_patient_queue.mrd_id          = Program.CurrentRoom.mrd_id;
                                end_patient_queue.tps_send_by     = Program.CurrentUser.mut_username;
                                end_patient_queue.tps_end_date    = dateNow;
                                end_patient_queue.tps_status      = "ED";
                                end_patient_queue.tps_ns_status   = null;
                                end_patient_queue.tps_update_by   = Program.CurrentUser.mut_username;
                                end_patient_queue.tps_update_date = dateNow;
                            }
                            else
                            {
                                messegeSend = "เกิดความผิดพลาดของระบบ กรุณากดส่งอีกครั้ง";
                                return(StatusTransaction.Error);
                            }
                        }
                        else
                        {
                            messegeSend = "เกิดความผิดพลาดของระบบ กรุณากดส่งอีกครั้ง";
                            return(StatusTransaction.Error);
                        }

                        cdc.SubmitChanges();
                        cdc.Transaction.Commit();
                        messegeSend = new Class.FunctionDataCls().getStringGotoNextRoom(tpr_id);
                        return(StatusTransaction.True);
                    }
                    catch (Exception ex)
                    {
                        cdc.Transaction.Rollback();
                        Program.MessageError("SendManaulCls", "SendToRoom", ex, false);
                        return(StatusTransaction.Error);
                    }
                    finally
                    {
                        cdc.Connection.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                Program.MessageError("SendManaulCls", "SendToRoom", ex, false);
                return(StatusTransaction.Error);
            }
        }
示例#18
0
        public StatusTransaction SendManualOnStationPendingCheckB(int tpr_id, int mrm_id, ref string messegeSend)
        {
            using (InhCheckupDataContext cdc = new InhCheckupDataContext())
            {
                try
                {
                    string            currentRoom = new EmrClass.GetDataMasterCls().GetMstRoomHdrByMrd_id(Program.CurrentRoom.mrd_id).mrm_code;
                    trn_patient_regi  tpr         = cdc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                    StatusTransaction result      = SendManualPendingCheckB(ref tpr, ref messegeSend, currentRoom);
                    if (result == StatusTransaction.True)
                    {
                        tpr.tpr_pending_cancel_onday = false;

                        StatusTransaction checkPatientOnCheckB = new Class.FunctionDataCls().checkStatusPatientOnCheckPointB(tpr_id, mrm_id);
                        if (checkPatientOnCheckB == StatusTransaction.True)
                        {
                            new TransactionPlanCls().endPlan(ref tpr, mrm_id);
                            new TransactionQueueCls().endQueue(ref tpr);
                            try
                            {
                                cdc.SubmitChanges();
                            }
                            catch (System.Data.Linq.ChangeConflictException)
                            {
                                foreach (ObjectChangeConflict occ in cdc.ChangeConflicts)
                                {
                                    cdc.Refresh(System.Data.Linq.RefreshMode.KeepChanges, occ.Object);
                                }
                            }
                        }
                        else if (checkPatientOnCheckB == StatusTransaction.False)
                        {
                            MessageBox.Show("สถานะของคนไข้ ไม่ได้อยู่ในสถานะที่จะ Send Manual ได้", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            return(StatusTransaction.False);
                        }
                        new Class.ReserveSkipCls().SendAndReserve(tpr_id);
                        return(StatusTransaction.True);
                    }
                    else if (result == StatusTransaction.False)
                    {
                        StatusTransaction rePendingCB = new Class.FunctionDataCls().rePendingCheckB(ref tpr);
                        if (rePendingCB == StatusTransaction.Error)
                        {
                            return(StatusTransaction.Error);
                        }
                        try
                        {
                            cdc.SubmitChanges();
                        }
                        catch (System.Data.Linq.ChangeConflictException)
                        {
                            foreach (ObjectChangeConflict occ in cdc.ChangeConflicts)
                            {
                                cdc.Refresh(System.Data.Linq.RefreshMode.KeepChanges, occ.Object);
                            }
                        }
                        return(StatusTransaction.False);
                    }
                    else
                    {
                        StatusTransaction rePendingCB = new Class.FunctionDataCls().rePendingCheckB(ref tpr);
                        if (rePendingCB == StatusTransaction.Error)
                        {
                            return(StatusTransaction.Error);
                        }
                        try
                        {
                            cdc.SubmitChanges();
                        }
                        catch (System.Data.Linq.ChangeConflictException)
                        {
                            foreach (ObjectChangeConflict occ in cdc.ChangeConflicts)
                            {
                                cdc.Refresh(System.Data.Linq.RefreshMode.KeepChanges, occ.Object);
                            }
                        }
                        return(StatusTransaction.Error);
                    }
                }
                catch (Exception ex)
                {
                    Program.MessageError("SendManaulCls", "SendManualOnStationPendingCheckB", ex, false);
                    return(StatusTransaction.Error);
                }
            }
        }
示例#19
0
        public StatusTransaction SendManualOnCheckB(int tpr_id, int mrm_id, ref string messageSend)
        {
            Program.RefreshWaiting = false;
            try
            {
                StatusTransaction checkRemain = new Class.FunctionDataCls().checkRemainEvent(tpr_id);
                if (checkRemain == StatusTransaction.True)
                {
                    using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                    {
                        try
                        {
                            cdc.Connection.Open();
                            DbTransaction tran = cdc.Connection.BeginTransaction();
                            cdc.Transaction = tran;

                            string            currentRoom = new EmrClass.GetDataMasterCls().GetMstRoomHdrByMrd_id(Program.CurrentRoom.mrd_id).mrm_code;
                            trn_patient_regi  tpr         = cdc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                            StatusTransaction result      = SendManual(ref tpr, ref messageSend, currentRoom);
                            if (result == StatusTransaction.True)
                            {
                                StatusTransaction checkPatientOnCheckB = new Class.FunctionDataCls().checkStatusPatientOnCheckPointB(tpr_id, mrm_id);
                                if (checkPatientOnCheckB == StatusTransaction.True || checkPatientOnCheckB == StatusTransaction.NoProcess)
                                {
                                    new TransactionPlanCls().endPlan(ref tpr, mrm_id);
                                    new TransactionQueueCls().endQueue(ref tpr);
                                    cdc.SubmitChanges();
                                    cdc.Transaction.Commit();
                                    return(StatusTransaction.True);
                                }
                                else if (checkPatientOnCheckB == StatusTransaction.False)
                                {
                                    MessageBox.Show("คนไข้ไม่ได้อยู่ในสถานะ ที่จะ Send Manaul ได้", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                    return(StatusTransaction.False);
                                }
                                else
                                {
                                    return(checkPatientOnCheckB);
                                }
                            }
                            else
                            {
                                return(result);
                            }
                        }
                        catch (Exception ex)
                        {
                            cdc.Transaction.Rollback();
                            Program.MessageError("SendManaulCls", "SendManualOnStation", ex, false);
                            return(StatusTransaction.Error);
                        }
                        finally
                        {
                            cdc.Connection.Close();
                        }
                    }
                }
                else if (checkRemain == StatusTransaction.False)
                {
                    return(new SendQueue().SendToCheckC(tpr_id, mrm_id, ref messageSend));
                }
                else
                {
                    return(checkRemain);
                }
            }
            catch (Exception ex)
            {
                Program.MessageError("SendManaulCls", "SendManualOnStation", ex, false);
                return(StatusTransaction.Error);
            }
            finally
            {
                Program.RefreshWaiting = true;
            }
        }
示例#20
0
        private void btnOK_Click(object sender, EventArgs e)
        {
            int tpr_id = Program.CurrentRegis.tpr_id;
            StatusTransaction checkPatientOnCheckB = new Class.FunctionDataCls().checkStatusPatientOnCheckPointB(tpr_id, Program.CurrentRoom.mrm_id);

            if (checkPatientOnCheckB == StatusTransaction.True)
            {
                Class.ClsPendingOnStation cls = new Class.ClsPendingOnStation();
                List <int> list_mvt_id        = new List <int>();
                foreach (DataGridViewRow dr in gridStation.Rows)
                {
                    if (dr.Cells[0].Value != null)
                    {
                        if ((bool)dr.Cells[Colselect.Name].Value == true)
                        {
                            int mvt_id = Convert.ToInt32(dr.Cells["colmvtid"].Value);
                            list_mvt_id.Add(mvt_id);
                        }
                    }
                }
                //int mhs_id = Program.CurrentSite.mhs_id;
                StatusTransaction pandingOnCheckB = new Class.ClsPendingOnStation().pendingPatientCheckpointB(list_mvt_id);
                if (pandingOnCheckB == StatusTransaction.Error)
                {
                    MessageBox.Show("Alert.", "กรุณา Cancel อีกครั้ง", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else if (pandingOnCheckB == StatusTransaction.True)
                {
                    this.DialogResult = DialogResult.OK;
                }
            }
            else if (checkPatientOnCheckB == StatusTransaction.False)
            {
                MessageBox.Show("คนไข้ไม่ได้อยู่ในสถานะ ที่จะยกเลิก Station ได้", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
                this.DialogResult = DialogResult.Cancel;
            }

            //string strReason="";
            //strReason = CBReason.SelectedValue.ToString();
            //if (txtReason.Text.Trim().Length > 0)
            //{
            //    strReason += txtReason.Text;
            //}
            //if (strReason.Trim() == "")
            //{
            //    txtReason.Focus();
            //    return;
            //}

            //bool isupdate = false;

            //for (int iRow = 0; iRow <= dataGridView2.Rows.Count - 1; iRow++)
            //{

            //    if (dataGridView2[0, iRow].Value != null && Convert.ToBoolean(dataGridView2[0, iRow].Value) == true)
            //    {
            //        int mvtid = Convert.ToInt32(dataGridView2["colmvtid", iRow].Value);
            //        int mrmid = Convert.ToInt32(dataGridView2["colRoomid", iRow].Value);

            //        //noina modufy

            //         int count_te = (from data in dbc.mst_room_hdrs where data.mrm_id == mrmid && data.mrm_code == "TE" select data).Count();
            //         if (count_te == 1)
            //         {
            //             var objpp = (from t1 in dbc.trn_patient_plans
            //                          where t1.tpr_id == Program.CurrentRegis.tpr_id
            //                          && t1.mvt_id == mvtid
            //                          orderby t1.tpr_id descending
            //                          select t1).ToList();
            //             if (objpp != null)
            //             {
            //                 foreach (var dr in objpp)
            //                 {
            //                     dr.tpl_status = 'C';
            //                     dbc.SubmitChanges();
            //                 }
            //             }
            //         }
            //         else
            //         {
            //             //หา mvtid ของ mrmid ชุดนั้นๆ ออกมา ก่อน แล้ว นำไปอัพเดต ที trn_patient_plans tpl_status = C
            //             var objmre = (from mre in dbc.mst_room_events where mre.mrm_id == mrmid select mre).ToList();
            //             if (objmre != null)
            //             {
            //                 foreach (var dr in objmre)
            //                 {
            //                     var objpp = (from t1 in dbc.trn_patient_plans
            //                                  where t1.tpr_id == Program.CurrentRegis.tpr_id
            //                                  && t1.mvt_id == dr.mvt_id
            //                                  orderby t1.tpr_id descending
            //                                  select t1).ToList();
            //                     if (objpp != null)
            //                     {
            //                         foreach (var dr2 in objpp)
            //                         {
            //                             dr2.tpl_status = 'C';
            //                             dbc.SubmitChanges();
            //                         }
            //                     }
            //                 }
            //         }

            //        }

            //code orginal comment by noina
            //trn_patient_plan objpp = (from t1 in dbc.trn_patient_plans
            //                          where t1.tpr_id == Program.CurrentRegis.tpr_id
            //                          && t1.mvt_id == mvtid
            //                          orderby t1.tpr_id descending
            //                          select t1).FirstOrDefault() ;

            //objpp.tpl_status = 'C';
            //end

            //        isupdate = true;
            //    }
            //}

            //noina comment
            //if (isupdate)
            //{//Updte trn_patient_queues Reason
            //    int mvtid = Program.Getmvt_id(dbc, "CB");
            //    DateTime dtnow = Program.GetServerDateTime();
            //    trn_patient_queue currentQueue=(from t1 in dbc.trn_patient_queues
            //                                    where t1.tpr_id==Program.CurrentPatient_queue.tpr_id
            //                                    && t1.mvt_id == mvtid
            //                                    select t1).FirstOrDefault();
            //    if (currentQueue != null)
            //    {
            //        currentQueue.tps_cancel_remark = strReason;
            //        currentQueue.tps_update_by = Program.CurrentUser.mut_username;
            //        currentQueue.tps_update_date = dtnow;
            //        int objcount = (from t1 in dbc.trn_patient_plans
            //                                  where t1.tpr_id == Program.CurrentRegis.tpr_id
            //                                  && t1.tpl_status=='N'
            //                                  orderby t1.tpr_id descending
            //                                  select t1).Count();
            //        if (objcount == 0)
            //        {
            //            currentQueue.tps_status = "CL";
            //            currentQueue.tps_ns_status = null;
            //            currentQueue.tps_start_date = null;
            //            currentQueue.tps_end_date = null;
            //            currentQueue.tps_cancel_date = dtnow;

            //            Program.CurrentPatient_queue = null;
            //            Program.CurrentRegis = null;
            //        }
            //            dbc.SubmitChanges();
            //    }
            //}
        }
示例#21
0
        private void btnSendAuto_Click(object sender, EventArgs e)
        {
            DisableBtnAll();
            DateTime startDate = DateTime.Now;

            this.AutoScrollPosition = new Point(0, 0);
            List <int> mvt_id = new List <int>();

            if (uu.enable && uu.visible && uu.check && uu.autoCheck)
            {
                mvt_id.Add(uu.mvt_id);
            }
            if (ul.enable && ul.visible && ul.check && ul.autoCheck)
            {
                mvt_id.Add(ul.mvt_id);
            }
            if (ub.enable && ub.visible && ub.check && ub.autoCheck)
            {
                mvt_id.Add(ub.mvt_id);
            }
            if (uw.enable && uw.visible && uw.check && uw.autoCheck)
            {
                mvt_id.Add(uw.mvt_id);
            }
            if (mvt_id.Count() == 0)
            {
                lbAlertMsg.Text = "กรุณาเลือก Order ที่ต้องการตรวจเพิ่มอย่างน้อย 1 รายการ";
                StatusWK();
            }
            else
            {
                if (CheckMinLower())
                {
                    if (SkipLower())
                    {
                        Class.FunctionDataCls     func = new Class.FunctionDataCls();
                        EmrClass.GetDataMasterCls mst  = new EmrClass.GetDataMasterCls();
                        frmBGScreen frmbg = new frmBGScreen();
                        frmbg.Show();
                        Application.DoEvents();
                        try
                        {
                            if (new Class.FunctionDataCls().ChkSendAutoNewModule(Program.CurrentRegis))
                            {
                                string msgAlert = "";
                                bool   isPopup  = false;
                                QueueClass.SendAutoCls.ResultSendQueue result = new QueueClass.SendAutoCls().SendAuto((int)tps_id, mvt_id, user, ref msgAlert, ref isPopup);
                                if (result == QueueClass.SendAutoCls.ResultSendQueue.Error)
                                {
                                    lbAlertMsg.Text = msgAlert;
                                    StatusWK();
                                }
                                else if (result == QueueClass.SendAutoCls.ResultSendQueue.OldRoom)
                                {
                                    lbAlertMsg.Text = msgAlert;
                                    StatusWK();
                                }
                                else
                                {
                                    lbAlertMsg.Visible = true;
                                    if (result == QueueClass.SendAutoCls.ResultSendQueue.SendComplete)
                                    {
                                        new Class.logPatientFlowCls(Class.logPatientFlowCls.sendType.SendAuto,
                                                                    (int)tpr_id,
                                                                    (int)tps_id,
                                                                    Program.CurrentSite.mhs_id,
                                                                    Program.CurrentRoom.mrd_ename,
                                                                    Program.CurrentUser.mut_username,
                                                                    startDate);

                                        new ClsTCPClient().sendClearUnitDisplay();
                                        new Class.ReserveSkipCls().SendAndReserve(tpr_id);
                                        StatusEmptyRoom();
                                        this.tpr_id = null;
                                        if (isPopup)
                                        {
                                            MessageBox.Show(msgAlert, "EMR Checkup.");
                                        }
                                        else
                                        {
                                            lbAlertMsg.Text = msgAlert;
                                        }
                                    }
                                    else
                                    {
                                        if (isPopup)
                                        {
                                            MessageBox.Show(msgAlert, "EMR Checkup.");
                                        }
                                        else
                                        {
                                            lbAlertMsg.Text = msgAlert;
                                        }
                                    }
                                }
                                //using (Service.WS_Checkup ws = new Service.WS_Checkup())
                                //{
                                //    WS_PathWay.SendAutoResult result = ws.SendAuto((int)tps_id, mvt_id.ToArray(), user.mut_username, Program.CurrentSite.mhs_id);
                                //    if (result.SendResult == WS_PathWay.Result.Error)
                                //    {
                                //        lbAlertMsg.Text = result.AlertMsg;
                                //        StatusWK();
                                //    }
                                //    else
                                //    {
                                //        if (result.SendResult == WS_PathWay.Result.Complete)
                                //        {
                                //            new ClsTCPClient().sendClearUnitDisplay();
                                //            new Class.ReserveSkipCls().SendAndReserve(tpr_id);
                                //            StatusEmptyRoom();
                                //            this.tpr_id = null;
                                //            lbAlertMsg.Text = result.AlertMsg;
                                //        }
                                //        else
                                //        {
                                //            lbAlertMsg.Text = result.AlertMsg;
                                //            StatusWK();
                                //        }
                                //    }
                                //}
                            }
                            else
                            {
                                StatusTransaction result = CallQueue.SendAutoOnStation(mvt_id);
                                if (result == StatusTransaction.True || result == StatusTransaction.SendCheckB)
                                {
                                    new Class.logPatientFlowCls(Class.logPatientFlowCls.sendType.SendAuto,
                                                                (int)tpr_id,
                                                                (int)tps_id,
                                                                Program.CurrentSite.mhs_id,
                                                                Program.CurrentRoom.mrd_ename,
                                                                Program.CurrentUser.mut_username,
                                                                startDate);

                                    new ClsTCPClient().sendClearUnitDisplay();
                                    lbAlertMsg.Visible = true;
                                    new Class.ReserveSkipCls().SendAndReserve(tpr_id);
                                    lbAlertMsg.Text = new Class.FunctionDataCls().getStringGotoNextRoom((int)tpr_id);
                                    StatusEmptyRoom();
                                    this.tpr_id = null;
                                }
                                else if (result == StatusTransaction.Error)
                                {
                                    lbAlertMsg.Text = "โปรดกด Send Auto อีกครั้ง";
                                    StatusWK();
                                }
                                else if (result == StatusTransaction.False)
                                {
                                    lbAlertMsg.Text = "Save Data Complete.";
                                    StatusWK();
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            lbAlertMsg.Text = ex.Message;
                            StatusWK();
                        }
                        finally
                        {
                            frmbg.Close();
                        }
                    }
                    else
                    {
                        StatusWK();
                    }
                }
                else
                {
                    StatusWK();
                }
            }
        }
示例#22
0
        private void DGV_Waiting_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (((DataGridView)sender).Columns[e.ColumnIndex].Name == "colBtnCancelQueue")
            {
                gridProp gp = (gridProp)gridBS.Current;
                if (checkStatusCanSend(gp.tps_id))
                {
                    Class.FunctionDataCls func = new Class.FunctionDataCls();
                    if (func.checkPassedCheckPointB(gp.tpr_id))
                    {
                        frmCancelQueue frmCancelQueue = new frmCancelQueue(gp.tpr_id, gp.mvt_id, gp.mrm_id, gp.mhs_id, gp.tps_id, false, frmCancelQueue.useform.onWaiting);

                        if (frmCancelQueue.DialogResult == System.Windows.Forms.DialogResult.OK)
                        {
                            string alert = func.getStringGotoNextRoom(gp.tpr_id);
                            MessageBox.Show(alert);
                            _cancelQueueHandler(null);
                            new Class.ReserveSkipCls().SendAndReserve(gp.tpr_id);
                            return;
                        }
                        else if (frmCancelQueue.DialogResult == System.Windows.Forms.DialogResult.Cancel)
                        {
                            return;
                        }
                    }
                }
                else
                {
                    MessageBox.Show("คนไข้ไม่ได้อยู่ในสถานะที่ดำเนินการ skip ได้", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    _cancelQueueHandler(null);
                }
            }
            else if (((DataGridView)sender).Columns[e.ColumnIndex].Name == "colSendToCheckB")
            {
                gridProp gp = (gridProp)gridBS.Current;
                if (checkStatusCanSend(gp.tps_id))
                {
                    DialogResult result = MessageBox.Show("คุณต้องการส่ง คนไข้ไปยัง Check Point B หรือไม่?", "Alert.", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2);
                    if (result == DialogResult.Yes)
                    {
                        Class.SendToCheckBCls sendB = new Class.SendToCheckBCls();

                        StatusTransaction complete = sendB.SendToCheckBOnWaiting(gp.tpr_id, (int)gp.mrm_id);
                        if (complete == StatusTransaction.True)
                        {
                            try
                            {
                                new Class.logPatientFlowCls(Class.logPatientFlowCls.sendType.SendCheckB,
                                                            gp.tpr_id,
                                                            gp.tps_id,
                                                            (Program.CurrentSite == null ? 0 : Program.CurrentSite.mhs_id),
                                                            "WaitingList",
                                                            (Program.CurrentUser == null ? "" : Program.CurrentUser.mut_username));
                            }
                            catch (Exception ex)
                            {
                                Program.MessageError(this.Name, "logPatientFlowCls", ex, false);
                            }
                            MessageBox.Show("Sent To Checkpoint B Complete.", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            _sendTocheckBHandler(null);
                        }
                        else if (complete == StatusTransaction.NoProcess)
                        {
                            MessageBox.Show("คนไข้ไม่ได้อยู่ในสถานะที่จะส่งไปยัง checkpoint B ได้", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            _sendTocheckBHandler(null);
                        }
                        else if (complete == StatusTransaction.Error)
                        {
                            MessageBox.Show("ระบบเกิดความผิดพลาดไม่สามารถส่งไปยัง checkpoin B ได้ กรุณาทำอีกครั้ง", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            _sendTocheckBHandler(null);
                        }
                    }
                }
                else
                {
                    MessageBox.Show("คนไข้ไม่ได้อยู่ในสถานะที่จะส่งไปยัง checkpoint B ได้", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    _cancelQueueHandler(null);
                }
            }
        }
示例#23
0
        private void btnSendAuto_Click(object sender, EventArgs e)
        {
            DisableBtnAll();
            DateTime startDate = DateTime.Now;

            this.AutoScrollPosition = new Point(0, 0);
            //tps_id = Program.CurrentPatient_queue.tps_id;

            Class.FunctionDataCls     func = new Class.FunctionDataCls();
            EmrClass.GetDataMasterCls mst  = new EmrClass.GetDataMasterCls();
            frmBGScreen frmbg = new frmBGScreen();

            frmbg.Show();
            Application.DoEvents();

            try
            {
                int patientMvt = paRegis.trn_patient_queues.Where(x => x.tps_id == tps_id)
                                 .Select(x => (int)x.mvt_id).FirstOrDefault();
                using (InhCheckupDataContext contxt = new InhCheckupDataContext())
                {
                    string mvt_code = contxt.mst_events.Where(x => x.mvt_id == patientMvt).Select(x => x.mvt_code).FirstOrDefault();
                    if (mvt_code == "PE")
                    {
                        if (new Class.FunctionDataCls().checkPassedCheckPointB((int)this.tpr_id))
                        {
                            this.PatientEvent = PatientEventStatus.PEAfterCheckB;
                        }
                        else
                        {
                            this.PatientEvent = PatientEventStatus.PEBeforeCheckB;
                        }
                    }
                    else
                    {
                        this.PatientEvent = PatientEventStatus.Result;
                    }
                }

                if (saveData())
                {
                    if (this.PatientEvent == PatientEventStatus.PEBeforeCheckB)
                    {
                        bool sent = new QueueClass.TransactionQueueCls().SendQueueDoctorPEBeforeCheckB((int)tpr_id, (int)tps_id, user.mut_username);
                        if (sent)
                        {
                            lbAlertMsg.Text = new Class.FunctionDataCls().getStringGotoNextRoom((int)tpr_id);
                            StatusEmptyRoom();
                        }
                        else
                        {
                            lbAlertMsg.Text = "โปรดกด Send Auto อีกครั้ง";;
                            StatusWK();
                        }
                    }
                    else if (this.PatientEvent == PatientEventStatus.PEAfterCheckB)
                    {
                        if (resultUltrasound == PopupUltrasoundLower.ResultPopupUltrasoundLower.AfterStation)
                        {
                            List <int> mvt = mst.GetMstRoomEventByMrm(Program.CurrentRoom.mrm_id).Select(x => x.mvt_id).ToList();

                            Class.FunctionDataCls.sendQueueStatus result = func.sendQueueUltrasoundLower(resultUltrasound, mvt);
                            if (result == Class.FunctionDataCls.sendQueueStatus.error)
                            {
                                lbAlertMsg.Text = "เกิดความผิดพลาดทางเทคนิค ไม่สามารถส่งไป ultrasound ได้ กรุณาติดต่อผู้ดูแลระบบ";
                                StatusWK();
                            }
                            else if (result == Class.FunctionDataCls.sendQueueStatus.sendSuccess)
                            {
                                new ClsTCPClient().sendClearUnitDisplay();
                                lbAlertMsg.Text = func.GetStrSaveAndSend((int)tpr_id, "US", "UL");
                                StatusEmptyRoom();
                                this.tpr_id = null;
                            }
                        }
                        else
                        {
                            if (new Class.FunctionDataCls().ChkSendAutoNewModule(Program.CurrentRegis))
                            {
                                string     msgAlert    = "";
                                bool       isPopup     = false;
                                List <int> list_mvt_id = new List <int> {
                                    patientMvt
                                };
                                QueueClass.SendAutoCls.ResultSendQueue result = new QueueClass.SendAutoCls().SendAuto((int)tps_id, list_mvt_id, user, ref msgAlert, ref isPopup);
                                if (result == QueueClass.SendAutoCls.ResultSendQueue.Error)
                                {
                                    lbAlertMsg.Text = msgAlert;
                                    StatusWK();
                                }
                                else
                                {
                                    lbAlertMsg.Visible = true;
                                    if (result == QueueClass.SendAutoCls.ResultSendQueue.SendComplete)
                                    {
                                        new Class.logPatientFlowCls(Class.logPatientFlowCls.sendType.SendAuto,
                                                                    (int)tpr_id,
                                                                    (int)tps_id,
                                                                    Program.CurrentSite.mhs_id,
                                                                    Program.CurrentRoom.mrd_ename,
                                                                    Program.CurrentUser.mut_username,
                                                                    startDate);

                                        new ClsTCPClient().sendClearUnitDisplay();
                                        new Class.ReserveSkipCls().SendAndReserve(tpr_id);
                                        StatusEmptyRoom();
                                        this.tpr_id = null;
                                        if (isPopup)
                                        {
                                            MessageBox.Show(msgAlert, "EMR Checkup.");
                                        }
                                        else
                                        {
                                            lbAlertMsg.Text = msgAlert;
                                        }
                                    }
                                    else
                                    {
                                        if (isPopup)
                                        {
                                            MessageBox.Show(msgAlert, "EMR Checkup.");
                                        }
                                        else
                                        {
                                            lbAlertMsg.Text = msgAlert;
                                        }
                                    }
                                }
                            }
                            else
                            {
                                StatusTransaction result = CallQueue.SendAutoOnStation();
                                if (result == StatusTransaction.True || result == StatusTransaction.SendCheckB)
                                {
                                    new Class.logPatientFlowCls(Class.logPatientFlowCls.sendType.SendAuto,
                                                                (int)tpr_id,
                                                                (int)tps_id,
                                                                Program.CurrentSite.mhs_id,
                                                                Program.CurrentRoom.mrd_ename,
                                                                Program.CurrentUser.mut_username,
                                                                startDate);

                                    new ClsTCPClient().sendClearUnitDisplay();
                                    lbAlertMsg.Visible = true;
                                    new Class.ReserveSkipCls().SendAndReserve(tpr_id);
                                    lbAlertMsg.Text = new Class.FunctionDataCls().getStringGotoNextRoom((int)tpr_id);
                                    StatusEmptyRoom();
                                    this.tpr_id = null;
                                }
                                else if (result == StatusTransaction.Error)
                                {
                                    lbAlertMsg.Text = "โปรดกด Send Auto อีกครั้ง";
                                    StatusWK();
                                }
                                else if (result == StatusTransaction.False)
                                {
                                    lbAlertMsg.Text = "Save Data Complete.";
                                    StatusWK();
                                }
                            }
                        }
                    }
                    else if (this.PatientEvent == PatientEventStatus.Result)
                    {
                        bool sent = new QueueClass.TransactionQueueCls().SendQueueDoctorResult((int)tps_id, user.mut_username);
                        if (sent)
                        {
                            lbAlertMsg.Text = "Sent To Checkpoint C.";
                            StatusEmptyRoom();
                        }
                        else
                        {
                            lbAlertMsg.Text = "Save Data Incomplete. Please Try Again.";
                            StatusWK();
                        }
                    }
                }
                else
                {
                    lbAlertMsg.Text = "Save Data Incomplete. Please Try Again.";
                    StatusWK();
                }
            }
            catch (Exception ex)
            {
                lbAlertMsg.Text = ex.Message;
                StatusWK();
            }
            frmbg.Close();
        }
示例#24
0
        private void btnSendAuto_Click(object sender, EventArgs e)
        {
            DisableBtnAll();
            DateTime startDate = DateTime.Now;

            this.AutoScrollPosition = new Point(0, 0);

            Class.FunctionDataCls     func = new Class.FunctionDataCls();
            EmrClass.GetDataMasterCls mst  = new EmrClass.GetDataMasterCls();
            frmBGScreen frmbg = new frmBGScreen();

            frmbg.Show();
            Application.DoEvents();

            try
            {
                if (resultUltrasound == PopupUltrasoundLower.ResultPopupUltrasoundLower.AfterStation)
                {
                    List <int> mvt = mst.GetMstRoomEventByMrm(Program.CurrentRoom.mrm_id).Select(x => x.mvt_id).ToList();

                    Class.FunctionDataCls.sendQueueStatus result = func.sendQueueUltrasoundLower(resultUltrasound, mvt);
                    if (result == Class.FunctionDataCls.sendQueueStatus.error)
                    {
                        lbAlertMsg.Text = "เกิดความผิดพลาดทางเทคนิค ไม่สามารถส่งไป ultrasound ได้ กรุณาติดต่อผู้ดูแลระบบ";
                        StatusWK();
                    }
                    else if (result == Class.FunctionDataCls.sendQueueStatus.sendSuccess)
                    {
                        new ClsTCPClient().sendClearUnitDisplay();
                        lbAlertMsg.Text = func.GetStrSaveAndSend((int)tpr_id, "US", "UL");
                        StatusEmptyRoom();
                        this.tpr_id = null;
                    }
                }
                else
                {
                    if (new Class.FunctionDataCls().ChkSendAutoNewModule(Program.CurrentRegis))
                    {
                        string msgAlert = "";
                        bool   isPopup  = false;
                        QueueClass.SendAutoCls.ResultSendQueue result = new QueueClass.SendAutoCls().SendAuto((int)tps_id, user, ref msgAlert, ref isPopup);
                        if (result == QueueClass.SendAutoCls.ResultSendQueue.Error)
                        {
                            lbAlertMsg.Text = msgAlert;
                            StatusWK();
                        }
                        else
                        {
                            lbAlertMsg.Visible = true;
                            if (result == QueueClass.SendAutoCls.ResultSendQueue.SendComplete)
                            {
                                new Class.logPatientFlowCls(Class.logPatientFlowCls.sendType.SendAuto,
                                                            (int)tpr_id,
                                                            (int)tps_id,
                                                            Program.CurrentSite.mhs_id,
                                                            Program.CurrentRoom.mrd_ename,
                                                            Program.CurrentUser.mut_username,
                                                            startDate);

                                new ClsTCPClient().sendClearUnitDisplay();
                                new Class.ReserveSkipCls().SendAndReserve(tpr_id);
                                StatusEmptyRoom();
                                this.tpr_id = null;
                                if (isPopup)
                                {
                                    MessageBox.Show(msgAlert, "EMR Checkup.");
                                }
                                else
                                {
                                    lbAlertMsg.Text = msgAlert;
                                }
                            }
                            else
                            {
                                if (isPopup)
                                {
                                    MessageBox.Show(msgAlert, "EMR Checkup.");
                                }
                                else
                                {
                                    lbAlertMsg.Text = msgAlert;
                                }
                            }
                        }
                    }
                    else
                    {
                        StatusTransaction result = CallQueue.SendAutoOnStation();
                        if (result == StatusTransaction.True || result == StatusTransaction.SendCheckB)
                        {
                            new Class.logPatientFlowCls(Class.logPatientFlowCls.sendType.SendAuto,
                                                        (int)tpr_id,
                                                        (int)tps_id,
                                                        Program.CurrentSite.mhs_id,
                                                        Program.CurrentRoom.mrd_ename,
                                                        Program.CurrentUser.mut_username,
                                                        startDate);

                            new ClsTCPClient().sendClearUnitDisplay();
                            lbAlertMsg.Visible = true;
                            new Class.ReserveSkipCls().SendAndReserve(tpr_id);
                            lbAlertMsg.Text = new Class.FunctionDataCls().getStringGotoNextRoom((int)tpr_id);
                            StatusEmptyRoom();
                            this.tpr_id = null;
                        }
                        else if (result == StatusTransaction.Error)
                        {
                            lbAlertMsg.Text = "โปรดกด Send Auto อีกครั้ง";
                            StatusWK();
                        }
                        else if (result == StatusTransaction.False)
                        {
                            lbAlertMsg.Text = "Save Data Complete.";
                            StatusWK();
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                lbAlertMsg.Text = ex.Message;
                StatusWK();
            }
            frmbg.Close();
        }
示例#25
0
        private void DGV_Waiting_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            DataGridView dgv = (DataGridView)sender;

            if (dgv.Columns[e.ColumnIndex].Name == "colBtnCancelQueue")
            {
                sp_get_waiting_room_hdrResult data = (sp_get_waiting_room_hdrResult)dgv.Rows[e.RowIndex].DataBoundItem;
                if (checkStatusCanSend((int)data.tps_id))
                {
                    Class.FunctionDataCls func = new Class.FunctionDataCls();
                    if (func.checkPassedCheckPointB((int)data.tpr_id))
                    {
                        frmCancelQueue frmCancelQueue = new frmCancelQueue((int)data.tpr_id, (int)data.mvt_id, mrm_id, mhs_id, (int)data.tps_id, false, frmCancelQueue.useform.onWaiting);

                        if (frmCancelQueue.DialogResult == System.Windows.Forms.DialogResult.OK)
                        {
                            string alert = func.getStringGotoNextRoom((int)data.tpr_id);
                            MessageBox.Show(alert);
                            _OnCompleteAction(false);
                            new Class.ReserveSkipCls().SendAndReserve((int)data.tpr_id);
                            return;
                        }
                        else if (frmCancelQueue.DialogResult == System.Windows.Forms.DialogResult.Cancel)
                        {
                            _OnCompleteAction(true);
                            return;
                        }
                    }
                }
                else
                {
                    MessageBox.Show("คนไข้ไม่ได้อยู่ในสถานะที่ดำเนินการ skip ได้", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    _OnCompleteAction(true);
                }
            }
            else if (((DataGridView)sender).Columns[e.ColumnIndex].Name == "colSendToCheckB")
            {
                sp_get_waiting_room_hdrResult data = (sp_get_waiting_room_hdrResult)dgv.Rows[e.RowIndex].DataBoundItem;
                if (checkStatusCanSend((int)data.tps_id))
                {
                    DialogResult result = MessageBox.Show("คุณต้องการส่ง คนไข้ไปยัง Check Point B หรือไม่?", "Alert.", MessageBoxButtons.YesNo, MessageBoxIcon.Information, MessageBoxDefaultButton.Button2);
                    if (result == DialogResult.Yes)
                    {
                        Class.SendToCheckBCls sendB = new Class.SendToCheckBCls();

                        StatusTransaction complete = sendB.SendToCheckBOnWaiting((int)data.tpr_id, (int)mrm_id);
                        if (complete == StatusTransaction.True)
                        {
                            MessageBox.Show("Sent To Checkpoint B Complete.", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            _OnCompleteAction(false);
                        }
                        else if (complete == StatusTransaction.NoProcess)
                        {
                            MessageBox.Show("คนไข้ไม่ได้อยู่ในสถานะที่จะส่งไปยัง checkpoint B ได้", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            _OnCompleteAction(true);
                        }
                        else if (complete == StatusTransaction.Error)
                        {
                            MessageBox.Show("ระบบเกิดความผิดพลาดไม่สามารถส่งไปยัง checkpoin B ได้ กรุณาทำอีกครั้ง", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            _OnCompleteAction(true);
                        }
                    }
                }
                else
                {
                    MessageBox.Show("คนไข้ไม่ได้อยู่ในสถานะที่จะส่งไปยัง checkpoint B ได้", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    _OnCompleteAction(true);
                }
            }
        }