HealthLink là giải pháp phần mềm máy tính (Desktop Application) toàn diện phục vụ quản trị bệnh viện, phòng khám và số hóa hồ sơ bệnh án điện tử (EMR). Hệ thống được thiết kế theo tiêu chuẩn hiện đại, kết hợp sức mạnh giao diện mượt mà của Electron + React (TypeScript) và nền tảng backend ổn định, bảo mật cao từ Spring Boot (Java 21) + Microsoft SQL Server.
Dành cho người dùng muốn tham khảo nhanh luồng hoạt động và giao diện của HealthLink mà chưa có thời gian cài đặt source code.
Báo cáo thống kê thời gian thực về lưu lượng bệnh nhân, số ca khám hoàn tất, số ca đang chờ, doanh thu viện phí và biểu đồ phân bổ bệnh nhân theo chuyên khoa.
Quản lý danh sách bệnh nhân tập trung: thông tin hành chính, tiền sử bệnh án, dị ứng thuốc, bảo hiểm y tế và lịch sử các lần khám chữa bệnh chi tiết.
Không gian làm việc chuyên biệt dành cho bác sĩ trong ca trực: theo dõi danh sách bệnh nhân chờ khám, ghi nhận triệu chứng lâm sàng, chẩn đoán ICD-10, chỉ định dịch vụ/xét nghiệm và kê đơn thuốc điện tử.
Quản lý lịch hẹn khám chữa bệnh linh hoạt: phân bổ khung giờ theo bác sĩ/chuyên khoa, xác nhận trạng thái (Đã xếp lịch, Đang khám, Hoàn thành, Hủy lịch) và hạn chế trùng lịch.
Tự động tổng hợp chi phí khám, xét nghiệm và tiền thuốc; hỗ trợ thanh toán đa phương thức (Tiền mặt, Chuyển khoản, Thẻ) và xuất hóa đơn viện phí minh bạch.
Xác thực người dùng an toàn theo vai trò (Bác sĩ, Quản trị viên, Tiếp đón/Thu ngân), bảo vệ dữ liệu y tế nhạy cảm.
- Tính năng nổi bật
- Tổng quan kiến trúc
- Yêu cầu hệ thống
- Cài đặt môi trường chi tiết
- Thiết lập Database
- Cài đặt và khởi chạy dự án
- Danh sách lệnh hữu ích
- Đóng gói ứng dụng Desktop
- Khắc phục lỗi thường gặp
- Cấu trúc mã nguồn
- ⚡ Trải nghiệm Desktop Native mượt mà: Đóng gói hoàn chỉnh dạng ứng dụng Desktop chạy độc lập trên Windows với Electron.
- 📈 Dashboard điều hành thông minh: Thống kê số liệu trực quan với biểu đồ tương tác cao (Recharts).
- 🗃️ Bệnh án điện tử (EMR): Lưu trữ và tra cứu lịch sử khám bệnh, đơn thuốc, chẩn đoán nhanh chóng và bảo mật.
-
🩺 Quy trình khám bệnh khép kín: Tiếp nhận
$\rightarrow$ Khám bệnh$\rightarrow$ Chỉ định cận lâm sàng$\rightarrow$ Kê đơn$\rightarrow$ Thanh toán. - 🧾 Quản lý thanh toán chuẩn xác: Tính toán viện phí tự động, quản lý trạng thái thanh toán và xuất phiếu thu.
- 🛡️ Phân quyền chặt chẽ: Đảm bảo đúng người đúng việc theo vai trò nhân sự trong cơ sở y tế.
┌─────────────────────────────────────────────────┐
│ Electron Shell │
│ ┌───────────────────┐ ┌─────────────────────┐ │
│ │ Frontend (Vite) │ │ Backend (Spring) │ │
│ │ React 18 + TS │──│ Java 21 + Maven │ │
│ │ localhost:5173 │ │ localhost:8080 │ │
│ └───────────────────┘ └──────────┬──────────┘ │
│ │ │
│ ┌─────────▼──────────┐ │
│ │ SQL Server 2019+ │ │
│ │ HEALTHLINK_DB │ │
│ └────────────────────┘ │
└─────────────────────────────────────────────────┘
| Thành phần | Công nghệ | Cổng / Port |
|---|---|---|
| Frontend | React 18, TypeScript, Vite, Tailwind CSS v4, Lucide Icons, Recharts | 5173 |
| Backend | Spring Boot 3.2, Java 21, Spring Data JPA, Maven | 8080 |
| Database | Microsoft SQL Server (Express / Developer / Enterprise) | 1433 |
| Desktop Shell | Electron 41+, Electron Builder | – |
| Phần mềm | Phiên bản khuyến nghị | Bắt buộc |
|---|---|---|
| Node.js | v20 LTS trở lên (tối thiểu v18.18.0) |
✅ |
| pnpm / npm | pnpm v8+ hoặc npm v10+ |
✅ |
| Java JDK | JDK 21 (Eclipse Temurin / Oracle OpenJDK) |
✅ |
| Apache Maven | 3.9+ |
✅ |
| Microsoft SQL Server | 2019 trở lên hoặc SQL Server Express |
✅ |
| SSMS | SQL Server Management Studio mới nhất | 🔶 Khuyến nghị |
| Git | Phiên bản mới nhất | ✅ |
- Tải bản LTS từ nodejs.org.
- Chạy cài đặt và đảm bảo tích chọn "Add to PATH".
- Kiểm tra cài đặt:
node --version npm --version
- Tải bản JDK 21 từ Eclipse Temurin hoặc Oracle JDK 21.
- Cài đặt và tích chọn "Set JAVA_HOME variable" cùng "Add to PATH".
- Kiểm tra phiên bản:
java --version javac --version
- Tải Binary zip archive (
apache-maven-3.9.x-bin.zip) từ maven.apache.org. - Giải nén vào thư mục cố định (ví dụ
C:\Program Files\Apache\maven). - Thêm biến môi trường:
MAVEN_HOME: Đường dẫn tới thư mục giải nén Maven.- Thêm
%MAVEN_HOME%\binvàoPath.
- Kiểm tra:
mvn -v
- Tải bản SQL Server Express miễn phí từ Microsoft SQL Server Downloads.
- Mở SQL Server Configuration Manager
$\rightarrow$ SQL Server Network Configuration$\rightarrow$ Protocols for SQLEXPRESS:- Bật TCP/IP (
Enabled). - Vào IP Addresses
$\rightarrow$ mục IPAll$\rightarrow$ đặt TCP Port thành1433. - Restart service SQL Server.
- Bật TCP/IP (
- Cấu hình Mixed Mode Authentication và kích hoạt tài khoản
savới mật khẩu dự án:Pasword1234Ki.
Mở SSMS kết nối vào SQL Server và thực thi file script:
-- Mở và thực thi toàn bộ script trong file:
HealthLinkDB/HEALTHLINK_DB.sqlHoặc thực thi nhanh qua dòng lệnh command line:
sqlcmd -S localhost -U sa -P Pasword1234Ki -i HealthLinkDB/HEALTHLINK_DB.sqlThông tin cấu hình mặc định nằm trong file HealthLinkJava/src/main/resources/application.properties:
spring.datasource.url=jdbc:sqlserver://localhost:1433;databaseName=HEALTHLINK_DB;encrypt=true;trustServerCertificate=true;
spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
spring.datasource.username=sa
spring.datasource.password=Pasword1234Kigit clone https://github.com/nguyenduc024/Websitebuilder.git
cd Websitebuildernpm install
# hoặc nếu dùng pnpm:
pnpm installcd HealthLinkJava
mvn clean install -DskipTests
cd ..npm run dev:desktopLệnh này sẽ tự động build Electron main process, kiểm tra kết nối Backend (
8080) và Frontend (5173) rồi mở cửa sổ ứng dụng desktop.
npm run dev:frontend
# hoặc
npm run devTruy cập: http://localhost:5173
npm run dev:backend
# hoặc
cd HealthLinkJava && mvn spring-boot:runAPI Endpoint: http://localhost:8080
npm run dev:electronĐể tạo bộ cài đặt Windows (.exe NSIS và bản Portable):
npm run package:winFile cài đặt thành phẩm sẽ được xuất tại thư mục:
release/
├── HealthLink Setup x.x.x.exe # File cài đặt NSIS
└── HealthLink x.x.x.exe # Bản chạy trực tiếp Portable
| Lỗi | Nguyên nhân | Cách xử lý |
|---|---|---|
'mvn' is not recognized |
Chưa cấu hình Maven vào biến môi trường PATH | Thêm %MAVEN_HOME%\bin vào Path của hệ thống và khởi động lại terminal. |
java version sai lệch |
Chưa thiết lập Java 21 làm mặc định | Kiểm tra java -version và cập nhật lại biến JAVA_HOME trỏ tới thư mục JDK 21. |
| Không kết nối được Database | SQL Server chưa chạy hoặc chưa mở port 1433 | Kiểm tra SQL Server Service đã Running, TCP/IP đã enable port 1433, và tài khoản sa đã đúng password. |
| Port 8080/5173 bị chiếm dụng | Có tiến trình khác đang chạy ngầm | Tìm và dừng tiến trình bằng lệnh: netstat -ano | findstr :8080 sau đó taskkill /PID <PID> /F. |
HealthLink/
├── sample_page/ # Hình ảnh giao diện thực tế của ứng dụng
│ ├── overall.jpg # Dashboard tổng quan
│ ├── patient_record.jpg # Quản lý bệnh nhân
│ ├── doctor_dáhsboard.jpg# Bàn làm việc bác sĩ
│ ├── appointment.jpg # Lịch hẹn khám
│ ├── invoice.jpg # Viện phí & hóa đơn
│ └── login.jpg # Đăng nhập hệ thống
├── HealthLinkDB/ # Script khởi tạo cơ sở dữ liệu SQL Server
│ └── HEALTHLINK_DB.sql
├── HealthLinkJava/ # Mã nguồn Backend (Spring Boot 3 + Java 21)
│ ├── pom.xml
│ └── src/
├── src/ # Mã nguồn Frontend & Electron
│ ├── app/ # React Components, Pages, State, Routing
│ ├── assets/ # Icons, Styles, Static Assets
│ └── electron/ # Electron Main & Preload Scripts
├── index.html # Web Entry Point
├── package.json # Node.js dependencies & build scripts
└── vite.config.ts # Cấu hình Vite bundler
Dự án phát triển cho mục đích quản lý y tế và số hóa phòng khám/bệnh viện. Tham khảo thêm file ATTRIBUTIONS.md để biết thêm về các thư viện mã nguồn mở được sử dụng.





