|
@@ -1,44 +1,92 @@
|
|
|
+
|
|
|
+
|
|
|
import 'dart:convert';
|
|
|
|
|
|
import 'package:fis_jsonrpc/rpc.dart';
|
|
|
import 'package:flutter/material.dart';
|
|
|
import 'package:get/get.dart';
|
|
|
import 'package:uuid/uuid.dart';
|
|
|
+import 'package:vitalapp/architecture/utils/prompt_box.dart';
|
|
|
import 'package:vitalapp/managers/interfaces/exam.dart';
|
|
|
+import 'package:vitalapp/managers/interfaces/registration.dart';
|
|
|
import 'package:vitalapp/pages/self_care_ability_assessment/controller.dart';
|
|
|
import 'package:vitalapp/pages/self_care_ability_assessment/widget/assessment_module.dart';
|
|
|
import 'package:vitalapp/store/store.dart';
|
|
|
|
|
|
class SelfCareAbilityAssessmentView
|
|
|
extends GetView<SelfCareAbilityAssessmentController> {
|
|
|
- const SelfCareAbilityAssessmentView({super.key});
|
|
|
+ SelfCareAbilityAssessmentView({super.key});
|
|
|
+ final _examManager = Get.find<IExamManager>();
|
|
|
+ ExamDTO? currentSelfCareAbilityAssessmentExam;
|
|
|
@override
|
|
|
Widget build(BuildContext context) {
|
|
|
return Scaffold(
|
|
|
- body: buildContent("LNRZLNLPG"),
|
|
|
- );
|
|
|
+ body: FutureBuilder(
|
|
|
+ future: getExamData(
|
|
|
+ Store.user.currentSelectRegisterPersonInfo?.physicalExamNumber ?? ''),
|
|
|
+ builder: (context, snapshot) {
|
|
|
+ if (snapshot.connectionState == ConnectionState.waiting) {
|
|
|
+ return Center(child: CircularProgressIndicator());
|
|
|
+ } else if (snapshot.hasError) {
|
|
|
+ return Center(child: Text('Error: ${snapshot.error}'));
|
|
|
+ } else {
|
|
|
+ return buildContent("LNRZLNLPG");
|
|
|
+ }
|
|
|
+ },
|
|
|
+ ));
|
|
|
}
|
|
|
|
|
|
Widget buildContent(String key) {
|
|
|
+ if (currentSelfCareAbilityAssessmentExam != null &&
|
|
|
+ currentSelfCareAbilityAssessmentExam!.examData != null &&
|
|
|
+ currentSelfCareAbilityAssessmentExam!.examData!.isNotEmpty) {
|
|
|
+ return SelfCareAssessmentModule(
|
|
|
+ cardKey: key,
|
|
|
+ patientCode: Store.user.currentSelectPatientInfo?.code,
|
|
|
+ examData: currentSelfCareAbilityAssessmentExam!.examData,
|
|
|
+ callBack: (key, templateCode, data) async {
|
|
|
+ await updateExamAsync(
|
|
|
+ currentSelfCareAbilityAssessmentExam?.code,
|
|
|
+ data,
|
|
|
+ );
|
|
|
+
|
|
|
+ return true;
|
|
|
+ },
|
|
|
+ );
|
|
|
+ }
|
|
|
return SelfCareAssessmentModule(
|
|
|
cardKey: key,
|
|
|
patientCode: Store.user.currentSelectPatientInfo?.code,
|
|
|
callBack: (key, templateCode, data) async {
|
|
|
await createBasicCheckup(
|
|
|
- Store.user.currentSelectPatientInfo?.code ?? '',
|
|
|
- Store.user.currentSelectRegisterPersonInfo?.physicalExamNumber ??
|
|
|
- '',
|
|
|
- key,
|
|
|
- data);
|
|
|
+ Store.user.currentSelectPatientInfo?.code ?? '',
|
|
|
+ Store.user.currentSelectRegisterPersonInfo?.physicalExamNumber ?? '',
|
|
|
+ key,
|
|
|
+ data,
|
|
|
+ );
|
|
|
|
|
|
return true;
|
|
|
},
|
|
|
);
|
|
|
}
|
|
|
|
|
|
+ Future<void> updateExamAsync(String? code, String data) async {
|
|
|
+ var request = UpdateExamRequest(
|
|
|
+ key: "LNRZLNLPG",
|
|
|
+ examData: data,
|
|
|
+ code: code ?? '',
|
|
|
+ );
|
|
|
+ print(jsonEncode(request.toJson()));
|
|
|
+ final result = await _examManager.editExam(request);
|
|
|
+ if (result ?? false) {
|
|
|
+ PromptBox.toast('保存成功');
|
|
|
+ } else {
|
|
|
+ PromptBox.toast('保存失败');
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
Future<void> createBasicCheckup(String patientCode,
|
|
|
String? physicalExamNumber, String? keyValue, String data) async {
|
|
|
- final _examManager = Get.find<IExamManager>();
|
|
|
var uuid = Uuid().v4().toString();
|
|
|
var request = CreateExamRequest(
|
|
|
key: keyValue ?? "LNRZLNLPG",
|
|
@@ -51,4 +99,17 @@ class SelfCareAbilityAssessmentView
|
|
|
var result = await _examManager.createExam(request);
|
|
|
print(result);
|
|
|
}
|
|
|
+
|
|
|
+ Future<ExamDTO?> getExamData(String physicalExamNumber) async {
|
|
|
+ List<ExamDTO>? examList = await Get.find<IRegistrationManager>()
|
|
|
+ .getExamListByPhysicalExamNumberAsync(
|
|
|
+ physicalExamNumber: physicalExamNumber,
|
|
|
+ );
|
|
|
+
|
|
|
+ ExamDTO? currentExam = examList?.firstWhereOrNull(
|
|
|
+ (element) => element.key == "LNRZLNLPG",
|
|
|
+ );
|
|
|
+ currentSelfCareAbilityAssessmentExam = currentExam;
|
|
|
+ return currentExam;
|
|
|
+ }
|
|
|
}
|