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

超声工作站软件 输入体检号展示采集框

finlay 11 сар өмнө
parent
commit
3f1483a496

+ 18 - 0
lib/pages/consultation_record_view/controller.dart

@@ -12,6 +12,7 @@ import 'package:flutter/material.dart';
 import 'package:get/get.dart';
 import 'package:vitalapp/architecture/utils/prompt_box.dart';
 import 'package:vitalapp/architecture/values/features.dart';
+import 'package:vitalapp/components/alert_dialog.dart';
 import 'package:vitalapp/managers/interfaces/language.dart';
 import 'package:vitalapp/managers/interfaces/models/consultations_record_data.dart';
 import 'package:vitalapp/managers/interfaces/models/image_report_list_params.dart';
@@ -19,6 +20,7 @@ import 'package:vitalapp/managers/interfaces/models/role_type.dart';
 import 'package:vitalapp/managers/interfaces/models/selected_model.dart';
 import 'package:vitalapp/managers/interfaces/remedical.dart';
 import 'package:vitalapp/managers/interfaces/report.dart';
+import 'package:vitalapp/pages/consultation_record_view/widgets/capture_page.dart';
 import 'package:vitalapp/pages/image_report_inner_view/controller.dart';
 import 'package:vitalapp/pages/patient/create/widgets/patient_info.dart';
 import 'package:vitalapp/rpc.dart';
@@ -908,6 +910,22 @@ class ConsultationRecordViewController extends GetxController
     return success;
   }
 
+  ///打开采集页面
+  Future<void> openCapturePage() async {
+    Get.dialog(
+      VAlertDialog(
+        title: "采集",
+        width: 500,
+        content: CapturePage(),
+        showCancel: false,
+        confirmLabel: "完成",
+        onConfirm: () {
+          Get.back();
+        },
+      ),
+    );
+  }
+
   /// 获取设备列表
   Future<void> getPersonDeviceDropdownPageAsync() async {
     try {

+ 54 - 0
lib/pages/consultation_record_view/widgets/capture_page.dart

@@ -0,0 +1,54 @@
+import 'package:flutter/material.dart';
+import 'package:vitalapp/components/button.dart';
+import 'package:vitalapp/rpc.dart';
+
+class CapturePage extends StatefulWidget {
+  @override
+  _CapturePageState createState() => _CapturePageState();
+}
+
+class _CapturePageState extends State<CapturePage> {
+  // 状态变量,true表示“开始录制”,false表示“结束录制”
+  bool isRecording = false;
+
+  @override
+  Widget build(BuildContext context) {
+    return Container(
+      alignment: Alignment.center,
+      child: Row(
+        mainAxisAlignment: MainAxisAlignment.center,
+        children: [
+          SizedBox(
+            width: 120,
+            height: 36,
+            child: VButton(
+              child: Text("截图"),
+              onTap: () {
+                // 截图逻辑
+                rpc.platform.keypadPressF1();
+              },
+            ),
+          ),
+          SizedBox(
+            width: 30,
+          ),
+          SizedBox(
+            width: 120,
+            height: 36,
+            child: VButton(
+              child: Text(isRecording ? "结束录制" : "开始录制"),
+              onTap: () {
+                rpc.platform.keypadPressF2();
+                // 切换状态
+                setState(() {
+                  isRecording = !isRecording;
+                });
+                // 这里可以添加开始或结束录制的逻辑
+              },
+            ),
+          ),
+        ],
+      ),
+    );
+  }
+}

+ 65 - 0
lib/pages/consultation_record_view/widgets/consultation_record_filter.dart

@@ -4,6 +4,7 @@ import 'package:fis_i18n/i18n.dart';
 import 'package:fis_jsonrpc/rpc.dart';
 import 'package:fis_ui/base_define/page.dart';
 import 'package:get/get.dart';
+import 'package:vitalapp/components/button.dart';
 import 'package:vitalapp/pages/consultation_record_view/index.dart';
 import 'package:vitalapp/pages/consultation_record_view/widgets/search_input.dart';
 
@@ -16,6 +17,8 @@ class ConsultationRecordFilter extends GetView<ConsultationRecordViewController>
 
   @override
   Widget build(BuildContext context) {
+    final borderRadius = BorderRadius.all(Radius.circular(3));
+    final textEditingController = TextEditingController();
     return Container(
       margin: EdgeInsets.symmetric(vertical: 10, horizontal: 15),
       child: Column(
@@ -38,6 +41,68 @@ class ConsultationRecordFilter extends GetView<ConsultationRecordViewController>
                 ),
               ),
               Expanded(child: FSizedBox()),
+              Container(
+                width: 200,
+                height: 36,
+                child: TextField(
+                  controller: textEditingController,
+                  textAlign: TextAlign.start,
+                  textAlignVertical: TextAlignVertical.center,
+                  maxLines: 1,
+                  decoration: InputDecoration(
+                    enabledBorder: OutlineInputBorder(
+                      borderRadius: borderRadius,
+                      borderSide: const BorderSide(color: Colors.grey),
+                    ),
+                    focusedBorder: OutlineInputBorder(
+                      borderRadius: borderRadius,
+                      borderSide:
+                          BorderSide(color: Theme.of(context).primaryColor),
+                    ),
+                    errorBorder: OutlineInputBorder(
+                      borderRadius: borderRadius,
+                      borderSide: BorderSide(
+                          color: Theme.of(context).colorScheme.error),
+                    ),
+                    // suffixIcon: suffixIcon,
+                    // errorText: "112323",
+                    errorMaxLines: 1,
+                    fillColor: Colors.white,
+                    filled: true,
+                    hintText: "体检号",
+                    hintStyle: const TextStyle(
+                      fontSize: 16,
+                      color: Colors.black54,
+                    ),
+                    contentPadding:
+                        const EdgeInsets.symmetric(horizontal: 8, vertical: 8),
+                    // isDense: true,
+                    isCollapsed: false,
+                  ),
+                  onEditingComplete: () async {
+                    print(textEditingController.text);
+                    await controller.openCapturePage();
+                  },
+                  readOnly: false,
+                ),
+              ),
+              Expanded(
+                child: FSizedBox(
+                  width: 10,
+                ),
+              ),
+              SizedBox(
+                width: 60,
+                height: 36,
+                child: VButton(
+                  label: "采集",
+                  onTap: () async {
+                    print(textEditingController.text);
+                    await controller.openCapturePage();
+                  },
+                ),
+              ),
+              Expanded(child: FSizedBox()),
               GetBuilder<ConsultationRecordViewController>(
                 id: "record_filter_tab",
                 builder: (_) {

+ 2 - 2
pubspec.lock

@@ -407,8 +407,8 @@ packages:
     dependency: "direct main"
     description:
       path: "."
-      ref: e1c2913
-      resolved-ref: e1c29134b743c70f4a63bf8449c164e31a2fa5e0
+      ref: b3dc4b3
+      resolved-ref: b3dc4b3648932fb9de9927a853d599fb51f61b25
       url: "http://git.ius.plus:88/Project-Wing/fis_lib_jsonrpc.git"
     source: git
     version: "0.0.1"

+ 3 - 3
pubspec.yaml

@@ -48,7 +48,7 @@ dependencies:
   fis_jsonrpc:
     git:
       url: http://git.ius.plus:88/Project-Wing/fis_lib_jsonrpc.git
-      ref: f0c9b872ba
+      ref: b3dc4b3
   vnote_device_plugin:
     git:
       url: http://git.ius.plus/Project-Vital/FlutterDevicePlugin.git
@@ -162,7 +162,7 @@ dependency_overrides:
   fis_jsonrpc:
     git:
       url: http://git.ius.plus:88/Project-Wing/fis_lib_jsonrpc.git
-      ref: e1c2913
+      ref: b3dc4b3
     #path: ../fis_lib_jsonrpc
   fis_theme:
     git:
@@ -238,7 +238,7 @@ flutter:
     - assets/valid_models/ppocr_keys_v1.txt
     - assets/fonts/NotoSansSC-R-fixed.otf
     - assets/data/3-6.json
-   
+
   #   - images/a_dot_burr.jpeg
   #   - images/a_dot_ham.jpeg