Esempio n. 1
0
        public bool InsertByVitalSignResult(int tpr_id, string user)
        {
            try
            {
                using (InhCheckupDataContext cdc = new InhCheckupDataContext())
                {
                    DateTime dateNow = Class.globalCls.GetServerDateTime();
                    var      pregis  = cdc.trn_patient_regis.Where(x => x.tpr_id == tpr_id).FirstOrDefault();
                    if (pregis != null)
                    {
                        int enrowid;
                        int.TryParse(pregis.tpr_en_rowid, out enrowid);
                        var vs        = new APITrakcare.GetVitalSignCls().ByGetVitalSignByHN(pregis.trn_patient.tpt_hn_no);
                        var vs3time   = new Class.VitalSignCls().Get3time(vs, enrowid);
                        var vsunits   = new Class.VitalSignUnitCls().Get();
                        var visitdate = pregis.trn_patient_regis_detail != null && pregis.trn_patient_regis_detail.tpr_real_arrived_date != null
                                        ? pregis.trn_patient_regis_detail.tpr_real_arrived_date.Value.Date
                                        : pregis.tpr_arrive_date != null
                                        ? pregis.tpr_arrive_date.Value.Date
                                        : dateNow;
                        InsertByVitalSignResult(ref pregis, vs3time, dateNow, user);

                        var hdr = pregis.trn_basic_measure_hdrs.FirstOrDefault();
                        for (int i = vs3time.Count; i < hdr.trn_basic_measure_dtls.Count; i++)
                        {
                            if (hdr.trn_basic_measure_dtls[i].tbd_id == 0)
                            {
                                hdr.trn_basic_measure_dtls.Remove(hdr.trn_basic_measure_dtls[i]);
                            }
                            else
                            {
                                cdc.trn_basic_measure_dtls.DeleteOnSubmit(hdr.trn_basic_measure_dtls[i]);
                            }
                        }

                        var sex           = (char)pregis.trn_patient.tpt_gender;
                        var ages          = new LabClass.InterpretLabCls().calAge(pregis.trn_patient.tpt_dob.Value.Date, visitdate);
                        var labvitalsigns = cdc.mst_labs.Where(x => x.mlb_type == 'C' && x.mlb_status == 'A').ToList();
                        var labconfig     = new LabClass.GetLabConfigCls().GetByPaientLab(tpr_id);

                        foreach (var lab in labvitalsigns)
                        {
                            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  = lab.mlb_use_chart == true ? true : 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
                            };
                            InsertLabVs(ref pregis, rslab, vs3time, vsunits, dateNow, user);
                        }
                        cdc.SubmitChanges();

                        new Class.GetVitalSignCLs().GetEyeExam(tpr_id, "TESTVS");

                        return(true);
                    }
                    else
                    {
                        return(false);
                    }
                }
            }
            catch (Exception ex)
            {
                Class.globalCls.MessageError("VitalSignCls", "InsertByVitalSignResult", ex.Message);
                return(false);
            }
        }
Esempio n. 2
0
        public void Insert(ref trn_patient_regi pregis, LabClass.InterpretLab lab, DateTime dateNow, string user)
        {
            var labvs = pregis.trn_patient_lab_vitalsigns.Where(x => x.tplv_lab_code == lab.code).FirstOrDefault();

            if (labvs == null)
            {
                labvs = new trn_patient_lab_vitalsign
                {
                    tplv_lab_code    = lab.code,
                    tplv_create_by   = user,
                    tplv_create_date = dateNow
                };
                pregis.trn_patient_lab_vitalsigns.Add(labvs);
            }
            switch (lab.code)
            {
            case "BP001":
                labvs.tplv_result_1 = vs3time.Count() == 0 ? null : (string.IsNullOrEmpty(vs3time[0].systolic) ? "" : vs3time[0].systolic) + "/" +
                                      (string.IsNullOrEmpty(vs3time[0].diastolic) ? "" : vs3time[0].diastolic);
                labvs.tplv_result_2 = vs3time.Count() <= 1 ? null : (string.IsNullOrEmpty(vs3time[1].systolic) ? "" : vs3time[1].systolic) + "/" +
                                      (string.IsNullOrEmpty(vs3time[1].diastolic) ? "" : vs3time[1].diastolic);
                labvs.tplv_result_3 = vs3time.Count() <= 2 ? null : (string.IsNullOrEmpty(vs3time[2].systolic) ? "" : vs3time[2].systolic) + "/" +
                                      (string.IsNullOrEmpty(vs3time[2].diastolic) ? "" : vs3time[2].diastolic);
                break;

            case "PS001":
                labvs.tplv_lab_unit_th = "ครั้งต่อนาที";
                labvs.tplv_lab_unit_en = "beat / minute";
                labvs.tplv_result_1    = vs3time.Count() == 0 ? null : vs3time[0].pulse;
                labvs.tplv_result_2    = vs3time.Count() <= 1 ? null : vs3time[1].pulse;
                labvs.tplv_result_3    = vs3time.Count() <= 2 ? null : vs3time[2].pulse;
                break;

            case "RP001":
                labvs.tplv_lab_unit_th = "ครั้งต่อนาที";
                labvs.tplv_lab_unit_en = "beat / minute";
                labvs.tplv_result_1    = vs3time.Count() == 0 ? null : vs3time[0].respirationrate;
                labvs.tplv_result_2    = vs3time.Count() <= 1 ? null : vs3time[1].respirationrate;
                labvs.tplv_result_3    = vs3time.Count() <= 2 ? null : vs3time[2].respirationrate;
                break;

            case "TP001":
                labvs.tplv_lab_unit_th = "องศาเซลเซียส";
                labvs.tplv_lab_unit_en = "°C";
                labvs.tplv_result_1    = vs3time.Count() == 0 ? null : vs3time[0].temperature;
                labvs.tplv_result_2    = vs3time.Count() <= 1 ? null : vs3time[1].temperature;
                labvs.tplv_result_3    = vs3time.Count() <= 2 ? null : vs3time[2].temperature;
                break;
            }
            var unit = vsunits.Where(x => x.code == lab.code).FirstOrDefault();

            if (unit != null)
            {
                labvs.tplv_lab_unit_th = unit.units.th;
                labvs.tplv_lab_unit_en = unit.units.en;
            }
            labvs.tplv_summary       = lab.summary == null ? null : lab.summary.ToString();
            labvs.tplv_lab_name_th   = lab.name_th;
            labvs.tplv_lab_name_en   = lab.name_en;
            labvs.tplv_lab_result_th = lab.result_th;
            labvs.tplv_lab_result_en = lab.result_en;
            labvs.tplv_normal_range  = lab.normalrange;
            labvs.tplv_update_by     = user;
            labvs.tplv_update_date   = dateNow;
        }
Esempio n. 3
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;
                    }

                    // }
                }
            }
        }