package com.docus.server.report.api;

import com.docus.infrastructure.web.api.CommonResult;
import com.docus.server.report.api.dto.*;
import com.docus.server.report.api.vo.SdRyBloodReportVO;

import java.util.List;

/**
 * 顺德人医调用
 *
 * @author wyb
 */
public interface ShunDePeopleService {
    /**
     * 根据顺德人医第三方索引查询门诊报告交叉索引
     *
     * @param sdRyIndex 顺德人医第三方索引
     * @return 门诊报告交叉索引
     */
    List<String> getSdRyMzReportJxIds(String sdRyIndex);

    /**
     * 根据顺德人医第三方索引查询住院报告交叉索引
     *
     * @param sdRyIndex 顺德人医第三方索引
     * @return 住院报告交叉索引
     */
    List<String> getSdRyZyReportJxIds(String sdRyIndex);


    /**
     * 根据顺德人医的报告交叉索引，查询检查报告
     *
     * @param sdJxReportDto 交叉索引和其他信息
     * @return 检查报告
     */
    String getInspectReportByJxId(SdJxReportDto sdJxReportDto);

    /**
     * 根据顺德人医的报告交叉索引，查询Lis检验报告
     *
     * @param sdJxReportDto 交叉索引和其他信息
     * @return 检查报告
     */
    String getLisReportByJxId(SdJxReportDto sdJxReportDto);

    /**
     * 根据检查流水或和报告序列号，指定要获取的报告，PACS将生成PDF格式的报告，并将PDF文件的BASE64编码串返回。
     *
     * @param examNo   检查流水号
     * @param reportNo 报告序号
     * @return pdfBase64
     */
    String getBase64PdfFromPacs(String examNo, String reportNo);

    /**
     * 顺德人医，查询移动护理报告
     *
     * @param request 查询参数
     * @return 移动护理报告
     */
    SdNurseInsertSugarResponse getNurseInsertSugarReport(SdNurseInsertSugarRequest request);

    /**
     * 顺德人医，移动护理异常推送
     *
     * @param request 推送参数
     * @return 移动护理推送结果
     */
    SdNurDocFailResponse pushSdNurDocFail(SdNurDocFailRequest request);

    /**
     * 根据病案号查询输血报告单视图
     *
     * @param inpatientNo 住院号
     * @param admissTimes 住院次数
     * @return 血液报告
     */
    CommonResult<List<SdRyBloodReportVO>> getBloodView(String inpatientNo, Integer admissTimes);

}


