contract.dart 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. import 'package:fis_common/logger/logger.dart';
  2. import 'package:fis_jsonrpc/rpc.dart';
  3. import 'package:vitalapp/architecture/utils/json_rpc_ex_interceptor.dart';
  4. import 'package:vitalapp/architecture/utils/prompt_box.dart';
  5. import 'package:vitalapp/managers/interfaces/contract.dart';
  6. import 'package:vitalapp/rpc.dart';
  7. import 'package:vitalapp/store/store.dart';
  8. class ContractManager implements IContractManager {
  9. @override
  10. Future<String?> createContractRecordAsync(
  11. CreateContractRecordRequest request) async {
  12. try {
  13. request.token = Store.user.token;
  14. final result =
  15. await rpc.vitalContractRecord.createContractRecordAsync(request);
  16. return result;
  17. } catch (e) {
  18. if (e is JsonRpcException && e.data.code != null) {
  19. final exMsg = JsonRpcExInterceptor.translateErrorCode(e.data.code!);
  20. PromptBox.toast(exMsg);
  21. }
  22. logger.e("PatientManager create patient error.", e);
  23. return null;
  24. }
  25. }
  26. @override
  27. Future<PageCollection<ContractRecordDTO>?>
  28. getContractRecordPageByPatientCodeAsync(String patientCode) async {
  29. try {
  30. final result = await rpc.vitalContractRecord
  31. .getContractRecordPageByPatientCodeAsync(
  32. GetContractRecordPageByPatientCodeRequest(
  33. patientCode: patientCode,
  34. token: Store.user.token,
  35. pageSize: 20,
  36. pageIndex: 1));
  37. return result;
  38. } catch (e) {
  39. return null;
  40. }
  41. }
  42. @override
  43. Future<PageCollection<ContractRecordDTO>?>
  44. getContractRecordPageAsync() async {
  45. try {
  46. final result = await rpc.vitalContractRecord.getContractRecordPageAsync(
  47. ContractRecordPageRequest(
  48. token: Store.user.token, pageSize: 20, pageIndex: 1));
  49. return result;
  50. } catch (e) {
  51. return null;
  52. }
  53. }
  54. @override
  55. Future<ContractRecordDTO?> getContractRecordDetailAsync(
  56. String patientCode) async {
  57. try {
  58. var request = GetContractRecordRequest(
  59. code: patientCode,
  60. token: Store.user.token,
  61. );
  62. final result =
  63. await rpc.vitalContractRecord.getContractRecordDetailAsync(request);
  64. return result;
  65. } catch (e) {
  66. return null;
  67. }
  68. }
  69. @override
  70. Future<bool> updateContractRecordStateAsync(
  71. String? code, ContractStateEnum? contractState, String? reason) async {
  72. try {
  73. var request = UpdateContractRecordStateRequest(
  74. code: code,
  75. contractState: contractState,
  76. reason: reason,
  77. token: Store.user.token,
  78. );
  79. final result =
  80. await rpc.vitalContractRecord.updateContractRecordStateAsync(request);
  81. return result;
  82. } catch (e) {}
  83. return false;
  84. }
  85. @override
  86. Future<bool> removeContractRecordAsync(String code) async {
  87. try {
  88. var request = RemoveContractRecordRequest(
  89. code: code,
  90. token: Store.user.token,
  91. );
  92. final result =
  93. await rpc.vitalContractRecord.removeContractRecordAsync(request);
  94. return result;
  95. } catch (e) {}
  96. return false;
  97. }
  98. @override
  99. Future<String> renewalContractRecordAsync(String code) async {
  100. try {
  101. var request = RenewalContractRecordRequest(
  102. token: Store.user.token,
  103. code: code,
  104. serviceStartDate: DateTime.now(),
  105. serviceEndDate: DateTime.now().add(const Duration(days: 365)),
  106. );
  107. final result =
  108. await rpc.vitalContractRecord.renewalContractRecordAsync(request);
  109. return result;
  110. } catch (e) {}
  111. return "";
  112. }
  113. }