1.33辅助检查
在需要做辅助检查的时候,选择病人,然后选择相关信息的辅助检查项目,如图(1)、(2)所示::
图(1)
图(2)
从界面上可以看到我们这里用到的控件有
控件名称 | 说明 |
日期控件(DateTimePicker) | 控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以编辑事件。 |
下拉框(ComboBox) | |
文本(TextBox) | |
按钮(Button) | |
表格(DataGridView) |
保存辅助检查功能实现:
第一步:数据库
1、表与关系
表1:辅助检查表(SS_HelpCheckList)
列名 | 数据类型 | 说明 |
HelpCheckID | int - Identity | 辅助检查ID |
MenZhenRegisterID | int | 门诊登记ID |
CheckProject | char (50) | 检查项目 |
OpenBillsDate | datetime | 开单日期 |
OpenDoctorID | int | 开单医生ID |
SendCheckOfficeID | int | 送检科室ID |
ExecuteOfficeID | int | 执行科室ID |
Office | char (30) | 科室 |
UltrasoundNumber | char (30) | 超声号 |
DiseaseArea | int | 病区 |
BedNumber | nchar (30) | 床号 |
InHospitalNumber | nchar (30) | 住院号 |
BingLiSummary | nchar (100) | 病历摘要 |
ClinicalDiagnosis | nchar (100) | 临床诊断 |
CheckPurpose | nchar (100) | 检查目的 |
CheckBeiZhu | nchar (100) | 检查备注 |
chargeNo | bit | 收费否 |
Money | decimal (18, 2) | 金额 |
2:“添加”按钮显示窗体,绑定相关的数据,如图(3)、(4)
图(3)
图(4)
#region 单击添加按钮绑定数据,窗体出现
int Switch;//声明一个变量
private void btnInsert_fu_Click(object sender, EventArgs e)
{
Switch=0;//为0则保存
if (txtName.Text == "")//如果没有选择病人则提示你选择病人
{
MessageBox.Show("还没有选择病人呢?");
return;
}
panel9.Visible = true;//如果选到了病人就显示增加辅助检查项目窗体
txtCheckProject.Text = "";//初始化为空
txtUltrasoundNumber.Text = "";//初始化为空
txtBedNumber.Text = "";//初始化为空
txtInHospitalNumber.Text = "";//初始化为空
txtBingLiSummary.Text = "";//初始化为空
txtClinicalDiagnosis.Text = "";//初始化为空
txtCheckPurpose.Text = "";//初始化为空
txtCheckBeiZhu.Text = "";//初始化为空
//绑定下拉框
cboDiseaseArea.DataSource = myFrm_MenZhenYiShengGongZuoZhanClient.Frm_MenZhenYiShengGongZuoZhan_cboBingQu().Tables[0];
cboDiseaseArea.DisplayMember = "IllnessAreaName";
cboDiseaseArea.ValueMember = "IllnessAreaID";
//绑定下拉框
cboExecuteOfficeID.DataSource = myFrm_MenZhenYiShengGongZuoZhanClient.Frm_MenZhenYiShengGongZuoZhan_cboKeShi().Tables[0];
cboExecuteOfficeID.DisplayMember = "OfficeName";
cboExecuteOfficeID.ValueMember = "OfficeID";
//绑定下拉框
cboSendCheckOfficeID.DataSource = myFrm_MenZhenYiShengGongZuoZhanClient.Frm_MenZhenYiShengGongZuoZhan_cboKeShi().Tables[0];
cboSendCheckOfficeID.DisplayMember = "OfficeName";
cboSendCheckOfficeID.ValueMember = "OfficeID";
//绑定下拉框
cboOpenDoctorID.DataSource = myFrm_MenZhenYiShengGongZuoZhanClient.Frm_MenZhenYiShengGongZuoZhan_cboYiShi().Tables[0];
cboOpenDoctorID.DisplayMember = "DoctorName";
cboOpenDoctorID.ValueMember = "DoctorID";
}
#endregion
3:获取住院号(单击图(1)中的放大镜)
第一步:数据库
1、表与关系
用到的字段就是查询有没有住院号
2:查询住院号
第一步:数据库的存储过程
if(@Type='Frm_MenZhenYiShengGongZuoZhan_ChaMenZhu')
begin
SELECT ZY_InHospitalRegisterList.MenZhenNumber, ZY_InHospitalRegisterList.InHospitalNumber, ZY_InHospitalRegisterList.RegisterInhospitalID
FROM ZY_InHospitalRegisterList INNER JOIN
MZ_MenZhenRegisterList ON ZY_InHospitalRegisterList.MenZhenRegisterID = MZ_MenZhenRegisterList.MenZhenRegisterID
end
第二步:逻辑层(BLL)代码
[OperationContract]
public DataSet Frm_MenZhenYiShengGongZuoZhan_ChaMenZhu()
{
SqlParameter[] mySqlParameters = {
new SqlParameter ("@Type",SqlDbType .Char),
};
mySqlParameters[0].Value = "Frm_MenZhenYiShengGongZuoZhan_ChaMenZhu";
DataTable dt = myDALMethod.QueryDataTable("门诊登记_Frm_MenZhenYiShengGongZuoZhan", mySqlParameters);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}
第三步:界面层(UIL)代码,查询有没有住院号“该病人还没有登记住院呢?暂时没有住院号”,如图(5)
图(5)
#region 如果该病人住过院获取住院号,没有就提示
private void btnCheck_Click(object sender, EventArgs e)
{
try
{
DataTable DT = myFrm_MenZhenYiShengGongZuoZhanClient.Frm_MenZhenYiShengGongZuoZhan_ChaMenZhu().Tables[0];//获取住院病人登记信息
string strMenZhenNumber = DT.Rows[0]["MenZhenNumber"].ToString().Trim();//获取住院病人门诊号
string strMenZhenNumber2 = lblIDNumber.Text;
if (strMenZhenNumber2 == strMenZhenNumber || strMenZhenNumber != "") //如果有就显示
{
dgvChuXunZhuYuanHao.Visible = true;
dgvChuXunZhuYuanHao.DataSource = myFrm_MenZhenYiShengGongZuoZhanClient.Frm_MenZhenYiShengGongZuoZhan_ChaXunMenZhenBingRenZhuYuanHao(PublicStatic.intMenZhenGuaHaoID).Tables[0];
}
if (dgvChuXunZhuYuanHao.Rows.Count==0) //根据病人信息判断有没有数据,如果没有提示该病人还没有住院
{
dgvChuXunZhuYuanHao.Visible = false;
MessageBox.Show("该病人还没有登记住院呢?暂时没有住院号");
txtInHospitalNumber.Text = "";
return;
}
}
catch { }
}
#endregion
3:保存辅助检查项目,如果Switch=0,则是保存功能,否则是修改功能,同一个保存按钮,如图(6)
图(6)
第一步:数据库的存储过程
if(@Type='Frm_MenZhenYiShengGongZuoZhan_InsertHelpCheck')
begin
insert SS_HelpCheckList(MenZhenRegisterID, CheckProject, OpenBillsDate, OpenDoctorID,
SendCheckOfficeID, ExecuteOfficeID, Office, UltrasoundNumber,
DiseaseArea, BedNumber, InHospitalNumber, BingLiSummary,
ClinicalDiagnosis, CheckPurpose, CheckBeiZhu,chargeNo,Money)
values (@MenZhenRegisterID, @CheckProject, @OpenBillsDate, @OpenDoctorID,
@SendCheckOfficeID, @ExecuteOfficeID, @Office, @UltrasoundNumber,
@DiseaseArea, @BedNumber, @InHospitalNumber, @BingLiSummary,
@ClinicalDiagnosis, @CheckPurpose, @CheckBeiZhu,0,@Money)
end
第二步:逻辑层(BLL)代码
[OperationContract]
public int Frm_MenZhenYiShengGongZuoZhan_InsertHelpCheck(int intMenZhenRegisterID, string strCheckProject, DateTime dtmOpenBillsDate,
int intOpenDoctorID, int intSendCheckOfficeID, int intExecuteOfficeID, string strOffice, string strUltrasoundNumber,
int intDiseaseArea, string strBedNumber, string strInHospitalNumber, string strBingLiSummary, string strClinicalDiagnosis,
string strCheckPurpose, string strCheckBeiZhu, decimal decMoney)
{
SqlParameter[] mySqlParameters = {
new SqlParameter ("@Type",SqlDbType .Char),
new SqlParameter ("@MenZhenRegisterID",SqlDbType.Int),
new SqlParameter ("@CheckProject",SqlDbType.Char),
new SqlParameter ("@OpenBillsDate",SqlDbType.DateTime),
new SqlParameter ("@OpenDoctorID",SqlDbType.Int),
new SqlParameter ("@SendCheckOfficeID",SqlDbType.Int),
new SqlParameter ("@ExecuteOfficeID",SqlDbType.Int),
new SqlParameter ("@Office",SqlDbType.Char),
new SqlParameter ("@UltrasoundNumber",SqlDbType.Char),
new SqlParameter ("@DiseaseArea",SqlDbType.Int),
new SqlParameter ("@BedNumber",SqlDbType.Char),
new SqlParameter ("@InHospitalNumber",SqlDbType.Char),
new SqlParameter ("@BingLiSummary",SqlDbType.Char),
new SqlParameter ("@ClinicalDiagnosis",SqlDbType.Char),
new SqlParameter ("@CheckPurpose",SqlDbType.Char),
new SqlParameter ("@CheckBeiZhu",SqlDbType.Char),
new SqlParameter ("@Money",SqlDbType.Decimal),
};
mySqlParameters[0].Value = "Frm_MenZhenYiShengGongZuoZhan_InsertHelpCheck";
mySqlParameters[1].Value = intMenZhenRegisterID;
mySqlParameters[2].Value = strCheckProject;
mySqlParameters[3].Value = dtmOpenBillsDate;
mySqlParameters[4].Value = intOpenDoctorID;
mySqlParameters[5].Value = intSendCheckOfficeID;
mySqlParameters[6].Value = intExecuteOfficeID;
mySqlParameters[7].Value = strOffice;
mySqlParameters[8].Value = strUltrasoundNumber;
mySqlParameters[9].Value = intDiseaseArea;
mySqlParameters[10].Value = strBedNumber;
mySqlParameters[11].Value = strInHospitalNumber;
mySqlParameters[12].Value = strBingLiSummary;
mySqlParameters[13].Value = strClinicalDiagnosis;
mySqlParameters[14].Value = strCheckPurpose;
mySqlParameters[15].Value = strCheckBeiZhu;
mySqlParameters[16].Value = decMoney;
int i = myDALMethod.UpdateData("门诊登记_Frm_MenZhenYiShengGongZuoZhan", mySqlParameters);
return i;
}
第三步:界面层(UIL)代码,保存辅助检查
if (panel9.Visible == false)//如果窗体不显示,则提示没有数据可以保存
{
MessageBox.Show("没有数据可以保存!");
return;
}
if (Switch == 0)//如果开关为零则保存
{
if (txtCheckProject.Text == "")//没有填写的文本框则提示你填写
{
MessageBox.Show("还没有添加检查项目呢?");
txtCheckProject.Focus();
return;
}
if (txtBingLiSummary.Text == "")
{
MessageBox.Show("还没有添加病历摘要呢?");
txtBingLiSummary.Focus();
return;
}
int intMenZhenRegisterID = PublicStatic.intMenZhenGuaHaoID;//获取病人ID
string strCheckProject = txtCheckProject.Text;//赋值给检查项目
DateTime dtmOpenBillsDate = dtpOpenBillsDate.Value;//赋值给申请日期
int intOpenDoctorID = Convert.ToInt32(cboOpenDoctorID.SelectedValue); //赋值给参数
int intSendCheckOfficeID = Convert.ToInt32(cboSendCheckOfficeID.SelectedValue); //赋值给参数
int intExecuteOfficeID = Convert.ToInt32(cboExecuteOfficeID.SelectedValue); //赋值给参数
string strOffice = lblOffice.Text; //赋值给参数
string strUltrasoundNumber = txtUltrasoundNumber.Text; //赋值给参数
int intDiseaseArea = Convert.ToInt32(cboDiseaseArea.SelectedValue); //赋值给参数
string strBedNumber = txtBedNumber.Text; //赋值给参数
string strInHospitalNumber = txtInHospitalNumber.Text; //赋值给参数
string strBingLiSummary = txtBingLiSummary.Text; //赋值给参数
string strClinicalDiagnosis = txtClinicalDiagnosis.Text; //赋值给参数
string strCheckPurpose = txtCheckPurpose.Text; //赋值给参数
string strCheckBeiZhu = txtCheckBeiZhu.Text; //赋值给参数
decimal decMoney = Convert.ToDecimal(txtMoney.Text); //赋值给参数
if (Convert.ToBoolean(MessageBox.Show("确认要为病人”" + lblName.Text + "“添加“" + strCheckProject + "”这条辅助检查项目?",
"提示!", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes))
//如果执行Yes,则执行下面代码
{
int i = myFrm_MenZhenYiShengGongZuoZhanClient.Frm_MenZhenYiShengGongZuoZhan_InsertHelpCheck(intMenZhenRegisterID, strCheckProject,
dtmOpenBillsDate, intOpenDoctorID, intSendCheckOfficeID, intExecuteOfficeID, strOffice, strUltrasoundNumber,
intDiseaseArea, strBedNumber, strInHospitalNumber, strBingLiSummary, strClinicalDiagnosis,
strCheckPurpose, strCheckBeiZhu, decMoney);
if (i > 0)
{
MessageBox.Show("添加成功!!");//保存成功刷新
Frm_MenZhenYiShengGongZuoZhan_Load(null, null);
panel9.Visible = false;//隐藏窗体
}
}
}
4:如果新增的数据需要修改,则选择相关的信息绑定数据
#region 修改检查项目,绑定数据
private void btnUpdate_Click(object sender, EventArgs e)
{
try
{
if (dgvNotPayMoneyHelpCheck.Rows.Count==0)//如果未收费检查项目窗体没有数据,则提示
{
MessageBox.Show("没有数据可修改");
return;
}
Switch = 1;//如果开关为1,则修改
panel9.Visible = true;//显示窗体
//绑定下拉框
cboDiseaseArea.DataSource = myFrm_MenZhenYiShengGongZuoZhanClient.Frm_MenZhenYiShengGongZuoZhan_cboBingQu().Tables[0];
cboDiseaseArea.DisplayMember = "IllnessAreaName";
cboDiseaseArea.ValueMember = "IllnessAreaID";
//绑定下拉框
cboExecuteOfficeID.DataSource = myFrm_MenZhenYiShengGongZuoZhanClient.Frm_MenZhenYiShengGongZuoZhan_cboKeShi().Tables[0];
cboExecuteOfficeID.DisplayMember = "OfficeName";
cboExecuteOfficeID.ValueMember = "OfficeID";
//绑定下拉框
cboSendCheckOfficeID.DataSource = myFrm_MenZhenYiShengGongZuoZhanClient.Frm_MenZhenYiShengGongZuoZhan_cboKeShi().Tables[0];
cboSendCheckOfficeID.DisplayMember = "OfficeName";
cboSendCheckOfficeID.ValueMember = "OfficeID";
//绑定下拉框
cboOpenDoctorID.DataSource = myFrm_MenZhenYiShengGongZuoZhanClient.Frm_MenZhenYiShengGongZuoZhan_cboYiShi().Tables[0];
cboOpenDoctorID.DisplayMember = "DoctorName";
cboOpenDoctorID.ValueMember = "DoctorID";
//绑定数据,用于修改
txtCheckProject.Text = dgvNotPayMoneyHelpCheck.CurrentRow.Cells["CheckProject"].Value.ToString().Trim();
dtpOpenBillsDate.Value = Convert.ToDateTime(dgvNotPayMoneyHelpCheck.CurrentRow.Cells["OpenBillsDate"].Value);
cboOpenDoctorID.Text = dgvNotPayMoneyHelpCheck.CurrentRow.Cells["DoctorName"].Value.ToString().Trim();
cboSendCheckOfficeID.Text = dgvNotPayMoneyHelpCheck.CurrentRow.Cells["SendCheckjOffice"].Value.ToString().Trim();
cboExecuteOfficeID.Text = dgvNotPayMoneyHelpCheck.CurrentRow.Cells["ExecuteOffice"].Value.ToString().Trim();
lblOffice.Text = dgvNotPayMoneyHelpCheck.CurrentRow.Cells["Office"].Value.ToString().Trim();
txtUltrasoundNumber.Text = dgvNotPayMoneyHelpCheck.CurrentRow.Cells["UltrasoundNumber"].Value.ToString().Trim();
cboDiseaseArea.Text = dgvNotPayMoneyHelpCheck.CurrentRow.Cells["DiseaseArea"].Value.ToString().Trim();
txtBedNumber.Text = dgvNotPayMoneyHelpCheck.CurrentRow.Cells["BedNumber"].Value.ToString().Trim();
txtInHospitalNumber.Text = dgvNotPayMoneyHelpCheck.CurrentRow.Cells["InHospitalNumber2"].Value.ToString().Trim();
txtBingLiSummary.Text = dgvNotPayMoneyHelpCheck.CurrentRow.Cells["BingLiSummary"].Value.ToString().Trim();
txtClinicalDiagnosis.Text = dgvNotPayMoneyHelpCheck.CurrentRow.Cells["ClinicalDiagnosis"].Value.ToString().Trim();
txtCheckPurpose.Text = dgvNotPayMoneyHelpCheck.CurrentRow.Cells["CheckPurpose"].Value.ToString().Trim();
txtCheckBeiZhu.Text = dgvNotPayMoneyHelpCheck.CurrentRow.Cells["CheckBeiZhu"].Value.ToString().Trim();
}
catch { }
}
#endregion
5:修改辅助检查项目
第一步:数据库的存储过程
if(@Type='Frm_MenZhenYiShengGongZuoZhan_UpdateHelpCheck')
begin
update SS_HelpCheckList
set MenZhenRegisterID=@MenZhenRegisterID, CheckProject=@CheckProject, OpenBillsDate=@OpenBillsDate,
OpenDoctorID=@OpenDoctorID, SendCheckOfficeID=@SendCheckOfficeID,
ExecuteOfficeID=@ExecuteOfficeID, Office=@Office, UltrasoundNumber=@UltrasoundNumber
, DiseaseArea=@DiseaseArea, BedNumber=@BedNumber, InHospitalNumber=@InHospitalNumber
, BingLiSummary=@BingLiSummary, ClinicalDiagnosis=@ClinicalDiagnosis,
CheckPurpose=@CheckPurpose, CheckBeiZhu=@CheckBeiZhu,Money=@Money
where SS_HelpCheckList.HelpCheckID=@HelpCheckID
end
第二步:逻辑层(BLL)代码
[OperationContract]
public int Frm_MenZhenYiShengGongZuoZhan_UpdateHelpCheck(int intMenZhenRegisterID, string strCheckProject, DateTime dtmOpenBillsDate,
int intOpenDoctorID, int intSendCheckOfficeID, int intExecuteOfficeID, string strOffice, string strUltrasoundNumber,
int intDiseaseArea, string strBedNumber, string strInHospitalNumber, string strBingLiSummary, string strClinicalDiagnosis,
string strCheckPurpose, string strCheckBeiZhu,decimal decMoney, int intHelpCheckID)
{
SqlParameter[] mySqlParameters = {
new SqlParameter ("@Type",SqlDbType .Char),
new SqlParameter ("@MenZhenRegisterID",SqlDbType.Int),
new SqlParameter ("@CheckProject",SqlDbType.Char),
new SqlParameter ("@OpenBillsDate",SqlDbType.DateTime),
new SqlParameter ("@OpenDoctorID",SqlDbType.Int),
new SqlParameter ("@SendCheckOfficeID",SqlDbType.Int),
new SqlParameter ("@ExecuteOfficeID",SqlDbType.Int),
new SqlParameter ("@Office",SqlDbType.Char),
new SqlParameter ("@UltrasoundNumber",SqlDbType.Char),
new SqlParameter ("@DiseaseArea",SqlDbType.Int),
new SqlParameter ("@BedNumber",SqlDbType.Char),
new SqlParameter ("@InHospitalNumber",SqlDbType.Char),
new SqlParameter ("@BingLiSummary",SqlDbType.Char),
new SqlParameter ("@ClinicalDiagnosis",SqlDbType.Char),
new SqlParameter ("@CheckPurpose",SqlDbType.Char),
new SqlParameter ("@CheckBeiZhu",SqlDbType.Char),
new SqlParameter ("@Money",SqlDbType.Decimal),
new SqlParameter ("@HelpCheckID",SqlDbType.Int),
};
mySqlParameters[0].Value = "Frm_MenZhenYiShengGongZuoZhan_UpdateHelpCheck";
mySqlParameters[1].Value = intMenZhenRegisterID;
mySqlParameters[2].Value = strCheckProject;
mySqlParameters[3].Value = dtmOpenBillsDate;
mySqlParameters[4].Value = intOpenDoctorID;
mySqlParameters[5].Value = intSendCheckOfficeID;
mySqlParameters[6].Value = intExecuteOfficeID;
mySqlParameters[7].Value = strOffice;
mySqlParameters[8].Value = strUltrasoundNumber;
mySqlParameters[9].Value = intDiseaseArea;
mySqlParameters[10].Value = strBedNumber;
mySqlParameters[11].Value = strInHospitalNumber;
mySqlParameters[12].Value = strBingLiSummary;
mySqlParameters[13].Value = strClinicalDiagnosis;
mySqlParameters[14].Value = strCheckPurpose;
mySqlParameters[15].Value = strCheckBeiZhu;
mySqlParameters[16].Value = decMoney;
mySqlParameters[17].Value = intHelpCheckID;
int i = myDALMethod.UpdateData("门诊登记_Frm_MenZhenYiShengGongZuoZhan", mySqlParameters);
return i;
}
第三步:界面层(UIL)代码,修改辅助检查项目,如图(7)
图(7)
<pre class="csharp" name="code"><pre class="csharp" name="code"> if (Switch == 1)//如果开关为1则修改
{
if (txtMoney.Text == "")
{
MessageBox.Show("请填写价格!");
return;
}
//赋值给参数
int intMenZhenRegisterID = PublicStatic.intMenZhenGuaHaoID;
string strCheckProject = txtCheckProject.Text; //赋值给参数
DateTime dtmOpenBillsDate = dtpOpenBillsDate.Value; //赋值给参数
int intOpenDoctorID = Convert.ToInt32(cboOpenDoctorID.SelectedValue); //赋值给参数
int intSendCheckOfficeID = Convert.ToInt32(cboSendCheckOfficeID.SelectedValue); //赋值给参数
int intExecuteOfficeID = Convert.ToInt32(cboExecuteOfficeID.SelectedValue); //赋值给参数
string strOffice = lblOffice.Text; //赋值给参数
string strUltrasoundNumber = txtUltrasoundNumber.Text; //赋值给参数
int intDiseaseArea = Convert.ToInt32(cboDiseaseArea.SelectedValue); //赋值给参数
string strBedNumber = txtBedNumber.Text; //赋值给参数
string strInHospitalNumber = txtInHospitalNumber.Text; //赋值给参数
string strBingLiSummary = txtBingLiSummary.Text; //赋值给参数
string strClinicalDiagnosis = txtClinicalDiagnosis.Text; //赋值给参数
string strCheckPurpose = txtCheckPurpose.Text; //赋值给参数
string strCheckBeiZhu = txtCheckBeiZhu.Text; //赋值给参数
decimal decMoney = Convert.ToDecimal(txtMoney.Text); //赋值给参数
if (Convert.ToBoolean(MessageBox.Show("确认修改?", "提示!",
MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes))
{
int i = myFrm_MenZhenYiShengGongZuoZhanClient.Frm_MenZhenYiShengGongZuoZhan_UpdateHelpCheck(intMenZhenRegisterID, strCheckProject,
dtmOpenBillsDate, intOpenDoctorID, intSendCheckOfficeID, intExecuteOfficeID, strOffice, strUltrasoundNumber,
intDiseaseArea, strBedNumber, strInHospitalNumber, strBingLiSummary, strClinicalDiagnosis,
strCheckPurpose, strCheckBeiZhu, decMoney, PublicStatic.intHelpCheckID);
if (i > 0)
{
MessageBox.Show("修改成功!!!");
Frm_MenZhenYiShengGongZuoZhan_Load(null, null);//刷新
}
}
}
仅供参考,禁止用于商业用途