Tích hợp một số đối tượng graphics của c xây dựng công cụ phân tích dữ liệu tổng hợp của phần mềm medisoft 2003

84 406 0
Tích hợp một số đối tượng graphics của c xây dựng công cụ phân tích dữ liệu tổng hợp của phần mềm medisoft 2003

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

MỤC LỤC LỜI NÓI ĐẦU Chương 1:GIỚI THIỆU CHUNG 1.1 Ứng dụng công nghệ thông tin quản lý 1.2 Ứng dụng công nghệ thông tin Y Tế 1.3 Một số xu hướng ứng dụng công nghệ thông tin y tế nước ta .9 Chương 2:GIỚI THIỆU CHUNG VỀ PHẦN MỀM MEDISOFT 2003 VÀ PHÂN TÍCH CƠ SỞ DỮ LIỆU 12 2.1 Phần mềm Medisoft 2003 12 2.2 Phân tích sở liệu phần mềm Medisoft 2003 18 Chương 3: GIỚI THIỆU CHUNG VỀ C SHARP, CÁC ĐỐI TƯỢNG ĐỒ HOẠ, LÀM VIỆC VỚI CƠ SỞ DỮ LIỆU VÀ MỘT SỐ CÔNG CỤ CHÍNH 32 3.1 Giới thiệu chung C Sharp 32 3.1.1 Không gian tên 34 3.1.2 Windows Forms 34 3.2 Giới thiệu lớp đồ hoạ 36 3.2.1 Khai báo đối tượng đồ hoạ 36 3.2.2 Pen ( bút vẽ ) Brush ( chổi vẽ ) 37 3.2.3 Giới thiệu In ấn ( Printing ) 38 3.2.4 Thuộc tính trạng thái 39 3.2.5 Giới thiệu số hàm vẽ Drawing 40 3.3 Kết nối sở liệu 41 3.3.1 Giới thiệu lớp kết nối 42 3.3.2 Lớp kết nối ( Connection ) 43 3.3.3 Thuộc tính ConnectionString 43 3.3.4 Phương thức lớp SqlConnection 44 3.3.5 Phương thức lớp OleDbConnection 44 3.3.6 Phương thức lớp OdbcConnection 44 3.3.7 Sự kiện (Event ) lớp kết nối 44 3.4 Một số công cụ C Sharp 45 3.4.1 Công cụ SERVER EXPLORER 45 3.4.2 sử dụng dự án sở liệu 50 3.4.3 thiết kế sở liệu database designer 51 3.4.4 Tạo Typed Dataset 54 Chương 4: KẾT QUẢ CÀI ĐẶT 55 4.1 Đặt vấn đề 55 4.2 Một số giải thuật sử dụng chương trình .58 4.2.1 Thuật toán vẽ biểu đồ dạng hình bánh ( Pie Chart) 55 4.2.2 Thuật toán vẽ biểu đồ dạng hình cột (Column) 57 4.2.3 Thuật toán lấy sở liệu 59 4.2.4 Thuật toán thống kêt xuất Excel 67 4.3 Hướng dẫn sử dụng giao diện chương trình 71 4.3.1 Hướng dẫn sử dụng 71 4.3.2 Giao diện chương trình 72 4.4 Một số đoạn code chương trình 74 4.5 Kết luận hướng phát triển 82 Nhận xét giáo viên hướng dẫn 83 Tài liệu tham khảo 84 LỜI NÓI ĐẦU Trong thời kỳ bùng nổ thông tin việc trao đổi, xử lý, lưu trữ thông tin cho nhanh chóng, tiện lợi, xác vấn đề lớn Sự phát triển mạnh mẽ công nghệ thông tin đáp ứng yêu cầu trên, đời ứng dụng mới, công nghệ giúp người làm việc dễ dàng hiệu Internet hình thành phát triển giúp việc truyền tin cách dễ dàng, nhanh chóng (công nghệ Web 2.0) môi trường làm việc dựa tảng đồ hoạ giúp cho người dụng sử dụng máy tính cách tiện lợi, dễ hình dung, dễ thao tác, dễ nhớ, dễ học… điều làm cho máy vi tính ngày phổ biến rộng rãi, hệ điều hành thao tác cửa sổ Windows, Linux , Mac OS … Trong môi trường làm việc dựa đồ hoạ làm việc môi trường Windows sử dụng nhiều tính tiện lợi, thói quen, dễ dàng làm việc đặc biệt có nhiều ứng dụng tiện lợi,ứng dụng thực tế chạy môi trường Đặc biệt nước ta hệ điều hành Windows Microsoft sử dụng phổ biến.Công nghệ NET công nghệ Microsoft xây dựng phát triển,nó hoạt động môi trường hệ điều hành Windows với nhiều tính ưa thích khả lập trình theo hướng đối tượng, bảo mật liệu cao (kết nối với liệu thông qua lớp kết nối ADO) đặc biệt việc thể đồ hoạ… C Sharp ngôn ngữ lập trình điển công nghệ NET, ngôn ngữ hướng đối tượng với từ khóa dành riêng thân thuộc với ngôn ngữ tự nhiên, có kiểu liệu cấu trúc lệnh để bạn áp dụng thuật toán cần thiết cho công việc, tính bảo mật liệu cao, an toàn truyền tin, khả thể đồ hoạ tốt có nhiều công cụ hỗ trợ việc lập trình Visual Studio.Net… Để thực đề tài “Tích hợp số đối tượng Graphics C# xây dựng công cụ phân tích liệu tổng hợp phần mềm Medisoft 2003” Tôi xin cảm ơn thầy giáo Thạc sĩ Nguyễn Hải Minh, thầy cô giáo khoa Công Nghệ Thông Tin đại hoc Thái Nguyên Bệnh viện Lao bệnh phổi Thái Nguyên – Phòng kết hoạch tổng hợp bác sĩ Lê Tiến Dũng, Nguyễn Thị Yến, Trần Thị Loan… hướng dẫn giúp đỡ hoàn thành đề tài Thái Nguyên 05-2008 Chương GIỚI THIỆU CHUNG 1.1 Ứng dụng công nghệ thông tin quản lý Trong thời đại toàn cầu hoá việc quản lý, lưu trữ trao đổi thông tin vấn đề lớn công ty, tổ chức, hay cá nhân đó, yếu tố định thành công Nắm bắt thông tin sớm có nhiều thời gian biện pháp để sử lý vấn đề tiết kiệm thời gian, cải, sức lực người Đất nước ta giai đoạn chuyển kinh tế, có nhiều thay đổi công đổi Có nhiều hội thách thức trình toàn cầu hoá, việc ứng dụng công nghệ thông tin vào vấn đề kinh tế xã hội vấn đề cấp thiết để hoà nhập với bạn bè năm châu Việc ứng dụng công nghệ thông tin vào quản lý có nhiều kết đáng mừng, tạo cung cách làm việc có hiệu nhiều, thuận tiên cho người sử dụng, tra cứu thông tin, dự báo đánh giá Một số vấn đề ứng dụng thành công vấn đề quản lý : quản lý bệnh viện, quản lý xét nghiệm, công tác quản lý hải quan, quản lý rừng môi trường, quản lý doanh nghiệp, quản lý thư viện đặc biệt vấn đề quản lý dự báo thời tiết quản lý cháy rừng giúp có dự báo xác tình hình mưa lũ, cháy rừng để thông báo kịp thời đến người dân quan chức có biệt pháp ứng phó nhằm giảm đến mức thấp thiệt hại người thiên tai gây ra… Đối với công ty, doanh nghiệp thi việc ứng dụng công nghệ thông tin mang yếu tố sống thời kỳ cạnh tranh gay gắt Việc quản lý tốt nhân sự, khách hàng, sản phẩm doanh số bán hàng…nó giúp lãnh đạo công ty đưa dự báo chiến lược hoạt động tốt mang lại nhiều lợi nhuận hơn, tránh thua lỗ… Đối với vấn đề văn hóa xã hội công nghệ thông tin có vai trò lưu giữ truyền bá giá trị văn hoá đất nước, số trang Web ca nhạc có lưu hát cổ truyền dân tộc, hát tác giả Việt Nam sáng tác, số trang khác lại có thông tin lễ hội phong tục, cảnh quan thiên nhiên đất nước để giới thiệu với bạn bè năm châu, tạo hình ảnh mẻ tốt đẹp đất nước người Việt Nam Ta tham khảo số địa trang Web http//www.nhacso.net, http//vinhhalong.vn, http//nhacvui.vn… Các báo điện tử với loại hình báo chí khác góp phần vào việc cung cấp thông tin cho người dân cách nhanh chóng kịp thời, xác vấn đề thời sự, trị, văn hoá, thể thao giải trí … Nhưng với ưu điểm tin tức luôn cập nhật 24/24h dễ dàng tìm lại viết đọc cách dễ dàng nhờ tiện lợi Internet công nghệ Web 2.0 ngày nay… Nhờ có công nghệ thông tin mà người quản lý nhiều vấn đề rộng hơn, lớn hơn, giải nhiều vấn đề xã hội Với ưu điểm như: khả lưu trữ liệu lớn, tra cứu lập kế hoạch cách thuận tiện mà không tốn nhiều thời gian công sức người Và nhiều vấn đề khác mà công nghệ thông tin mang lại nhiều tiện ích cho người … 1.2 Ứng dụng công nghệ thông tin Y Tế Hiện nay, việc ứng dụng công nghệ thông tin công tác quản lý bệnh viện trở thành yêu cầu cấp bách nhằm nâng cao chất lượng công tác quản lý bệnh viện, góp phần thúc đẩy bệnh viện phát triển toàn diện, bước đáp ứng yêu cầu khám chữa bệnh chăm sóc sức khỏe cho nhân dân Việc ứng dụng công nghệ thông tin giúp bệnh viện quản lý sử dụng hiệu nguồn lực, thống thất thu viện phí, công khai minh bạch tài bệnh nhân, giúp kiểm soát sử dụng thuốc hợp lý an toàn Bên cạnh việc ứng dụng thành công tin học quản lý, nhiều bệnh viện xây dựng trang thông tin điện tử riêng với nhiều nội dung chuyên môn phong phú, hấp dẫn bệnh viện Việt Đức, bệnh viện Nhi Trung ương, bệnh viện Chợ Rẫy, góp phần đưa dịch vụ y tế đến gần với người dân Theo số liệu báo cáo bệnh viện toàn quốc, việc ứng dụng công nghệ thông tin đa số bệnh viện Việt Nam dừng lại việc khai thác công việc văn phòng, thống kê, báo cáo Một số bệnh viện ứng dụng phần riêng lẻ quản lý nhân sự, viện phí, quản lý kho dược, bệnh nhân vào viện có số bệnh viện triển khai quản lý đồng tới người bệnh toàn trình điều trị Theo số liệu Vụ điều trị (Bộ Y tế), năm 2005 nước có gần 1000 bệnh viện công lập có khoảng 5% có phần mềm ứng dụng tin học quản lý bệnh viện tương đối tổng thể lại hàng chục nhà cung cấp phần mềm khác Tại số bệnh viện nảy sinh bất cập như: thông tin bệnh nhân Bảo hiểm y tế phải nhập làm lần phần mềm khác (phần mềm quản lý bệnh viện; phần mềm toán bảo hiểm y tế; phần mềm quản lý báo cáo thống kê) gây nhiều phiền hà cho bệnh nhân phải chờ đợi gây lãng phí nhân lực nhập số liệu bệnh viện Và số vấn đề bất cập khác như:hệ thống máy vi tính dùng bệnh viện không đồng bộ, hệ thống mạng cũ, tư vấn thiết kế không tốt trình độ cán nhiều bệnh viện hạn chế, dẫn tới việc triển khai phần mềm quản lý bệnh viện gặp nhiều khó khăn Vậy phải làm để phát triển công nghệ thông tin ngành Y tế? Đó câu hỏi nhà lãnh đạo ngành Mà trǎn trở cán nhân viên ngành y tế Để ứng dụng công nghệ thông tin vào ngành y tế trước đòi hỏi cấp bách thời đại, làm người "tin học hóa" ngành y tế, để ngành xứng đáng ngành phát triển nước sánh vai với nước khu vực, giới Nhìn thẳng vào thật phát triển ứng dụng công nghệ thông tin y tế bị hẫng hụt trước tốc độ phát triển khoa học công nghệ Hơn hết cán nhân viên ngành y tế lửa sáng việc ứng dụng công nghệ thông tin công việc Đào tạo cán cập nhật công nghệ thông tin để ứng dụng nhanh chóng đáp ứng yêu cầu phát triển ngành Y tế công tác điều trị - phòng chống dịch bệnh - truyền thông - trang thiết bị y tế - quản lý ngành, quản lý dược đào tạo nhân lực v.v yêu cầu cấp bách Theo quan điểm lạc quan nhà công nghệ thông tin Việt Nam: Khoảng 5-10 nǎm tới với "thiên thời, địa lợi, nhân hòa" với lãnh đạo Đảng cộng sản Việt Nam, đất nước ta trở thành cường quốc ứng dụng công nghệ thông tin Do cán nhân viên ngành y tế định không để công nghệ thông tin phát triển chậm chất lượng Chính cần bắt tay làm công việc nhằm ứng dụng phát triển công nghệ thông tin ngành, góp phần đại hóa ngành y tế Việt Nam, thiết thực nâng cao sức khỏe nhân dân Nhằm đáp ứng yêu cầu Ngày 19/12/2005, Hà Nội diễn Lễ bàn giao Phần mềm Medisoft 2003 từ công ty Links Toàn Cầu Vụ Điều trị - Bộ Y tế Đến dự buổi lễ có TS Trần Chí Liêm, Thứ trưởng Bộ Y tế; đại diện lãnh đạo vụ, cục, Văn phòng thuộc Bộ Y tế; đại diện bệnh viện; đại diện Công ty Intel Việt Nam, Công ty Links Toàn Cầu quan có liên quan Thực chủ trương lãnh đạo Bộ, Vụ Điều trị phối hợp Công ty Links Toàn cầu thiết kế phần mềm Medisoft 2003, nhằm ứng dụng quản lý hồ sơ bệnh án biểu mẫu báo cáo thống kê bệnh viện Sau triển khai thí điểm thành công số bệnh viện, ngày 19/08/2004 phần mềm Bộ Y tế nghiệm thu ban hành toàn quốc theo định số 2484/2004/QĐ-BYT Theo đánh giá TS Lý Ngọc Kính – Vụ trưởng Vụ Điều trị, sau năm thực công tác triển khai phần mềm Medisoft 2003 đạt số thành bước đầu sau: Có Sở Y tế 200 bệnh viện đa khoa chuyên khoa toàn quốc ứng dụng phần mềm Medisoft 2003 việc quản lý báo cáo thống kê bệnh viện truy xuất liệu gửi Sở Y tế, Bộ Y tế theo mẫu quy định Trong số đó, khoảng 60 bệnh viện bước đầu ứng dụng phần mềm để quản lý phần hồ sơ bệnh án bệnh viện; khoảng 40 bệnh viện quản lý toàn hồ sơ bệnh án tất bệnh nhân bệnh viện Một số điển hình công tác triển khai Medisoft 2003 bệnh viện Đống Đa Hà nội bệnh viện Trà Vinh; bệnh viện Gang thép Thái Nguyên; bệnh viện Điện Biên trang bị hệ thống máy tính nối mạng LAN tập huấn cho toàn cán bệnh viện để phục vụ công tác quản lý thông tin xuất nhập chuyển viện cho toàn bệnh nhân bệnh viện Tại buổi lễ, đại diện Công ty Links Toàn Cầu bàn giao phần mềm Medisoft 2003 Vụ Điều trị để tiếp tục quản lý, nâng cấp sử dụng Trong thời gian tới, Vụ Điều trị nhanh chóng nâng cấp phần mềm Medisoft 2003 trở thành phần mềm khung quản lý bệnh viện mã nguồn mở nhằm tiết kiệm ngân sách bệnh viện chi cho phần mềm, phát huy kết phần mềm Medisoft 2003 đẩy nhanh tốc độ ứng dụng công nghệ thông tin quản lý bệnh viện, đáp ứng nhu cầu quản lý bệnh viện tình hình 1.3 Một số xu hướng ứng dụng công nghệ thông tin y tế nước ta Xu hướng xây dựng hệ thống quản lý thông tin bệnh nhân thẻ thông minh phạm vi toàn quốc Trong thực tế lĩnh vực y tế lưu trữ quản lý thông tin bệnh nhân chủ yếu giấy Ngoài hạn chế truyền thống phương pháp nguyên cản trở tích hợp quản lý toàn diện thông tin bệnh nhân bệnh viện, toàn quốc quốc gia với Sự lên công nghệ thẻ thông minh (smart card) đánh giá giải pháp đầy tiềm cho việc quản lý xác hiểu thông tin bệnh nhân Với tiến gần công nghệ cho phép có thẻ lưu trữ nhiều thông tin bệnh nhân (tên, tuổi, giới tính, địa chỉ, nhóm máu, mã số bảo mật ) thẻ thông minh Thêm vào cách tích hợp thông tin lưu trữ hệ thống máy tính biết thêm nhiều thông tin bệnh nhân từ hệ thống trang bị khác bệnh viện Điều giúp cho việc chuẩn đoán điều trị nhanh chóng xác Với giá trị hấp dẫn việc xây dựng hệ thống thống bệnh nhân toàn quốc nhu cầu cấp thiết có ý nghĩa kinh tế - xã hội nhân đạo cao Xu hướng ứng dụng công nghệ thông tin tư vấn chăm sóc sức khoẻ từ xa cho cộng đồng Trong xu hướng toàn cầu hoá nay, đồng thời với bùng phát, lây lan dịch bệnh toàn giới Việc chăm sóc sức khoẻ cộng đồng, phổ cập cung cấp, tư vấn hỗ trợ thông tin sức khoẻ y tế ngày tầng lớp nhân dân, doanh nghiêp, tổ chức quan tâm sâu sắc cấp thiết Các thông tin truyền tất kênh thông tin truyền thông báo giấy, phát thanh, truyền hình công cụ công nghệ thông tin (internet, E-mail, Instant Messeger ) viễn thông (tin nhắn SMS ) để thu hẹp khoảng cách địa lý, vùng miền Xuất phát từ yêu cầu thực tế này, việc định hướng cung cấp thông tin tư vấn chăm sóc sức khoẻ từ xa số kênh truyền thống Y tế, sức khoẻ cộng đồng làm định hướng đánh giá mang tính khả thi cao Ban đầu áp dụng thành phố lớn với việc thu thập, tập hợp đầy đủ sở liệu thông tin Y tế dạng điện tử, phối hợp đưa lên Website trực thuộc Bộ Y tế, sau áp dụng mô hình đến tỉnh thành địa phương khác vùng sâu vùng xa toàn quốc Khi án thành công lợi ích không vấn đề sức khoẻ cộng đồng cải thiện, nâng cao mà điều quan trọng tạo cho người Việt Nam có ý thức biết quan tâm đến sức khoẻ mình, người thân, có ý thức cao việc phòng bệnh, lựa chọn thông tin phù hợp để đảm bảo sức khoẻ Xu hướng xây dựng mã thuốc quốc gia ứng dụng công nghệ thông tin việc sử dụng mã thuốc quốc gia phục vụ công tác quản lý dược Việt Nam Hiện việc thống kêt tình hình sản xuất nhập khẩu, sử dụng thuốc theo dõi biến động giá thuốc sở điều trị gặp nhiều khó khăn chưa có mã thuốc chuẩn Do nhiểu doanh nghiệp dược, nhiều bệnh viện Việt Nam ứng dụng phần mềm tác nghiệp phục vụ công tác đơn vị xây dựng mã thuốc riêng cho đơn vị không theo chuẩn định Kết nước tích hợp liệu, tổng hợp, thống kêt báo cáo tình hình sản xuất, cung ứng sử dụng thuốc phạm vi nước đường ứng dụng tin học Và làm cho việc phân tích, đánh giá hoạch định sách dược 10 excel.Cells[i, 2] = (conn.getDatakt(aReader.GetString(0))).Trim(); quy1 = conn.getData1(aReader.GetString(0), nam, "1") + conn.getData1(aReader.GetString(0), nam, "2") + conn.getData1(aReader.GetString(0), nam, "3"); quy2 = conn.getData1(aReader.GetString(0), nam, "4") + conn.getData1(aReader.GetString(0), nam, "5") + conn.getData1(aReader.GetString(0), nam, "6"); quy3 = conn.getData1(aReader.GetString(0), nam, "7") + conn.getData1(aReader.GetString(0), nam, "8") + conn.getData1(aReader.GetString(0), nam, "9"); quy4 = conn.getData1(aReader.GetString(0), nam, "10") + conn.getData1(aReader.GetString(0), nam, conn.getData1(aReader.GetString(0), nam, "12"); excel.Cells[i, 4] = quy1; excel.Cells[i, 5] = quy2; excel.Cells[i, 6] = quy3; excel.Cells[i, 7] = quy4; } aReader.Close(); aConnection.Close(); excel.Columns.AutoFit(); 70 "11") + 4.3 Hướng dẫn sử dụng giao diện chương trình 4.3.1 Hướng dẫn sử dụng Đây chương trình vẽ biểu đồ hỗ trợ phân tích dư liệu cho phần mềm Medisoft 2003 Chúng ta nhập mã bệnh vào ô mã bệnh, ta quên mã bệnh ta sử dụng danh sách mã bệnh bên dưới, dựa tên bệnh (có tên tiếng Việt tiếng Anh), ta co thể biết mã bệnh Chương trình hỗ trợ việc nhập mã bệnh tự động cách click chuột vào mã bệnh ta cần chọn lệnh danh sách So sánh năm: Đây kiểu so sánh ba năm bất kỳ, ta phải nhập thêm ba thông tin năm ta cần so sánh (năm đầu, năm năm cuối) So sánh tháng năm: Đây cách so sánh ba tháng năm, với mục đích xem tháng có người mắc bệnh nhiều Tại ta cần nhập thêm thông tin tháng mà cần so sánh (tháng đầu, tháng tháng cuối) cuối năm ta cần muốn so sánh So sánh tháng năm: Đây cách so sánh tháng năm với tháng năm khác, với mụch đích xem tỷ lệ mắc bệnh tháng năm khác có thay đổi Tại ta cần nhập thêm thông tin năm cần so sánh (năm đầu, năm gữa năm cuối) cuối tháng bạn muốn so sánh Tổng hợp: Chương trình thống kê có bệnh điều trị bệnh viện loại bệnh điều trị lần năm xuất dạng bảng Excel theo quý Chương trình hỗ trợ tổng hợp theo năm hay la tất năm có hồ sơ (dữ liệu) Chúng ta xem hướng dẫn phần Giúp Đỡ chương trình 71 4.3.2 Giao diện chương trình Dưới số giao diện chương trình Giao diện phần Giúp Đỡ chương trình Hình 18: Giao diện “Giúp Đỡ” chương trình 72 Hình 19: Giao diện vẽ theo kiểu hình bánh với bệnh Lao phổi, xác nhận soi đờm có không lấy đờm (A15.0) lấy số liệu năm 2005 2006 Hình 19: Giao diện vẽ theo kiểu hình cột với bệnh Lao phổi, xác nhận soi đờm có không lấy đờm (A15.0) lấy số liệu năm 2005 2006 73 4.4 Một số đoạn code chương trình File Form1.cs private void Ve_Click(object sender, EventArgs e) { Graphics gra = this.VeBieuDo.CreateGraphics(); Pen pen = new Pen(Color.Blue); Pen pen1 = new Pen(Color.Red); Pen pen2 = new Pen(Color.DarkRed); Font fontRegular = Font; Font font = new Font(fontRegular, FontStyle.Regular); Font font1 = new Font(fontRegular, FontStyle.Bold); Brush bru = new SolidBrush(Color.AliceBlue); Brush bru1 = new SolidBrush(Color.Black); Point pt1=new Point(50,350); Point pt2=new Point(400,350); String str = (""); String str1 = (""); String benho = (""); Rectangle rect=new Rectangle(50,400,40,20); Rectangle rec = new Rectangle(50, 100, 400, 200); Rectangle re = new Rectangle(50, 105, 400, 200); int i = 0, j = 0, cx = 0, cy = 0, gt0 = 0, gt1 = 0, gt2 = 0, a = 0; int iTatol = 0; if ((imabenh.Text == "") || imabenh.Text == "Mã Bệnh") In(); mabenh = imabenh.Text; mabenh = mabenh.Trim(); nam = inam.Text; namg = inamg.Text; namc = inamc.Text; thang = ithang.Text; thangg = ithangg.Text; thangc = ithangc.Text; gocbd = igocbd.Text; connec = new connec(); benho = con.getDatakt(mabenh); benho = benho.Trim(); if (benho != "") { gra.Clear(Color.White); float fAngle = 0, fSweep; fAngle = (float)Convert.ToDouble(gocbd); if (giuaCacThangTrongNamToolStripMenuItem.Checked == true) { gt0 = con.getData1(mabenh, nam, thang); gt1 = con.getData1(mabenh, nam, thangg); gt2 = con.getData1(mabenh, nam, thangc); } else if (giuaThangTrongCacNamToolStripMenuItem.Checked == true) 74 { gt0 = con.getData1(mabenh, nam, thang); gt1 = con.getData1(mabenh, namg, thang); gt2 = con.getData1(mabenh, namc, thang); } else { gt0 = con.getData(mabenh, nam); gt1 = con.getData(mabenh, namg); gt2 = con.getData(mabenh, namc); } if ((gt0 + gt1 + gt2) == 0) MessageBox.Show("Không có mắc bệnh " + benho + " thời gian !"); else { gra.DrawString("Biểu đồ bệnh " + benho + " !", font1, bru1, 30, 30); int[] aiValues ={ gt0, gt1, gt2 }; if (hinhBanhToolStripMenuItem.Checked == true) { foreach (int iValue in aiValues) iTatol += iValue; for (cx = 0; cx < 40; cx++) { j = 0; re = new Rectangle(50, 140 - cx, 400, 200); foreach (int iValue in aiValues) { fSweep = 360f * iValue / iTatol; switch (j) { case 0: pen = new Pen(Color.BlueViolet); break; case 1: pen = new Pen(Color.Cyan); break; default: pen = new Pen(Color.LimeGreen); break; } gra.DrawPie(pen, re, fAngle, fSweep); fAngle += fSweep; j++; } } i = 0; foreach (int iValue in aiValues) { 75 fSweep = 360f * iValue / iTatol; switch (i) { case 0: bru = new SolidBrush(Color.BlueViolet); str = (gt0.ToString()); if (giuaCacThangTrongNamToolStripMenuItem.Checked == true) str1 = "Thang " + thang + ""; else str1 = nam; break; case 1: bru = new SolidBrush(Color.Cyan); str = (gt1.ToString()); if (giuaCacThangTrongNamToolStripMenuItem.Checked == true) str1 = "Thang " + thangg + ""; else str1 = namg; break; default: bru = new SolidBrush(Color.LimeGreen); str = (gt2.ToString()); if (giuaCacThangTrongNamToolStripMenuItem.Checked == true) str1 = "Thang " + thangc + ""; else str1 = namc; break; } gra.FillPie(bru, rec, fAngle, fSweep); gra.DrawPie(pen1, rec, fAngle, fSweep); gra.DrawPie(pen2, 50, 140, 400, 200, fAngle, fSweep); fAngle += fSweep; i++; rect = new Rectangle(50, 400 + cy, 40, 20); gra.FillRectangle(bru, rect); gra.DrawString(str, font, bru1, 120, 400 + cy); gra.DrawString(str1, font, bru1, 150, 400 + cy); cy = cy + 35; } gra.DrawLine(pen2, 250, 240, 250, 200); } else { gra.DrawLine(pen, pt1, pt2); gra.DrawLine(pen, 50, 350, 50, 100); foreach (int iValue in aiValues) { switch (a) { 76 case 0: bru = new SolidBrush(Color.BlueViolet); cx = gt0; str = (gt0.ToString()); if (giuaCacThangTrongNamToolStripMenuItem.Checked == true) str1 = "Thang " + thang + ""; else str1 = nam; break; case 1: bru = new SolidBrush(Color.Cyan); str = (gt1.ToString()); cx = gt1; if (giuaCacThangTrongNamToolStripMenuItem.Checked == true) str1 = "Thang " + thangg + ""; else str1 = namg; break; default: bru = new SolidBrush(Color.Green); cx = gt2; str = (gt2.ToString()); if (giuaCacThangTrongNamToolStripMenuItem.Checked == true) str1 = "Thang " + thangc + ""; else str1 = namc; break; } pen = new Pen(Color.LightSteelBlue); gra.DrawLine(pen1, 101 - 10 + j, 340 - cx + 10, 101 - 10 + j + 40, 340 cx + 10); gra.DrawLine(pen1, 101 + j, 339 - cx, 101 + j + 40, 339 - cx); gra.DrawRectangle(pen1, 101 - + j, 339 - cx + 0, 40, cx); for (i = 0; i < 10; i++) gra.DrawRectangle(pen, 100 - i + j, 340 - cx + i, 40, cx); gra.FillRectangle(bru, 101 - i + j, 340 - cx + i, 40, cx); gra.DrawLine(pen1, 101 - i + j, 340 - cx + i, 101 + j, 339 - cx); gra.DrawLine(pen1, 101 - i + j + 40, 340 - cx + i, 101 + j + 40, 339 - cx); gra.DrawLine(pen1, 101 - i + j + 40, 340 + i, 101 + j + 40, 339); gra.DrawRectangle(pen1, 100 - i + j, 340 - cx + i, 40, cx); j += 80; a++; rect = new Rectangle(50, 400 + cy, 40, 20); gra.FillRectangle(bru, rect); gra.DrawString(str, font, bru1, 120, 400 + cy); gra.DrawString(str1, font, bru1, 150, 400 + cy); cy = cy + 35; } } } } else 77 { MessageBox.Show("Bạn nhập mã bệnh sai! Vui lòng nhập lãi mã bệnh"); gra.Clear(Color.White); } imabenh.Text = ""; } private void XrExcel_Click(object sender, EventArgs e) { int i = 2, quy1, quy2, quy3, quy4; int[] nhieunam ={ 2005, 2006, 2007, 2008 }; connec conn=new connec(); nam = inam.Text; Excel.Application excel = new Excel.ApplicationClass(); excel.Application.Workbooks.Add(true); excel.Visible = true; excel.Cells[1, 2] = "Tên Bệnh"; excel.Cells[1, 3] = "Mã Bệnh"; excel.Cells[1, 4] = "Quý I(Tháng 1-3)"; excel.Cells[1, 5] = "Quý II(Tháng 4-6)"; excel.Cells[1, 6] = "Quý III(Tháng 7-9)"; excel.Cells[1, 7] = "Quý IV(Tháng(10-12)"; if (dExcel==0) { excel.Cells[2, 1] = "Năm " + nam; OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MEDISOFT.mdb"); //create the command object and store the sql query OleDbCommand aCommand = new OleDbCommand("select distinct MAICD from NHAPKHOA where NGAY like '%" + nam + "%'", aConnection); aConnection.Open(); //create the datareader object to connect to table OleDbDataReader aReader = aCommand.ExecuteReader(); while (aReader.Read()) { i++; excel.Cells[i, 3] = aReader.GetString(0); excel.Cells[i, 2] = (conn.getDatakt(aReader.GetString(0))).Trim(); quy1 = conn.getData1(aReader.GetString(0), nam, "1") + conn.getData1(aReader.GetString(0), nam, "2") + conn.getData1(aReader.GetString(0), nam, "3"); quy2 = conn.getData1(aReader.GetString(0), nam, "4") + conn.getData1(aReader.GetString(0), nam, "5") + conn.getData1(aReader.GetString(0), nam, "6"); quy3 = conn.getData1(aReader.GetString(0), nam, "7") + conn.getData1(aReader.GetString(0), nam, "8") + conn.getData1(aReader.GetString(0), nam, "9"); quy4 = conn.getData1(aReader.GetString(0), nam, "10") + conn.getData1(aReader.GetString(0), nam, "11") + conn.getData1(aReader.GetString(0), nam, "12"); 78 excel.Cells[i, 4] = quy1; excel.Cells[i, 5] = quy2; excel.Cells[i, 6] = quy3; excel.Cells[i, 7] = quy4; } aReader.Close(); aConnection.Close(); excel.Columns.AutoFit(); } else if (dExcel == 1) foreach(int namExcel in nhieunam) { excel.Cells[i, 1] = "Năm " + namExcel; OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MEDISOFT.mdb"); //create the command object and store the sql query OleDbCommand aCommand = new OleDbCommand("select distinct MAICD from NHAPKHOA where NGAY like '%" + namExcel + "%'", aConnection); aConnection.Open(); //create the datareader object to connect to table OleDbDataReader aReader = aCommand.ExecuteReader(); while (aReader.Read()) { i++; excel.Cells[i, 3] = aReader.GetString(0); excel.Cells[i, 2] = (conn.getDatakt(aReader.GetString(0))).Trim(); quy1 = conn.getData1(aReader.GetString(0), namExcel.ToString(), "1") + conn.getData1(aReader.GetString(0), namExcel.ToString(), "2") + conn.getData1(aReader.GetString(0), namExcel.ToString(), "3"); quy2 = conn.getData1(aReader.GetString(0), namExcel.ToString(), "4") + conn.getData1(aReader.GetString(0), namExcel.ToString(), "5") + conn.getData1(aReader.GetString(0), namExcel.ToString(), "6"); quy3 = conn.getData1(aReader.GetString(0), namExcel.ToString(), "7") + conn.getData1(aReader.GetString(0), namExcel.ToString(), "8") + conn.getData1(aReader.GetString(0), namExcel.ToString(), "9"); quy4 = conn.getData1(aReader.GetString(0), namExcel.ToString(), "10") + conn.getData1(aReader.GetString(0), namExcel.ToString(), "11") + conn.getData1(aReader.GetString(0), namExcel.ToString(), "12"); excel.Cells[i, 4] = quy1; excel.Cells[i, 5] = quy2; excel.Cells[i, 6] = quy3; excel.Cells[i, 7] = quy4; } aReader.Close(); aConnection.Close(); i++; excel.Columns.AutoFit(); } 79 this.giuaCacNamToolStripMenuItem_Click(sender, e); } File connec.cs private int dem = 0; private string benh = ""; public int getData(string mabenh,string nam) { dem = 0; //create the database connection OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MEDISOFT.mdb"); //create the command object and store the sql query OleDbCommand aCommand = new OleDbCommand("select * from NHAPKHOA where NGAY like '%"+nam+"%'", aConnection); try { aConnection.Open(); string st1; //create the datareader object to connect to table OleDbDataReader aReader = aCommand.ExecuteReader(); while (aReader.Read()) { st1 = aReader.GetString(10); if (mabenh.Equals(st1)) dem++; } //close the reader aReader.Close(); //close the connection Its important aConnection.Close(); return dem; } //Some usual exception handling catch (OleDbException e) { Console.WriteLine("Error: {0}", e.Errors[0].Message); return 0; } } public int getData1(string mabenh, string nam,string thang) { dem = 0; //create the database connection OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MEDISOFT.mdb"); //create the command object and store the sql query 80 OleDbCommand aCommand = new OleDbCommand("select * from NHAPKHOA where NGAY like '"+ thang +"/%/" + nam + "%'", aConnection); try { aConnection.Open(); string st1; //create the datareader object to connect to table OleDbDataReader aReader = aCommand.ExecuteReader(); while (aReader.Read()) { st1 = aReader.GetString(10); if (mabenh.Equals(st1)) dem++; } //close the reader aReader.Close(); //close the connection Its important aConnection.Close(); return dem; } //Some usual exception handling catch (OleDbException e) { Console.WriteLine("Error: {0}", e.Errors[0].Message); return 0; } } public string getDatakt(string mabenh) { //create the database connection OleDbConnection aConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MEDISOFT.mdb"); //create the command object and store the sql query OleDbCommand aCommand = new OleDbCommand("select * from ICD10 ", aConnection); try { aConnection.Open(); string st1; //create the datareader object to connect to table OleDbDataReader aReader = aCommand.ExecuteReader(); while (aReader.Read()) { st1 = aReader.GetString(0); st1 = st1.Trim(); if (mabenh.Equals(st1)) benh = aReader.GetString(2); 81 } //close the reader aReader.Close(); //close the connection Its important aConnection.Close(); return benh; } //Some usual exception handling catch (OleDbException e) { Console.WriteLine("Error: {0}", e.Errors[0].Message); return benh; } } 4.5 Kết luận hướng phát triển a Ưu điểm Chương trình thống kê cách sinh động dễ dàng số người mắc bệnh khoảng thời gian xác định sẵn Chương trình hỗ trợ cách vẽ vẽ theo Dạng Hình Bánh Dạng Hình Cột giúp người thống kêt có nhìn trực quan vấn đề tim hiểu nghiên cứu Chương trình có khả tổng hợp xuất dạng file Excel Chương trình hỗ trợ kiểu so sánh mà người hay quan tâm Chương trình viết ngôn ngữ C Sharp nên chạy máy tính cài DotNetFrameWork ( Chỉ cần có file chạy chương trình ) b Nhược điểm Khả so sánh thể hạn chế Chỉ so sánh khoảng thời gian với nhau, so sánh nhiều khoảng thời gian chưa Và cách thể chưa có dạng đường nét c Hướng phát triển Tăng khoảng thời gian so sánh nhằm tạo cách nhìn tổng quan cho người sử dụng Tạo thêm chức kiểu vẽ 82 Nhận xét giáo viên hướng dẫn ……………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………… 83 Tài liệu tham khảo Kỹ thuật lập trình ứng dụng C#.NET toàn tập ( I, II, III ) – NXB Lao Động Xã Hội Tự học Microsoft Access 2003 – NXB Giao Thông Vận Tải Hội Thảo Khoa Học Ứng Dụng CNTT Trong Quản Lý Bệnh Viện – HN 2008 Một số trang Web:  http://www.csharphelp.com  http://forums.congdongcviet.com  http://forum.vietnamlab.com  http://www.manguon.com  http:// www.codeproject.com  http:// www toancausoft.com.vn 84

Ngày đăng: 04/08/2016, 08:41

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan