瀏覽代碼

心电接口调整

loki.wu 9 月之前
父節點
當前提交
dc4ef52601

+ 9 - 4
lib/managers/ecg_manager.dart

@@ -17,13 +17,18 @@ class EcgManager extends BaseManager implements IEcgManager {
   @override
   Future<void> editEcgReport(
       String code, ElectrocardiogramRecord recordInfo) async {
-    ReportDTO? reportInfo =
-        await Get.find<IReportManager>().findReportByCodeAsync(code);
-
+    if (code.isNotEmpty) {
+      ReportDTO? reportInfo =
+          await Get.find<IReportManager>().findReportByCodeAsync(code);
+      recordInfo.examData = reportInfo.reportExamDataJson;
+    }
     if (!Get.isRegistered<MedicalController>()) {
       Get.lazyPut(() => MedicalController());
     }
-    Get.to(EcgResultView(recordInfo));
+    Get.to(EcgResultView(
+      recordInfo,
+      reportCode: code,
+    ));
   }
 
   ///获取心电记录详情

+ 19 - 0
lib/managers/interfaces/report.dart

@@ -60,6 +60,25 @@ abstract class IReportManager {
     ReportTypeEnum? reportType,
   ]);
 
+  ///新增报告
+  Future<String> addReport({
+    required String reportDatasJson,
+    required String recordCode,
+    String name = '',
+    String? templateJson,
+    String? reportMeasureDatasJson,
+    String? reportTemplateCode,
+  });
+
+  ///修改报告
+  Future<bool> modifyReport({
+    required String reportInfoJson,
+    required String reportCode,
+    required String recordCode,
+    required String reportTemplateCode,
+    String name = '',
+  });
+
   void enterVidMeasurePage({
     String imageUrl = '',
     int imageindex = 0,

+ 43 - 0
lib/managers/report_manager.dart

@@ -1,4 +1,5 @@
 import 'dart:convert';
+import 'package:fis_common/helpers/encrypt.dart';
 import 'package:fis_common/index.dart';
 import 'package:fis_common/logger/logger.dart';
 import 'package:fis_jsonrpc/rpc.dart';
@@ -27,6 +28,7 @@ import 'package:vitalapp/pages/report_preview/controller.dart';
 import 'package:vitalapp/pages/report_preview/view.dart';
 import 'package:vitalapp/pages/widgets/row_separator.dart';
 import 'package:vitalapp/rpc.dart';
+import 'package:vitalapp/store/store.dart';
 import 'interfaces/base_manager.dart';
 import 'interfaces/language.dart';
 import 'interfaces/models/report_element_info.dart';
@@ -75,6 +77,47 @@ class ReportManager extends BaseManager implements IReportManager {
     }
   }
 
+  @override
+  Future<String> addReport({
+    required String reportDatasJson,
+    required String recordCode,
+    String name = '',
+    String? templateJson,
+    String? reportMeasureDatasJson,
+    String? reportTemplateCode,
+  }) async {
+    final addRequest = AddEcgReportRequest(
+      token: Store.user.token,
+      recordCode: recordCode,
+      reportTemplateCode: reportTemplateCode,
+      reportDatasJson: reportDatasJson,
+      patientName: FEncryptHelper.encodeBase64(name),
+    );
+    return await rpc.ultrasoundReport.vitalAddEcgReportAsync(addRequest);
+  }
+
+  ///修改报告请求
+  @override
+  Future<bool> modifyReport({
+    required String reportInfoJson,
+    required String reportCode,
+    required String recordCode,
+    required String reportTemplateCode,
+    String name = '',
+  }) async {
+    var reportInfo = await findReportByCodeAsync(reportCode);
+    final updateRequest = ModifyEcgReportRequest(
+      reportCode: reportCode,
+      token: Store.user.token,
+      recordCode: recordCode,
+      patientName: FEncryptHelper.encodeBase64(name),
+      reportDatasJson: reportInfoJson,
+      reportTemplateCode: reportTemplateCode,
+    );
+
+    return await rpc.ultrasoundReport.vitalModifyEcgReportAsync(updateRequest);
+  }
+
   @override
   List<FReportElementInfo> convertReportData(String jsonData) {
     List<FReportElementInfo> result = [];

+ 49 - 7
lib/pages/ecg/ecg_result_view.dart

@@ -15,6 +15,7 @@ import 'package:vitalapp/components/dropdown_button.dart';
 import 'package:vitalapp/components/no_data_view.dart';
 import 'package:vitalapp/components/select.dart';
 import 'package:vitalapp/managers/interfaces/exam.dart';
+import 'package:vitalapp/managers/interfaces/report.dart';
 import 'package:vitalapp/managers/interfaces/report_template.dart';
 import 'package:vitalapp/pages/medical/controller.dart';
 import 'package:vitalapp/pages/medical/models/worker.dart';
@@ -31,7 +32,11 @@ import 'ecg_term_selection.dart';
 
 class EcgResultView extends StatefulWidget {
   final ElectrocardiogramRecord recordInfo;
-  EcgResultView(this.recordInfo);
+  final String reportCode;
+  EcgResultView(
+    this.recordInfo, {
+    this.reportCode = "",
+  });
   @override
   State<StatefulWidget> createState() {
     return EcgResultViewState();
@@ -163,15 +168,52 @@ class EcgResultViewState extends State<EcgResultView> {
                             }
                           }
                           if (examDatas.containsKey("Analyse12")) {
+                            resultConclusion!.advice =
+                                _promptWordsController.text;
+                            resultConclusion!.QRSAxis = _qRSAxisController.text;
+                            resultConclusion!.PR = _pRController.text;
+                            resultConclusion!.QTDur = _qTDurController.text;
+                            resultConclusion!.QTCDur = _qTCDurController.text;
+                            resultConclusion!.PAxis = _pAxisController.text;
+                            resultConclusion!.QRSDur = _qRSController.text;
+                            resultConclusion!.TAxis = _tAxisController.text;
+                            resultConclusion!.PDur = _pDurController.text;
+                            resultConclusion!.TDur = _tDurController.text;
+                            resultConclusion!.paperSpeed =
+                                _paperSpeed.toString();
+                            resultConclusion!.gain = _gain.toString();
                             var newData = resultConclusion?.toJson();
                             examDatas["Analyse12"] = jsonEncode(newData);
+                            examDatas["HEART12"] = _hrController.text;
                             var exam = jsonEncode(examDatas);
-                            final bool result = await Get.find<IExamManager>()
-                                .createExamDatas(
-                                    widget.recordInfo.code ?? '', exam);
-                            if (result) {
-                              PromptBox.toast('提交成功');
-                              Get.back();
+                            if (widget.reportCode.isEmpty) {
+                              final String result =
+                                  await Get.find<IReportManager>().addReport(
+                                recordCode: widget.recordInfo.code ?? '',
+                                reportDatasJson: exam,
+                                name: widget.recordInfo.patientName ?? '',
+                                reportTemplateCode:
+                                    _currentSelectedTemplate.reportTemplateCode,
+                              );
+                              if (result.isNotEmpty) {
+                                PromptBox.toast('提交成功');
+                                Get.back();
+                              }
+                            } else {
+                              final bool result =
+                                  await Get.find<IReportManager>().modifyReport(
+                                recordCode: widget.recordInfo.code ?? '',
+                                reportInfoJson: exam,
+                                name: widget.recordInfo.patientName ?? '',
+                                reportTemplateCode: _currentSelectedTemplate
+                                        .reportTemplateCode ??
+                                    '',
+                                reportCode: widget.reportCode,
+                              );
+                              if (result) {
+                                PromptBox.toast('提交成功');
+                                Get.back();
+                              }
                             }
                           }
                         }

+ 1 - 0
lib/pages/home/personal_center/state.dart

@@ -45,6 +45,7 @@ class PersonalCenterState {
   ///角色名称
   String get roleName => _dto.value.roleName ?? '';
 
+  ///上级机构
   String get fatherOrgName => _dto.value.fatherOrgName ?? '';
 
   void updateDto(UserDTO2 dto) {

+ 8 - 10
lib/pages/report_edit/controllers/report_operate_controller.dart

@@ -127,16 +127,15 @@ class ReportOperateController {
     String templateJson,
     String name,
     String reportInfoJson,
-    String? reportMeasureDatasJson,
-  ) async {
+    String? reportMeasureDatasJson, {
+    ReportTypeEnum reportType = ReportTypeEnum.RemoteDiagnosis,
+  }) async {
     var reportInfo = await findReportByCodeAsync();
     final updateRequest = ModifyReportRequest(
       reportCode: state.reportCode,
       token: Store.user.token,
       recordCode: recordCode,
-      reportType: state.consultationCode.isNotEmpty
-          ? ReportTypeEnum.LiveConsultation
-          : ReportTypeEnum.RemoteDiagnosis,
+      reportType: reportType,
       reportTemplateJson: templateJson,
       platformLabels: ["Flyinsono", "PC", "RemoteDiagnosis"],
       patientName: FEncryptHelper.encodeBase64(name),
@@ -218,14 +217,13 @@ class ReportOperateController {
     String templateJson,
     String name,
     String reportDatasJson,
-    String? reportMeasureDatasJson,
-  ) async {
+    String? reportMeasureDatasJson, {
+    ReportTypeEnum reportType = ReportTypeEnum.RemoteDiagnosis,
+  }) async {
     final addRequest = AddReportRequest(
       token: Store.user.token,
       recordCode: recordCode,
-      reportType: state.consultationCode.isNotEmpty
-          ? ReportTypeEnum.LiveConsultation
-          : ReportTypeEnum.RemoteDiagnosis,
+      reportType: reportType,
       reportTemplateJson: templateJson,
       isReferral: state.referralRecordCode.isNotEmpty,
       reportDatasJson: reportDatasJson,

+ 4 - 4
pubspec.lock

@@ -325,8 +325,8 @@ packages:
     dependency: "direct main"
     description:
       path: "."
-      ref: "413f5856fe74e6ae2cb4471ab65f059f79312817"
-      resolved-ref: "413f5856fe74e6ae2cb4471ab65f059f79312817"
+      ref: e355bf62b0a26588e78a5ccd5a3a1c61ee9526c1
+      resolved-ref: e355bf62b0a26588e78a5ccd5a3a1c61ee9526c1
       url: "http://git.ius.plus/loki.wu/ecg_list_view.git"
     source: git
     version: "1.0.0+1"
@@ -424,8 +424,8 @@ packages:
     dependency: "direct main"
     description:
       path: "."
-      ref: ef3e9369d9fc9ddc81a80d1805fe623f078528c7
-      resolved-ref: ef3e9369d9fc9ddc81a80d1805fe623f078528c7
+      ref: "73f1b1647fb191684b8c04b8cdf65530562f399d"
+      resolved-ref: "73f1b1647fb191684b8c04b8cdf65530562f399d"
       url: "http://git.ius.plus:88/Project-Wing/fis_lib_jsonrpc.git"
     source: git
     version: "0.0.1"

+ 6 - 6
pubspec.yaml

@@ -156,6 +156,11 @@ dependency_overrides:
   flutter_sound_platform_interface: 9.2.13
   universal_html: 2.0.8
 
+  fis_jsonrpc:
+    git:
+      url: http://git.ius.plus:88/Project-Wing/fis_lib_jsonrpc.git
+      ref: 73f1b1647fb191684b8c04b8cdf65530562f399d
+    #path: ../fis_lib_jsonrpc
   fis_common:
     git:
       url: http://git.ius.plus:88/Project-Wing/fis_lib_common.git
@@ -164,11 +169,6 @@ dependency_overrides:
     git:
       url: http://git.ius.plus:88/Project-Wing/fis_lib_ui.git
       ref: "33f3019"
-  fis_jsonrpc:
-    git:
-      url: http://git.ius.plus:88/Project-Wing/fis_lib_jsonrpc.git
-      ref: ef3e9369d9fc9ddc81a80d1805fe623f078528c7
-    #path: ../fis_lib_jsonrpc
   fis_theme:
     git:
       url: http://git.ius.plus:88/Project-Wing/fis_lib_theme.git
@@ -215,7 +215,7 @@ dependency_overrides:
   ecg_list_view:
     git:
       url: http://git.ius.plus/loki.wu/ecg_list_view.git
-      ref: 413f5856fe74e6ae2cb4471ab65f059f79312817
+      ref: e355bf62b0a26588e78a5ccd5a3a1c61ee9526c1
     # path: ../ecg_list_view
 dev_dependencies:
   flutter_test: