package com.fs.his.service;

import cn.hutool.http.HttpRequest;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fs.common.core.domain.R;
import com.fs.course.param.FsInquiryPatientInfoUParam;
import com.fs.course.param.HsDoctorSchedule;
import com.fs.course.param.SendInquiryParam;
import com.fs.course.vo.FsInquiryPatientInfoListUVO;
import com.fs.his.domain.FsInquiryPatientInfo;
import com.fs.his.param.FsInquiryPatientParam;
import com.fs.his.vo.FsInquiryPatientVO;
import org.apache.ibatis.annotations.Param;

import javax.servlet.http.HttpServletRequest;
import java.util.List;
import java.util.Map;

/**
 * 问诊患者信息Service接口
 */
public interface IFsInquiryPatientInfoService {


    int insertFsInquiryPatientInfo(FsInquiryPatientParam fsInquiryPatientInfo);

    int updateFsInquiryPatientInfo(FsInquiryPatientParam fsInquiryPatientInfo);

    FsInquiryPatientVO selectFsInquiryPatientInfo(Long inquiryOrderId);

    List<FsInquiryPatientInfoListUVO> selectFsInquiryPatientInfoListUVO(FsInquiryPatientInfoUParam param);

    FsInquiryPatientInfoListUVO getInfo(Long id);

    R sendInquiryToHS(SendInquiryParam param) throws Exception;

    R receiveInquiryFromHsCallbackNotification(HttpServletRequest param) throws Exception;

    List<HsDoctorSchedule> getDoctorScheduleFromHs() throws Exception;

    Map redirectToHs(String inquiryOrderId) throws Exception;

    R cancelInquiryToHs(String inquiryOrderId);

//    void updateFsInquiryPatientInfoFromHsRedirect(HttpServletRequest param) throws JsonProcessingException;

//    void recieveInquiryFromHsDispensary(HttpServletRequest param) throws JsonProcessingException;
}
