← Về trang giới thiệu← Back to the overview

Chi tiết chức năngFunction detail

Bảy nhóm chức năng, mô tả tới mức dùng được để đánh giáSeven function groups, described in enough detail to evaluate

Trang giới thiệu trả lời “hệ thống có gì”. Trang này trả lời ba câu còn lại cho từng nhóm: nó chạy ra sao trong một ca làm việc thật, vì sao lại làm như thế, và cái gì nằm ngoài phạm vi. Phần ranh giới được viết ra có chủ ý — một danh sách tính năng không kèm giới hạn là thứ không dùng được để ra quyết định. The overview answers “what the system has”. This page answers the other three questions for each group: how it behaves in a real shift, why it was built that way, and what falls outside its scope. The limits are stated deliberately — a feature list without them is not something you can make a decision on.

Mô tả dưới đây bám theo bản demo tại thời điểm 05–06/08/2026. Hạng mục nào chưa chạy thì nằm ở phần Ranh giới của chính nhóm đó, không nằm lẫn vào phần mô tả. The descriptions follow the demo build as of 5–6 Aug 2026. Anything not yet running is listed under that group's own Limits, not mixed into the description.

01

Giám sát điều kiện bảo quảnStorage condition monitoring

Tình trạng bảo quản hiển thị ngay trên sơ đồ kho, và từ một cảnh báo đi thẳng xuống danh sách ống đang nằm trong vùng ảnh hưởng.Storage conditions appear on the storage map itself, and an alarm resolves straight down to the list of vials in the affected zone.

Chạy như thế nàoHow it runs

Mỗi vật chứa mang một trong sáu trạng thái phân biệt, hiển thị ngay trên ô của nó trong sơ đồ kho. Sáu trạng thái này cố ý tách bạch “tủ chưa gắn cảm biến” với “có cảm biến nhưng chưa đọc được” — hai tình huống trông giống nhau trên một ô trống, nhưng đòi hai hành động hoàn toàn khác nhau. Khi một vật chứa lệch ngưỡng, hệ thống liệt kê được các ống đang lưu bên trong nó, nên người trực không phải mở song song hai phần mềm rồi tự dò danh sách.Every container carries one of six distinct states, shown on its own cell in the storage map. The six states deliberately separate “no sensor fitted” from “sensor present but unreadable” — two situations that look identical as an empty cell, yet call for entirely different responses. When a container drifts out of range, the system lists the vials held inside it, so whoever is on call does not have to open two systems side by side and reconcile the lists by hand.

Vì sao làm vậyWhy it works this way

Quyết định thiết kế nằm ở chỗ dữ liệu giám sát được đưa vào cùng màn hình với vị trí lưu trữ, thay vì để hai bên tồn tại song song. Đi kèm là một nguyên tắc: khi số ống mà bộ thu nhận báo về lệch với số ống trong cây kho, hệ thống nói ra cả hai con số và gắn cờ, chứ không tự chọn một con số rồi im lặng. Một con số duy nhất trông gọn hơn nhưng che mất đúng thứ cần biết là hai nguồn đang không khớp.The design decision is to bring monitoring data onto the same screen as storage position rather than let the two live side by side. It comes with a rule: where the collector's vial count disagrees with the storage hierarchy's, the system reports both figures and flags them instead of quietly picking one. A single number looks tidier but hides precisely what matters — that two sources disagree.

Ranh giớiLimits

Chưa kết nối với hệ giám sát của hãng thiết bị. Lớp kết nối đã chạy và có bộ kiểm tra hợp đồng dữ liệu, nhưng hiện lấy số liệu từ nguồn mô phỏng vì còn chờ hãng cung cấp tài liệu API. Ngoài ra, chỉ những vật chứa được khai trong hồ sơ cấu hình mới có dữ liệu giám sát — tủ chưa khai sẽ hiển thị đúng trạng thái “không giám sát”.Not yet connected to the equipment vendor's monitoring system. The integration layer runs and has a contract test suite, but currently draws its figures from a simulated source while the vendor's API documentation is pending. Separately, only containers declared in the configuration profile carry monitoring data — an undeclared unit shows the explicit state “not monitored”.

02

Bản đồ kho bốn cấpFour-level storage map

Toàn bộ kho trên một màn hình, xuống tới từng ống, theo đúng cách lab vẫn ghi vị trí trong sổ.The whole repository on one screen, down to the individual vial, in the same terms the lab already writes positions down.

Chạy như thế nàoHow it runs

Cây kho có bốn cấp — tủ, ngăn, rack, hộp — và mỗi ô được tô màu theo trạng thái QC của ống đang nằm trong đó, nên nhìn một lượt là thấy vùng nào có vấn đề. Lưới hộp mở ngay tại chỗ chứ không chuyển sang màn khác, để thao tác tra cứu không làm mất ngữ cảnh đang xem. Khi tạo ống chia theo lô, người dùng chọn một vùng ô trống trên lưới rồi nhập chung một lần cho cả lô; sau khi lưu, hệ thống đọc lại dữ liệu kho rồi mới báo số ống đã vào đúng vị trí, và ô nào không ghi được thì hiện lỗi ngay tại ô đó kèm nguyên nhân.The hierarchy has four levels — freezer, shelf, rack, box — and each position is coloured by the QC state of the vial it holds, so a single glance shows where the problems are. Box grids open in place rather than on a separate screen, so looking something up does not cost you the context you were in. When aliquoting a batch, you select a region of empty positions on the grid and enter the batch in one pass; after saving, storage is re-read before the placement count is reported, and any position that failed is flagged where it sits, with its cause.

Vì sao làm vậyWhy it works this way

Cấu trúc điều hướng bám theo cấu trúc vật lý của kho, vì đó là mô hình người dùng đã có sẵn trong đầu — họ không phải học một cách gọi vị trí thứ hai. Về mặt kỹ thuật, toàn bộ sơ đồ được dựng bằng hai lượt gọi dữ liệu thay cho khoảng tám nghìn lượt nếu truy vấn tuần tự từng ô; con số đó quan trọng vì mở sơ đồ kho là thao tác lặp lại nhiều lần mỗi ngày, và một màn hình chậm sẽ bị người ta bỏ dùng.Navigation follows the physical layout of the repository, because that is the model users already carry — they do not have to learn a second way of naming positions. Technically, the whole map is built from two data calls instead of roughly eight thousand if each position were queried in turn; that number matters because opening the map is a many-times-a-day action, and a slow screen is a screen people stop using.

Ranh giớiLimits

Sơ đồ suy ra từ dữ liệu kho đã khai, nên vật chứa chưa được khai trong hồ sơ cấu hình sẽ không xuất hiện. Đây là hệ quả có chủ ý của việc lấy cấu hình làm nguồn sự thật, chứ không phải lỗi hiển thị.The map is derived from declared storage data, so a container not present in the configuration profile does not appear. That is a deliberate consequence of treating configuration as the source of truth, not a display fault.

03

Điều kiện xuất mẫuRelease conditions

Mẫu chỉ rời kho khi đủ điều kiện, hoặc đi đường ngoại lệ có người ký và người duyệt.Specimens leave storage only when the conditions are met, or via a deviation path that someone signs and someone else approves.

Chạy như thế nàoHow it runs

Ngay tại bước tạo lệnh xuất, từng ống được đối chiếu với bộ tiêu chuẩn QC đang hiệu lực. Ba trường hợp bị giữ lại, và mỗi trường hợp hiện lý do riêng chứ không gộp thành một thông báo chung: kết quả ngoài ngưỡng, chưa có kết quả, và kết luận của người ký không khớp với số đo đã nhập. Nếu lab vẫn cần xuất, đường ngoại lệ yêu cầu chọn mục đích sử dụng trong năm nhóm, nêu lý do, ký xác nhận, và qua phê duyệt của người thứ hai trước khi mẫu được phát.At the moment a distribution order is created, each vial is checked against the QC specification in force. Three conditions hold a vial back, each shown with its own reason rather than folded into one generic message: a result out of specification, a result not yet present, and a signed conclusion that contradicts the recorded measurements. Where the lab still needs to release, the deviation path requires one of five intended uses, a stated reason, a signature, and a second person's approval before the specimen goes out.

Vì sao làm vậyWhy it works this way

Cổng kiểm đặt ở bước tạo lệnh chứ không phải lúc phát mẫu, vì đó là thời điểm sớm nhất mà việc dừng lại còn rẻ. Bộ tiêu chuẩn QC có đánh số phiên bản và ngày hiệu lực, nên một mẫu luôn được chấm theo đúng bộ tiêu chuẩn áp dụng tại thời điểm đó, kể cả khi ngưỡng đã thay đổi sau này — nếu không, mọi hồ sơ cũ sẽ bị chấm lại theo chuẩn mới mỗi lần lab điều chỉnh ngưỡng. Và khi kỹ thuật viên bỏ ống không đạt ra khỏi lệnh, lệnh mở lại được ngay mà không phải tạo lại từ đầu, vì bắt làm lại là cách nhanh nhất khiến người ta tìm đường vòng.The gate sits at order creation rather than at hand-over, because that is the earliest point at which stopping is still cheap. QC specifications are versioned and dated, so a specimen is always assessed against the standard that applied at the time, even if the thresholds changed later — otherwise every historical record would be re-judged against new limits each time the lab adjusts them. And when a technician removes a non-conforming vial, the order reopens immediately rather than having to be rebuilt, because forcing a redo is the fastest way to make people find a way around the system.

Ranh giớiLimits

Cổng này thực thi bộ tiêu chuẩn mà lab khai, chứ không thay lab quyết định ngưỡng nào là đúng. Phiên bản hiện tại mang nhãn Research Use Only và chưa qua thẩm định, nên không dùng cho mẫu phục vụ mục đích chẩn đoán.The gate enforces the specification the lab declares; it does not decide on the lab's behalf which thresholds are correct. This version is Research Use Only and unvalidated, so it is not for specimens used for diagnostic purposes.

04

Quy trình lab theo lịchScheduled lab workflow

Việc của cả lab nằm trên một lịch chung, không nằm trong đầu từng người.The lab's work sits on one shared schedule, not in individual people's heads.

Chạy như thế nàoHow it runs

Một màn hình gồm ba phần: lịch tuần theo từng lô, hàng đợi công việc chưa ai nhận, và nơi soạn quy trình. Mỗi bước trong quy trình có giá trị mục tiêu điền sẵn, kỹ thuật viên chỉ nhập khi số thực tế khác với mục tiêu. Trước khi dữ liệu được ghi vào hồ sơ lô, màn hình nói rõ có bao nhiêu trường đang lệch so với mục tiêu, để người ký biết chính xác mình đang xác nhận điều gì.One screen holds three things: the weekly schedule by batch, the queue of work nobody has picked up, and where protocols are authored. Each step arrives with its target value pre-filled, and the technician types only where the actual figure differs. Before anything reaches the batch record, the screen states how many fields depart from target, so whoever signs knows exactly what they are confirming.

Vì sao làm vậyWhy it works this way

Điền sẵn giá trị mục tiêu không chỉ để gõ ít đi. Nó làm cho phần LỆCH nổi lên thành thứ duy nhất phải gõ, nên chỗ bất thường tự hiện ra thay vì chìm giữa hàng chục ô đều được nhập tay. Hàng đợi công việc chưa ai nhận nằm chung màn với lịch vì đó là hai nửa của cùng một câu hỏi: việc gì đang chờ, và ai đang làm.Pre-filling targets is not only about typing less. It makes the deviation the only thing that has to be typed, so the abnormal surfaces on its own instead of hiding among dozens of manually entered fields. The queue of unclaimed work shares a screen with the schedule because they are two halves of the same question: what is pending, and who is on it.

Ranh giớiLimits

Đây là lịch công việc của quy trình lab, không phải hệ chấm công hay quản lý nhân sự. Nó theo dõi bước xử lý và người nhận bước đó, không theo dõi giờ làm.This is a schedule of laboratory work, not a timekeeping or HR system. It tracks processing steps and who has taken them, not working hours.

05

Đề tài thu mẫu và phả hệCollection protocols and lineage

Mỗi ống thuộc về đúng một đề tài thu mẫu, và đề tài quyết định phần còn lại.Every vial belongs to exactly one collection protocol, and the protocol governs the rest.

Chạy như thế nàoHow it runs

Đề tài thu mẫu là khung bao toàn bộ: thu cho nghiên cứu hay dịch vụ nào, thu ở đâu, thu những loại mẫu gì, và ai có quyền thao tác. Dữ liệu đi theo thứ tự đề tài, người hiến, lần thu, mẫu gốc, rồi mới tới vị trí trong tủ, ngăn, rack, hộp. Trang chủ có bảng đề tài kèm số người hiến và số mẫu gốc hiện có; bấm vào một đề tài là mở thẳng danh sách người hiến của đề tài đó. Từ một ống chia, hệ thống truy ngược được về mẫu gốc và người hiến.A collection protocol frames everything: which study or service the specimens are collected for, where, which specimen types, and who may act on them. Data follows the order protocol, donor, visit, primary specimen, then position within freezer, shelf, rack and box. The home screen lists protocols with the donor and primary-specimen counts held under each; selecting one opens that protocol's donor list. From an aliquot, the system traces back to its parent specimen and donor.

Vì sao làm vậyWhy it works this way

Buộc mọi ống thuộc về đúng một đề tài là ràng buộc mạnh nhất trên trang này, và nó cố ý mạnh. Khi thông tin “ống này thu cho việc gì” nằm ở một trường ghi chú tự do, câu hỏi đó không trả lời được bằng truy vấn, chỉ trả lời được bằng cách hỏi người đã nhập. Đưa nó thành khung cấu trúc thì quyền thao tác, loại mẫu và nơi thu đều bám theo được.Requiring every vial to belong to exactly one protocol is the strongest constraint on this page, and deliberately so. When “what was this vial collected for” lives in a free-text note, that question cannot be answered by a query — only by asking whoever typed it. Making it structural means permissions, specimen types and collection sites can all hang off it.

Ranh giớiLimits

Bảng đề tài ở trang chủ suy ra từ mẫu gốc, nên một đề tài đã khai nhưng chưa thu mẫu nào sẽ chưa xuất hiện trong bảng đó.The protocol list on the home screen is derived from primary specimens, so a protocol that has been declared but has no specimens yet does not appear in it.

06

Nhật ký truy vết và chữ kýAudit trail and signatures

Mọi thao tác trên mẫu đều có tên người và thời điểm đi kèm.Every action on a specimen carries a name and a timestamp.

Chạy như thế nàoHow it runs

Nhật ký ghi thao tác, người thực hiện và thời điểm cho từng ống. Những bước mang trách nhiệm cá nhân — kết luận QC, xuất mẫu theo đường ngoại lệ — có chữ ký của người thao tác kèm phê duyệt của người thứ hai. Ở chiều ngược lại, tài khoản kỹ thuật viên không hiển thị thông tin định danh người hiến: quyền xem dữ liệu được cắt theo vai trò chứ không mở đều cho mọi người đăng nhập.The log records the action, the operator and the timestamp for each vial. Steps that carry personal responsibility — a QC conclusion, a release via the deviation path — take the operator's signature plus a second person's approval. In the other direction, technician accounts do not display donor identifiers: visibility is cut by role rather than opened evenly to everyone who can log in.

Vì sao làm vậyWhy it works this way

Mục tiêu không phải là ghi lại thật nhiều, mà là để một quyết định luôn truy được về hai thứ cùng lúc: ai ra quyết định, và dữ liệu nào có trong tay lúc đó. Vế thứ hai là lý do bộ tiêu chuẩn QC phải có phiên bản và ngày hiệu lực — thiếu nó thì nhật ký chỉ nói được người ký là ai, không nói được người đó nhìn thấy gì.The aim is not to record as much as possible, but to make a decision traceable to two things at once: who made it, and what data was in front of them. The second half is why QC specifications must be versioned and dated — without that, the log can say who signed but not what they were looking at.

Ranh giớiLimits

Hệ thống hỗ trợ chữ ký dạng ảnh scan và chữ ký vẽ trên màn hình, kèm mã băm và nhật ký phê duyệt. Chữ ký số theo định danh quốc gia thì chưa hỗ trợ. Yêu cầu chữ ký điện tử đạt chuẩn GMP là một hạng mục riêng, hiện chưa nằm trong phạm vi.The system supports scanned and on-screen signatures, with a hash and an approval log. National-eID digital signatures are not supported. Electronic signatures meeting GMP requirements are a separate scope, not currently included.

07

Cấu hình theo từng labPer-lab configuration

Lab có quy trình khác thì đổi hồ sơ cấu hình, không phải sửa phần mềm.A lab with a different workflow gets a different profile, not a code change.

Chạy như thế nàoHow it runs

Loại vật chứa, số cấp trong cây kho, biểu mẫu xử lý và cấy chuyền, chỉ tiêu và ngưỡng QC, và việc tủ nào được gắn cảm biến giám sát — tất cả đều khai báo bằng cấu hình. Mỗi lab chạy hồ sơ riêng của mình trên cùng một lõi phần mềm.Container types, hierarchy depth, processing and passage forms, QC parameters and thresholds, and which units carry monitoring sensors are all declared in configuration. Each lab runs its own profile on the same software core.

Vì sao làm vậyWhy it works this way

Tách phần khai riêng của lab khỏi lõi phần mềm là điều kiện để nâng cấp không phá đi những gì lab đã dựng. Nếu quy trình riêng của mỗi lab được cài bằng cách sửa mã nguồn, thì mỗi bản cài trở thành một nhánh riêng, và tới lần nâng cấp thứ hai thì không còn ai dám nâng cấp nữa. Đây cũng là lý do sơ đồ kho chỉ hiển thị vật chứa đã khai: cấu hình là nguồn sự thật, không phải một lớp trang trí đặt cạnh nó.Separating what a lab declares from the software core is what makes upgrades survivable. If each lab's particular workflow were implemented by editing source, every installation would become its own branch, and by the second upgrade nobody would dare upgrade at all. It is also why the storage map shows only declared containers: configuration is the source of truth, not a decorative layer beside it.

Ranh giớiLimits

Cấu hình bao phủ các hạng mục kể trên, không bao phủ mọi thay đổi có thể hình dung. Yêu cầu nằm ngoài phạm vi khai báo vẫn là việc phát triển, và cần thống nhất bằng văn bản trước.Configuration covers the items listed above, not every change one might imagine. A requirement outside what can be declared is still development work, and needs to be agreed in writing beforehand.

08

Triển khai và hỗ trợDeployment and support

Cài tại chỗ, dữ liệu ở lại trong lab — và vì vậy hỗ trợ phải ở gần.Installed on site, data stays in the lab — and support therefore has to be nearby.

Chạy như thế nàoHow it runs

Mỗi lab chạy một bản cài riêng trên hạ tầng của mình. Không có cơ sở dữ liệu dùng chung giữa các đơn vị, và dữ liệu mẫu không rời khỏi mạng nội bộ của lab. Với lab không có sẵn Docker, hệ thống có bộ cài chạy trực tiếp trên Windows, đóng gói kèm máy chủ ứng dụng và cơ sở dữ liệu.Each lab runs its own installation on its own infrastructure. No database is shared between organisations, and specimen data does not leave the lab's internal network. For labs without Docker, a Windows installer is available with the application server and database bundled.

Vì sao làm vậyWhy it works this way

Cài tại chỗ giải quyết câu hỏi dữ liệu ở đâu, nhưng nó tạo ra một hệ quả mà nhiều bên bán phần mềm không nói ra: khi hệ có sự cố, hoặc người hỗ trợ phải tới được nơi, hoặc lab phải mở một đường vào mạng nội bộ. Cả hai đều đòi đội hỗ trợ ở gần và có mặt được. Đây là lý do đường dây trực nối thẳng tới đội dựng hệ thống, trong nước, cùng múi giờ, trao đổi bằng tiếng Việt — không qua đại lý phân phối và không qua hàng đợi phiếu hỗ trợ ở nước ngoài.On-premise installation settles the question of where the data lives, but it creates a consequence many software vendors leave unsaid: when something breaks, either support reaches the site or the lab opens a route into its internal network. Both require a support team that is close by and able to turn up. That is why the support line runs straight to the team that built the system — in country, in the same time zone, in Vietnamese — with no distributor in between and no overseas ticket queue.

Ranh giớiLimits

Phạm vi hỗ trợ, thời gian phản hồi và điều kiện bảo trì được thống nhất bằng văn bản cho từng lab, vì chúng phụ thuộc vào quy mô triển khai và khoảng cách địa lý. Trang này không thay thế các cam kết đó.The scope of support, response times and maintenance terms are agreed in writing for each lab, since they depend on deployment size and distance. This page does not stand in for those commitments.

Muốn thấy tận mắt?Want to see it running?

Buổi làm việc khoảng 30 phút trên dữ liệu của bản demo: tra cứu mẫu, tạo ống chia theo lô, và tạo lệnh xuất cho một ống chưa đạt QC.About 30 minutes on the demo dataset: look up a specimen, aliquot a batch, and create a distribution order for a non-conforming vial.