123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- // ignore_for_file: must_be_immutable
- 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> {
- SelfCareAbilityAssessmentView({super.key});
- final _examManager = Get.find<IExamManager>();
- ExamDTO? currentSelfCareAbilityAssessmentExam;
- @override
- Widget build(BuildContext context) {
- return Scaffold(
- 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,
- );
- 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 {
- var uuid = Uuid().v4().toString();
- var request = CreateExamRequest(
- key: keyValue ?? "LNRZLNLPG",
- examData: data,
- batchNumber: uuid,
- patientCode: patientCode,
- physicalExamNumber: physicalExamNumber,
- );
- print(jsonEncode(request.toJson()));
- 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;
- }
- }
|