您的位置:首页 > 其它

承志医院管理系统项目解析 门诊登记(二)

2015-05-28 08:26 489 查看

1.2门诊管理

1.21门诊登记

登录之后点击进入



首先病人来到医院登记,然后工作人员填写相关信息,并给病人门诊号。

如图(2)



从图中可以看出界面主要由文本框、日期控件、下拉框、和按钮组成

控件名称
说明
日期控件(DateTimePicker)

控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以编辑事件。

下拉框(ComboBox)

文本(TextBox)

按钮(Button)

第一步:数据库

1、表与关系





表1:门诊登记表(MZ_MenZhenRegisterList)

列名

数据类型

主键/外键

说明

MenZhenRegisterID

Int

主键

门诊登记ID

MenZhenNumber

nchar(30)

门诊号

Name

nchar(10)

姓名

SpellCode

nchar(50)

拼音码

SexID

Int

外键

属性明细表(性别ID)

BirthDate

datetime

出生日期

Age

nchar(10)

年龄

IdentityCard

nchar(30)

身份证

MedicalTreatmentInsuranceTypeID

Int

外键

折扣类型表(医疗保险类别ID)

MedicalTreatmentCard

nchar(30)

医疗证号

RegisterDate

datetime

登记日期

ProfessionID

Int

外键

属性明细表(职业ID)

NationalityID

Int

外键

属性明细表(国籍ID)

ProvinceID

Int

外键

属性明细表(省别ID)

CountyID

Int

外键

属性明细表(县市ID)

NationID

Int

外键

属性明细表(民族ID)

MarriageID

Int

外键

属性明细表(婚姻ID)

FamilyAddress

nchar(50)

家庭住址

HousePhone

nchar(30)

住宅电话

MakeBillsPersonID

Int

外键

制单人ID

HangNumberNo

bit

挂号否

ChargeNo

bit

收费否

表1:门诊最大单号表(MZ_MenZhenMaxBillsNumberList)

列名

数据类型

主键/外键

说明

MenZhenBillsNumberID

Int

主键

门诊最大单号ID

MaxBillsNumber

Int

门诊最大单号

2、绑定下拉框(设置职业的下拉框例子)

第一步:数据库的存储过程

if(@Type='Frm_MenZhenDengJi_cboZhiYe')
begin
SELECT      RTRIM(LTRIM(AttributeMingXiList.AttributeMingXiName)) as profession,
AttributeMingXiList.AttributeMingXiID, AttributeMingXiList.AttributeMusterID
FROM         AttributeMingXiList INNER JOIN
AttributeMusterList ON AttributeMingXiList.AttributeMusterID = AttributeMusterList.AttributeMusterID
where        AttributeMusterList.AttributeMusterID=21


第二步:逻辑层(BLL)代码

DALPublic.DALMethod myDALMethod = new DALPublic.DALMethod();
[OperationContract]
public DataSet Frm_MenZhenDengJi_cboZhiYe()
{
SqlParameter[] mySqlParameters = {
new SqlParameter ("@Type",SqlDbType .Char),
};
mySqlParameters[0].Value = "Frm_MenZhenDengJi_cboZhiYe";
DataTable dt = myDALMethod.QueryDataTable("门?诊?登Ì?记?_Frm_MenZhenDengJi", mySqlParameters);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;
}


第三步:界面层(UIL)代码,在窗体的Load事件中绑定下拉框的数据

BLL承志医疗ERP系统.门诊管理.Frm_MenZhenDengJi.Frm_MenZhenDengJiClient myFrm_MenZhenDengJiClient =
new BLL承志医疗ERP系统.门诊管理.Frm_MenZhenDengJi.Frm_MenZhenDengJiClient();
private void Frm_MenZhenDengJi_Load(object sender, EventArgs e)
{
cboProfession.DataSource = myFrm_MenZhenDengJiClient.Frm_MenZhenDengJi_cboZhiYe().Tables[0];//给下拉框绑定数据源
cboProfession.DisplayMember = "profession";//设置下拉框显示的属性(列)
cboProfession.ValueMember = "AttributeMingXiID";//设置下拉框中的项的值(列)
}


3生成单号

第一步:数据库的存储过程

if(@Type='Frm_MenZhenDengJi_ChaZuiDaDanHaoShu')
begin

SELECT     MaxBillsNumber
FROM         MZ_MenZhenMaxBillsNumberList

end


第二步:逻辑层(BLL)代码

[OperationContract]
public DataSet Frm_MenZhenDengJi_ChaZuiDaDanHaoShu()
{
SqlParameter[] mySqlParameters = {
new SqlParameter ("@Type",SqlDbType .Char),
};
mySqlParameters[0].Value = "Frm_MenZhenDengJi_ChaZuiDaDanHaoShu";
DataTable dt = myDALMethod.QueryDataTable("门?诊?登Ì?记?_Frm_MenZhenDengJi", mySqlParameters);
DataSet ds = new DataSet();
ds.Tables.Add(dt);
return ds;

}


第三步:界面层(UIL)代码,

#region  查询门诊号
public string ShengChengDanHao(string ZuiDaDingDanShu)
{
DateTime dtnShiJian = DateTime.Now;//获取当前时间

string strYear = dtnShiJian.Year.ToString().Trim();//获取年
string strMonth = dtnShiJian.Month.ToString();//获取月
string strDay = dtnShiJian.Day.ToString();//获取日
ZuiDaDingDanShu = myFrm_MenZhenDengJiClient.Frm_MenZhenDengJi_ChaZuiDaDanHaoShu().Tables[0].Rows[0][0].ToString();//查询单号数

switch (ZuiDaDingDanShu.Length)
{
case 1:
ZuiDaDingDanShu = "000" + ZuiDaDingDanShu; break;//如果长度为1,则在前面加3个0
case 2:
ZuiDaDingDanShu = "00" + ZuiDaDingDanShu; break;
case 3:
ZuiDaDingDanShu = "0" + ZuiDaDingDanShu; break;
}

return strYear + (strMonth.Length == 1 ? "0" + strMonth : strMonth) + (strDay.Length == 1 ? "0" + strDay : strDay) + ZuiDaDingDanShu;
//返回一个值年+月份(如果月份长度为1位。则在前面加一个0)+日(如果日长度为1位。则在前面加一个0+当前单号
}

#endregion


再在Load事件绑定文本框

private void Frm_MenZhenDengJi_Load(object sender, EventArgs e)
{

txtMenZhenNumber.Text = ShengChengDanHao(ZuiDaDingDanShu);
txtMenZhenNumber_x.Text = ShengChengDanHao(ZuiDaDingDanShu);
}


4,根据姓名生成拼音码

static public string GetChineseSpell(string strText)
{
int len = strText.Length;
string myStr = "";
for (int i = 0; i < len; i++)
{
myStr += getSpell(strText.Substring(i, 1));
}
return myStr;
}

static public string getSpell(string cnChar)

{
byte[] arrCN = Encoding.Default.GetBytes(cnChar);
if (arrCN.Length > 1)
{
int area = (short)arrCN[0];
int pos = (short)arrCN[1];
int code = (area << 8) + pos;
int[] areacode = { 45217, 45253, 45761, 46318, 46826, 47010, 47297, 47614, 48119, 48119, 49062, 49324, 49896, 50371, 50614, 50622, 50906, 51387, 51446, 52218, 52698, 52698, 52698, 52980, 53689, 54481 };
for (int i = 0; i < 26; i++)
{
int max = 55290;
if (i != 25) max = areacode[i + 1];
if (areacode[i] <= code && code < max)
{
return Encoding.Default.GetString(new byte[] { (byte)(65 + i) });
}
}
return "*";
}
else return cnChar;
}


再在姓名文本框的Changed事件写下面代码

private void txtXingMing_TextChanged(object sender, EventArgse)

{

txtSpellCode.Text =GetChineseSpell(txtName.Text.Trim());

}


5:计算年龄

private void btnCountAge_Click_1(object sender, EventArgs e)
{
try
{
int Now = Convert.ToInt32(DateTime.Now.Year.ToString());//获取当前年
int Old = Convert.ToInt32(dtpBirthDate.Value.Year.ToString());//获取时间控件值
int JiSuan = Now - Old;//相减
txtAge.Text = JiSuan.ToString();//赋值给文本框

}
catch { }

}


6:单号数变化

第一步:数据库的存储过程

if(@Type='Frm_MenZhenDengJi_ZuiDaDanHaoShu')
begin
begin tran
update MZ_MenZhenMaxBillsNumberList
set MaxBillsNumber=MaxBillsNumber+1

commit tran
end


第二步:逻辑层(BLL)代码

[OperationContract]
public int Frm_MenZhenDengJi_ZuiDaDanHaoShu()
{
SqlParameter[] mySqlParameters = {
new SqlParameter ("@Type",SqlDbType .Char),

};

mySqlParameters[0].Value = "Frm_MenZhenDengJi_ZuiDaDanHaoShu";

int i = myDALMethod.UpdateData("门诊登记_Frm_MenZhenDengJi", mySqlParameters);
return i;

}


7:保存病人信息

第一步:数据库的存储过程

<pre class="sql" name="code">  [OperationContract]
public int Frm_MenZhenDengJi_Insert(string strMenZhenHao,string strXingMing,string strPinYinMa,int intXingBieID,
DateTime dtpChuShengRiQi, string strNianLing,string strShengFenZheng,int intYiLiaoBaoXianLeiBieID,string strYiLiaoZhengHao,
DateTime dtpDengJiRiQi,int intZhiYeID,int intGuoJiID,int intShengBieID,int intXianShiID,int intMingZuID,int intHunYanID,
string strJiaTingZhuZhi,string strZhuZaDianHua,int intZhiDanRen)
{
SqlParameter[] mySqlParameters = {
new SqlParameter ("@Type",SqlDbType .Char),
new SqlParameter ("@MenZhenNumber",SqlDbType .Char),
new SqlParameter ("@Name",SqlDbType .Char),
new SqlParameter ("@SpellCode",SqlDbType .Char),
new SqlParameter ("@SexID",SqlDbType .Int),
new SqlParameter ("@BirthDate",SqlDbType.DateTime),
new SqlParameter ("@Age",SqlDbType .Char),
new SqlParameter ("@IdentityCard",SqlDbType .Char),
new SqlParameter ("@MedicalTreatmentInsuranceTypeID",SqlDbType .Int),
new SqlParameter ("@MedicalTreatmentCard",SqlDbType .Char),
new SqlParameter ("@RegisterDate ",SqlDbType .DateTime),
new SqlParameter ("@ProfessionID",SqlDbType .Int),
new SqlParameter ("@NationalityID",SqlDbType .Int),
new SqlParameter ("@ProvinceID",SqlDbType .Int),
new SqlParameter ("@CountyID",SqlDbType .Int),
new SqlParameter ("@NationID",SqlDbType .Int),
new SqlParameter ("@MarriageID",SqlDbType .Int),
new SqlParameter ("@FamilyAddress",SqlDbType .Char),
new SqlParameter ("@HousePhone",SqlDbType .Char),
new SqlParameter ("@MakeBillsPersonID",SqlDbType .Int),

};

mySqlParameters[0].Value = "Frm_MenZhenDengJi_Insert";
mySqlParameters[1].Value=strMenZhenHao;
mySqlParameters[2].Value=strXingMing;
mySqlParameters[3].Value=strPinYinMa;
mySqlParameters[4].Value=intXingBieID;
mySqlParameters[5].Value=dtpChuShengRiQi;
mySqlParameters[6].Value=strNianLing;
mySqlParameters[7].Value=strShengFenZheng;
mySqlParameters[8].Value=intYiLiaoBaoXianLeiBieID;
mySqlParameters[9].Value=strYiLiaoZhengHao;
mySqlParameters[10].Value=dtpDengJiRiQi;
mySqlParameters[11].Value=intZhiYeID;
mySqlParameters[12].Value=intGuoJiID;
mySqlParameters[13].Value=intShengBieID;
mySqlParameters[14].Value=intXianShiID;
mySqlParameters[15].Value=intMingZuID;
mySqlParameters[16].Value=intHunYanID;
mySqlParameters[17].Value=strJiaTingZhuZhi;
mySqlParameters[18].Value=strZhuZaDianHua;
mySqlParameters[19].Value=intZhiDanRen;

int i= myDALMethod.UpdateData("门诊登记_Frm_MenZhenDengJi", mySqlParameters);
return i;

}



第三步:界面层(UIL)代码

#region 新增门诊登记

private voidbtnBaocunZiLiao_Click(object sender, EventArgs e)

{

if (txtName.Text == "")

{

MessageBox.Show("尊敬的操作员,病人姓名还没写呢?");//如果姓名为空,则提示下面文本

txtName.Focus();

return;

}

if (txtSpellCode.Text =="")

{

MessageBox.Show("尊敬的操作员,病人拼音码还没写呢?");

txtSpellCode.Focus();

return;

}

if (dtpBirthDate.Text =="")

{

MessageBox.Show("尊敬的操作员,病人出生日期还没写呢?");

dtpBirthDate.Focus();

return;

}

txtMenZhenNumber_x.Text =ShengChengDanHao(ZuiDaDingDanShu);

string strMenZhenNumber_x=txtMenZhenNumber_x.Text;

string strName=txtName.Text;

string strSpellCode=txtSpellCode.Text;

intintSex=Convert.ToInt32(cboSex.SelectedValue);

DateTimedtmBirthDate=Convert.ToDateTime(dtpBirthDate.Text);

string  strAge=txtAge.Text;

stringstrIdentityCard=txtIdentityCard.Text;

intintMedicalTreatmentInsuranceType=Convert.ToInt32(cboMedicalTreatmentInsuranceType.SelectedValue);

stringstrMedicalTreatmentCard=txtMedicalTreatmentCard.Text;

DateTimedtmRegisterDate=Convert.ToDateTime(dtpRegisterDate.Text);

intintProfession=Convert.ToInt32(cboProfession.SelectedValue);

intintNationality=Convert.ToInt32(cboNationality.SelectedValue);

intintProvince=Convert.ToInt32(cboProvince.SelectedValue);

intintCounty=Convert.ToInt32(cboCounty.SelectedValue);

intintNation=Convert.ToInt32(cboNation.SelectedValue);

intintMarriage=Convert.ToInt32(cboMarriage.SelectedValue);

stringstrFamilyAddress=txtFamilyAddress.Text;

stringstrHousePhone=txtHousePhone.Text;

intintMakeBillsPerson=Convert.ToInt32(cboMakeBillsPerson.SelectedValue);

//以上为赋值给参数

int I =myFrm_MenZhenDengJiClient.Frm_MenZhenDengJi_Insert(strMenZhenNumber_x, strName,strSpellCode, intSex,

dtmBirthDate, strAge,strIdentityCard, intMedicalTreatmentInsuranceType, strMedicalTreatmentCard,dtmRegisterDate,

intProfession, intNationality,intProvince, intCounty, intNation, intMarriage, strFamilyAddress,strHousePhone,

intMakeBillsPerson);

if (I > 0)

{

if (MessageBox.Show("确认保存这位病人?", "提示", MessageBoxButtons.YesNo,MessageBoxIcon.Question) == DialogResult.Yes)

{

myFrm_MenZhenDengJiClient.Frm_MenZhenDengJi_ZuiDaDanHaoShu();//如果保存成功,则在单号数加1,在6有存储过程和逻辑层代码

MessageBox.Show("保存成功!!!");

this.Close();

}

else

{

MessageBox.Show("保存失败!!!");

}

}

}

#endregion


8:清空病人信息

private void btnXinMenZhenBingRen_Click(object sender, EventArgs e)
{
txtName.Text = "";
txtSpellCode.Text = "";
txtAge.Text = "";
txtIdentityCard.Text = "";
txtMedicalTreatmentCard.Text = "";
txtFamilyAddress.Text = "";
txtHousePhone.Text = "";
}


仅供参考,禁止用于商业用途,违者后果自负
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: