report.api.ts 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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. if ( data ) {
  18. const { show, force } = await miniProgramMethod();
  19. return {
  20. id, date, miniProgramURL: show ? miniProgramURL : void 0,
  21. tongue: fromAnalysisModel('tongue', data),
  22. face: fromAnalysisModel('face', data),
  23. payLock: show && force,
  24. };
  25. }
  26. throw { message: `[分析结果] 照片不符合检测要求,图片不是舌头(请拍摄带有舌头的、清晰的彩色照!)` };
  27. },
  28. },
  29. );
  30. }
  31. export function getReportMethod(id: string) {
  32. const Visitor = useVisitor();
  33. const params = { healthAnalysisReportId: id, patientId: Visitor.patientId };
  34. return HTTP.Get(`/fdhb-tablet/analysisManage/getHealRepDetailById`, {
  35. params,
  36. async transform(data, headers) {
  37. const report = fromReportData(<any> data);
  38. const { show, force } = await miniProgramMethod();
  39. if ( !show ) { report.miniProgramURL = void 0; }
  40. report.payLock = show && force;
  41. return report;
  42. },
  43. });
  44. }
  45. export function updateReportMethod(id: string, data: Record<string, any>) {
  46. const Visitor = useVisitor();
  47. const params = {
  48. healthAnalysisReportId: id,
  49. constitutionGroupImg: data?.constitutionGroupImg,
  50. factorItemRadarImg: data?.factorItemRadarImg,
  51. patientId: Visitor.patientId
  52. };
  53. return HTTP.Post(`/fdhb-tablet/analysisManage/upConFacImgById`, params, {});
  54. }
  55. export function getReportSchemeMethod(id: string) {
  56. const Visitor = useVisitor();
  57. const params = { healthAnalysisReportId: id, patientId: Visitor.patientId };
  58. return HTTP.Get(`/fdhb-tablet/analysisManage/getCondProgDetailById`, {
  59. params,
  60. transform(data: any, headers) {
  61. return fromSchemeRequest(data);
  62. },
  63. });
  64. }
  65. export function miniProgramMethod() {
  66. return HTTP.Post<{ show: boolean; force: boolean; }, { tabletRequiredPageOperationElements: string[] }>(
  67. `/fdhb-tablet/warrantManage/getPageSets`, void 0, {
  68. cacheFor, name: `variate:mini_program`,
  69. params: { k: 'mini_program' },
  70. transform(data, headers) {
  71. return {
  72. show: data?.tabletRequiredPageOperationElements?.includes('health_analysis_report_page_appletbutton'),
  73. force: data?.tabletRequiredPageOperationElements?.includes('health_analysis_report_page_appletscan'),
  74. };
  75. },
  76. });
  77. }