Chuyển dữ liệu giữa hai ứng dụng sức khỏe như thế nào?
- Có thể chuyển dữ liệu từ ứng dụng sức khỏe này sang ứng dụng khác không?
- Định dạng dữ liệu nào quyết định việc chuyển được hay không?
- Cần những quyền nào để đọc và ghi dữ liệu sức khỏe?
- Dữ liệu nào thường chuyển được và dữ liệu nào dễ bị thiếu?
- Vì sao đã cấp quyền nhưng dữ liệu vẫn không xuất hiện?
- Cách kiểm tra trước khi chuyển dữ liệu giữa hai ứng dụng sức khỏe
Có thể chuyển dữ liệu từ ứng dụng sức khỏe này sang ứng dụng khác không?
Có, nhưng không phải lúc nào cũng theo cách “xuất từ ứng dụng A rồi nhập vào ứng dụng B”.
Có ba mô hình phổ biến. Ứng dụng thứ nhất có thể ghi dữ liệu vào một kho sức khỏe trung gian, sau đó ứng dụng thứ hai đọc dữ liệu từ kho này. Đây là cách HealthKit và Health Connect hỗ trợ hệ sinh thái nhiều ứng dụng chia sẻ dữ liệu. Ngoài ra, hai ứng dụng có thể có API kết nối trực tiếp hoặc ứng dụng đích có chức năng nhập dữ liệu từ tệp do ứng dụng nguồn xuất ra.
Vì vậy, câu trả lời thực tế phụ thuộc vào bốn điều kiện: ứng dụng có hỗ trợ trao đổi dữ liệu hay không, loại dữ liệu có tương thích hay không, cấu trúc dữ liệu có đủ trường cần thiết hay không và quyền truy cập đã được cấp đúng chưa.

Định dạng dữ liệu nào quyết định việc chuyển được hay không?
Dữ liệu sức khỏe không chỉ là một con số. Một bản ghi có thể cần loại dữ liệu, giá trị, đơn vị, thời điểm ghi nhận, khoảng thời gian, múi giờ, nguồn tạo dữ liệu và metadata đi kèm.
Chẳng hạn, HealthKit phân loại dữ liệu thành nhiều kiểu như số đo định lượng, dữ liệu dạng danh mục, phiên tập luyện, dữ liệu chuỗi và hồ sơ lâm sàng. Metadata còn có thể chứa mã nhận dạng, múi giờ, cách dữ liệu được nhập hoặc thông tin thiết bị.
Health Connect cũng yêu cầu mỗi loại bản ghi có cấu trúc xác định. Ví dụ, bản ghi số bước có trường số lượng và thời gian bắt đầu, kết thúc cùng metadata; bản ghi cân nặng có giá trị cân nặng, thời điểm và metadata. Một số loại dữ liệu còn quy định đơn vị và các trường bắt buộc riêng.
Do đó, không có một “định dạng sức khỏe” duy nhất mà mọi ứng dụng đều phải nhận. Một tệp CSV có thể hữu ích cho ứng dụng hỗ trợ nhập CSV, nhưng không tự động trở thành dữ liệu HealthKit hoặc Health Connect chỉ vì các cột chứa thông tin sức khỏe. Khi dùng nền tảng trung gian, ứng dụng phải ánh xạ dữ liệu nguồn vào đúng loại bản ghi mà nền tảng đó hỗ trợ.
Cần những quyền nào để đọc và ghi dữ liệu sức khỏe?
Quyền thường được tách thành quyền đọc và quyền ghi, đồng thời có thể áp dụng riêng cho từng loại dữ liệu.
Với HealthKit, ứng dụng phải xin quyền đọc và quyền chia sẻ dữ liệu theo từng loại. Người dùng có thể cho phép đọc một loại dữ liệu nhưng không cho phép đọc loại khác, và còn có thể giới hạn phạm vi lịch sử mà ứng dụng được truy cập.
Với Health Connect, quyền cũng được khai báo theo loại dữ liệu. Một ứng dụng muốn đọc nhịp tim hoặc số bước cần quyền đọc tương ứng; nếu muốn ghi dữ liệu, cần quyền ghi tương ứng. Google cũng yêu cầu ứng dụng kiểm tra quyền trước khi thực hiện thao tác và xử lý trường hợp người dùng thu hồi quyền sau đó.
Vì vậy, nếu ứng dụng đích “không thấy” dữ liệu, nguyên nhân chưa chắc là dữ liệu không tồn tại. Có thể ứng dụng chưa được cấp quyền đọc loại dữ liệu đó, hoặc phạm vi lịch sử được cấp không bao phủ thời điểm dữ liệu cần lấy. Trên HealthKit, dữ liệu từ nguồn khác còn có thể bị ẩn khỏi ứng dụng nếu quyền đọc không được cấp.
Dữ liệu nào thường chuyển được và dữ liệu nào dễ bị thiếu?
Các dữ liệu có cấu trúc rõ như số bước, cân nặng, nhịp tim, giấc ngủ, khoảng cách hoặc hoạt động thể chất thường dễ ánh xạ hơn khi cả hai ứng dụng cùng hỗ trợ loại dữ liệu tương ứng. HealthKit và Health Connect đều có các kiểu dữ liệu tương ứng cho những nhóm này.
Khó khăn thường xuất hiện khi hai ứng dụng dùng cách biểu diễn khác nhau. Ví dụ, cùng là “giấc ngủ” nhưng một ứng dụng có thể lưu cả khoảng thời gian và các giai đoạn ngủ, trong khi ứng dụng kia chỉ nhận tổng thời lượng. Khi đó, dữ liệu có thể được chuyển một phần nhưng không giữ nguyên toàn bộ thông tin.
Với dữ liệu y tế có cấu trúc sâu hơn, khả năng tương thích còn phụ thuộc vào schema và ngữ nghĩa. Trên Android, Medical Records của Health Connect sử dụng FHIR cho một số dữ liệu y tế, cho thấy các dữ liệu lâm sàng cần cấu trúc chuyên biệt hơn dữ liệu thể dục và sức khỏe thông thường.
Vì sao đã cấp quyền nhưng dữ liệu vẫn không xuất hiện?
Cấp quyền chỉ giải quyết điều kiện truy cập, không đảm bảo dữ liệu tự động được chuyển sang ứng dụng đích.
Trước hết, ứng dụng đích phải thực sự hỗ trợ loại dữ liệu cần đọc. Tiếp theo, dữ liệu nguồn phải được lưu trong kho hoặc API mà ứng dụng đích có thể truy cập. Cuối cùng, dữ liệu phải đáp ứng cấu trúc và các trường bắt buộc của loại bản ghi đó.
Với Health Connect, dữ liệu được ghi dưới dạng các Record có metadata, mã nhận dạng và thông tin thời gian; cơ chế đồng bộ còn cần xử lý bản ghi mới, cập nhật hoặc xóa để tránh trùng lặp và giữ trạng thái nhất quán.
Một trường hợp khác là giới hạn lịch sử. Health Connect hiện mặc định cho phép ứng dụng đọc dữ liệu trong tối đa 30 ngày trước thời điểm quyền được cấp, nếu ứng dụng không xin quyền lịch sử phù hợp.
Cách kiểm tra trước khi chuyển dữ liệu giữa hai ứng dụng sức khỏe
Trước khi thực hiện, nên kiểm tra theo trình tự:
1. Xác định dữ liệu cần chuyển: bước chân, cân nặng, nhịp tim, giấc ngủ, đường huyết hay hồ sơ y tế
2. Kiểm tra ứng dụng nguồn có hỗ trợ xuất hoặc ghi dữ liệu vào nền tảng trung gian hay không
3. Kiểm tra ứng dụng đích có hỗ trợ nhập tệp, API hoặc kho dữ liệu tương ứng hay không
4. Đối chiếu loại dữ liệu, đơn vị, thời gian và các trường bắt buộc
5. Cấp quyền đọc cho ứng dụng cần lấy dữ liệu và quyền ghi nếu ứng dụng cần lưu dữ liệu vào kho sức khỏe
6. Kiểm tra phạm vi lịch sử được phép truy cập
7. Sau khi chuyển, đối chiếu một số bản ghi để phát hiện thiếu dữ liệu, sai đơn vị hoặc trùng lặp
Với các hệ sinh thái như HealthKit và Health Connect, cách đáng tin cậy hơn thường là để hai ứng dụng cùng sử dụng kho dữ liệu sức khỏe được hỗ trợ, thay vì cố biến một tệp xuất thủ công thành dữ liệu tương thích.
Điểm quan trọng là chuyển dữ liệu giữa hai ứng dụng sức khỏe không chỉ phụ thuộc vào định dạng file. Cần đồng thời có cơ chế trao đổi tương thích, đúng loại dữ liệu, đúng cấu trúc bản ghi và quyền đọc/ghi tương ứng. Nếu một trong các điều kiện này không đáp ứng, dữ liệu có thể không chuyển được hoặc chỉ chuyển được một phần.
