예제 #1
0
        private void newWaitingListStationUC1_OnWaitingSuccessProcess(object sender, StatusTransaction isCallQueue, string e)
        {
            this.AutoScrollPosition = new Point(0, 0);
            lbAlertMsg.Text         = e;
            if (isCallQueue == StatusTransaction.True)
            {
                DisableBtnAll();
                frmBGScreen frmbg = new frmBGScreen();
                frmbg.Show();
                Application.DoEvents();

                if (Program.CurrentRegis != null)
                {
                    this.tpr_id = Program.CurrentRegis.tpr_id;
                    this.tps_id = Program.CurrentPatient_queue.tps_id;
                    clsCountDown.startCountDown(0, clsCountDown.GetTimeCountDown());
                    StatusNSWR();
                }
                else
                {
                    lbAlertMsg.Text = "No patient on queue!";
                    StatusEmptyRoom();
                }
                frmbg.Close();
            }
        }
예제 #2
0
 private void _OnWaitingSuccessProcess(StatusTransaction isCallQueue, string e)
 {
     // Make sure someone is listening to event
     if (OnWaitingSuccessProcess == null)
     {
         return;
     }
     OnWaitingSuccessProcess(this, isCallQueue, e);
 }
예제 #3
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);
     }
 }
예제 #4
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;
                }
            }
        }
예제 #5
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;
            }
        }
예제 #6
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();
        }
예제 #7
0
 public StatusTransaction SendToCheckC(int tpr_id, int mrm_id, ref string messegeSend)
 {
     try
     {
         int tps_id = Program.CurrentPatient_queue.tps_id;
         StatusTransaction sendC = SendToCheckC(tpr_id, mrm_id, tps_id, ref messegeSend);
         if (sendC == StatusTransaction.True)
         {
             callLab(tpr_id);
         }
         return(sendC);
     }
     catch (Exception ex)
     {
         Program.MessageError("SendQueue", "SendToCheckC", ex, false);
         return(StatusTransaction.Error);
     }
 }
예제 #8
0
        public static Transaction CreateTransaction(this Employee employee, Customer customer, Store store,
                                                    double amount, double discount, StatusTransaction statusTransaction)
        {
            var temp = new Transaction
            {
                Employee  = employee,
                Store     = store,
                Customer  = customer,
                Amount    = amount,
                Status    = statusTransaction,
                CreatedBy = employee
            };

            temp.Total    = temp.TransactionItems.Sum(t => (t.Stock.Item.CostPrice + t.Stock.AddedPrice) * t.Quantity);
            temp.Tax      = temp.Total * temp.Store.TaxRate;
            temp.Discount = (temp.Total * temp.Store.DiscountRate) + discount;
            temp.Change   = temp.Amount - (temp.Total - temp.Discount);
            return(temp.Save());
        }
예제 #9
0
        private void btnCallQueue_Click(object sender, EventArgs e)
        {
            DisableBtnAll();
            this.AutoScrollPosition = new Point(0, 0);

            frmBGScreen frmbg = new frmBGScreen();

            frmbg.Show();
            try
            {
                //noina
                StatusTransaction callQ = CallQueue.P_CallQueueWaitReady();
                //end noina

                if (callQ == StatusTransaction.Error)
                {
                    lbAlertMsg.Text      = "กรุณากด Call Queue อีกครั้ง";
                    btnCallQueue.Enabled = true;
                }
                else
                {
                    if (Program.CurrentRegis != null)
                    {
                        this.tpr_id = Program.CurrentRegis.tpr_id;
                        clsCountDown.startCountDown(0, clsCountDown.GetTimeCountDown());
                        StatusNSWR();
                    }
                    else
                    {
                        lbAlertMsg.Text = "No patient on queue!";
                        StatusEmptyRoom();
                    }
                }
            }
            catch (Exception ex)
            {
                Program.MessageError(this.Name, "btnCallQueue_Click", ex, false);
            }
            finally
            {
                frmbg.Close();
            }
        }
예제 #10
0
        private void btnImport_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("คำเตือน!! การ Import มีผลกระทบต่อระบบ Queue คุณต้องการ Import หรือไม่?", "Warning!!", MessageBoxButtons.YesNo) == System.Windows.Forms.DialogResult.No)
            {
                return;
            }
            List <int> mvt_id = new List <int>();

            foreach (DataGridViewRow row in gridStation.Rows)
            {
                try
                {
                    bool val = Convert.ToBoolean(row.Cells["colChk"].Value);
                    if (val)
                    {
                        int mvt = Convert.ToInt32(row.Cells["col_mvt_id"].Value);
                        mvt_id.Add(mvt);
                    }
                }
                catch (Exception ex)
                {
                    Program.MessageError(this.Name, "btnImport_Click", ex, false);
                }
            }

            StatusTransaction tran = new EmrClass.ImportPatientToBookCls().importPatient((int)_tpr_id, mvt_id);

            if (tran == StatusTransaction.True)
            {
                status = StatusTransaction.True;
                this.Close();
            }
            else if (tran == StatusTransaction.Error)
            {
                status  = StatusTransaction.Error;
                _tpr_id = null;
            }
        }
예제 #11
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);
                }
            }
        }
예제 #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
        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;
            }
        }
예제 #14
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();
        }
예제 #15
0
 private void uiWaitList1_OnWaitingSuccessProcess(object sender, StatusTransaction isCallQueue, string e)
 {
     _OnWaitingSuccessProcess(isCallQueue, e);
 }
예제 #16
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);
                }
            }
        }
예제 #17
0
        private void btnSaveLab_Click(object sender, EventArgs e)
        {
            try
            {
                Cursor.Current = Cursors.WaitCursor;
                string   username = Program.CurrentUser == null ? "" : Program.CurrentUser.mut_username;
                DateTime dateNow  = Program.GetServerDateTime();
                foreach (DataGridViewRow row in dgvEnList.Rows)
                {
                    if (Convert.ToBoolean(row.Cells["Select"].FormattedValue))
                    {
                        int?tpr_id = null;
                        ImportPatient(ref tpr_id, row.Cells["EN"].Value.ToString());
                        StatusTransaction tran = importPatient((int)tpr_id);
                        //merge to main en
                        using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                        {
                            var tpegNew     = cdc.trn_patient_ass_grps.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                            var tpegCurrent = cdc.trn_patient_ass_grps.Where(x => x.tpr_id == _tprIDCurrent).FirstOrDefault();
                            foreach (var hdrNew in tpegNew.trn_patient_ass_hdrs)
                            {
                                //add lab header
                                bool isMergeHdr = true;
                                var  hdrCurrent = tpegCurrent.trn_patient_ass_hdrs.Where(x => x.tpeh_order_code == hdrNew.tpeh_order_code).FirstOrDefault();
                                if (hdrCurrent == null)//new Hdr
                                {
                                    isMergeHdr = false;
                                    hdrCurrent = new trn_patient_ass_hdr
                                    {
                                        tpeh_order_code    = hdrNew.tpeh_order_code,
                                        tpeh_order_name    = hdrNew.tpeh_order_name,
                                        tpeh_create_by     = username,
                                        tpeh_create_date   = dateNow,
                                        tpeh_summary       = hdrNew.tpeh_summary,
                                        tpeh_pat_education = hdrNew.tpeh_pat_education,
                                        tpeh_status        = hdrNew.tpeh_status,
                                        tpeh_update_by     = username,
                                        tpeh_update_date   = dateNow
                                    };
                                    tpegCurrent.trn_patient_ass_hdrs.Add(hdrCurrent);
                                }
                                //end add lab header
                                foreach (var dtlNew in hdrNew.trn_patient_ass_dtls)
                                {
                                    var dtlCurrent = hdrCurrent.trn_patient_ass_dtls.Where(x => x.tped_lab_code == dtlNew.tped_lab_code && x.tped_lab_AddLabEN == row.Cells["EN"].Value.ToString()).FirstOrDefault();
                                    if (dtlCurrent == null)
                                    {
                                        dtlCurrent = new trn_patient_ass_dtl
                                        {
                                            tped_lab_code    = dtlNew.tped_lab_code,
                                            tped_lab_name    = dtlNew.tped_lab_name,
                                            tped_create_by   = username,
                                            tped_create_date = dateNow
                                        };
                                        hdrCurrent.trn_patient_ass_dtls.Add(dtlCurrent);
                                    }
                                    dtlCurrent.tped_lab_value         = dtlNew.tped_lab_value;
                                    dtlCurrent.mlr_id                 = dtlNew.mlr_id;
                                    dtlCurrent.tped_summary           = dtlNew.tped_summary;
                                    dtlCurrent.tped_lab_unit          = dtlNew.tped_lab_unit;
                                    dtlCurrent.tped_lab_nrange        = dtlNew.tped_lab_nrange;
                                    dtlCurrent.tped_lab_result_eng    = dtlNew.tped_lab_result_eng;
                                    dtlCurrent.tped_lab_result_thai   = dtlNew.tped_lab_result_thai;
                                    dtlCurrent.tped_status            = dtlNew.tped_status;
                                    dtlCurrent.tped_update_by         = username;
                                    dtlCurrent.tped_update_date       = dateNow;
                                    dtlCurrent.tped_lab_result_status = "DF";
                                    dtlCurrent.tped_lab_AddLabEN      = row.Cells["EN"].Value.ToString();
                                }
                                //compute tpeh_pat_education
                                if (isMergeHdr)
                                {
                                    //var edu = hdrCurrent.trn_patient_ass_dtls.Where(x => x.tped_summary == 'A' && !string.IsNullOrEmpty(x.tped_lab_result_thai)).Select(x => x.tped_lab_result_thai).ToList();
                                    var edu = hdrCurrent.trn_patient_ass_dtls.Where(x => x.tped_summary == 'A' && !string.IsNullOrEmpty(x.tped_lab_result_thai)).Select(x => x.tped_lab_result_thai).Distinct().ToList();
                                    hdrCurrent.tpeh_pat_education = string.Join(", ", edu);
                                }
                            }
                            cdc.SubmitChanges();//for each header
                        }
                    }
                }

                MessageBox.Show("Save completed");
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
            finally
            {
                Cursor.Current = Cursors.Default;
                this.Close();
            }
        }
예제 #18
0
        private void btnSendAuto_Click(object sender, EventArgs e)
        {
            try
            {
                StatusTransaction updateLower = UpdatedLower();
                if (updateLower == StatusTransaction.True)
                {
                    StatusTransaction success = StatusTransaction.NoProcess;
                    if (rdSkip.Checked)
                    {
                        Class.ClsSkipOnStation skip = new Class.ClsSkipOnStation();
                        //success = skip.skipOnStationSendAuto();
                        success = skip.skipOnStationSendAuto((int)_tpr_id, (int)_mrm_id, (int)_tps_id);
                    }
                    else if (rdPending.Checked)
                    {
                        Class.ClsPendingOnStation pend = new Class.ClsPendingOnStation();
                        //success = pend.pendingOnStationSendAuto();
                        success = pend.pendingOnStationSendAuto((int)_tpr_id, (int)_mvt_id, (int)_mrm_id, (int)_mhs_id, (int)_tps_id);
                    }

                    if (success == StatusTransaction.True)
                    {
                        if (rdSkip.Checked)
                        {
                            new Class.logPatientFlowCls(Class.logPatientFlowCls.sendType.SkipAuto,
                                                        (int)_tpr_id,
                                                        (int)_tps_id,
                                                        Program.CurrentSite.mhs_id,
                                                        Program.CurrentRoom.mrd_ename,
                                                        Program.CurrentUser.mut_username);
                        }
                        else if (rdPending.Checked)
                        {
                            new Class.logPatientFlowCls(Class.logPatientFlowCls.sendType.PendingAuto,
                                                        (int)_tpr_id,
                                                        (int)_tps_id,
                                                        Program.CurrentSite.mhs_id,
                                                        Program.CurrentRoom.mrd_ename,
                                                        Program.CurrentUser.mut_username);
                        }

                        Program.CurrentRegis         = null;
                        Program.CurrentPatient_queue = null;
                        this.DialogResult            = System.Windows.Forms.DialogResult.OK;
                    }
                    else if (success == StatusTransaction.ReSendManualSite2)
                    {
                        MessageBox.Show("ไม่สามารถดำเนินการ send auto ได้ กรุณาเลือกห้องที่จะส่งอีกครั้ง", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else
                    {
                        MessageBox.Show("กรุณาดำเนินการอีกครั้ง", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        this.DialogResult = System.Windows.Forms.DialogResult.Retry;
                        //return error
                    }
                }
                else if (updateLower == StatusTransaction.Error)
                {
                    MessageBox.Show("กรุณา send auto อีกครั้ง", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            catch
            {
            }
        }
예제 #19
0
        private void gridStation_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                if (gridStation.Columns[e.ColumnIndex].Name == "colBtn")
                {
                    StatusTransaction updateLower = UpdatedLower();
                    if (updateLower == StatusTransaction.True)
                    {
                        gridStationObj            gso = (gridStationObj)gridStationBindingSource.Current;
                        EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
                        mst_event mvt = mst.GetMstEvent(gso.mvt_id);
                        if (mvt.mvt_code == "EM")
                        {
                            List <gridStationObj> obj           = (List <gridStationObj>)gridStationBindingSource.DataSource;
                            mst_event             eyeNurseEvent = mst.GetMstEvent("EN");
                            var incMvtCode = obj.Select(x => mst.GetMstEvent(x.mvt_id).mvt_code).ToList();
                            if (incMvtCode.Contains(eyeNurseEvent.mvt_code))
                            {
                                MessageBox.Show("Can not send to " + mvt.mvt_ename + " before " + eyeNurseEvent.mvt_ename + "." + Environment.NewLine +
                                                "Please select another room.", "Send Queue Alert", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                return;
                            }
                        }

                        bool           success = false;
                        gridStationObj result  = (gridStationObj)gridStationBindingSource.Current;
                        if (rdSkip.Checked)
                        {
                            Class.ClsSkipOnStation skip = new Class.ClsSkipOnStation();
                            if (_useform == useform.onStation)
                            {
                                //success = skip.skipOnStationSendManaul((int)result.mrm_id, result.mvt_id);
                                StatusTransaction skipStation = skip.skipOnStationSendManaul((int)_tpr_id, (int)_tps_id, (int)result.mrm_id, result.mvt_id);
                                if (skipStation == StatusTransaction.True)
                                {
                                    new Class.logPatientFlowCls(Class.logPatientFlowCls.sendType.SkipManual,
                                                                (int)_tpr_id,
                                                                (int)_tps_id,
                                                                Program.CurrentSite.mhs_id,
                                                                Program.CurrentRoom.mrd_ename,
                                                                Program.CurrentUser.mut_username);

                                    success = true;
                                    //if (new EmrClass.GetDataMasterCls().GetMstRoomHdr((int)result.mrm_id).mrm_code == "DC")
                                    //{
                                    //new Class.FunctionDataCls().stampPEDoctor((int)_tpr_id);
                                    //}
                                }
                                else if (skipStation == StatusTransaction.NoProcess)
                                {
                                    MessageBox.Show("คนไข้ไม่ได้อยู่ในสถานะดำเนินการ skip ต่อได้", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                }
                                else if (skipStation == StatusTransaction.Error)
                                {
                                    MessageBox.Show("กรุณา skip อีกครั้ง", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                }
                            }
                            else if (_useform == useform.onWaiting)
                            {
                                //success = skip.skipOnStationSendManaul((int)result.mrm_id, result.mvt_id);
                                StatusTransaction skipStation = skip.skipOnWaitingSendManaul((int)_tpr_id, (int)_tps_id, (int)result.mrm_id, result.mvt_id);
                                if (skipStation == StatusTransaction.True)
                                {
                                    new Class.logPatientFlowCls(Class.logPatientFlowCls.sendType.SkipOnWaitingManual,
                                                                (int)_tpr_id,
                                                                (int)_tps_id,
                                                                Program.CurrentSite.mhs_id,
                                                                "WaitingList",
                                                                Program.CurrentUser.mut_username);

                                    success = true;
                                    //if (new EmrClass.GetDataMasterCls().GetMstRoomHdr((int)result.mrm_id).mrm_code == "DC")
                                    //{
                                    //new Class.FunctionDataCls().stampPEDoctor((int)_tpr_id);
                                    //}
                                }
                                else if (skipStation == StatusTransaction.NoProcess)
                                {
                                    MessageBox.Show("คนไข้ไม่ได้อยู่ในสถานะดำเนินการ skip ต่อได้", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                }
                                else if (skipStation == StatusTransaction.Error)
                                {
                                    MessageBox.Show("กรุณา skip อีกครั้ง", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                }
                            }
                        }
                        else if (rdPending.Checked)
                        {
                            Class.ClsPendingOnStation pend = new Class.ClsPendingOnStation();
                            if (_useform == useform.onStation)
                            {
                                //success = pend.pendingOnStationSendManaul((int)result.mrm_id, result.mvt_id);
                                StatusTransaction pendingStation = pend.pendingOnStationSendManaul((int)_tpr_id, (int)_mvt_id, (int)_mrm_id, (int)_mhs_id, (int)result.mrm_id, result.mvt_id, (int)_tps_id);
                                if (pendingStation == StatusTransaction.True)
                                {
                                    new Class.logPatientFlowCls(Class.logPatientFlowCls.sendType.PendingManual,
                                                                (int)_tpr_id,
                                                                (int)_tps_id,
                                                                Program.CurrentSite.mhs_id,
                                                                Program.CurrentRoom.mrd_ename,
                                                                Program.CurrentUser.mut_username);

                                    success = true;
                                    //if (new EmrClass.GetDataMasterCls().GetMstRoomHdr((int)result.mrm_id).mrm_code == "DC")
                                    //{
                                    //new Class.FunctionDataCls().stampPEDoctor((int)_tpr_id);
                                    //}
                                }
                                else if (pendingStation == StatusTransaction.NoProcess)
                                {
                                    MessageBox.Show("คนไข้ไม่ได้อยู่ในสถานะดำเนินการ pending ต่อได้", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                }
                                else if (pendingStation == StatusTransaction.Error)
                                {
                                    MessageBox.Show("กรุณา pending อีกครั้ง", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                }
                            }
                            else if (_useform == useform.onWaiting)
                            {
                                //success = pend.pendingOnStationSendManaul((int)result.mrm_id, result.mvt_id);
                                StatusTransaction pendingStation = pend.pendingOnWaitingSendManaul((int)_tpr_id, (int)_mvt_id, (int)_mrm_id, (int)_mhs_id, (int)result.mrm_id, result.mvt_id, (int)_tps_id);
                                if (pendingStation == StatusTransaction.True)
                                {
                                    new Class.logPatientFlowCls(Class.logPatientFlowCls.sendType.PendingOnWaitingManual,
                                                                (int)_tpr_id,
                                                                (int)_tps_id,
                                                                Program.CurrentSite.mhs_id,
                                                                "WaitingList",
                                                                Program.CurrentUser.mut_username);

                                    success = true;
                                    //if (new EmrClass.GetDataMasterCls().GetMstRoomHdr((int)result.mrm_id).mrm_code == "DC")
                                    //{
                                    //new Class.FunctionDataCls().stampPEDoctor((int)_tpr_id);
                                    //}
                                }
                                else if (pendingStation == StatusTransaction.NoProcess)
                                {
                                    MessageBox.Show("คนไข้ไม่ได้อยู่ในสถานะดำเนินการ pending ต่อได้", "Alert", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                }
                                else if (pendingStation == StatusTransaction.Error)
                                {
                                    MessageBox.Show("กรุณากด pending อีกครั้ง", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                                }
                            }
                        }
                        if (success)
                        {
                            Program.CurrentRegis         = null;
                            Program.CurrentPatient_queue = null;
                            this.DialogResult            = System.Windows.Forms.DialogResult.OK;
                        }
                    }
                    else if (updateLower == StatusTransaction.Error)
                    {
                        MessageBox.Show("กรุณากด send manual อีกครั้ง", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("กรุณากด send manual อีกครั้ง", "Alert.", MessageBoxButtons.OK, MessageBoxIcon.Information);
                Program.MessageError("frmCancelQueue", "gridStation_CellContentClick", ex, false);
            }
            finally
            {
                this.Close();
            }
        }
예제 #20
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);
            }
        }
예제 #21
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);
            }
        }
예제 #22
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();
        }
예제 #23
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();
                }
            }
        }
예제 #24
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);
                }
            }
        }
예제 #25
0
        public StatusTransaction sendCallUnitDisplay(int tpr_id, int mhs_id, int mrd_id, int mvt_id)
        {
            try
            {
                string            ipAddress  = "";
                string            stringPort = "";
                StatusTransaction getIp      = getConfigMessage(ref ipAddress, mhs_id, "IUD");
                StatusTransaction getPort    = getConfigMessage(ref stringPort, mhs_id, "PUD");
                int port = Convert.ToInt32(stringPort);

                double            loopConfig    = 0;
                StatusTransaction getLoopConfig = getConfigMessage(ref loopConfig, mhs_id, "RDQ");
                int loop = 0;
                if (loopConfig != 0)
                {
                    try
                    {
                        loop = Convert.ToInt32(loopConfig);
                    }
                    catch (Exception ex)
                    {
                        Program.MessageError("ClsTCPClient", "sendCallUnitDisplay", ex, false);
                    }
                }
                if (getIp == StatusTransaction.True && getPort == StatusTransaction.True)
                {
                    if (!string.IsNullOrEmpty(ipAddress) && !string.IsNullOrEmpty(stringPort))
                    {
                        ipAddress = ipAddress.Replace(@"\\", "");
                        using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                        {
                            trn_patient_regi  tpr = cdc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                            List <string>     list_temp_message = new List <string>();
                            StatusTransaction getMessage        = getMessageUnitDisplay(mhs_id, mrd_id, mvt_id, ref list_temp_message);
                            foreach (string message in list_temp_message)
                            {
                                string msg = tpr.trn_patient.tpt_nation_code + message + tpr.tpr_queue_no;
                                if (loop == 0)
                                {
                                    sendMessageTCPServer(msg);
                                }
                                else
                                {
                                    sendMessageTCPServer(msg, loop);
                                }
                            }
                            return(StatusTransaction.True);
                            //if (getMessage == StatusTransaction.True)
                            //{
                            //    List<string> list_message = new List<string>();
                            //    foreach (string msg in list_temp_message)
                            //    {
                            //        list_message.Add(tpr.trn_patient.tpt_nation_code + msg + tpr.tpr_queue_no);
                            //    }
                            //    return sendMessageToUnitDisplay(ipAddress, port, list_message);
                            //}
                            //else
                            //{
                            //    return StatusTransaction.Error;
                            //}
                        }
                    }
                    else
                    {
                        return(StatusTransaction.Error);
                    }
                }
                else
                {
                    return(StatusTransaction.Error);
                }
            }
            catch (Exception ex)
            {
                Program.MessageError("ClsTCPClient", "sendCallUnitDisplay", ex, false);
                return(StatusTransaction.Error);
            }
        }
        /// <summary>sends STATUS command</summary>
        /// <remarks>valid in authenticated state</remarks>
        private ImapCommandResult StatusInternal(string mailboxName, ImapStatusDataItem statusDataItem, out ImapStatusAttributeList statusAttributes, out ImapMailbox statusMailbox)
        {
            RejectNonAuthenticatedState();

              RejectInvalidMailboxNameArgument(mailboxName);

              if (statusDataItem == null)
            throw new ArgumentNullException("statusDataItem");

              /*
               * 6.3.10. STATUS Command
               *
               *            Note: The STATUS command is intended to access the
               *            status of mailboxes other than the currently selected
               *            mailbox.  Because the STATUS command can cause the
               *            mailbox to be opened internally, and because this
               *            information is available by other means on the selected
               *            mailbox, the STATUS command SHOULD NOT be used on the
               *            currently selected mailbox.
               */
              var existStatusMailbox = mailboxManager.GetExist(mailboxName);

              if (existStatusMailbox != null) {
            if (existStatusMailbox == selectedMailbox)
              throw new ImapProtocolViolationException("the STATUS command SHOULD NOT be used on the currently selected mailbox");

            if (existStatusMailbox.IsUnselectable)
              throw new ImapProtocolViolationException("the STATUS command SHOULD NOT be used on the mailbox that has \\Noselect or \\NonExistent attribute");
              }

              statusAttributes = null;
              statusMailbox = null;

              using (var t = new StatusTransaction(connection)) {
            // mailbox name
            t.RequestArguments["mailbox name"] = new ImapMailboxNameString(mailboxName);

            // status data item names
            t.RequestArguments["status data item names"] = statusDataItem;

            if (ProcessTransaction(t).Succeeded) {
              statusMailbox = mailboxManager.GetExistOrCreate(mailboxName);

              statusAttributes = t.Result.Value;
              statusMailbox.UpdateStatus(statusAttributes);
            }
            else {
              ProcessMailboxRefferalResponse(t.Result.TaggedStatusResponse);
            }

            return t.Result;
              }
        }