承志医院管理系统项目解析 门诊登记(二)
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 | 收费否 |
列名 | 数据类型 | 主键/外键 | 说明 |
MenZhenBillsNumberID | Int | 主键 | 门诊最大单号ID |
MaxBillsNumber | Int | 门诊最大单号 |
第一步:数据库的存储过程
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 = ""; }
仅供参考,禁止用于商业用途,违者后果自负
相关文章推荐
- 承志医院管理系统项目解析 门诊挂号(三)
- 承志医院管理系统项目解析 门诊医生工作站—辅助检查项目(六)
- 承志医院管理系统项目解析 门诊医生工作站—书写病历(四)
- 承志医院管理系统项目解析 门诊医生工作站—处方录入(五)
- WCF医院管理系统技术解析(六)体检登记(五)对病人设置体检项目
- 承志医院管理系统项目解析 登录(一)
- WCF医院管理系统技术解析(三)体检登记(二)
- WCF+SQL Server 2008 医院管理系统项目解析(一)
- WCF医院管理系统技术解析 (二)体检登记(一)
- 承志医疗管理系统技术解析项目搭建(—)
- WCF医院管理系统技术解析(五)体检登记(四)
- WCF医院管理系统技术解析(七)体检登记(六)前台收费
- 承志医疗管理系统技术解析住院登记(三)
- WCF医院管理系统技术解析(十二)化验登记
- 承志医院管理系统项目解析 门诊收费(七)
- 客运综合管理系统项目解析-领导查询(模块)-废票查询
- WCF医院管理系统技术解析(一)WCF架构搭建
- 客运综合管理系统项目解析-WCF-客户端-配置详细流程-登陆信息
- WCF医院管理系统技术解析(八)体检执行(一)
- 承志医疗管理系统技术解析交押金(四)