BiliTool.Vn là sản phẩm được phát triển bởi ThS.BS. Ninh Thị Phương Mai, nhằm cung cấp phiên bản tiếng Việt hỗ trợ đắc lực cho các bác sĩ sơ sinh Việt Nam trong việc quản lý và tính toán điều trị vàng da sơ sinh, tuân thủ nghiêm ngặt Phác đồ AAP 2022 (Pediatrics Vol.150 No.3) và NICE CG98.
- ✅ Máy tính ngưỡng bilirubin — nhập ngày giờ hoặc tuổi theo giờ
- ✅ Hỗ trợ 2 đơn vị — mg/dL và μmol/L (tự chuyển đổi)
- ✅ Đánh giá yếu tố nguy cơ thần kinh — G6PD, tan huyết, sepsis, albumin thấp, ETCOc
- ✅ Theo dõi xu hướng — tính tốc độ thay đổi bilirubin theo giờ
- ✅ Khuyến nghị lâm sàng bằng tiếng Việt — tự động theo AAP 2022
- ✅ Xuất báo cáo — sao chép vào HIS/EMR bằng 1 click
- ✅ API tích hợp HIS — REST API cho hệ thống bệnh viện
- ✅ Đăng nhập Gmail hoặc ẩn danh
- ✅ Responsive — hoạt động tốt trên điện thoại bác sĩ
BiliTool.Vn/
├── src/
│ ├── BiliTool.Vn.Domain/ # Business logic, engine tính toán
│ ├── BiliTool.Vn.Application/ # CQRS (MediatR), DTOs, Validators
│ ├── BiliTool.Vn.Infrastructure/ # EF Core, PostgreSQL, Auth
│ └── BiliTool.Vn.Web/ # Blazor Server UI
├── tests/
│ └── BiliTool.Vn.Domain.Tests/ # xUnit tests
├── docker/
│ ├── Dockerfile
│ └── nginx.conf
└── docker-compose.yml
- .NET 8 SDK
- Docker & Docker Compose
- Tài khoản Google Cloud (để cấu hình OAuth)
git clone <repo-url>
cd bilitool-vn
cp .env.example .env
# Chỉnh sửa .env — điền Google OAuth credentialsdocker compose up -dỨng dụng chạy tại: http://localhost:8888 (hoặc domain của bạn cấu hình qua Nginx/Reverse Proxy)
cd src/BiliTool.Vn.Web
dotnet rundotnet test tests/BiliTool.Vn.Domain.Tests/-
Tạo dự án Google Cloud tại console.cloud.google.com
-
Kích hoạt Google+ API → APIs & Services → Library → tìm "Google+ API" → Enable
-
Tạo OAuth Client ID → APIs & Services → Credentials → Create Credentials → OAuth 2.0 Client IDs
- Application type: Web application
- Name:
BiliTool.Vn - Authorized redirect URIs (thêm cả hai):
http://localhost:5050/signin-google https://your-domain.com/signin-google
-
Điền credentials vào
appsettings.json:"Authentication": { "Google": { "ClientId": "xxxxxxxxxxxx.apps.googleusercontent.com", "ClientSecret": "GOCSPX-xxxxxxxxxxxx" } }
⚠️ Không commit fileappsettings.jsoncó thật vào git. Dùng.envhoặc User Secrets. -
Khởi động lại ứng dụng — nút "Đăng nhập với Google" sẽ tự kích hoạt.
BiliTool.Vn cung cấp sẵn hai phương án tích hợp cho các kỹ sư IT bệnh viện:
- Endpoint:
POST /api/v1/bilirubin/calculate - Header bắt buộc:
X-API-Key: {khoa_tich_hop} - Content-Type:
application/json - Mẫu Request/Response: Xem chi tiết ví dụ đầy đủ và giải nghĩa các trường kết quả trả về tại trang
/tich-hop-histrên giao diện web.
Cấu hình API Keys (Bảo mật B2B):
Trong file appsettings.json, khai báo các khóa được phép gọi API (hỗ trợ đa bệnh viện/đơn vị):
"ApiSettings": {
"AllowedApiKeys": [
"bilitool_his_integration_secure_key_2026",
"your_custom_key_here"
]
}Cho phép phần mềm EMR mở trực tiếp giao diện tính toán của BiliTool.Vn và điền sẵn thông tin bệnh nhi:
GET https://bilitool.vn/may-tinh?ngaysinh=15/03/2026&giosinh=08:30&ngaymau=16/03/2026&giomau=10:00&bili=12.5&donvi=MgDl&tuoithai=38&autocalc=true
Phần mềm tuân thủ nghiêm ngặt:
"Clinical Practice Guideline Revision: Management of Hyperbilirubinemia in the Newborn Infant 35 or More Weeks of Gestation" American Academy of Pediatrics, Pediatrics. 2022;150(3):e2022058859
Lưu ý quan trọng: Phần mềm này chỉ là công cụ hỗ trợ lâm sàng và không thay thế phán đoán y khoa của bác sĩ.
| Thành phần | Công nghệ |
|---|---|
| Framework | ASP.NET Core 8, Blazor Server |
| CQRS | MediatR 12 |
| Validation | FluentValidation 11 |
| ORM | Entity Framework Core 8 |
| Database | PostgreSQL 16 |
| Auth | Google OAuth 2.0 + Cookie |
| Charts | Chart.js 4 |
| Logging | Serilog |
| Tests | xUnit + FluentAssertions |
| Deploy | Docker Compose + Nginx |