public bool AddPatientEvent(ref trn_patient_regi PatientRegis, string username, DateTime dateNow, List <MapOrderEvent> mapEvent) { try { if (mapEvent != null) { var grp = mapEvent.GroupBy(x => x.mvt_id) .Select(x => x.OrderBy(y => y.status == "E" ? 0 : y.status == "V" ? 1 : 2) .FirstOrDefault()); foreach (var g in grp) { trn_patient_event patientEvent = PatientRegis.trn_patient_events.Where(x => x.mvt_id == g.mvt_id).FirstOrDefault(); switch (g.status) { case "D": if (patientEvent != null) { PatientRegis.trn_patient_events.Remove(patientEvent); } break; case "E": if (patientEvent == null) { patientEvent = new trn_patient_event() { mvt_id = g.mvt_id, tpl_status = 'P', tpl_create_by = username, tpl_create_date = dateNow }; PatientRegis.trn_patient_events.Add(patientEvent); } patientEvent.tpl_status = 'P'; patientEvent.tpl_update_by = username; patientEvent.tpl_update_date = dateNow; break; case "V": if (patientEvent == null) { patientEvent = new trn_patient_event() { mvt_id = g.mvt_id, tpl_status = 'N', tpl_create_by = username, tpl_create_date = dateNow }; PatientRegis.trn_patient_events.Add(patientEvent); } patientEvent.tpl_status = 'N'; patientEvent.tpl_update_by = username; patientEvent.tpl_update_date = dateNow; break; } } } return(true); } catch (Exception ex) { Class.globalCls.MessageError("GetPTPackageCls", "AddPatientEvent", ex.Message); return(false); } }
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; } // } } } }