using DevExpress.XtraEditors; using HL_FristAidPlatform_DTO; using HL_FristAidPlatform_Public; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.Windows.Forms; namespace HL_FristAidPlatform_EmergencyTriage { public partial class Form_PatientList : XtraForm { /// /// 当前页 /// public int curPage = 1; /// /// 每页大小 /// public int pageSize = 25; /// /// 所有记录条数 /// public int totalNumber = 0; public string signArea; public string killip; public string comeHospital; public string triageDepartment; DateTime dt = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd")); public Form_PatientList() { InitializeComponent(); } private void PatientList_Load(object sender, EventArgs e) { gridView1.OptionsFind.AlwaysVisible = false; GetEventList(); TriageDepartment(); GetMedicalRecordList(); List greenway = new List(); greenway.Add("全部"); greenway.Add("绿道患者"); greenway.Add("非绿道患者"); com_IsGreenWay.DataSource = greenway; } public void GetEventList() { List list = DBHelpClass.GetList("/api/base/T_Base_AccidentInfo/GetAccidentInfoClass"); AccidentInfoDTO dto = new AccidentInfoDTO(); dto.ID = 0; dto.Name = "全部"; List list1 = new List(); list1.Add(dto); list1.AddRange(list); com_AccidentInfo.DisplayMember = "Name"; com_AccidentInfo.ValueMember = "ID"; com_AccidentInfo.DataSource = list1; } #region 按钮及选项效果 private void lbl_aignArea1_Click(object sender, EventArgs e) { signArea = "1"; lbl_signArea1.ForeColor = Color.White; lbl_signArea1.BackColor = Color.FromArgb(250, 53, 52); lbl_signArea2.ForeColor = Color.FromArgb(64, 64, 64); lbl_signArea2.BackColor = Color.FromArgb(252, 252, 252); lbl_signArea3.ForeColor = Color.FromArgb(64, 64, 64); lbl_signArea3.BackColor = Color.FromArgb(252, 252, 252); } private void lbl_signArea2_Click(object sender, EventArgs e) { signArea = "2"; lbl_signArea1.ForeColor = Color.FromArgb(64, 64, 64); lbl_signArea1.BackColor = Color.FromArgb(252, 252, 252); lbl_signArea2.ForeColor = Color.White; lbl_signArea2.BackColor = Color.FromArgb(255, 153, 0); lbl_signArea3.ForeColor = Color.FromArgb(64, 64, 64); lbl_signArea3.BackColor = Color.FromArgb(252, 252, 252); } private void lbl_signArea3_Click(object sender, EventArgs e) { signArea = "3"; lbl_signArea1.ForeColor = Color.FromArgb(64, 64, 64); lbl_signArea1.BackColor = Color.FromArgb(252, 252, 252); lbl_signArea2.ForeColor = Color.FromArgb(64, 64, 64); lbl_signArea2.BackColor = Color.FromArgb(252, 252, 252); lbl_signArea3.ForeColor = Color.White; lbl_signArea3.BackColor = Color.FromArgb(25, 190, 107); } private void lbl_killp1_Click(object sender, EventArgs e) { killip = "1"; lbl_killp1.BackColor = Color.FromArgb(250, 53, 52); lbl_killp1.ForeColor = Color.White; lbl_killp2.BackColor = Color.FromArgb(252, 252, 252); lbl_killp2.ForeColor = Color.FromArgb(64, 64, 64); lbl_killp3.BackColor = Color.FromArgb(252, 252, 252); lbl_killp3.ForeColor = Color.FromArgb(64, 64, 64); lbl_killp4.BackColor = Color.FromArgb(252, 252, 252); lbl_killp4.ForeColor = Color.FromArgb(64, 64, 64); } private void lbl_killp2_Click(object sender, EventArgs e) { killip = "2"; lbl_killp1.BackColor = Color.FromArgb(252, 252, 252); lbl_killp1.ForeColor = Color.FromArgb(64, 64, 64); lbl_killp2.BackColor = Color.FromArgb(241, 90, 34); lbl_killp2.ForeColor = Color.White; lbl_killp3.BackColor = Color.FromArgb(252, 252, 252); lbl_killp3.ForeColor = Color.FromArgb(64, 64, 64); lbl_killp4.BackColor = Color.FromArgb(252, 252, 252); lbl_killp4.ForeColor = Color.FromArgb(64, 64, 64); } private void lbl_killp3_Click(object sender, EventArgs e) { killip = "3"; lbl_killp1.BackColor = Color.FromArgb(252, 252, 252); lbl_killp1.ForeColor = Color.FromArgb(64, 64, 64); lbl_killp2.BackColor = Color.FromArgb(252, 252, 252); lbl_killp2.ForeColor = Color.FromArgb(64, 64, 64); lbl_killp3.BackColor = Color.FromArgb(255, 153, 0); lbl_killp3.ForeColor = Color.White; lbl_killp4.BackColor = Color.FromArgb(252, 252, 252); lbl_killp4.ForeColor = Color.FromArgb(64, 64, 64); } private void lbl_killp4_Click(object sender, EventArgs e) { killip = "4"; lbl_killp1.BackColor = Color.FromArgb(252, 252, 252); lbl_killp1.ForeColor = Color.FromArgb(64, 64, 64); lbl_killp2.BackColor = Color.FromArgb(252, 252, 252); lbl_killp2.ForeColor = Color.FromArgb(64, 64, 64); lbl_killp4.BackColor = Color.FromArgb(25, 190, 107); lbl_killp4.ForeColor = Color.White; lbl_killp3.BackColor = Color.FromArgb(252, 252, 252); lbl_killp3.ForeColor = Color.FromArgb(64, 64, 64); } private void lbl_comeHospital1_Click(object sender, EventArgs e) { comeHospital = "1"; ColorChange(lbl_comeHospital1); UnColorChange(lbl_comeHospital2); UnColorChange(lbl_comeHospital3); UnColorChange(lbl_comeHospital4); UnColorChange(lbl_comeHospital5); UnColorChange(lbl_comeHospital6); } private void lbl_comeHospital2_Click(object sender, EventArgs e) { comeHospital = "2"; ColorChange(lbl_comeHospital2); UnColorChange(lbl_comeHospital1); UnColorChange(lbl_comeHospital3); UnColorChange(lbl_comeHospital4); UnColorChange(lbl_comeHospital5); UnColorChange(lbl_comeHospital6); } private void lbl_comeHospital3_Click(object sender, EventArgs e) { comeHospital = "3"; ColorChange(lbl_comeHospital3); UnColorChange(lbl_comeHospital1); UnColorChange(lbl_comeHospital2); UnColorChange(lbl_comeHospital4); UnColorChange(lbl_comeHospital5); UnColorChange(lbl_comeHospital6); } private void lbl_comeHospital4_Click(object sender, EventArgs e) { comeHospital = "4"; ColorChange(lbl_comeHospital4); UnColorChange(lbl_comeHospital1); UnColorChange(lbl_comeHospital2); UnColorChange(lbl_comeHospital3); UnColorChange(lbl_comeHospital5); UnColorChange(lbl_comeHospital6); } private void lbl_comeHospital5_Click(object sender, EventArgs e) { comeHospital = "5"; ColorChange(lbl_comeHospital5); UnColorChange(lbl_comeHospital1); UnColorChange(lbl_comeHospital2); UnColorChange(lbl_comeHospital3); UnColorChange(lbl_comeHospital4); UnColorChange(lbl_comeHospital6); } private void lbl_comeHospital6_Click(object sender, EventArgs e) { comeHospital = "6"; ColorChange(lbl_comeHospital6); UnColorChange(lbl_comeHospital1); UnColorChange(lbl_comeHospital2); UnColorChange(lbl_comeHospital3); UnColorChange(lbl_comeHospital4); UnColorChange(lbl_comeHospital5); } private void simpleButton2_Click(object sender, EventArgs e) { timeControl1.TimeValue = DateTime.Now.ToString(); timeControl2.TimeValue = DateTime.Now.ToString(); GetMedicalRecordList(); } private void simpleButton4_Click(object sender, EventArgs e) { DateTime startMonth = dt.AddDays(1 - dt.Day); DateTime endMonth = startMonth.AddMonths(1).AddDays(-1); timeControl1.TimeValue = startMonth.ToString(); timeControl2.TimeValue = endMonth.ToString(); GetMedicalRecordList(); } private void simpleButton5_Click(object sender, EventArgs e) { DateTime startYear = new DateTime(dt.Year, 1, 1); DateTime endYear = new DateTime(dt.Year, 12, 31); timeControl1.TimeValue = startYear.ToString(); timeControl2.TimeValue = endYear.ToString(); GetMedicalRecordList(); } private void simpleButton6_Click(object sender, EventArgs e) { timeControl1.TimeValue = ""; timeControl2.TimeValue = ""; GetMedicalRecordList(); } private void simpleButton7_Click(object sender, EventArgs e) { timeControl1.TimeValue = ""; timeControl2.TimeValue = ""; signArea = ""; lbl_signArea1.ForeColor = Color.FromArgb(64, 64, 64); lbl_signArea1.BackColor = Color.FromArgb(252, 252, 252); lbl_signArea2.ForeColor = Color.FromArgb(64, 64, 64); lbl_signArea2.BackColor = Color.FromArgb(252, 252, 252); lbl_signArea3.ForeColor = Color.FromArgb(64, 64, 64); lbl_signArea3.BackColor = Color.FromArgb(252, 252, 252); comeHospital = ""; UnColorChange(lbl_comeHospital1); UnColorChange(lbl_comeHospital2); UnColorChange(lbl_comeHospital3); UnColorChange(lbl_comeHospital4); UnColorChange(lbl_comeHospital5); UnColorChange(lbl_comeHospital6); killip = ""; lbl_killp1.BackColor = Color.FromArgb(252, 252, 252); lbl_killp1.ForeColor = Color.FromArgb(64, 64, 64); lbl_killp2.BackColor = Color.FromArgb(252, 252, 252); lbl_killp2.ForeColor = Color.FromArgb(64, 64, 64); lbl_killp3.BackColor = Color.FromArgb(252, 252, 252); lbl_killp3.ForeColor = Color.FromArgb(64, 64, 64); lbl_killp4.BackColor = Color.FromArgb(252, 252, 252); lbl_killp4.ForeColor = Color.FromArgb(64, 64, 64); txt_name.Text = ""; timeControl1.TimeValue = ""; timeControl2.TimeValue = ""; text_eventName.Text = ""; com_AccidentInfo.Text = ""; radioButton1.Checked = true; GetMedicalRecordList(); } #endregion public void ColorChange(LabelControl lbl) { lbl.ForeColor = Color.White; lbl.BackColor = Color.FromArgb(0, 132, 204); } public void UnColorChange(LabelControl lbl) { lbl.BackColor = Color.FromArgb(252, 252, 252); lbl.ForeColor = Color.FromArgb(64, 64, 64); } public void GetMedicalRecordList() { string trageDepartment = com_TriageDepartment.Text == "全部" ? "" : com_TriageDepartment.SelectedValue.ToString(); string isGreenWay = ""; if (com_IsGreenWay.Text == "非绿道患者") isGreenWay = "0"; if (com_IsGreenWay.Text == "绿道患者") isGreenWay = "1"; int category = -1; if (radioButton2.Checked == true) category = 0; if (radioButton3.Checked == true) category = 1; int eventId = com_AccidentInfo.Text == "全部" ? 0 : int.Parse(com_AccidentInfo.SelectedValue.ToString()); DataTable dt = DBHelpClass.Get(string.Format("api/service/T_Service_EmergencyTriage/GetPatientListOfTriage?name={0}&startTime={1}&endTime={2}&killip={3}&signArea={4}&comeHospital={5}&triageDepartment={6}&isGreenWay={7}&category={8}&eventName={9}&eventId={10}&pageIndex={11}&pageSize={12}", txt_name.Text.Trim(), timeControl1.TimeValue.ToString(), timeControl2.TimeValue.ToString(), killip, signArea, comeHospital, trageDepartment, isGreenWay, category, text_eventName.Text.Trim(), eventId, curPage, pageSize)); gridControl1.DataSource = dt; totalNumber = DBHelpClass.TotalNumber; userControlForPage.RefreshPager(pageSize, totalNumber, curPage); } /// /// 绑定去向 /// public void TriageDepartment() { string url = string.Format("api/base/T_Base_DiagnosisAndTriageGo/GetTriageGoList"); List list = DBHelpClass.GetList(url); T_Base_TriageGoDTO dto = new T_Base_TriageGoDTO(); dto.ID = 0; dto.Name = "全部"; List list1 = new List(); list1.Add(dto); list1.AddRange(list); com_TriageDepartment.DisplayMember = "Name"; com_TriageDepartment.ValueMember = "ID"; com_TriageDepartment.DataSource = list1; } private void simpleButton1_Click(object sender, EventArgs e) { GetMedicalRecordList(); } private void gridView1_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { if (e.Column.FieldName == "Category") { int value = PublicClass.ToInt32(e.Value, -1); switch (value) { case 0: e.DisplayText = "正常"; break; case 1: e.DisplayText = "三无患者"; break; } } if (e.Column.FieldName == "Gender") { int value = PublicClass.ToInt32(e.Value, -1); switch (value) { case 0: e.DisplayText = "未知"; break; case 1: e.DisplayText = "男"; break; case 2: e.DisplayText = "女"; break; } } if (e.Column.FieldName == "IsGreenWay") { int value = PublicClass.ToInt32(e.Value, -1); switch (value) { case 0: e.DisplayText = "非绿道患者"; break; case 1: e.DisplayText = "绿道患者"; break; } } if (e.Column.FieldName == "SignArea") { int value = PublicClass.ToInt32(e.Value, -1); switch (value) { case 1: e.DisplayText = "红区"; break; case 2: e.DisplayText = "黄区"; break; case 3: e.DisplayText = "绿区"; break; } } if (e.Column.FieldName == "Killip") { int value = PublicClass.ToInt32(e.Value, -1); switch (value) { case 1: e.DisplayText = "I级"; break; case 2: e.DisplayText = "II级"; break; case 3: e.DisplayText = "III级"; break; case 4: e.DisplayText = "IV级"; break; } } if (e.Column.FieldName == "ComeHospital") { int value = PublicClass.ToInt32(e.Value, -1); switch (value) { case 1: e.DisplayText = "自行来院"; break; case 2: e.DisplayText = "120来院"; break; case 3: e.DisplayText = "院内发病"; break; case 4: e.DisplayText = "乡镇转诊"; break; case 5: e.DisplayText = "乡镇转120"; break; case 6: e.DisplayText = "其他"; break; } } } private void gridControl1_MouseDoubleClick(object sender, MouseEventArgs e) { if (gridView1.DataRowCount > 0) { int selectRow = gridView1.FocusedRowHandle; string patientGuid = gridView1.GetRowCellValue(selectRow, "GUID").ToString(); string name = gridView1.GetRowCellValue(selectRow, "Name").ToString(); string age = gridView1.GetRowCellValue(selectRow, "Age").ToString(); string comeHospital = gridView1.GetRowCellValue(selectRow, "ComeHospital").ToString(); string gender = gridView1.GetRowCellValue(selectRow, "Gender").ToString(); string id = gridView1.GetRowCellValue(selectRow, "ID").ToString(); Form_PatientEMR detail = new Form_PatientEMR(patientGuid, name, age, comeHospital, gender, id); detail.WindowState = FormWindowState.Normal; detail.Owner = this; detail.Show(); } } private void userControlForPage_myPagerEvents(int curPage, int pageSize) { userControlForPage.myPagerEvents += MyPagerEvents; } private void MyPagerEvents(int curPage, int pageSize) { this.curPage = curPage; this.pageSize = pageSize; GetMedicalRecordList(); } private void simpleButton3_Click(object sender, EventArgs e) { Form_PublisAddPatient AddPatient = new Form_PublisAddPatient(int.Parse(PublicClassForDataBase.Config10007), ""); AddPatient.Show(); } private bool ShowChildrenForm(string p_ChildrenFormText) { int i; //依次检测当前窗体的子窗体 for (i = 0; i < this.MdiChildren.Length; i++) { //判断当前子窗体的Text属性值是否与传入的字符串值相同 if (this.MdiChildren[i].Text == p_ChildrenFormText) { //如果值相同则表示此子窗体为想要调用的子窗体,激活此子窗体并返回true值 this.MdiChildren[i].Activate(); return true; } } //如果没有相同的值则表示要调用的子窗体还没有被打开,返回false值 return false; } private void 删除病例ToolStripMenuItem_Click(object sender, EventArgs e) { try { if (gridView1.DataRowCount > 0) { int selectRow = gridView1.FocusedRowHandle; string _guid = PublicClass.ToString(gridView1.GetRowCellValue(selectRow, "GUID"), ""); DialogResult dr = XtraMessageBox.Show("是否确定删除该病例?", "", MessageBoxButtons.YesNo, MessageBoxIcon.Information); if (dr == DialogResult.Yes) { List list = new List(); T_Service_PatientDTO dto = new T_Service_PatientDTO(); dto.GUID = _guid; string Url = "api/service/T_Service_EmergencyTriage/UpdateDeletFlagByPatientGuid"; list.Add(dto); //初始化两个工厂 ClientFactory httpClient = new HttpClientFactory(); Client client = httpClient.VisitFactory(); //访问 ListEntity t = client.Post(Url, list); if (t.Success) { JObject jo = (JObject)JsonConvert.DeserializeObject(t.DataString); string msg = jo["Msg"].ToString(); if (!string.IsNullOrEmpty(msg)) { XtraMessageBox.Show(msg); GetMedicalRecordList(); } } else { MessageBox.Show("删除失败"); } } else { return; } } } catch (Exception ex) { PublicClass.WriteErrorLog(this.Text, "急诊分诊-患者病历删除失败:\r\n" + ex); } } private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) { if (gridView1.GetRow(e.RowHandle) == null) { return; } else { if (e.Column.FieldName == "IsGreenWay") { string value = gridView1.GetRowCellValue(e.RowHandle, "IsGreenWay").ToString(); if (value == "1") //条件判断 { e.Appearance.BackColor = Color.FromArgb(25, 190, 107); e.Appearance.ForeColor = Color.White; } } if (e.Column.FieldName == "SignArea") { e.Appearance.Font = new Font("Tahoma", 9, FontStyle.Bold); string value = gridView1.GetRowCellValue(e.RowHandle, "SignArea").ToString(); if (value == "1") e.Appearance.ForeColor = Color.FromArgb(250, 53, 52); if (value == "2") e.Appearance.ForeColor = Color.FromArgb(255, 153, 0); if (value == "3") e.Appearance.ForeColor = Color.FromArgb(25, 190, 107); } if (e.Column.FieldName == "Killip") { e.Appearance.Font = new Font("Tahoma", 9, FontStyle.Bold); string value = gridView1.GetRowCellValue(e.RowHandle, "Killip").ToString(); if (value == "1") e.Appearance.ForeColor = Color.FromArgb(250, 53, 52); if (value == "2") e.Appearance.ForeColor = Color.FromArgb(241, 90, 34); if (value == "3") e.Appearance.ForeColor = Color.FromArgb(255, 153, 0); if (value == "4") e.Appearance.ForeColor = Color.FromArgb(25, 190, 107); } } } private void 召回患者ToolStripMenuItem_Click(object sender, EventArgs e) { try { int selectRow = gridView1.FocusedRowHandle; string _guid = PublicClass.ToString(gridView1.GetRowCellValue(selectRow, "GUID"), ""); List list = new List(); EmergencyTriageDTO dto = new EmergencyTriageDTO(); dto.PatientGuid = _guid; dto.TriageDepartment = ""; list.Add(dto); string Url = "api/service/FristAidTran/RecallDepartment"; //初始化两个工厂 ClientFactory httpClient = new HttpClientFactory(); Client client = httpClient.VisitFactory(); ListEntity t = client.Post(Url, list); if (t.Success) { MessageBox.Show("出科召回成功"); GetMedicalRecordList(); } else { MessageBox.Show("出科召回失败"); } } catch (Exception ex) { PublicClass.WriteErrorLog(this.Text, "急诊分诊-患者出科召回失败:\r\n" + ex); } } private void simpleButton_SaveEvent_Click(object sender, EventArgs e) { Form_BatchPatient form_BatchPatient = new Form_BatchPatient(); form_BatchPatient.Show(); } } }