Browse Source

身高体重逻辑整理提交

finlay 1 year ago
parent
commit
73fe73e8b1

BIN
android/app/libs/device_sdk.aar


BIN
assets/images/device/icon/weight_height.png


+ 1 - 0
lib/managers/device.dart

@@ -29,6 +29,7 @@ class DeviceManager extends IDeviceManager {
     "ECG": DeviceTypes.HEART,
     "TwelveHeart": DeviceTypes.TWELVEHEART,
     "WHB": DeviceTypes.WAIST,
+    "WEIGHTHEIGHT": DeviceTypes.WEIGHTHEIGHT,
   };
   final _storage = TextStorage(fileName: "devices.cfg");
   final _deviceStorage = TextStorage(fileName: "devices.setting.cfg");

+ 1 - 1
lib/managers/device_controller_manager.dart

@@ -83,7 +83,7 @@ class DeviceControllerManager extends BaseDeviceController<DeviceWorkerBase> {
       case DeviceTypes.TWELVEHEART:
         deviceWorker = TwelveHeartDeviceWorker(mac: super.mac, model: model);
         break;
-      case DeviceTypes.WEIGHT_HEIGHT:
+      case DeviceTypes.WEIGHTHEIGHT:
         deviceWorker = WeightHeightDeviceWorker(mac: super.mac, model: model);
         break;
     }

+ 6 - 12
lib/pages/medical/views/jichujiancha.dart

@@ -22,7 +22,6 @@ class JiChuJianCha extends GetView<MedicalController> {
 
   @override
   Widget build(BuildContext context) {
-    controller.state.currentTab = DeviceTypes.TEMP;
     return Scaffold(
       resizeToAvoidBottomInset: false,
       body: SizedBox(height: double.maxFinite, child: _buildMedical()),
@@ -57,9 +56,9 @@ class JiChuJianCha extends GetView<MedicalController> {
               MedicalItem(key: DeviceTypes.SUGAR, diagnosticItem: '血糖'),
               MedicalItem(key: DeviceTypes.NIBP, diagnosticItem: '血压'),
               MedicalItem(key: DeviceTypes.SPO2, diagnosticItem: '血氧'),
-              MedicalItem(key: DeviceTypes.WEIGHT, diagnosticItem: 'BMI'),
+              // MedicalItem(key: DeviceTypes.WEIGHT, diagnosticItem: 'BMI'),
               MedicalItem(
-                  key: DeviceTypes.WEIGHT_HEIGHT, diagnosticItem: '身高体重'),
+                  key: DeviceTypes.WEIGHTHEIGHT, diagnosticItem: '身高体重'),
             ]
                 .map(
                   (e) => Material(
@@ -132,7 +131,7 @@ class JiChuJianCha extends GetView<MedicalController> {
         return 'assets/images/healthCheck/urine.png';
       case DeviceTypes.WAIST:
         return 'assets/images/healthCheck/whb.png';
-      case DeviceTypes.WEIGHT_HEIGHT:
+      case DeviceTypes.WEIGHTHEIGHT:
         return 'assets/images/healthCheck/bmi.png';
       default:
         return 'assets/images/exam/normalMeasurementChart.png';
@@ -201,18 +200,13 @@ class JiChuJianCha extends GetView<MedicalController> {
 
   Widget _buildSaveButton(BuildContext context) {
     return Obx(() {
-      if (Store.user.currentSelectRegisterPersonInfo == null) {
+      if (Store.user.currentSelectPatientInfo == null) {
         return const SizedBox();
       }
       return FloatingActionButton.extended(
         backgroundColor: Theme.of(context).primaryColor,
         onPressed: () {
-          advanceDebounce(
-              () => controller.createBasicCheckup(Store.user
-                      .currentSelectRegisterPersonInfo?.physicalExamNumber ??
-                  ''),
-              "createBasicCheckup",
-              1500);
+          advanceDebounce(controller.createDiagnosis, "createDiagnosis", 1500);
         },
         label: const SizedBox(
           width: 240,
@@ -244,7 +238,7 @@ class JiChuJianCha extends GetView<MedicalController> {
           return const BloodOxygen();
         case DeviceTypes.WEIGHT:
           return const BodyWeight();
-        case DeviceTypes.WEIGHT_HEIGHT:
+        case DeviceTypes.WEIGHTHEIGHT:
           return const BodyWeightHeight();
         // case DeviceTypes.URINE:
         //   return const Urinalysis();

+ 28 - 25
lib/pages/medical/widgets/body_weight_height.dart

@@ -87,7 +87,7 @@ class _ExamBodyWeightState extends State<BodyWeightHeight> {
   }
 
   Future<void> currentDevice() async {
-    DeviceModel? device = await controller.getDevice(DeviceTypes.WEIGHT);
+    DeviceModel? device = await controller.getDevice(DeviceTypes.WEIGHTHEIGHT);
     if (device == null) {
       _connectStatus = WorkerStatus.unboundDevice;
       worker = null;
@@ -118,8 +118,8 @@ class _ExamBodyWeightState extends State<BodyWeightHeight> {
   }
 
   void _onSuccess(_, WeightHeightExamData e) {
-    _weight = e.weight.toString();
-    _height = e.height.toString();
+    _weight = double.parse(e.weight.toStringAsFixed(1)).toString();
+    _height = double.parse(e.height.toStringAsFixed(1)).toString();
     if (_height.isNotEmpty && _weight.isNotEmpty) {
       getBmi();
       controller.diagnosisDataValue['BMI'] = {
@@ -174,18 +174,27 @@ class _ExamBodyWeightState extends State<BodyWeightHeight> {
     return ExamCard(
         titleText: const SizedBox(),
         // clickCard: () {},
-        content: Column(
-          mainAxisAlignment: MainAxisAlignment.start,
+        content: Stack(
           children: [
-            SideBar(
-              title: '身高',
-              value: _height.isEmpty ? '--' : _height,
-              unit: 'cm',
-              onTap: _inputHeight,
-            ),
-            const Divider(indent: 30),
-            Stack(
+            if (!isConnectFail)
+              DeviceStatusPosition(
+                deviceStatus: DeviceStatus(connectStatus: _connectStatus),
+              )
+            else
+              _buildErrorButton(),
+            Column(
+              mainAxisAlignment: MainAxisAlignment.start,
               children: [
+                SizedBox(
+                  height: 45,
+                ),
+                SideBar(
+                  title: '身高',
+                  value: _height.isEmpty ? '--' : _height,
+                  unit: 'cm',
+                  onTap: _inputHeight,
+                ),
+                const Divider(indent: 30),
                 SideBar(
                   title: '体重',
                   value: _weight.isEmpty ? '--' : _weight,
@@ -193,20 +202,14 @@ class _ExamBodyWeightState extends State<BodyWeightHeight> {
                   unit: 'kg',
                   onTap: _inputWeight,
                 ),
-                if (!isConnectFail)
-                  DeviceStatusPosition(
-                    deviceStatus: DeviceStatus(connectStatus: _connectStatus),
-                  )
-                else
-                  _buildErrorButton(),
+                const Divider(indent: 30),
+                SideBar(
+                  title: 'BMI',
+                  value: _bmi.isEmpty ? '--' : _bmi,
+                  unit: 'kg/m²',
+                ),
               ],
             ),
-            const Divider(indent: 30),
-            SideBar(
-              title: 'BMI',
-              value: _bmi.isEmpty ? '--' : _bmi,
-              unit: 'kg/m²',
-            ),
           ],
         ));
   }

+ 1 - 0
lib/pages/settings/devices/widgets/consts.dart

@@ -12,6 +12,7 @@ abstract class DevicesSettingConsts {
     DeviceTypes.IC_READER: "人证阅读器",
     DeviceTypes.HEART: "心电",
     DeviceTypes.TWELVEHEART: "十二导心电",
+    DeviceTypes.WEIGHTHEIGHT: "身高体重秤",
   };
 
   /// 根据类型获取名称

+ 2 - 2
pubspec.lock

@@ -1447,8 +1447,8 @@ packages:
     dependency: "direct main"
     description:
       path: "."
-      ref: "30239df"
-      resolved-ref: "30239dfa3eab40b6ef203e237f2f685af5dbb807"
+      ref: "20db1f0"
+      resolved-ref: "20db1f04e210b9a4a6f3023c4f5620219f380a45"
       url: "http://git.ius.plus/Project-Vital/FlutterDevicePlugin.git"
     source: git
     version: "0.0.1"

+ 1 - 1
pubspec.yaml

@@ -51,7 +51,7 @@ dependencies:
   vnote_device_plugin:
     git:
       url: http://git.ius.plus/Project-Vital/FlutterDevicePlugin.git
-      ref: 30239df
+      ref: 20db1f0
   vital_local_database:
     git:
       url: http://git.ius.plus:88/Project-Vital/FlutterLocalDB.git