Giới thiệu

Hoàn thành bảng câu hỏi là một nhiệm vụ cốt lõi đối với hầu hết nhân viên y tế sử dụng ứng dụng sức khoẻ di động.
Việc nhập dữ liệu có thể gặp khó khăn và xảy ra lỗi. Mục tiêu của chúng tôi khi xây dựng thư viện Thu thập dữ liệu có cấu trúc (SDC) và các nguyên tắc thiết kế là giúp bạn cải thiện trải nghiệm người dùng khi nhập dữ liệu cũng như chất lượng của dữ liệu được thu thập.
Bốn chủ đề được đề cập trong phần này là:
Bố cục và điều hướng

Bố cục cuộn dài và bố cục phân trang
Android FHIR SDK có 2 lựa chọn bố cục để bạn chọn:
- Cuộn dài (mặc định)
- Được phân trang
Bảng câu hỏi cuộn dài cho thấy tất cả các câu hỏi trên một trang và người dùng chuyển đến từng câu hỏi bằng cách cuộn.
Bảng câu hỏi phân trang hiển thị nội dung trên các trang riêng biệt. Bạn có thể nhóm các câu hỏi hoặc trường nhập có liên quan với nhau trên một trang. Các nút quay lại và tiếp theo được đặt ở cuối trang để di chuyển giữa các trang.
Tìm hiểu cách phân trang bảng câu hỏi trên GitHub
Bạn nên chọn bố cục nào?
Mỗi lựa chọn bố cục đều có ưu điểm và nhược điểm riêng. Dưới đây là một số thuộc tính của từng loại bố cục mà bạn nên cân nhắc khi lựa chọn bố cục cần sử dụng.
| Cuộn dài | Được phân trang | |
|---|---|---|
| Tốc độ điều hướng | Thao tác nhanh hơn | Điều hướng chậm hơn |
| Độ chính xác của thông tin điều hướng | Điều hướng kém chính xác | Chỉ đường chính xác hơn |
| Tập trung lại vào câu hỏi sau khi chuyển đổi nhiệm vụ | Khó định hướng lại sau khi bị gián đoạn | Dễ dàng định hướng lại sau khi bị gián đoạn |
| Hoàn tất bảng câu hỏi kỹ thuật số sau khi đến thăm (sao chép từ bản giấy) | Dễ dàng hơn khi sao chép từ giấy | Khó khăn hơn khi sao chép từ giấy |
| Màn hình nhỏ | Không phù hợp với màn hình nhỏ | Phù hợp hơn với màn hình nhỏ |
| Hỗ trợ tiếp cận | Ảnh hưởng tiêu cực đến tính năng hỗ trợ tiếp cận. Khó di chuyển. | Hỗ trợ tiếp cận tốt hơn. Các màn hình riêng biệt mà trình đọc màn hình, tính năng chuyển văn bản sang lời nói và các công nghệ khác có thể xử lý. |
| Không gian cho hướng dẫn và giải thích | Hướng dẫn và chỉ dẫn kém hiệu quả | Phù hợp hơn cho hướng dẫn và chỉ dẫn |
Cuộn dài
Đánh số câu hỏi để người dùng dễ dàng di chuyển trong bố cục một trang.
Giảm cỡ chữ của tiêu đề câu hỏi khi sử dụng chế độ cuộn dài để có thể xem nhiều nội dung hơn trên màn hình. Ví dụ: Thao tác cuộn dài là 16 px. Phân trang là 28 px.
Phân trang
Bàn phím, trình đơn thả xuống và các thành phần khác chiếm không gian trên trang, vì vậy, hãy đặt mục tiêu một câu hỏi trên mỗi trang.
Nội dung phải xuất hiện bên trên màn hình đầu tiên.
Ví dụ: Cả 3 trường văn bản này đều liên quan đến thông tin về người liên hệ thay thế, vì vậy, chúng được nhóm lại với nhau trên một trang.
Tránh nhóm nội dung không liên quan trên một trang để tránh gây nhầm lẫn.
Chỉ báo tiến trình
Chỉ báo tiến trình cho biết tiến trình đã thực hiện trong bảng câu hỏi.
Thêm chỉ báo tiến trình vào các bảng câu hỏi dài để giúp người dùng điều hướng và xem tiến trình. Chỉ báo tiến trình cho biết vị trí trong bảng câu hỏi và số lượng câu hỏi còn lại cần hoàn thành.
Đặt ở trên cùng, phía trên câu hỏi và điểm neo để luôn hiển thị ngay cả khi cuộn.
Có thể đặt ở dưới cùng, phía trên nút quay lại và nút tiếp theo. Với bố cục này, bạn cũng có thể hiển thị trang mà người dùng đang truy cập.
Nút điều hướng
Các nút điều hướng (quay lại, tiếp theo) được cố định ở cuối bảng câu hỏi. Trong chế độ cuộn vô hạn hoặc trên trang cuối cùng của bảng câu hỏi phân trang, nút tiếp theo sẽ có nhãn Gửi.
Giữ các nút ở một vị trí nhất quán và luôn sử dụng các nút đang hoạt động được gắn nhãn bằng hành động của chúng, chẳng hạn như quay lại và tiếp theo.
Luôn hiển thị các nút đang hoạt động, ngay cả khi biểu mẫu chưa hoàn tất. Khi người dùng nhấn vào nút tiếp theo, hãy hiện một hộp thoại bật lên có hướng dẫn để hoàn tất các trường còn thiếu hoặc lỗi xác thực.
Nút không hoạt động khiến người dùng khó biết cách khắc phục vấn đề.
Tránh chỉ dùng nút biểu tượng. Luôn gắn nhãn cho các nút bằng một hành động mô tả.
Câu hỏi và hướng dẫn
- Tiêu đề bảng câu hỏi.
- Chỉ báo tiến trình.
- Tiêu đề nhóm.
- Tiêu đề câu hỏi.
- Hướng dẫn.
- Trường nhập dữ liệu.
- Định dạng mục nhập.
- Các trường bắt buộc.
- Trợ giúp.
Tiêu đề nhóm
Tiêu đề nhóm là tiêu đề văn bản xuất hiện phía trên tiêu đề câu hỏi.
Sử dụng tiêu đề nhóm để nhóm các câu hỏi tương tự với nhau. Chỉ sử dụng tiêu đề nhóm khi tiêu đề đó thêm thông tin hữu ích.
Sử dụng tiêu đề ngắn để nhóm các câu hỏi tương tự với nhau. Ví dụ: tất cả các câu hỏi liên quan đến tiền sử bệnh của bệnh nhân đều được nhóm lại.
Tránh dùng tiêu đề phức tạp hoặc tiêu đề dài quá một dòng.
Tiêu đề câu hỏi
Tiêu đề câu hỏi mô tả ngắn gọn thông tin được yêu cầu. Tiêu đề câu hỏi có cỡ chữ lớn nhất trên trang để thu hút sự chú ý của người dùng vào câu hỏi.
Mỗi trang hoặc câu hỏi đều phải có một tiêu đề câu hỏi. Đặt tiêu đề câu hỏi ngắn gọn hoặc đặt tiêu đề dưới dạng câu hỏi.
Tiêu đề ngắn giúp người dùng đọc dễ dàng hơn.
Tránh đặt câu hỏi quá dài hoặc lồng hai câu hỏi vào nhau.
Luôn thêm tiêu đề câu hỏi để người dùng dễ dàng biết được thông tin họ cần nhập.
Hướng dẫn
Hướng dẫn là một trường văn bản không bắt buộc xuất hiện bên dưới tiêu đề câu hỏi.
Sử dụng trường hướng dẫn để giải thích các hướng dẫn liên quan, chẳng hạn như liệu câu hỏi có bắt buộc hay không, người dùng có thể chọn bao nhiêu lựa chọn (một hoặc nhiều) và người dùng nên làm gì nếu không thể hoàn tất tất cả thông tin hoặc trả lời câu hỏi.
Sử dụng trường hướng dẫn để cho biết liệu một câu hỏi có bắt buộc hay không và có thể chọn bao nhiêu lựa chọn.
Sử dụng hướng dẫn để cho người dùng biết những việc cần làm nếu họ gặp phải một trường hợp như không thể hoàn tất tất cả các trường.
Sử dụng hướng dẫn để cung cấp thêm bối cảnh hoặc định nghĩa cho các thuật ngữ được dùng trong tiêu đề câu hỏi.
Nội dung nhãn
Văn bản nhãn cho người dùng biết thông tin nào được yêu cầu cho một trường văn bản hoặc trình đơn thả xuống. Khi trường này được chọn, văn bản nhãn sẽ di chuyển từ giữa trường văn bản lên trên cùng.
Mỗi trường văn bản và hộp thả xuống đều phải có nhãn. Văn bản nhãn phải ngắn gọn, rõ ràng và hiển thị đầy đủ.
Văn bản nhãn phải ngắn gọn, rõ ràng và hiển thị đầy đủ.
Văn bản nhãn không được quá dài, bị cắt bớt hoặc chiếm nhiều dòng.
Luôn gắn nhãn cho trường văn bản để người dùng biết cần nhập thông tin gì.
Định dạng mục nhập
EntryFormat xuất hiện bên dưới trường văn bản để thông báo cho người dùng về định dạng cụ thể mà họ cần nhập dữ liệu. Thông báo lỗi sẽ xuất hiện trong trường EntryFormat và thay thế các hướng dẫn EntryFormat hiện có.
Sử dụng EntryFormat cho ngày, số điện thoại, đơn vị và số nguyên.
Hiện định dạng ngày bên dưới trường và thêm một cụm từ mô tả.
Việc không hiển thị định dạng dữ liệu có thể dẫn đến việc nhập dữ liệu không chính xác.
Khi nhập phạm vi y tế, hãy cung cấp ví dụ về phạm vi bình thường. Điều này có thể giúp người dùng phát hiện lỗi hoặc số nằm ngoài phạm vi.
Các trường bắt buộc
Các trường bắt buộc cho biết rằng người dùng phải hoàn tất trường và không thể chuyển sang bước tiếp theo cho đến khi hoàn tất trường.
Để cho biết một trường là bắt buộc, hãy hiển thị dấu hoa thị (*) ở cuối tiêu đề câu hỏi. Thêm "câu hỏi bắt buộc" vào trường hướng dẫn vì không phải ai cũng biết dấu hoa thị (*) có nghĩa là gì. Nếu không có tiêu đề câu hỏi, hãy hiển thị dấu hoa thị (*) trong văn bản nhãn.
Cho biết trường là bắt buộc bằng dấu hoa thị (*) và đưa ra hướng dẫn bằng văn bản cho biết "câu hỏi bắt buộc". Nhiều người không biết dấu hoa thị(*) có nghĩa là gì và sẽ được lợi từ lời giải thích.
Tránh chỉ hiển thị dấu hoa thị (*) mà không có nội dung mô tả bằng văn bản về ý nghĩa của dấu này.
Sử dụng những thuật ngữ quen thuộc nhất với người dùng. Ví dụ: "Bắt buộc" có thể là thuật ngữ quen thuộc hơn và được dùng ở một số quốc gia thay vì "Bắt buộc".
Nếu hầu hết các câu hỏi đều là bắt buộc, hãy cho biết câu hỏi nào là không bắt buộc.
Nếu không có tiêu đề câu hỏi, hãy hiển thị dấu hoa thị trong văn bản nhãn.
Trợ giúp
Biểu tượng trợ giúp sẽ xuất hiện bên cạnh tiêu đề câu hỏi. Khi bạn nhấn vào biểu tượng này, một hộp thông tin trợ giúp sẽ xuất hiện cùng với thông tin bổ sung. Nhấn lại vào biểu tượng này sẽ đóng hộp thông tin trợ giúp.
Đây là thành phần tùy chọn. Chỉ sử dụng khi cần hiển thị thêm thông tin không cần thiết phải luôn hiển thị.
Sử dụng trợ giúp cho thông tin mà người dùng có thể chỉ cần xem một lần hoặc thông tin cung cấp thêm.
Tránh ẩn hướng dẫn bên trong hộp Trợ giúp mà mọi người đều có thể nhìn thấy.
Thu thập dữ liệu
Trường hợp sử dụng từng thành phần
| Loại mục nhập dữ liệu | Lựa chọn Boolean | Một lựa chọn | Trắc nghiệm | Lựa chọn mở | Trình đơn thả xuống | Bộ chọn ngày | Trường văn bản | Thanh trượt | Tự động hoàn tất |
|---|---|---|---|---|---|---|---|---|---|
| Chọn Có hoặc Không | |||||||||
| Chọn một tùy chọn | thận trọng |
||||||||
| Chọn nhiều lựa chọn | thận trọng |
||||||||
| Văn bản | |||||||||
| Ngày | |||||||||
| Numbers | thận trọng |
Trường văn bản
Trường văn bản cho biết người dùng có thể nhập thông tin.
Sử dụng trường văn bản khi người dùng cần nhập văn bản vào bảng câu hỏi, chẳng hạn như tên, số điện thoại hoặc địa chỉ. Hạn chế việc nhập dữ liệu yêu cầu nhập văn bản (bàn phím) khi bạn có thể sử dụng lựa chọn được điền sẵn (lựa chọn trắc nghiệm hoặc lựa chọn duy nhất).
Tìm hiểu thêm về các trường văn bản trên material.io
Sử dụng trường văn bản để nhập dữ liệu yêu cầu nhập các từ hoặc số riêng biệt.
Tránh sử dụng câu trả lời dạng văn bản tự do khi có thể sử dụng câu trả lời dạng chọn nhiều, trình đơn thả xuống hoặc chọn một lựa chọn.
Một lựa chọn và lựa chọn boolean
Lựa chọn duy nhất và lựa chọn boolean là một chế độ kiểm soát lựa chọn xuất hiện dưới dạng nút chọn khi người dùng được yêu cầu chọn một lựa chọn trong số các lựa chọn.
Sử dụng lựa chọn boolean khi có lựa chọn nhị phân là "Có" hoặc "Không". Nếu không, hãy sử dụng thành phần lựa chọn duy nhất. Nếu có hơn 10 lựa chọn trong danh sách, hãy sử dụng trình đơn thả xuống thay vì lựa chọn duy nhất. Trình đơn thả xuống có mật độ cao hơn và dễ điều hướng hơn khi có nhiều lựa chọn.
Sử dụng lựa chọn Boolean khi các lựa chọn là "có" và "không".
Sử dụng lựa chọn duy nhất khi người dùng có thể chọn một lựa chọn trong danh sách.
Tránh dùng lựa chọn duy nhất cho danh sách quá dài (từ 10 lựa chọn trở lên). Thay vào đó, hãy dùng danh sách thả xuống.
Bộ chọn ngày
Bộ chọn ngày cho phép người dùng nhập ngày thông qua cả bộ chọn ngày trên lịch và bàn phím. Bộ chọn ngày trên lịch sẽ được kích hoạt khi bạn nhấn vào biểu tượng lịch.
Chỉ sử dụng bộ chọn ngày trên lịch cho những ngày gần với ngày hôm nay, chẳng hạn như kỳ kinh cuối hoặc lần khám tiếp theo. Nếu không, hãy ưu tiên nhập ngày bằng bàn phím, chẳng hạn như ngày sinh.
Để nhập ngày, hãy bật cả phương thức nhập bằng bàn phím (nhấn vào hộp văn bản) và bộ chọn ngày trên lịch (nhấn vào biểu tượng).
Tránh chỉ dùng bộ chọn ngày trên lịch làm phương thức nhập cho ngày sinh. Khó chuyển đến tháng và năm.
Trình đơn thả xuống
Trình đơn thả xuống cho phép người dùng lựa chọn trong số nhiều lựa chọn. Khi người dùng bắt đầu nhập, các lựa chọn sẽ lọc dựa trên nội dung đã nhập. Điều này có thể giúp người dùng nhanh chóng tìm thấy lựa chọn phù hợp trong một danh sách lớn.
Trình đơn thả xuống là một lựa chọn thay thế tuyệt vời cho lựa chọn duy nhất khi danh sách các lựa chọn rất dài (từ 10 lựa chọn trở lên) vì chúng chiếm ít không gian hơn.
Sử dụng trình đơn thả xuống khi chọn một mục trong danh sách các mục rất dài, chẳng hạn như chọn một tiểu bang hoặc thành phố.
Tránh dùng trình đơn thả xuống khi bạn có thể nhập nội dung dễ dàng hơn thay vì phải di chuyển qua tất cả các lựa chọn, chẳng hạn như độ tuổi.
Trắc nghiệm
Trắc nghiệm là một chế độ kiểm soát lựa chọn xuất hiện dưới dạng hộp đánh dấu khi người dùng có thể chọn nhiều mục trong danh sách các lựa chọn.
Sử dụng lựa chọn trắc nghiệm khi người dùng chỉ có thể chọn trong danh sách các lựa chọn được xác định trước. Nếu người dùng cũng có thể thêm câu trả lời tự do của riêng họ, hãy sử dụng thành phần lựa chọn mở. Trong trường hướng dẫn, hãy viết "Chọn tất cả đáp án chính xác" để người dùng biết họ có thể chọn nhiều lựa chọn.
Giao diện mặc định là một vùng chứa xung quanh hộp đánh dấu để làm nổi bật vùng có thể nhấn.
Tránh hiển thị nhiều lựa chọn trên mỗi hàng. Do sự khác biệt về kích thước màn hình và cỡ chữ của điện thoại, văn bản có thể bị cắt bớt.
Lựa chọn mở
Lựa chọn mở tương tự như lựa chọn trắc nghiệm, nhưng cho phép người dùng chọn Khác và nhập văn bản tuỳ ý.
Sử dụng lựa chọn mở khi có một danh sách các lựa chọn đặt sẵn, nhưng người dùng cũng có thể thêm các lựa chọn khác. Hãy sử dụng lựa chọn mở khi bạn biết phần lớn các lựa chọn, nhưng bạn dự đoán một số người dùng sẽ chọn Khác vì không có lựa chọn nào được cung cấp là phù hợp.
Sử dụng khi việc thu thập dữ liệu chính xác là rất quan trọng và không có lựa chọn nào được xác định trước áp dụng. Ví dụ: nghề nghiệp.
Tránh sử dụng nếu phần lớn các câu trả lời đều yêu cầu chọn Khác. Trong trường hợp đó, hãy sử dụng trường văn bản hoặc trường đoạn văn.
Thanh trượt
Thanh trượt cho phép người dùng lựa chọn trong một phạm vi các giá trị. Thanh trượt trong Android FHIR SDK là một thanh trượt rời rạc. Thanh trượt rời rạc cho phép người dùng chọn một giá trị cụ thể trong một phạm vi được xác định trước. Bạn có thể dùng dấu đánh dấu để cho biết các giá trị có sẵn. Tránh sử dụng thanh trượt để nhập dữ liệu dạng số. Thay vào đó, hãy sử dụng một trường văn bản hoặc trình đơn thả xuống.
Tìm hiểu thêm về thanh trượt trên material.io
Tránh sử dụng thanh trượt cho các giá trị cụ thể khi có một phạm vi lớn. Thay vào đó, hãy sử dụng các trường văn bản có phương thức nhập bằng bàn phím.
Xác thực dữ liệu và lỗi
Xác thực dữ liệu
Xác thực dữ liệu sẽ hạn chế loại dữ liệu hoặc các giá trị có thể nhập vào một trường văn bản. Xác thực dữ liệu có thể cải thiện chất lượng dữ liệu được thu thập.
Sử dụng trường EntryFormat để hiển thị các hạn chế về định dạng hoặc giá trị. Hiện thông báo lỗi xác thực dữ liệu có ý nghĩa ngay trong dòng và ngay lập tức để người dùng có thể khắc phục lỗi.
Hiện trước các quy định hạn chế về xác thực dữ liệu để người dùng biết cách nhập dữ liệu.
Nếu không cho biết số điện thoại cần có bao nhiêu chữ số, người dùng có thể gặp lỗi và mất nhiều thời gian hơn để hoàn tất.
Hiện ngay các lỗi xác thực dữ liệu có ý nghĩa sau khi hoàn tất trường. Thông báo lỗi sẽ thay thế văn bản định dạng mục nhập hiện có.
Đừng đợi đến khi người dùng nhấn nút "gửi" mới hiển thị lỗi xác thực lần đầu tiên.
Lỗi
Thông báo lỗi sẽ cảnh báo người dùng khi có vấn đề xảy ra và cho họ biết cách khắc phục vấn đề.
Sử dụng màu sắc, biểu tượng và văn bản để truyền đạt lỗi.
Tìm hiểu thêm về thông báo lỗi trên material.io
Giải thích lý do xảy ra lỗi (câu hỏi bắt buộc) và những việc có thể làm để khắc phục lỗi (chọn một lựa chọn).
Thông báo lỗi chỉ có nội dung "lỗi" sẽ không giúp người dùng biết cách khắc phục lỗi.
Ví dụ: "Định dạng ngày không chính xác. Định dạng phải là dd/mm/yyyy".
Tránh đổ lỗi cho người dùng bằng các thông báo lỗi có chứa từ "bạn". Ví dụ: "Bạn đã nhập sai định dạng ngày."
Sử dụng màu sắc, biểu tượng và văn bản để thông báo cho người dùng rằng có lỗi.
Để hỗ trợ các vấn đề thường gặp về thị lực như mù màu đỏ và xanh lục, hãy tránh chỉ dựa vào màu sắc để truyền đạt lỗi.
Một biểu tượng thường là đủ. Đừng sử dụng quá nhiều biểu tượng để truyền đạt lỗi.
