using DevExpress.XtraEditors; using HL_FristAidPlatform_DTO; using HL_FristAidPlatform_Public; using System; using System.Collections.Generic; using System.Data; using System.Windows.Forms; namespace HL_FristAidPlatform_EMRS { public partial class POCT : XtraForm { private int systemId; #region 变量 /// /// 当前病人编号 /// private string Cur_PatientGuid = string.Empty; /// /// 当前患者所有的肌钙蛋白报告 /// private DataTable Cur_BindDT = new DataTable(); /// /// 当前修改的记录信息 /// private DataTable Cur_DetailDT = new DataTable(); #endregion public POCT(string _patientGuid, int _systemId) { InitializeComponent(); Cur_PatientGuid = _patientGuid; systemId = _systemId; } private void Form_PatientCTNT_Load(object sender, EventArgs e) { Bind_List(); } /// /// 绑定肌钙蛋白 /// private void Bind_List() { try { string Url = string.Format("api/service/T_Service_ChestPain_CTNT/GetByPatientGuid?patientGuid={0}", Cur_PatientGuid); Cur_BindDT = DBHelpClass.Get(Url); gridControl_CTNT.DataSource = Cur_BindDT; } catch (Exception ex) { PublicClass.WriteErrorLog(this.Text, "绑定肌钙蛋白:\r\n" + ex); } } private void grv_CTNT_CustomColumnDisplayText(object sender, DevExpress.XtraGrid.Views.Base.CustomColumnDisplayTextEventArgs e) { if (e.Column.FieldName == "Type") { int value = PublicClass.ToInt32(e.Value, 0); switch (value) { case 1: e.DisplayText = "TnT"; break; case 2: e.DisplayText = "Tnl"; break; default: e.DisplayText = ""; break; } } if (e.Column.FieldName == "Unit") { int value = PublicClass.ToInt32(e.Value, 0); switch (value) { case 1: e.DisplayText = "ng/mL"; break; case 2: e.DisplayText = "ug/L"; break; case 3: e.DisplayText = "ng/L"; break; case 4: e.DisplayText = "pg/mL"; break; case 5: e.DisplayText = "mg/L"; break; default: e.DisplayText = ""; break; } } if (e.Column.FieldName == "Status") { int value = PublicClass.ToInt32(e.Value, 0); switch (value) { case 1: e.DisplayText = "阳性"; break; case 2: e.DisplayText = "阴性"; break; case 3: e.DisplayText = "未选择"; break; default: e.DisplayText = ""; break; } } } private void btn_Save_Click(object sender, EventArgs e) { try { if (Cur_BindDT.Rows.Count >= 3 && Cur_DetailDT.Rows.Count == 0) { if (XtraMessageBox.Show("当前已有三个肌钙蛋白的报告,因数据填报平台只需传送三个肌钙蛋白结果!\r\n如果继续新增将按添加的先后顺序传送前三条到数据填报平台,请知晓!\r\n请问是否继续新增?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } } #region 验证 string Type = PublicClass.ToString(radioGroup_CTNT.EditValue, ""); if (string.IsNullOrEmpty(Type)) { XtraMessageBox.Show("请选择肌钙蛋白类型!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); radioGroup_CTNT.Focus(); return; } if (string.IsNullOrEmpty(txt_CTNT_Value.Text)) { XtraMessageBox.Show("请填写肌钙蛋白值!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); txt_CTNT_Value.Focus(); return; } int Unit = PublicClass.ToInt32(comboBox_CTNT_Unit.SelectedIndex, 0); if (Unit <= 0) { XtraMessageBox.Show("请选择肌钙蛋白单位!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); comboBox_CTNT_Unit.Focus(); return; } int Status = PublicClass.ToInt32(comboBox_CTNT_Status.SelectedIndex, 0); if (Status <= 0) { XtraMessageBox.Show("请选择肌钙蛋白状态!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); comboBox_CTNT_Status.Focus(); return; } if (string.IsNullOrEmpty(time_CTNT_Blood_Time.TimeValue)) { XtraMessageBox.Show("请填写抽血完成时间!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); time_CTNT_Blood_Time.Focus(); return; } if (string.IsNullOrEmpty(time_CTNT_Report_Time.TimeValue)) { XtraMessageBox.Show("请填写获得报告时间!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); time_CTNT_Report_Time.Focus(); return; } #endregion if (Save_CTNT()) { XtraMessageBox.Show("保存肌钙蛋白报告成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); //重新绑定 Bind_List(); if (systemId == 2) { UpdateTreatmentInfo(Cur_PatientGuid); } btn_Add.Enabled = true; btn_Update.Enabled = true; btn_Delete.Enabled = true; } else { XtraMessageBox.Show("保存肌钙蛋白报告失败!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } } catch (Exception ex) { PublicClass.WriteErrorLog(this.Text, "保存:\r\n" + ex); } } /// /// 保存肌钙蛋白 /// /// private bool Save_CTNT() { try { string Url = string.Empty; #region 保存肌钙蛋白 List list_Model = new List(); T_Service_ChestPain_CTNTDTO model = new T_Service_ChestPain_CTNTDTO(); //存在则修改 否则新增 if (Cur_DetailDT != null && Cur_DetailDT.Rows.Count > 0) { Url = "api/service/T_Service_ChestPain_CTNT/Update"; model.ID = PublicClass.ToInt64(lbl_CTNT.Tag, -1); model.GUID = txt_CTNT_Value.Tag.ToString(); model.DeleteFlag = PublicClass.ToInt32(Cur_DetailDT.Rows[0]["DeleteFlag"], -1); model.CreatorID = PublicClass.ToInt64(Cur_DetailDT.Rows[0]["CreatorID"], 0); model.Creator = Cur_DetailDT.Rows[0]["Creator"].ToString(); model.CreationDate = Cur_DetailDT.Rows[0]["CreationDate"].ToString(); model.EditorID = Information.User.ID; model.Editor = Information.User.FullName; model.EditTime = PublicClass.DateTimeNow(); } else { Url = "api/service/T_Service_ChestPain_CTNT"; model.GUID = Guid.NewGuid().ToString(); model.DeleteFlag = 0; model.CreatorID = Information.User.ID; model.Creator = Information.User.FullName; model.CreationDate = PublicClass.DateTimeNow(); } model.PatientGuid = Cur_PatientGuid; //类型 1:TnT 2:Tnl model.Type = PublicClass.ToString(radioGroup_CTNT.EditValue, ""); //cTnI值 if (comboBox_CTNT_Operational.Text == "=") { model.Value = txt_CTNT_Value.Text; } else { model.Value = comboBox_CTNT_Operational.Text + txt_CTNT_Value.Text; } //单位 1:ng/mL 2:ug/L 3:ng/L 4:pg/mL 5:mg/L model.Unit = comboBox_CTNT_Unit.SelectedIndex == 0 ? "" : comboBox_CTNT_Unit.SelectedIndex.ToString(); //状态 1:阳性 2:阴性 3:未选择 model.Status = comboBox_CTNT_Status.SelectedIndex == 0 ? "" : comboBox_CTNT_Status.SelectedIndex.ToString(); //抽血完成时间 model.Blood_Time = time_CTNT_Blood_Time.TimeValue; //获得报告时间 model.Report_Time = time_CTNT_Report_Time.TimeValue; list_Model.Add(model); //初始化两个工厂 ClientFactory httpClient = new HttpClientFactory(); Client client = httpClient.VisitFactory(); #endregion //访问 return client.Post(Url, list_Model).Success; } catch (Exception ex) { PublicClass.WriteErrorLog(this.Text, "保存肌钙蛋白:\r\n" + ex); return false; } } /// /// 更新胸痛诊疗表中是否有肌钙蛋白的字段值 /// /// 患者编号 private void UpdateTreatmentInfo(string _patientGuid) { string Url = string.Format("api/service/T_Service_ChestPain_TreatmentInfo/GetByPatientGuid?patientGuid={0}", _patientGuid); DataTable Cur_TreatmentInfoDT = DBHelpClass.Get(Url); if (Cur_TreatmentInfoDT != null && Cur_TreatmentInfoDT.Rows.Count > 0) { string Is_CTNT = PublicClass.ToString(Cur_TreatmentInfoDT.Rows[0]["Is_CTNT"], ""); if (Is_CTNT == "") { List list_Model = new List(); T_Service_ChestPain_TreatmentInfoDTO model = new T_Service_ChestPain_TreatmentInfoDTO(); Url = "api/service/T_Service_ChestPain_TreatmentInfo/UpdateNotNullColumns"; model.ID = PublicClass.ToInt64(Cur_TreatmentInfoDT.Rows[0]["ID"], -1); model.GUID = Cur_TreatmentInfoDT.Rows[0]["GUID"].ToString(); model.DeleteFlag = PublicClass.ToInt32(Cur_TreatmentInfoDT.Rows[0]["DeleteFlag"], -1); model.CreatorID = PublicClass.ToInt64(Cur_TreatmentInfoDT.Rows[0]["CreatorID"], 0); model.Creator = Cur_TreatmentInfoDT.Rows[0]["Creator"].ToString(); model.CreationDate = Cur_TreatmentInfoDT.Rows[0]["CreationDate"].ToString(); model.EditorID = Information.User.ID; model.Editor = Information.User.FullName; model.EditTime = PublicClass.DateTimeNow(); model.Is_CTNT = "1"; list_Model.Add(model); //初始化两个工厂 ClientFactory httpClient = new HttpClientFactory(); Client client = httpClient.VisitFactory(); } } } private void btn_Add_Click(object sender, EventArgs e) { if (Cur_BindDT.Rows.Count >= 3) { if (XtraMessageBox.Show("当前已有三个肌钙蛋白的报告,因数据填报平台只需传送三个肌钙蛋白结果!\r\n如果继续新增将按添加的先后顺序传送前三条到数据填报平台,请知晓!\r\n请问是否继续新增?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { PublicClass.EnabledControl(groupControl_CTNT, true, true); return; } } PublicClass.EnabledControl(groupControl_CTNT, false, true); Cur_DetailDT = new DataTable(); lbl_CTNT.Tag = ""; txt_CTNT_Value.Tag = ""; btn_Update.Enabled = false; btn_Delete.Enabled = false; } private void btn_Update_Click(object sender, EventArgs e) { BindDetail(); PublicClass.EnabledControl(groupControl_CTNT, false, false); btn_Add.Enabled = false; btn_Delete.Enabled = false; } private void btn_Delete_Click(object sender, EventArgs e) { try { if (grv_CTNT.DataRowCount > 0) { int selectRow = grv_CTNT.GetSelectedRows()[0]; long ID = PublicClass.ToInt64(grv_CTNT.GetRowCellValue(selectRow, "ID"), 0); if (ID == 0) { XtraMessageBox.Show("请先选择要删除的报告记录!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (XtraMessageBox.Show("确定要删除当前报告记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { List list = new List(); T_Service_ChestPain_CTNTDTO model = new T_Service_ChestPain_CTNTDTO(); string Url = "api/service/T_Service_ChestPain_CTNT/LogicalDelete"; model.ID = ID; model.DeleteFlag = 1; model.EditorID = Information.User.ID; model.Editor = Information.User.FullName; model.EditTime = PublicClass.DateTimeNow(); list.Add(model); //初始化两个工厂 ClientFactory httpClient = new HttpClientFactory(); Client client = httpClient.VisitFactory(); if (client.Post(Url, list).Success) { XtraMessageBox.Show("删除报告记录成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); PublicClass.EnabledControl(this.groupControl_CTNT, true, false); //列表分页数据绑定 Bind_List(); } else { XtraMessageBox.Show("删除报告记录失败,请稍后重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } catch (Exception ex) { PublicClass.WriteErrorLog(this.Text, "删除:\r\n" + ex); } } private void gridControl_CTNT_MouseClick(object sender, MouseEventArgs e) { PublicClass.EnabledControl(this.groupControl_CTNT, true, false); BindDetail(); btn_Add.Enabled = true; btn_Update.Enabled = true; btn_Delete.Enabled = true; } /// /// 绑定肌钙蛋白详情 /// private void BindDetail() { try { if (grv_CTNT.DataRowCount > 0) { int selectRow = grv_CTNT.GetSelectedRows()[0]; long ID = Convert.ToInt64(grv_CTNT.GetRowCellValue(selectRow, "ID").ToString()); Cur_DetailDT = DBHelpClass.GetDataRow(string.Format("api/service/T_Service_ChestPain_CTNT/{0}", ID)); if (Cur_DetailDT != null && Cur_DetailDT.Rows.Count > 0) { lbl_CTNT.Tag = Cur_DetailDT.Rows[0]["ID"].ToString(); txt_CTNT_Value.Tag = Cur_DetailDT.Rows[0]["GUID"].ToString(); //类型 radioGroup_CTNT.EditValue = PublicClass.ToString(Cur_DetailDT.Rows[0]["Type"], ""); #region cTnI值 //cTnI值 string CTnI_Value = Cur_DetailDT.Rows[0]["Value"].ToString().Trim(); if (!string.IsNullOrEmpty(CTnI_Value)) { if (CTnI_Value.Contains(">=")) { comboBox_CTNT_Operational.Text = ">="; CTnI_Value = CTnI_Value.Replace(">=", ""); } else if (CTnI_Value.Contains("<=")) { comboBox_CTNT_Operational.Text = "<="; CTnI_Value = CTnI_Value.Replace("<=", ""); } else if (CTnI_Value.Contains("=")) { comboBox_CTNT_Operational.Text = "="; CTnI_Value = CTnI_Value.Replace("=", ""); } else if (CTnI_Value.Contains(">")) { comboBox_CTNT_Operational.Text = ">"; CTnI_Value = CTnI_Value.Replace(">", ""); } else if (CTnI_Value.Contains("<")) { comboBox_CTNT_Operational.Text = "<"; CTnI_Value = CTnI_Value.Replace("<", ""); } else { comboBox_CTNT_Operational.Text = "="; } } else { comboBox_CTNT_Operational.Text = "="; } txt_CTNT_Value.Text = CTnI_Value; #endregion //单位 1:ng/mL 2:ug/L 3:ng/L 4:pg/mL 5:mg/L comboBox_CTNT_Unit.SelectedIndex = PublicClass.ToInt32(Cur_DetailDT.Rows[0]["Unit"], 0); //状态 1:阳性 2:阴性 3:未选择 comboBox_CTNT_Status.SelectedIndex = PublicClass.ToInt32(Cur_DetailDT.Rows[0]["Status"], 0); //抽血时间 time_CTNT_Blood_Time.TimeValue = Cur_DetailDT.Rows[0]["Blood_Time"].ToString(); //获得报告时间 time_CTNT_Report_Time.TimeValue = Cur_DetailDT.Rows[0]["Report_Time"].ToString(); } } } catch (Exception ex) { PublicClass.WriteErrorLog(this.Text, "绑定肌钙蛋白详情:\r\n" + ex); } } private void POCT_FormClosing(object sender, FormClosingEventArgs e) { Form_EMRInfo info; info = (Form_EMRInfo)this.Owner; info.ParentInfo(Cur_PatientGuid); this.Dispose(); } } }