版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、<p> 一、系統(tǒng)需求與功能分析 </p><p><b> 1.系統(tǒng)需求分析</b></p><p> 醫(yī)院信息化是醫(yī)院應(yīng)用信息技術(shù)及其產(chǎn)品的過程,是信息技術(shù)由局部到全局、由戰(zhàn)術(shù)層次到戰(zhàn)略層次向醫(yī)院的全面滲透,運(yùn)用于流程管理、支持醫(yī)院經(jīng)營管理的過程。信息化的實(shí)施從自上而下的角度說,必須與醫(yī)院的制度創(chuàng)新、組織創(chuàng)新和管理創(chuàng)新結(jié)合;從自上而下的角度說,必須
2、以作為醫(yī)院主體的業(yè)務(wù)人員直接受益及其使用水平的逐步提高為基礎(chǔ)。</p><p><b> 調(diào)查用戶需求:</b></p><p> 本系統(tǒng)的最終用戶為醫(yī)院,我們根據(jù)從醫(yī)院方面取得的圖表資料、文字資料以及其他細(xì)節(jié)方面的信息,根據(jù)我們?nèi)粘I钪械慕?jīng)驗(yàn),根據(jù)我們所做的其他詢問和調(diào)查,得出用戶的下列實(shí)際要求:</p><p><b>
3、用戶對(duì)系統(tǒng)的要求:</b></p><p><b> 信息要求:</b></p><p> 由于系統(tǒng)的使用主體是醫(yī)院的管理人員,因此對(duì)系統(tǒng)的信息要求可分為以下方面:</p><p><b> ?。?)病人信息</b></p><p> ?、伲菏紫仁遣∪说幕拘畔ⅲ饕ú∪说男彰?,
4、性別,出生年月,年齡,家庭住址,聯(lián)系方式等;</p><p> ?、冢簩?duì)于住院病人,還需要入院時(shí)間,所在病區(qū),所在醫(yī)科,床位等。</p><p><b> ?。?)處理要求:</b></p><p> 系統(tǒng)應(yīng)當(dāng)完成以下的信息處理:</p><p> ?、伲捍鎯?chǔ)病人信息,供相應(yīng)的人員查詢;</p><
5、p> ?、冢簩?duì)病人信息進(jìn)行及時(shí)的更新和統(tǒng)計(jì);</p><p><b> ?。?)安全性要求:</b></p><p> 系統(tǒng)應(yīng)設(shè)置訪問用戶的標(biāo)識(shí)以鑒別是否是合法用戶,并要求合法用戶設(shè)置其密碼,保證用戶身份不被盜用。</p><p><b> 2. 功能分析</b></p><p> (1
6、)信息錄入處理:住院病人信息錄入、住院病人治療費(fèi)用錄入、住院病人藥品費(fèi)用錄入。</p><p> 住院病人信息錄入就是將源數(shù)據(jù)庫中沒有的病人信息重新錄入進(jìn)去,并且可以錄入病人姓名。住院病人費(fèi)用錄入和住院病人藥品錄入功能相近,都是將 病人在住院期間的所花的費(fèi)用進(jìn)行錄入保存,方便以后進(jìn)行查詢。</p><p> ?。?)信息查詢處理:住院病人信息查詢和住院病人費(fèi)用查詢。</p&g
7、t;<p> 住院病人信息查詢和住院病人費(fèi)用查詢功能相似,從數(shù)據(jù)庫中將病人信息和費(fèi)用顯示到前臺(tái),讓病人及時(shí)了解自己的個(gè)人信息和消費(fèi)情況。</p><p> (3)信息統(tǒng)計(jì)處理:住院病人總費(fèi)用統(tǒng)計(jì)</p><p> 按大類科、專科、病區(qū)及指定的病人進(jìn)行查詢統(tǒng)計(jì)</p><p> ?。?)信息打印處理:住院病人信息打印</p><
8、p> 住院病人信息報(bào)表打印用于顯示病人的住院號(hào)、床位號(hào)、床位費(fèi)、病人姓名、性別編碼出生日期、民族、籍貫和病癥等詳細(xì)信息。</p><p> ?。?)系統(tǒng)維護(hù)處理:病人信息維護(hù)、大類科編碼維護(hù)、??凭幋a維護(hù)、病區(qū)編碼維護(hù)、治療項(xiàng)目編碼維護(hù)、藥品編碼維護(hù)醫(yī)生編碼維護(hù)和用戶編碼維護(hù)。</p><p> 系統(tǒng)編碼維護(hù)時(shí)分別對(duì)病人信息、大類科、???、病區(qū)、治療項(xiàng)目、藥品信息、醫(yī)生信息和用戶
9、信息進(jìn)行錄入、查詢與修改等操作,數(shù)據(jù)編碼表維護(hù)是對(duì)各類數(shù)據(jù)編碼表中的記錄進(jìn)行錄入、查詢與修改等操作。</p><p><b> 3.系統(tǒng)功能菜單</b></p><p> 由此方案設(shè)計(jì)的系統(tǒng)功能菜單如下表所示。</p><p> 表 學(xué)生成績管理功能菜單</p><p><b> 二、數(shù)據(jù)庫設(shè)計(jì)<
10、/b></p><p> 設(shè)計(jì)系統(tǒng)的數(shù)據(jù)庫結(jié)構(gòu)、數(shù)據(jù)表結(jié)構(gòu)包含序號(hào)、數(shù)據(jù)項(xiàng)名、含義、數(shù)據(jù)項(xiàng)類型、長度、非空、索引、主鍵、外鍵、引用字段、數(shù)據(jù)來源等。</p><p> 1.大類科編碼表Category</p><p> 表1 大類科編碼表tblCategory</p><p> 2.??凭幋a表Spec</p>&
11、lt;p> 表2 ??凭幋a表tblSpec</p><p> 3.病區(qū)編碼表Ward</p><p> 表3 病區(qū)編碼表tblWard</p><p> 4.病人信息表Patient</p><p> 表4 病人信息表tblPatient</p><p> 5.性別編碼表Sex</p&g
12、t;<p> 表5 性別編碼表tblSex</p><p> 6.民族編碼表Nation</p><p> 表6 民族編碼表tblNation</p><p> 7.籍貫編碼表NtvPlc</p><p> 表7 籍貫編碼表tblNtvPlc</p><p> 8.治療項(xiàng)目編碼表Item
13、</p><p> 表8 治療項(xiàng)目編碼表tblItem</p><p> 9.病人治療項(xiàng)目費(fèi)用表MedItem</p><p> 表9 病人治療項(xiàng)目費(fèi)用表tblMedItem</p><p> 10.藥品編碼表Medicine</p><p> 表10 藥品編碼表tblMedicine</p
14、><p> 11.病人藥品費(fèi)用表MedFee</p><p> 表11 病人藥品費(fèi)用表tblMedFee</p><p> 12.醫(yī)生編碼表Doctor</p><p> 表12 醫(yī)生編碼表tblDoctor</p><p> 13.用戶表User</p><p> 表13 用戶
15、表tblUser</p><p><b> 三、程序設(shè)計(jì)</b></p><p><b> 1.系統(tǒng)登錄(主)</b></p><p> 圖1 用戶登錄界面</p><p> 在登錄界面的設(shè)計(jì)中,我采用的是有連接訪問數(shù)據(jù)庫,這樣數(shù)據(jù)并發(fā)性問題更容易控制,數(shù)據(jù)也是當(dāng)前的和及時(shí)更新的;此外還設(shè)
16、有用戶權(quán)限,權(quán)限不同登錄成功后呈現(xiàn)出的主界面也不同;并且使用DataReader組件來以只讀和僅轉(zhuǎn)發(fā)的方式從數(shù)據(jù)源檢索數(shù)據(jù);核心代碼如下:</p><p><b> //有連接訪問</b></p><p> static string str = "Data Source=ASUS-PC\\SQLEXPRESS;Initial Catalog=Hospi
17、tal;User Id=sa;Password=sa";</p><p> SqlConnection con = new SqlConnection(str);</p><p> private void btn_Login_Click(object sender, EventArgs e)</p><p><b> {</b>
18、;</p><p> string cmdStr = "Select * From tblLogin Where User_Name=@a and User_Pwd=@b";</p><p> SqlCommand cmd = new SqlCommand(cmdStr, con);</p><p> SqlParameter s1, s2
19、;</p><p> s1 = cmd.Parameters.Add("@a", SqlDbType.VarChar, 20);</p><p> s2 = cmd.Parameters.Add("@b", SqlDbType.VarChar, 20);</p><p> s1.Value = txt_UserName.
20、Text;</p><p> s2.Value = txt_UserPwd.Text;</p><p><b> //打開連接</b></p><p> con.Open();</p><p> //定義SqlDataReader對(duì)象</p><p> SqlDataReader dr
21、= cmd.ExecuteReader();</p><p> //只讀的方式從數(shù)據(jù)源檢索數(shù)據(jù)</p><p> if (dr.Read())</p><p><b> {</b></p><p><b> //用戶權(quán)限登錄</b></p><p> Common.
22、User_Flag = dr["User_Flag"].ToString();</p><p><b> //顯示主窗體</b></p><p> Form_Main frm = new Form_Main();</p><p> frm.Show();</p><p><b> }
23、</b></p><p><b> else</b></p><p><b> {</b></p><p> MessageBox.Show("用戶名或密碼錯(cuò)誤!");</p><p><b> }</b></p><
24、p><b> //關(guān)閉連接</b></p><p> con.Close();</p><p><b> }</b></p><p><b> 2.主界面(主)</b></p><p> 圖2 醫(yī)院住院信息管理系統(tǒng)</p><p>
25、在主界面設(shè)計(jì),為了將所有界面以整體的方式全部實(shí)現(xiàn)出來,即執(zhí)行一次就能看到全部效果,我在主界面添加了MenuStrip控件并且在MenuStrip控件上添加了MeauItem控件,雙擊MeauItem控件添加代碼實(shí)現(xiàn)主/子窗體連接;而且把界面設(shè)計(jì)的漂亮、規(guī)范,我把Form窗體的IsMdiContainer屬性設(shè)置為True,BackgroundImage屬性導(dǎo)入一張圖片,加入一個(gè)timer控件在statusStrip顯示時(shí)間;此外涉及到用
26、戶權(quán)限問題,我在Form_Load事件中添加代碼,用戶權(quán)限不同登錄后訪問的主界面也不同。核心代碼如下:</p><p> //單擊主界面上住院病人藥品費(fèi)用錄入時(shí),將顯示出住院病人藥品費(fèi)用錄入的Form子窗體</p><p> private void tsmiMfInput_Click(object sender, EventArgs e)</p><p>&l
27、t;b> {</b></p><p> Form_MedFee frm = new Form_MedFee();</p><p> frm.MdiParent = this;</p><p> frm.Show();</p><p> slbl_window.Text = " 當(dāng)前窗體:"
28、+ frm.Text;</p><p><b> }</b></p><p><b> //用戶權(quán)限設(shè)置</b></p><p> private void Form_Main_Load(object sender, EventArgs e)</p><p><b> {</
29、b></p><p> //調(diào)用Common類的靜態(tài)變量User_Flag,當(dāng)用戶權(quán)限為0時(shí),系統(tǒng)維護(hù)界面失效,但可見</p><p> if (Common.User_Flag == "0")</p><p><b> {</b></p><p> //系統(tǒng)維護(hù)界面失效</p&g
30、t;<p> MenuMaintain.Enabled = false;</p><p><b> }</b></p><p><b> }</b></p><p> //timer控件顯示時(shí)間</p><p> private void timer1_Tick(object
31、 sender, EventArgs e)</p><p><b> {</b></p><p> slbl_time.Text = "日期:時(shí)間:" + Convert.ToString(DateTime.Now); </p><p><b> }</b></p><p>
32、; //單擊主界面上住院病人總費(fèi)用錄入時(shí),將顯示出住院病人總費(fèi)用錄入的Form子窗體</p><p> private void 住院病人總費(fèi)用統(tǒng)計(jì)ToolStripMenuItem_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> Form_FeeStat fr
33、m = new Form_FeeStat();</p><p> frm.MdiParent = this;</p><p> frm.Show();</p><p> slbl_window.Text = " 當(dāng)前窗體:" + frm.Text;</p><p><b> }</b>&l
34、t;/p><p> //單擊主界面上批量復(fù)制時(shí),將顯示出批量復(fù)制的Form子窗體</p><p> private void toolStripButton1_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> Form_Copy frm = n
35、ew Form_Copy();</p><p> frm.MdiParent = this;</p><p> frm.Show();</p><p> slbl_window.Text = " 當(dāng)前窗體:" + frm.Text;</p><p><b> } </b></p>
36、;<p> //單擊主界面上住院病人信息打印時(shí),將顯示出住院病人信息打印的Form子窗體</p><p> private void tsmiPatPint_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> Form_PatBb frm = new
37、Form_PatBb();</p><p> frm.MdiParent = this;</p><p> frm.Show();</p><p> slbl_window.Text = " 當(dāng)前窗體:" + frm.Text;</p><p><b> }</b></p>
38、<p> 3.病人信息錄入(次)</p><p> 圖3 病人信息錄入</p><p> 病人信息用于對(duì)病人信息的錄入、查詢和顯示等操作,并且可以插入病人照片。主要代碼如下:</p><p> while (myReader.Read())</p><p><b> {</b></p>
39、<p> file = new FileStream(savedImageName, FileMode.OpenOrCreate, FileAccess.Write);</p><p> bw = new BinaryWriter(file);</p><p> startIndex = 0;//讀取的起點(diǎn)位置</p><p> retval =
40、 myReader.GetBytes(0, startIndex, outbyte, 0, bufferSize);//返回實(shí)際讀取的字節(jié)數(shù)</p><p> //當(dāng)圖片大小大于或等于數(shù)組大小時(shí),需分塊寫入到文件中</p><p> while (retval == bufferSize)</p><p><b> {</b></p
41、><p> bw.Write(outbyte);</p><p> bw.Flush();</p><p> startIndex += bufferSize;//重置讀取的起點(diǎn)位置</p><p> retval = myReader.GetBytes(0, startIndex, outbyte, 0, bufferSize);<
42、;/p><p><b> }</b></p><p> bw.Write(outbyte, 0, (int)retval - 1);</p><p> bw.Flush();</p><p> bw.Close();</p><p> file.Close();</p><
43、;p><b> }</b></p><p> 4.住院病人信息查詢(次)</p><p> 圖4 住院病人信息查詢</p><p> 從數(shù)據(jù)庫中將病人信息和費(fèi)用顯示到前臺(tái),讓病人及時(shí)了解自己的個(gè)人信息。代碼:</p><p> private void cbo_Cate_SelectedIndexCha
44、nged(object sender, EventArgs e)</p><p> { //無連接訪問實(shí)現(xiàn)??票砗痛箢惪票淼慕壎?lt;/p><p> string cmdStr = "Select * From tblSpec where Spec_Cate=@a";</p><p> SqlCommand cmd = new SqlCom
45、mand(cmdStr, con);</p><p> SqlParameter s1;</p><p> s1 = cmd.Parameters.Add("@a", SqlDbType.VarChar, 2);</p><p> s1.Value = cbo_Cate.SelectedValue.ToString();</p>
46、<p> SqlDataAdapter dp = new SqlDataAdapter();</p><p> dp.SelectCommand = cmd;</p><p> DataSet ds = new DataSet();</p><p> dp.Fill(ds, "Spec");</p><p
47、> cbo_Spec.DataSource = ds.Tables["Spec"];</p><p> if (ds.Tables["Spec"].Rows.Count == 0) </p><p><b> {</b></p><p> cbo_Spec.DisplayMember =
48、"";</p><p> cbo_Spec.ValueMember = "";</p><p><b> }</b></p><p><b> else</b></p><p><b> {</b></p><
49、p> cbo_Spec.DisplayMember = "Spec_Name";</p><p> cbo_Spec.ValueMember = "Spec_Id";</p><p><b> } </b></p><p><b> }</b></p&
50、gt;<p> 5.住院病人總費(fèi)用統(tǒng)計(jì)(次)</p><p> 圖5 住院病人總費(fèi)用統(tǒng)計(jì)</p><p> 住院病人總費(fèi)用統(tǒng)計(jì)時(shí)用于統(tǒng)計(jì)病人住院治療等項(xiàng)目的總費(fèi)用,及其消費(fèi)藥品名稱、數(shù)量、金額、使用時(shí)間等,都會(huì)相信的顯示出來,一目了然。主要代碼如下:</p><p> while (rd_Cate.Read())</p><
51、;p><b> {</b></p><p><b> //定義樹結(jié)點(diǎn)</b></p><p> TreeNode node_Cate = new TreeNode(rd_Cate.GetValue(0).ToString());</p><p> if (rd_Cate.GetValue(1).ToStrin
52、g() != string.Empty)</p><p><b> {</b></p><p> string strSpec = "select Spec_Name,Spec_Id from tblSpec where Spec_Cate='";</p><p> strSpec += rd_Cate.Ge
53、tValue(1).ToString();</p><p> strSpec += "'";</p><p> SqlCommand cmd_Spec = new SqlCommand(strSpec, con);</p><p> SqlDataReader rd_Spec = cmd_Spec.ExecuteReader();&
54、lt;/p><p> while (rd_Spec.Read())</p><p><b> {</b></p><p> TreeNode node_Spec = new TreeNode(rd_Spec.GetValue(0).ToString());</p><p> if (rd_Spec.GetValue(
55、1).ToString() != string.Empty)</p><p><b> {</b></p><p> string strWard = "select Ward_Name,Ward_Id from tblWard whereWard_Spec='";</p><p> strWard += rd
56、_Spec.GetValue(1).ToString();</p><p> strWard += "'";</p><p> SqlCommand cmd_Ward = new SqlCommand(strWard, con);</p><p> SqlDataReader rd_Ward = cmd_Ward.ExecuteRe
57、ader();</p><p> while (rd_Ward.Read())</p><p><b> {</b></p><p> TreeNode node_Ward = new TreeNode(rd_Ward.GetValue(0).ToString());</p><p> if (rd_Ward.G
58、etValue(1).ToString() != string.Empty)</p><p><b> {</b></p><p> string strPat = "select Pat_Name from tblPatient where Pat_Ward='";</p><p> strPat += r
59、d_Ward.GetValue(1).ToString();</p><p> strPat += "'";</p><p> SqlCommand cmd_Pat = new SqlCommand(strPat, con);</p><p> SqlDataReader rd_Pat = cmd_Pat.ExecuteReader
60、();</p><p> while (rd_Pat.Read())</p><p><b> {</b></p><p> TreeNode node_Pat =new TreeNode(rd_Pat.GetValue(0).ToString());</p><p> node_Ward.Nodes.Add(n
61、ode_Pat);</p><p><b> }</b></p><p> rd_Pat.Close();</p><p><b> }</b></p><p> node_Spec.Nodes.Add(node_Ward);</p><p><b> }
62、</b></p><p> rd_Ward.Close();</p><p><b> }</b></p><p> node_Cate.Nodes.Add(node_Spec);</p><p><b> }</b></p><p> rd_Spec.
63、Close();</p><p><b> }</b></p><p> treeView_Patient.Nodes.Add(node_Cate);</p><p><b> }</b></p><p> 6.住院病人報(bào)表打?。ㄖ鳎?lt;/p><p> 圖6 病人
64、信息報(bào)表打印</p><p> 病人信息報(bào)表打印是我們組的重頭戲,在HISDataSet內(nèi)存數(shù)據(jù)集中添加一個(gè)內(nèi)存表,相比其他內(nèi)存數(shù)據(jù)表,這個(gè)內(nèi)存數(shù)據(jù)表不是建立連接從外存數(shù)據(jù)庫中拉入的,而是我用Select語句編寫的即Patient;在解決方案資源管理器中新建Crystal報(bào)表并且從HISDataSet內(nèi)存數(shù)據(jù)集中導(dǎo)入用Patient內(nèi)存表的數(shù)據(jù)信息;另外在Form窗體上添加crystalReportViewer
65、窗體,作用是在運(yùn)行時(shí),使From窗體上查詢的信息顯示在crystalReportViewer窗體上,形成報(bào)表的格式;此外在代碼上也有做修改,當(dāng)具體不知道病人的姓名時(shí)可采用模糊查詢,當(dāng)點(diǎn)擊顯示和預(yù)覽兩個(gè)按鈕時(shí)出現(xiàn)的界面,這些都是通過代碼實(shí)現(xiàn)的,具體代碼如下:</p><p><b> //預(yù)覽按鈕</b></p><p> private void tsBtn_Pr
66、eview_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> //顯示crystalReportViewer</p><p> crystalReportViewer1.Visible = true;</p><p> //定義一個(gè)Crys
67、talReport_Patient對(duì)象cr</p><p> CrystalReport_Patient cr = new CrystalReport_Patient();</p><p> cr.SetDataSource(ds.Tables["Patient"]);</p><p> crystalReportViewer1.Repor
68、tSource = cr;</p><p><b> }</b></p><p><b> //顯示按鈕</b></p><p> private void tsBtn_Display_Click(object sender, EventArgs e)</p><p><b> {
69、</b></p><p> //不顯示crystalReportViewer控件</p><p> crystalReportViewer1.Visible = false;</p><p><b> }</b></p><p> private void Form_PatBb_Load(object
70、 sender, EventArgs e)</p><p><b> {</b></p><p> cmd.CommandType = CommandType.Text;</p><p> cmd.Connection = con;</p><p> cmd.CommandTimeout = 15;</p&
71、gt;<p> //不顯示crystalReportViewer控件</p><p> crystalReportViewer1.Visible = false; </p><p><b> }</b></p><p> //寫一個(gè)私有的BindingPatient()方法</p><p>
72、private void BindingPatient()</p><p><b> {</b></p><p><b> //打開連接</b></p><p> con.Open();</p><p> //使用Select語句從內(nèi)存數(shù)據(jù)集HISDataSet中的Patient數(shù)據(jù)表中選擇
73、信息</p><p> string cmdStr = "Select Pat_Id,Pat_Bed,Pat_BedFee, ";</p><p> cmdStr += " Pat_Name,Pat_Sex,Pat_Birth,Pat_Nation,Pat_NtvPlc,Pat_Sympton ";</p><p> c
74、mdStr += " from Patient ";</p><p><b> //模糊查詢</b></p><p> cmdStr += " Pat_Name like '" + textBox1.Text + "%'";</p><p> cmd
75、.CommandText = cmdStr;</p><p> da.SelectCommand = cmd;</p><p><b> //關(guān)閉連接</b></p><p> con.Close();</p><p> da.Fill(ds, "Patient");</p>&
76、lt;p> //定義一個(gè)臨時(shí)保存數(shù)據(jù)的網(wǎng)格虛擬表的對(duì)象table_Patient</p><p> DataTable table_Patient = new DataTable();</p><p> table_Patient = ds.Tables["Patient"];</p><p> dataGridView1.Data
77、Source = ds.Tables["Patient"];</p><p> txt_Id.DataBindings.Clear();</p><p> txt_Id.DataBindings.Add("Text", table_Patient, "Pat_Id");</p><p> txt_Be
78、d.DataBindings.Clear();</p><p> txt_Bed.DataBindings.Add("Text", table_Patient, "Pat_Bed");</p><p> txt_BedFee.DataBindings.Clear();</p><p> txt_BedFee.DataBi
79、ndings.Add("Text", table_Patient, "Pat_BedFee");</p><p> txt_Name.DataBindings.Clear();</p><p> txt_Name.DataBindings.Add("Text", table_Patient, "Pat_Name&qu
80、ot;);</p><p> txt_Sex.DataBindings.Clear();</p><p> txt_Sex.DataBindings.Add("Text", table_Patient, "Pat_Sex");</p><p> txt_Birth.DataBindings.Clear();</p&
81、gt;<p> txt_Birth.DataBindings.Add("Text", table_Patient, "Pat_Birth");</p><p> txt_Nation.DataBindings.Clear();</p><p> txt_Nation.DataBindings.Add("Text"
82、;, table_Patient, "Pat_Nation");</p><p> txt_NtvPlc.DataBindings.Clear();</p><p> txt_NtvPlc.DataBindings.Add("Text", table_Patient, "Pat_NtvPlc");</p><
83、;p> txt_Svmpton.DataBindings.Clear();</p><p> txt_Svmpton.DataBindings.Add("Text", table_Patient, "Pat_Sympton");</p><p><b> }</b></p><p><b
84、> //查詢按鈕</b></p><p> private void Btn_Find_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> con.Open();//打開連接</p><p> //使用Select語句從內(nèi)
85、存數(shù)據(jù)集HISDataSet中的Patient數(shù)據(jù)表中選擇信息</p><p> string cmdStr = "Select Pat_Id,Pat_Bed,Pat_BedFee,Pat_Name,Sex_Name,Pat_Birth,Nation_Name,NtvPlc_Name,Pat_Sympton ";</p><p> cmdStr += "
86、from Patient ";</p><p> cmdStr += " where Pat_Name like '" + textBox1.Text + "%'";</p><p> cmd.CommandText = cmdStr;</p><p> da.SelectCommand =
87、 cmd;</p><p> con.Close();//關(guān)閉連接</p><p> //再次查詢時(shí)原來顯示信息將被清除</p><p> if (ds.Tables.Contains("Patient"))</p><p><b> {</b></p><p> d
88、s.Tables["Patient"].Clear();</p><p><b> }</b></p><p> //調(diào)用Fill方法將外存數(shù)據(jù)庫中的信息填充到內(nèi)存數(shù)據(jù)集中</p><p> da.Fill(ds, "Patient");</p><p> //定義一個(gè)臨時(shí)
89、保存數(shù)據(jù)的網(wǎng)格虛擬表的對(duì)象table_Patient</p><p> DataTable table_Patient = new DataTable();</p><p> table_Patient = ds.Tables["Patient"];</p><p> dataGridView1.DataSource = ds.Tables
90、["Patient"];</p><p> txt_Id.DataBindings.Clear();</p><p> txt_Id.DataBindings.Add("Text", table_Patient, "Pat_Id");</p><p> txt_Bed.DataBindings.Cle
91、ar();</p><p> txt_Bed.DataBindings.Add("Text", table_Patient, "Pat_Bed");</p><p> txt_BedFee.DataBindings.Clear();</p><p> txt_BedFee.DataBindings.Add("T
92、ext", table_Patient, "Pat_BedFee");</p><p> txt_Name.DataBindings.Clear();</p><p> txt_Name.DataBindings.Add("Text", table_Patient, "Pat_Name");</p>&
93、lt;p> txt_Sex.DataBindings.Clear();</p><p> txt_Sex.DataBindings.Add("Text", table_Patient, "Sex_Name");</p><p> txt_Birth.DataBindings.Clear();</p><p> t
94、xt_Birth.DataBindings.Add("Text", table_Patient, "Pat_Birth");</p><p> txt_Nation.DataBindings.Clear();</p><p> txt_Nation.DataBindings.Add("Text", table_Patient,
95、 "Nation_Name");</p><p> txt_NtvPlc.DataBindings.Clear();</p><p> txt_NtvPlc.DataBindings.Add("Text", table_Patient, "NtvPlc_Name");</p><p> txt_Svm
96、pton.DataBindings.Clear();</p><p> txt_Svmpton.DataBindings.Add("Text", table_Patient, "Pat_Sympton");</p><p><b> }</b></p><p> 7.病人編碼維護(hù)(主)</p&
97、gt;<p> 圖7 病人編碼維護(hù)</p><p> 病人編碼維護(hù)窗體是通過控件綁定實(shí)現(xiàn)起功能的;其功能有:保存病人的住院號(hào)、病人姓名、性別和出生日期等信息,還設(shè)有查詢病人信息功能;首先在Form窗體添加BindingSource窗體,重命名為BindingSource_Pat,將BindingSource的DataSource屬性與內(nèi)存數(shù)據(jù)集HISDataSet綁定、DataMember屬性
98、與內(nèi)存數(shù)據(jù)表tblPatient綁定;其次因?yàn)門extBox綁定屬于簡單數(shù)據(jù)綁定,所以只要將基本信息(GroupBox)中的TextBox控件的(DataBindings)--Text屬性分別與BindingSource_Pat對(duì)應(yīng)綁定即可,例子:【txtPat_Id(住院號(hào))的(DataBindings)-Text屬性與BindingSource_Pat-Pat_Id綁定】;此外將病人編碼維護(hù)的From窗體上的DataGridView
99、控件的DataSource屬性與BindingSource_Pat進(jìn)行綁定、column屬性改為對(duì)應(yīng)的中文漢字;最后保存、退出和查詢是由代碼實(shí)現(xiàn)的,代碼如下:</p><p><b> //保存按鈕</b></p><p> private void tsBtn_Save_Click(object sender, EventArgs e)</p>&
100、lt;p><b> {</b></p><p> this.tblPatientTableAdapter.Update(this.hISDataSet.tblPatient);</p><p><b> }</b></p><p><b> //退出按鈕</b></p>&
101、lt;p> private void tsBtn_Exit__Click(object sender, EventArgs e)</p><p><b> {</b></p><p> this.Close();</p><p><b> }</b></p><p><b>
102、 //查詢按鈕</b></p><p> private void Btn_Check_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> bindingSource_Pat.Filter = "Pat_name like '"
103、; + txt_Pat.Text + "%'";</p><p><b> }</b></p><p> 8.大類科編碼維護(hù)(主)</p><p> 圖8 大類科編碼維護(hù)</p><p> 大類科編碼維護(hù)的實(shí)現(xiàn)功能也是通過編碼綁定實(shí)現(xiàn)的,同樣在大類科編碼維護(hù)Form窗體上添加Bind
104、ingSource窗體name屬性改為BindingSource_Cate、DataSource屬性與內(nèi)存數(shù)據(jù)集HISDataSet綁定和DataMember屬性與內(nèi)存數(shù)據(jù)表tblCategory綁定;我還添加了bindingNavigator控件name屬性命名為bindingNavigator_Cate,目的是為了用戶一目了然,并且將其的BindingSource屬性與BindingSource_Cate綁定,這樣運(yùn)行時(shí)就直接點(diǎn)擊&
105、lt;/p><p> bindingNavigator的關(guān)鍵幀就可以查看信息,方便;另外窗體上還添加listBox控件,其數(shù)據(jù)綁定是屬于復(fù)雜數(shù)據(jù)綁定,因此其DataSource屬性與BindingSource_Cate綁定、DisplayMember屬性與Cate_Name綁定和ValueMember屬性與Cate_Id綁定;此外其他控件都屬于簡單數(shù)據(jù)綁定;最后,退出和保存是代碼實(shí)現(xiàn),代碼如下:</p>
106、<p><b> //退出按鈕</b></p><p> private void tsBtn_Exit_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> this.Close();</p><p>&l
107、t;b> }</b></p><p><b> //保存按鈕</b></p><p> private void tsBtn_Save_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> this.t
108、blCategoryTableAdapter.Update(this.hISDataSet.tblCategory);</p><p><b> }</b></p><p><b> 9.批量復(fù)制(次)</b></p><p><b> 圖9 批量復(fù)制</b></p><p
109、> 用于對(duì)數(shù)據(jù)庫中數(shù)據(jù)表的備份,防止數(shù)據(jù)庫出現(xiàn)意外,導(dǎo)致源數(shù)據(jù)信息丟失,主要代碼如下:</p><p> private void Btn_Copy_Click(object sender, EventArgs e)</p><p><b> {</b></p><p> //連接到源服務(wù)器獲取要復(fù)制的數(shù)據(jù)</p>
110、<p> con1.Open();</p><p> SqlCommand cmd = new SqlCommand("select * from tblPatient_Bk", con1);</p><p> SqlDataReader dr = cmd.ExecuteReader();</p><p> //連接到目標(biāo)服務(wù)器
111、</p><p> con2.Open();</p><p> //創(chuàng)建SqlBulkCopy對(duì)象</p><p> SqlBulkCopy bulkcopy = new SqlBulkCopy(con2);</p><p> //設(shè)置SqlBulkCopy對(duì)象的目標(biāo)表屬性</p><p> bulkcopy
112、.DestinationTableName = "tblPatient";</p><p> //調(diào)用方法,實(shí)現(xiàn)復(fù)制</p><p> bulkcopy.WriteToServer(dr);</p><p> dr.Close();</p><p> con2.Close();</p><p&g
113、t; con1.Close();</p><p> MessageBox.Show("數(shù)據(jù)批量復(fù)制完成!");</p><p><b> }</b></p><p><b> 四、系統(tǒng)使用說明書</b></p><p> 要想了解如何使用醫(yī)院系統(tǒng)維護(hù),首先需要知道我們醫(yī)
114、院信息管理系統(tǒng)的主要功能和次要功能,分清楚主次點(diǎn),逐個(gè)進(jìn)行熟悉。</p><p> 1.登錄界面:用戶輸入用戶名和密碼——點(diǎn)擊登錄,在密碼和用戶名正確的情況下可以進(jìn)入我們的主界面,當(dāng)然由于用戶權(quán)限的問題,登錄成功后出現(xiàn)的主界面也不不同,主要功能也在主界面。</p><p> 2.主界面:在主界面上面有兩排工具欄,用戶可以根據(jù)自己的需求點(diǎn)擊工具欄上面的菜單,以解決自己的問題和自己需要了解
115、的情況,熟悉我們項(xiàng)目的功能。</p><p> ?、?信息錄入:信息錄入包括3個(gè)子程序,分別是住院病人信息錄入、住院病人治療費(fèi)用錄入和住院病人藥品費(fèi)用錄入。</p><p> · 病人信息錄入,瀏覽圖片——顯示圖片——輸入病人信息——保存——顯示——退出;</p><p> · 住院病人治療費(fèi)用錄入,按要求輸如信息——保存——顯示——退出;&
116、lt;/p><p> · 住院病人藥品費(fèi)用錄入,信息錄入——保存——顯示——退出。</p><p> ?、?信息查詢:信息查詢包括2個(gè)子程序,分別是住院病人信息查詢和住院病人費(fèi)用查詢。</p><p> · 住院病人信息查詢,選擇大類科——選擇??啤x擇病區(qū)——查詢——查看顯示信息——退出;</p><p>
117、3; 住院病人費(fèi)用查詢,選擇病人——查詢——查看治療費(fèi)用——點(diǎn)擊藥品費(fèi)用——查看藥品費(fèi)用——切換病人姓名重復(fù)上面操作——退出。</p><p> ③.信息統(tǒng)計(jì):住院病人總費(fèi)用統(tǒng)計(jì),選擇大類科——選擇??啤x擇病區(qū)——選擇病人——點(diǎn)擊統(tǒng)計(jì)按鈕——窗體下面查看費(fèi)用信息——切換病人姓名重復(fù)操作——退出。</p><p> ?、?信息打?。翰∪诵畔?bào)表打印,輸入病人姓名——點(diǎn)擊查詢——點(diǎn)擊預(yù)覽
118、——點(diǎn)擊打印——點(diǎn)擊顯示——查看信息——退出。</p><p> ?、?系統(tǒng)維護(hù):病人編碼維護(hù)、病區(qū)編碼維護(hù)和醫(yī)生編碼維護(hù),輸入病人信息——點(diǎn)擊查詢——查看信息;在顯示信息欄添加病人信息——保存——退出;</p><p> · 大類科編碼維護(hù)、??凭幋a維護(hù)、治療項(xiàng)目編碼維護(hù)和藥品編碼維護(hù),點(diǎn)擊淺藍(lán)色箭頭——顯示大類科信息——點(diǎn)擊黃色加號(hào)——輸入大類科信息——保存——查看——退出
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫(yī)院管理系統(tǒng)-醫(yī)院管理系統(tǒng)課程設(shè)計(jì)說明書
- 工廠管理系統(tǒng)課程設(shè)計(jì)說明書
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)說明書
- 倉儲(chǔ)管理系統(tǒng)-課程設(shè)計(jì)說明書
- 采購管理系統(tǒng)課程設(shè)計(jì)說明書
- vfp課程設(shè)計(jì)--學(xué)生管理系統(tǒng)課程設(shè)計(jì)說明書
- 學(xué)生管理系統(tǒng)課程設(shè)計(jì)說明書 (2)
- 圖書管理系統(tǒng)課程設(shè)計(jì)說明書
- 圖書管理系統(tǒng)課程設(shè)計(jì)說明書
- 圖書管理系統(tǒng)課程設(shè)計(jì)說明書
- 醫(yī)院門診信息系統(tǒng)課程設(shè)計(jì)說明書
- 固定資產(chǎn)管理系統(tǒng)課程設(shè)計(jì)說明書
- vfp學(xué)生社團(tuán)管理系統(tǒng)課程設(shè)計(jì)說明書
- 課程設(shè)計(jì)說明書--學(xué)生信息管理系統(tǒng)設(shè)計(jì)
- 課程設(shè)計(jì)說明書
- 學(xué)生成績管理系統(tǒng)課程設(shè)計(jì)說明書
- 圖書館管理系統(tǒng)課程設(shè)計(jì)說明書
- 人事管理系統(tǒng)_java課程設(shè)計(jì)說明書
- 圖書銷售管理系統(tǒng)-java課程設(shè)計(jì)說明書
- 教材管理課程設(shè)計(jì)說明書
評(píng)論
0/150
提交評(píng)論