5. Mục tiêu cần đạt đƣợc
1.6.2. Node Package Manager (NPM)
1.6.2.1. Giới thiệu về npm
Được viết tắt bởi Node Package Manager (Trình quản lý gói của Node.js). Nó vừa là một trình quản lý gói vừa là một hệ thống phân tán phục vụ cho Node.js. Mục đích chính của nó là tạo ra và phân phối các gói Node, các module qua internet sử dụng dòng lệnh. Với npm chúng ta có thể dễ dàng tìm các module một cách tự động qua mạng. Chỉ với một câu lệnh, ta có thể tải, cài và sử dụng các module [3].
1.6.2.2. Định dạng gói cài NPM
Một gói cài npm miêu tả cấu trúc thư mục của nó ở trong file package.json. Nó bao gồm tên gói, phiên bản, cấu trúc các cấp của thư mục bên trong gói cài, các module nào cần thiết, phụ thuộc cần phải cài trước.
Một file package.json đơn giản nhất sẽ có cấu trúc như dưới: { name: "PackageA", version: "1.0", main: "mainModuleName", modules: { "module1": "abc/module1", "module2": "abc/module2"
SV: Trần Văn Vĩnh-Lớp 10CNTT4 Trang 20 }
}
Hai thẻ quan trọng nhất trong file này là thẻ name và thẻ version. Thẻ name sẽ miêu tả tên của gói và được dùng để tìm gói dễ dàng hơn.
#npm search packageName
Ở đây package name chính là tên trong thẻ name. Thẻ version là thẻ khai báo tên phiên bản của gói cài. Mặc định npm nếu không có các tham số nó sẽ tải gói cài với phiên bản mới nhất.
Trong một module trong Node.js cũng có thể đi kèm các module phụ thuộc nó. Khai báo trong file json thì npm sẽ tự động cài các module khác đi kèm với module đó. Khai báo các gói phụ thuộc như sau:
"dependencies": { "one": "1.0 - 2.5" "two": ">= 0.9 <2.3" } Ngoài ra còn các tham số khác:
"description": "module của tôi" "homepage" : "http://localhost" "author" dung_b1991
1.6.2.3. Sử dụng NPM
Mặc định npm tìm các gói từ trên Internet và chính xác hơn là từ trang chủ http://npmjs.org. Nếu biết rõ tên module thì ta dùng câu lệnh sau:
SV: Trần Văn Vĩnh-Lớp 10CNTT4 Trang 21 Nhưng nếu bạn không nhớ đầy đủ tên module mà chỉ nhớ một phần tên thì sao. Ngoài việc vào trang http://search.npmjs.org thì bạn có thể dùng npm để cài.
#npm search key_name
Sau khi cài đặt module, để tìm kiếm tài liệu hướng dẫn, trang chủ của module đó, hoặc thông tin chi tiết về module này thì ngoài việc vào file package.json của chính module đó, ta có thể dùng npm:
#npm view moduleName
Nếu muốn tìm chi tiết hơn ví dụ là tìm trang chủ hay phiên bản của module: #npm view moduleName version
1.6.3. Express Framework
Express là một web module cho Node.js. Các web app thường dùng chung một số cấu trúc nhất định nên ta có thể lập trình và viết app nhanh hơn khi sử dụng module Express.
Với Express ta có thể tạo:
Website quảng cáo đơn giản
Thư viện JSON
Web app phức tạp Ưu điểm của Express:
Trong module Express đã có sẵn các chức năng như: routing, templating nên ta không cần phải tốn thời gian viết code cho những phần này.
Để cài đặt Express ta có thể dùng lệnh sau:
#npm install -g express Cấu trúc của 1 Express:
app.js: là tập tin chương trình ta sử dụng để khởi động, nó chứa các lệnh khởi tạo chương trình.
SV: Trần Văn Vĩnh-Lớp 10CNTT4 Trang 22 trình của chúng ta sử dụng (Những module này được liệt kê trong tập tin package.json).
package.json: là một tập tin chứa các thông tin về các module mà chương trình của ta sử dụng. Tập tin này có thể chứa các thông tin như: tên chương trình, tác giả, url,...
public: là thư mục chứa các tập tin mà client có thể lấy trực tiếp. Ta có thể thêm các tập tin CSS, JavaScript và các hình ảnh vào mục này. Thư mục không chứa các tập tin server script, đây là cách làm tăng tính bảo mật.
routes: là một thư mục chứa các đường dẫn.
views: là thư mục chứa các tập tin layout cho chương trình.
1.6.4. Node-mysql
Node-mysql là một module của Node.js, cho phép chúng ta kết nối tới cơ sở dữ liệu giữa MySQL bằng Node.js.
Ta có thể cài đặt node-mysql theo cú pháp như sau: #npm install node-mysql
Để sử dụng nó chúng ta sẽ khai báo như sau: var mysql = require('mysql');
var connection = mysql.createConnection({ host: 'localhost',
user: 'root',
password: 'mypassword', });
connection.connect();
connection.query('SELECT * FROM table', function(err, rows, fields) { if (err) throw err;
SV: Trần Văn Vĩnh-Lớp 10CNTT4 Trang 23 console.log(rows);
});
connection.end();
1.7. MySQL
Sự bùng nổ của công nghệ thiết kế website đưa đến sự thay thế website tĩnh bằng website động. Website động tạo ra cho người dùng khả năng tương tác với nó, đồng thời cũng giúp người chủ website có thể quản lý nội dung trên website dễ dàng và linh hoạt hơn. Một website động cần phải có cơ sở dữ liệu (database), là nơi lưu trữ, tổ chức và phân loại toàn bộ những thông tin trên website một cách có hệ thống.
1.7.1. Khái niệm
Hình 1.1: Biểu tượng MySQL server
MySQL là hệ quản trị cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet.
SV: Trần Văn Vĩnh-Lớp 10CNTT4 Trang 24 Có thể download tại địa chỉ: http://www.mysql.com/downloads/
1.7.2. Lý do nên chọn MySQL
MySQL là phần mềm miễn phí hoàn toàn, ổn định và tính an toàn cao. Nó có một số ưu điểm nổi bật như:
● Tính linh hoạt
Máy chủ cơ sở dữ liệu MySQL cung cấp đặc tính linh hoạt, có sức chứa để xử lý các ứng dụng được nhúng sâu với dung lượng chỉ 1MB để chạy các kho dữ liệu đồ sộ lên đến hàng terabytes thông tin. Sự linh hoạt về nền tảng là một đặc tính lớn của MySQL với tất cả các phiên bản của Linux, Unix, và Windows đang được hỗ trợ.
● Tính thực thi cao
Kiến trúc storage-engine (công cụ lưu trữ) cho phép các chuyên gia cơ sở dữ liệu cấu hình máy chủ cơ sở dữ liệu MySQL đặc trưng cho các ứng dụng đặc thù. Dù ứng dụng là một hệ thống xử lý giao dịch tốc độ cao hay website dung lượng lớn phục vụ hàng triệu yêu cầu mỗi ngày, MySQL có thể đáp ứng khả năng xử lý những đòi hỏi khắt khe nhất của bất kì hệ thống nào. Với các tiện ích tải tốc độ cao, đặc biệt bộ nhớ caches, và các cơ chế xử lý nâng cao khác.
● Có thể sử dụng ngay
Sự đáng tin cậy cao và tính “sử dụng ngay” là những tiêu chuẩn đảm bảo của MySQL. MySQL đưa ra nhiều tùy chọn có thể dùng ngay từ cấu hình tái tạo server/client tốc độ cao, để các nhà phân phối thứ 3 đưa ra những giải pháp có thể dùng ngay duy nhất cho server cơ sở dữ liệu MySQL.
● Hỗ trợ giao dịch mạnh
MySQL đưa ra một trong số những công cụ giao dịch cơ sở dữ liệu mạnh nhất trên thị trường. Các đặc trưng bao gồm hỗ trợ giao dịch ACID hoàn thiện ( Atomic – tự động, Consistent – thống nhất, Isolated – độc lập, Durable – bền vững), khóa mức dòng không hạn chế, khả năng giao dịch được phân loại, và hỗ trợ giao dịch đa dạng (multi- version) mà người đọc không bao giờ gây trở ngại cho người viết và ngược lại. Tính
SV: Trần Văn Vĩnh-Lớp 10CNTT4 Trang 25 toàn vẹn của dữ liệu cũng phải được bảo đảm trong suốt quá trình server có hiệu lực, các mức giao dịch độc lập được chuyên môn hóa, và phát hiện khóa chết ngay lập tức.
● Nơi lưu trữ Website và dữ liệu đáng tin cậy
MySQL là nhà máy chuẩn cho các websites phải trao đổi thường xuyên vì nó có công cụ xử lý tốc độ cao, khả năng chèn dữ liệu nhanh, và hỗ trợ mạnh cho các chức năng chuyên dụng của website như tìm kiếm văn bản nhanh. Những tính năng này cũng được áp dụng cho môi trường lưu trữ dữ liệu mà MySQL tăng cường đến hàng terabyte cho các server đơn.
● Chế độ bảo mật dữ liệu mạnh
Vì bảo mật dữ liệu cho một công ty là công việc số một của các chuyên gia về cơ sở dữ liệu, MySQL đưa ra tính năng bảo mật đặc biệt chắc chắn dữ liệu sẽ được bảo mật tuyệt đối. Trong việc xác nhận truy cập cơ sở dữ liệu, MySQL cung cấp các kĩ thuật mạnh mà chắc chắn chỉ có người sử dụng đã được xác nhận mới có thể truy nhập được vào server cơ sở dữ liệu, với khả năng này để chặn người dùng ngay từ mức máy khách là điều có thể làm được.
● Dễ dàng quản lý
MySQL cài đặt khá nhanh với thời gian ở mức trung bình từ lúc tải phần mềm đến khi cài đặt hoàn thành chỉ mất chưa đầy 15 phút. Điều này đúng cho dù nền tảng là Microsoft Windows, Linux, Macintosh hay Unix. Khi đã được cài đặt, tính năng tự quản lý như tự động mở rộng không gian, tự khởi động lại, và cấu hình động sẵn sàng cho người quản trị cơ sở dữ liệu làm việc.
1.8. jQuerymobile
1.8.1. Giới thiệu về jQuerymobile
jQuerymobile là một thư viện web dành riêng cho smartphones & tablets. jQuerymobile đã được tối ưu với việc sử dụng cảm ứng chạm trên điện thoại. Được xây dựng với thư viện jQuery của JavaScript và jQuery UI, jQuerymobile làm tốt việc hiển
SV: Trần Văn Vĩnh-Lớp 10CNTT4 Trang 26 thị giao diện người dùng trên tất cả các hệ điều hành điện thoại thông dụng (iOS, android, BlackBerry OS, Windows Phone, symbian...).
1.8.2. jQuerymobile hỗ trợ các nền tảng di động
jQuery mobile hiện đang cung cấp sự hỗ trợ cho các nền tảng di động sau đây:
● Apple® iOS: iPhone, iPod Touch, iPad (tất cả các phiên bản).
● Android™: tất cả các thiết bị (tất cả các phiên bản).
● Blackberry®: Torch (phiên bản 6).
● Palm™: WebOS Pre, Pixi.
SV: Trần Văn Vĩnh-Lớp 10CNTT4 Trang 27
CHƢƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2.1. Phân tích bài toán
Website hỗ trợ khám và điều trị bệnh được xây dựng nhằm hướng đến 2 đối tượng sử dụng chính là các bác sĩ tại phòng khám tư và người dùng với tư cách người bệnh.
Sau khi đăng kí tài khoản mỗi người dùng sẽ được hệ thống cung cấp cho một bệnh án online. Mọi thông tin cho các lần khám như: kết quả khám, tình hình điều trị, toa thuốc sẽ được lưu trữ vào đây. Nhờ đó tiết kiệm được thời gian và khỏi mất công lưu trữ giấy tờ. Người dùng có thể xem lại tất cả bệnh án và toa thuốc của mình trong hồ sơ bệnh án cá nhân.
Thông thường khi đi khám bệnh, người dùng sẽ được bác sĩ kê toa thuốc. Tuy nhiên người bệnh chỉ biết được tên thuốc, số lần uống, liều uống nhưng không biết được thông tin cụ thể của thuốc mình uống là như thế nào. Nếu sử dụng website, với mỗi loại thuốc người dùng có thể xem đầy đủ thông tin của thuốc như: tên, thành phần, chỉ định, chống chỉ định, hướng dẫn sử dụng, khuyến cáo và bảo quản chỉ với một click chuột.
Website cũng cung cấp thêm cho người dùng chức năng tìm phòng khám. Với chức năng này, người dùng chỉ cần chọn khu vực mình cần tìm, hệ thống sẽ đưa ra danh sách tất cả các địa chỉ phòng khám tại khu vực đó giúp cho người dùng đỡ mất thời gian tìm kiếm .
Với người dùng là bác sĩ, website cung cấp cho họ những chức năng rất tiện ích như kê toa thuốc với chức năng nhập nhanh, lưu trữ bệnh án và toa thuốc cho bệnh nhân online, không cần phải cất giữ từng lô giấy tờ như trước đây.
Website cũng cho phép bác sĩ xem lại tất cả bệnh án của bệnh nhân trên web, từ đó đưa ra giải pháp điều trị hợp lí và hiệu quả hơn.
SV: Trần Văn Vĩnh-Lớp 10CNTT4 Trang 28
2.2. Phân tích và thiết kế hệ thống 2.2.1. Sơ đồ Use Case 2.2.1. Sơ đồ Use Case
SV: Trần Văn Vĩnh-Lớp 10CNTT4 Trang 29 Mô tả Actor:
Actor Mô tả
Người dùng chưa đăng kí
Người dùng chưa đăng kí có thể đăng kí tài khoản, đăng nhập, tìm bác sĩ, tra cứu thuốc.
Bệnh nhân
Bệnh nhân có các chức năng của người dùng chưa đăng kí, ngoài ra bệnh nhân còn có thêm xem bệnh án, xem toa thuốc, xem thông tin chi tiết của thuốc có trong toa thuốc, thay đổi mật khẩu, chỉnh sửa thông tin cá nhân.
Bác sĩ Bác sĩ thừa kế tất cả các năng mà bệnh nhân có, ngoài ra bác sĩ có thêm tạo bệnh án, tạo toa thuốc, thêm thông tin về thuốc mới.
Bảng 2.1 Mô tả Actor
Mô tả Use Case
TT Use-Case Mô tả
1 Đăng kí Người dùng đăng kí tài khoản. Có 2 loại tài khoản là
tài khoản bệnh nhân và tài khoản bác sĩ.
2 Đăng nhập Người dùng đăng nhập vào hệ thống bằng tài khoản và
mật khẩu đã đăng kí.
3 Tìm bác sĩ Người dùng có thể tìm bác sĩ bằng cách chọn khu vực
và chuyên khoa cần tìm.
5 Tra cứu thuốc Người dùng có thể tra cứu thuốc theo tên.
6 Xem thông tin Người dùng có thể xem các thông tin như xem bệnh án, xem toa thuốc, xem thông tin của thuốc.
7 Chỉnh sửa thông tin
Người dùng có thể chỉnh sửa các thông tin như mật khẩu, thông tin cá nhân.
SV: Trần Văn Vĩnh-Lớp 10CNTT4 Trang 30 8 Thêm thông tin Bác sĩ có thể thêm các thông tin như bệnh án mới, toa
thuốc mới, thông tin về một loại thuốc mới. Bảng 2.2: Mô tả use case
2.2.2. Mô hình chức năng
Hình 2.2. Mô hình chức năng của hệ thống
Mô hình chức năng cho thấy được các chức năng chính trong hệ thống bao gồm: Quản lí tài khoản, xem thông tin, chỉnh sửa thông tin, thêm thông tin, tìm bác sĩ, tra cứu thuốc.
SV: Trần Văn Vĩnh-Lớp 10CNTT4 Trang 31
2.2.3. Sơ đồ phân rã các chức năng
Hình 2.3. Sơ đồ phân rã chức năng
Mô tả chi tiết các chức năng:
● Đăng kí: Để sử dụng đầy đủ các chức năng của website thì người dùng phải đăng kí tài khoản. Có 2 loại tài khoản để người dùng lựa chọn khi đăng kí là tài khoản bệnh nhân và tài khoản bác sĩ.
● Đăng nhập: Người dùng sử dụng tài khoản và mật khẩu đã đăng kí để đăng nhập vào hệ thống.
● Tìm bác sĩ: Người dùng chọn vị trí muốn tìm và chọn chuyên khoa của bác sĩ. Hệ thống sẽ đưa ra danh sách các phòng khám theo đúng địa điểm và chuyên khoa cho người dùng.
● Tra cứu thuốc: Người dùng điền tên thuốc vào, hệ thống sẽ đưa ra thông tin chi tiết của thuốc: tên, thành phần, chỉ định, chống chỉ định, công dụng, bảo quản… ● Xem bệnh án : Người dùng có thể xem lại toàn bộ các bệnh án của mình. Bác sĩ
SV: Trần Văn Vĩnh-Lớp 10CNTT4 Trang 32 ● Tạo bệnh án: Bác sĩ có thể tạo bệnh án cho bệnh nhân và lưu trữ ngay trên web. ● Xem đơn thuốc: Người dùng có thể xem lại các đơn thuốc cũ của mình. Bác sĩ
tìm và xem đơn thuốc của bệnh nhân.
● Tạo đơn thuốc mới: Bác sĩ tạo đơn thuốc mới và lưu vào hồ sơ bệnh án cho bệnh nhân. Hệ thống sẽ hỗ trợ cho việc nhập thuốc nhanh chóng hơn.
● Chỉnh sửa thông tin: Người dùng có thể chỉnh sửa các thông tin như mật khẩu, thông tin cá nhân.
2.2.4. Biểu đồ luồng dữ liệu 3 mức 2.2.4.1. Sơ đồ ngữ cảnh 2.2.4.1. Sơ đồ ngữ cảnh
SV: Trần Văn Vĩnh-Lớp 10CNTT4 Trang 33
2.2.4.2. Sơ đồ luồng dữ liệu mức đỉnh
Hình 2.5. Sơ đồ luồng dữ liệu mức đỉnh
2.2.4.3. Sơ đồ luồng dữ liệu mức dưới đỉnh
Sơ đồ mức dưới đỉnh chức năng quản lí tài khoản