网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 交易代码 > 课程设计 > 正文

医院挂号划价管理信息系统

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务
医院挂号划价管理信息系统
1        简述
1.1    背景与系统功能
医院管理信息系统从早期的单机简单任务处理模式,到现在的网络化联机同步操作远程模式.有了很大的进步. 近年来,随着我国信息产业的飞速发展,计算机的开发应用已渗透到各个领域,而且日趋普及。在医学领域内,计算机的应用已经十分广泛,各种智能诊断设备都与计算机紧密结合在一起,主要应用于两个方面:一是医疗设备智能化,以硬件为主,如核磁共振成像系统、彩色B超、CT等。另一种是医院信息管理系统(HIS)的软件建设,以提高医院的现代化管理形象。
由于课程设计时间有限,我仅对医院管理系统得门诊管理进行设计。
1.2    可行性分析
1.2.1 经济可行性分析
医院挂号划价管理系统开发需要投资费用和未来的运行维护费用,其中投资费用主要包括设备费用、人员费用及其他费用,通常为了保证新系统运行的可靠性,要求手工和计算机处理在长时间并存。系统的收益主要通过新系统提高工作效率,指导经营策略来实现,还有其他难以计算的指标。
●    挂号划价管理中节省的人力,减轻的劳动强度;
●    降低的成本及其他费用;
●    改进薄弱环节,提高了工作效率;
●    提高数据处理的及时性和准确性。
1.2.2 技术可行性分析
在技术上,第一、员工都有基本的计算机操作水平,熟练业务。第二,微软的一整套技术整体效率高。(Windows server 2003、windows XP、SQL SERVER 2005)。由于微软的技术人性化水平比较高,操作容易,从而日后维护再开发比较容易。另外公司软件采取外包,不需要员工有专业的软件开发水平,这样节约了软件开发成本。从而在技术上是绝对可行的。
 
 
2.1    业务流程图
病人去医院看病的基本流程:病人在挂号处挂号获得挂号单及病历,接着拿病历去科室医生处进行诊断,医生诊断病人病情,开出诊断书,如需要设备检查的,病人拿诊断书到划价处划价,然后拿划价单到缴费处缴费,获得已缴费凭证,拿以缴费凭证到设备检查科室进行检查,检查后,检查科室医生开出检查诊断书,病人拿检查诊断书到科室医生处,科室医生进行分析,开出处方单,病人拿处方单到划价处划价,到缴费处缴费,获得凭证后到药房拿药。其主要流程如下图所示:
     
                        图2-1核心业务流程图
2.2    数据流程图
   在进行收集原系统全部输入单据、输出报表和数据储存介质,并弄清各环节的处理方法和计算方法后,绘制出系统的数据流程图,如下图所示:
 
                           图2-2医院数据流程图
2.3    功能分析图
若图片无法显示请联系QQ3710167,本论文免费,转发请注明源于www.lwfree.cn
图2-3医院功能分析图
2.4    数据字典
1.数据流的描述:
①.数据流名称:挂号单
简述:病人在挂号处开出的挂号单
数据流来源:挂号处
数据流去向:挂号处理模块
数据项组成:编号+病人编号+姓名+性别+挂号科室+费用类型+挂号类型+挂号费用+时间
数据流量:大约30张/日
高峰流量:大约50张/日
②. 数据流名称:划价单
简述:病人经划价处理后得到划价单
数据流来源:划价处理模块
数据流去向:收费处理模块
数据项组成:编号+划价编号+药品编号+单价+数量+金额+检查名称+拼音码+费用+费用分类+病种分类+费用合计
数据流量:大约30张/日
高峰流量:大约50张/日
③.数据流名称:检查收费凭证
简述:病人经收费处收费处理后获得检查收费凭证
数据流来源:收费处理模块
数据流去向:检查科室
数据项组成:编号+科室+挂号编号+医生+收费时间+检查名称+医生备注
数据流量:大约30张/日
高峰流量:大约50张/日
④.数据流名称:取药收费凭证
简述:病人经收费处收费处理后获得取药收费凭证
数据流来源:收费处理模块
数据流去向:药房处理模块
数据项组成:编号+科室+挂号编号+医生+收费时间+药品名称+药品编号+药品数量+医生备注
数据流量:大约30张/日
高峰流量:大约50张/日
2.处理逻辑的描述:
①.处理逻辑名称:挂号处理
输入的数据流:挂号单
输出的数据流:病历
处理描述:对挂号处的挂号单进检验,检验合格就制作成病历
激发条件:有病人挂号
②.处理逻辑名称:科室处理
输入的数据流:病历
输出的数据流:处方单
处理描述:对病人进行检查,开出需要的检查的手段的单证和病人需要药品
③.处理逻辑名称:划价处理
输入的数据流:处方单
输出的数据流:划价单
处理描述: 对医生开出的处方单的所有需求进行价格确定,制作成划价单,给病人进行付款操作。
④.处理逻辑名称:收费处理
输入的数据流:划价单
输出的数据流:检查收费凭证和取药收费凭证
处理描述:依据划价单进行收费,开出相应已收费凭据
3.数据储存描述:
①.数据储存名称:挂号综合数据
描述:对被挂号的科室的被挂号数量进行统计
数据存储组成:挂号科室+挂号次数+总金额
相关联的处理:挂号处理,划价处理
②.数据储存名称:药品库存量
描述:对药房的剩余药品量进行统计
数据存储组成:编号+库房+药品编号+药品名称+数量+备注
相关联的处理:药房处理46
 
医院挂号划价管理信息系统
2.1    管理信息系统流程设想图(新系统模型)
    在对旧流程的分析后,发现病人两次到药房排队,第一次是划价,第二次是取药,这种业务流程给病人带来不便。在新系统中可取消病人到药房划价这一环节,而划价这一工作可以通过计算机网络的功能在收费处完成,这可以大大方便
病人,提高医院办事效率。新系统模型如下图所示:

图2-5管理信息系统流程设想图
(注:方框表示功能处理;带箭头的线条表示数据或物品的流向) 
 
3        系统设计部分
3.1    功能结构图设计图3-1功能结构图设计若图片无法显示请联系QQ3710167,本论文免费,转发请注明源于www.lwfree.cn 
3.2    存储文件格式设计(数据库结构设计)
   
                               
 
图3-2   E-R图设计
3.3    代码设计
根据药品粗分类原则,在药品编码结构中将商品只划分一个大类。按照用途或自然属性相同或相似的规则对商品归类,用一位英文字母表示。这样归类的好处就在于同一个商品不会因为分类的不同而赋予多个编码,确保一物一码和一名一码。
编码分为四层,第一层为类别码,长1位,第二层为本体名称码,长6位,第三层为其它名称码,长3位,第四层为验证码,长1位。 
4        系统实施部分
4.1    程序框图
若图片无法显示请联系QQ3710167,本论文免费,转发请注明源于www.lwfree.cn4.2    源程序
1.主窗体程序代码
   Public Class frmMain
    Inherits System.Windows.Forms.Form
 
#Region " Windows 窗体设计器生成的代码 "
 
     Public Sub New()
        MyBase.New()
 
        '该调用是 Windows 窗体设计器所必需的。
        InitializeComponent()
 
        '在 InitializeComponent() 调用之后添加任何初始化
 
    End Sub
 
    '窗体重写 dispose 以清理组件列表。
    Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
        If disposing Then
            If Not (components Is Nothing) Then
                components.Dispose()
            End If
        End If
        MyBase.Dispose(disposing)
    End Sub
 
    'Windows 窗体设计器所必需的
    Private components As System.ComponentModel.IContainer
 
    '注意: 以下过程是 Windows 窗体设计器所必需的
    '可以使用 Windows 窗体设计器修改此过程。
    '不要使用代码编辑器修改它。
    Friend WithEvents MainMenu1 As System.Windows.Forms.MainMenu
    Friend WithEvents mnDictionary As System.Windows.Forms.MenuItem
    Friend WithEvents mnMedicine As System.Windows.Forms.MenuItem
    Friend WithEvents mnCash As System.Windows.Forms.MenuItem
    Friend WithEvents mnManage As System.Windows.Forms.MenuItem
    Friend WithEvents mnGuaHao As System.Windows.Forms.MenuItem
    Friend WithEvents mnHuaJia As System.Windows.Forms.MenuItem
    Friend WithEvents mnShouFei As System.Windows.Forms.MenuItem
    Friend WithEvents mnFaYao As System.Windows.Forms.MenuItem
    Friend WithEvents mnSearch As System.Windows.Forms.MenuItem
    Friend WithEvents mnGHL As System.Windows.Forms.MenuItem
    Friend WithEvents mnKCL As System.Windows.Forms.MenuItem
 

医院挂号划价管理信息系统
 Friend WithEvents mnExit As System.Windows.Forms.MenuItem
    Private Sub InitializeComponent()
        Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(frmMain))
        Me.MainMenu1 = New System.Windows.Forms.MainMenu
        Me.mnDictionary = New System.Windows.Forms.MenuItem
        Me.mnMedicine = New System.Windows.Forms.MenuItem
        Me.mnCash = New System.Windows.Forms.MenuItem
        Me.mnManage = New System.Windows.Forms.MenuItem
        Me.mnGuaHao = New System.Windows.Forms.MenuItem
        Me.mnHuaJia = New System.Windows.Forms.MenuItem
        Me.mnShouFei = New System.Windows.Forms.MenuItem
        Me.mnFaYao = New System.Windows.Forms.MenuItem
        Me.mnSearch = New System.Windows.Forms.MenuItem
        Me.mnGHL = New System.Windows.Forms.MenuItem
        Me.mnKCL = New System.Windows.Forms.MenuItem
        Me.mnExit = New System.Windows.Forms.MenuItem
        '
        'MainMenu1
        '
        Me.MainMenu1.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnDictionary, Me.mnManage, Me.mnSearch, Me.mnExit})
        '
        'mnDictionary
        '
        Me.mnDictionary.Index = 0
        Me.mnDictionary.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnMedicine, Me.mnCash})
        Me.mnDictionary.Text = "字典维护(&W)"
        '
        'mnMedicine
        '
        Me.mnMedicine.Index = 0
        Me.mnMedicine.Text = "药品信息(&Y)"
           '
        'mnManage
        '
        Me.mnManage.Index = 1
        Me.mnManage.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnGuaHao, Me.mnHuaJia, Me.mnShouFei, Me.mnFaYao})
        Me.mnManage.Text = "门诊管理(&X)"
        '
        'mnGuaHao
        '
        Me.mnGuaHao.Index = 0
        Me.mnGuaHao.Text = "门诊挂号(&W)"
        '
        'mnHuaJia
        '
        Me.mnHuaJia.Index = 1
        Me.mnHuaJia.Text = "门诊划价(&X)"
        '
        'mnShouFei
        '
        Me.mnShouFei.Index = 2
        Me.mnShouFei.Text = "门诊收费(&Y)"
        '
        'mnFaYao

        'mnSearch
        '
        Me.mnSearch.Index = 2
        Me.mnSearch.MenuItems.AddRange(New System.Windows.Forms.MenuItem() {Me.mnGHL, Me.mnKCL})
        Me.mnSearch.Text = "院长查询(&Y)"
        '
        'mnGHL
        '
        Me.mnGHL.Index = 0
        Me.mnGHL.Text = "科室挂号量(&Y)"
        '
        'mnKCL
        '
        Me.mnKCL.Index = 1
        Me.mnKCL.Text = "药品库存量(&Z)"
 
医院挂号划价管理信息系统
 'mnExit
        '
        Me.mnExit.Index = 3
        Me.mnExit.Text = "退出系统(&Z)"
        '
        'frmMain
        '
        Me.AutoScaleBaseSize = New System.Drawing.Size(6, 14)
        Me.ClientSize = New System.Drawing.Size(472, 277)
        Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
        Me.IsMdiContainer = True
        Me.Menu = Me.MainMenu1
        Me.Name = "frmMain"
        Me.Text = "HIS医院管理系统"
 
    End Sub
 
#End Region
 
    Private Function GetInstanceState(ByVal name As String) As Boolean
        '获得frmMain窗体的子窗体的数量
        Dim i As Integer = Me.MdiChildren.Length
        '循环判断是否有名为name的子窗体实例
        For i = 0 To Me.MdiChildren.Length - 1
            If Me.MdiChildren(i).Name = name Then
                '存在名为name的子窗体,是子窗体获得焦点并返回True
                Me.MdiChildren(i).Focus()
                Return True
            End If
        Next
        '不存在名为Name的子窗体False
        Return False
    End Function
    Private Sub mnMedicine_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnMedicine.Click
        If GetInstanceState("frmMedicine") Then
            Exit Sub
        End If
        Dim childFrm As frmMedicine = New frmMedicine
        childFrm.MdiParent = Me
        childFrm.Show()
    End Sub
            s = dr("金额")
            dTotal = dTotal + CType(s.Trim, Double)
        Next
        Me.txbMoney.Text = dTotal.ToString
    End Sub
 
    Private Sub txbNumber_TextChanged(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles txbNumber.TextChanged
        CalMXMoney()
    End Sub
 
    Private Sub btnAdd_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnAdd.Click
        If txbName.Text.Trim.Length = 0 Or _
        txbMXId.Text.Trim.Length = 0 Then
            Return
        End If
        CalMXMoney()
        Dim dr As DataRow = Me.dtDetail.NewRow
        dr("编号") = Me.txbMXId.Text.Trim
        dr("名称") = Me.txbMName.Text.Trim()
        dr("规格") = Me.txbGuiGe.Text.Trim
        dr("单位") = Me.txbUnit.Text.Trim
        dr("单价") = Me.txbPrice.Text.Trim
        dr("数量") = Me.txbNumber.Text.Trim
        dr("金额") = Me.txbMMoney.Text.Trim
        dr("拼音码") = Me.txbPY.Text.Trim
        dtDetail.Rows.Add(dr)
        ClearMX()
        CalTotalMoney()
    End Sub
 
    Private Sub txbNumber_KeyPress(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.KeyPressEventArgs) _
    Handles txbNumber.KeyPress
        '判断输入的字符是否为数字
        If e.KeyChar.IsDigit(e.KeyChar) = False Then
            '不是数字的字符不处理
            e.Handled = True
            Me.txbNumber.Text = "1"
        End If
    End Sub
 
    Private Sub btnOpen_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnOpen.Click
        Dim dlg As frmSelectHuaJia = New frmSelectHuaJia
        dlg.ShowDialog()
        Dim strId As String = dlg.GetInfo().Trim
        Dim db As DataBase = New DataBase
        Dim strSQL As String = "select * from 门诊挂号 where 编号='"
        strSQL += strId + "' and 是否已划价='否'"
        Dim dv As DataView = db.RunSelectSQL(strSQL)
        Me.txbId.Text = strId
        Me.txbName.Text = dv(0)("姓名")
        Me.txbSex.Text = dv(0)("性别")
        Me.cbbDoctor.Text = dv(0)("医生")
        Me.cbbRoom.Text = dv(0)("挂号科室")
        db.Dispose()
    End Sub
 
    Private Sub frmHuaJia_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        Me.cbbRoom.ValueMember = "编号"
 
        dv = db.RunSelectSQL("select 编号,姓名 from 医生资料")
        Me.cbbDoctor.DataSource = dv
        Me.cbbDoctor.DisplayMember = "姓名"
        Me.cbbDoctor.ValueMember = "编号"
        db.Dispose()
 

医院挂号划价管理信息系统
 InitDataTalbe()
    End Sub
 
    Private Sub txbPY_KeyDown(ByVal sender As Object, _
    ByVal e As System.Windows.Forms.KeyEventArgs) _
    Handles txbPY.KeyDown
        If e.KeyCode = Keys.Enter Then
            Dim dlg As frmSelectHuaJiaMX = New frmSelectHuaJiaMX
            dlg.strPY = Me.txbPY.Text.Trim
            dlg.ShowDialog()
            Dim strId As String = dlg.GetInfo()
            Dim db As DataBase = New DataBase
            Dim dv As DataView = _
        db.RunSelectSQL("select * from v收费项目及药品 where 编号='" _
             + strId + "'")
            Me.txbMXId.Text = dv(0)("编号")
            Me.txbPY.Text = dv(0)("拼音码")
            Me.txbMName.Text = dv(0)("名称")
            Me.txbGuiGe.Text = dv(0)("规格")
            Me.txbUnit.Text = dv(0)("单位")
            Me.txbPrice.Text = dv(0)("单价")
            Me.txbNumber.Text = "1"
            db.Dispose()
        End If
    End Sub
 
    Private Sub btnDel_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnDel.Click
        Try
            '获得DataGrid当前被选中的行号
            Dim iRow = dgdList.CurrentRowIndex
            '弹出对话框让用户确认要删除记录
            '如果用户确认要删除记录
            If MessageBox.Show("你确认要删除此条记录吗?", _
       "Confirm", MessageBoxButtons.YesNo) = DialogResult.Yes Then
                '从商品清单表删除当前被选中记录()
                dtDetail.Rows(iRow).Delete()
                ' SetTaxForDelOrUpgrade()
                If dtDetail.Rows.Count = 0 Then
                    iCurrentLine = -1
                End If
                ClearMX()
            Else
                Exit Sub
            End If
        Catch ex As Exception
            MessageBox.Show("删除数据出错")
        End Try
        CalTotalMoney()
    End Sub
 
    Private Sub dgdList_CurrentCellChanged(ByVal sender As Object, _
              iCurrentLine = dgdList.CurrentCell.RowNumber
        End If
        Dim iRow As Integer = dgdList.CurrentRowIndex
        txbMXId.Text = dtDetail.Rows(iRow)("编号")
        txbMName.Text = dtDetail.Rows(iRow)("名称")
        txbGuiGe.Text = dtDetail.Rows(iRow)("规格")
        txbUnit.Text = dtDetail.Rows(iRow)("单位")
        txbPrice.Text = dtDetail.Rows(iRow)("单价")
        txbNumber.Text = dtDetail.Rows(iRow)("数量")
        txbMMoney.Text = dtDetail.Rows(iRow)("金额")
        txbPY.Text = dtDetail.Rows(iRow)("拼音码")
    End Sub
 
    Private Sub btnSave_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnSave.Click
        If dgdList.CurrentRowIndex = -1 Then
            Return

        dtDetail.Rows(iCurrentLine)("单价") = txbPrice.Text
        dtDetail.Rows(iCurrentLine)("数量") = txbNumber.Text
        dtDetail.Rows(iCurrentLine)("金额") = txbMMoney.Text
        dtDetail.Rows(iCurrentLine)("拼音码") = txbPY.Text
        ClearMX()
        CalTotalMoney()
    End Sub
 
    Private Sub btnCancel_Click(ByVal sender As System.Object, _
 
医院挂号划价管理信息系统
 ByVal e As System.EventArgs) Handles btnCancel.Click
        Me.ClearMX()
        Me.Clear()
        Me.dtDetail.Rows.Clear()
        Me.iCurrentLine = -1
    End Sub
 
    Private Sub btnInsert_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles btnInsert.Click
        If Me.dtDetail.Rows.Count = 0 Then
            Return
        End If
        Dim strSQL As String = ""
        Dim db As DataBase = New DataBase
        strSQL = "select max(编号) as 编号 from 门诊划价 where "
        strSQL += "编号 like '" + Date.Now.Year.ToString + "%'"
        Dim dv As DataView = db.RunSelectSQL(strSQL)
        Dim strId As String = "0000001"
        Dim strTmp As String = "0000000"
        Dim id As Integer = 0
        If dv(0)(0).GetType.ToString <> "System.DBNull" Then
            strId = dv(0)(0).ToString.Substring(4)
            id = CInt(strId) + 1
            strId = _
            strTmp.Substring(0, strTmp.Length - id.ToString.Length)
            strId += id.ToString
        End If
        strId = Date.Now.Year.ToString + strId
        strSQL = " Insert into 门诊划价(编号, 科室, 挂号编号, 医生, "
        strSQL += "划价时间, 划价员, 是否收费,划价金额, 是否发药) "
        strSQL += "values ('" + strId + "','" + cbbRoom.Text + "','"
        strSQL += txbId.Text.Trim + "','"
        strSQL += cbbDoctor.Text.Trim + "','"
        strSQL += Date.Now.ToString + "','张三','否',"
        strSQL += txbMoney.Text.Trim + ",'否')  "
        For Each dr As DataRow In dtDetail.Rows
            strSQL += "  Insert into 门诊划价明细(划价编号,"
            strSQL += " 药品编号, 单价, 数量, 金额) values ('"
            strSQL += strId + "','" + dr("编号") + "','" + dr("单价")
            strSQL += "','" + dr("数量") + "','" + dr("金额") + "')  "
        Next
        db.RunDelOrInsSQL(strSQL)
        strSQL = " update 门诊挂号 set 是否已划价='是' where 编号 = '"
        strSQL += txbId.Text.Trim + "'"
        db.RunDelOrInsSQL(strSQL)
        db.Dispose()
        Me.ClearMX()
        Me.Clear()
        Me.dtDetail.Rows.Clear()
        Me.iCurrentLine = -1
    End Sub
End Class
4.1    系统使用说明书
软件的安装需要以下几步,按照要求配置使用软件。
1、 搭架网络体系,配置好基本硬件。
2、 安装服务器、客户机操作系统。Windows Server2003,windows XP。
3、 安装企业版SQL SERVER 2000。导入数据库的数据。
4、 客户端软件,测试运行。
5、 软件使用维护
 

医院挂号划价管理信息系统
5        附录或参考资料
[1] 刘萌,周学明,郭安源,《Visual Basic企业办公系统开发实例导航》,人民邮电出版社,2003[2] 求是科技,《Visual Basic 6.0 数据库开发技术与工程实践》,人民邮电出版社,2004[3] 张瀚文,齐锦刚,《Visual Basic数据库系统开发实例与解析》,高等教育出版社,2003[4] 刘瑞新,汪远征,《Visual Basic程序设计教程》,机械工业出版社,2001[5] 孟小峰,王珊,《数据库系统导论》,机械工业出版社,2000[6] Hector Garcia-Molina/Jeffrey.D.ullman,《Database system inplementation》 , 机械工业出版社
 
 
 
       
 
 
 
  • 下一篇资讯: JSP企业人事管理系统
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师