Nội dung và thiết kế các trang chức năng chính

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 76)

L ỜI MỞ ĐẦU

4. Thiết kế giao diện

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.

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ủ

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

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

¾ (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.

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.

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:

public static void main (String [] args) throws Exception {

//Lấy bean factory.

BeanFactory factory = getBeanFactory();

//Lấy thành phần renderer thông qua factory trên

MessageOut messageOut = ( MessageOut) factory.getBean(“drawer”); messageOut.drawer();

}

- Contextualized Dependency Lookup:

CDL cũng tương tự như vậy. Tuy nhiên, CDL thực hiện điều đó khác một

chút so với Dependency Pull. Thay vì tìm các thành phần hoặc các ràng buộc tại một nơi nào đó trong registry, CDL thực hiện bằng cách để thành phần này bổ sung cho một interface như sau:

public interface ManagedComponent {

public void performLookup( Container container); }

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

Bằng cách bổ sung cho interface này, thành phần này sẽ được quản lí bởi container. Khi một container sẵn sàng cung cấp các thành phần cho đối tượng, nó gọi phương thức performLookup() trên từng thành phần hoặc các ràng buộc, và như thế các đối tượng chỉ cần tìm trong container để lấy các ràng buộc mà mình cần như trong ví dụ sau:

public class ContextualizeDependencyLookup implements ManagedComponent

{

private Dependency myDep;

public void performLookup( Container container) {

this.myDep = (Dependency)

container.getDependency(“myDependency”); }

}

- Constructor Dependency Injection: CDI là một dạng của DI, đây là cơ chế bổ sung các ràng buộc bằng các hàm khởi tạo. Theo đó, bản thân đối tượng khai báo một và nhiều phương thức khởi tạo mang các tham số là các ràng buộc của chúng, và IoC sẽ cung cấp các ràng buộc này cho đối tượng ngay khi chúng được khởi tạo.

public class ContructorInjection {

private DataStore dataStore;

public ContructorInjection ( DataStore dataStore) {

this.dataStore = dataStore; }

}

- Setter Dependency Injection: SDI là một dạng tương tự như CDI như thay vì thông qua các phương thức khởi tạo, việc cung cấp các ràng buộc cho đối tượng thông qua phương thức setter.

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

public class ContructorInjection {

private DataStore dataStore;

public void setDataStore ( DataStore dataStore) {

this.dataStore = dataStore; }

}

- So sánh giữa cơ chế Injection và cơ chế Lookup: mặc dù IoC bao gồm cả hai cơ chế trên và Spring đều hỗ trợ tất cả nhưng tuỳ trường hợp mà sử dụng một trong hai cơ chế trên. Nếu bạn sử dung EJB 2.0 và làm việc với J2EE container, bắt buộc bạn phải sử dung Lookup và trong Spring nếu sử dụng Injection thì “có vẻ tốt hơn”, các thành phần và các ràng buộc của chúng trở nên liên kết chặt chẽ với nhau hơn. Thêm vào đó, việc sử dụng Injection làm cho mã nguồn của chương trình trở nên linh động và đơn giản hơn. Chẳng hạn như trong ví dụ trên trong khi

Dependency pull bắt buộc phải tạo được một tham chiếu đến registry hay một nơi

nào đó chứa các denpendency hoặc đối với Contextualized Dependency Lookup thì

bắt buộc thành phần đó phải bổ sung cho một interface đặc biệt và cung cấp các

ràng buộc một cách thủ công thì ngược lại với Injection, việc duy nhất phải làm là đối tượng của bạn cho phép lấy các ràng buộc đó thông qua phương thức khởi tạo hoặc phương thức setters. Thêm một lí do nữa là việc sử dụng Lookup sẽ rất khó kiểm tra do các mức cô lập khác nhau của container nhưng với Injection tất cả chỉ là các phương thức khởi tạo và các phương thức setters.

- So sánh giữa Setter và Constructor: cơ chế Constructor đặc biệt hữu dụng khi bạn chắc chắn rằng phải có một thể hiện của các ràng buộc của đối tượng trước khi đối tượng hoặc thành phần đó được sử dụng. Tuy nhiên Spring có hỗ trợ một kĩ

thuật đảm bảo ràng các ràng buộc đều được xác định nếu sử dụng phương thức

setter và việc thể hiện của ràng buộc có tồn tại hay không không cần phải quan tâm đến nữa. Ngoài ra, cách sử dụng phương thức setter cho phép linh động hơn trong

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

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 76)

Tải bản đầy đủ (PDF)

(137 trang)