# Vận hành và bàn giao NCV DCIMS 0.2.30-r2

**NCV DCIMS — NCV Dental Clinical Image Management System**. Chốt tài liệu: 30/09/2026.

## Chọn đúng hướng dẫn

| Tình huống | Tài liệu / hành động |
| --- | --- |
| NAS hiện tại đang chạy bình thường | Bàn giao PDF theo vai trò, kiểm vận hành; không nâng cấp lại |
| NAS reboot bình thường / sau mất điện | 07-KHOI-DONG-SAU-REBOOT-NAS.md và PDF Khởi động lại NAS |
| NAS còn 0.2.29, đúng topology V2 | 02-CAP-NHAT-NAS-VOLUME2.md; dùng đúng ZIP r2 và 5 khối NAS |
| NAS khác / cài mới | 01-CAI-MOI-NAS-RIENG.md; không áp dụng adapter site V2 theo phỏng đoán |
| Cập nhật dang dở / image lỗi quyền | Đối chiếu stage và nhật ký xử lý quyền; không chạy lại toàn updater |

## Trạng thái đã xác nhận

Ứng dụng hiện tại **0.2.30**. Revision bộ cài **r2** sửa quyền đọc program workspace bên trong image để UID/GID NAS dùng pnpm/Prisma được. Bản r2 không đổi thêm TypeScript, giao diện hoặc SQL so với 0.2.30 trước hotfix quyền.

Operator ngày 30/09/2026 xác nhận: migration và provision role sau migration đạt; API/Web/Gateway healthy, đúng image; DSM Compose đồng bộ Volume 2; HTTPS smoke đạt; Dockerfile sửa quyền đã lưu trong source NAS; đăng nhập và giao diện bình thường. Đây là kết quả đã có trước đợt tạo tài liệu này. Không chạy lại updater, tạo credential hay overlay ZIP chỉ để nhận bộ bàn giao.

## Sơ đồ lưu trữ hiện tại

| Thành phần | Vị trí / giá trị đã chốt |
| --- | --- |
| Source project | /volume2/docker-v2/ncv-dcims-production |
| Công cụ vận hành site | /volume2/docker-v2/ncv-tools/dcims-v1 |
| Project Compose | ncv-dcims-production |
| PostgreSQL | PostgreSQL 17; external volume ncv-dcims-postgres-data-v2 |
| Device của volume database | /volume2/docker-v2/ncv-dcims-postgres-data-v2 |
| Media mã hóa | /volume2/ncv-dcims/media |
| Ledger WriteOnce / WORM | /volume2/ncv-dcims-ledger-v2 |
| Backup repository / receipts | /volume2/ncv-dcims/backup/repository và /volume2/ncv-dcims/backup/receipts |
| Backup khi cập nhật | /volume2/migration-backup |
| UID / GID ứng dụng | 1044 / 65549 |
| Docker Root / Container Manager | Giữ trên Volume 1, Docker Root /volume1/@docker |

Gateway, tunnel, hostname và TLS tiếp tục dùng cấu hình riêng của site. Mẫu env dùng host/IP giả; không thay toàn bộ .env thật bằng mẫu. Docker mountpoint dưới Volume 1 không chứng minh dữ liệu DB ở Volume 1: phải kiểm Options.device của external volume.

## Database và công cụ vận hành của 0.2.30

- Runtime: credential DML riêng cho API.
- Migration: credential owner riêng cho migration/bootstrap được kiểm soát.
- Backup: credential đọc riêng cho job backup.
- Administrator: file credential cũ được giữ riêng, chỉ mount vào maintenance job được gọi rõ ràng.

Không dùng chung URL quản trị làm runtime. Không in hay gửi các file credential. Giữ đúng quyền được updater thiết lập; hotfix r2 sửa quyền mã chương trình trong image, không chmod toàn shared folder hoặc secrets.

Adapter dcims-security-update và installer install-dcims-security-update.sh cung cấp guard cho layout credential mới cùng DSM sync. Payload công cụ Volume 2 cũ vẫn được giữ để đối chiếu nguồn; không chạy lại installer Volume 2 gốc trên site đã nâng cấp. NAS hiện tại đã cài revision adapter phù hợp.

## Kiểm vận hành thường ngày

1. Mở website HTTPS do quản trị cung cấp, đăng nhập bằng tài khoản riêng.
2. Kiểm đúng phạm vi dữ liệu; tìm hồ sơ, đổi trang và mở ảnh/hợp đồng theo quyền.
3. Người vận hành đối chiếu PostgreSQL/API/Web/Gateway healthy; tunnel running.
4. Khi có lỗi, ghi thời điểm, service, request ID và bước đã làm. Chỉ gửi log đã che thông tin nhạy cảm.
5. Dùng PDF riêng sau reboot. Nếu share mã hóa chưa mount, mở khóa trong DSM trước khi start ứng dụng.

## Thay đổi 0.2.30 cần bàn giao

## Những điểm cần biết trong 0.2.30-r2

Ứng dụng là **0.2.30**; **r2** là revision bộ cài sửa quyền đọc mã chương trình trong image NAS. Tài liệu chốt ngày **30/09/2026**. NAS hiện tại đã cập nhật và đăng nhập bình thường; nhận tài liệu này không cần chạy cập nhật lại.

- Danh sách bệnh nhân lấy dữ liệu từ server, **25 hồ sơ mỗi trang**. Xem tổng số hồ sơ, dùng nút trang trước/trang sau; không kết luận bệnh nhân không tồn tại chỉ vì chưa thấy ở trang hiện tại. Tìm kiếm, lọc và sắp xếp áp dụng trên toàn bộ phạm vi được phép. Các số ca/cần bổ sung trong trang phản ánh trang hiện tại; tổng hồ sơ phản ánh kết quả tìm/lọc.
- Khi chọn đồng thời Bác sĩ và Dịch vụ, kết quả phải có **cùng một ca điều trị** thỏa cả hai điều kiện. Muốn tìm ca khác, điều chỉnh bộ lọc thay vì mở rộng quyền tài khoản.
- Back/Forward khôi phục hồ sơ đã mở kể cả khi hồ sơ không ở trang danh sách hiện tại; quyền truy cập vẫn được kiểm lại.
- Xóa ca điều trị sẽ thu hồi các link chia sẻ của ca. **Khôi phục ca không phục hồi link cũ**; người có quyền phải tạo link mới và gửi lại cho người nhận được phép.
- Nếu đăng nhập báo quá nhiều yêu cầu, chờ rồi thử lại; không bấm liên tục hoặc mở nhiều phiên đăng nhập cùng lúc.
- Trong Cài đặt, tiêu đề các khối không còn icon đứng trước. Icon trên menu và các nút vẫn được giữ. Các quyền nghiệp vụ của ADMIN, DOCTOR, LABO không đổi.

Ảnh trong PDF được chụp lại từ frontend build 0.2.30 ngày 30/09/2026, API mô phỏng và dữ liệu giả. Ảnh minh họa cách thao tác; không chứng nhận ghi dữ liệu, authorization hay UAT trên NAS.

## Kiểm chứng và phần còn phải nghiệm thu

| Phạm vi | Kết quả / giới hạn |
| --- | --- |
| Kiểm sản phẩm trước hotfix quyền, ngày 30/09 | Lint, type-check, build, unit: 688 pass / 0 fail / 1 skip; PostgreSQL 17.10 DB trống 47 migration và seed, integration và kiểm responsive 390/768/1440 đạt theo evidence |
| Hướng dẫn r2 và ZIP | 5 khối NAS kiểm syntax; 12 fixture source/env; 15 contract test; CRC/checksum/source receipt đạt |
| NAS đang dùng | Migration, role, health, image, DSM sync, HTTPS smoke, source Dockerfile hash và đăng nhập/giao diện được operator xác nhận |
| Full Docker build local sau hotfix quyền | Chưa chạy lại từ đầu: Docker engine unavailable / WSL access denied; NAS đã kiểm image candidate với cùng logic sửa quyền |
| Reboot, auto-mount, scheduler enabled | Chưa có diễn tập / xác nhận mới trong đợt này |
| Offsite, NAS full restore / DR | Chưa chứng nhận; dump parse và restore test DB không thay diễn tập khôi phục toàn bộ NAS |
| UAT nghiệp vụ trên NAS | Đăng nhập/giao diện bình thường chưa chứng minh toàn bộ role/scope/share/upload/confirm/reopen |

Xem KET_QUA_KIEM_CHUNG.md và BIEN_BAN_NGHIEM_THU.md trong 04_KIEM_CHUNG. Các phiếu nghiệm thu là biểu mẫu trống, không phải biên bản đã ký.

## Danh sách công việc mở

| Công việc | Owner | Ưu tiên | Điều kiện đóng |
| --- | --- | --- | --- |
| Diễn tập reboot và xác nhận auto-mount | Quản trị NAS | P1 | Ghi kết quả theo PDF reboot, khóa được lưu theo chính sách được duyệt |
| UAT mọi vai trò và scope trên NAS | Chủ hệ thống / quản trị ứng dụng | P1 | Dữ liệu giả, tài khoản được phép, ghi từng luồng và kết quả |
| Offsite / full restore / DR | Chủ hệ thống / phụ trách backup | P1 | Chính sách được duyệt, recovery key và diễn tập có bằng chứng |
| Fresh Docker build r2 từ đầu | Phụ trách kỹ thuật | P2 | Engine sẵn sàng, build sạch và probe UID thực đạt |

Bộ bàn giao này không thay retention, legal hold, data scope, auto-mount hoặc cấu hình đang chạy. Không cần làm các công việc mở chỉ để mở PDF.

## Cách đọc bộ bàn giao

Mở MO_DANH_MUC.html hoặc index.html. Bộ cài ở 01_BO_CAI, PDF vận hành ở 02_HUONG_DAN_CAP_NHAT, ba PDF người dùng ở 03_PDF_THEO_VAI_TRO; kiểm chứng, nguồn tài liệu và ảnh nằm ở ba thư mục còn lại. Mọi liên kết danh mục mở tab mới. Trang dùng logo/font cục bộ, có thể mở offline.

Nếu đưa lên hosting, giữ nguyên đường dẫn tương đối giữa HTML và các thư mục. Danh mục đầy đủ chứa bộ cài/source và thông tin vận hành NAS: chỉ cấp truy cập cho người được phép. Trang tài liệu công khai chỉ nên chứa PDF người dùng và tài sản giao diện đã chọn. Chưa thực hiện upload hoặc đổi hosting trong đợt này.
