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();
}
}
}