10 — Kiến Trúc Project và Kế Hoạch Triển Khai
# Kiến trúc Project và Kế hoạch Triển khai — Trợ lý AI Cơ Xương Khớp Tuổi Bạc
Ngày: 23/09/2026 | Cập nhật: v2.0
Tác giả: AI Project Architect (thực hiện từ prompt09_PROMPT_DEEP_RESEARCH_KIEN_TRUC_PROJECT.mdv2.0)
Phạm vi: Phân tích toàn bộ thư mụcResearch/(10 file, ~560 KB) vàKnowledge/(1 file + 104 chương sách, ~2.1 MB)
Bối cảnh: Đề tài nghiên cứu khoa học (NCKH) | Hạ tầng: IIS + Windows Server 2022 + MSSQL 2022
Trạng thái: Đề xuất — cần review và phê duyệt trước khi triển khai
1. Executive Summary
Dự án "Trợ lý AI hỗ trợ người cao tuổi tự chăm sóc hệ vận động" thuộc đề tài nghiên cứu khoa học của công ty Vaga. Dự án đã có nền tảng nghiên cứu rất vững: 1 báo cáo tổng thể ~70 KB với 36 nguồn quốc tế, 1 đề cương 3 phần, 1 kế hoạch 16 tuần chi tiết đến từng ngày, 2 bản triển khai Tuần 1, và ~2 MB tài liệu y khoa đã số hóa (Hướng dẫn BYT + sách ĐHYHN).
Điểm mạnh đã có:
- Scope y khoa rõ ràng (7 nhóm bệnh/vấn đề MVP)
- Kiến trúc RAG + Safety Layer đã được thiết kế
- Pipeline phân vai AI–con người với 8 vai trò AI
- 4 Gate kiểm soát (Knowledge → Technical → Clinical → Pilot)
- Khung pháp lý và đạo đức đã được khảo sát
- Hạ tầng sẵn có: Windows Server 2022 + IIS + MSSQL 2022
Gap chính cần lấp:
- Chưa có dòng code nào, chưa có repository
- Chưa có knowledge cards/taxonomy có cấu trúc (chỉ có raw markdown)
- Chưa có data pipeline (chunk → embed → vector DB)
- Chưa có UI/UX prototype
- Chưa có bộ test 100 case với gold label
- Chưa phỏng vấn người dùng/chuyên gia thật
- Chưa có bài trình bày NCKH (kickoff, báo cáo tiến độ, báo cáo cuối)
Đề xuất: Tổ chức lại workspace theo kiến trúc 6 tầng (Phần 3), tận dụng hạ tầng IIS + MSSQL hiện có, bao gồm deliverable học thuật (Phần 5), bắt đầu bằng Quick Wins AI có thể làm ngay trong tuần đầu.
2. Deep Research Findings
2.1 Tổng hợp Scope Dự án
Từ file 01 và 02, dự án có 4 giai đoạn:
| Giai đoạn | Mô tả | Trạng thái |
|---|---|---|
| MVP Nghiên cứu | Web chat + curated MSK corpus + citations + red-flag rules + 300–500 FAQ | Đang triển khai |
| Thử nghiệm cộng đồng | + Telegram + Voice + patient profile + follow-up memory + community | Kế hoạch |
| Nền tảng sức khỏe | + longitudinal profile + exercise + caregiver + clinician escalation | Tầm nhìn |
| Robot tại nhà | Voice companion + reminders + activity coaching + family | Dài hạn |
Deliverable MVP (từ file 02, mục "Đề xuất lộ trình sản phẩm"):
1. Website hỏi đáp có RAG + citations
2. Kho tri thức y khoa curated (knowledge cards)
3. Red-flag safety layer
4. 300–500 FAQ/cases có gold label
5. Clinician dashboard cơ bản
6. Bộ benchmark test độc lập
7. Báo cáo đề tài (đề cương + nhật ký + kết luận)
2.2 Gap Analysis
ĐÃ CÓ (trong Research/ và Knowledge/)
| Hạng mục | File/Thư mục | Kích thước | Chất lượng |
|---|---|---|---|
| Yêu cầu gốc + scope | 01_YEU_CAU_GOC... |
7 KB | Đầy đủ |
| Báo cáo nghiên cứu tổng thể | 02_BAO_CAO... |
70 KB | Rất chi tiết, 36 nguồn |
| Đề cương 3 phần | 03_TOM_TAT... |
14 KB | Hoàn chỉnh |
| Kế hoạch 16 tuần | 04_KE_HOACH... |
79 KB | Chi tiết đến từng ngày |
| Kế hoạch Tuần 1 (2 phiên bản) | 05, 06 |
72 KB tổng | Bóc tách task + biểu mẫu |
| Danh mục nguồn + SHA | 07_NGUON... |
16 KB | 36 nguồn có URL |
| Hướng dẫn BYT QĐ 361 | Knowledge/Huong_Dan... |
540 KB | Đã số hóa md |
| Sách ĐHYHN Tập 1 | Knowledge/DHYHN/Tap1/ |
39 chương | Đã OCR → md |
| Sách ĐHYHN Tập 2 | Knowledge/DHYHN/Tap2/ |
65 chương | Đã OCR → md |
Đặc biệt quan trọng trong Knowledge/DHYHN/Tap2/:
- 14-viem-khop-dang-thap.md (39 KB)
- 21-thoai-hoa-khop.md (24 KB) ← Trực tiếp cho MVP
- 22-loang-xuong.md (32 KB) ← Trực tiếp cho MVP
- 25-nhiem-khuan-co-xuong-khop.md (30 KB)
- 27-dinh-huong-chan-doan-dau-xuong-khop.md (29 KB) ← Red flag rules
- 28-dau-vung-that-lung.md (52 KB) ← Trực tiếp cho MVP
- 20-benh-gut.md (45 KB) ← Safety corpus
- 35-kham-benh-o-nguoi-cao-tuoi.md trong Tap1 (58 KB) ← Lão khoa
CHƯA CÓ (cần tạo)
| Hạng mục | Ưu tiên | Phụ thuộc |
|---|---|---|
| Repository/cấu trúc thư mục project | P0 | Không |
| Knowledge cards có cấu trúc JSON/YAML | P0 | Tài liệu y khoa đã có |
| Taxonomy cơ xương khớp | P0 | Nghiên cứu đã có |
| Source registry CSV | P0 | Nguồn tham khảo đã có |
| Data pipeline (chunk → embed) | P1 | Knowledge cards |
| Vector database + retrieval API | P1 | Data pipeline |
| Safety rules engine | P1 | Taxonomy + red flags |
| Web frontend (accessibility-first) | P1 | Backend API |
| Backend API server | P1 | Vector DB + Safety |
| Bộ 100 test cases với gold label | P1 | Taxonomy + bác sĩ |
| LLM integration + citation engine | P2 | Retrieval API |
| Voice STT/TTS | P2 | Backend |
| Telegram bot | P2 | Backend |
| Khảo sát người dùng | P2 | Survey design |
| Content giáo dục | P3 | Knowledge cards + duyệt |
| Community model | P3 | Content + platform |
2.3 Rủi ro và Ràng buộc
| Rủi ro | Mức | Giảm thiểu (từ nghiên cứu) |
|---|---|---|
| AI tự chẩn đoán bệnh | Rất cao | Intended use rõ: "giáo dục + tự chăm sóc + nhận biết cần khám"; không dùng từ "chẩn đoán" |
| Bỏ sót red flag | Rất cao | Safety pre-check trước RAG; oversample tình huống nguy hiểm trong test |
| Hallucination y khoa | Cao | RAG + citation check + safety post-check; không fine-tune knowledge |
| Xung đột guideline | Cao | Mỗi knowledge item có version/source/reviewer; bác sĩ giải quyết xung đột |
| Vi phạm quyền tài liệu | Trung bình | Source registry kiểm license trước khi ingest; dùng guideline mở + bác sĩ viết knowledge cards |
| Pháp lý dữ liệu cá nhân | Cao | Luật 91/2025: consent, data minimization, encryption, deletion |
| Pháp lý AI y tế | Cao | Luật CNCNS 71/2025 + Luật KCB 15/2023: rà soát intended use tại mỗi milestone |
| Voice accuracy cho người cao tuổi | Trung bình | Test trực tiếp với đối tượng; xác nhận transcript trước xử lý |
| UX không phù hợp tuổi | Trung bình | WCAG 2.2; font lớn, nút lớn, 3-4 hành động chính |
2.4 Đánh giá Tính khả thi
Nguồn lực: 1 Nghiên cứu viên fulltime (56h/tuần) + AI agent + bác sĩ part-time
Đánh giá:
- Kế hoạch 16 tuần trong file 04 là tham vọng nhưng có cấu trúc tốt
- File 06 cho thấy Tuần 1 đã được bóc tách rất chi tiết (12 deliverable)
- Rủi ro lớn nhất: bác sĩ reviewer không có đủ thời gian → bottleneck tại clinical review
- Điểm thuận lợi: AI agent có thể đảm nhận ~60% khối lượng (literature search, extraction, structuring, test generation, UI scaffolding)
- Đề xuất thực tế: Chuyển từ 16 tuần sang 8 sprint × 2 tuần, có checkpoint giữa mỗi sprint, chấp nhận MVP tối giản hơn kế hoạch gốc
3. Project Architecture — Kiến trúc Folder/File
3.1 Tree Diagram — Kiến trúc Tích hợp (file cũ + file mới)
Nguyên tắc tái cấu trúc:
- File đang có trongResearch/vàKnowledge/được di chuyển vào vị trí nghiệp vụ hợp lý
- Mỗi file cũ giữ nguyên nội dung, chỉ thay đổi vị trí
- Vị trí cũ để redirect stub (file nhỏ chứa link đến vị trí mới) để không gãy tham chiếu
- Ký hiệu:📦 CŨ= file đã có được di chuyển đến,🆕= file mới cần tạo
CXK/
├── README.md 🆕 Giới thiệu dự án, cách cài đặt, link docs
│
│
│ ══════════════════════════════════════════════════
│ TẦNG 1: TÀI LIỆU DỰ ÁN & NGHIÊN CỨU
│ ══════════════════════════════════════════════════
│
├── docs/ 🆕 Toàn bộ tài liệu dự án
│ │
│ ├── research/ 📦 CŨ ← từ Research/
│ │ ├── 00_MUC_LUC.md 📦 CŨ Research/00_MUC_LUC.md
│ │ │
│ │ ├── requirements/ Yêu cầu gốc & phạm vi
│ │ │ └── 01_YEU_CAU_GOC_VA_LICH_SU_NGHIEN_CUU.md
│ │ │ 📦 CŨ Research/01_*.md
│ │ │
│ │ ├── reports/ Báo cáo nghiên cứu
│ │ │ ├── 02_BAO_CAO_NGHIEN_CUU_TONG_THE.md
│ │ │ │ 📦 CŨ Research/02_*.md (70 KB, 36 nguồn)
│ │ │ ├── 03_TOM_TAT_DE_CUONG_NGHIEN_CUU.md
│ │ │ │ 📦 CŨ Research/03_*.md
│ │ │ └── 08_TOAN_BO_NOI_DUNG_NGHIEN_CUU.md
│ │ │ 📦 CŨ Research/08_*.md (bản gộp)
│ │ │
│ │ ├── plans/ Kế hoạch triển khai
│ │ │ ├── 04_KE_HOACH_TRIEN_KHAI_16_TUAN.md
│ │ │ │ 📦 CŨ Research/04_*.md (79 KB)
│ │ │ ├── 05_TUAN_1_KE_HOACH_VA_DAU_RA_BAN_DAU.md
│ │ │ │ 📦 CŨ Research/05_*.md
│ │ │ ├── 06_TUAN_1_TASK_CHI_TIET_VA_BIEU_MAU.md
│ │ │ │ 📦 CŨ Research/06_*.md
│ │ │ └── 10_KIEN_TRUC_VA_KE_HOACH_TRIEN_KHAI.md
│ │ │ 📦 CŨ Research/10_*.md (file này)
│ │ │
│ │ ├── references/ Nguồn tham khảo
│ │ │ └── 07_NGUON_THAM_KHAO_VA_GHI_CHU_XUAT.md
│ │ │ 📦 CŨ Research/07_*.md (36 nguồn + SHA)
│ │ │
│ │ └── prompts/ Prompt nghiên cứu
│ │ └── 09_PROMPT_DEEP_RESEARCH_KIEN_TRUC_PROJECT.md
│ │ 📦 CŨ Research/09_*.md
│ │
│ ├── project/ 🆕 Tài liệu quản lý dự án
│ │ ├── project_charter.md 🆕 Hiến chương dự án (từ nội dung file 01+02)
│ │ ├── intended_use.md 🆕 Phạm vi sử dụng — pháp lý
│ │ ├── risk_register.md 🆕 Đăng ký rủi ro
│ │ └── stakeholder_map.md 🆕 Bản đồ các bên liên quan
│ │
│ ├── architecture/ 🆕 Quyết định kiến trúc
│ │ ├── ADR-001_rag_over_finetune.md 🆕 RAG thay vì fine-tune
│ │ ├── ADR-002_safety_first.md 🆕 Safety pre/post check
│ │ ├── ADR-003_voice_first_not_only.md 🆕 Voice-first, không voice-only
│ │ └── system_architecture.md 🆕 Sơ đồ tổng thể (Mermaid)
│ │
│ ├── gates/ 🆕 Cổng kiểm soát
│ │ ├── gate_a_knowledge.md 🆕 Gate A: Knowledge
│ │ ├── gate_b_technical.md 🆕 Gate B: Technical
│ │ ├── gate_c_clinical.md 🆕 Gate C: Clinical Safety
│ │ └── gate_d_pilot.md 🆕 Gate D: Pilot/Go-live
│ │
│ ├── diary/ 🆕 Nhật ký nghiên cứu
│ │ ├── _template.md 🆕 Mẫu nhật ký
│ │ └── 2026-09-23.md 🆕 Entry đầu tiên
│ │
│ ├── reports/ 🆕 Báo cáo tiến độ
│ │ ├── weekly/
│ │ └── final/
│ │
│ ├── presentations/ 🆕 Bài trình bày NCKH
│ │ ├── kickoff/
│ │ │ ├── kickoff_outline.md 🆕 Outline bài trình bày khởi động
│ │ │ └── kickoff_slides.md 🆕 Nội dung slides (md → pptx)
│ │ ├── weekly/
│ │ │ └── weekly_progress_template.md 🆕 Template báo cáo tiến độ tuần
│ │ └── final/
│ │ ├── final_outline.md 🆕 Outline bài bảo vệ cuối
│ │ └── final_slides.md 🆕 Nội dung slides bảo vệ
│ │
│ └── legal/ 🆕 Pháp lý
│ ├── privacy_impact_assessment.md 🆕 Đánh giá tác động quyền riêng tư
│ ├── data_processing_agreement.md 🆕 Thỏa thuận xử lý dữ liệu
│ └── license_audit.md 🆕 Kiểm tra bản quyền tài liệu
│
│
│ ══════════════════════════════════════════════════
│ TẦNG 2: TRI THỨC Y KHOA
│ ══════════════════════════════════════════════════
│
├── knowledge-base/ 🆕 Kho tri thức y khoa có cấu trúc
│ ├── README.md 🆕 Quy trình tạo/duyệt knowledge items
│ │
│ ├── sources/ Tài liệu y khoa nguồn (raw)
│ │ │
│ │ ├── guidelines/ Hướng dẫn chính thống
│ │ │ └── byt-qd361/
│ │ │ └── Huong_Dan_Chan_Doan_Va_Dieu_Tri_Cac_Benh_Co_Xuong_Khop.md
│ │ │ 📦 CŨ Knowledge/Huong_Dan_*.md (540 KB)
│ │ │
│ │ ├── textbooks/ Sách giáo khoa y khoa
│ │ │ └── dhyhn/ Đại học Y Hà Nội
│ │ │ ├── README.md 🆕 Mô tả nguồn, phiên bản, quyền sử dụng
│ │ │ ├── tap1/ 📦 CŨ Knowledge/DHYHN/Tap1/
│ │ │ │ ├── 02-viem-phe-quan-cap.md ... (39 chương)
│ │ │ │ ├── 35-kham-benh-o-nguoi-cao-tuoi.md ← Đặc biệt: Lão khoa
│ │ │ │ └── ...
│ │ │ └── tap2/ 📦 CŨ Knowledge/DHYHN/Tap2/
│ │ │ ├── 14-viem-khop-dang-thap.md
│ │ │ ├── 20-benh-gut.md
│ │ │ ├── 21-thoai-hoa-khop.md ← Trực tiếp MVP
│ │ │ ├── 22-loang-xuong.md ← Trực tiếp MVP
│ │ │ ├── 25-nhiem-khuan-co-xuong-khop.md
│ │ │ ├── 27-dinh-huong-chan-doan-dau-xuong-khop.md ← Red flag
│ │ │ ├── 28-dau-vung-that-lung.md ← Trực tiếp MVP
│ │ │ └── ... (65 chương)
│ │ │
│ │ └── utilities/ 📦 CŨ Scripts OCR/fix
│ │ ├── fix_ocr.py 📦 CŨ DHYHN/Tap1/fix_ocr.py
│ │ ├── fix_more.py 📦 CŨ DHYHN/Tap1/fix_more.py
│ │ ├── super_fix.py 📦 CŨ DHYHN/Tap1/super_fix.py
│ │ ├── ocr_fix.py 📦 CŨ DHYHN/Tap2/ocr_fix.py
│ │ └── refine.py 📦 CŨ DHYHN/Tap2/refine.py
│ │
│ ├── taxonomy/ 🆕 Phân loại y khoa
│ │ ├── msk_taxonomy_v1.yaml 🆕 Phân loại bệnh/vấn đề CXK
│ │ ├── body_regions.yaml 🆕 Vùng cơ thể
│ │ ├── symptoms.yaml 🆕 Triệu chứng
│ │ └── risk_factors.yaml 🆕 Yếu tố nguy cơ
│ │
│ ├── evidence-matrix/ 🆕 Ma trận bằng chứng
│ │ ├── source_registry.csv 🆕 36+ nguồn (từ file 07)
│ │ └── evidence_pyramid.yaml 🆕 Phân tầng A→E (từ file 02)
│ │
│ ├── knowledge-cards/ 🆕 Thẻ tri thức có cấu trúc
│ │ ├── _schema.json 🆕 Schema cho knowledge card
│ │ ├── knee-oa/
│ │ │ ├── KC-OA-001_exercise.yaml 🆕 Knowledge card mẫu
│ │ │ ├── KC-OA-002_red-flags.yaml
│ │ │ └── KC-OA-003_self-care.yaml
│ │ ├── low-back-pain/
│ │ ├── osteoporosis/
│ │ ├── sarcopenia/
│ │ ├── falls-prevention/
│ │ ├── neck-shoulder/
│ │ └── frailty/
│ │
│ ├── faq/ 🆕 Ngân hàng câu hỏi
│ │ ├── _schema.json 🆕 Schema cho FAQ
│ │ ├── faq_knee_oa.yaml
│ │ ├── faq_low_back.yaml
│ │ └── faq_general.yaml
│ │
│ └── case-bank/ 🆕 Ngân hàng tình huống lâm sàng
│ ├── _schema.json 🆕 Schema cho clinical case
│ ├── green/ Cases an toàn cho self-care
│ ├── amber/ Cases cần thăm khám
│ └── red/ Cases khẩn cấp
│
│
│ ══════════════════════════════════════════════════
│ TẦNG 3: AN TOÀN Y KHOA
│ ══════════════════════════════════════════════════
│
├── safety/ 🆕 An toàn y khoa
│ ├── README.md
│ ├── safety_charter.md 🆕 Hiến chương an toàn (từ file 04)
│ ├── red_flag_rules.yaml 🆕 Quy tắc nhận diện nguy hiểm
│ ├── triage_protocol.yaml 🆕 Logic GREEN/AMBER/RED
│ ├── scope_boundaries.yaml 🆕 AI được/không được trả lời
│ ├── medication_safety.yaml 🆕 Quy tắc an toàn thuốc
│ └── disclaimers/
│ ├── vi_general.md 🆕 Disclaimer tiếng Việt
│ └── vi_emergency.md 🆕 Cảnh báo khẩn cấp
│
│
│ ══════════════════════════════════════════════════
│ TẦNG 4: KỸ THUẬT & SẢN PHẨM
│ ══════════════════════════════════════════════════
│
├── data-pipeline/ 🆕 Xử lý dữ liệu
│ ├── README.md
│ ├── requirements.txt
│ ├── scripts/
│ │ ├── 01_extract_knowledge.py Trích xuất sources/ → structured
│ │ ├── 02_create_chunks.py Chunk theo topic + metadata
│ │ ├── 03_generate_embeddings.py Tạo embeddings
│ │ ├── 04_ingest_vectordb.py Nhập vào vector DB
│ │ ├── 05_validate_ingestion.py Kiểm tra sau nhập
│ │ └── utils/
│ │ ├── markdown_parser.py
│ │ ├── metadata_extractor.py
│ │ └── dedup_checker.py
│ ├── config/
│ │ ├── embedding_config.yaml
│ │ └── chunking_config.yaml
│ └── data/ (gitignored)
│ ├── chunks/
│ └── embeddings/
│
├── backend/ 🆕 Server API
│ ├── README.md
│ ├── requirements.txt
│ ├── app/
│ │ ├── main.py FastAPI entry point
│ │ ├── config.py
│ │ ├── routers/
│ │ │ ├── chat.py Endpoint hỏi đáp
│ │ │ ├── search.py Endpoint tìm kiếm
│ │ │ └── health.py Health check
│ │ ├── services/
│ │ │ ├── retriever.py RAG retriever
│ │ │ ├── safety_engine.py Safety pre/post check
│ │ │ ├── citation_engine.py Trích dẫn nguồn
│ │ │ ├── llm_service.py LLM integration
│ │ │ ├── conversation.py Quản lý hội thoại
│ │ │ └── triage.py Phân loại rủi ro
│ │ ├── models/
│ │ │ ├── schemas.py Pydantic models
│ │ │ └── enums.py GREEN/AMBER/RED
│ │ └── middleware/
│ │ ├── logging.py Audit log
│ │ └── privacy.py PII filter
│ └── tests/
│ ├── test_retriever.py
│ ├── test_safety.py
│ └── test_citation.py
│
├── frontend/ 🆕 Website accessibility-first
│ ├── README.md
│ ├── package.json
│ ├── public/
│ │ └── index.html
│ ├── src/
│ │ ├── App.vue
│ │ ├── components/
│ │ │ ├── ChatWindow.vue Cửa sổ chat chính
│ │ │ ├── MessageBubble.vue Bong bóng tin nhắn
│ │ │ ├── VoiceInput.vue Nút nói
│ │ │ ├── CitationCard.vue Hiển thị nguồn
│ │ │ ├── EmergencyBanner.vue Banner khẩn cấp
│ │ │ ├── FontSizer.vue Điều chỉnh cỡ chữ
│ │ │ └── SafetyDisclaimer.vue Disclaimer
│ │ ├── styles/
│ │ │ ├── accessibility.css WCAG 2.2 base
│ │ │ ├── elderly-theme.css Theme tối giản cho NCT
│ │ │ └── high-contrast.css Tương phản cao
│ │ └── assets/
│ └── tests/
│
├── voice/ 🆕 STT/TTS integration
│ ├── README.md
│ ├── stt/
│ │ ├── stt_service.py Speech-to-Text wrapper
│ │ ├── transcript_confirmer.py Xác nhận transcript
│ │ └── vietnamese_postprocess.py Hậu xử lý tiếng Việt
│ └── tts/
│ ├── tts_service.py Text-to-Speech wrapper
│ └── voice_config.yaml Cấu hình giọng đọc
│
├── telegram-bot/ 🆕 Tích hợp Telegram
│ ├── README.md
│ ├── bot.py Bot entry point
│ ├── handlers/
│ │ ├── text_handler.py
│ │ ├── voice_handler.py
│ │ └── webapp_handler.py Mini App
│ └── config.yaml
│
│
│ ══════════════════════════════════════════════════
│ TẦNG 5: KIỂM THỬ & NGHIÊN CỨU NGƯỜI DÙNG
│ ══════════════════════════════════════════════════
│
├── testing/ 🆕 Kiểm thử
│ ├── README.md
│ ├── benchmark/
│ │ ├── testset_v1.yaml Bộ 100+ test cases
│ │ ├── gold_labels/ Gold label từ bác sĩ
│ │ └── scoring_rubric.yaml Rubric chấm điểm
│ ├── red-team/
│ │ ├── adversarial_cases.yaml Tình huống đối kháng
│ │ ├── misinformation_cases.yaml Thông tin sai
│ │ └── edge_cases.yaml Biên case
│ ├── accessibility/
│ │ ├── wcag_checklist.md WCAG 2.2 checklist
│ │ └── elderly_usability.md Checklist cho NCT
│ ├── scripts/
│ │ ├── run_benchmark.py
│ │ ├── score_results.py
│ │ └── generate_report.py
│ └── results/ (gitignored)
│
├── user-research/ 🆕 Nghiên cứu người dùng
│ ├── README.md
│ ├── survey/
│ │ ├── survey_elderly_v1.md Bộ khảo sát NCT
│ │ └── survey_caregiver_v1.md Bộ khảo sát người chăm sóc
│ ├── interview/
│ │ ├── interview_guide_elderly.md Hướng dẫn PV người cao tuổi
│ │ ├── interview_guide_doctor.md Hướng dẫn PV bác sĩ
│ │ └── coding_framework.yaml Khung phân tích
│ ├── personas/
│ │ └── persona_template.yaml
│ ├── insights/
│ │ └── README.md Tổng hợp insight
│ └── consent/
│ └── consent_form_vi.md Mẫu đồng ý tham gia
│
│
│ ══════════════════════════════════════════════════
│ TẦNG 6: NỘI DUNG & VẬN HÀNH
│ ══════════════════════════════════════════════════
│
├── community/ 🆕 Giáo dục & cộng đồng
│ ├── README.md
│ ├── education/
│ │ ├── content_matrix.yaml Ma trận nội dung (từ file 02)
│ │ ├── articles/ Bài viết giáo dục
│ │ └── exercises/ Bài tập đã duyệt
│ └── engagement/
│ ├── challenge_templates.yaml Thử thách vận động
│ └── checkin_schedule.yaml Lịch check-in
│
├── deployment/ 🆕 Triển khai (IIS + Windows Server)
│ ├── iis/
│ │ ├── web.config 🆕 IIS reverse proxy config
│ │ ├── applicationHost.config 🆕 IIS site binding
│ │ └── setup_iis.ps1 🆕 Script cấu hình IIS
│ ├── database/
│ │ ├── init_schema.sql 🆕 MSSQL schema khởi tạo
│ │ ├── migrations/ 🆕 Database migrations
│ │ └── seed_data.sql 🆕 Dữ liệu khởi tạo
│ ├── .env.example
│ └── monitoring/
│ └── alerts.yaml
│
│
│ ══════════════════════════════════════════════════
│ GỐC: REDIRECT STUBS (giữ tương thích)
│ ══════════════════════════════════════════════════
│
├── Research/ ⚠️ REDIRECT STUBS
│ └── _MOVED.md Link đến docs/research/
│
├── Knowledge/ ⚠️ REDIRECT STUBS
│ └── _MOVED.md Link đến knowledge-base/sources/
│
│
│ ══════════════════════════════════════════════════
│ CONFIG
│ ══════════════════════════════════════════════════
│
├── .gitignore
├── pyproject.toml Python project config
└── Makefile Lệnh tiện ích
3.2 Bảng Migration — Ánh xạ Cũ → Mới
Bảng này là kế hoạch di chuyển cụ thể. Mỗi file cũ có đường dẫn mới và lý do xếp vào vị trí đó.
Research/ → docs/research/
| File cũ | Vị trí mới | Lý do |
|---|---|---|
Research/00_MUC_LUC.md |
docs/research/00_MUC_LUC.md |
Mục lục bộ nghiên cứu → giữ nguyên tên, đặt ở gốc research |
Research/01_YEU_CAU_GOC_*.md |
docs/research/requirements/01_*.md |
Yêu cầu và phạm vi dự án → nhóm requirements |
Research/02_BAO_CAO_*.md |
docs/research/reports/02_*.md |
Báo cáo nghiên cứu tổng thể → nhóm reports |
Research/03_TOM_TAT_*.md |
docs/research/reports/03_*.md |
Đề cương nghiên cứu → nhóm reports |
Research/04_KE_HOACH_*.md |
docs/research/plans/04_*.md |
Kế hoạch 16 tuần → nhóm plans |
Research/05_TUAN_1_*.md |
docs/research/plans/05_*.md |
Kế hoạch tuần 1 v1 → nhóm plans |
Research/06_TUAN_1_*.md |
docs/research/plans/06_*.md |
Kế hoạch tuần 1 v2 → nhóm plans |
Research/07_NGUON_*.md |
docs/research/references/07_*.md |
Danh mục nguồn → nhóm references |
Research/08_TOAN_BO_*.md |
docs/research/reports/08_*.md |
Bản gộp → nhóm reports |
Research/09_PROMPT_*.md |
docs/research/prompts/09_*.md |
Prompt deep research → nhóm prompts |
Research/10_KIEN_TRUC_*.md |
docs/research/plans/10_*.md |
Kiến trúc & kế hoạch → nhóm plans |
Knowledge/ → knowledge-base/sources/
| File/Thư mục cũ | Vị trí mới | Lý do |
|---|---|---|
Knowledge/Huong_Dan_Chan_Doan_*.md |
knowledge-base/sources/guidelines/byt-qd361/ |
Hướng dẫn chính thống BYT → nhóm guidelines |
Knowledge/DHYHN/Tap1/*.md |
knowledge-base/sources/textbooks/dhyhn/tap1/ |
Sách giáo khoa → nhóm textbooks |
Knowledge/DHYHN/Tap2/*.md |
knowledge-base/sources/textbooks/dhyhn/tap2/ |
Sách giáo khoa → nhóm textbooks |
Knowledge/DHYHN/Tap1/*.py |
knowledge-base/sources/utilities/ |
Scripts OCR → gom chung utilities |
Knowledge/DHYHN/Tap2/*.py |
knowledge-base/sources/utilities/ |
Scripts OCR → gom chung utilities |
Knowledge/DHYHN/Tap1/.progress/ |
knowledge-base/sources/textbooks/dhyhn/tap1/.progress/ |
Metadata tiến độ OCR → giữ cùng sách |
Knowledge/DHYHN/Tap2/.progress/ |
knowledge-base/sources/textbooks/dhyhn/tap2/.progress/ |
Metadata tiến độ OCR → giữ cùng sách |
3.3 Redirect Stubs
Sau khi di chuyển, tạo file _MOVED.md ở vị trí cũ để tránh gãy tham chiếu:
Research/_MOVED.md:
# ⚠️ Thư mục đã di chuyển
Toàn bộ nội dung Research/ đã được di chuyển đến `docs/research/`.
| Nhóm | Vị trí mới |
|---|---|
| Yêu cầu gốc | `docs/research/requirements/` |
| Báo cáo nghiên cứu | `docs/research/reports/` |
| Kế hoạch triển khai | `docs/research/plans/` |
| Nguồn tham khảo | `docs/research/references/` |
| Prompts | `docs/research/prompts/` |
Knowledge/_MOVED.md:
# ⚠️ Thư mục đã di chuyển
Toàn bộ nội dung Knowledge/ đã được di chuyển đến `knowledge-base/sources/`.
| Nhóm | Vị trí mới |
|---|---|
| Hướng dẫn BYT | `knowledge-base/sources/guidelines/byt-qd361/` |
| Sách ĐHYHN | `knowledge-base/sources/textbooks/dhyhn/` |
| Scripts OCR | `knowledge-base/sources/utilities/` |
3.4 Tổng kết Kiến trúc 6 Tầng
graph TD
subgraph T1["TẦNG 1: TÀI LIỆU"]
docs["docs/"]
docs --> research["research/ ← Research/*"]
docs --> project["project/"]
docs --> arch["architecture/"]
docs --> gates["gates/"]
docs --> diary["diary/"]
docs --> legal["legal/"]
docs --> pres["presentations/"]
end
subgraph T2["TẦNG 2: TRI THỨC"]
kb["knowledge-base/"]
kb --> sources["sources/ ← Knowledge/*"]
kb --> taxonomy["taxonomy/"]
kb --> evidence["evidence-matrix/"]
kb --> cards["knowledge-cards/"]
kb --> faq["faq/"]
kb --> cases["case-bank/"]
end
subgraph T3["TẦNG 3: AN TOÀN"]
safety["safety/"]
end
subgraph T4["TẦNG 4: KỸ THUẬT"]
pipeline["data-pipeline/"]
backend["backend/"]
frontend["frontend/"]
voice["voice/"]
telegram["telegram-bot/"]
end
subgraph T5["TẦNG 5: KIỂM THỬ"]
testing["testing/"]
uresearch["user-research/"]
end
subgraph T6["TẦNG 6: VẬN HÀNH"]
community["community/"]
deploy["deployment/"]
end
sources --> pipeline
pipeline --> backend
safety --> backend
cards --> backend
backend --> frontend
backend --> telegram
backend --> voice
testing --> backend
3.5 Quy ước Đặt tên
| Loại | Quy ước | Ví dụ |
|---|---|---|
| Thư mục | kebab-case |
knowledge-base, data-pipeline |
| File Python | snake_case.py |
safety_engine.py |
| File YAML/JSON | snake_case.yaml |
source_registry.csv |
| Knowledge Card | KC-{NHÓM}-{SỐ}_{mô_tả}.yaml |
KC-OA-001_exercise.yaml |
| Test Case | TC-{NHÓM}-{SỐ}.yaml |
TC-RED-015.yaml |
| FAQ | faq_{nhóm}.yaml |
faq_knee_oa.yaml |
| Clinical Case | CASE-{MÀU}-{SỐ}.yaml |
CASE-RED-003.yaml |
| Diary entry | YYYY-MM-DD.md |
2026-09-23.md |
| Research file | Giữ tên gốc NN_TEN_*.md |
02_BAO_CAO_NGHIEN_CUU_TONG_THE.md |
| Source file | Giữ tên gốc từ OCR | 21-thoai-hoa-khop.md |
4. Implementation Roadmap
4.1 Tech Stack Recommendation (tận dụng hạ tầng sẵn có)
Nguyên tắc: Ưu tiên tận dụng Windows Server 2022 + IIS + MSSQL 2022 đã có sẵn. Chỉ thêm component mới khi không có giải pháp tương đương.
| Component | Đề xuất | Lý do |
|---|---|---|
| Web Server | IIS (Windows Server 2022) — reverse proxy → FastAPI | ✅ Hạ tầng sẵn có; IIS làm reverse proxy + SSL termination + static files; FastAPI chạy behind qua HttpPlatformHandler hoặc ARR |
| Backend | Python + FastAPI (chạy trên Windows Server via IIS reverse proxy) | Nhanh, type-safe, async, tích hợp ML tốt; IIS forward request qua port nội bộ |
| Database | MSSQL 2022 | ✅ Hạ tầng sẵn có; dùng cho metadata, audit log, patient profile, knowledge card metadata, FAQ, test results |
| Vector DB | ChromaDB (MVP, chạy trên cùng server) → Qdrant (production) | ChromaDB đơn giản; Qdrant có Windows binary; cả hai chạy được trên Windows Server |
| LLM | Gemini 2.5 Pro/Flash (hoặc GPT-4o) | Hỗ trợ tiếng Việt tốt, context dài, structured output; gọi qua API |
| Embedding | text-embedding-004 (Google) hoặc text-embedding-3-large (OpenAI) |
Multilingual, high quality |
| Frontend | Vite + Vue 3 — build static → IIS serve | Lightweight; IIS serve static build rất hiệu quả |
| Voice STT | Google Cloud Speech-to-Text (hoặc Whisper local) | Hỗ trợ tiếng Việt, streaming |
| Voice TTS | Google Cloud TTS hoặc ElevenLabs | Giọng Việt tự nhiên |
| Telegram | python-telegram-bot | Official wrapper, mature |
| Deployment | IIS + Windows Service (MVP); Docker optional | ✅ Không cần cloud mới; dùng IIS đã có; FastAPI chạy như Windows Service via NSSM |
| Monitoring | Langfuse (hoặc LangSmith) + IIS logs + MSSQL audit table | Trace LLM calls + IIS request logs + audit trong MSSQL |
Sơ đồ Hạ tầng
graph LR
subgraph WS["Windows Server 2022"]
IIS["IIS 10\nReverse Proxy\nSSL + Static"]
FastAPI["FastAPI\n:8000\nRAG + Safety"]
ChromaDB["ChromaDB\nVector Store"]
MSSQL[("MSSQL 2022\nMetadata\nAudit Log")]
TG["Telegram Bot\nService"]
end
User -->|HTTPS| IIS
IIS -->|Proxy /api| FastAPI
IIS -->|Static /| Frontend["Vue 3 Build"]
FastAPI --> ChromaDB
FastAPI --> MSSQL
FastAPI -->|API| LLM["Gemini/GPT\nCloud API"]
TG --> FastAPI
4.2 Sprint Plan (8 Sprint × 2 tuần)
gantt
title Lộ trình 16 tuần - 8 Sprint
dateFormat YYYY-MM-DD
axisFormat %d/%m
section Sprint 1: Nền móng
Tái cấu trúc + source registry :s1, 2026-09-23, 14d
section Sprint 2: Knowledge Base
Taxonomy + Knowledge Cards + Evidence Matrix :s2, after s1, 14d
section Sprint 3: Data Pipeline
Chunk + Embed + Vector DB + Retrieval API :s3, after s2, 14d
section Sprint 4: Safety + Backend
Safety engine + Backend API + LLM integration :s4, after s3, 14d
section Sprint 5: Frontend + Voice
Website MVP + Voice integration :s5, after s4, 14d
section Sprint 6: Testing
100-case benchmark + Red team + Clinical gate :s6, after s5, 14d
section Sprint 7: Telegram + Pilot
Telegram bot + Pilot 20-30 NCT :s7, after s6, 14d
section Sprint 8: Báo cáo
Phân tích + Báo cáo đề tài + Roadmap :s8, after s7, 14d
Sprint 1: Nền móng (Tuần 1–2) — Gate A prep
| # | Task | Phân công | Deliverable | Tiêu chí hoàn thành |
|---|---|---|---|---|
| 1.1 | Tạo cấu trúc thư mục + migration theo kiến trúc | AI | Toàn bộ folder + README + redirect stubs | 6 tầng hoàn chỉnh |
| 1.2 | Tạo source_registry.csv từ file 07 |
AI | CSV với 36 nguồn + metadata | Đủ cột: ID, tên, tổ chức, năm, URL, license, tầng, trạng thái |
| 1.3 | Tạo msk_taxonomy_v1.yaml |
AI + NCV review | Taxonomy 7 nhóm MVP | Đủ 7 nhóm bệnh/vấn đề theo file 02 |
| 1.4 | Trích xuất Knowledge Cards từ BYT + ĐHYHN | AI | 30–50 cards cho knee OA + low back | Mỗi card có source, topic, population, evidence |
| 1.5 | Tạo safety_charter.md + red_flag_rules.yaml |
AI + NCV | Hiến chương + rules | Dựa trên NICE NG226 + file 02 mục red flag |
| 1.6 | Tạo project_charter.md + intended_use.md |
NCV + AI hỗ trợ | 2 file docs | Dựa trên file 01 + 02 |
| 1.7 | Tạo _schema.json cho KC, FAQ, Case |
AI | 3 schema files | Đủ trường theo file 02 (Knowledge Card structure) |
| 1.8 | Soạn bài trình bày Kickoff | NCV + AI | docs/presentations/kickoff/ |
Outline + slides md |
| 1.9 | Bắt đầu nhật ký nghiên cứu | NCV | 14 entry | Mẫu: ngày, câu hỏi, hoạt động, bằng chứng, quyết định |
| 1.10 | Setup MSSQL schema + IIS reverse proxy | AI-DEV + NCV | DB + IIS chạy được | deployment/database/init_schema.sql + deployment/iis/web.config |
Sprint 2: Knowledge Base (Tuần 3–4) — Gate A
| # | Task | Phân công | Deliverable | Tiêu chí |
|---|---|---|---|---|
| 2.1 | Trích xuất KC từ thoái hóa khớp (ĐHYHN Tap2/21 + BYT) | AI-ES + NCV | 20–30 KC | Đủ source_id, review_status=draft |
| 2.2 | Trích xuất KC từ đau lưng (ĐHYHN Tap2/28 + BYT) | AI-ES + NCV | 20–30 KC | Như trên |
| 2.3 | Trích xuất KC từ loãng xương + té ngã (ĐHYHN Tap2/22 + BYT) | AI-ES + NCV | 15–20 KC | Như trên |
| 2.4 | Trích xuất KC từ lão khoa (ĐHYHN Tap1/35) | AI-ES + NCV | 10–15 KC | Như trên |
| 2.5 | Tạo evidence matrix đầy đủ | AI-LS | evidence_matrix.csv | Đủ evidence nguồn quốc tế |
| 2.6 | Sinh FAQ draft (100 câu) từ KC | AI-FAQ | faq_v1.yaml | Đủ 4 nhóm MVP |
| 2.7 | BS review KC nhóm nguy cơ cao | BS reviewer | KC trạng thái approved | ≥30% KC high-risk được duyệt |
| 2.8 | Gate A: Knowledge | NCV + BS + PM | Go/No-Go report | ≥80 KC, taxonomy, source registry hoàn chỉnh |
Sprint 3: Data Pipeline (Tuần 5–6)
| # | Task | Phân công | Deliverable | Tiêu chí |
|---|---|---|---|---|
| 3.1 | Viết scripts chunk knowledge cards | AI-DEV | 02_create_chunks.py |
Chunk theo topic + metadata |
| 3.2 | Tạo embeddings | AI-DEV | 03_generate_embeddings.py |
≥500 chunks embedded |
| 3.3 | Setup ChromaDB + ingest | AI-DEV | 04_ingest_vectordb.py |
Retrieval API trả kết quả |
| 3.4 | Viết retrieval API | AI-DEV | /search endpoint |
Top-k + metadata filter |
| 3.5 | Test retrieval với 20 truy vấn | AI-QA + NCV | Kết quả test | ≥80% retrieval recall |
| 3.6 | Sinh bộ 100 test cases | AI-SAFE + NCV | testset_v1.yaml |
Đủ GREEN/AMBER/RED/OUT-OF-SCOPE |
| 3.7 | BS gắn gold label cho red cases | BS reviewer | Gold labels | 100% red cases có gold label |
Sprint 4: Safety + Backend (Tuần 7–8) — Gate B
| # | Task | Phân công | Deliverable | Tiêu chí |
|---|---|---|---|---|
| 4.1 | Implement safety_engine.py | AI-DEV | Pre-check + post-check | Detect red flags từ rules |
| 4.2 | Implement citation_engine.py | AI-DEV | Citation trong response | Mỗi câu trả lời có ≥1 nguồn |
| 4.3 | Implement LLM service + prompt engineering | AI-DEV | Prompt templates | Format: "Có thể liên quan / Cần kiểm tra / Có thể làm / Không nên / Đi khám nếu" |
| 4.4 | Implement FastAPI server behind IIS | AI-DEV | Backend chạy trên Windows Server | /chat, /search, /health endpoints qua IIS reverse proxy |
| 4.5 | Implement conversation orchestrator | AI-DEV | Luồng hội thoại | Intent → Safety → RAG → LLM → Safety → Response |
| 4.6 | Implement audit logging (MSSQL) | AI-DEV | Log middleware + MSSQL table | Data minimization, no PII in logs; audit table trong MSSQL |
| 4.7 | Gate B: Technical | PM/Tech | Go/No-Go | Backend trả lời được 20 câu test thủ công qua IIS |
Sprint 5: Frontend + Voice (Tuần 9–10)
| # | Task | Phân công | Deliverable | Tiêu chí |
|---|---|---|---|---|
| 5.1 | Design wireframe accessibility-first | AI-UX + NCV | Wireframe | Font lớn, 3-4 hành động, nút voice |
| 5.2 | Implement web frontend | AI-DEV | Website MVP | Responsive, WCAG 2.2 base |
| 5.3 | Tích hợp STT | AI-DEV | Voice input | Tiếng Việt, xác nhận transcript |
| 5.4 | Tích hợp TTS | AI-DEV | Voice output | Giọng tự nhiên |
| 5.5 | Test nội bộ 3–5 người | NCV | Usability log | Hoàn thành tác vụ cốt lõi |
| 5.6 | Accessibility audit | AI-QA | WCAG checklist | Đạt AA trên tiêu chí chính |
Sprint 6: Testing (Tuần 11–12) — Gate C
| # | Task | Phân công | Deliverable | Tiêu chí |
|---|---|---|---|---|
| 6.1 | Chạy benchmark 100 test cases | AI-QA | Results report | Score theo rubric |
| 6.2 | Red team testing | AI-SAFE + NCV | Adversarial report | 0 red-flag false negative |
| 6.3 | BS review lỗi y khoa | BS reviewer | Clinical evaluation | Không có lỗi nghiêm trọng |
| 6.4 | Privacy/security review | NCV/PM | Checklist | Consent, encryption, PII filter |
| 6.5 | Gate C: Clinical Safety | BS + PM + NCV | Go/No-Go | Red-flag sensitivity = 100%; harmful advice = 0 |
Sprint 7: Telegram + Pilot (Tuần 13–14)
| # | Task | Phân công | Deliverable | Tiêu chí |
|---|---|---|---|---|
| 7.1 | Implement Telegram bot | AI-DEV | Bot chạy được | Text + voice message |
| 7.2 | Thiết kế pilot protocol | NCV | Protocol document | 20–30 NCT, 2–4 tuần |
| 7.3 | Tuyển + consent NCT | NCV + H | Consent forms | Đủ consent |
| 7.4 | Pilot 20–30 NCT | NCV | Data pilot | Task completion, time, comprehension |
| 7.5 | Thu thập feedback | NCV | Feedback dataset | Structured responses |
Sprint 8: Báo cáo + Bảo vệ (Tuần 15–16) — Gate D
| # | Task | Phân công | Deliverable | Tiêu chí |
|---|---|---|---|---|
| 8.1 | Phân tích dữ liệu pilot | AI + NCV | Analysis report | Định lượng + định tính |
| 8.2 | Viết báo cáo đề tài | NCV + AI | Final report | Đề cương 3 phần theo file 03 |
| 8.3 | Soạn bài trình bày Bảo vệ (Final Defense) | NCV + AI | docs/presentations/final/ |
Outline + slides + demo script |
| 8.4 | Tạo roadmap tiếp theo | NCV + PM | Roadmap v2 | Giai đoạn 2–4 |
| 8.5 | Gate D: Pilot/Go-live | Toàn team | Final decision | Đạt 4 gate trước; pilot positive |
5. Academic Presentations — Bài trình bày Nghiên cứu Khoa học
Đây là đề tài NCKH — cần deliverable trình bày ở 3 thời điểm chính trong vòng đời dự án.
5.1 Bài trình bày Khởi động (Kickoff Presentation)
- Thời điểm: Sprint 1 (Tuần 1–2)
- Đối tượng: Hội đồng hướng dẫn, Ban giám đốc
- Thời lượng: 20–30 phút + 10 phút Q&A
- File:
docs/presentations/kickoff/
Outline:
| Slide | Nội dung | Nguồn dữ liệu | Thời gian |
|---|---|---|---|
| 1 | Trang bìa + Logo | Vaga brand | — |
| 2 | Bối cảnh: NCT Việt Nam + MSK | File 02 mục "Bối cảnh" |
2 phút |
| 3 | Tính cấp thiết: Khoảng trống giữa y tế và tự chăm sóc | File 02 mục WHO/NICE |
3 phút |
| 4 | Mục tiêu nghiên cứu (3 câu hỏi) | File 03 Phần Mở đầu |
2 phút |
| 5 | Phạm vi: 7 nhóm bệnh/vấn đề MVP | File 02 mục "Phạm vi bệnh" |
2 phút |
| 6 | Phương pháp: RAG + Safety + Citation | File 02 mục "Kiến trúc" |
3 phút |
| 7 | Kiến trúc hệ thống 6 tầng | File 10 Phần 3 |
3 phút |
| 8 | Hạ tầng kỹ thuật: IIS + MSSQL + Vector DB | File 10 mục Tech Stack |
2 phút |
| 9 | An toàn y khoa: Safety-first approach | File 02 mục "Safety" |
3 phút |
| 10 | Lộ trình 16 tuần — 8 sprint | File 10 Gantt |
3 phút |
| 11 | Nguồn lực & 4 Gate | File 04 |
2 phút |
| 12 | Rủi ro chính & Giảm thiểu | File 10 bảng rủi ro |
2 phút |
| 13 | Kết luận + Q&A | — | 3 phút |
5.2 Template Báo cáo Tiến độ Hàng tuần
- Tần suất: Mỗi thứ Sáu
- File:
docs/presentations/weekly/weekly_progress_template.md - Format: Markdown tái sử dụng, copy → điền → gửi
Template:
# Báo cáo Tiến độ Tuần [N]/16
> **Sprint:** [N]/8 | **Ngày:** [DD/MM/YYYY]
> **Gate hiện tại:** [A/B/C/D]
## 1. Tóm tắt
[1–2 câu mô tả tổng quan tuần]
## 2. Mục tiêu vs. Kết quả
| Mục tiêu đặt ra | Kết quả | Trạng thái |
|---|---|---|
| [Task 1] | [Kết quả] | ✅/⚠️/❌ |
| [Task 2] | [Kết quả] | ✅/⚠️/❌ |
## 3. Metrics
| Metric | Tuần trước | Tuần này | Δ |
|---|---|---|---|
| Knowledge Cards | [N] | [N] | +[N] |
| Test cases pass | [N]/100 | [N]/100 | +[N] |
| Retrieval recall | [%] | [%] | +[%] |
| Safety sensitivity | [%] | [%] | +[%] |
## 4. Vấn đề & Giải pháp
| Vấn đề | Ảnh hưởng | Giải pháp |
|---|---|---|
| [Mô tả] | [Cao/TB/Thấp] | [Giải pháp] |
## 5. Kế hoạch Tuần tiếp
- [ ] [Task 1]
- [ ] [Task 2]
## 6. Rủi ro Cập nhật
[Rủi ro mới hoặc thay đổi mức rủi ro]
## 7. Demo/Screenshot
[Ảnh hoặc mô tả demo nếu có]
5.3 Bài trình bày Bảo vệ Cuối (Final Defense)
- Thời điểm: Sprint 8 (Tuần 15–16)
- Đối tượng: Hội đồng đánh giá, Ban giám đốc, Đối tác
- Thời lượng: 30–45 phút + 15 phút Q&A
- File:
docs/presentations/final/
Outline:
| Slide | Nội dung | Nguồn dữ liệu | Thời gian |
|---|---|---|---|
| 1 | Trang bìa | — | — |
| 2 | Recap: Bối cảnh + Câu hỏi nghiên cứu | Kickoff slides 2–4 | 2 phút |
| 3–5 | Literature Review: Lão khoa + MSK + AI y tế | File 02 toàn bộ |
5 phút |
| 6 | Phương pháp: RAG + Safety + Citation | File 02 + 10 |
3 phút |
| 7–8 | Kiến trúc thực tế (sau triển khai) | Sơ đồ IIS+MSSQL cập nhật | 4 phút |
| 9 | Knowledge Base: Số KC, taxonomy, sources | Thống kê thực | 2 phút |
| 10–11 | Kết quả Benchmark: Accuracy, recall, safety | Testing results | 5 phút |
| 12 | Kết quả Pilot: Usability, satisfaction | Pilot report | 4 phút |
| 13 | Demo Live hoặc Video demo | Sản phẩm thực | 5 phút |
| 14 | Đóng góp khoa học & thực tiễn | Tổng hợp | 3 phút |
| 15 | Hạn chế & Hướng phát triển | Risk register + Roadmap v2 | 3 phút |
| 16 | Kết luận | — | 2 phút |
| 17 | Q&A | — | 15 phút |
5.4 Tích hợp Presentations vào Sprint Plan
| Sprint | Presentation deliverable |
|---|---|
| Sprint 1 (T1–2) | ✅ Hoàn thành Kickoff Presentation + trình bày |
| Sprint 2–7 | ✅ Weekly Progress Report mỗi thứ Sáu (dùng template) |
| Sprint 8 (T15–16) | ✅ Hoàn thành Final Defense Presentation + trình bày |
6. Quick Wins & Next Steps
10 Quick Wins AI có thể thực hiện ngay (tuần này)
| # | Task | Thời gian ước tính | Output |
|---|---|---|---|
| QW-0 | Tái cấu trúc folder: di chuyển Research/ → docs/research/, Knowledge/ → knowledge-base/sources/, tạo redirect stubs | 1 giờ | Kiến trúc mới hoạt động |
| QW-1 | Tạo toàn bộ thư mục mới (docs/project, docs/presentations, safety, testing, deployment/iis, deployment/database, ...) + README | 30 phút | Skeleton đầy đủ |
| QW-2 | Tạo knowledge-base/evidence-matrix/source_registry.csv từ 36 nguồn trong file 07 |
1 giờ | CSV có đủ metadata |
| QW-3 | Tạo knowledge-base/taxonomy/msk_taxonomy_v1.yaml từ file 02 mục "Phạm vi bệnh" |
1 giờ | Taxonomy 7 nhóm + subtopics |
| QW-4 | Tạo _schema.json cho Knowledge Card, FAQ, Case |
1 giờ | 3 schema files |
| QW-5 | Trích xuất 10 Knowledge Cards mẫu từ knowledge-base/sources/textbooks/dhyhn/tap2/21-thoai-hoa-khop.md |
2 giờ | 10 KC files |
| QW-6 | Tạo safety/red_flag_rules.yaml từ file 02 mục "sàng lọc red flag" |
1 giờ | YAML rules |
| QW-7 | Sinh 50 FAQ draft từ nội dung thoái hóa khớp | 1 giờ | faq_knee_oa.yaml |
| QW-8 | Tạo docs/project/project_charter.md + docs/project/intended_use.md |
1 giờ | 2 docs |
| QW-9 | Soạn Kickoff Presentation (outline + slides markdown) | 2 giờ | docs/presentations/kickoff/ |
| QW-10 | Tạo MSSQL init schema + IIS web.config | 1 giờ | deployment/database/init_schema.sql + deployment/iis/web.config |
Next Steps sau Quick Wins
- NCV review tất cả output QW (1–2 ngày)
- Trình bày Kickoff cho hội đồng/BGĐ
- Gửi BS reviewer KC nhóm nguy cơ cao
- Setup Python environment trên Windows Server (pyproject.toml, ChromaDB, FastAPI)
- Bắt đầu Sprint 2 — trích xuất knowledge cards từ toàn bộ tài liệu CXK
7. Appendix: Mapping Kiến trúc ↔ Nội dung Đã Có
7.1 File cũ → Vị trí mới (tóm tắt)
| File/Thư mục cũ | Vị trí mới | Tầng |
|---|---|---|
Research/01_*.md |
docs/research/requirements/ |
1 — Tài liệu |
Research/02_*.md, 03_*.md, 08_*.md |
docs/research/reports/ |
1 — Tài liệu |
Research/04_*.md, 05_*.md, 06_*.md, 10_*.md |
docs/research/plans/ |
1 — Tài liệu |
Research/07_*.md |
docs/research/references/ |
1 — Tài liệu |
Research/09_*.md |
docs/research/prompts/ |
1 — Tài liệu |
Knowledge/Huong_Dan_*.md |
knowledge-base/sources/guidelines/byt-qd361/ |
2 — Tri thức |
Knowledge/DHYHN/Tap1/ |
knowledge-base/sources/textbooks/dhyhn/tap1/ |
2 — Tri thức |
Knowledge/DHYHN/Tap2/ |
knowledge-base/sources/textbooks/dhyhn/tap2/ |
2 — Tri thức |
Knowledge/DHYHN/Tap*/fix*.py, ocr*.py, ... |
knowledge-base/sources/utilities/ |
2 — Tri thức |
7.2 Thư mục mới → Nội dung trích từ nghiên cứu
| Thư mục mới | Nội dung trích từ | File nguồn |
|---|---|---|
knowledge-base/taxonomy/ |
Phạm vi bệnh MVP, 7 nhóm | 02 mục "Phạm vi bệnh" (L129–147) |
knowledge-base/evidence-matrix/ |
36 nguồn khôi phục | 07 (toàn bộ) |
knowledge-base/knowledge-cards/ |
Cấu trúc Knowledge Card | 02 mục "Cấu trúc Knowledge Card" (L229–272) |
knowledge-base/faq/ |
Ngân hàng câu hỏi | 02 mục "Xây ngân hàng câu hỏi" (L691–743) |
knowledge-base/case-bank/ |
Clinical case mẫu (KNEE-001) | 02 mục case minh họa (L707–739) |
safety/ |
Safety Matrix, red flags, triage | 02 (L1090–1106), 04 (Safety Gate) |
data-pipeline/ |
Pipeline AI đề xuất | 05 mục "Pipeline AI đề xuất" (L63–84) |
backend/ |
Kiến trúc hệ thống (IIS + FastAPI) | 02 (L332–374), 04 (Mermaid L44–70) |
frontend/ |
UX đề xuất cho NCT (IIS serve static) | 02 (L509–531), WCAG 2.2 |
voice/ |
Voice-first design | 02 (L509–547) |
telegram-bot/ |
Telegram Bot API | 02 (L481–507) |
testing/ |
Bộ 100+ test, rubric, red team | 02 (L886–981), 04 (Gate C) |
user-research/ |
Câu hỏi phỏng vấn, persona | 02 (L593–665) |
docs/project/ |
Charter, intended use, risk register | 01 + 02 (toàn bộ) |
docs/architecture/ |
ADR, system diagram | 02 (L332–374), quyết định RAG |
docs/gates/ |
4 Gate kiểm soát | 04 (4 Gates), 05–06 (biểu mẫu) |
docs/presentations/ |
Kickoff, Weekly template, Final Defense | 03 (đề cương), 10 (kiến trúc) |
docs/legal/ |
Privacy, license, compliance | 02 (L1010–1060), Luật 91/2025 + 71/2025 |
community/ |
Content matrix, engagement | 02 (L1134–1177) |
deployment/iis/ |
IIS reverse proxy config | Hạ tầng sẵn có (Windows Server 2022) |
deployment/database/ |
MSSQL schema, migrations | Hạ tầng sẵn có (MSSQL 2022) |
Ghi chú cuối: File này là đề xuất kiến trúc và kế hoạch v2.0. Mọi nội dung y khoa cần được bác sĩ rà soát. Mọi quyết định pháp lý cần luật sư chuyên ngành. Kế hoạch cần được điều chỉnh theo nguồn lực thực tế. Hạ tầng IIS + MSSQL cần được kiểm tra khả dụng trước khi bắt đầu Sprint 3.
Khuyến Cáo & Miễn Trừ Trách Nhiệm Y Khoa
Hệ thống Trợ lý AI đóng vai trò hỗ trợ giáo dục sức khỏe và hướng dẫn tự chăm sóc hệ vận động. AI không thay thế chẩn đoán hoặc chỉ định điều trị của bác sĩ chuyên khoa. Khi xuất hiện các triệu chứng cờ đỏ (sốt, sụt cân, đau dữ dội, mất kiểm soát tiêu tiểu), người bệnh cần đến ngay cơ sở y tế gần nhất.