




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優質文檔-傾情為你奉上計算機科學與技術學院20102011 學年第 1學期 數據庫原理()課程設計題目: 醫院病房管理系統 班級: C班 學號: 姓名: 李晗 教師: 曹衛東 成績: 一、需求分析近年來,隨著我國人民生活水平的迅速提高,科學技術的進一步發展,人們對將電子計算機應用于醫學領域的需求就越來越迫切,一套好的醫院病房管理系統在全面提高醫院的整體工作效率、為病人提供方便快捷的服務等方面都能發揮出重要作用。根據調查,在西方發達國家,幾乎絕大部分的醫院都已經采用了醫院病房管理系統,然而在國內的使用尚不普及,許多小型醫院還是完全依靠手工操作在管理病人和醫院員工的一切信息,這不僅勞動強度大且
2、工作效率低,醫師護士和管理人員的大量時間都消耗在事務性工作上,對其所掌握的信息也無法很好地統計應用起來,這樣既無法提高醫院自身的醫療水平,同時又無法很好地為病人服務。信息時代已經來臨,將計算機應用于醫院的日常管理為醫院的現代化帶來了從未有過的動力和機遇,為醫療衛生領域的發展提供了無限的潛力。對于一個醫院來說,病房管理是一個必備的環節,病房的入住、費用統計等都包含著復雜的信息,這就需要應用計算機軟件來對各項工作進行管理以發揮最大的功效。采用計算機管理信息系統已成為醫院管理科學化和現代化的標志,給醫院帶來了明顯的經濟效益和社會效益,它極大的提高了醫務人員的工作效率,有效地解決了信息的管理問題。這次
3、設計的目的就是為醫院創建一個方便、實用、快捷的管理系統, 具備數據庫維護功能,能根據用戶需求進行數據的查詢、添加、刪除、修改,減輕醫院工作人員的負擔,同時這也是現代化管理的必然要求。 系統功能模塊圖:各模塊所能實現的功能:登錄界面:醫生只有輸入正確的工作證號和密碼才能登錄系統,如果還沒有注冊,可先輸入相關信息進行注冊。管理主頁:列出了該系統所能實現的功能,包括病人住院登記、出院結算、病人信息管理、醫院內部信息管理、系統安全密碼設置,醫生根據需要選擇對應的項目。住院登記:登記病人基本信息,包括病歷號、姓名、性別、診斷、病房號、床位號、電話號碼、主治醫生、住院日期,將其提交給系統。出院結算:根據病
4、人的入院日期、出院日期、和所住病房的收費標準,便可計算出病人所需支付的費用。病人信息管理:可以查看全部病人信息,而且能選擇科室進行分科室查看病人信息,還可以通過輸入病人病歷號、選擇想要修改的項目來修改病人信息。醫院內部信息管理:包括科室信息管理、醫生信息管理、病房信息管理、床位信息管理。其中科室信息管理實現添加科室、刪除科室、更新科室、查看全部科室、查看科室醫生;醫生信息管理用來添加醫生、刪除醫生、更新醫生、查看所有醫生、查看醫生主管病人;病房信息管理實現添加病房、刪除病房、更新病房以及查看全部病房;床位信息管理用來添加床位、刪除床位、還可以查詢床位的使用情況以便合理地為病人分配床位。系統安全
5、密碼設置:為了保證系統的安全性,系統通過對工作證號和舊密碼的驗證,來修改登錄密碼。病房管理系統數據流圖: 數據字典:(1) 數據結構:病人含義說明:定義了一個病人的信息結構組成:病歷號、姓名、性別、診斷、病房號、床位號、電話號碼、主治醫生、住院日期(2) 數據結構:醫生含義說明:定義了一個醫生的信息結構組成:工作證號,姓名,年齡,職稱,部門,電話號碼,密碼(3) 數據項:病歷號含義說明:唯一標識一個病人類型:字符型長度:4取值范圍00009999(4) 數據項:工作證號含義說明:唯一標識一個醫生類型:字符型長度:3取值范圍000999(5) 數據項:密碼含義說明:登陸本病房管理系統時所需的密碼
6、類型:可變字符型長度:15(6) 數據流:病房和床位信息說明:表示病房內每一床位的使用狀態數據來源:病房表和床位表組成:所屬科室,病房號,床位號,目前狀態,收費標準(7) 數據流:醫生主管病人信息說明:表示每一醫生主治的病人信息數據來源:病人表和醫生表組成:病歷號,姓名,性別,病房號,床位號,電話號碼,醫生工作證號,醫生姓名(8) 數據流:科室醫生信息說明:表示每一科室包含的醫生信息數據來源:科室表和醫生表 組成:工作證號, 姓名, 職稱, 年齡, 電話號碼, 科名, 科地址, 科電話(9) 處理過程: 登記病人信息說明:向系統錄入病人信息輸入:病歷號、姓名、性別、診斷、病房號、床位號、電話號
7、碼、主治醫生、住院日期處理:首先根據病人診斷的結果,從病房和床位信息中選擇一個空的床位,然后將病人相關信息輸入系統。(10)處理過程: 出院結算說明:結算病人住院期間所需費用 輸入:病歷號、出院日期輸出:姓名、病房號、收費標準、住院日期、應付金額處理:根據病人的病歷號,從數據庫中得到相應的住院信息,由出院日期和收費標準系統可返回應支付的費用。 二、結構設計1概念結構設計全局E-R圖:2.邏輯結構設計將E-R圖轉換為關系模式為:病人(病歷號,姓名,性別,診斷,病房號,床位號,電話號碼,主治醫生,住院日期)醫生(工作證號,姓名,年齡,職稱,部門,電話號碼,密碼)科室(科名,科電話,科地址)病房(病
8、房號,所屬科室,收費標準)病床(病房號,病床號,目前狀態)治療(病歷號,工作證號)屬于(工作證號,科名)包含(科名,病房號)入住(病歷號,病房號)擁有(病房號,病床號)關系圖如下所示:3.物理結構設計1) 對于醫生表:系統涉及了對工作證號、姓名、職稱、部門的查詢,因此為其各建立一個升序的索引。2) 對于病人表:系統涉及了對病歷號、診斷、病房號、主治醫生工作號的查詢,因此為其各建立一個升序的索引。3) 對于病房表:系統涉及到了對病房號、所屬科室的查詢,因此為其各建立一個升序的索引。4) 對于病床表:系統涉及到了對病房號、床位號的查詢,因此為其各建立一個升序的索引。三、主要編碼及描述:1.數據庫服
9、務器端1)視圖一:CREATE VIEW 醫生視圖ASSELECT 工作證號, 姓名, 職稱, 年齡, 電話號碼, 部門FROM 醫生作用:醫生表中有一列屬性是密碼,當查詢醫生信息時,不應顯示出來,所以查詢時可以直接查詢該視圖,輸出除密碼以外的信息。視圖二:CREATE VIEW 醫生主管病人視圖ASSELECT 病人.病歷號,病人.姓名 AS 病人姓名,病人.性別, 病人.病房號,病人.病床號,病人.電話號碼,醫生.姓名 AS 醫生姓名, 醫生.工作證號FROM 病人,醫生 WHERE病人.主治醫生工作號 =醫生.工作證號ORDER BY醫生.工作證號,病人.病歷號 作用:該視圖將醫生表和病
10、人表聯系起來,當輸入醫生的工作證號后,可直接調用該視圖,將相關的醫生信息和病人信息以醫生工作證號為第一順序、病人病歷號為第二順序輸出。視圖三: CREATE VIEW 科室醫生信息情況ASSELECT醫生.工作證號,醫生.姓名, 醫生.職稱, 醫生.年齡, 醫生.電話號碼, 科室.科名,科室.科地址,科室.科電話FROM醫生,科室 WHERE 醫生.部門 = 科室.科名ORDER BY醫生.工作證號 作用:該視圖將科室表和醫生表聯系起來,當選擇科室名稱后,可直接調用該視圖,將相關的科室信息和醫生信息按醫生工作證號的順序輸出。視圖四:CREATE VIEW 出院結算視圖ASSELECT 病人.病
11、歷號, 病人.姓名, 病人.性別, 病人.診斷, 病人.住院日期, 病人.病房號, 病房.收費標準FROM 病人,病房 WHERE病人.病房號 = 病房.病房號ORDER BY 病人.病歷號 作用:當病人出院時結算費用,需要知道住院日期、病房號及收費標準以便進一步的計算。該視圖將病人表和病房表聯系起來,輸入病人病歷號后,即可顯示出住院日期、收費標準等相關信息。2)存儲過程:CREATE PROCEDURE chuyuan(id char(20),tm datetime,pp int output) ASdeclare a intdeclare b intdeclare c datetimese
12、lect a=病房號 from 病人 where 病歷號=idselect b=收費標準 from 病房 where 病房號=aselect c=住院日期 from 病人 where 病歷號=idselect a=datediff(day,c,tm)set pp=a*bGO 作用:該存儲過程將病人病歷號和出院日期作為輸入,分別賦值給變量id、tm,經select語句得到收費標準賦給變量b、和住院日期賦給變量c,用函數datediff(day,c,tm) 計算出住院天數,住院天數和收費標準的乘積即為結算費用,將它賦給變量pp并作為輸出返回。3)觸發器一:create TRIGGER up ON病
13、人 FOR INSERTASBegin Declare NR varchar(50), NB varchar(50) Select NR=病房號,NB=病床號 from inserted Update 病床 Set 目前狀態="有人" Where 病房號=NR and 床位號=NB End作用:當有新病人登記入住時觸發事件,設置病人所在床位的目前狀態為“有人”,以免再有病人入住此床位時發生沖突。觸發器二:create TRIGGER de ON病人 FOR deleteASBegin Declare NR varchar(50), NB varchar(50) Select
14、 NR=病房號,NB=病床號 from deleted Update 病床 Set 目前狀態="無人" Where 病房號=NR and 床位號=NB End作用:當有病人出院時將其信息刪除,觸發該事件,設置病人之前床位的目前狀態為“無人”,以便以后其他病人可以使用此床位。2.應用服務器端1)數據錄入功能:通過“住院登記”界面,將錄入的病人相關信息存儲到數據庫病人表中; protected void Button1_Click(object sender, EventArgs e) SqlConnection SunCon = new SqlConnection("
15、;Data Source=localhost;Initial Catalog=病房管理系統;Integrated Security=True"); SunCon.Open(); /打開SunCon對象所連接的數據庫 string StuSQL; /用來存放SQL命令的字符串 StuSQL = "INSERT INTO 病人(病歷號,姓名,性別,診斷,病房號,電話號碼,主治醫生工作號,住院日期,病床號) VALUES('" StuSQL = StuSQL + TextBox1.Text + "','" + TextBox2
16、.Text + "','" +TextBox10 .Text + "','" StuSQL = StuSQL + TextBox4.Text + "','" + TextBox5.Text + "','" + TextBox6.Text + "','" + TextBox7.Text + "','" + TextBox8.Text + "','"
17、 + TextBox9.Text + "')" SqlCommand StuIns = new SqlCommand(StuSQL, SunCon); StuIns.ExecuteNonQuery(); /針對SunCon所連接的數據庫,執行StuIns對象 SunCon.Close(); /關閉SunCon對象所連接的數據庫 Response.Write("<script laguage=javacript>alert('已登記')</script>"); 2)數據刪除功能:通過“刪除醫生信息”界面,實現
18、將數據庫中醫生表中的相應醫生信息進行刪除;protected void Button1_Click(object sender, EventArgs e) SqlConnection SunCon = new SqlConnection("Data Source=localhost;Initial Catalog=病房管理系統;Integrated Security=True"); SunCon.Open(); string StuSQL; StuSQL = "delete from 醫生 where 工作證號="+TextBox1.Text .Trim
19、 (); SqlCommand cmd = new SqlCommand(StuSQL, SunCon); cmd.ExecuteNonQuery(); Response.Write("<script laguage=javacript>alert('成功刪除')</script>");3)數據檢索功能:通過“查看科室病人信息”界面,實現根據DropDownList中選擇的科室名稱對數據庫中的病人表進行查詢,并將查詢結果顯示給用戶。protected void Page_Load(object sender, EventArgs e)
20、 SqlConnection SunCon = new SqlConnection("Data Source=localhost;Initial Catalog=病房管理系統;Integrated Security=True"); if (!IsPostBack) /網頁第一次加載時 SunCon.Open(); string StuSQL; StuSQL = "SELECT 科名 FROM 科室" SqlDataAdapter SunAda = new SqlDataAdapter(StuSQL, SunCon); DataSet SunSet = n
21、ew DataSet(); SunAda.Fill(SunSet, "科名"); DropDownList1.DataSource = SunSet; DropDownList1.DataMember = "科名" DropDownList1.DataTextField = "科名" DropDownList1.DataBind(); string StuSQL2; StuSQL2= "SELECT 病歷號,姓名,性別,病房號,病床號,主治醫生工作號,住院日期,電話號碼 FROM 病人 where 診斷 =" +
22、"'" + DropDownList1.SelectedValue.ToString() + "'" SqlCommand StuIns = new SqlCommand(StuSQL2, SunCon); SqlDataReader SunDa = StuIns.ExecuteReader(); /使用ExecuteReader方法執行SQL命令,并將結果存儲在SunDa對象中 GridView1.DataSource = SunDa; GridView1.DataBind(); SunCon.Close(); protected vo
23、id DropDownList1_SelectedIndexChanged(object sender, EventArgs e) SqlConnection SunCon = new SqlConnection("Data Source=localhost;Initial Catalog=病房管理系統;Integrated Security=True"); SunCon.Open(); string StuSQL3; StuSQL3 = "SELECT 病歷號,姓名,性別,病房號,病床號,主治醫生工作號,住院日期,電話號碼 FROM 病人 where 診斷 =&
24、quot; + "'" + DropDownList1.SelectedValue.ToString() + "'" SqlCommand StuIns = new SqlCommand(StuSQL3, SunCon); SqlDataReader SunDa = StuIns.ExecuteReader(); /使用ExecuteReader方法執行SQL命令,并將結果存儲在SunDa對象中 GridView1.DataSource = SunDa; GridView1.DataBind(); SunCon.Close(); 4)數據
25、修改功能:通過“更新醫生信息”界面,選擇想要的修改項,實現修改數據庫中醫生表的相關項為設置的新值。 protected void Button2_Click(object sender, EventArgs e) SqlConnection SunCon = new SqlConnection("Data Source=localhost;Initial Catalog=病房管理系統;Integrated Security=True"); SunCon.Open(); /打開SunCon對象所連接的數據庫 string StuSQL; /用來存放SQL命令的字符串 StuS
26、QL = " UPDATE 醫生 set 職稱='" + TextBox3.Text + "' where 工作證號='" + TextBox1.Text+"'" SqlCommand upd = new SqlCommand(StuSQL, SunCon); upd.ExecuteNonQuery(); SunCon.Close(); /關閉SunCon對象所連接的數據庫 protected void Button3_Click(object sender, EventArgs e) SqlConne
27、ction SunCon = new SqlConnection("Data Source=localhost;Initial Catalog=病房管理系統;Integrated Security=True"); SunCon.Open(); /打開SunCon對象所連接的數據庫 string StuSQL; /用來存放SQL命令的字符串 StuSQL = " UPDATE 醫生 set 年齡='" + TextBox4.Text + "' where 工作證號='" + TextBox1.Text +&quo
28、t;'" SqlCommand upd = new SqlCommand(StuSQL, SunCon); upd.ExecuteNonQuery(); /針對SunCon所連接的數據庫,執行upd對象所包含的名為StuSQL的SQL命令 SunCon.Close(); /關閉SunCon對象所連接的數據庫 protected void Button4_Click(object sender, EventArgs e) SqlConnection SunCon = new SqlConnection("Data Source=localhost;Initial Ca
29、talog=病房管理系統;Integrated Security=True"); SunCon.Open(); /打開SunCon對象所連接的數據庫 string StuSQL; /用來存放SQL命令的字符串 StuSQL = " UPDATE 醫生 set 電話號碼='" + TextBox5.Text + "' where 工作證號='" + TextBox1.Text +"'" SqlCommand upd = new SqlCommand(StuSQL, SunCon); upd.Ex
30、ecuteNonQuery(); SunCon.Close(); /關閉SunCon對象所連接的數據庫 四、運行說明:主要界面展示床位管理說明:該界面用于管理病房的床位信息。先選擇科室,再從該科室所含的病房中選擇一個,便可實現查詢此病房中各床位的目前狀態,以供病人登記時參考,還可實現向此病房中添加床位或刪除已有床位。住院登記說明:該界面用于病人住院時登記相關信息。確定要入住的病房和床位后按要求輸入病人的相關信息,其中一些數據項含有一定的約束條件,將其提交給系統,供醫生查詢其所需信息以及出院時查詢住院情況。修改病人信息說明:該界面用于修改病人信息。輸入病人的病歷號,然后從下拉列表中選擇要修改的數
31、據項,相應的那一部分就會變為可見,向其中輸入新內容后,點擊修改按鈕,即可實現修改后臺數據庫病人的相關信息。出院結算說明:該界面用于病人出院結算費用。輸入病人的病歷號后,可將其住院信息顯示出來。再輸入出院日期,系統會調用存儲過程計算出住院天數和收費標準的乘積即結算費用。 病人支付費用后,可將其信息從系統刪除,所住床位的狀態自動變為無人。五、課程設計總結在本次數據庫課程設計中,我設計和開發了一個小型的病房管理系統,實現了對病人的住院登記、住院結算、信息查詢、信息修改,對科室信息、醫生信息、病房信息、床位信息的增、刪、查、改,和系統安全密碼設置的功能。設計過程中曾經遇到了不少難點和問題,如:將界面和后臺數據庫聯系起來時出錯;對數據庫中信息操作時有時忽略了參照完整性;病人出院結算時輸入相關信息調用存儲過程, 然后將結算費用賦給變量并作為輸出返回,該過程在數據庫的查詢分析器中可以實現,但在程序中卻不能正常運行;頁面間參數傳遞實現不了;還出現了一些語法錯誤,和對一些控件的屬性及事件不熟悉等。對于上述這些難點,我花了很多時間去解決,反復看老師所給的事件代碼、將每一條語句都理解透徹,查閱數據庫教材和理論課的課件、并借來相關書籍輔助學習,注意數據庫中各個所建表的主外鍵約束, 仔細
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 身邊的誘惑講課件
- 鄭州亞歐交通職業學院《溫室設計與建造》2023-2024學年第二學期期末試卷
- 神木職業技術學院《園藝學概論》2023-2024學年第二學期期末試卷
- 多相流輸送-洞察及研究
- 連云港職業技術學院《Excel統計實踐》2023-2024學年第二學期期末試卷
- 生物礦化調控機制-洞察及研究
- 江蘇聯合職業技術學院《動力學》2023-2024學年第二學期期末試卷
- 廣東水利電力職業技術學院《工筆人物》2023-2024學年第二學期期末試卷
- 大興安嶺職業學院《國外音樂教學法》2023-2024學年第二學期期末試卷
- 油品儲運題庫及答案
- 濟北中學信息技術特長生歷年試題
- 儲能在電力系統中的應用
- 老年人胃食管反流病護理
- 非煤礦山-礦山機電安全管理課件
- 職業學校學生崗位實習三方協議范本
- 河北省唐山市路南區2023年數學五年級第二學期期末經典試題含解析
- 2023年廣東初中學業水平考試生物試卷真題(含答案)
- 奶茶店消防應急預案
- 工程制圖及機械CAD基礎知到章節答案智慧樹2023年吉林大學
- 初級會計職稱考試教材《初級會計實務》
- 第二十二課-重屬和弦前方的共同和弦
評論
0/150
提交評論