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

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

                Class.FunctionDataCls func = new Class.FunctionDataCls();
                updatePlanForSkip(ref tpr, tps_id);
                skipReserveCurrentQueue(ref tpr, tps_id);
                func.deleteCurrentQueue(ref cdc, ref tpr, tps_id);
                func.insertNextQueue(ref tpr, next_mrm_id, next_mvt_id);
                try
                {
                    cdc.SubmitChanges();
                    return(StatusTransaction.True);
                }
                catch (System.Data.Linq.ChangeConflictException)
                {
                    foreach (ObjectChangeConflict occ in cdc.ChangeConflicts)
                    {
                        cdc.Refresh(System.Data.Linq.RefreshMode.KeepChanges, occ.Object);
                    }
                    cdc.SubmitChanges();
                    return(StatusTransaction.True);
                }
            }
            catch (Exception ex)
            {
                Program.MessageError("ClsSkipOnStation", "skipOnStationSendManaul", ex, false);
                return(StatusTransaction.Error);
            }
        }
Example #2
0
        public bool SendToCheckBOnStation(int tpr_id, int tps_id)
        {
            try
            {
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    DateTime         dateNow = Program.GetServerDateTime();
                    trn_patient_regi tpr     = cdc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).FirstOrDefault();

                    patient_regisToCheckB(ref tpr);
                    queueToCheckB(ref tpr, dateNow);

                    trn_patient_queue tps = tpr.trn_patient_queues.Where(x => x.tps_id == tps_id).FirstOrDefault(); // update status ห้องปัจจุบัน
                    tps.tps_send_by     = Program.CurrentUser.mut_username;
                    tps.tps_end_date    = dateNow;
                    tps.tps_status      = "ED";
                    tps.tps_ns_status   = null;
                    tps.tps_update_by   = Program.CurrentUser.mut_username;
                    tps.tps_update_date = dateNow;
                    cdc.SubmitChanges();
                }
                return(true);
            }
            catch
            {
            }
            return(false);
        }
Example #3
0
        public PatientHoldQueue HoldQueue(int tps_id, int hold_minute, string username)
        {
            try
            {
                DateTime dateNow = Program.GetServerDateTime();
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    try
                    {
                        cdc.Connection.Open();
                        DbTransaction trans = cdc.Connection.BeginTransaction();
                        cdc.Transaction = trans;

                        trn_patient_queue PatientQueue = cdc.trn_patient_queues
                                                         .Where(x => x.tps_id == tps_id)
                                                         .FirstOrDefault();

                        PatientQueue.tps_status      = "NS";
                        PatientQueue.tps_ns_status   = "QL";
                        PatientQueue.tps_call_status = "HD";
                        PatientQueue.tps_bm_seq      = null;
                        PatientQueue.tps_hold_by     = username;
                        PatientQueue.tps_hold_date   = dateNow.AddMinutes(hold_minute);
                        PatientQueue.tps_start_date  = null;
                        PatientQueue.tps_update_date = dateNow;
                        PatientQueue.tps_update_by   = username;
                        cdc.SubmitChanges();
                        cdc.Transaction.Commit();
                        return(new PatientHoldQueue
                        {
                            Status = PatientHoldQueue.StatusHoldQueue.Success,
                            QueueNo = PatientQueue.trn_patient_regi.tpr_queue_no
                        });
                    }
                    catch (Exception ex)
                    {
                        cdc.Transaction.Rollback();
                        Program.MessageError("TransactionQueueCls", "ReadyQueue(int tps_id, int mrd_id, string username)", ex, false);
                        return(new PatientHoldQueue
                        {
                            Status = PatientHoldQueue.StatusHoldQueue.Error,
                            QueueNo = ""
                        });
                    }
                    finally
                    {
                        cdc.Connection.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                Program.MessageError("TransactionQueueCls", "ReadyQueue(int tps_id, int mrd_id, string username)", ex, false);
                return(new PatientHoldQueue
                {
                    Status = PatientHoldQueue.StatusHoldQueue.Error
                });
            }
        }
Example #4
0
        public StatusTransaction pendingDoctor(int tpr_id, ref string messegeSend)
        {
            try
            {
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    try
                    {
                        cdc.Connection.Open();
                        DbTransaction trans = cdc.Connection.BeginTransaction();
                        cdc.Transaction = trans;

                        trn_patient_regi tpr = cdc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                        if (tpr != null)
                        {
                            DateTime          dtnow       = Program.GetServerDateTime();
                            int               mrm_id      = Program.CurrentRoom.mrm_id;
                            int               mrd_id      = Program.CurrentRoom.mrd_id;
                            trn_patient_queue queueCheckC = tpr.trn_patient_queues.Where(x => x.mrm_id == mrm_id).FirstOrDefault();

                            queueCheckC.tps_update_by   = Program.CurrentUser.mut_username;
                            queueCheckC.tps_update_date = dtnow;
                            queueCheckC.tps_status      = "ED";

                            tpr.tpr_pending            = true;
                            tpr.tpr_pending_no_station = true;
                            cdc.SubmitChanges();
                            cdc.Transaction.Commit();
                            messegeSend = "Queue " + tpr.tpr_queue_no + " ค้างตรวจแพทย์เสร็จสิ้น";
                            return(StatusTransaction.True);
                        }
                        else
                        {
                            messegeSend = "เกิดความผิดพลาดของระบบ ไม่สามารถค้างตรวจแพทย์ได้ กรุณาดำเนินการอีกครั้ง";
                            return(StatusTransaction.Error);
                        }
                    }
                    catch (Exception ex)
                    {
                        messegeSend = "เกิดความผิดพลาดของระบบ ไม่สามารถค้างตรวจแพทย์ได้ กรุณาดำเนินการอีกครั้ง";
                        cdc.Transaction.Rollback();
                        Program.MessageError("ClsPendingOnStation", "pendingDoctor", ex, false);
                        return(StatusTransaction.Error);
                    }
                    finally
                    {
                        cdc.Connection.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                messegeSend = "เกิดความผิดพลาดของระบบ ไม่สามารถค้างตรวจแพทย์ได้ กรุณาดำเนินการอีกครั้ง";
                Program.MessageError("ClsPendingOnStation", "pendingDoctor", ex, false);
                return(StatusTransaction.Error);
            }
        }
Example #5
0
        public StatusTransaction isCallQueue(int tps_id, ref string message)
        {
            frmBGScreen frmbg = new frmBGScreen();

            frmbg.Show();
            Application.DoEvents();
            try
            {
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    trn_patient_queue tps = cdc.trn_patient_queues.Where(x => x.tps_id == tps_id &&
                                                                         x.tps_status == "NS" &&
                                                                         x.tps_ns_status == "QL").FirstOrDefault();
                    if (tps != null)
                    {
                        _tpr_id = tps.tpr_id;
                        _tps_id = tps.tps_id;

                        uiUserprofile1.LoadData(_tpr_id);

                        trn_patient_regi tpr = cdc.trn_patient_regis.Where(x => x.tpr_id == _tpr_id).FirstOrDefault();
                        _queue_no = tpr.tpr_queue_no;

                        if (Program.CurrentRegis == null)
                        {
                            btnCallQueue.Visible = true;
                        }
                        else
                        {
                            btnCallQueue.Visible = false;
                            lbAlertMsg.Text      = "ไม่สามารถ Call Queue ได้ เนื่องจากมีผู้ใช้บริการ";
                        }
                        frmbg.Close();
                        this.ShowDialog();
                        tps_id  = tps.tps_id;
                        message = messageAlert;
                        return(transaction);
                    }
                    else
                    {
                        frmbg.Close();
                        message = _queue_no + " ไม่สามารถดำเนินการต่อได้ กรุณาตรวจสอบอีกครั้ง";
                        return(StatusTransaction.NoProcess);
                    }
                }
            }
            catch (Exception ex)
            {
                Program.MessageError("frmManageWaiting", "isCallQueue", ex, false);
                return(StatusTransaction.Error);
            }
        }
Example #6
0
        public List <vw_patient_room> getLogSendAuto(int tpr_id)
        {
            try
            {
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    int?   mvt_id;
                    int?   mrm_id;
                    int?   mze_id;
                    int?   current_site = Program.CurrentSite.mhs_id;
                    string queue_no     = cdc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).Select(x => x.tpr_queue_no).FirstOrDefault();

                    trn_patient_queue tps = cdc.trn_patient_queues
                                            .Where(x => x.tpr_id == tpr_id &&
                                                   ((x.tps_status == "NS" && x.tps_ns_status == "QL") ||
                                                    (x.tps_status == "WK")))
                                            .FirstOrDefault();
                    mvt_id = tps.mvt_id;
                    mrm_id = tps.mrm_id;
                    mze_id = cdc.mst_room_hdrs.Where(x => x.mrm_id == mrm_id).Select(x => x.mze_id).FirstOrDefault();
                    List <vw_patient_room> list_vw = cdc.vw_patient_rooms
                                                     .Where(x => x.tpr_id == tpr_id &&
                                                            x.mvt_id != mvt_id &&
                                                            x.mrm_id != mrm_id &&
                                                            x.mhs_id == current_site)
                                                     .OrderBy(x => x.send_type == true ? 0 : 1)
                                                     .ThenBy(x => x.skip_seq)
                                                     .ThenBy(x => x.login_flag == "Y" ? 0 : 1)
                                                     .ThenBy(x => x.mze_id == mze_id && x.waiting_time <= 10 ? 0 : 1)
                                                     .ThenBy(x => x.mze_id != mze_id && x.waiting_time <= 10 ? 0 : 1)
                                                     .ThenBy(x => x.mze_id == mze_id ? 0 : 1)
                                                     .ThenBy(x => x.waiting_time)
                                                     .ThenBy(x => x.mze_id)
                                                     .ThenBy(x => x.mrm_seq_room).ToList();

                    //.OrderBy(x => x.login_flag == "Y" ? 0 : 1)
                    //.ThenBy(x => x.send_type == true ? 0 : 1)
                    //.ThenBy(x => x.mze_id == mze_id && x.waiting_time <= 10 ? 0 : 1)
                    //.ThenBy(x => x.skip_seq)
                    //.ThenBy(x => x.waiting_time)
                    //.ThenBy(x => x.mze_id)
                    //.ThenBy(x => x.mrm_seq_room).ToList();

                    return(list_vw);
                }
            }
            catch
            {
                return(null);
            }
        }
Example #7
0
        public void updatePlanForSkip(ref trn_patient_regi tpr, int tps_id)
        {
            trn_patient_queue currentQueue = tpr.trn_patient_queues.Where(x => x.tps_id == tps_id).FirstOrDefault();

            EmrClass.GetDataMasterCls mst         = new EmrClass.GetDataMasterCls();
            List <mst_room_event>     mvt         = mst.GetMstRoomEventByMrm((int)currentQueue.mrm_id);
            List <trn_patient_plan>   currentPlan = tpr.trn_patient_plans.Where(x => mvt.Select(y => y.mvt_id).Contains(x.mvt_id)).ToList();

            currentPlan.ForEach(x =>
            {
                x.tpl_skip     = true;
                x.tpl_skip_seq = x.tpl_skip_seq == null ? 1 : x.tpl_skip_seq + 1;
            });
        }
Example #8
0
 private bool ableChangeDoctor(int tpr_id)
 {
     using (InhCheckupDataContext cdc = new InhCheckupDataContext())
     {
         int               mrm_id      = cdc.mst_room_dtls.Where(x => x.mrd_id == _mrd_id).Select(x => x.mrm_id).FirstOrDefault();
         List <int>        list_mvt_id = cdc.mst_events.Where(x => x.mvt_code == "DC" || x.mvt_code == "PE").Select(x => x.mvt_id).ToList();
         trn_patient_queue tps         = cdc.trn_patient_queues.Where(x => x.tpr_id == tpr_id && x.mrm_id == mrm_id && list_mvt_id.Contains((int)x.mvt_id) && x.tps_status == "NS" && x.tps_ns_status == "QL").FirstOrDefault();
         if (tps != null)
         {
             return(true);
         }
         return(false);
     }
 }
Example #9
0
        public StatusTransaction SendToBasic(ref trn_patient_regi tpr, ref string messegeSend)
        {
            try
            {
                DateTime dateNow = Program.GetServerDateTime();
                EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();

                int mvt_regis = mst.GetMstEvent("RG").mvt_id;

                trn_patient_queue objQueueRegis = new trn_patient_queue();
                objQueueRegis.mrm_id          = Program.CurrentRoom.mrm_id;
                objQueueRegis.mvt_id          = mvt_regis;
                objQueueRegis.mrd_id          = Program.CurrentRoom.mrd_id;
                objQueueRegis.tps_start_date  = dateNow;
                objQueueRegis.tps_end_date    = dateNow;
                objQueueRegis.tps_send_by     = Program.CurrentUser.mut_username;
                objQueueRegis.tps_status      = "ED";
                objQueueRegis.tps_ns_status   = null;
                objQueueRegis.tps_create_date = dateNow;
                objQueueRegis.tps_create_by   = Program.CurrentUser.mut_username;
                objQueueRegis.tps_update_by   = objQueueRegis.tps_create_by;
                objQueueRegis.tps_update_date = dateNow;
                tpr.trn_patient_queues.Add(objQueueRegis);

                mst_room_hdr mrm = mst.GetMstRoomHdr("BM", Program.CurrentSite.mhs_code);
                mst_hpc_site mhs = mst.GetMstHpcSite(Program.CurrentSite.mhs_code);
                mst_zone     mze = mst.GetMstZone((int)mrm.mze_id);
                mst_event    mvt = mst.GetMstEvent("BM");

                trn_patient_queue objQueueBasic = new trn_patient_queue();
                objQueueBasic.mrm_id          = mrm.mrm_id;
                objQueueBasic.mvt_id          = mvt.mvt_id;
                objQueueBasic.mrd_id          = null;
                objQueueBasic.tps_status      = "NS";
                objQueueBasic.tps_ns_status   = "WL";
                objQueueBasic.tps_create_by   = Program.CurrentUser.mut_username;
                objQueueBasic.tps_create_date = dateNow;
                objQueueBasic.tps_update_by   = Program.CurrentUser.mut_username;
                objQueueBasic.tps_update_date = dateNow;
                tpr.trn_patient_queues.Add(objQueueBasic);

                messegeSend = string.Format(Program.MsgSend, mrm.mrm_ename, mze.mze_ename, mhs.mhs_ename, tpr.tpr_queue_no);
                return(StatusTransaction.True);
            }
            catch (Exception ex)
            {
                Program.MessageError("TransactionQueueCls", "SendToBasic", ex, false);
                return(StatusTransaction.Error);
            }
        }
Example #10
0
        public StatusTransaction SendToCheckBOnWaiting(int tpr_id, int mrm_id)
        {
            try
            {
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    try
                    {
                        cdc.Connection.Open();
                        DbTransaction tran = cdc.Connection.BeginTransaction();
                        cdc.Transaction = tran;

                        DateTime          dateNow = Program.GetServerDateTime();
                        trn_patient_regi  tpr     = cdc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                        trn_patient_queue tps     = tpr.trn_patient_queues.Where(x => x.mrm_id == mrm_id).FirstOrDefault();
                        if (tps != null && tps.tps_status == "NS" && tps.tps_ns_status == "QL")
                        {
                            patient_regisToCheckB(ref tpr);
                            cdc.trn_patient_queues.DeleteOnSubmit(tps); // delete tps_id ห้องปัจจุบัน
                            queueToCheckB(ref tpr, dateNow);
                            cdc.SubmitChanges();
                            cdc.Transaction.Commit();
                            return(StatusTransaction.True);
                        }
                        else
                        {
                            return(StatusTransaction.NoProcess);
                        }
                    }
                    catch (Exception ex)
                    {
                        cdc.Transaction.Rollback();
                        Program.MessageError("SendToCheckBCls", "SendToCheckBOnWaiting", ex, false);
                        return(StatusTransaction.Error);
                    }
                    finally
                    {
                        cdc.Connection.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                Program.MessageError("SendToCheckBCls", "SendToCheckBOnWaiting", ex, false);
                return(StatusTransaction.Error);
            }
        }
Example #11
0
        public bool SendQueueDoctorResult(int tps_id, string username)
        {
            try
            {
                DateTime dateNow = Program.GetServerDateTime();
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    try
                    {
                        cdc.Connection.Open();
                        DbTransaction trans = cdc.Connection.BeginTransaction();
                        cdc.Transaction = trans;

                        trn_patient_queue PatientQueue = cdc.trn_patient_queues
                                                         .Where(x => x.tps_id == tps_id)
                                                         .FirstOrDefault();

                        PatientQueue.tps_send_by     = username;
                        PatientQueue.tps_end_date    = dateNow;
                        PatientQueue.tps_status      = "ED";
                        PatientQueue.tps_ns_status   = null;
                        PatientQueue.tps_update_by   = username;
                        PatientQueue.tps_update_date = dateNow;
                        cdc.SubmitChanges();
                        cdc.Transaction.Commit();
                        return(true);
                    }
                    catch (Exception ex)
                    {
                        cdc.Transaction.Rollback();
                        Program.MessageError("TransactionQueueCls", "ReadyQueue(int tps_id, int mrd_id, string username)", ex, false);
                        return(false);
                    }
                    finally
                    {
                        cdc.Connection.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                Program.MessageError("TransactionQueueCls", "ReadyQueue(int tps_id, int mrd_id, string username)", ex, false);
                return(false);
            }
        }
Example #12
0
 private bool checkPassCheckB(int?tpr_id)
 {
     using (InhCheckupDataContext contxt = new InhCheckupDataContext())
     {
         trn_patient_queue patientQueue = contxt.trn_patient_queues
                                          .Where(x => x.tpr_id == tpr_id &&
                                                 x.mst_room_hdr.mrm_code == "CB")
                                          .FirstOrDefault();
         if (patientQueue != null)
         {
             return(true);
         }
         else
         {
             return(false);
         }
     }
 }
Example #13
0
        public void SendToCheckC(ref trn_patient_regi PatientRegis, DateTime dateNow, string username, bool andSendBook = false)
        {
            try
            {
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    int          mhs_id     = (PatientRegis.tpr_site_use == null || PatientRegis.tpr_site_use == 0) ? (int)PatientRegis.mhs_id : (int)PatientRegis.tpr_site_use;
                    mst_room_hdr mstRoomHdr = cdc.mst_room_hdrs.Where(x => x.mrm_code == "CC" && x.mhs_id == mhs_id).FirstOrDefault();
                    mst_event    mstEvent   = cdc.mst_events
                                              .Where(x => x.mvt_code == "CC")
                                              .FirstOrDefault();
                    trn_patient_queue PatientQueue = PatientRegis.trn_patient_queues.Where(x => x.mrm_id == mstRoomHdr.mrm_id && x.mvt_id == mstEvent.mvt_id).FirstOrDefault();

                    if (PatientQueue == null)
                    {
                        PatientQueue                 = new trn_patient_queue();
                        PatientQueue.mrm_id          = mstRoomHdr.mrm_id;
                        PatientQueue.mvt_id          = mstEvent.mvt_id;
                        PatientQueue.tps_create_by   = username;
                        PatientQueue.tps_create_date = dateNow;
                        PatientRegis.trn_patient_queues.Add(PatientQueue);
                    }
                    PatientQueue.mrd_id         = null;
                    PatientQueue.tps_end_date   = null;
                    PatientQueue.tps_start_date = null;
                    if (andSendBook)
                    {
                        PatientQueue.tps_status = "ED";
                    }
                    else
                    {
                        PatientQueue.tps_status = "WK";
                    }
                    PatientQueue.tps_ns_status   = null;
                    PatientQueue.tps_update_by   = username;
                    PatientQueue.tps_update_date = dateNow;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #14
0
 public int?get_tps_id(int tpr_id)
 {
     try
     {
         using (InhCheckupDataContext cdc = new InhCheckupDataContext())
         {
             trn_patient_queue tps = cdc.trn_patient_queues
                                     .Where(x => x.tpr_id == tpr_id &&
                                            ((x.tps_status == "NS" && x.tps_ns_status == "QL") ||
                                             (x.tps_status == "WK")))
                                     .FirstOrDefault();
             return(tps.tps_id);
         }
     }
     catch
     {
     }
     return(null);
 }
Example #15
0
        public logPatientFlowCls(sendType type, int tpr_id, int tps_id, int mhs_id, string mrd_ename, string mut_username, DateTime?StartProcressTime = null)
        {
            try
            {
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    DateTime          dateNow         = Program.GetServerDateTime();
                    trn_patient_queue newPatientQueue = cdc.trn_patient_queues.Where(x => x.tpr_id == tpr_id &&
                                                                                     ((x.tps_status == "NS" && x.tps_ns_status == "QL") ||
                                                                                      (x.tps_status == "NS" && x.tps_ns_status == "WL") ||
                                                                                      x.tps_status == "WK"))
                                                        .OrderByDescending(x => x.tps_id).FirstOrDefault();
                    int?nextTpsID = null;
                    if (newPatientQueue != null)
                    {
                        nextTpsID = newPatientQueue.tps_id;
                    }
                    int countFlow = cdc.log_patient_flows.Where(x => x.tpr_id == tpr_id).Count();

                    log_patient_flow log = new log_patient_flow()
                    {
                        log_time     = dateNow,
                        mhs_id       = mhs_id,
                        mrd_ename    = mrd_ename,
                        mut_username = mut_username,
                        send_type    = type.ToString(),
                        seq_id       = countFlow + 1,
                        tpr_id       = tpr_id,
                        tps_id       = tps_id,
                        next_tps_id  = nextTpsID,
                        process_time = StartProcressTime == null ? 0 : Convert.ToInt64((DateTime.Now - StartProcressTime.Value).TotalMilliseconds)
                                       // nextTpsID
                    };
                    cdc.log_patient_flows.InsertOnSubmit(log);
                    cdc.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                Program.MessageError("logPatientFlowCls", "logPatientFlowCls", ex, false);
            }
        }
Example #16
0
        private void queueToCheckB(ref trn_patient_regi tpr, DateTime dateNow)
        {
            // update tps checkpointB "NS", "QL", start_date = null, end_date = null, update_date = dateNow

            EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
            int mrm_checkB        = mst.GetMstRoomHdr("CB", tpr.mhs_id, tpr.tpr_site_use).mrm_id;
            int mvt_checkB        = mst.GetMstEvent("CB").mvt_id;
            trn_patient_queue tps = tpr.trn_patient_queues.Where(x => x.mvt_id == mvt_checkB).FirstOrDefault();

            if (tps == null) // case imposible
            {
                tps = new trn_patient_queue()
                {
                    mrm_id          = mrm_checkB,
                    mvt_id          = mvt_checkB,
                    tps_create_by   = Program.CurrentUser.mut_username,
                    tps_create_date = dateNow
                };
                tpr.trn_patient_queues.Add(tps);
            }
            tps.tps_status      = "NS";
            tps.tps_ns_status   = "QL";
            tps.tps_update_by   = Program.CurrentUser.mut_username;
            tps.tps_update_date = dateNow;

            tps.mrd_id            = null;
            tps.tps_bm_seq        = null;
            tps.tps_call_by       = null;
            tps.tps_call_date     = null;
            tps.tps_call_status   = null; // Hold = "HD"
            tps.tps_cancel_by     = null;
            tps.tps_cancel_date   = null;
            tps.tps_cancel_other  = null;
            tps.tps_cancel_remark = null;
            tps.tps_end_date      = null;
            tps.tps_hold_by       = null;
            tps.tps_hold_date     = null;
            tps.tps_lab_date      = null;
            tps.tps_send_by       = null;
            tps.tps_start_date    = null;
        }
Example #17
0
        public StatusTransaction pendingOnWaitingSendManaul(int tpr_id, int mvt_id, int mrm_id, int mhs_id, int next_mrm_id, int next_mvt_id, int tps_id)
        {
            try
            {
                InhCheckupDataContext cdc = new InhCheckupDataContext();

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

                if (tps != null && tps.tps_status == "NS" && tps.tps_ns_status == "QL")
                {
                    tpr.tpr_pending = true;
                    updatePendingPatientPlan(ref tpr, mvt_id, mrm_id, mhs_id);
                    updatePendingPatientQueue(ref cdc, ref tpr, mrm_id);
                    insertPatientPending(ref tpr, mrm_id);
                    Class.FunctionDataCls func = new Class.FunctionDataCls();
                    func.insertNextQueue(ref tpr, next_mrm_id, next_mvt_id);
                    // alert
                    try
                    {
                        cdc.SubmitChanges();
                        return(StatusTransaction.True);
                    }
                    catch (System.Data.Linq.ChangeConflictException)
                    {
                        return(StatusTransaction.NoProcess);
                    }
                }
                else
                {
                    return(StatusTransaction.NoProcess);
                }
            }
            catch (Exception ex)
            {
                Program.MessageError("ClsPendingOnStation", "pendingOnWaitingSendManaul", ex, false);
                return(StatusTransaction.Error);
            }
        }
Example #18
0
 public void SendAndReserve(int?tpr_id)
 {
     try
     {
         if (tpr_id != null)
         {
             using (InhCheckupDataContext cdc = new InhCheckupDataContext())
             {
                 trn_patient_regi PatientRegis = cdc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                 if (PatientRegis != null)
                 {
                     trn_patient_skip_queue PatientSkipQueue = PatientRegis.trn_patient_skip_queues.Where(x => x.tpsq_active == true).FirstOrDefault();
                     if (PatientSkipQueue != null)
                     {
                         PatientSkipQueue.tpsq_active = false;
                         if (PatientSkipQueue.mrm_id != null)
                         {
                             trn_patient_queue PatientQueue = PatientRegis.trn_patient_queues.Where(x => x.mrm_id == PatientSkipQueue.mrm_id).FirstOrDefault();
                             if (PatientQueue != null)
                             {
                                 PatientQueue.tps_reserve = true;
                             }
                         }
                     }
                     trn_patient_skip_queue PatientNewSkipQueue = PatientRegis.trn_patient_skip_queues.Where(x => x.tpsq_active == null).FirstOrDefault();
                     if (PatientNewSkipQueue != null)
                     {
                         PatientNewSkipQueue.tpsq_active = true;
                     }
                     cdc.SubmitChanges();
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Program.MessageError("ReserveSkipCls", "ReserveSkipCls", ex, false);
     }
 }
Example #19
0
        public void SendToCheckB(ref trn_patient_regi PatientRegis, DateTime dateNow, string username)
        {
            try
            {
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    int mhs_id = (PatientRegis.tpr_site_use == null || PatientRegis.tpr_site_use == 0) ? (int)PatientRegis.mhs_id : (int)PatientRegis.tpr_site_use;

                    mst_room_hdr mstRoomHdr = cdc.mst_room_hdrs.Where(x => x.mrm_code == "CB" && x.mhs_id == mhs_id).FirstOrDefault();
                    mst_event    mstEvent   = cdc.mst_events
                                              .Where(x => x.mvt_code == "CB")
                                              .FirstOrDefault();
                    trn_patient_queue PatientQueue = PatientRegis.trn_patient_queues
                                                     .Where(x => x.mst_room_hdr.mrm_code == "CB" && x.mvt_id == mstEvent.mvt_id)
                                                     .FirstOrDefault();
                    if (PatientQueue != null)
                    {
                        PatientRegis.tpr_pe_status   = "RB";
                        PatientQueue.mrm_id          = mstRoomHdr.mrm_id;
                        PatientQueue.tps_status      = "NS";
                        PatientQueue.tps_ns_status   = "QL";
                        PatientQueue.mrd_id          = null;
                        PatientQueue.tps_end_date    = null;
                        PatientQueue.tps_start_date  = null;
                        PatientQueue.tps_update_by   = username;
                        PatientQueue.tps_update_date = dateNow;
                    }
                    else
                    {
                        SendToRoom(ref PatientRegis, mstRoomHdr.mrm_id, mstEvent.mvt_id, dateNow, username);
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #20
0
        //public void SendToBasic(ref trn_patient_regi tpr, ref string messegeSend)
        //{
        //    try
        //    {
        //        DateTime dateNow = Program.GetServerDateTime();
        //        EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();

        //        int mvt_regis = mst.getMstEvent("RG").mvt_id;

        //        trn_patient_queue objQueueRegis = new trn_patient_queue();
        //        objQueueRegis.mrm_id = Program.CurrentRoom.mrm_id;  //ถ้า error ที่นี่ regis คนไข้ถัดไป น่าจะ error ด้วย
        //        objQueueRegis.mvt_id = mvt_regis;
        //        objQueueRegis.mrd_id = Program.CurrentRoom.mrd_id;  //ถ้า error ที่นี่ regis คนไข้ถัดไป น่าจะ error ด้วย
        //        objQueueRegis.tps_start_date = dateNow;
        //        objQueueRegis.tps_end_date = dateNow;
        //        objQueueRegis.tps_send_by = Program.CurrentUser.mut_username;  //ถ้า error ที่นี่ regis คนไข้ถัดไป น่าจะ error ด้วย
        //        objQueueRegis.tps_status = "ED";
        //        objQueueRegis.tps_ns_status = null;
        //        objQueueRegis.tps_create_date = dateNow;
        //        objQueueRegis.tps_create_by = Program.CurrentUser.mut_username; //ถ้า error ที่นี่ regis คนไข้ถัดไป น่าจะ error ด้วย
        //        objQueueRegis.tps_update_by = objQueueRegis.tps_create_by;
        //        objQueueRegis.tps_update_date = dateNow;
        //        tpr.trn_patient_queues.Add(objQueueRegis);

        //        mst_room_hdr mrm = mst.getMstRoomHdr("BM", Program.CurrentSite.mhs_code); //ถ้า error ที่นี่ regis คนไข้ถัดไป น่าจะ error ด้วย
        //        mst_hpc_site mhs = mst.getMstHpcSite(Program.CurrentSite.mhs_code); //ถ้า error ที่นี่ regis คนไข้ถัดไป น่าจะ error ด้วย
        //        mst_zone mze = mst.getMstZone((int)mrm.mze_id); //error
        //        mst_event mvt = mst.getMstEvent("BM");

        //        trn_patient_queue objQueueBasic = new trn_patient_queue();
        //        objQueueBasic.mrm_id = mrm.mrm_id; //error
        //        objQueueBasic.mvt_id = mvt.mvt_id; //error
        //        objQueueBasic.mrd_id = null;
        //        objQueueBasic.tps_status = "NS";
        //        objQueueBasic.tps_ns_status = "WL";
        //        objQueueBasic.tps_create_by = Program.CurrentUser.mut_username; //ถ้า error ที่นี่ regis คนไข้ถัดไป น่าจะ error ด้วย
        //        objQueueBasic.tps_create_date = dateNow;
        //        objQueueBasic.tps_update_by = Program.CurrentUser.mut_username; //ถ้า error ที่นี่ regis คนไข้ถัดไป น่าจะ error ด้วย
        //        objQueueBasic.tps_update_date = dateNow;
        //        tpr.trn_patient_queues.Add(objQueueBasic);

        //        messegeSend = string.Format(Program.MsgSend, mrm.mrm_ename, mze.mze_ename, mhs.mhs_ename, tpr.tpr_queue_no); //error
        //        return StatusTransaction.True;
        //    }
        //    catch (Exception ex)
        //    {
        //        Program.MessageError("TransactionQueueCls", "SendToBasic", ex, false);
        //        return StatusTransaction.Error;
        //    }
        //}

        //public StatusTransaction SendToScreening(ref trn_patient_regi tpr, ref string messegeSend)
        //{
        //    try
        //    {
        //        DateTime dateNow = Program.GetServerDateTime();
        //        EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
        //        mst_room_hdr mrm = mst.getMstRoomHdr("SC", Program.CurrentSite.mhs_code);
        //        mst_hpc_site mhs = mst.getMstHpcSite(mrm.mhs_id);
        //        mst_zone mze = mst.getMstZone((int)mrm.mze_id);
        //        mst_event mvt = mst.getMstEvent("SC");
        //        return SendToRoom(ref tpr, ref messegeSend, mrm.mrm_id, mvt.mvt_id);
        //    }
        //    catch (Exception ex)
        //    {
        //        Program.MessageError("TransactionQueueCls", "SendToScreening", ex, false);
        //        return StatusTransaction.Error;
        //    }
        //}


        //public void SendToCheckB(ref trn_patient_regi tpr, ref string messegeSend)
        //{
        //    try
        //    {
        //        DateTime dateNow = Program.GetServerDateTime();
        //        EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
        //        mst_room_hdr mrm = mst.getMstRoomHdr("CB", Program.CurrentSite.mhs_code);
        //        mst_hpc_site mhs = mst.getMstHpcSite(mrm.mhs_id);
        //        mst_zone mze = mst.getMstZone((int)mrm.mze_id);
        //        mst_event mvt = mst.getMstEvent("CB");
        //        return SendToRoom(ref tpr, ref messegeSend, mrm.mrm_id, mvt.mvt_id);
        //    }
        //    catch (Exception ex)
        //    {
        //        Program.MessageError("TransactionQueueCls", "SendToCheckB", ex, false);
        //        return StatusTransaction.Error;
        //    }
        //}

        //public void SendToRoom(ref trn_patient_regi tpr, ref string messegeSend, int mrm_id, int mvt_id)
        //{
        //    try
        //    {
        //        DateTime dateNow = Program.GetServerDateTime();
        //        EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
        //        mst_room_hdr mrm = mst.getMstRoomHdr(mrm_id);
        //        mst_hpc_site mhs = mst.getMstHpcSite(mrm.mhs_id);
        //        mst_zone mze = mst.getMstZone((int)mrm.mze_id);
        //        mst_event mvt = mst.getMstEvent(mvt_id);
        //        trn_patient_queue tps = tpr.trn_patient_queues.Where(x => x.mrm_id == mrm.mrm_id && x.mvt_id == mvt.mvt_id).FirstOrDefault();

        //        //sendRoom
        //        //trn_patient_queue updateQueue;
        //        //if (tps == null)
        //        //{
        //        //    updateQueue = new trn_patient_queue();
        //        //    updateQueue.tps_create_by = Program.CurrentUser.mut_username;
        //        //    updateQueue.tps_create_date = dateNow;
        //        //    tpr.trn_patient_queues.Add(updateQueue);
        //        //}
        //        //else
        //        //{
        //        //    updateQueue = tpr.trn_patient_queues.Where(x => x.tps_id == tps.tps_id).FirstOrDefault();
        //        //}
        //        //updateQueue.mrm_id = mrm.mrm_id;
        //        //updateQueue.mvt_id = mvt.mvt_id;
        //        //updateQueue.mrd_id = null;
        //        //updateQueue.tps_end_date = null;
        //        //updateQueue.tps_start_date = null;
        //        //updateQueue.tps_status = "NS";
        //        //updateQueue.tps_ns_status = "QL";
        //        //updateQueue.tps_update_by = Program.CurrentUser.mut_username;
        //        //updateQueue.tps_update_date = dateNow;

        //        if (tps == null)
        //        {
        //            tps = new trn_patient_queue();
        //            tps.tps_create_by = Program.CurrentUser.mut_username;
        //            tps.tps_create_date = dateNow;
        //            tpr.trn_patient_queues.Add(tps);
        //        }
        //        tps.mrm_id = mrm.mrm_id;
        //        tps.mvt_id = mvt.mvt_id;
        //        tps.mrd_id = null;
        //        tps.tps_end_date = null;
        //        tps.tps_start_date = null;
        //        tps.tps_status = "NS";
        //        tps.tps_ns_status = "QL";
        //        tps.tps_update_by = Program.CurrentUser.mut_username;
        //        tps.tps_update_date = dateNow;
        //        messegeSend = string.Format(Program.MsgSend, mrm.mrm_ename, mze.mze_ename, mhs.mhs_ename, tpr.tpr_queue_no);
        //        return StatusTransaction.True;
        //    }
        //    catch (Exception ex)
        //    {
        //        Program.MessageError("TransactionQueueCls", "SendToRoom", ex, false);
        //        return StatusTransaction.Error;
        //    }
        //}

        //public StatusTransaction SendToDoctor(ref trn_patient_regi tpr, ref string messegeSend)
        //{
        //    try
        //    {
        //        DateTime dateNow = Program.GetServerDateTime();
        //        EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
        //        mst_room_hdr mrm = mst.getMstRoomHdr("DC", Program.CurrentSite.mhs_code);
        //        mst_hpc_site mhs = mst.getMstHpcSite(mrm.mhs_id);
        //        mst_zone mze = mst.getMstZone((int)mrm.mze_id);
        //        mst_event mvt = mst.getMstEvent("DC");
        //        return SendToRoom(ref tpr, ref messegeSend, mrm.mrm_id, mvt.mvt_id);
        //    }
        //    catch (Exception ex)
        //    {
        //        Program.MessageError("TransactionQueueCls", "SendToDoctor", ex, false);
        //        return StatusTransaction.Error;
        //    }
        //}

        //public StatusTransaction SendToCheckC(ref trn_patient_regi tpr, ref string messegeSend, bool andSendBook = false)
        //{
        //    try
        //    {
        //        DateTime dateNow = Program.GetServerDateTime();
        //        EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
        //        mst_hpc_site mhs = mst.getMstHpcSite(tpr.mhs_id);
        //        mst_room_hdr mrm = mst.getMstRoomHdr("CC", mhs.mhs_code);
        //        mst_zone mze = mst.getMstZone((int)mrm.mze_id);
        //        mst_event mvt = mst.getMstEvent("CC");
        //        trn_patient_queue tps = tpr.trn_patient_queues.Where(x => x.mrm_id == mrm.mrm_id && x.mvt_id == mvt.mvt_id).FirstOrDefault();

        //        //CheckC
        //        //trn_patient_queue updateQueue;
        //        //if (tps == null)
        //        //{
        //        //    updateQueue = new trn_patient_queue();
        //        //    updateQueue.tps_create_by = Program.CurrentUser.mut_username;
        //        //    updateQueue.tps_create_date = dateNow;
        //        //    tpr.trn_patient_queues.Add(updateQueue);
        //        //}
        //        //else
        //        //{
        //        //    updateQueue = tpr.trn_patient_queues.Where(x => x.tps_id == tps.tps_id).FirstOrDefault();
        //        //}
        //        //updateQueue.mrm_id = mrm.mrm_id;
        //        //updateQueue.mvt_id = mvt.mvt_id;
        //        //updateQueue.mrd_id = null;
        //        //updateQueue.tps_end_date = null;
        //        //updateQueue.tps_start_date = null;
        //        //if (andSendBook)
        //        //{
        //        //    updateQueue.tps_status = "ED";
        //        //    updateQueue.tps_ns_status = null;
        //        //}
        //        //else
        //        //{
        //        //    updateQueue.tps_status = "WK";
        //        //    updateQueue.tps_ns_status = null;
        //        //}
        //        //updateQueue.tps_update_by = Program.CurrentUser.mut_username;
        //        //updateQueue.tps_update_date = dateNow;

        //        if (tps == null)
        //        {
        //            tps = new trn_patient_queue();
        //            tps.tps_create_by = Program.CurrentUser.mut_username;
        //            tps.tps_create_date = dateNow;
        //            tpr.trn_patient_queues.Add(tps);
        //        }
        //        tps.mrm_id = mrm.mrm_id;
        //        tps.mvt_id = mvt.mvt_id;
        //        tps.mrd_id = null;
        //        tps.tps_end_date = null;
        //        tps.tps_start_date = null;
        //        if (andSendBook)
        //        {
        //            tps.tps_status = "ED";
        //            tps.tps_ns_status = null;
        //        }
        //        else
        //        {
        //            tps.tps_status = "WK";
        //            tps.tps_ns_status = null;
        //        }
        //        tps.tps_update_by = Program.CurrentUser.mut_username;
        //        tps.tps_update_date = dateNow;
        //        messegeSend = string.Format(Program.MsgSend, mrm.mrm_ename, mze.mze_ename, mhs.mhs_ename, tpr.tpr_queue_no);
        //        return StatusTransaction.True;
        //    }
        //    catch (Exception ex)
        //    {
        //        Program.MessageError("TransactionQueueCls", "SendToCheckC", ex, false);
        //        return StatusTransaction.Error;
        //    }
        //}

        //public StatusTransaction SendToPHM(ref trn_patient_regi tpr, ref string messegeSend)
        //{
        //    try
        //    {
        //        DateTime dateNow = Program.GetServerDateTime();
        //        EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
        //        mst_room_hdr mrm = mst.getMstRoomHdr("PH", Program.CurrentSite.mhs_code);
        //        //mst_hpc_site mhs = mst.getMstHpcSite(mrm.mhs_id);
        //        //mst_zone mze = mst.getMstZone((int)mrm.mze_id);
        //        mst_event mvt = mst.getMstEvent("PH");
        //        return SendToRoom(ref tpr, ref messegeSend, mrm.mrm_id, mvt.mvt_id);
        //    }
        //    catch (Exception ex)
        //    {
        //        Program.MessageError("TransactionQueueCls", "SendToPHM", ex, false);
        //        return StatusTransaction.Error;
        //    }
        //}

        //public StatusTransaction SendToBook(ref trn_patient_regi tpr, ref string messegeSend)
        //{
        //    try
        //    {
        //        DateTime dateNow = Program.GetServerDateTime();
        //        tpr.tpr_status = "WB";
        //        tpr.tpr_pe_status = "RS";
        //        tpr.tpr_update_by = Program.CurrentUser.mut_username;
        //        tpr.tpr_update_date = dateNow;
        //        EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
        //        mst_hpc_site mhs = mst.getMstHpcSite(tpr.mhs_id);
        //        mst_room_hdr mrm = mst.getMstRoomHdr("BK", mhs.mhs_code);
        //        mst_event mvt = mst.getMstEvent("BK");
        //        trn_patient_queue tps = tpr.trn_patient_queues.Where(x => x.mrm_id == mrm.mrm_id && x.mvt_id == mvt.mvt_id).FirstOrDefault();

        //        //book
        //        //trn_patient_queue updateQueue;
        //        //if (tps == null)
        //        //{
        //        //    updateQueue = new trn_patient_queue();
        //        //    updateQueue.tps_create_by = Program.CurrentUser.mut_username;
        //        //    updateQueue.tps_create_date = dateNow;
        //        //    tpr.trn_patient_queues.Add(updateQueue);
        //        //}
        //        //else
        //        //{
        //        //    updateQueue = tpr.trn_patient_queues.Where(x => x.tps_id == tps.tps_id).FirstOrDefault();
        //        //}
        //        //updateQueue.mrm_id = mrm.mrm_id;
        //        //updateQueue.mvt_id = mvt.mvt_id;
        //        //updateQueue.mrd_id = null;
        //        //updateQueue.tps_end_date = null;
        //        //updateQueue.tps_start_date = null;
        //        //updateQueue.tps_status = "NS";
        //        //updateQueue.tps_ns_status = "QL";
        //        //updateQueue.tps_update_by = Program.CurrentUser.mut_username;
        //        //updateQueue.tps_update_date = dateNow;

        //        if (tps == null)
        //        {
        //            tps = new trn_patient_queue();
        //            tps.tps_create_by = Program.CurrentUser.mut_username;
        //            tps.tps_create_date = dateNow;
        //            tpr.trn_patient_queues.Add(tps);
        //        }
        //        tps.mrm_id = mrm.mrm_id;
        //        tps.mvt_id = mvt.mvt_id;
        //        tps.mrd_id = null;
        //        tps.tps_end_date = null;
        //        tps.tps_start_date = null;
        //        tps.tps_status = "NS";
        //        tps.tps_ns_status = "QL";
        //        tps.tps_update_by = Program.CurrentUser.mut_username;
        //        tps.tps_update_date = dateNow;
        //        messegeSend = "Queue No. " + tpr.tpr_queue_no + " Send to Book Complete.";
        //        return StatusTransaction.True;
        //    }
        //    catch (Exception ex)
        //    {
        //        Program.MessageError("TransactionQueueCls", "SendToBook", ex, false);
        //        return StatusTransaction.Error;
        //    }
        //}

        //public StatusTransaction ReturnToCheckB(ref trn_patient_regi tpr, ref string messegeSend)
        //{
        //    try
        //    {
        //        DateTime dateNow = Program.GetServerDateTime();
        //        EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
        //        tpr.tpr_pe_status = "RB";
        //        mst_room_hdr mrm = mst.getMstRoomHdr("CB", Program.CurrentSite.mhs_code);
        //        mst_hpc_site mhs = mst.getMstHpcSite(mrm.mhs_id);
        //        mst_zone mze = mst.getMstZone((int)mrm.mze_id);
        //        mst_event mvt = mst.getMstEvent("CB");
        //        return SendToRoom(ref tpr, ref messegeSend, mrm.mrm_id, mvt.mvt_id);
        //    }
        //    catch (Exception ex)
        //    {
        //        Program.MessageError("TransactionQueueCls", "ReturnToCheckB", ex, false);
        //        return StatusTransaction.Error;
        //    }
        //}

        public void SendToRoom(ref trn_patient_regi PatientRegis, int mrm_id, int mvt_id, DateTime dateNow, string username)
        {
            try
            {
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    bool checkBefPE = CheckUseBeforePE(mrm_id, mvt_id);
                    trn_patient_queue PatientQueue = PatientRegis.trn_patient_queues.Where(x => x.mrm_id == mrm_id && x.mvt_id == mvt_id).FirstOrDefault();
                    if (PatientQueue == null)
                    {
                        PatientQueue                 = new trn_patient_queue();
                        PatientQueue.mrm_id          = mrm_id;
                        PatientQueue.mvt_id          = mvt_id;
                        PatientQueue.tps_create_by   = username;
                        PatientQueue.tps_create_date = dateNow;
                        PatientRegis.trn_patient_queues.Add(PatientQueue);
                    }
                    if (checkBefPE)
                    {
                        PatientQueue.tps_ns_status = "WP";
                    }
                    else
                    {
                        PatientQueue.tps_ns_status = "QL";
                    }
                    PatientQueue.tps_status      = "NS";
                    PatientQueue.mrd_id          = null;
                    PatientQueue.tps_end_date    = null;
                    PatientQueue.tps_start_date  = null;
                    PatientQueue.tps_update_by   = username;
                    PatientQueue.tps_update_date = dateNow;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #21
0
        public void SendToPE(ref trn_patient_regi PatientRegis, DateTime dateNow, string username)  // use for PE Before Check B
        {
            try
            {
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    int mhs_id = (PatientRegis.tpr_site_use == null || PatientRegis.tpr_site_use == 0) ? (int)PatientRegis.mhs_id : (int)PatientRegis.tpr_site_use;

                    mst_room_hdr mstRoomHdr = cdc.mst_room_hdrs.Where(x => x.mrm_code == "DC" && x.mhs_id == mhs_id).FirstOrDefault();
                    mst_event    mstEvent   = cdc.mst_events
                                              .Where(x => x.mvt_code == "PE")
                                              .FirstOrDefault();
                    trn_patient_queue PatientQueue = PatientRegis.trn_patient_queues
                                                     .Where(x => x.mrm_id == mstRoomHdr.mrm_id && x.mvt_id == mstEvent.mvt_id)
                                                     .FirstOrDefault();
                    SendToRoom(ref PatientRegis, mstRoomHdr.mrm_id, mstEvent.mvt_id, dateNow, username);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #22
0
 private bool checkStatusCanSend(int tps_id)
 {
     try
     {
         using (InhCheckupDataContext cdc = new InhCheckupDataContext())
         {
             trn_patient_queue tps = cdc.trn_patient_queues.Where(x => x.tps_id == tps_id).FirstOrDefault();
             if (tps != null && tps.tps_status == "NS" && tps.tps_ns_status == "QL")
             {
                 return(true);
             }
             else
             {
                 return(false);
             }
         }
     }
     catch (Exception ex)
     {
         Program.MessageError("frmWaiting", "checkStatusCanSend", ex, false);
         return(false);
     }
 }
Example #23
0
        public void SendToScreening(ref trn_patient_regi PatientRegis, DateTime dateNow, string username)
        {
            try
            {
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    int          mhs_id     = PatientRegis.mhs_id;
                    mst_room_hdr mstRoomHdr = cdc.mst_room_hdrs.Where(x => x.mrm_code == "SC" && x.mhs_id == mhs_id).FirstOrDefault();
                    mst_event    mstEvent   = cdc.mst_events
                                              .Where(x => x.mvt_code == "SC")
                                              .FirstOrDefault();

                    trn_patient_queue PatientQueue = PatientRegis.trn_patient_queues.Where(x => x.mrm_id == mstRoomHdr.mrm_id && x.mvt_id == mstEvent.mvt_id).FirstOrDefault();

                    if (PatientQueue == null)
                    {
                        PatientQueue                 = new trn_patient_queue();
                        PatientQueue.mrm_id          = mstRoomHdr.mrm_id;
                        PatientQueue.mvt_id          = mstEvent.mvt_id;
                        PatientQueue.tps_create_by   = username;
                        PatientQueue.tps_create_date = dateNow;
                        PatientRegis.trn_patient_queues.Add(PatientQueue);
                    }
                    PatientQueue.mrd_id          = null;
                    PatientQueue.tps_end_date    = null;
                    PatientQueue.tps_start_date  = null;
                    PatientQueue.tps_status      = "NS";
                    PatientQueue.tps_ns_status   = "QL";
                    PatientQueue.tps_update_by   = username;
                    PatientQueue.tps_update_date = dateNow;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #24
0
        private void SendQueueBook(ref trn_patient_regi patientRegis, DateTime dateNow)
        {
            try
            {
                using (InhCheckupDataContext dbc = new InhCheckupDataContext())
                {
                    int patientSite = patientRegis.mhs_id;
                    int mrm_idBook  = dbc.mst_room_hdrs.Where(x => x.mhs_id == patientSite && x.mrm_code == "BK").Select(x => x.mrm_id).FirstOrDefault();
                    int mvt_idBook  = dbc.mst_events.Where(x => x.mvt_code == "BK").Select(x => x.mvt_id).FirstOrDefault();

                    patientRegis.tpr_status    = "WB";
                    patientRegis.tpr_pe_status = "RS";

                    trn_patient_queue patientQueue = patientRegis.trn_patient_queues.Where(x => x.mrm_id == mrm_idBook && x.mvt_id == mvt_idBook).FirstOrDefault();
                    if (patientQueue == null)
                    {
                        patientQueue                 = new trn_patient_queue();
                        patientQueue.mrm_id          = mrm_idBook;
                        patientQueue.mvt_id          = mvt_idBook;
                        patientQueue.mrd_id          = null;
                        patientQueue.tps_end_date    = null;
                        patientQueue.tps_start_date  = null;
                        patientQueue.tps_status      = "NS";
                        patientQueue.tps_ns_status   = "QL";
                        patientQueue.tps_create_by   = "SysPend";
                        patientQueue.tps_create_date = dateNow;
                        patientQueue.tps_update_by   = "SysPend";
                        patientQueue.tps_update_date = dateNow;
                        patientRegis.trn_patient_queues.Add(patientQueue);
                    }
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
Example #25
0
 private StatusTransaction get_send_to_tps_id(int tpr_id, int mrm_id, int mvt_id, ref int?tps_id)
 {
     try
     {
         using (InhCheckupDataContext cdc = new InhCheckupDataContext())
         {
             try
             {
                 trn_patient_queue tps = cdc.trn_patient_queues
                                         .Where(x => x.tpr_id == tpr_id &&
                                                x.mrm_id == mrm_id &&
                                                x.mvt_id == mvt_id)
                                         .FirstOrDefault();
                 if (tps != null)
                 {
                     tps_id = tps.tps_id;
                 }
                 else
                 {
                     tps_id = null;
                 }
                 return(StatusTransaction.True);
             }
             catch (Exception ex)
             {
                 Program.MessageError("SendManaulCls", "get_send_to_tps_id", ex, false);
                 return(StatusTransaction.Error);
             }
         }
     }
     catch (Exception ex)
     {
         Program.MessageError("SendManaulCls", "get_send_to_tps_id", ex, false);
         return(StatusTransaction.Error);
     }
 }
Example #26
0
 public StatusTransaction SendToCheckCBeforePE(ref trn_patient_regi tpr, ref string messegeSend)
 {
     try
     {
         DateTime dateNow = Program.GetServerDateTime();
         EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
         mst_room_hdr      mrm         = mst.GetMstRoomHdr("DC", Program.CurrentSite.mhs_code);
         mst_hpc_site      mhs         = mst.GetMstHpcSite(mrm.mhs_id);
         mst_zone          mze         = mst.GetMstZone((int)mrm.mze_id);
         mst_event         mvt         = mst.GetMstEvent("PE");
         trn_patient_queue tps         = tpr.trn_patient_queues.Where(x => x.mrm_id == mrm.mrm_id && x.mvt_id == mvt.mvt_id).FirstOrDefault();
         if (tps == null)
         {
             tps = new trn_patient_queue();
             tps.tps_create_by   = Program.CurrentUser.mut_username;
             tps.tps_create_date = dateNow;
             tpr.trn_patient_queues.Add(tps);
         }
         tps.mrm_id          = mrm.mrm_id;
         tps.mvt_id          = mvt.mvt_id;
         tps.mrd_id          = null;
         tps.tps_end_date    = null;
         tps.tps_start_date  = null;
         tps.tps_status      = "NS";
         tps.tps_ns_status   = "WP";
         tps.tps_update_by   = Program.CurrentUser.mut_username;
         tps.tps_update_date = dateNow;
         messegeSend         = string.Format(Program.MsgSend, mrm.mrm_ename, mze.mze_ename, mhs.mhs_ename, tpr.tpr_queue_no);
         return(StatusTransaction.True);
     }
     catch (Exception ex)
     {
         Program.MessageError("TransactionQueueCls", "SendToPE", ex, false);
         return(StatusTransaction.Error);
     }
 }
Example #27
0
        public StatusTransaction ReturnToCheckB(SendType type, int tpr_id, int mrm_id, int tps_id, List <int> list_mvt_id, ref string messegeSend)
        {
            try
            {
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    try
                    {
                        cdc.Connection.Open();
                        DbTransaction tran = cdc.Connection.BeginTransaction();
                        cdc.Transaction = tran;

                        DateTime          dateNow = Program.GetServerDateTime();
                        trn_patient_regi  tpr     = cdc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                        StatusTransaction result  = new TransactionQueueCls().ReturnToCheckB(ref tpr, ref messegeSend);
                        if (result == StatusTransaction.True)
                        {
                            trn_patient_queue tps = tpr.trn_patient_queues.Where(x => x.tps_id == tps_id).FirstOrDefault();
                            if (tps != null)
                            {
                                if (type == Class.SendType.Normal)
                                {
                                    new TransactionQueueCls().endQueue(ref tpr, tps_id);
                                }
                                else if (type == Class.SendType.Skip)
                                {
                                    cdc.trn_patient_queues.DeleteOnSubmit(tps);
                                }
                                else if (type == Class.SendType.Pending)
                                {
                                    tps.tps_status = "PD";
                                }
                                else
                                {
                                    return(StatusTransaction.Error);
                                }
                            }
                            else
                            {
                                return(StatusTransaction.Error);
                            }
                            cdc.SubmitChanges();
                            cdc.Transaction.Commit();
                            return(StatusTransaction.True);
                        }
                        else
                        {
                            return(result);
                        }
                    }
                    catch (Exception ex)
                    {
                        cdc.Transaction.Rollback();
                        Program.MessageError("SendQueue", "ReturnToCheckB", ex, false);
                        return(StatusTransaction.Error);
                    }
                    finally
                    {
                        cdc.Connection.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                Program.MessageError("SendQueue", "ReturnToCheckB", ex, false);
                return(StatusTransaction.Error);
            }
        }
Example #28
0
        public bool SendQueueDoctorPEBeforeCheckB(int tpr_id, int tps_id, string username)
        {
            try
            {
                DateTime dateNow = Program.GetServerDateTime();
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    try
                    {
                        cdc.Connection.Open();
                        DbTransaction trans = cdc.Connection.BeginTransaction();
                        cdc.Transaction = trans;

                        trn_patient_regi patientRegis = cdc.trn_patient_regis
                                                        .Where(x => x.tpr_id == tpr_id)
                                                        .FirstOrDefault();

                        trn_patient_queue PatientQueue = patientRegis.trn_patient_queues
                                                         .Where(x => x.tps_id == tps_id)
                                                         .FirstOrDefault();

                        PatientQueue.tps_send_by     = username;
                        PatientQueue.tps_end_date    = dateNow;
                        PatientQueue.tps_status      = "ED";
                        PatientQueue.tps_ns_status   = null;
                        PatientQueue.tps_update_by   = username;
                        PatientQueue.tps_update_date = dateNow;

                        mst_event eventScreening = cdc.mst_events.Where(x => x.mvt_code == "SC").FirstOrDefault();
                        if (patientRegis.trn_patient_queues.Any(x => x.mvt_id == eventScreening.mvt_id))
                        {
                            if (patientRegis.tpr_return_screening == true)
                            {
                                patientRegis.tpr_return_screening = false;
                                SendToScreening(ref patientRegis, dateNow, username);
                            }
                            else
                            {
                                SendToCheckB(ref patientRegis, dateNow, username);
                            }
                        }
                        else
                        {
                            SendToScreening(ref patientRegis, dateNow, username);
                        }

                        cdc.SubmitChanges();
                        cdc.Transaction.Commit();
                        return(true);
                    }
                    catch (Exception ex)
                    {
                        cdc.Transaction.Rollback();
                        Program.MessageError("TransactionQueueCls", "ReadyQueue(int tps_id, int mrd_id, string username)", ex, false);
                        return(false);
                    }
                    finally
                    {
                        cdc.Connection.Close();
                    }
                }
            }
            catch (Exception ex)
            {
                Program.MessageError("TransactionQueueCls", "ReadyQueue(int tps_id, int mrd_id, string username)", ex, false);
                return(false);
            }
        }
Example #29
0
        public PatientCallQueue CallQueue(int mrd_id, int mut_id, string username)
        {
            try
            {
                DateTime dateNow = Program.GetServerDateTime();
                List <Class.WaitingListCls.WaitingListDtl> result = new Class.WaitingListCls().getWaitingRoomDtl(mrd_id, mut_id);
                foreach (Class.WaitingListCls.WaitingListDtl row in result)
                {
                    using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                    {
                        try
                        {
                            cdc.Connection.Open();
                            DbTransaction trans = cdc.Connection.BeginTransaction();
                            cdc.Transaction = trans;

                            trn_patient_queue PatientQueue = cdc.trn_patient_queues
                                                             .Where(x => x.tps_id == row.tps_id)
                                                             .FirstOrDefault();
                            if (PatientQueue.tps_ns_status == "QL")
                            {
                                PatientQueue.mrd_id          = mrd_id;
                                PatientQueue.tps_ns_status   = "WR";
                                PatientQueue.tps_update_by   = username;
                                PatientQueue.tps_update_date = dateNow;
                                try
                                {
                                    cdc.SubmitChanges();
                                    cdc.Transaction.Commit();
                                    Program.CurrentRegis         = PatientQueue.trn_patient_regi;
                                    Program.CurrentPatient_queue = PatientQueue;
                                    return(new PatientCallQueue
                                    {
                                        Status = PatientCallQueue.StatusCallQueue.GotPatient,
                                        tpr_id = PatientQueue.tpr_id,
                                        tps_id = PatientQueue.tps_id
                                    });
                                }
                                catch (System.Data.Linq.ChangeConflictException) //Win32Exception
                                {
                                    Program.CurrentRegis         = null;
                                    Program.CurrentPatient_queue = null;
                                }
                            }
                        }
                        catch (Exception ex)
                        {
                            cdc.Transaction.Rollback();
                            Program.MessageError("TransactionQueueCls", "CallQueue(int mrd_id, int mut_id, string username)", ex, false);
                            Program.CurrentRegis         = null;
                            Program.CurrentPatient_queue = null;
                            return(new PatientCallQueue
                            {
                                Status = PatientCallQueue.StatusCallQueue.Error,
                                tpr_id = null,
                                tps_id = null
                            });
                        }
                        finally
                        {
                            cdc.Connection.Close();
                        }
                    }
                }
                return(null);
            }
            catch (Exception ex)
            {
                Program.MessageError("TransactionQueueCls", "CallQueue(int mrd_id, int mut_id, string username)", ex, false);
                Program.CurrentRegis         = null;
                Program.CurrentPatient_queue = null;
                return(null);
            }
        }
Example #30
0
        public trn_patient_regi getDefaultPatientRegis(tmp_getptarrived tga, int SiteCode = -999)//add SiteCode suriya 03/04/2015
        {
            mst_hpc_site mhs_clinic = getSiteClinic();
            DateTime     dateNow    = DateTime.Now; //Program.GetServerDateTime();

            trn_patient_regi tpr = new trn_patient_regi
            {
                mac_id = null,                                                                        //
                mdc_id = null,                                                                        //
                mhc_id = null,                                                                        //
                //mhs_id = mhs_clinic.mhs_id,//del  suriya 03/04/2015
                mhs_id           = SiteCode == -999 ? mhs_clinic.mhs_id : Program.CurrentSite.mhs_id, //add  suriya 03/04/2015
                mut_id           = null,                                                              //
                tcd_id           = null,                                                              //
                tnc_id           = null,                                                              //
                tpr_appoint_type = 'T',
                //tpr_appointment_date = dateNow,//del  suriya 03/04/2015
                //tpr_arrive_date = dateNow,//del  suriya 03/04/2015
                tpr_appointment_date = SiteCode == -999 ? dateNow : tga.paadm_admdate, //add  suriya 03/04/2015
                tpr_arrive_date      = SiteCode == -999 ? dateNow : tga.paadm_admdate, //add  suriya 03/04/2015
                tpr_arrive_type      = tga.ser_rowid == 2808 ? 'W' : 'A',
                tpr_aviation_type    = null,                                           //
                tpr_check_pending    = 'N',
                tpr_comp_dep         = null,                                           //
                tpr_comp_dep_edesc   = null,                                           //
                tpr_comp_dep_tdesc   = null,                                           //
                tpr_comp_edesc       = null,                                           //
                tpr_comp_tdesc       = null,                                           //
                tpr_company_code     = null,                                           //
                tpr_company_id       = null,                                           //
                tpr_create_by        = "CONSULT",
                tpr_create_date      = dateNow,
                tpr_email            = tga.paper_email,
                tpr_employee_no      = null, //
                tpr_en_no            = tga.paadm_admno,
                tpr_en_rowid         = tga.paadm_rowid,
                tpr_foreigner        = tga.ctnat_code == "TH" ? 'N' : 'Y', // 'TH' ? 'N' : 'Y'
                tpr_home_phone       = tga.paper_telh,
                tpr_main_address     = tga.paper_stname,
                tpr_main_amphur      = tga.ctcit_desc,
                tpr_main_id          = null, // reinsert when submit
                tpr_main_province    = tga.prov_desc,
                tpr_main_tumbon      = tga.citarea_desc,
                tpr_main_zip_code    = tga.ctzip_code,
                //tpr_mhc_ename = tpos.Select(x => x.tos_od_set_name).FirstOrDefault(),
                tpr_miss_lower           = false,
                tpr_mobile_phone         = tga.paper_mobphone,
                tpr_new_patient          = getNewPatientType(tga),
                tpr_npo_text             = null, //
                tpr_npo_time             = null, //
                tpr_office_phone         = tga.paper_telo,
                tpr_other_address        = tga.paper_stname,
                tpr_other_amphur         = tga.ctcit_desc,
                tpr_other_province       = tga.prov_desc,
                tpr_other_tumbon         = tga.citarea_desc,
                tpr_other_zip_code       = tga.ctzip_code,
                tpr_patient_type         = '1',
                tpr_pe_doc               = 'N',
                tpr_pe_doc_code          = null, //
                tpr_pe_doc_name          = null, //
                tpr_pe_status            = null, //
                tpr_pe_type              = 'W',
                tpr_pending              = false,
                tpr_pending_cancel_onday = false,
                tpr_pending_ct           = 0,
                tpr_pending_no_station   = null, //
                tpr_prev_pe_code         = null, //
                tpr_prev_pe_name         = null, //
                tpr_print_book           = "N",
                tpr_PRM                = null,
                tpr_PRM_check          = null,
                tpr_PRM_doccode        = null,
                tpr_PRM_docname        = null,
                tpr_PRM_doctor         = null,
                tpr_queue_no           = getQueueOtherClinic(tga.paadm_admno),
                tpr_queue_type         = getTprQueueType(tga),
                tpr_remark             = null, //
                tpr_req_doc_code       = null, //
                tpr_req_doc_gender     = null, //
                tpr_req_doc_name       = null, //
                tpr_req_doctor         = 'N',
                tpr_req_inorout_doctor = null, //
                tpr_req_pe_bef_chkup   = null, //
                tpr_rtn_pe_date        = null, //
                tpr_rtn_pe_name        = null, //
                tpr_send_book          = null, //
                tpr_send_to            = null, //
                tpr_site_use           = null, //
                tpr_status             = null, //
                tpr_type               = null, //
                tpr_update_by          = "CONSULT",
                tpr_update_date        = dateNow,
                tpr_vip_code           = tga.penstype_code,
                tpr_vip_desc           = tga.penstype_desc,
                tpr_arrive_site        = tga.LocWhenOrdOther,
                tpr_arrive_site_desc   = tga.LocWhenOrdOtherDesc
            };

            tpr.trn_basic_measure_hdrs.Add(getBasicHdr(tga.papmi_no, tga.paadm_admno));


            //GetPatientPackage(ref tpr, dateNow);
            //genPatientPlan(ref tpr, Program.CurrentSite.mhs_id, dateNow);
            int             enRowID    = Convert.ToInt32(tpr.tpr_en_rowid);
            GetPTPackageCls PackageCls = new GetPTPackageCls();
            EnumerableRowCollection <DataRow> getPTPackage = PackageCls.GetPTPackage(enRowID);

            PackageCls.AddPatientOrderItem(ref tpr, "System", dateNow, getPTPackage);
            PackageCls.AddPatientOrderSet(ref tpr, "System", dateNow, getPTPackage);
            List <MapOrderEvent> mapOrder = PackageCls.MapEvent(getPTPackage);

            PackageCls.AddPatientEvent(ref tpr, "System", dateNow, mapOrder);
            PackageCls.AddPatientPlan(ref tpr, "System", dateNow, mapOrder);
            PackageCls.skipReqDoctorOutDepartment(ref tpr);
            PackageCls.CompleteEcho(ref tpr);
            PackageCls.skipChangeEstToEcho(ref tpr, tpr.mhs_id);
            PackageCls.checkOrderPMR(ref tpr, tpr.mhs_id);


            trn_patient_queue tpq = getPatientQueue("CB", tpr);

            if (tpq != null)
            {
                tpr.trn_patient_queues.Add(tpq);
            }

            List <trn_out_department> tod = getOutDepartment(tga.papmi_no, tga.ctloc_code, DateTime.Now);

            if (tod != null)
            {
                tpr.trn_out_departments.AddRange(tod);
            }

            trn_patient_cat tpc = getForeignerPatient(tga.ctnat_code);

            if (tpc != null)
            {
                tpr.trn_patient_cats.Add(tpc);
            }

            return(tpr);
        }