StableVersion4.3/HL_FristAidPlatform_ChestPain/Form_ChestPain_CTNT.cs

533 lines
22 KiB
C#
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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_ChestPain
{
public partial class Form_ChestPain_CTNT : XtraForm
{
#region 变量
/// <summary>
/// 当前病人编号
/// </summary>
private string Cur_PatientGuid = string.Empty;
/// <summary>
/// 当前患者所有的肌钙蛋白报告
/// </summary>
private DataTable Cur_BindDT = new DataTable();
/// <summary>
/// 当前修改的记录信息
/// </summary>
private DataTable Cur_DetailDT = new DataTable();
#endregion
/// <summary>
/// 肌钙蛋白报告信息管理
/// </summary>
/// <param name="_patientGuid"></param>
public Form_ChestPain_CTNT(string _patientGuid)
{
InitializeComponent();
Cur_PatientGuid = _patientGuid;
}
/// <summary>
/// 窗体加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form_ChestPain_CTNT_Load(object sender, EventArgs e)
{
Bind_List();
}
/// <summary>
/// 绑定肌钙蛋白
/// </summary>
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);
}
}
/// <summary>
/// 列表中某列值自定义显示
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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;
}
}
}
/// <summary>
/// 保存
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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();
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);
}
}
/// <summary>
/// 新增
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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;
}
/// <summary>
/// 修改
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_Update_Click(object sender, EventArgs e)
{
BindDetail();
PublicClass.EnabledControl(groupControl_CTNT, false, false);
btn_Add.Enabled = false;
btn_Delete.Enabled = false;
}
/// <summary>
/// 删除
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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<T_Service_ChestPain_CTNTDTO> list = new List<T_Service_ChestPain_CTNTDTO>();
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<T_Service_ChestPain_CTNTDTO> httpClient = new HttpClientFactory<T_Service_ChestPain_CTNTDTO>();
Client<T_Service_ChestPain_CTNTDTO> 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);
}
}
/// <summary>
/// 显示详情
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
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;
}
/// <summary>
/// 绑定肌钙蛋白详情
/// </summary>
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);
}
}
/// <summary>
/// 保存肌钙蛋白
/// </summary>
/// <returns></returns>
private bool Save_CTNT()
{
try
{
string Url = string.Empty;
#region 保存肌钙蛋白
List<T_Service_ChestPain_CTNTDTO> list_Model = new List<T_Service_ChestPain_CTNTDTO>();
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<T_Service_ChestPain_CTNTDTO> httpClient = new HttpClientFactory<T_Service_ChestPain_CTNTDTO>();
Client<T_Service_ChestPain_CTNTDTO> client = httpClient.VisitFactory();
#endregion
//访问
return client.Post(Url, list_Model).Success;
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "保存肌钙蛋白:\r\n" + ex);
return false;
}
}
/// <summary>
/// 更新胸痛诊疗表中是否有肌钙蛋白的字段值
/// </summary>
/// <param name="_patientGuid">患者编号</param>
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<T_Service_ChestPain_TreatmentInfoDTO> list_Model = new List<T_Service_ChestPain_TreatmentInfoDTO>();
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<T_Service_ChestPain_TreatmentInfoDTO> httpClient = new HttpClientFactory<T_Service_ChestPain_TreatmentInfoDTO>();
Client<T_Service_ChestPain_TreatmentInfoDTO> client = httpClient.VisitFactory();
}
}
}
private void grv_CTNT_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
if (e.Info.IsRowIndicator && e.RowHandle >= 0)
e.Info.DisplayText = (e.RowHandle + 1).ToString();
}
}
}