




免费预览已结束,剩余25页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
院长信息查询系统欧青目 录【论文摘要】1【关键字】11. 选题背景31.1. 课题背景、意义和来源以及系统工具介绍31.1.1. 课题背景及意义31.1.2. 课题的来源31.1.3. 系统工具介绍31.2. 国内外发展概况41.3. 研究内容及须解决的关键问题41.3.1. 研究内容41.3.2. 需要解决的关键问题42. 图书馆管理信息系统解决方案52.1. 方案内容52.2.1. 方案的选择52.2.2. 方案的技术实现63. 系统总体设计73.1. 系统总体设计73.2. 系统总体功能图83.3. 数据库设计83.3.1. 数据库的选择83.3.2. 数据库设计93.3.4. 数据库关系图104. 图书馆管理信息系统的实现过程114.1. 系统结构114.2. 登录系统界面的设计124.3. 信息服务子系统的设计124.4. 管理和维护子系统的设计155. 开发过程遇到的问题及解决方法206. 结束语21参考文献21 【论文摘要】目前, 我国第三代HIS 尚处于发展阶段, 再加上临床医务人员对HIS所知很少, 导致对原始医疗数据的再利用更少。因此, 如何才能更有效、合理地利用HIS 数据, 是今后HIS 的发展方向之一。医院信息综合应用系统以此为目的, 旨在开发出一个全面、实用和科学的软件系统, 为医院领导和医疗工作者服务。实现对医院人事、财务、医疗、科研教育、设备物质和药品等信息的查询、更新和应用。让院长以及各主要领导更清楚的了解整个医院的运行情况,为决策提供依据。实现医院资源的合理配置,提高医院的运行效率,最总获得利益的最大化,对于医院的信息化管理,可谓是意义重大。【关键字】院长、管理员、信息系统、数据库、、sql sever1. 选题背景 1.1. 课题背景、意义和来源以及系统工具介绍1.1.1. 课题背景及意义今天,随着信息技术的发展,在医院信息管理中运用传统的手工操作方式在现在这个数字化的时代已显得极不适应,因此,工作人员和读者对于运用计算机来辅助协调和管理自身工作的需求正在逐步提高。随着我国现代化技术的不断提高和普及,医院也在不断的提高它的各个部门的管理质量,对医院人事、财务、医疗、科研教育、设备物质和药品等信息的查询、更新和应用。让院长以及各主要领导更清楚的了解整个医院的运行情况,为决策提供依据。实现医院资源的合理配置,提高医院的运行效率,最总获得利益的最大化,对于医院的信息化管理,可谓是意义重大。自从信息系统这一新兴的管理方法引入我国,在我国企业管理中已有20多年的时间。现在,信息系统已经广泛应用于各行各业。因此在这样的前提下,我选择了“院长信息查询系统”这样一个较为普遍,同时又较为典型的课题。在当今这样一个科技高速发展的社会里,仅有理论知识是显然不行的,所以,我希望通过开发这个系统,能更好地把理论与实际结合起来,充分将自己所学的专业知识应用于实践之中,并在实践中不断充实自己,提高自己的专业技能水平,以获取更多的教益.1.1.2. 课题的来源本课题由本人和辅导老师提出,基于及SQL Server 2005数据库平台开发院长信息查询系统,用于解决院长对信息的查询,把握医院的运行状况,实现资源的优化配置。 1.1.3. 系统工具介绍 本系统的开发工具是用面向对象的进行设计的。Visual Basic.NET是基于微软.NET Framework之上的面向对象的编程语言。其在调试时是以解释型语言方式运作,而输出为EXE程序是是以编译型语言方式运作。可以看作是Visual Basic在.Net Framework平台上的升级版本,增强了对面向对象的支持。大多的VB.Net程序员使用Visual Studio .Net作为IDE(integrated development environment).SharpDevelop是另一种可用的开源的IDE。1.2. 国内外发展概况目前,国际上大多数发达国家的医院信息查询基本上实现了电脑管理,尤其是那些较大型的医院还采用了大型数据库开发的软件,部分大型医院信息查询也使用Foxpro、SQL Server等。而基于Access数据库的多数是中小型医院。但在大多数不发达国家,基于cache 数据库的医院信息应用得很广泛。而在中国,许多中小型医院信息用的还是手工医院信息管理,大多数医院信息对计算机管理信息还没有一定的认识,虽然cache 数据库是发达国家主流的医院信息数据库,但基于SQL Server数据库具有使用方便、学习简单、易学易用的特点,在发展中国发展较为成熟,所以基于SQL Server数据库做的信息系统较为普遍。1.3. 研究内容及须解决的关键问题1.3.1. 研究内容课题研究的内容是关于院长信息查询系统的流通部子系统,是院长信息查询系统运用计算机管理和实际运用的具体体现,可以让大量的医院信息得到合理的安排。该系统使用的是2005,以SQL Server 2005数据库平台进行开发。1.3.2. 需要解决的关键问题* 用户需求分析* 系统整体规划方案及设定* 功能模块的划分及设定* 利用SQL select 实现数据的连接* 实现最终系统代码的设计2. 院长信息查询系统解决方案2.1. 方案内容我们可以用两层体系结构作为院长信息查询系统软件解决方案的核心,它的基本思想是将院长操作的界面同管理人员的操作界面分离,把信息系统按功能划分为用户管理和维护、信息服务和信息查询三大块,分别放置在相同或不同的硬件平台上。之后从需求出发构造数据库表,然后再由数据库表结合需求划分系统功能模块。这样,就把一个大的系统分解成了几个小系统。系统划分了子系统后,下一步的工作是继续划分子系统的小模块。先考虑在进入子系统时应该做什么,进入系统之后又应该做什么,提供哪些服务等。2.2. 方案论证2.2.1. 方案的选择两层客户机/服务器技术在结构、开发环境、应用平台的开发方式上已经非常成熟。请求另一计算机为之服务的计算机称为客户机(Client).而处理数据库的计算机称为服务器(Server)。客户机/服务器是将处理工作分散到工作站和服务器上去处理,服务器不仅负责存取数据,还要对数据作一定的处理工作,这样在数据发送给工作站之前即取得查询结果集,从而在大部分情况下可大大减少网络传输的开销,因此,也减轻了工作处理负担,用户只需关心界面的处理工作即可。客户机/服务器系统的成功与否在很大程度上依赖于服务器。用户越多,服务器的处理负担越重,相应服务器硬件性能也要跟得上,否则就会导致影响时间比本地型数据库还要差的结果。客户机运行数据请求程序,并将这些请求传送到服务器。由客户机执行的计算称为前端处理。前端处理具有所有与提供、操作和显示数据相关的功能。C/S1数据库应用程序中客户端的主要功能: 从用户接收数据 处理应用逻辑 生成数据库请求 向服务器发送数据库请求 从服务器接收结果并显示结果在服务器上执行的计算称为后端处理。后端处理设备是一台管理数据资源并执行数据库引擎功能(如存储、操作和保护数据)的计算机。C/S数据库应用程序中服务器端的主要功能: 从客户机接收数据库请求 处理数据库请求 传送结果给客户机 执行完整性检查 提供并行访问控制 事务处理失败后,执行事务恢复 优化查询和更新处理3. 系统总体设计3.1. 系统总体设计对于医院信息查询系统主要负责提供的功能是指从医院收集信息,并将信息录入数据库中,实现院长能方便快速的找到自己想要的信息。(1) 信息收集:从医院的各个部门、科室收集所需的信息。(2) 信息录入:将收集来的信息整合、分类录入sql数据库中。(3) 用户管理:管理员实现对用户的注册、修改、删除。(4) 用户查询信息:用户通过平台窗口查询高效的查询医院的各方面的信息,并可以将信息打印输出。3.2. 系统总体功能图院长综合查询信息系统删除新用户设置用户权限更改注册密码更改登陆密码药品信息科教信息医疗信息人事信息删除信息设置查询管理员注册新用户财务信息增加信息图3-1 总体功能图3.3 数据流程图:管理员添加、删除信息医疗财务人事科教药品设置更改密码更改用户权限更改密码注册新用户删除用户用户信息数据库退出退出打印、复制、剪切输出信息综合数据库查询院长3.3. 数据库设计3.3.1. 数据库的选择院长综合查询信息系统是一个小型的数据库系统。在这里我们选择SQL Server 数据库进行开发。Microsoft SQL Server 是一种关系型数据库管理系统。关系模型是当前最受欢迎的数据存储和数据检索模型。所有的数据处理都涉及存储和检索数据的操作,Microsoft SQL Server是作为一个组织内部的全部数据的中心存储器来设计的。组织中数据的关键特征强调了这一方法的重要性。在客户机/服务器框架内,服务器数据库也要求与服务器的通信组件集成,以便和客户系统连接。Microsoft SQL Server的客户机/服务器使用Windows NT的内置网络组件。Microsoft SQL Server还在其网络组件的顶部添加了服务特有的中介组件:开放式数据库连接(Open Database Connectivity,ODBC)能使不同客户机进行相互连接,而不要求变更服务器及其他现存客户应用程序。3.3.2. 数据库设计表名属性说明表 TestZhanghu,mima表Book 主要存储关于用户的信息,表Test2 Glyonghu,glmima 表test2主要存储关于管理员的信息,(其他由于医院信息表过于繁多就不一一列举)图3-1 数据库表对象4. 图书馆管理信息系统的实现过程4.1. 系统结构我们用两层体系结构作为院长综合查询信息系统软件解决方案的核心,把信息系统按功能划分为管理和维护、信息服务和信息查询三大块,分别放置在相同或不同的硬件平台上,并将系统的操作人员划分为两类:管理员,用户。登陆用户登陆管理员登陆否用户、密码是否正确否用户、密码是否正确是是进入查询界面进入管理员界面管理员管理用户管理查询信息打印信息 管理员注册修改用户密码删除用户用户表管理员表修改管理员密码删除管理员用户注册退出4.2. 登录系统界面的设计1 从列表框里选择用户,此列表框内的用户直接与数据库里工作人员的表相关联。2 输入密码。判断该密码与工作人员表中定义的密码是否相符。3 如果不正确,提示输入正确的信息。4 如果正确,用户登录 对于登陆界面的代码如下:Dim sqlConnection1 As SqlClient.SqlConnection Dim sqlConnect As String = Server=DELL-PCSQLEXPRESS;database=his;uid=ouqing;pwd=123; “server=计算机名;database=数据库名;uid=登录数据库用户名;pwd=登录数据库密码” sqlConnection1 = New System.Data.SqlClient.SqlConnection(sqlConnect) sqlConnection1.Open() Dim rs As New ADODB.RecordsetClass If TextBox1.Text = Or Len(TextBox1.Text) 10 Then Dim z As String z = MsgBox(请输入用户名,不能超过个字符!, vbOKCancel + vbInformation, 提示) TextBox1.Text = Exit Sub End If If TextBox2.Text = Or Len(TextBox2.Text) 10 Then Dim b As String b = MsgBox(请输入密码,不能超过个字符!, vbOKCancel + vbInformation, 提示) TextBox2.Text = Exit Sub End If If InStr(Me.TextBox2.Text, ) Or InStr(Me.TextBox1.Text, ) Then 如果文本框或者里面含有这个符号提示非法字符 MsgBox(密码中存在非法字符,请重新输入。, MsgBoxStyle.Information, 提示!) Me.TextBox1.Text = Me.TextBox2.Text = Exit Sub End If sqlConnection1.Close() sqlConnection1.Open() Dim sqlcom As New SqlCommand 这里,你用这个方法来取表的数据。如果用户故意输入一个 你的sql 语句就会出错。 sqlcom.CommandText = select * from test where zhanghu= & Me.TextBox1.Text & and mima= & Me.TextBox2.Text & sqlcom.Connection = sqlConnection1 Dim myds As New DataSet Dim myadapter As New SqlDataAdapter myadapter.SelectCommand = sqlcom myadapter.Fill(myds, test) Dim cm As New SqlCommand(select count(*) from test where zhanghu = & TextBox1.Text & , sqlConnection1) Dim count As Integer = cm.ExecuteScalar If count 0 Then If myds.Tables(test).Rows.Count = 0 Then MsgBox(密码错误,请重新输入。, MsgBoxStyle.Information, 提示) Me.TextBox2.Text = sqlConnection1.Close() Exit Sub End If Form4.Show() Me.Hide() Else MsgBox(账号不存在,请重新输入!) Me.TextBox1.Text = Me.TextBox2.Text = Exit Sub End If 连接数据库 End Sub4.3. 管理员界面的设计关于修改用户密码界面的设计代码如下:Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim rs As New ADODB.RecordsetClass If TextBox1.Text = Or Len(TextBox1.Text) 10 Then Dim z As String z = MsgBox(请输入用户名,不能超过个字符!, vbOKCancel + vbInformation, 提示) TextBox1.Text = Exit Sub End If If TextBox2.Text = Or Len(TextBox2.Text) 10 Then Dim b As String b = MsgBox(请输入原密码,不能超过个字符!, vbOKCancel + vbInformation, 提示) TextBox2.Text = Exit Sub End If If TextBox3.Text = Or Len(TextBox3.Text) 10 Then Dim c As String c = MsgBox(请输入新密码,不能超过个字符!, vbOKCancel + vbInformation, 提示) TextBox3.Text = Exit Sub End If If TextBox4.Text = Or Len(TextBox3.Text) 10 Then Dim c As String c = MsgBox(请输入新密码,不能超过个字符!, vbOKCancel + vbInformation, 提示) TextBox4.Text = Exit Sub End If If TextBox3.Text TextBox4.Text Then Dim d As String d = MsgBox(对不起,两次输入的密码不一致!, vbOKCancel + vbInformation, 提示) TextBox3.Text = TextBox4.Text = End If Dim sqlConnection1 As SqlClient.SqlConnection Dim sqlConnect As String = Server=DELL-PCSQLEXPRESS;database=his;uid=ouqing;pwd=123; “server=计算机名;database=数据库名;uid=登录数据库用户名;pwd=登录数据库密码” sqlConnection1 = New System.Data.SqlClient.SqlConnection(sqlConnect) sqlConnection1.Open() If InStr(Me.TextBox2.Text, ) Or InStr(Me.TextBox3.Text, ) Then 如果文本框或者里面含有这个符号提示非法字符 MsgBox(密码中存在非法字符,请重新输入。, MsgBoxStyle.Information, 提示!) Me.TextBox1.Text = Me.TextBox2.Text = Exit Sub End If sqlConnection1.Close() sqlConnection1.Open() Dim sqlcom As New SqlCommand 这里,你用这个方法来取表的数据。如果用户故意输入一个 你的sql 语句就会出错。 sqlcom.CommandText = select * from test where zhanghu= & Me.TextBox1.Text & and mima= & Me.TextBox2.Text & sqlcom.Connection = sqlConnection1 Dim myds As New DataSet Dim myadapter As New SqlDataAdapter myadapter.SelectCommand = sqlcom myadapter.Fill(myds, test) Dim cm As New SqlCommand(select count(*) from test where zhanghu = & TextBox1.Text & , sqlConnection1) Dim count As Integer = cm.ExecuteScalar Dim result = New DialogResult() result = MessageBox.Show(你确定要修改您的密码吗?, 修改账号提醒, MessageBoxButtons.YesNo, MessageBoxIcon.Question) If result = Windows.Forms.DialogResult.Yes Then If count 0 Then If myds.Tables(test).Rows.Count = 0 Then MsgBox(原始密码错误,请重新输入。, MsgBoxStyle.Information, 提示) Me.TextBox2.Text = sqlConnection1.Close() Exit Sub End If Dim Opendlg As New OpenFileDialog Dim sqlcomm As New SqlCommand sqlcomm.CommandText = Update test set mima=mima where zhanghu= & Me.TextBox1.Text & sqlcomm.Connection = sqlConnection1 Dim prm1 As New SqlParameter(mima, Me.TextBox3.Text) sqlcomm.Parameters.Add(prm1) Try sqlcomm.ExecuteNonQuery() 执行插入语句 sqlConnection1.Close() Catch ex As Exception sqlConnection1.Close() MsgBox(ex.Message) Exit Sub End Try MsgBox(密码修改成功!, MsgBoxStyle.Information, 提示) Me.TextBox2.Text = Me.TextBox3.Text = Me.TextBox4.Text = Else MsgBox(账号不存在,请重新输入!) Me.TextBox2.Text = Me.TextBox3.Text = Me.TextBox4.Text = Exit Sub End If Else Me.TextBox2.Text = Me.TextBox3.Text = Me.TextBox4.Text = Exit Sub End If End Sub4.4. 用户查询界面的设计关于表名查询的代码如下:Dim strConnection As String = Server=DELL-PCSQLEXPRESS;database=renshi;uid=ouqing;pwd=123; Dim sqlConnection1 As New SqlConnection(strConnection) Dim dataAdapter As New SqlDataAdapter Dim dst As New DataSet Dim dt As New DataTable sqlConnection1.Open() 打开数据库 If CheckBox1.Checked = True And TextBox1.Text = Then Dim sql As String = select name from sys.tables order by modify_date desc Dim cmd As SqlCommand = New SqlCommand(sql, sqlConnection1) dataAdapter.SelectCommand = cmd dataAdapter.Fill(dst, name) dt = dst.Tables(name) sqlConnection1.Close() 关闭数据库 DataGridView1.AutoGenerateColumns = True 自动创建列 DataGridView1.DataSource = dt DataGridView1.Refresh() Else Dim sql As String = select name From sys.tables where name like % & TextBox1.Text & % Dim cmd As SqlCommand = New SqlCommand(sql, sqlConnection1) dataAdapter.SelectCommand = cmd dataAdapter.Fill(dst, name) dt = dst.Tables(name) sqlConnection1.Close() 关闭数据库 DataGridView1.AutoGenerateColumns = True 自动创建列 DataGridView1.DataSource = dt End If关于实现查询表内容的代码如下:shadow = DataGridView1.SelectedRows(0).Cells(0).Value If DataGridView1.SelectedRows.Count 0 Then Dim name = DataGridView1.SelectedRows(0).Cells(0).Value Dim strConnection As String = Server=DELL-PCSQLEXPRESS;database=renshi;uid=ouqing;pwd=123; Dim sqlConnection1 As New SqlConnection(strConnection) Dim dataAdapter As New SqlDataAdapter Dim dst As New DataSet Dim dt As New DataTable sqlConnection1.Open() 打开数据库 Dim objSqlCommand As SqlCommand Dim sql As String sql = select * from & name & objSqlCommand = New SqlCommand(sql, sqlConnection1) Dim objSqlDataAdapter As SqlDataAdapter objSqlDataAdapter = New SqlDataAdapter(objSqlCommand) Dim objDataSet As DataSet objDataSet = New DataSet() objSqlDataAdapter.Fill(objDataSet, 库存表) DataGridView2.DataSource = objDataSet.Tables(库存表) DataGridView2.Refresh() sqlConnection1.Close() 关闭数据库 Else MsgBox(没有选着修改项) End If关于实现关键字查询的代码如下:If TextBox2.Text = Then Dim z As String z = MsgBox(请输入姓名、编号关键字!, vbOKCancel + vbInformation, 提示) Exit Sub Else Dim strConnection As String = Server=DELL-PCSQLEXPRESS;database=renshi;uid=ouqing;pwd=123; Dim sqlConnection1 As New SqlConnection(strConnection) Dim dataAdapter As New SqlDataAdapter Dim dst As New DataSet Dim dt As New DataTable sqlConnection1.Open() 打开数据库 Dim objSqlCommand As SqlCommand Dim sql As String sql = select * from & shadow & where 编号like % & TextBox2.Text & % or 姓名like % & TextBox2.Text & % 根据所有表具有的共同字段查询 objSqlCommand = New SqlCommand(sql, sqlConnection1) Dim objSqlDataAdapter As SqlDataAdapter objSqlDataAdapter = New SqlDataAdapter(objSqlCommand) Dim objDataSet As DataSet objDataSet = New DataSet() objSqlDataAdapter.Fill(objDataSet, 库存表) DataGridView2.DataSource = objDataSet.Tables(库存表) DataGridView2.Refresh() sqlConnection1.Close() 关闭数据库 End If End Sub关于实现表的打印代码如下:1、 首先创建一个类:Imports System.Collections.GenericImports System.Windows.FormsImports System.DrawingImports System.CollectionsImports System.DataImports System.TextNamespace DgPrint Public Class PrintService Private StrFormat As StringFormat 单元格内容 Private RowPos As Integer 当前打印行 Private NewPage As Boolean 判断是否为新页 Private PageNo As Integer 打印页数 Private CellHeight As Integer 打印的单元格高度 Private RowsPerPage As Integer 每页的行数 Private printDoc As New System.Drawing.Printing.PrintDocument() 用于打印的PrintDocument Object Private ColumnLefts As New ArrayList() 列的左坐标 Private ColumnWidths As New ArrayList() 列的宽度 Private PrintTitle As String = 标题 Private AvailableColumns As New List(Of String)() datagridview中可见的列 Private HeaderHeight As Integer = 0 Private grid As DataGridView 打印 Public Sub Print(ByVal grid As DataGridView, ByVal Title As String) Dim ppvw As PrintPreviewDialog Try Me.grid = grid 获取要打印的datagridview AvailableColumns.Clear() 获取中所有可见的列标题 For Each c As DataGridViewColumn In grid.Columns If c.Visible = True Then AvailableColumns.Add(c.HeaderText) End If Next 显示打印属性窗体 PrintTitle = Title RowsPerPage = 0 printDoc.DocumentName = Dim dia As New PrintDialog() dia.PrintToFile = False dia.Document = printDoc dia.UseEXDialog = True If dia.ShowDialog() DialogResult.OK Then Return End If ppvw = New PrintPreviewDialog() ppvw.WindowState = FormWindowState.Maximized ppvw.Document = printDoc 显示打印预览 AddHandler printDoc.BeginPrint, New System.Drawing.Printing.PrintEventHandler(AddressOf PrintGridDoc_BeginPrint)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年反担保合同编制指南:标的及履约责任落实
- 2025峨眉山路小学食堂废弃物处理与物业管理服务协议
- 诸子百家思想比较
- 诸城市环保知识培训课件
- 2025合同终止协议解除流程是怎样的
- 2025兽药网络店铺转让合同协议书
- 语文知识与能力培训课件
- 红血丝知识培训课件
- 新能源行业2025年储能电池安全防护技术创新与产业布局报告
- 红楼梦批注式阅读课件
- 2025法拍房屋代理竞买合同范本:专业中介服务
- 2025年中级银行从业资格之中级风险管理真题及答案详解(基础+提升)
- 数控加工程序管理办法
- 2025年综合类-农艺师考试-农艺师考试-园艺工考试-高级花卉工考试历年真题摘选带答案(5卷100题)
- 小学六年级综合实践环境保护计划
- 联邦学习框架下的设备故障智能诊断算法研究
- 婚内财产协议模板
- 中国钼金属行业市场调查报告
- 物业追缴奖励方案(3篇)
- 华为公司组织管理制度
- 2025年中国蛋白肽市场现状分析及前景预测报告
评论
0/150
提交评论