Browse Source

0018059: 【体检系统】【登记】通过人脸识别,扫描没有录入过人脸信息 的人,提示需手动录入,录入成功后,体检列表默认1条身份信息,此时再次手动录入输入相同身份证,能创建相同体检记录

finlay 1 year ago
parent
commit
1a37e3806d

+ 8 - 2
lib/pages/facial_recognition/controller_plus.dart

@@ -13,10 +13,16 @@ import 'controller.dart';
 import 'facial_recognition_capturer.dart';
 
 class FacialRecognitionControllerPlus extends FacialRecognitionController {
-  FacialRecognitionControllerPlus({required super.mode, super.patientInfo});
+  FacialRecognitionControllerPlus({
+    required super.mode,
+    super.patientInfo,
+    this.isVital,
+  });
 
   FacialRecognitionCapturer? facialRecognitionCapturer;
 
+  final bool? isVital;
+
   @override
   void doFacialRecognition() async {
     facialRecognitionCapturer = FacialRecognitionCapturer();
@@ -83,7 +89,7 @@ class FacialRecognitionControllerPlus extends FacialRecognitionController {
               Get.back();
               Get.find<HomeController>().switchNavByName(
                 "/patient/create",
-                {"headImage": e},
+                {"headImage": e, "isVital": isVital},
               );
             },
             onCanceled: () {

+ 3 - 4
lib/pages/facial_recognition/view.dart

@@ -14,17 +14,16 @@ class FacialRecognitionPage extends GetView<FacialRecognitionController> {
     Key? key,
     required this.mode,
     this.patientInfo,
+    this.isVital,
   }) : super(key: key);
   final FacialRecognitionMode mode;
   final PatientDTO? patientInfo;
-
+  final bool? isVital;
   @override
   Widget build(BuildContext context) {
     return GetBuilder<FacialRecognitionController>(
       init: FacialRecognitionControllerPlus(
-        mode: mode,
-        patientInfo: patientInfo,
-      ),
+          mode: mode, patientInfo: patientInfo, isVital: isVital),
       builder: (_) {
         return Scaffold(
           appBar: VAppBar(

+ 2 - 1
lib/pages/medical_checkup_station/registration/widgets/filter/index.dart

@@ -206,8 +206,9 @@ class RegistrationFilter extends GetView<RegistrationController> {
       return;
     }
     final FaceRecognitionResult? result = await Get.to<FaceRecognitionResult>(
-      () => const FacialRecognitionPage(
+      () => FacialRecognitionPage(
         mode: FacialRecognitionMode.faceRecognition,
+        isVital: isVital,
       ),
     );
     if (result != null && result.success) {

+ 9 - 1
lib/pages/patient/create/controller.dart

@@ -60,6 +60,12 @@ class CreatePatientController extends FControllerBase
         var jsonString = Routes.parameters['patientInfo'];
         // 解析 JSON 字符串并转换为 Map
         final parsedJson = json.decode(jsonString);
+
+//获取“isVital”字段的值
+        final bool? isVital = parsedJson['isVital'];
+        if (isVital != null) {
+          state.isVital = isVital;
+        }
         // 获取 'headImage' 字段的值
         final String? headImageUrl = parsedJson['headImage'];
         if (headImageUrl != null) {
@@ -578,7 +584,9 @@ class CreatePatientController extends FControllerBase
         adress: patientInfomationState.address,
 
         ///TODO(Loki):这里projectType这个页面无法区分,且这个字段接口中不可为空,故而先用一个默认值
-        projectType: VitalProjectTypeEnum.VinnoHealth,
+        projectType: state.isVital
+            ? VitalProjectTypeEnum.VinnoHealth
+            : VitalProjectTypeEnum.VitalStation,
         nationality: patientInfomationState.nation,
         permanentResidenceAddress:
             patientInfomationState.permanentResidenceAddress,

+ 3 - 0
lib/pages/patient/create/state.dart

@@ -40,6 +40,9 @@ class CreatePatientState {
   ///头像(用于人脸识别没有识别到时新增档案后自动绑定头像)
   String headImage = '';
 
+//用于识别是否是家医
+  bool isVital = true;
+
   /// 机构名称
   String get organizationName => Store.user.organizationName;