StableVersion4.3/HL_FristAidPlatform_Base/Form_Hospital.cs

541 lines
24 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.Drawing;
using System.IO;
using System.Windows.Forms;
namespace HL_FristAidPlatform_Base
{
public partial class Form_Hospital : XtraForm
{
#region 变量
/// <summary>
/// 操作标识 1:新增 2:修改
/// </summary>
private int Flag;
/// <summary>
/// 当前操作的医院ID
/// </summary>
private long Cur_HospitalID;
/// <summary>
/// 当前院徽图片文件名
/// </summary>
private string Cur_Logo = string.Empty;
/// <summary>
/// 当前院徽图片(转换成二进制之后数据)
/// </summary>
private string Cur_LogoImageData = string.Empty;
/// <summary>
/// 当前院徽图片的位图源
/// </summary>
private Bitmap Cur_LogoImageData_Bitmap;
/// <summary>
/// 当前背景图片文件名
/// </summary>
private string Cur_BgImage = string.Empty;
/// <summary>
/// 当前背景图片(转换成二进制之后数据)
/// </summary>
private string Cur_BgImageData = string.Empty;
/// <summary>
/// 当前背景图片的位图源
/// </summary>
private Bitmap Cur_BgImageData_Bitmap;
/// <summary>
/// 每个 groupControl标题高度
/// </summary>
private int H1 = 28;
#endregion
/// <summary>
/// 医院信息维护
/// </summary>
/// <param name="_hospitalID">医院编号</param>
public Form_Hospital(long _hospitalID = 0)
{
InitializeComponent();
//如果当前屏幕的高度不足以显示完整的弹出窗体,则缩小高度到适应当前屏幕的高度
if (PublicClass.ScreenHeight < this.Height)
{
this.Height = PublicClass.ScreenHeight;
}
Cur_HospitalID = _hospitalID;
}
/// <summary>
/// 加载
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Form_Base_Hospital_Load(object sender, EventArgs e)
{
BindData();
BindInfo();
radioGroup_CP_CertificationVersion_SelectedIndexChanged(null, null);
}
#region BindData()
/// <summary>
/// 绑定控件基础数据
/// </summary>
private void BindData()
{
//绑定院区属性
BindAttributeTag();
//绑定当前院区的急救车
BindAmbulance();
//胸痛认证版本
BindAmbulance(PublicClassForDataBase.Config10001, radioGroup_CP_CertificationVersion);
//卒中认证版本
BindAmbulance(PublicClassForDataBase.Config10002, radioGroup_AP_CertificationVersion);
}
/// <summary>
/// 绑定院区属性
/// </summary>
private void BindAttributeTag()
{
try
{
DataTable ResultDT = PublicClass.EnumToDataTable(typeof(Enumerate.HospitalAttributeTag), "Name", "ID");
PublicClass.BindRadioGroupData(radioGroup_AttributeTag, ResultDT, "Name", "ID");
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "绑定院区属性:\r\n" + ex);
}
}
/// <summary>
/// 绑定当前院区的急救车
/// </summary>
private void BindAmbulance()
{
try
{
DataTable ResultDT = DBHelpClass.Get("/api/base/T_Base_Ambulance/GetListForState?state=-1&hospitalGuid=" + Information.Hospital.GUID);
PublicClass.SetLookUpList(lookUp_DefaultAmbulanceGuid, ResultDT, "GUID", "PlateNumber", true);
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "绑定当前院区的急救车:\r\n" + ex);
}
}
/// <summary>
/// 获取认证标准
/// </summary>
/// <param name="systemModuleID">所属系统编号参数</param>
/// <param name="radioGroup">绑定控件</param>
private void BindAmbulance(string systemModuleID, RadioGroup radioGroup)
{
try
{
DataTable ResultDT = DBHelpClass.Get(string.Format("api/base/T_Base_CertificationVersion?systemModuleID={0}", systemModuleID));
PublicClass.BindRadioGroupData(radioGroup, ResultDT, "VersionName", "GUID");
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "获取认证标准:\r\n" + ex);
}
}
/// <summary>
/// 绑定上级医院
/// </summary>
private void BindParentHospital()
{
try
{
string Url = "api/base/T_Base_Hospital/GetList";
DataTable ResultDT = DBHelpClass.Get(Url);
PublicClass.SetLookUpList(lookUp_ParentGUID, ResultDT, "GUID", "Name");
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "绑定上级医院:\r\n" + ex);
}
}
#endregion BindData()
#region BindInfo()
/// <summary>
/// 绑定信息
/// </summary>
private void BindInfo()
{
try
{
string Url = string.Format("api/base/T_Base_Hospital/{0}", Cur_HospitalID);
DataTable ResultDT = DBHelpClass.GetDataRow(Url);
if (ResultDT != null && ResultDT.Rows.Count > 0)
{
txt_Name.Tag = PublicClass.ToString(ResultDT.Rows[0]["ID"], "");
txt_Name.Text = PublicClass.ToString(ResultDT.Rows[0]["Name"], "");
string AttributeTag = PublicClass.ToString(ResultDT.Rows[0]["AttributeTag"], "");
radioGroup_AttributeTag.EditValue = AttributeTag;
if (AttributeTag != ((int)Enumerate.HospitalAttributeTag.).ToString())
{
lookUp_ParentGUID.EditValue = PublicClass.ToString(ResultDT.Rows[0]["ParentGUID"], "");
}
txt_ShortName.Tag = PublicClass.ToString(ResultDT.Rows[0]["GUID"], "");
txt_ShortName.Text = PublicClass.ToString(ResultDT.Rows[0]["ShortName"], "");
txt_EnglishName.Tag = PublicClass.ToString(ResultDT.Rows[0]["CreationDate"], "");
txt_EnglishName.Text = PublicClass.ToString(ResultDT.Rows[0]["EnglishName"], "");
txt_AliasName.Text = PublicClass.ToString(ResultDT.Rows[0]["AliasName"], "");
#region 院徽图片
txt_LogoUrl.Text = PublicClass.ToString(ResultDT.Rows[0]["LogoUrl"], "");
if (!string.IsNullOrEmpty(PublicClass.ToString(ResultDT.Rows[0]["LogoImageData"], "")))
{
MemoryStream ms = new MemoryStream(Convert.FromBase64String(ResultDT.Rows[0]["LogoImageData"].ToString()));
Image img = Image.FromStream(ms);
Cur_LogoImageData_Bitmap = new Bitmap(img, picture_LogoImageData.Width, picture_LogoImageData.Height);
picture_LogoImageData.Image = Cur_LogoImageData_Bitmap;
Cur_Logo = ResultDT.Rows[0]["LogoUrl"].ToString();
//所选图标转换成二进制
Cur_LogoImageData = PublicClass.Png2String(Cur_LogoImageData_Bitmap);
}
else
{
picture_LogoImageData.Image = null;
}
#endregion
#region 院徽图片
txt_BgImageUrl.Text = PublicClass.ToString(ResultDT.Rows[0]["BgImageUrl"], "");
if (!string.IsNullOrEmpty(PublicClass.ToString(ResultDT.Rows[0]["BgImageData"], "")))
{
MemoryStream ms = new MemoryStream(Convert.FromBase64String(ResultDT.Rows[0]["BgImageData"].ToString()));
Image img = Image.FromStream(ms);
Cur_BgImageData_Bitmap = new Bitmap(img, picture_BgImageData.Width, picture_BgImageData.Height);
picture_BgImageData.Image = Cur_BgImageData_Bitmap;
Cur_BgImage = ResultDT.Rows[0]["BgImageUrl"].ToString();
//所选图标转换成二进制
Cur_BgImageData = PublicClass.Png2String(Cur_BgImageData_Bitmap);
}
else
{
picture_BgImageData.Image = null;
}
#endregion
txt_Nature.Text = PublicClass.ToString(ResultDT.Rows[0]["Nature"], "");
txt_Grade.Text = PublicClass.ToString(ResultDT.Rows[0]["Grade"], "");
txt_ContactNumber.Text = PublicClass.ToString(ResultDT.Rows[0]["ContactNumber"], "");
txt_Fax.Text = PublicClass.ToString(ResultDT.Rows[0]["Fax"], "");
txt_Website.Text = PublicClass.ToString(ResultDT.Rows[0]["Website"], "");
txt_ZipCode.Text = PublicClass.ToString(ResultDT.Rows[0]["ZipCode"], "");
txt_BusRoute.Text = PublicClass.ToString(ResultDT.Rows[0]["BusRoute"], "");
txt_ContactAddress.Text = PublicClass.ToString(ResultDT.Rows[0]["ContactAddress"], "");
txt_Introduce.Text = PublicClass.ToString(ResultDT.Rows[0]["Introduce"], "");
txt_Ecg_OrgCode.Text = PublicClass.ToString(ResultDT.Rows[0]["Ecg_OrgCode"], "");
txt_Ecg_URL.Text = PublicClass.ToString(ResultDT.Rows[0]["Ecg_URL"], "");
txt_Ecg_RecordNumPer.Text = PublicClass.ToString(ResultDT.Rows[0]["Ecg_RecordNumPer"], "");
txt_Ecg_AuthorKey.Text = PublicClass.ToString(ResultDT.Rows[0]["Ecg_AuthorKey"], "");
txt_Ecg_AppId.Text = PublicClass.ToString(ResultDT.Rows[0]["Ecg_AppId"], "");
txt_Ecg_Token.Text = PublicClass.ToString(ResultDT.Rows[0]["Ecg_Token"], "");
txt_Ecg_Summary.Text = PublicClass.ToString(ResultDT.Rows[0]["Ecg_Summary"], "");
txt_CCPC_AppID.Text = PublicClass.ToString(ResultDT.Rows[0]["CCPC_AppID"], "");
txt_CCPC_SecretKey.Text = PublicClass.ToString(ResultDT.Rows[0]["CCPC_SecretKey"], "");
txt_CCPC_HospitalID.Text = PublicClass.ToString(ResultDT.Rows[0]["CCPC_HospitalID"], "");
txt_STEMI_D2B_DelayTime_ReferenceValue.Text = PublicClass.ToString(ResultDT.Rows[0]["STEMI_D2B_DelayTime_ReferenceValue"], "");
txt_NSTEMI_D2B_DelayTime_ReferenceValue.Text = PublicClass.ToString(ResultDT.Rows[0]["NSTEMI_D2B_DelayTime_ReferenceValue"], "");
txt_Longitude.Text = PublicClass.ToString(ResultDT.Rows[0]["Longitude"], "");
txt_Latitude.Text = PublicClass.ToString(ResultDT.Rows[0]["Latitude"], "");
lookUp_DefaultAmbulanceGuid.EditValue = PublicClass.ToString(ResultDT.Rows[0]["DefaultAmbulanceGuid"], "");
radioGroup_CP_CertificationVersion.EditValue = PublicClass.ToString(ResultDT.Rows[0]["CP_CertificationVersion"], "");
radioGroup_CP_CertificationStatus.EditValue = PublicClass.ToString(ResultDT.Rows[0]["CP_CertificationStatus"], "");
radioGroup_CP_First_Reperfusion.EditValue = PublicClass.ToString(ResultDT.Rows[0]["CP_First_Reperfusion"], "");
//再灌注查询条件
PublicClass.SetItemChecked(checkedList_CP_Second_Reperfusion, PublicClass.ToString(ResultDT.Rows[0]["CP_Second_Reperfusion"], ""), '|');
radioGroup_AP_CertificationVersion.EditValue = PublicClass.ToString(ResultDT.Rows[0]["AP_CertificationVersion"], "");
radioGroup_AP_CertificationStatus.EditValue = PublicClass.ToString(ResultDT.Rows[0]["AP_CertificationStatus"], "");
Flag = 2;
}
else
{
Flag = 1;
}
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "绑定信息:\r\n" + ex);
}
}
#endregion BindInfo()
#region 控件事件
/// <summary>
/// 保存
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_Save_Click(object sender, EventArgs e)
{
try
{
#region 保存
//医院名称不能为空
if (string.IsNullOrEmpty(txt_Name.Text.ToString().Trim()))
{
XtraMessageBox.Show("医院名称不能为空,请填写!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
txt_Name.Focus();
return;
}
List<T_Base_HospitalDTO> list = new List<T_Base_HospitalDTO>();
T_Base_HospitalDTO model = new T_Base_HospitalDTO();
string Url = string.Empty;
if (Flag == 1)
{
Url = "api/base/T_Base_Hospital";
model.GUID = Guid.NewGuid().ToString();
model.CreationDate = Convert.ToDateTime(DateTime.Now.ToString(PublicClass.TimeToString));
}
else
{
Url = "api/base/T_Base_Hospital/Update";
model.ID = PublicClass.ToInt32(txt_Name.Tag, 0);
model.GUID = PublicClass.ToString(txt_ShortName.Tag, "");
model.CreationDate = PublicClass.ToDateTime(txt_EnglishName.Tag, DateTime.Now);
}
model.Name = PublicClass.ToString(txt_Name.Text, "");
string AttributeTag = PublicClass.ToString(radioGroup_AttributeTag.EditValue, "");
model.AttributeTag = AttributeTag;
if (AttributeTag == ((int)Enumerate.HospitalAttributeTag.).ToString())
{
model.ParentGUID = "";
}
else
{
model.ParentGUID = PublicClass.ToString(lookUp_ParentGUID.EditValue, "");
}
model.ShortName = PublicClass.ToString(txt_ShortName.Text, "");
model.EnglishName = PublicClass.ToString(txt_EnglishName.Text, "");
model.AliasName = PublicClass.ToString(txt_AliasName.Text, "");
model.LogoUrl = Cur_Logo;
model.LogoImageData = Convert.FromBase64String(Cur_LogoImageData);
model.BgImageUrl = Cur_BgImage;
model.BgImageData = Convert.FromBase64String(Cur_BgImageData);
model.Nature = PublicClass.ToString(txt_Nature.Text, "");
model.Grade = PublicClass.ToString(txt_Grade.Text, "");
model.ContactNumber = PublicClass.ToString(txt_ContactNumber.Text, "");
model.Fax = PublicClass.ToString(txt_Fax.Text, "");
model.Website = PublicClass.ToString(txt_Website.Text, "");
model.ZipCode = PublicClass.ToString(txt_ZipCode.Text, "");
model.BusRoute = PublicClass.ToString(txt_BusRoute.Text, "");
model.ContactAddress = PublicClass.ToString(txt_ContactAddress.Text, "");
model.Introduce = PublicClass.ToString(txt_Introduce.Text, "");
model.CCPC_AppID = PublicClass.ToString(txt_CCPC_AppID.Text, "");
model.CCPC_SecretKey = PublicClass.ToString(txt_CCPC_SecretKey.Text, "");
model.CCPC_HospitalID = PublicClass.ToString(txt_CCPC_HospitalID.Text, "");
model.Ecg_OrgCode = PublicClass.ToString(txt_Ecg_OrgCode.Text, "");
model.Ecg_URL = PublicClass.ToString(txt_Ecg_URL.Text, "");
model.Ecg_RecordNumPer = PublicClass.ToInt32(txt_Ecg_RecordNumPer.Text, 1);
model.Ecg_AuthorKey = PublicClass.ToString(txt_Ecg_AuthorKey.Text, "");
model.Ecg_AppId = PublicClass.ToString(txt_Ecg_AppId.Text, "");
model.Ecg_Token = PublicClass.ToString(txt_Ecg_Token.Text, "");
model.Ecg_Summary = PublicClass.ToString(txt_Ecg_Summary.Text, "");
model.STEMI_D2B_DelayTime_ReferenceValue = PublicClass.ToInt32(txt_STEMI_D2B_DelayTime_ReferenceValue.Text, 0);
model.NSTEMI_D2B_DelayTime_ReferenceValue = PublicClass.ToInt32(txt_NSTEMI_D2B_DelayTime_ReferenceValue.Text, 0);
model.Longitude = PublicClass.ToString(txt_Longitude.Text, "");
model.Latitude = PublicClass.ToString(txt_Latitude.Text, "");
string DefaultAmbulanceGuid = PublicClass.ToString(lookUp_DefaultAmbulanceGuid.EditValue, "-1");
model.DefaultAmbulanceGuid = DefaultAmbulanceGuid == "-1" ? "" : lookUp_DefaultAmbulanceGuid.EditValue.ToString();
model.CP_CertificationVersion = PublicClass.ToString(radioGroup_CP_CertificationVersion.EditValue, "");
model.CP_CertificationStatus = PublicClass.ToString(radioGroup_CP_CertificationStatus.EditValue, "");
model.CP_First_Reperfusion = PublicClass.ToString(radioGroup_CP_First_Reperfusion.EditValue, "");
//次选再灌注
string CP_Second_Reperfusion = string.Empty;
string CP_Second_ReperfusionText = string.Empty;
PublicClass.GetCheckedListBoxItemValues(checkedList_CP_Second_Reperfusion, "|", out CP_Second_Reperfusion, out CP_Second_ReperfusionText);
model.CP_Second_Reperfusion = CP_Second_Reperfusion;
model.AP_CertificationVersion = PublicClass.ToString(radioGroup_AP_CertificationVersion.EditValue, "");
model.AP_CertificationStatus = PublicClass.ToString(radioGroup_AP_CertificationStatus.EditValue, "");
list.Add(model);
//初始化两个工厂
ClientFactory<T_Base_HospitalDTO> httpClient = new HttpClientFactory<T_Base_HospitalDTO>();
Client<T_Base_HospitalDTO> client = httpClient.VisitFactory();
//访问
ListEntity<T_Base_HospitalDTO> t = client.Post(Url, list);
if (t.Success)
{
XtraMessageBox.Show("保存医院信息成功!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
DialogResult = DialogResult.OK;
Flag = 0;
Close();
}
else
{
XtraMessageBox.Show("保存失败,请稍后重试!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
#endregion
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "保存:\r\n" + ex);
}
}
/// <summary>
/// 选择医院院徽地址
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btn_SelLogoUrlFlie_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog ofd = new OpenFileDialog();
string BaseDirectory = AppDomain.CurrentDomain.BaseDirectory;//根目录路径
ofd.InitialDirectory = BaseDirectory;
ofd.Filter = "Image Files(*.JPG;*.PNG;*.jpeg;*.GIF;*.BMP)|*.JPG;*.PNG;*.GIF;*.BMP;*.jpeg|All files(*.*)|*.*";
ofd.RestoreDirectory = true;
if (ofd.ShowDialog() == DialogResult.OK)
{
FileInfo file = new FileInfo(ofd.FileName);
if (file.Extension == ".png" || file.Extension == ".PNG")
{
string Cur_PicAddress = ofd.FileName;
Image imge = Image.FromFile(Cur_PicAddress);
Cur_LogoImageData_Bitmap = new Bitmap(imge, picture_LogoImageData.Width, picture_LogoImageData.Height);
picture_LogoImageData.Image = Cur_LogoImageData_Bitmap;
txt_LogoUrl.Text = Cur_Logo = file.Name;
//所选图标转换成二进制
Cur_LogoImageData = PublicClass.Png2String(Cur_LogoImageData_Bitmap);
}
else
{
XtraMessageBox.Show("为确保系统美观度,请上传.png格式的图标", "提示", 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_SelBgImageUrlFlie_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog ofd = new OpenFileDialog();
string BaseDirectory = AppDomain.CurrentDomain.BaseDirectory;//根目录路径
ofd.InitialDirectory = BaseDirectory;
ofd.Filter = "Image Files(*.JPG;*.PNG;*.jpeg;*.GIF;*.BMP)|*.JPG;*.PNG;*.GIF;*.BMP;*.jpeg|All files(*.*)|*.*";
ofd.RestoreDirectory = true;
if (ofd.ShowDialog() == DialogResult.OK)
{
FileInfo file = new FileInfo(ofd.FileName);
string Cur_PicAddress = ofd.FileName;
Image imge = Image.FromFile(Cur_PicAddress);
Cur_BgImageData_Bitmap = new Bitmap(imge);
picture_BgImageData.Image = Cur_BgImageData_Bitmap;
txt_BgImageUrl.Text = Cur_BgImage = file.Name;
//所选图标转换成二进制
Cur_BgImageData = PublicClass.Png2String(Cur_BgImageData_Bitmap);
}
}
catch (Exception ex)
{
PublicClass.WriteErrorLog(this.Text, "背景图片地址:\r\n" + ex);
}
}
/// <summary>
/// 选择基层版显示基层版再灌注策略
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void radioGroup_CP_CertificationVersion_SelectedIndexChanged(object sender, EventArgs e)
{
string CP_CertificationVersion = PublicClass.ToString(radioGroup_CP_CertificationVersion.EditValue, "");
if (!string.IsNullOrEmpty(CP_CertificationVersion))
{
if (CP_CertificationVersion == PublicClassForDataBase.Config122)
{
panel_CP_First_Reperfusion.Visible = true;
}
else
{
panel_CP_First_Reperfusion.Visible = false;
}
}
else
{
panel_CP_First_Reperfusion.Visible = false;
}
}
/// <summary>
/// 医院属性选择项事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void radioGroup_AttributeTag_SelectedIndexChanged(object sender, EventArgs e)
{
string EditValue = PublicClass.ToString(radioGroup_AttributeTag.EditValue, "");
if (EditValue == ((int)Enumerate.HospitalAttributeTag.).ToString())
{
lookUp_ParentGUID.Enabled = false;
}
else
{
lookUp_ParentGUID.Enabled = true;
BindParentHospital();
}
}
#endregion 控件事件
}
}