controller.dart 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import 'dart:async';
  2. import 'package:fis_jsonrpc/rpc.dart';
  3. import 'package:flutter/material.dart';
  4. import 'package:get/get.dart';
  5. import 'package:vitalapp/architecture/defines.dart';
  6. import 'package:vitalapp/architecture/utils/confirm_box.dart';
  7. import 'package:vitalapp/components/alert_dialog.dart';
  8. import 'package:vitalapp/managers/interfaces/models/patient_information.dart';
  9. import 'package:vitalapp/managers/interfaces/patient.dart';
  10. import 'package:vitalapp/pages/patient/info/widgets/ext_model.dart';
  11. import 'package:vitalapp/pages/patient_info/state.dart';
  12. import 'package:vitalapp/store/store.dart';
  13. class PatientInfomationController extends FControllerBase {
  14. final state = PatientInfomationState();
  15. @override
  16. void onReady() {
  17. super.onReady();
  18. //_loadData();
  19. }
  20. /// 处理 “同户籍地址” 勾选变更事件
  21. void onSyncAddressCheckChanged(bool isChecked) {
  22. state.isSyncAddresses = isChecked;
  23. if (isChecked) {
  24. // 同步户籍地址到现住地址
  25. state.address = state.permanentResidenceAddress;
  26. } else {
  27. state.address = "";
  28. }
  29. }
  30. Future<bool> onCardNoChanged(String value) async {
  31. final passed = await checkPatientCreatePassed(value);
  32. if (passed) {
  33. state.cardNo = value;
  34. }
  35. return passed;
  36. }
  37. Future<bool> checkPatientCreatePassed(String cardNo) async {
  38. if (cardNo == state.cardNo) {
  39. return true;
  40. }
  41. busy = true;
  42. final patient = await Get.find<IPatientManager>().getDetail(cardNo, false);
  43. busy = false;
  44. if (patient == null) {
  45. return true;
  46. }
  47. bool isConfirmed = true;
  48. if (patient.currentOrgCode != Store.user.organizationCode) {
  49. isConfirmed = await ConfirmBox.show(
  50. content: "该居民已被其他医院建档,是否继续填写?",
  51. width: 400,
  52. );
  53. } else {
  54. isConfirmed = await ConfirmBox.show(content: "该居民已存在,是否继续填写?");
  55. }
  56. return isConfirmed;
  57. }
  58. Future<bool> checkOfflinePatientExists(String cardNo) async {
  59. final model = await Get.find<IPatientManager>().getOfflineFullInfo(cardNo);
  60. return false;
  61. }
  62. void _applyDto2State(PatientDTO patient) {
  63. // 同步线上数据到表单
  64. }
  65. }