patient.dart 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. import 'dart:convert';
  2. import 'package:fis_jsonrpc/services/completionRecord.m.dart';
  3. import 'package:fis_jsonrpc/services/patient.m.dart';
  4. import 'package:fis_jsonrpc/services/patientExtension.m.dart';
  5. import 'package:vitalapp/database/entities/patient.dart';
  6. import 'package:vitalapp/managers/interfaces/patient.dart';
  7. class PatientOfflineStoreAdapter implements IPatientStoreAdapter {
  8. @override
  9. Future<String?> create(CreatePatientRequest request) async {
  10. final dto = PatientDtoConverter.create2Dto(request);
  11. final dtoJson = dto.toJson();
  12. final entity = PatientEntity();
  13. entity.code = request.code!;
  14. entity.isValid = true;
  15. entity.dataJson = jsonEncode(dtoJson);
  16. return entity.code;
  17. }
  18. @override
  19. Future<bool> updatePatientAsync(UpdatePatientRequest request) {
  20. // TODO: implement updatePatientAsync
  21. throw UnimplementedError();
  22. }
  23. @override
  24. Future<PatientDTO?> getDetail(String code) {
  25. // TODO: implement getDetail
  26. throw UnimplementedError();
  27. }
  28. @override
  29. Future<bool> setCrowdLabelsAsync(
  30. String patientCode, List<String> carowLabels) {
  31. // TODO: implement setCrowdLabelsAsync
  32. throw UnimplementedError();
  33. }
  34. @override
  35. Future<PatientExtensionDTO?> getPatientExtensionDetailByCodeAndKeyAsync(
  36. GetPatientExtensionByCodeAndKeyRequest request) {
  37. // TODO: implement getPatientExtensionDetailByCodeAndKeyAsync
  38. throw UnimplementedError();
  39. }
  40. @override
  41. Future<String> createPatientExtensionAsync(
  42. CreatePatientExtensionRequest request) {
  43. // TODO: implement createPatientExtensionAsync
  44. throw UnimplementedError();
  45. }
  46. @override
  47. Future<bool> updatePatientExtensionAsync(
  48. UpdatePatientExtensionRequest request) {
  49. // TODO: implement updatePatientExtensionAsync
  50. throw UnimplementedError();
  51. }
  52. @override
  53. Future<PageCollection<PatientDTO>?> getPagedList(PatientPageRequest request) {
  54. throw UnimplementedError();
  55. }
  56. }
  57. abstract class PatientDtoConverter {
  58. /// 根据新建请求创建DTO
  59. static PatientDTO create2Dto(CreatePatientRequest request) {
  60. final dto = PatientDTO();
  61. dto.code = request.code;
  62. dto.patientName = request.patientName;
  63. dto.phone = request.phone;
  64. dto.cardNo = request.cardNo;
  65. dto.nationality = request.nationality;
  66. dto.birthday = request.birthday;
  67. dto.crowdLabels = request.crowdLabels;
  68. dto.cardType = request.cardType;
  69. dto.patientGender = request.patientGender;
  70. dto.patientAddress = request.patientAddress;
  71. dto.permanentResidenceAddress = request.permanentResidenceAddress;
  72. dto.teamRegionCode = request.teamRegionCode;
  73. dto.contractedDoctor = request.contractedDoctor;
  74. return dto;
  75. }
  76. /// 根据DTO创建新建请求
  77. static CreatePatientRequest dto2Create(PatientDTO dto) {
  78. final dtoJson = dto.toJson();
  79. final request = CreatePatientRequest.fromJson(dtoJson);
  80. return request;
  81. }
  82. /// 同步更新到DTO
  83. static void syncUpdate2Dto(PatientDTO dto, UpdatePatientRequest request) {
  84. dto.patientName = request.patientName;
  85. dto.phone = request.phone;
  86. dto.cardNo = request.cardNo;
  87. dto.nationality = request.nationality;
  88. dto.birthday = request.birthday;
  89. dto.crowdLabels = request.crowdLabels;
  90. if (request.cardType != null) {
  91. dto.cardType = request.cardType!;
  92. }
  93. if (request.patientGender != null) {
  94. dto.patientGender = request.patientGender!;
  95. }
  96. dto.patientAddress = request.patientAddress;
  97. dto.permanentResidenceAddress = request.permanentResidenceAddress;
  98. dto.teamRegionCode = request.teamRegionCode;
  99. dto.contractedDoctor = request.contractedDoctor;
  100. }
  101. /// 根据DTO创建更新请求
  102. static UpdatePatientRequest dto2Update(PatientDTO dto) {
  103. final dtoJson = dto.toJson();
  104. final request = UpdatePatientRequest.fromJson(dtoJson);
  105. return request;
  106. }
  107. }
  108. abstract class PatientExtDtoConverter {
  109. /// 根据新建请求创建DTO
  110. static PatientExtensionDTO create2Dto(CreatePatientExtensionRequest request) {
  111. final dto = PatientExtensionDTO();
  112. // dto.code = request.code;
  113. // dto.patientName = request.patientName;
  114. // dto.phone = request.phone;
  115. // dto.cardNo = request.cardNo;
  116. // dto.nationality = request.nationality;
  117. // dto.birthday = request.birthday;
  118. // dto.crowdLabels = request.crowdLabels;
  119. // dto.cardType = request.cardType;
  120. // dto.patientGender = request.patientGender;
  121. // dto.patientAddress = request.patientAddress;
  122. // dto.permanentResidenceAddress = request.permanentResidenceAddress;
  123. // dto.teamRegionCode = request.teamRegionCode;
  124. // dto.contractedDoctor = request.contractedDoctor;
  125. return dto;
  126. }
  127. /// 根据DTO创建新建请求
  128. static CreatePatientExtensionRequest dto2Create(PatientExtensionDTO dto) {
  129. final dtoJson = dto.toJson();
  130. final request = CreatePatientExtensionRequest.fromJson(dtoJson);
  131. return request;
  132. }
  133. /// 同步更新到DTO
  134. static void syncUpdate2Dto(
  135. PatientExtensionDTO dto, UpdatePatientExtensionRequest request) {}
  136. /// 根据DTO创建更新请求
  137. static UpdatePatientExtensionRequest dto2Update(PatientExtensionDTO dto) {
  138. final dtoJson = dto.toJson();
  139. final request = UpdatePatientExtensionRequest.fromJson(dtoJson);
  140. return request;
  141. }
  142. }