承志医院管理系统项目解析 门诊挂号(三)

7 篇文章 0 订阅

 1.23门诊挂号

1:在主界面点击门诊挂号,如图(1

图(1

会进入这个界面,如图(2

 

                                                              图(2

然后查找病人,会出现这个界面,如图(3

 

图(3

最后出现这个效果,如图(4

                                                                                  图(4

第一步:数据库

1、表与关系

 

1:门诊挂号表(MZ_MenZhenHangNumberList

Primary Key(s):  MenZhenHangNumberID

 

列名

数据类型

说明

MenZhenHangNumberID

int - Identity

门诊挂号自动编号

MedicalTreatmentInsuranceID

int

(医疗保险表)医保ID

OfficeID

int

(科室表)科室ID

RegisterTypeID

int

(挂号类型表)挂号类型ID

DoctorID

int

(医生表)挂号医生ID

MenZhenRegisterID

int

(门诊登记表)门诊登记ID

BitBillsNo

bit

打单否

HangNumberTime

datetime

挂号时间

 

1:绑定dgv中的数据源

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

if(@Type='Frm_MenZhenGuaHao_ChaXunBingRen')

begin

SELECT     MZ_MenZhenRegisterList.MenZhenNumber, MZ_MenZhenRegisterList.Name, MZ_MenZhenRegisterList.SpellCode, MZ_MenZhenRegisterList.BirthDate, MZ_MenZhenRegisterList.Age, 

  MZ_MenZhenRegisterList.IdentityCard, MZ_MenZhenRegisterList.MedicalTreatmentCard, MZ_MenZhenRegisterList.RegisterDate, MZ_MenZhenRegisterList.FamilyAddress, 

  MZ_MenZhenRegisterList.HousePhone, MZ_MenZhenRegisterList.HangNumberNo, AttributeMingXiList.AttributeMingXiName AS Sex, AttributeMingXiList_2.AttributeMingXiName AS Profession, 

  AttributeMingXiList_3.AttributeMingXiName AS Nationality, AttributeMingXiList_4.AttributeMingXiName AS Province, AttributeMingXiList_5.AttributeMingXiName AS County, 

  AttributeMingXiList_6.AttributeMingXiName AS Nation, AttributeMingXiList_7.AttributeMingXiName AS Marriage, SYS_UserList.UserName AS MakeBillsPerson, 

  MZ_MenZhenRegisterList.MenZhenRegisterID, BS_DiscountList.DiscountTypeName

FROM         MZ_MenZhenRegisterList INNERJOIN

  AttributeMingXiListON MZ_MenZhenRegisterList.SexID = AttributeMingXiList.AttributeMingXiID INNER JOIN

  AttributeMingXiListAS AttributeMingXiList_2ON MZ_MenZhenRegisterList.ProfessionID = AttributeMingXiList_2.AttributeMingXiID INNER JOIN

  AttributeMingXiListAS AttributeMingXiList_3ON MZ_MenZhenRegisterList.NationalityID = AttributeMingXiList_3.AttributeMingXiID INNER JOIN

  AttributeMingXiListAS AttributeMingXiList_4ON MZ_MenZhenRegisterList.ProvinceID = AttributeMingXiList_4.AttributeMingXiID INNER JOIN

  AttributeMingXiListAS AttributeMingXiList_5ON MZ_MenZhenRegisterList.CountyID = AttributeMingXiList_5.AttributeMingXiID INNER JOIN

  AttributeMingXiListAS AttributeMingXiList_6ON MZ_MenZhenRegisterList.NationID = AttributeMingXiList_6.AttributeMingXiID INNER JOIN

  AttributeMingXiListAS AttributeMingXiList_7ON MZ_MenZhenRegisterList.MarriageID = AttributeMingXiList_7.AttributeMingXiID INNER JOIN

  SYS_UserList ON MZ_MenZhenRegisterList.MakeBillsPersonID = SYS_UserList.UserID INNER JOIN

  BS_DiscountListON MZ_MenZhenRegisterList.MedicalTreatmentInsuranceTypeID= BS_DiscountList.DiscountTypeID

  where    MZ_MenZhenRegisterList.HangNumberNo=0  and MZ_MenZhenRegisterList.ChargeNo=0

  end


 

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

 

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


 

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

  private void Frm_XuanZeBingRen_Load(object sender, EventArgs e)
        {
            dgvBingRenXinXi.DataSource = myFrm_MenZhenGuaHaoClient.Frm_MenZhenGuaHao_ChaXunBingRen().Tables[0];
        }


 

2:模糊查询(选择门诊病人窗体)

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

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

   (第一、二步和上第一、二步相同,所以就不写了)

第三步:界面层(UIL)代码,文本框Changed事件

 private void txtChaXun_TextChanged(object sender, EventArgs e)
        {
            string strXingMing=txtChaXun.Text.Trim();//获取文本的值
           DataTable dtBingRenAll= myFrm_MenZhenGuaHaoClient.Frm_MenZhenGuaHao_ChaXunBingRen().Tables[0];//获取数据装进数据表
           DataView dvBingRenAll = new DataView(dtBingRenAll);//自定义一个视图,把数据表里的数据装进去
           dvBingRenAll.RowFilter = "Name like'%" + strXingMing + "%' or SpellCode like'%" + strXingMing + "%'";//从数据库中的筛选Name,SpellCode进行模糊查询。"%"是表示大约的意思
           dgvBingRenXinXi.DataSource = dvBingRenAll;//根据过滤的数据绑定dgv
        }


 

4:跨窗体传值

从这个窗体

传到这个

 

v

没有储存过程

代码如下:

首先在选择病人那窗体定义静态变量,定义静态变量就是可以跨窗体传值

   public static int intBingRenID;
        public static string  strYiLiaoFangShi;
        public static string strXingBie;
        public static string strMenZhenHao;
        public static string strXingMing;
        public static string strNianLing;
        public static string strShengFenZhengHao;
        public static string strJiaTingZhuZhi;
        public static string strYiLiaoZhengHao;
        public static DateTime dtChuShengRiQi;

然后再获取dgv中的值

                PublicStatic.intMenZhenGuaHaoID2 = Convert.ToInt32(dgvBingRenXinXi.CurrentRow.Cells["门诊登记ID"].Value);
                intBingRenID = Convert.ToInt32(dgvBingRenXinXi.CurrentRow.Cells["门诊登记ID"].Value);
                strYiLiaoFangShi = dgvBingRenXinXi.CurrentRow.Cells["医疗方式"].Value.ToString();
                strXingBie = dgvBingRenXinXi.CurrentRow.Cells["性别"].Value.ToString();
                strMenZhenHao = dgvBingRenXinXi.CurrentRow.Cells["门诊号"].Value.ToString().Trim();
                strXingMing = dgvBingRenXinXi.CurrentRow.Cells["姓名"].Value.ToString().Trim();
                strNianLing = dgvBingRenXinXi.CurrentRow.Cells["年龄"].Value.ToString().Trim();
                strYiLiaoZhengHao = dgvBingRenXinXi.CurrentRow.Cells["医疗证号"].Value.ToString().Trim();
                strShengFenZhengHao = dgvBingRenXinXi.CurrentRow.Cells["身份证"].Value.ToString().Trim();
                strJiaTingZhuZhi = dgvBingRenXinXi.CurrentRow.Cells["家庭住址"].Value.ToString().Trim();
                dtChuShengRiQi = Convert.ToDateTime(dgvBingRenXinXi.CurrentRow.Cells["出生日期"].Value);

                this.Close();
                this.Dispose();
            }
            catch { }
        }


还有一步,就是再点击每一行的时候要获取每一行的ID

    private void dgvBingRenXinXi_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            PublicStatic.intMenZhenGuaHaoID2 = Convert.ToInt32(dgvBingRenXinXi.CurrentRow.Cells["门诊登记ID"].Value);
        }


 

然后就是在门诊挂号窗体中“查询病人”按钮那里获值

  #region 跨窗体获值

        private voidbtnSelect_Click(object sender, EventArgs e)

        {

            try

            {

                门诊管理.Frm_XuanZeBingRen myFrm_XuanZeBingRen = newFrm_XuanZeBingRen();

               myFrm_XuanZeBingRen.ShowDialog();

                intBingRenID =Frm_XuanZeBingRen.intBingRenID;

                txtName.Text =Frm_XuanZeBingRen.strXingMing.Trim();

               txtMenZhenNumber.Text = Frm_XuanZeBingRen.strMenZhenHao.Trim();

                txtSex.Text =Frm_XuanZeBingRen.strXingBie.Trim();

                txtAge.Text =Frm_XuanZeBingRen.strNianLing.Trim();

                dtpBirthDate.Text= Frm_XuanZeBingRen.dtChuShengRiQi.ToString().Trim();

                cboMedicalTreatmentInsuranceID.Text= Frm_XuanZeBingRen.strYiLiaoFangShi.ToString();

               txtMedicalTreatmentCard.Text =Frm_XuanZeBingRen.strYiLiaoZhengHao.Trim();

               txtIdentityCard.Text = Frm_XuanZeBingRen.strShengFenZhengHao.Trim();

                txtFamilyAddress.Text =Frm_XuanZeBingRen.strJiaTingZhuZhi.Trim();

 

            }

            catch { }

            

        }

      #endregion


 

5:根据选择科室显示收费详细,如图(5

 

                                                                                   图(5

代码如下:

 

  #region 选择下拉框数据,dgvGuaHaoLeiXing才能显示数据
        private void dgvGuaHaoLeiXing_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            PublicStatic.intGuaHaoLeiXingID = Convert.ToInt32(dgvGuaHaoLeiXing.CurrentRow.Cells["挂号类型ID"].Value);
            //在挂号类型这个DGV获取它的ID
            if (kaiguan == 1)
            {

                dgvShouFeiMingXi.DataSource = myFrm_MenZhenGuaHaoClient.Frm_MenZhenGuaHao_dgvGuaHaoLeiXingMingXi(PublicStatic.intGuaHaoLeiXingID).Tables[0];
                //当点击cboOfficeID_SelectionChangeCommitted这个事件获值的时候收费明细就会显示数据
            
            }
        }

        private void cboOfficeID_SelectionChangeCommitted(object sender, EventArgs e)
        {
            kaiguan = 1;
            dgvShouFeiMingXi.DataSource = myFrm_MenZhenGuaHaoClient.Frm_MenZhenGuaHao_dgvGuaHaoLeiXingMingXi(PublicStatic.intGuaHaoLeiXingID).Tables[0];
            //在科室下拉定义一个开关,如果点击选择收费详细就会显示出数据
        }
        #endregion



 

6:新增挂号

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

 

if(@Type='Frm_MenZhenGuaHao_Insert')
begin
insert MZ_MenZhenHangNumberList(MedicalTreatmentInsuranceID, OfficeID, RegisterTypeID
     , DoctorID, MenZhenRegisterID, BitBillsNo, HangNumberTime)
      
values (@MedicalTreatmentInsuranceID, @OfficeID, @RegisterTypeID, @DoctorID, @MenZhenRegisterID, @BitBillsNo, @HangNumberTime)
     
 end


 

门诊登记表的挂号否改为True

储存过程如下:

if(@Type='Frm_MenZhenGuaHao_GuaHaoFou')
 begin
 update MZ_MenZhenRegisterList
 set MZ_MenZhenRegisterList.HangNumberNo=1
 where MenZhenRegisterID=@MenZhenRegisterID
 end


 

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

  [OperationContract]
        public int Frm_MenZhenGuaHao_Insert(int intYiBaoID, int intKeShiID, int intGuaHaoLeiXingID, int intGuaHaoYiShengID,
            int intMenZhenDengJiID,bool DaDanFou,DateTime GuaHaoShiJian)
        {
         
            SqlParameter[] mySqlParameters = {
                                               new SqlParameter ("@Type",SqlDbType .Char),
                                                new SqlParameter ("@MedicalTreatmentInsuranceID",SqlDbType.Int),
                                               new SqlParameter ("@OfficeID",SqlDbType .Int),
                                               new SqlParameter ("@RegisterTypeID",SqlDbType .Int),
                                               new SqlParameter ("@DoctorID",SqlDbType .Int),
                                               new SqlParameter ("@MenZhenRegisterID",SqlDbType.Int),
                                               new SqlParameter ("@BitBillsNo",SqlDbType.Bit),
                                                new SqlParameter ("@HangNumberTime",SqlDbType.DateTime),
             
                                           };
            mySqlParameters[0].Value = "Frm_MenZhenGuaHao_Insert";
            mySqlParameters[1].Value = intYiBaoID;
            mySqlParameters[2].Value = intKeShiID;
            mySqlParameters[3].Value = intGuaHaoLeiXingID;
            mySqlParameters[4].Value = intGuaHaoYiShengID;
            mySqlParameters[5].Value = intMenZhenDengJiID;
            mySqlParameters[6].Value = DaDanFou;
            mySqlParameters[7].Value = GuaHaoShiJian;


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


        }


 

挂号否改为True(bll)

  [OperationContract]

        public int Frm_MenZhenGuaHao_GuaHaoFou(int intMenZhenDengJiID)

        {

 

            SqlParameter[]mySqlParameters = {

                                               new SqlParameter ("@Type",SqlDbType.Char),

                                                new SqlParameter ("@MenZhenRegisterID",SqlDbType.Int),

                                             

                                              

                                           };

            mySqlParameters[0].Value = "Frm_MenZhenGuaHao_GuaHaoFou";

            mySqlParameters[1].Value =intMenZhenDengJiID;

         

            inti = myDALMethod.UpdateData("门?诊?登Ì?记?_Frm_MenZhenGuaHao", mySqlParameters);

            returni;

 

 

        }


 

第三步:界面层(UIL)代码,挂号保存

 #region 新增挂号

        private void btnSure_Click(object sender, EventArgs e)
        {
            if (txtName.Text == "")
            {
                MessageBox.Show("操作提示,请在查找病人那个按钮选择病人,否则不能挂号");

                return;
            }
            if (cboOfficeID.Text == "")
            {
                MessageBox.Show("请选择挂号科室");
                return;
            }
            int intYiBaoID = Convert.ToInt32(cboMedicalTreatmentInsuranceID.SelectedValue);
            int intKeShiID = Convert.ToInt32(cboOfficeID.SelectedValue);
            int intGuaHaoLeiXingID = Convert.ToInt32(dgvGuaHaoLeiXing.CurrentRow.Cells["挂号类型ID"].Value);
            int intGuaHaoYiShengID = Convert.ToInt32(cboDoctorID.SelectedValue);
            int intMenZhenDengJiID = Frm_XuanZeBingRen.intBingRenID;
            bool DaDanFou = ckbBitBillsNo.Checked;
            DateTime GuaHaoShiJian = Convert.ToDateTime(DateTime.Now.ToString().Trim());
          
            if (MessageBox.Show("确认将" + txtName.Text + "挂号?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                {
                 myFrm_MenZhenGuaHaoClient.Frm_MenZhenGuaHao_Insert(intYiBaoID, intKeShiID, intGuaHaoLeiXingID,
                                              intGuaHaoYiShengID, intMenZhenDengJiID, DaDanFou, GuaHaoShiJian);
                 myFrm_MenZhenGuaHaoClient.Frm_MenZhenGuaHao_GuaHaoFou(intBingRenID);
//挂号成功改挂号否为True
                 MessageBox.Show("挂号成功!!!");
                 if (ckbBitBillsNo.Checked == true)//如果ckbBitBillsNo为True,则报表
                 {
                     报表打印.Frm_MenZhenGuaHaoBaoBiao myFrm_MenZhenGuaHaoBaoBiao = new 报表打印.Frm_MenZhenGuaHaoBaoBiao();
                     myFrm_MenZhenGuaHaoBaoBiao.ShowDialog();
                 }
                 this.Close();
                }
                else
                {
                    MessageBox.Show("挂号失败!!!");
                }
            

        }
        #endregion

 挂号完成                                    

        仅供参考,禁止用于商业用途,违者后果自负

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值