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 变量
///
/// 操作标识 1:新增 2:修改
///
private int Flag;
///
/// 当前操作的医院ID
///
private long Cur_HospitalID;
///
/// 当前院徽图片文件名
///
private string Cur_Logo = string.Empty;
///
/// 当前院徽图片(转换成二进制之后数据)
///
private string Cur_LogoImageData = string.Empty;
///
/// 当前院徽图片的位图源
///
private Bitmap Cur_LogoImageData_Bitmap;
///
/// 当前背景图片文件名
///
private string Cur_BgImage = string.Empty;
///
/// 当前背景图片(转换成二进制之后数据)
///
private string Cur_BgImageData = string.Empty;
///
/// 当前背景图片的位图源
///
private Bitmap Cur_BgImageData_Bitmap;
///
/// 每个 groupControl标题高度
///
private int H1 = 28;
#endregion
///
/// 医院信息维护
///
/// 医院编号
public Form_Hospital(long _hospitalID = 0)
{
InitializeComponent();
//如果当前屏幕的高度不足以显示完整的弹出窗体,则缩小高度到适应当前屏幕的高度
if (PublicClass.ScreenHeight < this.Height)
{
this.Height = PublicClass.ScreenHeight;
}
Cur_HospitalID = _hospitalID;
}
///
/// 加载
///
///
///
private void Form_Base_Hospital_Load(object sender, EventArgs e)
{
BindData();
BindInfo();
radioGroup_CP_CertificationVersion_SelectedIndexChanged(null, null);
}
#region BindData()
///
/// 绑定控件基础数据
///
private void BindData()
{
//绑定院区属性
BindAttributeTag();
//绑定当前院区的急救车
BindAmbulance();
//胸痛认证版本
BindAmbulance(PublicClassForDataBase.Config10001, radioGroup_CP_CertificationVersion);
//卒中认证版本
BindAmbulance(PublicClassForDataBase.Config10002, radioGroup_AP_CertificationVersion);
}
///
/// 绑定院区属性
///
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);
}
}
///
/// 绑定当前院区的急救车
///
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);
}
}
///
/// 获取认证标准
///
/// 所属系统编号参数
/// 绑定控件
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);
}
}
///
/// 绑定上级医院
///
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()
///
/// 绑定信息
///
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 控件事件
///
/// 保存
///
///
///
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 list = new List();
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 httpClient = new HttpClientFactory();
Client client = httpClient.VisitFactory();
//访问
ListEntity 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);
}
}
///
/// 选择医院院徽地址
///
///
///
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);
}
}
///
/// 背景图片地址
///
///
///
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);
}
}
///
/// 选择基层版显示基层版再灌注策略
///
///
///
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;
}
}
///
/// 医院属性选择项事件
///
///
///
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 控件事件
}
}