package com.openhis.web.inpatientmanage.appservice;

import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import com.core.common.core.domain.R;
import com.openhis.web.chargemanage.dto.OrgMetadata;
import com.openhis.web.inpatientmanage.dto.PatientHomeSearchParam;

/**
 * 患者首页 应用实现
 *
 * @author SY
 * @since 2025/05/19
 */
public interface IPatientHomeAppService {

    /**
     * 获取患者首页信息初期数据列表
     *
     * @return 患者首页初期数据列表
     */
    R<?> getPatientInfoInit(PatientHomeSearchParam patientHomeSearchParam, String searchKey, Integer pageNo,
        Integer pageSize, HttpServletRequest request);

    /**
     * 获取空床信息
     *
     * @return 空床信息
     */
    R<?> getEmptyBed(Long organizationId);

    /**
     * 转床保存
     *
     * @return 转床结果
     */
    R<?> saveBedTransfer(Long encounterLocationId, Long encounterId, Long oldLocationId, Long newLocationId);

    /**
     * 获取科室信息
     *
     * @return 科室列表
     */
    List<OrgMetadata> getCaty();

    /**
     * 转科保存
     *
     * @return 转科结果
     */
    R<?> saveDepartmentTransfer(Long encounterLocationId, Long patientId, Long encounterId, Long organizationId,
        Date DepartmentTransferYmd);

    /**
     * 出院
     *
     * @return 出院
     */
    R<?> saveDischargeHospital(Long encounterLocationId, Long patientId, Long encounterId, Long locationId,
        Date DischargeHospitalYmd);
}
