コード例 #1
0
        public void insertPatientPending(ref trn_patient_regi tpr, string mrm_code)
        {
            EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
            mst_room_hdr mrm = mst.GetMstRoomHdr(mrm_code);

            insertPatientPending(ref tpr, mrm.mrm_id);
        }
コード例 #2
0
 public bool skipChangeEstToEcho(ref trn_patient_regi tpr, int mhs_id)
 {
     try
     {
         using (InhCheckupDataContext cdc = new InhCheckupDataContext())
         {
             DateTime      dateNow         = Program.GetServerDateTime();
             List <string> set_row_id_skip = cdc.mst_config_dtls
                                             .Where(x => x.mst_config_hdr.mfh_code == "ECHO" &&
                                                    x.mst_config_hdr.mhs_id == mhs_id &&
                                                    x.mst_config_hdr.mfh_status == 'A' &&
                                                    (x.mst_config_hdr.mfh_effective_date == null ? true : dateNow >= x.mst_config_hdr.mfh_effective_date.Value.Date) &&
                                                    (x.mst_config_hdr.mfh_expire_date == null ? true : dateNow <= x.mst_config_hdr.mfh_expire_date.Value))
                                             .Select(x => x.mfd_text).ToList();
             trn_patient_order_set order_skip_est_to_echo = tpr.trn_patient_order_sets
                                                            .Where(x => set_row_id_skip.Contains(x.tos_od_set_code) &&
                                                                   x.tos_status == true).FirstOrDefault();
             if (order_skip_est_to_echo != null)
             {
                 EmrClass.GetDataMasterCls getMaster = new EmrClass.GetDataMasterCls();
                 int est_mvt_id  = getMaster.GetMstEvent("ES").mvt_id;
                 int echo_mvt_id = getMaster.GetMstEvent("EC").mvt_id;
                 List <trn_patient_plan> planEST = tpr.trn_patient_plans.Where(x => x.mvt_id == est_mvt_id).ToList();
                 foreach (trn_patient_plan PatientPlan in planEST)
                 {
                     PatientPlan.mvt_id     = echo_mvt_id;
                     PatientPlan.tpl_status = 'P';
                 }
                 int pe_mvt_id = getMaster.GetMstEvent("PE").mvt_id;
                 List <trn_patient_plan> planPE = tpr.trn_patient_plans
                                                  .Where(x => x.mvt_id == pe_mvt_id).ToList();
                 foreach (var plan in planPE)
                 {
                     tpr.trn_patient_plans.Remove(plan);
                 }
                 try
                 {
                     List <trn_patient_event> eventEST = tpr.trn_patient_events.Where(x => x.mvt_id == est_mvt_id).ToList();
                     foreach (var ev in eventEST)
                     {
                         tpr.trn_patient_events.Remove(ev);
                     }
                 }
                 catch
                 {
                 }
                 return(true);
             }
             else
             {
                 return(true);
             }
         }
     }
     catch (Exception ex)
     {
         Program.MessageError("GetDataFromWSTrakCare", "skipChangeEstToEcho", ex, false);
         return(false);
     }
 }
コード例 #3
0
 public bool skipReqDoctorOutDepartment(ref trn_patient_regi tpr)
 {
     try
     {
         if (tpr.tpr_req_doctor == 'Y' && tpr.tpr_req_inorout_doctor == "UT")
         {
             int pe_mvt_id = new EmrClass.GetDataMasterCls().GetMstEvent("PE").mvt_id;
             List <trn_patient_plan> planPE = tpr.trn_patient_plans.Where(x => x.mvt_id == pe_mvt_id).ToList();
             foreach (trn_patient_plan patient_plan in planPE)
             {
                 trn_patient_plan remove_plan = patient_plan;
                 if (patient_plan.tpl_id != 0)
                 {
                     remove_plan = tpr.trn_patient_plans.Where(x => x.tpl_id == patient_plan.tpl_id).FirstOrDefault();
                 }
                 tpr.trn_patient_plans.Remove(remove_plan);
             }
             return(true);
         }
         else
         {
             return(true);
         }
     }
     catch (Exception ex)
     {
         Program.MessageError("GetDataFromWSTrakCare", "skipReqDoctorOutDepartment", ex, false);
         return(false);
     }
 }
コード例 #4
0
        public void updatePendingPatientPlan(ref trn_patient_regi tpr, int mvt_id, int mhs_id)
        {
            EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
            mst_room_hdr mrm = mst.GetMstRoomHdrByMvt(mvt_id, mhs_id);

            updatePendingPatientPlan(ref tpr, mrm.mrm_id, mvt_id, mhs_id);
        }
コード例 #5
0
        public void updatePendingPatientPlan(ref trn_patient_regi tpr, string mvt_code, int mrm_id, int mhs_id)
        {
            EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
            mst_event mvt = mst.GetMstEvent(mvt_code);

            updatePendingPatientPlan(ref tpr, mrm_id, mvt.mvt_id, mhs_id);
        }
コード例 #6
0
 public StatusTransaction pendingPatientCheckpointB(int tpr_id, int mhs_id, List <int> list_mvt_id)
 {
     try
     {
         using (InhCheckupDataContext cdc = new InhCheckupDataContext())
         {
             trn_patient_regi tpr = cdc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
             tpr.tpr_pending = true;
             EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
             foreach (int mvt_id in list_mvt_id)
             {
                 mst_room_hdr mrm = mst.GetMstRoomHdrByMvt(mvt_id, mhs_id);
                 updatePendingPatientPlan(ref tpr, mvt_id, mrm.mrm_id, mhs_id);
                 insertPatientPending(ref tpr, mrm.mrm_id);
             }
             cdc.SubmitChanges();
             return(StatusTransaction.True);
         }
     }
     catch (Exception ex)
     {
         Program.MessageError("ClsPendingOnStation", "pendingPatientCheckpointB", ex, false);
         return(StatusTransaction.Error);
     }
 }
コード例 #7
0
        public void updatePendingPatientQueue(ref InhCheckupDataContext cdc, ref trn_patient_regi tpr, string mrm_code)
        {
            EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
            mst_room_hdr mrm = mst.GetMstRoomHdr(mrm_code);

            updatePendingPatientQueue(ref cdc, ref tpr, mrm.mrm_id);
        }
コード例 #8
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;
            });
        }
コード例 #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);
            }
        }
コード例 #10
0
 public StatusTransaction endPlan(ref trn_patient_regi tpr, string mrm_code)
 {
     try
     {
         EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
         mst_room_hdr mrm = mst.GetMstRoomHdr(mrm_code);
         return(endPlan(ref tpr, mrm.mrm_id));
     }
     catch (Exception ex)
     {
         Program.MessageError("TransactionPlanCls", "endPlan", ex, false);
         return(StatusTransaction.Error);
     }
 }
コード例 #11
0
 public StatusTransaction endQueue(ref trn_patient_regi tpr, string mrm_code)
 {
     try
     {
         EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
         mst_room_hdr mrm    = mst.GetMstRoomHdr(mrm_code);
         int          tps_id = Program.CurrentPatient_queue.tps_id;
         return(endQueue(ref tpr, tps_id));
     }
     catch (Exception ex)
     {
         Program.MessageError("TransactionQueueCls", "endQueue", ex, false);
         return(StatusTransaction.Error);
     }
 }
コード例 #12
0
 public static bool checkAskingLoginRoom(int mut_id, int mhs_id, int mrd_id)
 {
     // return false =แสดงว่ามีการเข้าใช้งานเครื่องอื่นแล้ว : return true=แสดงว่าเป็นเครื่องที่ใช้งานอยู่
     try
     {
         using (InhCheckupDataContext cdc = new InhCheckupDataContext())
         {
             EmrClass.GetDataMasterCls mst   = new EmrClass.GetDataMasterCls();
             List <int?>           mrd_zoneB = mst.Get_MrdZoneB;
             List <log_user_login> log       = cdc.log_user_logins
                                               .Where(x => x.mut_id == mut_id &&
                                                      x.lug_end_date == null &&
                                                      x.mhs_id == mhs_id)
                                               .ToList();
             if (log != null)
             {
                 if (log.Count() > 0)
                 {
                     log_user_login log_same_mrd_id = log.Where(x => x.mrd_id == mrd_id).FirstOrDefault();
                     if (log_same_mrd_id != null)
                     {
                         return(true);
                     }
                     else
                     {
                         if (!mrd_zoneB.Contains(mrd_id))
                         {
                             return(true);
                         }
                         else
                         {
                             log_user_login last_log = log.OrderByDescending(x => x.lug_start_date)
                                                       .FirstOrDefault();
                             if (!mrd_zoneB.Contains(last_log.mrd_id))
                             {
                                 return(true);
                             }
                         }
                     }
                 }
             }
         }
     }
     catch
     {
     }
     return(false);
 }
コード例 #13
0
        public StatusTransaction SendManualOnDoctor(int tpr_id, int mrm_id, int mvt_id, ref string messageSend)
        {
            try
            {
                mst_event mvt = new EmrClass.GetDataMasterCls().GetMstEvent(mvt_id);
                if (mvt.mvt_code == "DC")
                {
                    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();
                            new TransactionPlanCls().endPlan(ref tpr, mvt_id);
                            new TransactionQueueCls().endQueue(ref tpr, mrm_id, new List <int> {
                                mvt_id
                            });
                            cdc.SubmitChanges();
                            cdc.Transaction.Commit();
                            return(StatusTransaction.True);
                        }
                        catch (Exception ex)
                        {
                            cdc.Transaction.Rollback();
                            Program.MessageError("SendManaulCls", "SendManualOnStation", ex, false);
                            return(StatusTransaction.Error);
                        }
                        finally
                        {
                            cdc.Connection.Close();
                        }
                    }
                }
                else
                {
                    return(SendManualOnCheckB(tpr_id, mrm_id, ref messageSend));
                }
            }
            catch (Exception ex)
            {
                Program.MessageError("SendManaulCls", "SendManualOnDoctor", ex, false);
                return(StatusTransaction.Error);
            }
        }
コード例 #14
0
 public StatusTransaction SendToPE(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");
         return(SendToRoom(ref tpr, ref messegeSend, mrm.mrm_id, mvt.mvt_id));
     }
     catch (Exception ex)
     {
         Program.MessageError("TransactionQueueCls", "SendToPE", ex, false);
         return(StatusTransaction.Error);
     }
 }
コード例 #15
0
 public StatusTransaction endPlan(ref trn_patient_regi tpr, int mrm_id)
 {
     try
     {
         EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
         mst_room_hdr mrm         = mst.GetMstRoomHdr(mrm_id);
         List <int>   list_mvt_id = new List <int>();
         if (mrm.mrm_code == "EM")
         {
             if (Program.CurrentRoom.mrd_type == 'D')
             {
                 list_mvt_id.Add(mst.GetMstEvent("EM").mvt_id);
             }
             else if (Program.CurrentRoom.mrd_type == 'N')
             {
                 list_mvt_id.Add(mst.GetMstEvent("EN").mvt_id);
             }
         }
         else if (mrm.mrm_code == "TE")
         {
             if (Program.CurrentRoom.mrd_type == 'T')
             {
                 list_mvt_id.Add(mst.GetMstEvent("TX").mvt_id);
             }
             else if (Program.CurrentRoom.mrd_type == 'D')
             {
                 list_mvt_id.Add(mst.GetMstEvent("TE").mvt_id);
             }
         }
         else
         {
             list_mvt_id = mst.GetMstRoomEventByMrm(mrm_id).Select(x => x.mvt_id).ToList();
         }
         //List<trn_patient_plan> tpl = tpr.trn_patient_plans
         //                                .Where(x => list_mvt_id.Contains(x.mvt_id)).ToList();
         //tpl.ForEach(x => x.tpl_status = 'P');
         return(endPlan(ref tpr, list_mvt_id));
     }
     catch (Exception ex)
     {
         Program.MessageError("TransactionPlanCls", "endPlan", ex, false);
         return(StatusTransaction.Error);
     }
 }
コード例 #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;
        }
コード例 #17
0
        public void updatePendingPatientPlan(ref trn_patient_regi tpr, int mvt_id, int mrm_id, int mhs_id)
        {
            EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
            mst_room_hdr mrm = mst.GetMstRoomHdr(mrm_id);
            List <int>   list_mvt_id;

            if (mrm.mrm_code == "TE")
            {
                list_mvt_id = new List <int> {
                    mvt_id
                };
            }
            else
            {
                list_mvt_id = mst.GetMstRoomEventByMrm(mrm_id).Select(x => x.mvt_id).ToList();
            }
            List <trn_patient_plan> tpl = tpr.trn_patient_plans
                                          .Where(x => list_mvt_id.Contains(x.mvt_id)).ToList();

            tpl.ForEach(x => x.tpl_status = 'C');
        }
コード例 #18
0
 public bool CompleteEcho(ref trn_patient_regi tpr)
 {
     try
     {
         EmrClass.GetDataMasterCls getMaster = new EmrClass.GetDataMasterCls();
         int echo_mvt_id = getMaster.GetMstEvent("EC").mvt_id;
         foreach (trn_patient_plan plan in tpr.trn_patient_plans)
         {
             if (plan.mvt_id == echo_mvt_id)
             {
                 plan.tpl_status = 'P';
             }
         }
         return(true);
     }
     catch (Exception ex)
     {
         Program.MessageError("GetDataFromWSTrakCare", "CompleteEcho(ref trn_patient_regi tpr, int mhs_id)", ex, false);
         return(false);
     }
 }
コード例 #19
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);
     }
 }
コード例 #20
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();
        }
コード例 #21
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);
                }
            }
        }
コード例 #22
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;
            }
        }
コード例 #23
0
        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);
            }
        }
コード例 #24
0
 private void dataGridView1_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
 {
     try
     {
         if (e.ColumnIndex >= 0 && e.RowIndex >= 0)
         {
             if (dataGridView1.Columns[e.ColumnIndex].Name == "Column1")
             {
                 using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                 {
                     string           tooltipName   = "Name : ";
                     string           tooltipDoctor = "Doctor Name : ";
                     string           tooltipSite   = "Current Site : ";
                     string           tooltipRoom   = "Current Room : ";
                     int              tpr_id        = Convert.ToInt32(dataGridView1["coltprid", e.RowIndex].Value);
                     trn_patient_regi patient_regis = cdc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                     if (patient_regis != null)
                     {
                         tooltipName += patient_regis.trn_patient.tpt_othername;
                         if (!string.IsNullOrEmpty(patient_regis.tpr_pe_doc_code))
                         {
                             mst_user_type user = new EmrClass.GetDataMasterCls().GetUser(patient_regis.tpr_pe_doc_code);
                             if (user != null)
                             {
                                 tooltipDoctor += user.mut_fullname;
                             }
                         }
                         trn_patient_queue tps = patient_regis.trn_patient_queues.Where(x => x.tps_status == "NS" || x.tps_status == "WK").FirstOrDefault();
                         if (tps != null)
                         {
                             mst_room_hdr mrm = new EmrClass.GetDataMasterCls().GetMstRoomHdr((int)tps.mrm_id);
                             if (mrm != null)
                             {
                                 mst_hpc_site mhs = new EmrClass.GetDataMasterCls().GetMstHpcSite(mrm.mhs_id);
                                 if (mhs != null)
                                 {
                                     tooltipSite += mhs.mhs_ename;
                                 }
                                 tooltipSite += ", " + mrm.mrm_ename;
                             }
                             if (tps.mrd_id != null)
                             {
                                 mst_room_dtl room_dtl = cdc.mst_room_dtls.Where(x => x.mrd_id == tps.mrd_id).FirstOrDefault();
                                 if (room_dtl != null)
                                 {
                                     tooltipRoom += room_dtl.mrd_ename;
                                 }
                             }
                         }
                     }
                     dataGridView1[e.ColumnIndex, e.RowIndex].ToolTipText = tooltipName + Environment.NewLine +
                                                                            tooltipDoctor + Environment.NewLine +
                                                                            tooltipSite + Environment.NewLine +
                                                                            tooltipRoom;
                 }
             }
         }
     }
     catch (Exception ex)
     {
         Program.MessageError("UIFooter", "dataGridView1_CellMouseMove", ex.Message, false);
     }
 }
コード例 #25
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();
                }
            }
        }
コード例 #26
0
        public static void SendBook(int tprid)
        {
            try
            {
                EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
                using (InhCheckupDataContext dbc = new InhCheckupDataContext())
                {
                    DateTime datenow  = Program.GetServerDateTime();
                    int      mrmID    = 0;
                    int      mvtID    = 0;
                    string   roomname = String.Empty;

                    trn_patient_regi tpr = dbc.trn_patient_regis.Where(x => x.tpr_id == tprid).FirstOrDefault();

                    //Update trn_patient_queue
                    int tps_ID = (from t in dbc.trn_patient_queues
                                  join t2 in dbc.mst_room_hdrs on t.mrm_id equals t2.mrm_id
                                  where t.tpr_id == tprid && t2.mrm_code == "CC" && t.tps_status == "WK"
                                  select t.tps_id).FirstOrDefault();

                    var objQueue = (from t1 in dbc.trn_patient_queues
                                    where t1.tps_id == tps_ID
                                    select t1).FirstOrDefault();
                    if (objQueue != null)
                    {
                        objQueue.tps_status      = "ED";
                        objQueue.mrd_id          = Program.CurrentRoom.mrd_id;
                        objQueue.tps_send_by     = Program.CurrentUser.mut_username;
                        objQueue.tps_end_date    = datenow;
                        objQueue.tps_update_by   = Program.CurrentUser.mut_username;
                        objQueue.tps_update_date = datenow;
                    }
                    // End.
                    mst_hpc_site mhs = mst.GetMstHpcSite(tpr.mhs_id);
                    mrmID = mst.GetMstRoomHdr("BK", mhs.mhs_code).mrm_id;
                    mvtID = mst.GetMstEvent("BK").mvt_id;
                    //mrmID = Program.Getmrm_id(dbc, "BK");
                    //mvtID = Program.Getmvt_id(dbc, "BK");
                    var getHnEn  = (from t in dbc.trn_patient_regis join t2 in dbc.trn_patients on t.tpt_id equals t2.tpt_id where t.tpr_id == tprid select new { t, t2 }).ToList();
                    var objevent = (from t1 in dbc.mst_events where t1.mvt_id == mvtID select t1).ToList();

                    if (objevent.Count != 0)
                    {
                        roomname = objevent[0].mvt_ename;
                    }

                    var objqueueBK = (from t1 in dbc.trn_patient_queues
                                      where t1.trn_patient_regi.trn_patient.tpt_hn_no == getHnEn.Select(x => x.t2.tpt_hn_no).FirstOrDefault() &&
                                      t1.trn_patient_regi.tpr_en_no == getHnEn.Select(x => x.t.tpr_en_no).FirstOrDefault() &&
                                      t1.mrm_id == mrmID &&
                                      t1.mvt_id == mvtID
                                      select t1).FirstOrDefault();

                    var objRegis = (from t1 in dbc.trn_patient_regis where t1.tpr_id == tprid select t1).FirstOrDefault();
                    if (objRegis != null)
                    {
                        objRegis.tpr_status    = "WB";
                        objRegis.tpr_pe_status = "RS";
                    }
                    if (objqueueBK == null && mrmID != 0)
                    {
                        trn_patient_queue newitem = new trn_patient_queue();
                        newitem.tpr_id          = tprid;
                        newitem.mrm_id          = mrmID;
                        newitem.mvt_id          = mvtID;
                        newitem.mrd_id          = null;
                        newitem.tps_end_date    = null;
                        newitem.tps_start_date  = null;
                        newitem.tps_status      = "NS";
                        newitem.tps_ns_status   = "QL";
                        newitem.tps_create_by   = Program.CurrentUser.mut_username;
                        newitem.tps_create_date = datenow;
                        newitem.tps_update_by   = Program.CurrentUser.mut_username;
                        newitem.tps_update_date = datenow;
                        dbc.trn_patient_queues.InsertOnSubmit(newitem);
                        MessageBox.Show("Send Completed. Send To" + roomname, "Completed", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    else if (objqueueBK != null && mrmID != 0)
                    {
                        objqueueBK.mrd_id          = null;
                        objqueueBK.tps_status      = "NS";
                        objqueueBK.tps_ns_status   = "QL";
                        objqueueBK.tps_create_date = datenow;
                        objqueueBK.tps_create_by   = Program.CurrentUser.mut_username;
                        objqueueBK.tps_update_by   = objqueueBK.tps_create_by;
                        objqueueBK.tps_update_date = datenow;
                        MessageBox.Show("Send Completed. Sent To" + roomname, "Completed", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    if (mvtID == mst.GetMstEvent("BK").mvt_id)
                    {
                        MessageBox.Show("Checkup Process Completed", "Completed", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                    dbc.SubmitChanges();
                }
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
        }
コード例 #27
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();
            }
        }
コード例 #28
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();
        }
コード例 #29
0
 public static bool checkKickCurrentUser(int mut_id, int mhs_id)
 {
     try
     {
         if (current_log != null)
         {
             using (InhCheckupDataContext cdc = new InhCheckupDataContext())
             {
                 log_user_login _current_log = cdc.log_user_logins.Where(x => x.lug_id == current_log.lug_id).FirstOrDefault();
                 if (_current_log.lug_end_date != null)
                 {
                     return(true);
                 }
                 else
                 {
                     List <log_user_login> log = cdc.log_user_logins
                                                 .Where(x => x.mut_id == mut_id &&
                                                        x.lug_end_date == null &&
                                                        x.mhs_id == mhs_id)
                                                 .ToList();
                     if (log != null)
                     {
                         log_user_login last_log = log.OrderByDescending(x => x.lug_start_date)
                                                   .FirstOrDefault();
                         if (last_log.lug_id != current_log.lug_id)
                         {
                             EmrClass.GetDataMasterCls mst = new EmrClass.GetDataMasterCls();
                             List <int?> mrd_zoneB         = mst.Get_MrdZoneB;
                             if (!mrd_zoneB.Contains(last_log.mrd_id))
                             {
                                 return(true);
                             }
                             else
                             {
                                 bool chkOtherZone = false;
                                 List <log_user_login> order_log = log.Where(x => x.lug_id != last_log.lug_id)
                                                                   .OrderByDescending(x => x.lug_start_date)
                                                                   .ToList();
                                 foreach (log_user_login result in order_log)
                                 {
                                     if (chkOtherZone == false && !mrd_zoneB.Contains(result.mrd_id))
                                     {
                                         chkOtherZone = true;
                                     }
                                     if (result.lug_id == current_log.lug_id)
                                     {
                                         if (chkOtherZone == true)
                                         {
                                             return(true);
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     catch
     {
     }
     return(false);
 }