C#医疗保险定点结算
C#医疗保险定点结算
本篇主要以卫生院端进行介绍,村医端和卫生院端相比,少了卫生院医生保存电子处方的功能,其余功能相同。
效果
自己做的一个毕设小系统其中的一个流程:医疗保险定点结算(卫生院)
实现
1.首先,病人去找卫生院医生看病,医生根据病人情况登记处方,绘制处方的时候主要是拖入一个panel,拖入很多label和textBox进行绘制。
2.医生可以点击历史处方查看病人以往的处方记录,看看之前吃过什么药,有什么用药禁忌。
历史处方的实现主要是新建一个windows窗体,拖入一个dataGridView,再引入数据库表。
查询的实现就是普通的查询(select … from … where …),比如要在表Table_lishichufang中查询name:select name from Table_lishichufang where name = ’ " + textBox1.Text + " ',textBox1就是输入的name。
刷新的实现可以新建一个方法Display(),再把数据重新插入dataGridview中:
public void Display() { string sql = "select number,name,xingbie,nianling,kebie,linchuangzhenduan,zhuzhi,nian,yue,ri,yaopin,yishi,tiaoji,yuan,jiao,fen from Table_lishichufang"; SqlDataAdapter dataAdapter = new SqlDataAdapter(sql, DBHelper.conStr); //定义一个dataAdapter dataAdapter.Fill(dataSet, "Table_lishichufang"); //填充数据集 dataGridView1.DataSource = dataSet.Tables["Table_lishichufang"]; //填充数据进控件 }
先清空一下dataGridview,在引用方法:
private void shuaxin_Click(object sender, EventArgs e) { //刷新 dataSet.Tables["Table_lishichufang"].Clear(); Display(); }
3.医生写完处方,点击保存,此处方就会进入一个临时处方表中,这个临时处方表是一个数据库表,专门放置临时处方,意思就是医生写完的处方但是还没有进行抓药交费的处方。
保存的实现就是数据库表数据的增加。
首先进行一个处方的一个验证,验证姓名是否为空,如果姓名为空,则提示请输入姓名:
if (textBox1.Text.Trim() == "") { MessageBox.Show("请输入姓名!", "提示"); return; }
然后就是sql增加语句:insert into 表 values(’ " + number + " ‘,’ " + name + " ‘,’ " + xingbie + " ',…)。
然后清空panel里所有的textBox:
textBox1.Clear();
最后有一个提示:
MessageBox.Show("保存成功!", "提示");
4.医生保存完处方后,病人拿着身份证或者社保卡去药房进行交费抓药,药房进行报销和临时处方的确认。这里的临时处方确认完后就会进入一个处方表中,这个处方表也是一个数据库表。(刚才的是临时处方表)
下图是药房的医疗保险定点结算中的电子处方按钮点击出来的窗体:
①药房输入病人的姓名,点击查询,然后信息就会显示到左边的处方中。
这里的“查询”,查询的是临时处方表,因为刚才医生写完的临时处方保存到了这个临时处方表中。
查询的代码编辑:首先进行一个姓名框是否为空的验证:
if (textBox25.Text == "") { MessageBox.Show("请输入姓名!", "提示"); } else{}
如果姓名框不为空,就进行姓名是否存在的验证,可以新建一个SqlDataReader sdr,然后sdr.HasRows就是姓名存在,就可以
if(sdr.HasRows){} else {}
姓名存在,就进行数据的查询:select number,name,xingbie,… from Table_chufang where name = ’ " + textBox25.Text + " ',然后:
SqlDataReader sdr = cmd.ExecuteReader(); sdr.Read();
然后给处方中的textBox赋值:
textBox1.Text = Convert.ToString(sdr["name"]); ...
如果姓名不存在,就在else{}中编辑:
MessageBox.Show("该姓名不存在!", "提示"); return;
5.药房根据处方里的内容进行报销。
可以把电子处方和主界面拖一下,方便操作:
首先输入医生姓名(处方中有医师姓名,谁给病人看的病就是谁),
然后输入病人的身份证号(病人是拿着身份证或者社保卡来的),点击查询,就可以显示姓名和余额,这个余额就是可报销余额。(这里查询的是我自己新建的一个数据库表,正规的肯定是有自己的庞大的数据库,每个入医保人的信息都有)查询方法同上。
然后进行药品录入,在药品框输入药品首字母就可以弹出来相应药品(https://blog.csdn.net/weixin_44523029/article/details/107882835)。
然后进行拖入,把药品从库存单(上表)中拖入处方单(下表)中(https://blog.csdn.net/weixin_44523029/article/details/107565968)。
然后点击报销。
报销的实现:
首先进行医生框、身份证号框和姓名框是否为空:
if (textBox4.Text.Trim() == "") { MessageBox.Show("请输入医生!", "提示"); return; } if (textBox8.Text == "") { MessageBox.Show("请点击身份证号查询按钮!", "提示"); return; } if (textBox1.Text == "") { MessageBox.Show("请输入身份证号!", "提示"); return; }
如果都满足,则在else{}中编辑代码:
进行一个身份证号是否存在的验证:sdr.HasRows
药品数量不能为0,进行一个验证:
for (int allrows = 0; allrows <= this.dataGridView2.Rows.Count - 1; allrows++) { int izero = 0; string zero = izero.ToString(); if (this.dataGridView2.Rows[allrows].Cells[7].Value.ToString().Trim() == zero) { MessageBox.Show("请输入数量!", "提示"); DBHelper.conn.Close(); return; } DBHelper.conn.Close(); }//数量不能为0
处方单不能为空,进行一个验证:
if (dataGridView2.Rows.Count == 0) { MessageBox.Show("请选择药品!", "提示"); DBHelper.conn.Close(); return; }//处方单不能为空
如果以上都满足,进行一个库存是否充足的验证:
在for循环(遍历处方单的每行)下,进行select查询库存,并把查出来的值赋给一个新建的int值,如果数量>库存,则提示库存不足,并返回。
如果库存不满足,就提示库存不足:
if (sshuliang1 > stock)//如果数量超过库存,则不能报销 { MessageBox.Show("库存不足!", "提示"); return; }
如果库存满足,看金额,看余额是否够(自付比例:40%)方法类似于上一步库存验证,自付金额 = 总计 * 40%,本次报销金额 = 总计 * 60%,报销后余额 = 余额 - 本次报销金额。
如果余额不满足,就else{}:
else { MessageBox.Show("报销失败,余额不足!", "提示"); DBHelper.conn.Close(); return; }
如果余额满足,就余额减少,用sql语句update更新余额表,然后把处方单增加到药品销售表中(这里用sql语句insert增加),然后销售的药品的库存减少(这里用sql语句update更新)。
然后更新药品库存表(上表):
dataSet.Tables["Table_yaopin"].Clear(); Display();
6.最后在电子处方中输入金额,点击确定,把处方更新到历史处方表中,同时删除临时处方:
只能进行姓名查询后才能确定:
if (textBox28.Text.Trim() == "") { MessageBox.Show("请查询后再点击确定!", "提示"); return; }
然后把处方插入历史处方表中(sql语句insert into插入);
然后删除临时处方(sql语句delete from Table where …);
最后清空所有textBox,提示操作成功,关闭电子处方界面:
textBox1.Clear(); ... MessageBox.Show("操作成功!", "提示"); _form.Show(); this.Hide();
7.完成。
- C# 汽车租赁 系统 可实现 租车 还车 结算 以及 新入车辆
- C#定点任务代码 类似Windows计划任务(健壮性高)
- C#练习--实现超市购物结算
- 北京市基本医疗保险A类定点医疗机构
- 购物车和结算的实现!--c#源代码!
- 购物车和结算的实现!--c#源代码!
- 购物车的C#实现及结算处理
- 北京市医疗保险定点医疗机构、定点零售药店
- C#钩子本线程内消息拦截
- C#操作XML
- 针对 Java 开发人员的 C# 编程语言
- C#中CollectionBase类中IList接口的实现
- C#操作Word/excel文档
- C# 下 FtpWebRequest 类的一个小问题
- 如何获得数据库里所有表的名字(SQL+C#)
- VB.NET vs. C#
- C#日期格式化
- C#中处理XML文档的方法
- C#:委托与事件
- android客户端接收C#服务器的数据时,有时候会多一些空值,为啥子哟