package com.emoon.tongue.service;

import com.emoon.tongue.domain.vo.TongueDiagnosisDetailVo;

/**
 * 舌诊任务Service接口
 *
 * @author destiny
 * @date 2025-12-09
 */
public interface ITongueDiagnosisService {

    /**
     * 根据患者ID和医院编码查询舌诊任务详情
     *
     * @param patientId 患者ID
     * @param projectId 医院编码
     * @return 舌诊任务详情
     */
    TongueDiagnosisDetailVo getDiagnosisDetail(String patientId, String projectId);

    /**
     * 处理舌象上传
     *
     * @param imageUrl              图片URL
     * @param patientId             患者ID
     * @param projectId             医院编码
     * @param patientAge            患者年龄
     * @param patientGender         患者性别
     * @param patientChiefComplaint 患者主诉
     * @return 是否上传成功
     */
    boolean handleTongueImageUpload(String imageUrl, String imagePath, String patientId, String projectId,
                                    Integer patientAge, Integer patientGender, String patientChiefComplaint);

    /**
     * 根据患者ID和医院编码获取记录主键ID
     *
     * @param patientId 患者ID
     * @param projectId 医院编码
     * @return 记录主键ID
     */
    Long getDiagnosisId(String patientId, String projectId);

    /**
     * 更新舌诊AI诊断结果
     *
     * @param id           记录主键ID
     * @param diagnosisResult  诊断结果JSON字符串
     * @return 是否成功
     */
    boolean updateAiDiagnosisResult(Long id, String diagnosisResult);
}
