示例#1
0
        public trn_basic_measure_hdr getBasicHdr(string hn, string en)
        {
            string   rvisual_out_lens  = null;
            string   lvisual_out_lens  = null;
            string   rvisual_with_lens = null;
            string   lvisual_with_lens = null;
            DateTime dateNow           = Program.GetServerDateTime();

            using (Service.WS_TrakcareCls ws = new Service.WS_TrakcareCls())
            {
                DataSet ds = ws.GetvitalSign(en);
                if (ds != null)
                {
                    if (ds.Tables.Count > 0)
                    {
                        string WithContactLens = ds.Tables[0].Rows[0]["WithContactLens"] == null ? "" : ds.Tables[0].Rows[0]["WithContactLens"].ToString();
                        if (WithContactLens == "N")
                        {
                            rvisual_out_lens = ds.Tables[0].Rows[0]["VisionRt"].ToString();
                            lvisual_out_lens = ds.Tables[0].Rows[0]["VisionLt"].ToString();
                        }
                        else if (WithContactLens == "Y")
                        {
                            rvisual_with_lens = ds.Tables[0].Rows[0]["VisionRt"].ToString();
                            lvisual_with_lens = ds.Tables[0].Rows[0]["VisionLt"].ToString();
                        }
                    }
                }
            }
            trn_basic_measure_hdr tbm = new trn_basic_measure_hdr
            {
                tbm_appearance               = "GD",
                tbm_arrive                   = "WK",
                tbm_create_by                = "System",
                tbm_create_date              = dateNow,
                tbm_precaution               = "SDP",
                tbm_purpose                  = 'W',
                tbm_triage                   = '5',
                tbm_type                     = 'N',
                tbm_update_by                = "System",
                tbm_update_date              = dateNow,
                tbm_vision_lvisual_out_lens  = lvisual_out_lens,
                tbm_vision_lvisual_with_lens = lvisual_with_lens,
                tbm_vision_rvisual_out_lens  = rvisual_out_lens,
                tbm_vision_rvisual_with_lens = rvisual_with_lens
            };

            tbm.trn_basic_measure_dtls.AddRange(getVitalSign(hn, en));
            return(tbm);
        }
示例#2
0
        public static void SaveBasicMeasurment(int tpr_id, bool _IsCallLab)
        {
            if (_IsCallLab == true)
            {
                using (InhCheckupDataContext dbc = new InhCheckupDataContext())
                {
                    trn_patient_regi tpr = dbc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                    if (tpr != null)
                    {
                        trn_basic_measure_hdr hdr = tpr.trn_basic_measure_hdrs.FirstOrDefault();
                        if (hdr == null)
                        {
                            hdr = new trn_basic_measure_hdr();
                            tpr.trn_basic_measure_hdrs.Add(hdr);
                        }

                        List <trn_basic_measure_dtl> dtl = hdr.trn_basic_measure_dtls.ToList();
                        if (dtl.Count() > 0)
                        {
                            dbc.trn_basic_measure_dtls.DeleteAllOnSubmit(dtl);
                        }

                        EmrClass.GetDataFromWSTrakCare tk       = new EmrClass.GetDataFromWSTrakCare();
                        List <trn_basic_measure_dtl>   newBmDtl = tk.getVitalSignByHN(tpr.trn_patient.tpt_hn_no);
                        if (newBmDtl != null && newBmDtl.Count() > 0)
                        {
                            trn_basic_measure_dtl last_basic_dtl = newBmDtl.OrderByDescending(x => x.tbd_date).FirstOrDefault();
                            if (last_basic_dtl != null)
                            {
                                hdr.tbm_glass_or_contact = last_basic_dtl.tbd_vision_with_lens == true ? 'Y' : 'N';
                            }
                            if (newBmDtl != null && newBmDtl.Count > 0)
                            {
                                hdr.trn_basic_measure_dtls.AddRange(newBmDtl);
                            }
                        }
                        dbc.SubmitChanges();
                    }

                    //if (Program.CurrentRegis != null)
                    //{

                    //var objbmhdr = dbc.trn_basic_measure_hdrs.Where(c => c.tpr_id == tpr_id).ToList();

                    //dbc.trn_basic_measure_dtls.DeleteAllOnSubmit(bmDtl);
                    //if (objbmhdr.Count > 0)
                    //{

                    //del data in trn_basic_measurement by tbm_id
                    //var objdeldtl = dbc.trn_basic_measure_dtls.Where(c => c.tbm_id == objbmhdr[0].tbm_id);
                    //dbc.trn_basic_measure_dtls.DeleteAllOnSubmit(objdeldtl);
                    //foreach (var data in objdeldtl)
                    //{
                    //    dbc.trn_basic_measure_dtls.DeleteOnSubmit(data);
                    //}
                    //dbc.SubmitChanges();

                    //    Ws_GetDataByTrak.WS_GetDataBytrakSoapClient ws = new Ws_GetDataByTrak.WS_GetDataBytrakSoapClient();

                    //    var hn = dbc.trn_patients.Where(c => c.tpt_id == Program.CurrentRegis.tpt_id).FirstOrDefault();

                    //    //Search By HN
                    //    DataTable dt = ws.GetVitalSignByHN(hn.tpt_hn_no);

                    //    if (dt.Rows.Count != 0)
                    //    {
                    //        //ค้นหาวันที่ 5 วันล่าสุด จาก ws
                    //        var objseldatetop5 = (from myRow in dt.AsEnumerable()
                    //                              select myRow).GroupBy(c => c.Field<DateTime>("OBS_Date")).Take(5).ToList();

                    //        for (int i = 0; i < objseldatetop5.Count; i++)
                    //        {
                    //            //ค้นหาข้อมูลตามวันที่
                    //            trn_basic_measure_dtl objnew = new trn_basic_measure_dtl();

                    //            var objseldata = (from myRow in dt.AsEnumerable()
                    //                              where myRow.Field<DateTime>("OBS_Date") == objseldatetop5[i].Key
                    //                              select myRow).ToList();

                    //            //save data to trn_basic_measurement_dlt
                    //            foreach (var data in objseldata)
                    //            {
                    //                switch ((int)data["OBS_Item_DR"])
                    //                {
                    //                    case 230:
                    //                        objnew.tbd_weight = (string)data["OBS_Value"];
                    //                        break;
                    //                    case 231:
                    //                        objnew.tbd_height = (string)data["OBS_Value"];
                    //                        break;
                    //                    case 11:
                    //                        objnew.tbd_temp = (string)data["OBS_Value"];
                    //                        break;
                    //                    case 129:
                    //                        objnew.tbd_systolic = (string)data["OBS_Value"];
                    //                        break;
                    //                    case 128:
                    //                        objnew.tbd_diastolic = (string)data["OBS_Value"];
                    //                        break;
                    //                    case 9:
                    //                        objnew.tbd_pulse = (string)data["OBS_Value"];
                    //                        break;
                    //                    case 10:
                    //                        objnew.tbd_rr = (string)data["OBS_Value"];
                    //                        break;
                    //                    case 134:
                    //                        objnew.tbd_bmi = (string)data["OBS_Value"];
                    //                        break;
                    //                    case 176:
                    //                        objnew.tbd_waist = (string)data["OBS_Value"];
                    //                        break;
                    //                    case 173:
                    //                        objnew.tbd_vision_lt = (string)data["OBS_Value"];
                    //                        break;
                    //                    case 174:
                    //                        objnew.tbd_vision_rt = (string)data["OBS_Value"];
                    //                        break;
                    //                }

                    //                string _DateTime = String.Format("{0:yyyy/MM/dd}", data["OBS_Date"]);

                    //                objnew.tbd_date = Convert.ToDateTime(_DateTime + " " + data["OBS_Time"]);
                    //                objnew.tbm_id = objbmhdr[0].tbm_id;
                    //                objnew.tbd_create_by = Program.CurrentUser.mut_username;
                    //                objnew.tbd_create_date = Program.GetServerDateTime();

                    //                objnew.tbd_update_by = Program.CurrentUser.mut_username;
                    //                objnew.tbd_update_date = Program.GetServerDateTime();
                    //            }

                    //            dbc.trn_basic_measure_dtls.InsertOnSubmit(objnew);
                    //        }
                    //    }

                    //    dbc.SubmitChanges();
                    //}

                    //} //if cur regis
                } //using
            }
        }
示例#3
0
        private void trnpatientregisBindingSource_CurrentChanged(object sender, EventArgs e)
        {
            try
            {
                if (dbc.GetChangeSet().Updates.Count > 0)
                {
                    if (MessageBox.Show("คุณต้องการบันทึกการเปลี่ยนแปลงข้อมูลหรือไม่", "Confirm Message", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        dbc.SubmitChanges();
                    }
                    else
                    {
                        trnpatientregisBindingSource.CancelEdit();
                    }
                }
            }
            catch (Exception ex)
            {
                Program.MessageError(ex.Message);
            }

            //Patient Type
            trn_patient_regi currentRegis = (trn_patient_regi)trnpatientregisBindingSource.Current;

            if (currentRegis != null)
            {
                Program.SetValueRadioGroup(GBPatientType, currentRegis.tpr_patient_type);
                RDGeneral_CheckedChanged(null, null);
                CHSameMainAddress.Checked = false; CHOfficeAddress.Checked = false;
                txtMainAddress.Text       = currentRegis.tpr_main_address + " แขวง " + currentRegis.tpr_main_tumbon + " เขต " + currentRegis.tpr_main_amphur + " จังหวัด " + currentRegis.tpr_main_province + " " + currentRegis.tpr_main_zip_code;
                if (currentRegis.trn_patient != null && currentRegis.trn_patient.tpt_image != null)
                {
                    pictureBox1.Image = Program.byteArrayToImage(currentRegis.trn_patient.tpt_image.ToArray());
                }
            }

            var objPackItemList = (from t1 in currentRegis.trn_patient_order_items
                                   select new PackageBOView
            {
                ItemSet = (from t2 in currentRegis.trn_patient_order_sets where t2.tos_id == t1.tos_id select t2.tos_item_row_id).FirstOrDefault(),
                ItemSetCode = (from t2 in currentRegis.trn_patient_order_sets where t2.tos_id == t1.tos_id select t2.tos_od_set_code).FirstOrDefault(),
                ItemSetName = (from t2 in currentRegis.trn_patient_order_sets where t2.tos_id == t1.tos_id select t2.tos_od_set_name).FirstOrDefault(),
                ItemID = t1.toi_item_row_id,
                ItemCode = t1.toi_od_item_code,
                ItemName = t1.toi_od_item_name
            }).ToList();

            GridPackage.DataSource = new SortableBindingList <PackageBOView>(objPackItemList);

            //Load Queue History
            var objQueueHistory = (from t1 in currentRegis.trn_patient_queues
                                   select new QueueHistory
            {
                RoomName = t1.mst_room_hdr.mrm_ename,
                EventName = (from t2 in dbc.mst_events where t2.mvt_id == t1.mvt_id select t2.mvt_ename).FirstOrDefault(),
                CallBy = t1.tps_call_by,
                CallDate = t1.tps_call_date,
                HoldBy = t1.tps_hold_by,
                HoldDate = t1.tps_hold_date,
                CancelBy = t1.tps_cancel_by,
                CencelDate = t1.tps_cancel_date,
                CancelRemark1 = t1.tps_cancel_remark,
                CancelRemark2 = t1.tps_cancel_other
            }).ToList();

            GridQueueHistory.DataSource = new SortableBindingList <QueueHistory>(objQueueHistory);

            //LoadBasicMeasurement
            int SetTprID = currentRegis.tpr_id;
            trn_basic_measure_hdr objhdr = dbc.trn_basic_measure_hdrs.Where(c => c.tpr_id == SetTprID).FirstOrDefault();

            if (objhdr != null)
            {
                BasicMeasurementbindingSource1.DataSource = objhdr;
                trn_basic_measure_hdr BasicMensureCurrent = (trn_basic_measure_hdr)BasicMeasurementbindingSource1.Current;
                // set Radio

                Program.SetValueRadioGroup(GBStatusOnArrival, BasicMensureCurrent.tbm_arrive.ToString());
                Program.SetValueRadioGroup(GBPurpose, BasicMensureCurrent.tbm_purpose.ToString());
                Program.SetValueRadioGroup(GBGeneralAppearance, BasicMensureCurrent.tbm_appearance.ToString());
                Program.SetValueRadioGroup(GBFallPrecaution, BasicMensureCurrent.tbm_precaution.ToString());
                Program.SetValueRadioGroup(GBEyeGlasseslen, BasicMensureCurrent.tbm_glass_or_contact.ToString());
                Program.SetValueRadioGroup(GBColorBindness, BasicMensureCurrent.tbm_color_blind.ToString());
                Program.SetValueRadioGroup(GBTriage, BasicMensureCurrent.tbm_triage);

                var objBasicMeasurementDetail = (from t1 in dbc.trn_basic_measure_dtls
                                                 where t1.trn_basic_measure_hdr.trn_patient_regi.trn_patient.tpt_hn_no == currentRegis.trn_patient.tpt_hn_no
                                                 orderby t1.tbd_update_by descending
                                                 select new BasicMeasurementDetail
                {
                    Height = t1.tbd_height,
                    Weight = t1.tbd_weight,
                    BMI = t1.tbd_bmi,
                    BP = ((t1.tbd_systolic != null)?t1.tbd_systolic:"") + " / " + ((t1.tbd_diastolic != null)?t1.tbd_diastolic:""),
                    Pulse = t1.tbd_pulse,
                    Waist = t1.tbd_waist,
                    RR = t1.tbd_rr,
                    Temp = t1.tbd_temp
                }).Take(5);
                GridBasicMeasurementDetail.DataSource = new SortableBindingList <BasicMeasurementDetail>(objBasicMeasurementDetail.ToList());
            }
            //End LoadBasicMeasurement
        }
示例#4
0
        public void updateByVitalSignResult(ref trn_patient_regi pregis, List <APITrakcare.VitalSignResult> vsresult, DateTime dateNow, string user)
        {
            try
            {
                var hdr = pregis.trn_basic_measure_hdrs.FirstOrDefault();
                if (hdr == null)
                {
                    hdr = new trn_basic_measure_hdr();
                    hdr.tbm_create_by   = user;
                    hdr.tbm_create_date = dateNow;
                    pregis.trn_basic_measure_hdrs.Add(hdr);
                }
                hdr.tbm_vision_left              = null;
                hdr.tbm_vision_right             = null;
                hdr.tbm_glass_or_contact         = null;
                hdr.tbm_color_blind              = null;
                hdr.tbm_vision_lvisual_with_lens = null;
                hdr.tbm_vision_rvisual_with_lens = null;
                hdr.tbm_vision_lvisual_out_lens  = null;
                hdr.tbm_vision_rvisual_out_lens  = null;
                hdr.tbm_update_by   = user;
                hdr.tbm_update_date = dateNow;

                if (vsresult.Count > 0)
                {
                    hdr.tbm_vision_left      = convInt(vsresult[0].visionLeft);
                    hdr.tbm_vision_right     = convInt(vsresult[0].visionRight);
                    hdr.tbm_glass_or_contact = vsresult[0].withlen ? 'Y' : 'N';
                    hdr.tbm_color_blind      = vsresult[0].colorblind == null
                                          ? (char?)null
                                          : vsresult[0].colorblind.ToUpper() == "NA"
                                          ? 'X'
                                          : vsresult[0].colorblind.ToUpper() == "NO"
                                          ? 'N'
                                          : vsresult[0].colorblind.ToUpper() == "AB"
                                          ? 'A'
                                          : (char?)null;
                    if (hdr.tbm_glass_or_contact == 'Y')
                    {
                        hdr.tbm_vision_lvisual_with_lens = vsresult[0].visionLeft;
                        hdr.tbm_vision_rvisual_with_lens = vsresult[0].visionRight;
                    }
                    else
                    {
                        hdr.tbm_vision_lvisual_out_lens = vsresult[0].visionLeft;
                        hdr.tbm_vision_rvisual_out_lens = vsresult[0].visionRight;
                    }

                    var dtls = hdr.trn_basic_measure_dtls.OrderBy(x => x.tbd_id).ToList();
                    int i;
                    for (i = 0; i < vsresult.Count; i++)
                    {
                        trn_basic_measure_dtl dtl;
                        if (i < dtls.Count)
                        {
                            dtl = dtls[i];
                        }
                        else
                        {
                            dtl = new trn_basic_measure_dtl
                            {
                                tbd_create_by   = user,
                                tbd_create_date = dateNow
                            };
                            hdr.trn_basic_measure_dtls.Add(dtl);
                        }
                        dtl.tbd_row_id    = vsresult[i].rowid;
                        dtl.tbd_en_no     = vsresult[i].en;
                        dtl.tbd_date      = vsresult[i].vsDate;
                        dtl.tbd_vision_lt = vsresult[i].visionLeft;
                        dtl.tbd_vision_rt = vsresult[i].visionRight;
                        dtl.tbd_bmi       = vsresult[i].bmi;
                        dtl.tbd_diastolic = vsresult[i].diastolic;
                        dtl.tbd_height    = vsresult[i].height;
                        dtl.tbd_pulse     = vsresult[i].pulse;
                        dtl.tbd_rr        = vsresult[i].respirationrate;
                        dtl.tbd_systolic  = vsresult[i].systolic;
                        dtl.tbd_temp      = vsresult[i].temperature;
                        if (vsresult[i].withlen)
                        {
                            dtl.tbd_vision_lvisual_out_lens  = null;
                            dtl.tbd_vision_rvisual_out_lens  = null;
                            dtl.tbd_vision_lvisual_with_lens = vsresult[i].visionLeft;
                            dtl.tbd_vision_rvisual_with_lens = vsresult[i].visionRight;
                        }
                        else
                        {
                            dtl.tbd_vision_lvisual_out_lens  = vsresult[i].visionLeft;
                            dtl.tbd_vision_rvisual_out_lens  = vsresult[i].visionRight;
                            dtl.tbd_vision_lvisual_with_lens = null;
                            dtl.tbd_vision_rvisual_with_lens = null;
                        }
                        dtl.tbd_vision_with_lens = vsresult[i].withlen;
                        dtl.tbd_waist            = vsresult[i].Waist;
                        dtl.tbd_weight           = vsresult[i].weight;
                        dtl.tbd_update_by        = user;
                        dtl.tbd_update_date      = dateNow;
                    }
                }
            }
            catch (Exception ex)
            {
                Class.globalCls.MessageError("VitalSignCls", "InsertByVitalSignResult", ex.Message);
                throw ex;
            }
        }
示例#5
0
        public void GetVistalSign(int tpr_id, string username)
        {
            using (InhCheckupDataContext dbc = new InhCheckupDataContext())
            {
                DateTime         dateNow = globalCls.GetServerDateTime();
                trn_patient_regi tpr     = dbc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                if (tpr != null)
                {
                    List <string> locCheckup = dbc.mst_hpc_sites.Where(x => x.mhs_status == 'A' && x.mhs_other_clinic == false).Select(x => x.mhs_code).ToList();
                    locCheckup.Add("01AMSCHK");
                    var res = GetVitalSign(tpr.trn_patient.tpt_hn_no);//.Where(x => locCheckup.Contains(x.Location)).OrderByDescending(x => x.VitalSignDate);
                    trn_basic_measure_hdr hdr = tpr.trn_basic_measure_hdrs.FirstOrDefault();
                    if (hdr == null)
                    {
                        hdr = new trn_basic_measure_hdr();
                        hdr.tbm_create_by   = username;
                        hdr.tbm_create_date = dateNow;
                        tpr.trn_basic_measure_hdrs.Add(hdr);
                    }
                    hdr.tbm_vision_left              = null;
                    hdr.tbm_vision_right             = null;
                    hdr.tbm_glass_or_contact         = null;
                    hdr.tbm_vision_lvisual_with_lens = null;
                    hdr.tbm_vision_rvisual_with_lens = null;
                    hdr.tbm_vision_lvisual_out_lens  = null;
                    hdr.tbm_vision_rvisual_out_lens  = null;
                    hdr.tbm_update_by   = username;
                    hdr.tbm_update_date = dateNow;

                    var cur = res.Where(x => x.en == tpr.tpr_en_no).OrderByDescending(x => x.VitalSignDate).FirstOrDefault();
                    if (cur != null)
                    {
                        hdr.tbm_vision_left      = ConvertToInt(cur.VisionLeft);
                        hdr.tbm_vision_right     = ConvertToInt(cur.VisionRight);
                        hdr.tbm_glass_or_contact = cur.WithLen ? 'Y' : 'N';
                        hdr.tbm_color_blind      = cur.ColorBlind == null ? (char?)null : cur.ColorBlind.ToUpper() == "NA" ? 'X' : cur.ColorBlind.ToUpper() == "NO" ? 'N' : cur.ColorBlind.ToUpper() == "AB" ? 'A' : (char?)null;
                        if (hdr.tbm_glass_or_contact == 'Y')
                        {
                            hdr.tbm_vision_lvisual_with_lens = cur.VisionLeft;
                            hdr.tbm_vision_rvisual_with_lens = cur.VisionRight;
                        }
                        else
                        {
                            hdr.tbm_vision_lvisual_out_lens = cur.VisionLeft;
                            hdr.tbm_vision_rvisual_out_lens = cur.VisionRight;
                        }
                    }

                    bool       start       = false;
                    int        count       = 0;
                    List <int> list_tbd_id = hdr.trn_basic_measure_dtls.Select(x => x.tbd_id).ToList();
                    foreach (var rs in res)
                    {
                        if (rs.Equals(cur))
                        {
                            start = true;
                        }
                        if (start)
                        {
                            trn_basic_measure_dtl dtl = hdr.trn_basic_measure_dtls
                                                        .Where(x => x.tbd_row_id == rs.rowid &&
                                                               x.tbd_en_no == rs.en &&
                                                               x.tbd_date == rs.VitalSignDate)
                                                        .FirstOrDefault();
                            if (dtl == null)
                            {
                                dtl                 = new trn_basic_measure_dtl();
                                dtl.tbd_row_id      = rs.rowid;
                                dtl.tbd_create_by   = username;
                                dtl.tbd_create_date = dateNow;
                                hdr.trn_basic_measure_dtls.Add(dtl);
                            }
                            else
                            {
                                list_tbd_id.Remove(dtl.tbd_id);
                            }
                            dtl.tbd_en_no     = rs.en;
                            dtl.tbd_date      = rs.VitalSignDate;
                            dtl.tbd_vision_lt = rs.VisionLeft;
                            dtl.tbd_vision_rt = rs.VisionRight;
                            dtl.tbd_bmi       = rs.BMI;
                            dtl.tbd_diastolic = rs.Diastolic;
                            dtl.tbd_height    = rs.Height;
                            dtl.tbd_pulse     = rs.Pulse;
                            dtl.tbd_rr        = rs.RespirationRate;
                            dtl.tbd_systolic  = rs.Systolic;
                            dtl.tbd_temp      = rs.Temperature;
                            if (rs.WithLen)
                            {
                                dtl.tbd_vision_lvisual_out_lens  = null;
                                dtl.tbd_vision_rvisual_out_lens  = null;
                                dtl.tbd_vision_lvisual_with_lens = rs.VisionLeft;
                                dtl.tbd_vision_rvisual_with_lens = rs.VisionRight;
                            }
                            else
                            {
                                dtl.tbd_vision_lvisual_out_lens  = rs.VisionLeft;
                                dtl.tbd_vision_rvisual_out_lens  = rs.VisionRight;
                                dtl.tbd_vision_lvisual_with_lens = null;
                                dtl.tbd_vision_rvisual_with_lens = null;
                            }
                            dtl.tbd_vision_with_lens = rs.WithLen;
                            dtl.tbd_waist            = rs.Waist;
                            dtl.tbd_weight           = rs.Weight;
                            dtl.tbd_update_by        = username;
                            dtl.tbd_update_date      = dateNow;
                            count++;
                        }
                        if (count == 3)
                        {
                            break;
                        }
                    }

                    List <trn_basic_measure_dtl> listDeleteDtl = hdr.trn_basic_measure_dtls.Where(x => list_tbd_id.Contains(x.tbd_id)).ToList();
                    if (listDeleteDtl.Count > 0)
                    {
                        dbc.trn_basic_measure_dtls.DeleteAllOnSubmit(listDeleteDtl);
                    }

                    try
                    {
                        dbc.SubmitChanges();
                    }
                    catch (System.Data.Linq.ChangeConflictException)
                    {
                        foreach (System.Data.Linq.ObjectChangeConflict occ in dbc.ChangeConflicts)
                        {
                            dbc.Refresh(System.Data.Linq.RefreshMode.KeepChanges, occ.Object);
                        }
                        dbc.SubmitChanges();
                    }
                    //trn_basic_measure_hdr hdr = tpr.trn_basic_measure_hdrs.FirstOrDefault();
                    //if (hdr == null)
                    //{
                    //    hdr = new trn_basic_measure_hdr();
                    //    tpr.trn_basic_measure_hdrs.Add(hdr);
                    //}

                    //EnumerableRowCollection<DataRow> result = retrieveVitalSign(tpr.trn_patient.tpt_hn_no);

                    //List<int> ListOBS_Item_DR = new List<int>
                    //{
                    //    230, 231, 11, 129, 128, 9, 10, 134, 176, 173, 174, 281
                    //};

                    //if (result != null)
                    //{
                    //    if (result.Count() > 0)
                    //    {
                    //        var grpResultByID = result.Where(x => ListOBS_Item_DR.Contains(x.Field<int>("OBS_Item_DR")))
                    //                                  .GroupBy(x => x.Field<int>("OBS_ParRef"))
                    //                                  .Select(x => new VitalSign
                    //                                  {
                    //                                      OBS_ParRef = x.Key,
                    //                                      OBS_DateTime = x.Select(y => y.Field<DateTime>("OBS_Date").Add(y.Field<TimeSpan>("OBS_Time"))).OrderByDescending(y => y).FirstOrDefault(),
                    //                                      PAADM_ADMNo = x.Select(y => y.Field<string>("PAADM_ADMNo")).FirstOrDefault(),
                    //                                      VitalSign_Dtl = x.GroupBy(y => y.Field<DateTime>("OBS_Date").Add(y.Field<TimeSpan>("OBS_Time")))
                    //                                                       .OrderByDescending(y => y.Key).FirstOrDefault()
                    //                                                       .Select(y => new VitalSign.VitalSignDtl
                    //                                                       {
                    //                                                           OBS_Item_DR = y.Field<int>("OBS_Item_DR"),
                    //                                                           OBS_Value = y.Field<string>("OBS_Value")
                    //                                                       }).ToList()
                    //                                  }).ToList()
                    //                                  .OrderByDescending(x => x.OBS_DateTime);

                    //        bool start = false;
                    //        int countRec = 0;
                    //        List<int?> listNewRowID = new List<int?>();
                    //        foreach (var rowID in grpResultByID)
                    //        {
                    //            if (rowID.PAADM_ADMNo == tpr.tpr_en_no)
                    //            {
                    //                start = true;
                    //            }
                    //            if (start)
                    //            {
                    //                countRec = countRec + 1;
                    //                listNewRowID.Add(rowID.OBS_ParRef);
                    //                trn_basic_measure_dtl dtl = hdr.trn_basic_measure_dtls.Where(x => x.tbd_row_id == rowID.OBS_ParRef).FirstOrDefault();
                    //                if (dtl == null)
                    //                {
                    //                    dtl = new trn_basic_measure_dtl();
                    //                    dtl.tbd_en_no = rowID.PAADM_ADMNo;
                    //                    dtl.tbd_row_id = rowID.OBS_ParRef;
                    //                    dtl.tbd_date = rowID.OBS_DateTime;
                    //                    dtl.tbd_create_by = username;
                    //                    dtl.tbd_create_date = dateNow;
                    //                    hdr.trn_basic_measure_dtls.Add(dtl);
                    //                }
                    //                dtl.tbd_weight = null;
                    //                dtl.tbd_height = null;
                    //                dtl.tbd_temp = null;
                    //                dtl.tbd_systolic = null;
                    //                dtl.tbd_diastolic = null;
                    //                dtl.tbd_pulse = null;
                    //                dtl.tbd_rr = null;
                    //                dtl.tbd_bmi = null;
                    //                dtl.tbd_waist = null;
                    //                dtl.tbd_vision_lt = null;
                    //                dtl.tbd_vision_rt = null;
                    //                foreach (var item in rowID.VitalSign_Dtl)
                    //                {
                    //                    switch (item.OBS_Item_DR)
                    //                    {
                    //                        case 230:
                    //                            dtl.tbd_weight = item.OBS_Value;
                    //                            break;
                    //                        case 231:
                    //                            dtl.tbd_height = item.OBS_Value;
                    //                            break;
                    //                        case 11:
                    //                            dtl.tbd_temp = item.OBS_Value;
                    //                            break;
                    //                        case 129:
                    //                            dtl.tbd_systolic = item.OBS_Value;
                    //                            break;
                    //                        case 128:
                    //                            dtl.tbd_diastolic = item.OBS_Value;
                    //                            break;
                    //                        case 9:
                    //                            dtl.tbd_pulse = item.OBS_Value;
                    //                            break;
                    //                        case 10:
                    //                            dtl.tbd_rr = item.OBS_Value;
                    //                            break;
                    //                        case 134:
                    //                            dtl.tbd_bmi = item.OBS_Value;
                    //                            break;
                    //                        case 176:
                    //                            dtl.tbd_waist = item.OBS_Value;
                    //                            break;
                    //                        case 173:
                    //                            dtl.tbd_vision_lt = item.OBS_Value;
                    //                            break;
                    //                        case 174:
                    //                            dtl.tbd_vision_rt = item.OBS_Value;
                    //                            break;
                    //                        // Sumit Edit 23/12/2014
                    //                        case 281:
                    //                            dtl.tbd_vision_with_lens = (item.OBS_Value == "Y" || item.OBS_Value == "y") ? true : false;
                    //                            break;
                    //                    }
                    //                }
                    //                dtl.tbd_update_by = username;
                    //                dtl.tbd_update_date = dateNow;
                    //            }
                    //            if (countRec == 5) break;
                    //        }

                    //        try
                    //        {
                    //            var eyesVS = hdr.trn_basic_measure_dtls
                    //                            .OrderByDescending(x => x.tbd_date)
                    //                            .Select(x => new
                    //                            {
                    //                                x.tbd_vision_rt,
                    //                                x.tbd_vision_lt
                    //                            }).FirstOrDefault();
                    //            hdr.tbm_vision_right = Convert.ToInt32(eyesVS.tbd_vision_rt);
                    //            hdr.tbm_vision_left = Convert.ToInt32(eyesVS.tbd_vision_lt);
                    //        }
                    //        catch
                    //        {

                    //        }
                    //        List<trn_basic_measure_dtl> listDeleteDtl = hdr.trn_basic_measure_dtls.Where(x => !listNewRowID.Contains(x.tbd_row_id)).ToList();
                    //        dbc.trn_basic_measure_dtls.DeleteAllOnSubmit(listDeleteDtl);
                    //        dbc.SubmitChanges();
                    //    }
                    //}
                }
            }
        }
示例#6
0
        public void GetEyeExam(int tpr_id, string username)
        {
            using (InhCheckupDataContext dbc = new InhCheckupDataContext())
            {
                DateTime         dateNow = globalCls.GetServerDateTime();
                trn_patient_regi tpr     = dbc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                if (tpr != null)
                {
                    var visitdate = tpr.trn_patient_regis_detail != null && tpr.trn_patient_regis_detail.tpr_real_arrived_date != null
                                       ? tpr.trn_patient_regis_detail.tpr_real_arrived_date.Value.Date
                                       : tpr.tpr_arrive_date != null
                                       ? tpr.tpr_arrive_date.Value.Date
                                       : dateNow;
                    trn_eye_exam_hdr      teh = dbc.trn_eye_exam_hdrs.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                    trn_basic_measure_hdr hdr = dbc.trn_basic_measure_hdrs.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                    trn_patient_event     mvt = dbc.trn_patient_events.Where(x => x.tpr_id == tpr_id && x.mst_event.mvt_code == "EM").FirstOrDefault();

                    if (mvt != null)
                    {
                        hdr.tbm_glass_or_contact = string.IsNullOrEmpty(teh.teh_vision_le) == true && string.IsNullOrEmpty(teh.teh_vision_out_le) == false ? 'Y' : 'N';
                        hdr.tbm_color_blind      = teh.teh_color_vision == null ? (char?)null : (char?)teh.teh_color_vision;
                        //tbm_vision_lvisual_with_lens
                        if (teh.teh_vision_le == null && teh.teh_vision_out_llens == null)
                        {
                            hdr.tbm_vision_lvisual_with_lens = null;
                        }
                        else if (teh.teh_vision_le != null)
                        {
                            if (teh.teh_vision_le.Contains("20/"))
                            {
                                hdr.tbm_vision_lvisual_with_lens = findEyeValue(teh.teh_vision_le);
                            }
                            else
                            {
                                hdr.tbm_vision_lvisual_with_lens = teh.teh_vision_le;
                            }
                        }
                        else if (teh.teh_vision_out_llens != null)
                        {
                            if (teh.teh_vision_out_llens.Contains("20/"))
                            {
                                hdr.tbm_vision_lvisual_with_lens = findEyeValue(teh.teh_vision_out_llens);
                            }
                            else
                            {
                                hdr.tbm_vision_lvisual_with_lens = teh.teh_vision_out_llens.ToString();
                            }
                        }
                        //tbm_vision_rvisual_with_lens

                        if (teh.teh_vision_re == null && teh.teh_vision_out_rlens == null)
                        {
                            hdr.tbm_vision_rvisual_with_lens = null;
                        }
                        else if (teh.teh_vision_re != null)
                        {
                            if (teh.teh_vision_re.Contains("20/"))
                            {
                                hdr.tbm_vision_rvisual_with_lens = findEyeValue(teh.teh_vision_re);
                            }
                            else
                            {
                                hdr.tbm_vision_rvisual_with_lens = teh.teh_vision_re;
                            }
                        }
                        else if (teh.teh_vision_out_llens != null)
                        {
                            if (teh.teh_vision_out_rlens.Contains("20/"))
                            {
                                hdr.tbm_vision_rvisual_with_lens = findEyeValue(teh.teh_vision_out_rlens);
                            }
                            else
                            {
                                hdr.tbm_vision_rvisual_with_lens = teh.teh_vision_out_rlens.ToString();
                            }
                        }



                        hdr.tbm_vision_lvisual_out_lens = teh.teh_vision_out_le == null
                                                           ? null
                                                           : teh.teh_vision_out_le.Contains("20/")
                                                           ? findEyeValue(teh.teh_vision_out_le)
                                                           : null;
                        hdr.tbm_vision_rvisual_out_lens = teh.teh_vision_out_re == null
                                                           ? null
                                                           : teh.teh_vision_out_re.Contains("20/")
                                                           ? findEyeValue(teh.teh_vision_out_re)
                                                           : null;

                        //   }
                        dbc.SubmitChanges();
                        var labconfig = new LabClass.GetLabConfigCls().GetByPaientLab(tpr_id);

                        trn_patient tpt  = dbc.trn_patients.Where(x => x.tpt_id == tpr.tpt_id).FirstOrDefault();
                        var         ages = new LabClass.InterpretLabCls().calAge(tpt.tpt_dob.Value.Date, visitdate);
                        var         sex  = Convert.ToChar(tpt.tpt_gender.ToString());

                        mst_lab lab           = dbc.mst_labs.Where(x => x.mlb_type == 'C' && x.mlb_status == 'A' && x.mlb_code == "VS001").FirstOrDefault();
                        var     maplabspecial = new LabClass.MapLab
                        {
                            code      = lab.mlb_code,
                            id        = lab.mlb_id,
                            nameen    = lab.mlb_ename,
                            nameth    = lab.mlb_tname,
                            seq       = lab.mlb_chart_seq,
                            setcode   = lab.mlb_lab_set,
                            usechart  = false,
                            valuetype = lab.mlb_value_type,
                            status    = 'E'
                        };
                        var rs    = new LabClass.InterpretLabCls().GetResult(maplabspecial, labconfig, ages, sex);
                        var rslab = new LabClass.InterpretLab
                        {
                            setcode     = lab.mlb_lab_set,
                            code        = lab.mlb_code,
                            name_en     = lab.mlb_ename,
                            name_th     = lab.mlb_tname,
                            seq         = lab.mlb_chart_seq,
                            mlr_id      = rs.mlr_id,
                            summary     = rs.summary,
                            result_en   = rs.result_en,
                            result_th   = rs.result_th,
                            result_jp   = rs.result_jp,
                            normalrange = rs.normalrange,
                            unit        = rs.unit,
                            status      = rs.status
                        };



                        var labvs = tpr.trn_patient_lab_vitalsigns.Where(x => x.tplv_lab_code == maplabspecial.code && x.tpr_id == tpr_id).FirstOrDefault();
                        if (labvs != null)
                        {
                            labvs.tplv_summary       = rslab.summary == null ? null : rslab.summary.ToString();
                            labvs.tplv_lab_name_th   = rslab.name_th;
                            labvs.tplv_lab_name_en   = rslab.name_en;
                            labvs.tplv_lab_result_th = rslab.result_th;
                            labvs.tplv_lab_result_en = rslab.result_en;
                            labvs.tplv_lab_result_jp = rslab.result_jp;
                            labvs.tplv_normal_range  = rslab.normalrange;
                            labvs.tplv_update_by     = username;
                            labvs.tplv_update_date   = dateNow;
                        }
                    }
                    try { dbc.SubmitChanges(); }
                    catch (Exception ex)
                    {
                        Class.globalCls.MessageError("GetVitalSignCls", "GetEyeExam", ex.Message);
                        throw ex;
                    }

                    // }
                }
            }
        }
示例#7
0
        private void BasicBS_BindingComplete(object sender, BindingCompleteEventArgs e)
        {
            BindingSource source = sender as BindingSource;

            if (source != null)
            {
                trn_basic_measure_hdr hdr = source.OfType <trn_basic_measure_hdr>().FirstOrDefault();
                if (hdr != null)
                {
                    if (hdr.tbm_color_blind == null)
                    {
                        radioButton1.Checked = true;
                    }

                    List <trn_basic_measure_dtl> listDtl = hdr.trn_basic_measure_dtls.OrderByDescending(x => x.tbd_date).ToList();
                    if (listDtl.Count() > 0)
                    {
                        var basic_dtl = listDtl[0];
                        if (basic_dtl.tbd_date == null)
                        {
                            lbDate1.Text = "1st";
                        }
                        else
                        {
                            lbDate1.Text = basic_dtl.tbd_date.Value.ToString("dd/MM/yyyy");
                        }
                        txtWeight1.Text = (basic_dtl.tbd_weight == null) ? "" : basic_dtl.tbd_weight.ToString();
                        txtHieght1.Text = (basic_dtl.tbd_height == null) ? "" : basic_dtl.tbd_height.ToString();
                        txtBMI1.Text    = (basic_dtl.tbd_bmi == null) ? "" : basic_dtl.tbd_bmi.ToString();
                        string txtBP_dia = (basic_dtl.tbd_diastolic == null)
                            ? ""
                            : basic_dtl.tbd_diastolic.ToString();
                        string txtBP_sys = (basic_dtl.tbd_systolic == null)
                            ? ""
                            : basic_dtl.tbd_systolic.ToString();
                        txtBP1.Text              = txtBP_sys + '/' + txtBP_dia;
                        txtPulseRate1.Text       = (basic_dtl.tbd_pulse == null) ? "" : basic_dtl.tbd_pulse.ToString();
                        txtRespirationRate1.Text = (basic_dtl.tbd_rr == null) ? "" : basic_dtl.tbd_rr.ToString();
                        txtTemperature1.Text     = (basic_dtl.tbd_temp == null) ? "" : basic_dtl.tbd_temp.ToString();
                    }
                    if (listDtl.Count() > 1)
                    {
                        var basic_dtl = listDtl[1];
                        if (basic_dtl.tbd_date == null)
                        {
                            lbDate2.Text = "2nd";
                        }
                        else
                        {
                            lbDate2.Text = basic_dtl.tbd_date.Value.ToString("dd/MM/yyyy");
                        }
                        txtWeight2.Text = (basic_dtl.tbd_weight == null) ? "" : basic_dtl.tbd_weight.ToString();
                        txtHieght2.Text = (basic_dtl.tbd_height == null) ? "" : basic_dtl.tbd_height.ToString();
                        txtBMI2.Text    = (basic_dtl.tbd_bmi == null) ? "" : basic_dtl.tbd_bmi.ToString();
                        string txtBP_dia = (basic_dtl.tbd_diastolic == null)
                            ? ""
                            : basic_dtl.tbd_diastolic.ToString();
                        string txtBP_sys = (basic_dtl.tbd_systolic == null)
                            ? ""
                            : basic_dtl.tbd_systolic.ToString();
                        txtBP2.Text              = txtBP_sys + '/' + txtBP_dia;
                        txtPulseRate2.Text       = (basic_dtl.tbd_pulse == null) ? "" : basic_dtl.tbd_pulse.ToString();
                        txtRespirationRate2.Text = (basic_dtl.tbd_rr == null) ? "" : basic_dtl.tbd_rr.ToString();
                        txtTemperature2.Text     = (basic_dtl.tbd_temp == null) ? "" : basic_dtl.tbd_temp.ToString();
                    }
                    if (listDtl.Count() > 2)
                    {
                        var basic_dtl = listDtl[2];
                        if (basic_dtl.tbd_date == null)
                        {
                            lbDate3.Text = "3rd";
                        }
                        else
                        {
                            lbDate3.Text = basic_dtl.tbd_date.Value.ToString("dd/MM/yyyy");
                        }
                        txtWeight3.Text = (basic_dtl.tbd_weight == null) ? "" : basic_dtl.tbd_weight.ToString();
                        txtHieght3.Text = (basic_dtl.tbd_height == null) ? "" : basic_dtl.tbd_height.ToString();
                        txtBMI3.Text    = (basic_dtl.tbd_bmi == null) ? "" : basic_dtl.tbd_bmi.ToString();
                        string txtBP_dia = (basic_dtl.tbd_diastolic == null)
                            ? ""
                            : basic_dtl.tbd_diastolic.ToString();
                        string txtBP_sys = (basic_dtl.tbd_systolic == null)
                            ? ""
                            : basic_dtl.tbd_systolic.ToString();
                        txtBP3.Text              = txtBP_sys + '/' + txtBP_dia;
                        txtPulseRate3.Text       = (basic_dtl.tbd_pulse == null) ? "" : basic_dtl.tbd_pulse.ToString();
                        txtRespirationRate3.Text = (basic_dtl.tbd_rr == null) ? "" : basic_dtl.tbd_rr.ToString();
                        txtTemperature3.Text     = (basic_dtl.tbd_temp == null) ? "" : basic_dtl.tbd_temp.ToString();
                    }
                }
            }
        }