Cấu trúc của cơ sở dữ liệu sau khi ánh xạ

Một phần của tài liệu Cổng báo cáo tổng hợp trực tuyến phục vụ HTTT chỉ đạo ngành y tế cộng đồng (Trang 71)

L ỜI MỞ ĐẦU

3.2.Cấu trúc của cơ sở dữ liệu sau khi ánh xạ

2. Thiết kế lớp

3.2.Cấu trúc của cơ sở dữ liệu sau khi ánh xạ

3.2.1. Mô hình thực thể kết hợp

Hình 3.11: Mô hình thực thể kết hợp

3.2.2. Thuyết minh cho mô hình

Các thực thể:

BÁO CÁO (REPORTFILE):

Tập tin báo cáo được tạo lập bởi người phụ trách của từng đơn vị. Các báo cáo này có thể được tạo bởi các công cụ hỗ trợ và sau đó upload lên server (và lưu thông tin vào cơ sở dữ liệu). Việc tạo lập và upload này nhằm giảm thiểu thời gian thực hiện việc gửi báo cáo từ cấp này đến cấp kia, đồng thời hỗ trợ người dùng các thao tác tìm kiếm, download, xem thông tin báo cáo các đơn vị,… một cách nhanh chóng. Mỗi tập tin báo cáo xác định đơn vị lập báo cáo (Organization Unit) và báo cáo khoảng thời gian nào (Period).

Luận văn tốt nghiệp 0112049 - 0112322

LOẠI BÁO CÁO (REPORTTYPE):

Có nhiều loại báo cáo tuỳ thuộc vào nội dung của các báo cáo. Thực tế hệ thống y tế có các loại báo cáo như Báo cáo tháng, báo cáo quý, báo cáo năm,…Mỗi báo cáo khi upload phải xác định loại của báo cáo.

GIAI ĐOẠN (PERIOD):

Mỗi giai đoạn (period) xác định khoảng thời gian báo cáo. Mỗi giai đoạn xác định thời điểm đầu và thời điểm cuối để báo cáo các thông tin, số liệu. Tuỳ thuộc vào từng loại (periodtype) mà sẽ xác định khoảng thời gian, có thể là 1 tháng, 3 tháng, hoặc 1 năm,…

LOẠI GIAI ĐOẠN (PERIODTYPE):

Mỗi giai đoạn thuộc về một loại giai đoạn nhất. Với từng loại giai đoạn, dùng để xác định khoảng thời gian cho giai đoạn.

ĐƠN VỊ (ORGANIZATIONUNIT):

Thực thể đơn vị thể hiện cho 1 đơn vị y tế ngoài thực tế. Cấu trúc đơn vị gồm các cấp quốc gia, thành phố, quận/huyện, phường xã. Mỗi đơn vị cũng có mối quan hệ với một đơn vị khác. Một đơn vị thuộc về một đơn vị quản lý cấp trên duy nhất và có thể có nhiều đơn vị cấp con. Mỗi tháng hoặc tương ứng từng khoảng thời gian yêu cầu báo cáo, các đơn vị tổng hợp báo cáo và upload lên server xem như một hình thức gửi báo cáo cho cấp trên.

NHÓM ĐƠN VỊ (ORGANIZATIONUNITGROUP):

Mỗi đơn vị thuộc về một nhóm đơn vị (hay còn gọi là cấp của đơn vị) duy nhất. Có nhiều nhóm đơn vị như Nhóm cấp thành phố, cấp phường xã,…

NGƯỜI DÙNG (USER):

Mỗi người khi sử dụng hệ thống phải có một tài khoản với tên đăng nhập và

mật khẩu đăng nhập. Mỗi người dùng mới nếu muốn sử dụng phải đăng kí với

người quản trị để được cấp tài khoản. Mỗi người dùng sẽ xác định thuộc nhóm

người dùng nào (Group) và là nhân viên của đơn vị nào (Organization Unit). Mỗi

người dùng có quyền thao tác với hệ thống với các mức khác nhau, tuỳ thuộc nhóm người dùng nào.

Luận văn tốt nghiệp 0112049 - 0112322

NHÓM NGƯỜI DÙNG (GROUP):

Nhóm người dùng được định nghĩa bởi Admin và xác định cấp (level) của từng nhóm và được mô tả thông tin (description) về nhóm người dùng này. Ứng với từng nhóm sẽ có các quyền thao tác khác nhau trên hệ thống.

QUYỀN (ROLE):

Quyền người dùng được định nghĩa tương ứng với từng thao tác(Action)

được xây dựng trong chương trình. Mỗi nhóm người dùng không được cấp quyền hoặc có thể cấp quyền thực hiện được thực hiện nhiều thao tác. Những người dùng thuộc nhóm nào thì sẽ đựơc thực hiện các thao tác tương ứng với quyền của nhóm đó.

LOẠI QUYỀN (ROLETYPE):

Loại quyền liên quan đến user control thể hiện trên giao diện chương trình. Một loại quền khi định nghĩa sẽ xác định các quyền chứa trong đó. (adsbygoogle = window.adsbygoogle || []).push({});

Luận văn tốt nghiệp 0112049 - 0112322

3.2.3. Mô hình quan hệ

Luận văn tốt nghiệp 0112049 - 0112322

4. Thiết kế giao diện

4.1. Sơ đồ liên kết các trang

Luận văn tốt nghiệp 0112049 - 0112322

4.2. Nội dung và thiết kế các trang chức năng chính. 4.2.1. Đăng nhập và gởi đăng kí người dùng. 4.2.1. Đăng nhập và gởi đăng kí người dùng.

Hình 3.14: Màn hình đăng nhập

Mô tả:

¾ (1) Chọn ngôn ngữ hiển thị trên trang. Hỗ trợ giao diện đa ngôn ngữ với 2 ngôn ngữ: tiếng Việt và tiếng Anh.

¾ (2) “Đăng nhập” nếu người dùng đã được cấp tài khoản (tên đăng nhập

và mật khẩu).

¾ (3) “Đăng kí người dùng” nếu người dùng chưa có tài khoản đăng nhập

và muốn cung cấp thông tin để đăng kí một tài khoản. Các sự kiện cần xử lý:

Stt Sự kiện Xử lý

1 Trước khi màn hình đăng nhập được load

Lấy tất cả các đơn vị dữ liệu từ sơ sở dữ liệu, hỗ trợ cho chức năng “đăng kí người dùng”

Luận văn tốt nghiệp 0112049 - 0112322

chương trình sẽ chuyển đổi ngôn ngữ theo

ngôn ngữ chọn tương ứng.

3 Nhấn nút “Đăng ký” Tất cả các thông tin về người dung cung cấp

khi đăng ký được ghi nhận vào cơ sở dữ liệu Tuy nhiên tài khoản này chưa được kích hoạt, sau khi được người quản trị kích hoạt người dùng mới có thể đăng nhập vào hệ thống bằng tài khoản này.

4 Nhấn nút “Đăng nhập” Tên đăng nhập và mật khẩu được kiểm tra

xem có tài khoản này đúng và đã được kích

hoạt chưa.

Nếu tài khoản này đúng, sẽ được lưu vào

session.

Nếu tài khoản không đúng, sẽ thông báo lỗi.

Luận văn tốt nghiệp 0112049 - 0112322

4.2.2. Trang chủ (adsbygoogle = window.adsbygoogle || []).push({});

Hình 3.15: Trang chủ

Mô tả:

¾ (1) “Trở ra”: Thoát khỏi hệ thống

¾ (2) “Đổi mật khẩu”: Hỗ trợ người dùng thay đổi mật khẩu đăng nhập

vào hệ thống.

¾ (3) Các thao tác hỗ trợ cho người quản trị (quản lí người dùng, quản lí hệ thống, lập báo cáo, bảo trì cơ sở dữ liệu)

¾ (4) Liên kết đến các trang khác cùng dự án HISP

¾ (5) Hố trợ các thao tác liên quan đến hoạt động y tế: tìm kiếm, upload các báo cáo y tế.

Luận văn tốt nghiệp 0112049 - 0112322

Stt Sự kiện Xử lý

1 Trước khi trang chủ được

hiển thị

Khi đăng nhập thành công, người dùng đăng

nhập được lưu xuống session và được kiểm

tra quyền thông qua quyền của nhóm người dùng mà người dùng đó thuộc về.

Tương ứng với quyền của người dùng mà các thao tác trên trang được cho phép hay không cho phép.

2 Liên kết “Trở ra” Người dùng thoát khỏi hệ thống.

Thông tin lưu trữ vể người dùng trên session sẽ được xoá.

3 Liên kết “Thay đổi mật

khẩu”

Lấy thông tin (tên đăng nhập và mật khẩu) của người dùng hiện tại từ session.

Chuyển sang trang thay đổi mật khẩu để nhận và kiểm tra mật khẩu mới.

Người dùng phải nhập lại mật khẩu cũ để

kiểm tra và nhập 2 lần mật khẩu mới để xác

nhận.

Khi người dùng đồng ý thay đổi mật khẩu, hệ thống sẽ kiểm tra mật khẩu cũ và xác nhận mật khẩu mới. Nếu mật khẩu hợp lệ sẽ cập nhật lại mật khẩu mới cho người dùng.

4 Liên kết “Quản lí người

dùng”

Chuyển sang trang quản lí người dùng. Cho phép thực hiện các thao tác Thêm mới tài khoản, Tra cứu người dùng, hoặc kích hoạt các tài khoản mà người dùng đã đăng kí. Chỉ được thao tác trên các người dùng của đơn vị y tế của họ.

Luận văn tốt nghiệp 0112049 - 0112322 (adsbygoogle = window.adsbygoogle || []).push({});

Các người dùng được thêm mới là những người dùng của cùng đơn vị y tế với người quản lí đang đăng nhập và thuộc nhóm người

dùng có cấp thấp hơn cấp của người đang

đăng nhập

5 Liên kết “Quản trị hệ

thống”

Chuyển sang trang Quản trị hệ thống. Cho phép thực hiện các thao tác liên quan đến Nhóm người dùng: Thêm mới nhóm người dùng, phân quyền cho nhóm người dùng, Phục hồi các báo cáo đã bị xoá.

6 Liên kết “Bảo trì cơ sở dữ

liệu”

Chuyển sang trang Bảo trì cơ sở dữ liệu. Cho phép thực hiện các thao tác liên quan đến dữ liệu: Giai đoạn, loại giai đoạn, cấu trúc đơn vị y tế, loại báo cáo. Đây là các trường liên quan đến các thao tác và các dữ liệu khác của hệ thống nên ít thay đổi.

7 Các liên kết:

“Ward Paitent module” “Report engine”

“Hisp home”

Cho phép liên kết đến các trang khác của

cùng dự án HISP.

Hisp home: Trang chủ của Hisp

Ward Paitent mô đun: Quản lí bệnh nhân

8 Liên kết “Tìm kiếm báo

cáo”

Liên kết đến trang tìm kiếm báo cáo. Cho

phép người dùng tra cứu thông tin, nội dung báo cáo theo các thông tin cung cấp.

9 Liên kết “Upload” Liên kết đến trang Upload báo cáo. Cho phép

người dùng upload các báo cáo tương ứng với Loại báo cáo, giai đoạn báo cáo, đơn vị báo cáo,…

Các tập tin báo cáo sẽ được lưu trữ trên server và thông tin của báo cáo được lưu xuống cơ

Luận văn tốt nghiệp 0112049 - 0112322

sở dữ liệu.

Bảng 3.5: Bảng mô tả Trang chủ

4.2.3. Trang tìm kiếm báo cáo

Hình 3.16: Màn hình tìm kiếm báo cáo

Mô tả:

¾ (1) Nhận các thông tin về đơn vị báo cáo (adsbygoogle = window.adsbygoogle || []).push({});

¾ (2) Nhận các thông tin liên quan đến báo cáo như loại báo cáo, giai

đoạn báo cáo, năm báo cáo, …

¾ (3) Tra cứu báo cáo theo các thông tin đã cung cấp ¾ (4) Kết quả tra cứu

Stt Sự kiện Xử lý

Luận văn tốt nghiệp 0112049 - 0112322

cáo được hiển thị cấp.

Lấy thông tin của đơn vị y tế cấp cao nhất (Cấp quốc gia)

Từ đơn vị cấp cao nhất sẽ lần lượt lấy được các đơn vị y tế cấp dưới tương ứng.

Lấy các thông tin về loại báo cáo, các giai đoạn báo cáo (khoảng thời gian báo cáo) 2 Chọn các thông tin tra cứu Người dùng có thể cung cấp các thông tin cần

tìm kiếm như: Đơn vị y tế, loại báo cáo, giai đoạn.

Hoặc người dùng có thể để tìm kiếm mặc định với tất cả đơn vị y tế hoặc với tất cả các loại, giai đoạn.

3 Nhấn nút “Tra cứu” Hệ thống sẽ tìm kiếm các báo cáo theo các thông tin mà người dùng đã cung cấp

Danh sách các báo cáo tìm được sẽ hiển thị bên dưới và được chia theo trang tuỳ thuộc vào số lượng các báo cáo tìm được.

Danh sách các báo cáo này chỉ cung cấp các thông tin liên quan đến báo cáo như: Đơn vị, loại báo cáo,… Muốn xem nội dung báo cáo hoặc tải báo cáo về, người dùng phải thực hiện thao tác xem, tải về.

4 Liên kết “Tải về” Hỗ trợ người dùng tải các báo cáo đã tìm

được về máy.

5 Nhấn nút “Xoá” Người dùng có thể xoá các báo cáo tìm được.

Tuy nhiên, để thực hiện được các thao tác này (tra cứu, xoá hoặc tải báo cáo), người dùng phải được cấp quyền thao tác tương ứng với

Luận văn tốt nghiệp 0112049 - 0112322

từng thao tác.

Nếu người dùng không có quyền thực hiện thao tác nào thì hiển thị của liên kết đó được ẩn đi, và có hiển thị thông báo “không thực hiện được thao tác này”.

Bảng 3.6: Bảng mô tả màn hình Tìm kiếm báo cáo

4.2.4. Trang phân quyền sử dụng hệ thống.

(5) (1) (2) (3) (4) Hình 3.17: Màn hình phân quyền hệ thống Mô tả:

¾ (1) Chọn nhóm người dùng để phân quyền.

¾ (2) Nhóm các quyền không thuộc (chưa được cấp) nhóm người dùng

này.

Luận văn tốt nghiệp 0112049 - 0112322

¾ (4) Chọn các quyền cho nhóm người dùng.

¾ (5) Chấp nhận cấp cho nhóm người dùng các quyền đã xác định. (adsbygoogle = window.adsbygoogle || []).push({});

Stt Sự kiện Xử lý

1 Trước khi trang phân quyền nhóm người dùng được hiển thị

Lấy tất cả các nhóm người dùng, để hiển thị trên danh sách các nhóm người dùng.

2 Khi trang hiển thị Mặc định hiển thị đơn vị được chọn là đơn

vị của người dùng đang đăng nhập.

Lấy danh sách 2 nhóm quyền: Nhóm quyền mà nhóm người dùng đã được cấp và Nhóm quyền mà nhóm người dùng chưa được cấp.

3 Nhấn nút “>>” Thêm một quyền cho nhóm người dùng.

4 Nhấn nút “<<” Xoá một quyền đã cấp cho nhóm người

dùng

5 Nhấn nút “Chấp nhận” Hệ thống sẽ cập nhật lại danh sách các quyền đã được cấp cho nhóm người dùng.

Luận văn tốt nghiệp 0112049 - 0112322

4.2.5. Trang kết xuất báo cáo.

(1) (2)

(3)

Hình 3.18: Màn hình kết xuất báo cáo

Mô tả:

¾ (1) Cung cấp các thông tin về báo cáo cần lập (kết xuất)

¾ (2) Chọn tập tin mẫu báo cáo

¾ (3) Kết xuất báo cáo

Các sự kiện xử lý:

Stt Sự kiện Xử lý

1 Trước khi trang kết xuất báo cáo được hiển thị

Lấy tất cả các đơn vị theo các cấp, loại giai đoạn. Tương ứng với từng loại giai đoạn sẽ hiển thị các giai đoạn

2 Khi trang hiển thị Mặc định hiển thị đơn vị được chọn là đơn

vị của người dùng đang đăng nhập.

3 Nhấn nút “Browse” Xác định tập tin mẫu báo cáo. Đây là những

Luận văn tốt nghiệp 0112049 - 0112322

cầu nội dung và hình thức báo cáo.

4 Nhấn nút “Lập báo cáo” Từ các thông tin mà người dùng đã xác

định, hệ thống sẽ tìm kiếm các dữ liệu phù hợp để tổng hợp thành báo cáo theo mẫu đã chọn. (adsbygoogle = window.adsbygoogle || []).push({});

Luận văn tốt nghiệp 0112049 - 0112322

CHƯƠNG 4: GII THIU CÔNG NGH VÀ MÔI TRƯỜNG

PHÁT TRIN

Nội dung phần này chúng em xin trình bày ngắn gọn giới thiệu các công nghệ được sử dụng để phát triển report portal, vai trò của từng công nghệ và vị trí ứng dụng chúng trong kiến trúc của report portal. Phần nghiên cứu chi tiết từng công nghệ chúng em xin trình bày trong phần phụ lục.

1. Spring framework

1.1. Lí do sử dụng Spring?

Spring là một framework hiện rất được sử dụng phổ biến trên thế giới. Đặc điểm nổi trội của Spring nằm ở tính gọn nhẹ, cung cấp khả năng quản lí các

dependency linh hoạt, thêm nữa Spring có hỗ trợ các công nghệ ánh xạ đối tượng

sang cơ sở dữ liệu như JDO, Hibernate và iBatis, và Spring có hỗ trợ mô hình Web MVC.

Dự án DHIS 2.0 được phát triển bao gồm 19 mô đun khác nhau, mỗi mô đun được phát triển gần như đồng thời tại nhiều quốc gia, do đó chính vì đặc điểm này mà Spring phát huy tính hiệu quả của nó.

1.2. Vấn đề Inversion of Control trong Spring

™ Khái niệm về IoC.

Inversion of Control hay Dependencies Injection ám chỉ một kĩ thuật đơn

giản trong việc cung cấp các thành phần và các ràng buộc và quản lí các ràng buộc

này trong suốt quá trình tồn tại của đối tượng. Một thành phần mà phụ thuộc vào

các ràng buộc khác được gọi là một target. Theo một cách hiểu khác, IoC cung cấp các dịch vụ mà qua đó các thành phần có thể truy xuất và tương tác đến các ràng buộc của nó. Một ví dụ đơn giản là: giả sử ta có một đối tượng A phụ thuộc vào một thể hiện của đối tượng B, theo cách truyền thống, A phải khởi tạo một thể hiện của đối tượng B bằng toán tử new. Nhưng với Spring, một thể hiện của B sẽ được cung cấp cho đối tượng A vào thời điểm thực thi. Điều này có nghĩa là Spring hay chính

Luận văn tốt nghiệp 0112049 - 0112322

xác hơn là IoC cung cấp cho đối tượng tất cả các ràng buộc, các phụ thuộc của chúng mà không cần đối tượng phải tự tạo các thể hiện cho các ràng buộc đó.

Inversion of Control được chia thành hai thành phần phụ: Dependency Injection and Dependency Lookup. Với Dependency Lookup, một thành phần hay một đối tượng sẽ yêu cầu các ràng buộc hoặc các phụ thuộc của mình trong khi đó, Dependency Injection thì ngược lại, tất cả các ràng buộc hay phụ thuộc đều được cung cấp cho đối tượng bởi một khái niệm gọi là Spring container. Dependency Lookup bao gồm hai dạng: cơ chế đẩy các ràng buộc (Dependency pull) và cơ chế tra cứu các ràng buộc theo ngữ cảnh (Contextualized Dependency Lookup). Để so sánh sự tiện lợi và cách thức kiểm soát các thành phần và ràng buộc của các dạng này, ta xét một ví dụ sau: giả sử ta có một interface tên là MessageOut chứa một thành phần tên là drawer, khi đó cách thức lấy thành phần này theo các dạng trên như sau:

- Dependency pull:

Một phần của tài liệu Cổng báo cáo tổng hợp trực tuyến phục vụ HTTT chỉ đạo ngành y tế cộng đồng (Trang 71)