فهرست منبع

fixed: 0018885: 【用户反馈】【新建档案】手动录入居民档案时,详细信息、健康信息里设置某些项为默认选项,并可修改

loki.wu 10 ماه پیش
والد
کامیت
317fa18f58

+ 27 - 7
lib/components/cell.dart

@@ -5,12 +5,14 @@ class VListFormCellGroup extends StatelessWidget {
   final List<Widget> children;
   final double? leadingIconWidth;
   final String? formTitle;
+  final Function? onSelectedAll;
 
   const VListFormCellGroup({
     Key? key,
     required this.children,
     this.leadingIconWidth,
     this.formTitle,
+    this.onSelectedAll,
   }) : super(key: key);
 
   @override
@@ -51,13 +53,31 @@ class VListFormCellGroup extends StatelessWidget {
     } else {
       return Container(
         padding: const EdgeInsets.only(bottom: 8),
-        child: Text(
-          formTitle!,
-          textAlign: TextAlign.left,
-          style: const TextStyle(
-            fontSize: 30,
-            fontWeight: FontWeight.bold,
-          ),
+        child: Row(
+          children: [
+            Text(
+              formTitle!,
+              textAlign: TextAlign.left,
+              style: const TextStyle(
+                fontSize: 30,
+                fontWeight: FontWeight.bold,
+              ),
+            ),
+            SizedBox(
+              width: 15,
+            ),
+            if (onSelectedAll != null) ...[
+              Text("是否一键填充默认值"),
+              Checkbox(
+                value: null,
+                onChanged: (v) {
+                  if (v ?? false) {
+                    onSelectedAll?.call();
+                  }
+                },
+              )
+            ],
+          ],
         ),
       );
     }

+ 0 - 1
lib/pages/patient_info/controller.dart

@@ -11,7 +11,6 @@ import 'package:vitalapp/store/store.dart';
 
 class PatientInfomationController extends FControllerBase {
   final state = PatientInfomationState();
-
   @override
   void onReady() {
     super.onReady();

+ 29 - 19
lib/pages/patient_info/state.dart

@@ -42,27 +42,20 @@ class PatientInfomationState {
   /// 村选项集合
   List<StringKVModel> get villageOptions => Store.user.residence;
 
+  ///过敏史选中默认值
+  RxBool _selectedAllergyHistory = RxBool(false);
+  //既往史
+  RxBool _selectedAllMedicalHistory = RxBool(false);
+  //家族病史
+  RxBool _selectedAllFamilyMedicalHistory = RxBool(false);
+  //遗传病史
+  RxBool _selectAllGeneticHistory = RxBool(false);
+  //生活环境
+  RxBool _livingEnvironment = RxBool(false);
+
   /// 健康信息
   final Rx<PatientHealthInfoModel> _healthInfo =
-      Rx<PatientHealthInfoModel>(PatientHealthInfoModel(
-    historyDrugAllergies: ["1"],
-    historyExposure: ["1"],
-    operation: "1",
-    trauma: "1",
-    transfusion: "1",
-    father: ["1"],
-    mother: ["1"],
-    sibling: ["1"],
-    children: ["1"],
-    historyGenetic: "1",
-    disabilitySituation: ["1"],
-    historyPreviousDisease: ["1"],
-    kitchenExhaustFacilities: "1",
-    fuel: "1",
-    drinkingWater: "1",
-    toilet: "1",
-    animalPen: "1",
-  ));
+      Rx<PatientHealthInfoModel>(PatientHealthInfoModel());
 
   ///服务区域
   String get villageCode => _villageCode.value;
@@ -92,6 +85,23 @@ class PatientInfomationState {
     _detailInfo.refresh();
   }
 
+  bool get livingEnvironment => _livingEnvironment.value;
+  set livingEnvironment(bool v) => _livingEnvironment.value = v;
+
+  bool get selectAllGeneticHistory => _selectAllGeneticHistory.value;
+  set selectAllGeneticHistory(bool v) => _selectAllGeneticHistory.value = v;
+
+  bool get selectedAllFamilyMedicalHistory =>
+      _selectedAllFamilyMedicalHistory.value;
+  set selectedAllFamilyMedicalHistory(bool v) =>
+      _selectedAllFamilyMedicalHistory.value = v;
+
+  bool get selectedAllergyHistory => _selectedAllergyHistory.value;
+  set selectedAllergyHistory(bool v) => _selectedAllergyHistory.value = v;
+
+  bool get selectedAllMedicalHistory => _selectedAllMedicalHistory.value;
+  set selectedAllMedicalHistory(bool v) => _selectedAllMedicalHistory.value = v;
+
   /// 健康信息
   PatientHealthInfoModel get healthInfo => _healthInfo.value;
   set healthInfo(PatientHealthInfoModel v) => _healthInfo.value = v;

+ 150 - 15
lib/pages/patient_info/widgets/health_infos.dart

@@ -22,10 +22,35 @@ class HealthInfomations extends GetView<PatientInfomationController> {
       return VListFormCellGroup(
         formTitle: "健康信息",
         children: [
-          Text(
-            "过敏史",
-            style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold),
+          Row(
+            children: [
+              Text(
+                "过敏史",
+                style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold),
+              ),
+              Expanded(child: SizedBox()),
+              Text(
+                "是否一键填充默认值",
+                style: TextStyle(
+                  fontSize: 20,
+                ),
+              ),
+              Checkbox(
+                value: controller.state.selectedAllergyHistory,
+                onChanged: (v) {
+                  controller.state.selectedAllergyHistory = v ?? false;
+                  if (v ?? false) {
+                    data.historyDrugAllergies = ["1"];
+                    data.historyExposure = ["1"];
+                  } else {
+                    data.historyDrugAllergies = [];
+                    data.historyExposure = [];
+                  }
+                },
+              ),
+            ],
           ),
+
           VListFormCell(
             label: "药物过敏史",
             content: data.historyDrugAllergies?.map(
@@ -95,9 +120,37 @@ class HealthInfomations extends GetView<PatientInfomationController> {
             },
             endIcon: _buildEndIcon(),
           ),
-          Text(
-            "既往史",
-            style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold),
+          Row(
+            children: [
+              Text(
+                "既往史",
+                style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold),
+              ),
+              Expanded(child: SizedBox()),
+              Text(
+                "是否一键填充默认值",
+                style: TextStyle(
+                  fontSize: 20,
+                ),
+              ),
+              Checkbox(
+                value: controller.state.selectedAllMedicalHistory,
+                onChanged: (v) {
+                  controller.state.selectedAllMedicalHistory = v ?? false;
+                  if (v ?? false) {
+                    data.operation = "1";
+                    data.trauma = "1";
+                    data.transfusion = "1";
+                    data.historyPreviousDisease = ["1"];
+                  } else {
+                    data.operation = null;
+                    data.trauma = null;
+                    data.transfusion = null;
+                    data.historyPreviousDisease = null;
+                  }
+                },
+              ),
+            ],
           ),
           Column(
             children: [
@@ -643,9 +696,37 @@ class HealthInfomations extends GetView<PatientInfomationController> {
                 ),
             ],
           ),
-          Text(
-            "家族病史",
-            style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold),
+          Row(
+            children: [
+              Text(
+                "家族病史",
+                style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold),
+              ),
+              Expanded(child: SizedBox()),
+              Text(
+                "是否一键填充默认值",
+                style: TextStyle(
+                  fontSize: 20,
+                ),
+              ),
+              Checkbox(
+                value: controller.state.selectedAllFamilyMedicalHistory,
+                onChanged: (v) {
+                  controller.state.selectedAllFamilyMedicalHistory = v ?? false;
+                  if (v ?? false) {
+                    data.father = ["1"];
+                    data.mother = ["1"];
+                    data.sibling = ["1"];
+                    data.children = ["1"];
+                  } else {
+                    data.father = [];
+                    data.mother = [];
+                    data.sibling = [];
+                    data.children = [];
+                  }
+                },
+              ),
+            ],
           ),
           VListFormCell(
             label: "父亲",
@@ -811,9 +892,33 @@ class HealthInfomations extends GetView<PatientInfomationController> {
               },
               endIcon: _buildEndIcon(),
             ),
-          Text(
-            "遗传病史",
-            style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold),
+          Row(
+            children: [
+              Text(
+                "遗传病史",
+                style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold),
+              ),
+              Expanded(child: SizedBox()),
+              Text(
+                "是否一键填充默认值",
+                style: TextStyle(
+                  fontSize: 20,
+                ),
+              ),
+              Checkbox(
+                value: controller.state.selectAllGeneticHistory,
+                onChanged: (v) {
+                  controller.state.selectAllGeneticHistory = v ?? false;
+                  if (v ?? false) {
+                    data.historyGenetic = "1";
+                    data.disabilitySituation = ["1"];
+                  } else {
+                    data.historyGenetic = null;
+                    data.disabilitySituation = [];
+                  }
+                },
+              ),
+            ],
           ),
           VListFormCell(
             label: "遗传病史",
@@ -900,9 +1005,39 @@ class HealthInfomations extends GetView<PatientInfomationController> {
                 ),
             ],
           ),
-          Text(
-            "生活环境",
-            style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold),
+          Row(
+            children: [
+              Text(
+                "生活环境",
+                style: TextStyle(fontSize: 25, fontWeight: FontWeight.bold),
+              ),
+              Expanded(child: SizedBox()),
+              Text(
+                "是否一键填充默认值",
+                style: TextStyle(
+                  fontSize: 20,
+                ),
+              ),
+              Checkbox(
+                value: controller.state.livingEnvironment,
+                onChanged: (v) {
+                  controller.state.livingEnvironment = v ?? false;
+                  if (v ?? false) {
+                    data.fuel = "1";
+                    data.drinkingWater = "1";
+                    data.toilet = "1";
+                    data.animalPen = "1";
+                    data.kitchenExhaustFacilities = "1";
+                  } else {
+                    data.fuel = null;
+                    data.toilet = null;
+                    data.animalPen = null;
+                    data.kitchenExhaustFacilities = null;
+                    data.drinkingWater = null;
+                  }
+                },
+              ),
+            ],
           ),
           VListFormCell(
             label: "厨房排风设施",