Эх сурвалжийг харах

健康检测缓存问题整理与修改

finlay 1 жил өмнө
parent
commit
14a597a726

+ 17 - 18
lib/pages/medical/controller.dart

@@ -57,10 +57,13 @@ class MedicalController extends FControllerBase {
     MedicalItem(key: DeviceTypes.HEART, diagnosticItem: '心电'),
   ];
   @override
-  void onReady() {
-    initData();
-    getAccessTypes();
-    super.onReady();
+  void onInit() async {
+    setBusy('Loading...');
+    await initData();
+    await getAccessTypes();
+    state.currentTab = DeviceTypes.TEMP; //等数据加载完成之后在切换到体温页面
+    busy = false;
+    super.onInit();
   }
 
   Future<void> initData() async {
@@ -109,20 +112,16 @@ class MedicalController extends FControllerBase {
     }
   }
 
-  Future<void> readCachedRecord() async {
-    if (patientCode.isNotEmpty) {
-      // TextStorage cachedRecord = TextStorage(
-      //   fileName: 'JKJC',
-      //   directory: "patient/$patientCode",
-      // );
-      String? value = Store.resident.residentMedicalData;
-      if (value == null) {
-        diagnosisDataValue = {};
-        return;
-      }
-      diagnosisDataValue = jsonDecode(value);
-    }
-  }
+  // void readCachedRecord() {
+  //   if (patientCode.isNotEmpty) {
+  //     String? value = Store.resident.residentMedicalData;
+  //     if (value == null) {
+  //       diagnosisDataValue = {};
+  //       return;
+  //     }
+  //     diagnosisDataValue = jsonDecode(value);
+  //   }
+  // }
 
   Future<bool?> saveCachedAppDataId() async {
     appDataId = const Uuid().v4().replaceAll('-', '');

+ 3 - 3
lib/pages/medical/state.dart

@@ -3,7 +3,7 @@ import 'package:vnote_device_plugin/consts/types.dart';
 import 'package:vitalapp/pages/medical/models/item.dart';
 
 class MedicalState {
-  final RxString _currentTab = RxString(DeviceTypes.TEMP);
+  final RxnString _currentTab = RxnString(null);
   final RxList<MedicalItem> _medicalMenuList = RxList<MedicalItem>([
     // MedicalItem(key: DeviceTypes.TEMP, diagnosticItem: '体温'),
     // MedicalItem(key: DeviceTypes.SUGAR, diagnosticItem: '血糖'),
@@ -14,8 +14,8 @@ class MedicalState {
 
   // final Rx<Map<String, dynamic>> _diagnosisDataValue = Rx({});
 
-  String get currentTab => _currentTab.value;
-  set currentTab(String val) => _currentTab(val);
+  String? get currentTab => _currentTab.value;
+  set currentTab(String? val) => _currentTab(val);
 
   /// 健康检测列表
   set medicalMenuList(List<MedicalItem> value) => _medicalMenuList(value);

+ 21 - 24
lib/pages/medical/view.dart

@@ -18,26 +18,20 @@ class MedicalPage extends GetView<MedicalController> {
 
   @override
   Widget build(BuildContext context) {
-    return GetBuilder<MedicalController>(
-      init: MedicalController(),
-      id: "medical_page",
-      builder: (_) {
-        return Scaffold(
-          resizeToAvoidBottomInset: false,
-          body: Column(
+    return Scaffold(
+      resizeToAvoidBottomInset: false,
+      body: Column(
+        children: [
+          Expanded(
+              child: Stack(
             children: [
-              Expanded(
-                  child: Stack(
-                children: [
-                  _buildMedical(),
-                  // _buildGenerateReport(),
-                ],
-              )),
+              _buildMedical(),
+              // _buildGenerateReport(),
             ],
-          ),
-          floatingActionButton: _buildSaveButton(context),
-        );
-      },
+          )),
+        ],
+      ),
+      floatingActionButton: _buildSaveButton(context),
     );
   }
 
@@ -115,7 +109,7 @@ class MedicalPage extends GetView<MedicalController> {
     );
   }
 
-  String _deviceImageUrl(String currentTab) {
+  String _deviceImageUrl(String? currentTab) {
     switch (currentTab) {
       case DeviceTypes.TEMP:
         return 'assets/images/healthCheck/temp.png';
@@ -145,11 +139,13 @@ class MedicalPage extends GetView<MedicalController> {
             child: Align(
               alignment: Alignment.bottomCenter,
               heightFactor: 0.8,
-              child: Image.asset(
-                _deviceImageUrl(controller.state.currentTab),
-                height: double.infinity,
-                fit: BoxFit.contain, // 设置图像的适应方式
-              ),
+              child: controller.state.currentTab != null
+                  ? Image.asset(
+                      _deviceImageUrl(controller.state.currentTab),
+                      height: double.infinity,
+                      fit: BoxFit.contain, // 设置图像的适应方式
+                    )
+                  : Container(),
             ),
           ),
         ),
@@ -216,6 +212,7 @@ class MedicalPage extends GetView<MedicalController> {
 
   Widget _buildContent() {
     return Obx(() {
+      print(controller.state.currentTab);
       switch (controller.state.currentTab) {
         case DeviceTypes.TEMP:
           return const BodyTemperature();

+ 1 - 1
lib/pages/medical/widgets/blood_sugar.dart

@@ -83,7 +83,7 @@ class _ExamBloodSugarState extends State<BloodSugar> {
   }
 
   Future<void> initData() async {
-    await controller.readCachedRecord();
+    // controller.readCachedRecord();
     _value = controller.diagnosisDataValue['GLU']?['sugar'] ?? '';
     setState(() {});
   }

+ 1 - 1
lib/pages/medical/widgets/body_bmi.dart

@@ -106,7 +106,7 @@ class _ExamBodyWeightState extends State<BodyWeight> {
   }
 
   Future<void> initData() async {
-    await controller.readCachedRecord();
+    // controller.readCachedRecord();
     // if (controller.diagnosisDataValue['BMI'] == null) {
     //   controller.diagnosisDataValue['BMI'] = {};
     // }

+ 1 - 1
lib/pages/medical/widgets/body_temperature.dart

@@ -64,7 +64,7 @@ class _ExamBodyTemperatureState extends State<BodyTemperature> {
   }
 
   Future<void> initTemperature() async {
-    await controller.readCachedRecord();
+    // controller.readCachedRecord();
     _value = controller.diagnosisDataValue['Temp']?['Temperature'] ?? '';
 
     setState(() {});

+ 1 - 2
lib/pages/medical/widgets/bool_oxygen.dart

@@ -68,8 +68,7 @@ class _ExamBloodOxygenState extends State<BloodOxygen> {
   }
 
   Future<void> initData() async {
-    await controller.readCachedRecord();
-
+    // controller.readCachedRecord();
     setState(() {
       pulse = controller.diagnosisDataValue['SpO2']?['Pulse_Frequency'] ?? '';
       spO2 = controller.diagnosisDataValue['SpO2']?['Spo2'] ?? '';

+ 1 - 1
lib/pages/medical/widgets/heart_rate.dart

@@ -289,7 +289,7 @@ class _HeartRateState extends State<HeartRate> {
 
   /// 数据初始化
   Future<void> initData() async {
-    await medicalController.readCachedRecord();
+    // medicalController.readCachedRecord();
     if (medicalController.diagnosisDataValue['Heart'] == null) {
       medicalController.diagnosisDataValue['Heart'] = {};
     }

+ 1 - 1
lib/pages/medical/widgets/urinalysis.dart

@@ -88,7 +88,7 @@ class _ExamUrinalysisState extends State<Urinalysis> {
   }
 
   Future<void> initData() async {
-    await controller.readCachedRecord();
+    // controller.readCachedRecord();
     if (controller.diagnosisDataValue.isNotEmpty &&
         controller.diagnosisDataValue.containsKey(deviceType)) {
       _value = controller.diagnosisDataValue[deviceType!];

+ 5 - 8
lib/pages/patient/list/controller.dart

@@ -24,11 +24,8 @@ class PatientListController extends FControllerBase {
 
   final crowdLabelsController = CrowdLabelsController();
   void patientListGotoDetail(PatientDTO dto) async {
-    // PatientDTO? patientInfoDto = await _patientManager.getDetail(code);
-    // if (patientInfoDto != null) {
     Store.user.currentSelectPatientInfo = dto;
     logger.i('list切换居民 当前居民是:${dto.patientName} 居民code:${dto.code}');
-    // }
     gotoDetail(dto.code!);
   }
 
@@ -38,14 +35,14 @@ class PatientListController extends FControllerBase {
     PatientDTO? patientInfoDto,
     PatientBaseDTO? patientInfo,
   ]) async {
-    if (!Get.isRegistered<MedicalController>()) {
-      Get.lazyPut(() => MedicalController());
-    }
-    final medicalController = Get.find<MedicalController>();
+    // if (!Get.isRegistered<MedicalController>()) {
+    //   Get.lazyPut(() => MedicalController());
+    // }
+    // final medicalController = Get.find<MedicalController>();
     await _patientDetailController.loadData();
     _homeController.updateMenus();
     _homeController.switchNavByName("/patient/detail");
-    await medicalController.initData();
+    // await medicalController.initData();
     //这里应该刷新病人诊断数据缓存
     // _medicalController.changePatient.emit(this, code);
   }