report.api.ts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. import { cacheFor } from '@/request/api/index';
  2. import { useVisitor } from '@/stores';
  3. import HTTP from '../alova';
  4. import { fromAnalysisModel, fromReportData, fromSchemeRequest } from '../model';
  5. export function getAnalysisResultsMethod() {
  6. const Visitor = useVisitor();
  7. return HTTP.Post(
  8. `/fdhb-tablet/dialogueManage/dialog/${ Visitor.patientId }/${ Visitor.resultId }`,
  9. { questions: [], asyncTongueResult: false, patientId: Visitor.patientId },
  10. {
  11. meta: { ignoreException: true },
  12. async transform(data: Record<string, any>, headers) {
  13. const id = data?.tonguefaceAnalysisReportId;
  14. const date = data?.tonguefaceAnalysisReportDate;
  15. const miniProgramURL = data?.tonguefaceAnalysisReportAppletImg;
  16. data = data.nextQuestions?.find((item: any) => item.classify === 'tongue_result');
  17. let message = '';
  18. if ( data ) {
  19. const tongue = fromAnalysisModel('tongue', data);
  20. const face = fromAnalysisModel('face', data);
  21. if (!tongue.result && !face.result) {
  22. message = data.content;
  23. } else {
  24. const { show, force } = await miniProgramMethod();
  25. return {
  26. id, date, miniProgramURL: show ? miniProgramURL : void 0,
  27. tongue, face,
  28. payLock: show && force,
  29. };
  30. }
  31. }
  32. throw { message: message || `[分析结果] 照片不符合检测要求,图片不是舌头(请拍摄带有舌头的、清晰的彩色照!)` };
  33. },
  34. },
  35. );
  36. }
  37. export function getReportMethod(id: string) {
  38. const Visitor = useVisitor();
  39. const params = { healthAnalysisReportId: id, patientId: Visitor.patientId?.toString() };
  40. return HTTP.Get(`/fdhb-tablet/analysisManage/getHealRepDetailById`, {
  41. params,
  42. async transform(data, headers) {
  43. const patientId = (<any>data)?.patientId?.toString()
  44. if (params.patientId !== patientId ) Visitor.$reset()
  45. const report = fromReportData(<any> data);
  46. Visitor.updatePulseReport(report.pulse, patientId);
  47. const { show, force } = await miniProgramMethod();
  48. if ( !show ) { report.miniProgramURL = void 0; }
  49. report.payLock = show && force;
  50. return report;
  51. },
  52. });
  53. }
  54. export function getAlcoholReportMethod() {
  55. const Visitor = useVisitor();
  56. const params = { healthAnalysisReportId: Visitor.reportId, patientId: Visitor.patientId };
  57. return HTTP.Get(`/fdhb-tablet/analysisManage/getHealRepDetailById`, {
  58. params,
  59. transform(data: Record<string, any>) {
  60. return {
  61. date: data?.alcoholAnalysisReportDate /*?? data?.reportTime*/,
  62. alcohol: fromAnalysisModel('alcohol', data),
  63. }
  64. }
  65. });
  66. }
  67. export function updateReportMethod(id: string, data: Record<string, any>) {
  68. const Visitor = useVisitor();
  69. const params = {
  70. healthAnalysisReportId: id,
  71. constitutionGroupImg: data?.constitutionGroupImg,
  72. factorItemRadarImg: data?.factorItemRadarImg,
  73. patientId: Visitor.patientId
  74. };
  75. return HTTP.Post(`/fdhb-tablet/analysisManage/upConFacImgById`, params, {});
  76. }
  77. export function getReportSchemeMethod(id: string) {
  78. const Visitor = useVisitor();
  79. const params = { healthAnalysisReportId: id, patientId: Visitor.patientId };
  80. return HTTP.Get(`/fdhb-tablet/analysisManage/getCondProgDetailById`, {
  81. params,
  82. transform(data: any, headers) {
  83. return fromSchemeRequest(data);
  84. },
  85. });
  86. }
  87. export function miniProgramMethod() {
  88. return HTTP.Post<{ show: boolean; force: boolean; }, { tabletRequiredPageOperationElements: string[] }>(
  89. `/fdhb-tablet/warrantManage/getPageSets`, void 0, {
  90. cacheFor, name: `variate:mini_program`,
  91. params: { k: 'mini_program' },
  92. transform(data, headers) {
  93. return {
  94. show: data?.tabletRequiredPageOperationElements?.includes('health_analysis_report_page_appletbutton'),
  95. force: data?.tabletRequiredPageOperationElements?.includes('health_analysis_report_page_appletscan'),
  96. };
  97. },
  98. });
  99. }