import { cacheFor } from '@/request/api/index'; import { useVisitor } from '@/stores'; import HTTP from '../alova'; import { fromAnalysisModel, fromReportData, fromSchemeRequest } from '../model'; export function getAnalysisResultsMethod() { const Visitor = useVisitor(); return HTTP.Post( `/fdhb-tablet/dialogueManage/dialog/${ Visitor.patientId }/${ Visitor.resultId }`, { questions: [], asyncTongueResult: false, patientId: Visitor.patientId }, { meta: { ignoreException: true }, async transform(data: Record, headers) { const id = data?.tonguefaceAnalysisReportId; const date = data?.tonguefaceAnalysisReportDate; const miniProgramURL = data?.tonguefaceAnalysisReportAppletImg; data = data.nextQuestions?.find((item: any) => item.classify === 'tongue_result'); let message = ''; if ( data ) { const tongue = fromAnalysisModel('tongue', data); const face = fromAnalysisModel('face', data); if (!tongue.result && !face.result) { message = data.content; } else { const { show, force } = await miniProgramMethod('report'); return { id, date, miniProgramURL: show ? miniProgramURL : void 0, tongue, face, payLock: show && force, }; } } throw { message: message || `[分析结果] 照片不符合检测要求,图片不是舌头(请拍摄带有舌头的、清晰的彩色照!)` }; }, }, ); } export function getReportMethod(id: string) { const Visitor = useVisitor(); const params = { healthAnalysisReportId: id, patientId: Visitor.patientId?.toString() }; return HTTP.Get(`/fdhb-tablet/analysisManage/getHealRepDetailById`, { params, async transform(data, headers) { const patientId = (data)?.patientId?.toString() if (params.patientId !== patientId ) Visitor.$reset() const report = fromReportData( data); Visitor.updatePulseReport(report.pulse, patientId); const { show, force } = await miniProgramMethod('report'); if ( !show ) { report.miniProgramURL = void 0; } report.payLock = show && force; return report; }, }); } export function getAlcoholReportMethod() { const Visitor = useVisitor(); const params = { healthAnalysisReportId: Visitor.reportId, patientId: Visitor.patientId }; return HTTP.Get(`/fdhb-tablet/analysisManage/getHealRepDetailById`, { params, transform(data: Record) { return { date: data?.alcoholAnalysisReportDate /*?? data?.reportTime*/, alcohol: fromAnalysisModel('alcohol', data), } } }); } export function updateReportMethod(id: string, data: Record) { const Visitor = useVisitor(); const params = { healthAnalysisReportId: id, constitutionGroupImg: data?.constitutionGroupImg, factorItemRadarImg: data?.factorItemRadarImg, patientId: Visitor.patientId }; return HTTP.Post(`/fdhb-tablet/analysisManage/upConFacImgById`, params, {}); } export function getReportSchemeMethod(id: string, standalone?: boolean) { const Visitor = useVisitor(); const params = { healthAnalysisReportId: id, patientId: Visitor.patientId, standalone }; return HTTP.Get(`/fdhb-tablet/analysisManage/getCondProgDetailById`, { params, async transform(data: any, headers) { const scheme = fromSchemeRequest(data); const { show, force } = await miniProgramMethod('scheme'); if ( !show ) { scheme.miniProgramURL = void 0; } scheme.payLock = show && force; return scheme; }, }); } export function miniProgramMethod(type: 'report' | 'scheme' = 'report') { return HTTP.Post<{ show: boolean; force: boolean; }, { tabletRequiredPageOperationElements: string[] }>( `/fdhb-tablet/warrantManage/getPageSets`, void 0, { cacheFor, name: `variate:mini_program`, params: { k: `mini_program_${type}` }, transform(data, headers) { const cfg = Array.isArray(data.tabletRequiredPageOperationElements) ? data.tabletRequiredPageOperationElements : []; /** * - health_analysis_report_page_appletbutton * - health_analysis_report_page_appletscan * * - health_analysis_scheme_page_appletbutton * - health_analysis_scheme_page_appletscan */ return { show: cfg.includes(`health_analysis_${type}_page_appletbutton`), force: cfg.includes(`health_analysis_${type}_page_appletscan`), }; }, }); }