reportmanager.dart 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192
  1. import 'package:fis_common/helpers/encrypt.dart';
  2. import 'package:fis_i18n/i18n.dart';
  3. import 'package:fis_jsonrpc/rpc.dart';
  4. import 'package:flyinsonolite/jsonrpc/fisLib/services/log.m.dart';
  5. import 'package:flyinsonolite/jsonrpc/jsonrpcclient.dart';
  6. import 'package:flyinsonolite/infrastructure/logger.dart';
  7. import 'package:flyinsonolite/managers/basemanager.dart';
  8. import 'package:flyinsonolite/managers/interfaces/ireportmanager.dart';
  9. import 'package:intl/intl.dart';
  10. class ReportManager extends BaseManager implements IReportManager {
  11. @override
  12. Future<List<ReportDTO>> findReportsAsync(String recordCode) async {
  13. try {
  14. var reportInfos = await jsonRpcProxy.report.findReportsAsync(
  15. FindReportsRequest(
  16. token: token,
  17. recordCode: recordCode,
  18. ),
  19. );
  20. return reportInfos;
  21. } catch (e) {
  22. await loggerAsyn(FISDeviceLogCategory.Error,
  23. 'ReportManager findReportsAsync ex: ${e.toString()}');
  24. return [];
  25. }
  26. }
  27. /// 格式化时间
  28. ///
  29. /// [time] 后端返回的时间
  30. @override
  31. String getTime(String time) {
  32. String stringTime = '';
  33. if (time.isNotEmpty) {
  34. stringTime = DateFormat("yyyy-MM-dd HH:mm:ss").format(
  35. DateTime.fromMillisecondsSinceEpoch(
  36. DateTime.tryParse(time)?.millisecondsSinceEpoch as int,
  37. ),
  38. );
  39. }
  40. return stringTime;
  41. }
  42. ///获取默认词条
  43. @override
  44. Future<ThesaurusAllDTO> getDefaultThesaurusContentAsync() async {
  45. var defaultThesaurus =
  46. await jsonRpcProxy.report.getDefaultThesaurusContentAsync(
  47. GetDefaultThesaurusContentRequest(
  48. token: token,
  49. languageCode: i18nBook.locale.toCodeString('-'),
  50. ),
  51. );
  52. return defaultThesaurus;
  53. }
  54. ///获取默认报告模板
  55. @override
  56. Future<ReportTemplateDTO?> getDefaultReportTemplateAsync() async {
  57. try {
  58. final result =
  59. await jsonRpcProxy.report.getDefaultReportTemplateContentAsync(
  60. GetDefaultReportTemplateContentRequest(
  61. token: token,
  62. languageCode: i18nBook.locale.toCodeString('-'),
  63. ),
  64. );
  65. return result;
  66. } catch (e) {
  67. await loggerAsyn(FISDeviceLogCategory.Error,
  68. 'ReportManager getDefaultReportTemplateAsync ex: $e');
  69. return null;
  70. }
  71. }
  72. ///新增报告
  73. @override
  74. Future<String?> addReportAsync(String consultationCode, String templateJson,
  75. String name, String reportInfoJson) async {
  76. final addRequest = AddReportRequest(
  77. token: token,
  78. recordCode: consultationCode,
  79. reportType: ReportTypeEnum.LiveConsultation,
  80. reportTemplateJson: templateJson,
  81. isReferral: false,
  82. reportDatasJson: reportInfoJson,
  83. platformLabels: ["Flyinsono", "Web", "Consultation"],
  84. patientName: FEncryptHelper.encodeBase64(name),
  85. );
  86. return await jsonRpcProxy.report.addReportAsync(addRequest);
  87. }
  88. ///修改报告
  89. @override
  90. Future<bool> modifyReportAsync(
  91. String reportCode,
  92. DiagnosisOrganEnum reportOrgan,
  93. String consultationCode,
  94. templateJson,
  95. String name,
  96. String reportInfoJson) async {
  97. final updateRequest = ModifyReportRequest(
  98. reportCode: reportCode,
  99. token: token,
  100. recordCode: consultationCode,
  101. reportType: ReportTypeEnum.LiveConsultation,
  102. reportTemplateJson: templateJson,
  103. platformLabels: ["Flyinsono", "Web", "Consultation"],
  104. patientName: FEncryptHelper.encodeBase64(name),
  105. reportDatasJson: reportInfoJson,
  106. reportOrgan: reportOrgan,
  107. );
  108. return await jsonRpcProxy.report.modifyReportAsync(updateRequest);
  109. }
  110. ///跟据reportCode获取报告详情
  111. @override
  112. Future<ReportDTO> findReportByCodeAsync(String reportCode) async {
  113. final reportInfo = await jsonRpcProxy.report.findReportByCodeAsync(
  114. FindReportByCodeRequest(
  115. token: token,
  116. reportCode: reportCode,
  117. language: i18nBook.locale.toCodeString('-'),
  118. ),
  119. );
  120. return reportInfo;
  121. }
  122. ///获取模板列表
  123. @override
  124. Future<PageResult<ReportTemplateDTO>> getReportTemplatePage({
  125. int pageIndex = 1,
  126. int pageSize = 100,
  127. String? keyword,
  128. bool? isDefault,
  129. }) async {
  130. var result = await jsonRpcProxy.report.getReportTemplatePageAsync(
  131. FindReportTemplatePagesRequest(
  132. token: token,
  133. languageCode: i18nBook.locale.toCodeString('-'),
  134. reportTemplateName: keyword,
  135. isDefault: isDefault,
  136. pageIndex: pageIndex,
  137. pageSize: pageSize,
  138. ),
  139. );
  140. return result;
  141. }
  142. ///获取指定模板
  143. @override
  144. Future<ReportTemplateDTO> findReportTemplateByCode({String code = ''}) async {
  145. final remportTemplateDTO = await jsonRpcProxy.report
  146. .findReportTemplateByCodeAsync(FindReportTemplateByCodeRequest(
  147. token: token,
  148. languageCode: i18nBook.locale.toCodeString('-'),
  149. reportTemplateCode: code,
  150. ));
  151. return remportTemplateDTO;
  152. }
  153. ///获取词条库分页
  154. @override
  155. Future<List<ThesaurusDTO>> getThesaurusPage({String keyword = ''}) async {
  156. final getThesaurusPage = await jsonRpcProxy.report.getThesaurusPageAsync(
  157. GetThesaurusPageRequest(
  158. token: token,
  159. pageIndex: 1,
  160. pageSize: 100,
  161. thesaurusName: keyword,
  162. languageCode: i18nBook.locale.toCodeString('-'),
  163. ),
  164. );
  165. return getThesaurusPage.pageData ?? <ThesaurusDTO>[];
  166. }
  167. @override
  168. Future<List<ThesaurusItemDTO>> getThesaurusItems({
  169. String? thesaurusCode,
  170. String? keyword,
  171. }) async {
  172. return await jsonRpcProxy.report
  173. .getThesaurusItemsAsync(GetThesaurusItemsRequest(
  174. thesaurusCode: thesaurusCode,
  175. keyword: keyword,
  176. token: token,
  177. ));
  178. }
  179. }