liusheng
2026-11-03 b46b8b8fee4d10e52dd882febc07974b02e2aed9
smartor/src/main/java/com/smartor/service/IPatMedOuthospService.java
@@ -1,70 +1,68 @@
package com.smartor.service;
import java.util.List;
import com.ruoyi.outpatientvisit.domain.PatMedOuthosp;
import com.ruoyi.common.core.page.TableDataInfo;
import com.smartor.domain.PatMedOuthosp;
import com.smartor.domain.PatMedReq;
import com.smartor.domain.PatMedRes;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.Collection;
import java.util.Set;
/**
 * 患者门诊记录Service接口
 * 患者门诊记录 Service —— <b>过渡接口(正在收口)</b>。
 *
 * @author smartor
 * @date 2023-03-04
 * <h3>⚠️ 本接口的大部分方法已不在本模块实现</h3>
 * 门急诊随访模块化(O2~O4)已把门诊记录的服务端能力整体迁入
 * {@code ruoyi-outpatientvisit}:
 * <ul>
 *   <li>基础读写/统计/分表路由 → 该模块的 {@code OuthospDataService};</li>
 *   <li>随访编排(扫全量)→ 该模块的 {@code OuthospVisitTaskService}。</li>
 * </ul>
 * 本接口保留是为了让<b>既有调用方零改动</b>(10 个文件,跨 smartor / ruoyi-admin / ruoyi-quartz),
 * 由委托实现把已迁方法转发到模块门面 ——
 * 与宣教单跨模块收口({@code ServiceSubtaskPreachformMapperBridge})同一手法。
 *
 * <h3>本接口刻意只保留「调用方实际用到的 5 个方法」</h3>
 * 原接口有 14 个方法,但实测只有以下 5 个被外部调用:
 * <pre>
 * insertPatMedOuthosp(...)        HNGatherPatArchive、CollectHIS、ServiceExternal、ServiceSLTD…
 * updatePatMedOuthosp(...)        CollectHIS、ServiceExternal、ServiceSubtask…
 * selectExistingSerialnums(...)   ServiceSLTD…
 * dealPatMedOuthosp(...)          ServiceExternal
 * </pre>
 * 其余({@code selectById} / {@code selectList} / {@code selectCount} / {@code getDeptCodeByPatId}
 * / {@code delete*} / {@code boxedServiceSubtask} / {@code followUp*})<b>无外部调用方</b>,
 * 故不在此声明。
 *
 * <h3>将来动作</h3>
 * 调用方逐个改为直接依赖模块门面后,本接口与委托实现即可整体删除。
 * <b>新代码请直接用 {@code ruoyi-outpatientvisit} 的
 * {@code OuthospDataFacade} / {@code OuthospDataService}。</b>
 *
 * @deprecated 用 {@code com.ruoyi.outpatientvisit.api.OuthospDataFacade} 代替。
 *         保留仅为兼容既有调用方,新代码不要使用。
 */
@Deprecated
public interface IPatMedOuthospService {
    /**
     * 查询患者门诊记录
     *
     * @param id 患者门诊记录主键
     * @return 患者门诊记录
     */
    public PatMedOuthosp selectPatMedOuthospById(Long id);
    /**
     * 查询患者门诊记录列表
     *
     * @param patMedOuthosp 患者门诊记录
     * @return 患者门诊记录集合
     */
    public List<PatMedOuthosp> selectPatMedOuthospList(PatMedOuthosp patMedOuthosp);
    /**
     * 新增患者门诊记录
     *
     * @param patMedOuthosp 患者门诊记录
     * @return 结果
     * 新增门诊记录(按就诊时间路由到分表)。
     */
    public int insertPatMedOuthosp(PatMedOuthosp patMedOuthosp);
    /**
     * 修改患者门诊记录
     *
     * @param patMedOuthosp 患者门诊记录
     * @return 结果
     * 修改门诊记录(查不到则转新增)。
     */
    public int updatePatMedOuthosp(PatMedOuthosp patMedOuthosp);
    /**
     * 批量删除患者门诊记录
     *
     * @param ids 需要删除的患者门诊记录主键集合
     * @return 结果
     * 批量查已入库的 serialnum(按就诊日期定位分表,一次 IN 查询)。
     */
    public int deletePatMedOuthospByIds(Long[] ids);
    public Set<String> selectExistingSerialnums(String admitDateStr, Collection<String> serialnums);
    /**
     * 删除患者门诊记录信息
     *
     * @param id 患者门诊记录主键
     * @return 结果
     * 单患者按需随访(景宁站点特殊逻辑 → 首次随访或再次随访)。
     * <p>
     * ⚠️ <b>本次【未】迁移</b>,仍由 smartor 原生实现:它依赖 {@code serviceSubtaskMapper}
     * 与 {@code followUpByPatMedOuthosp} / {@code followUpAgainByPatMedOuthosp} 两个私有方法,
     * 属另一条链路("按需"而非"扫全量")。随该链路一起收口。
     */
    public int deletePatMedOuthospById(Long id);
    public PatMedRes selectPatMedOuthospCount(@RequestBody PatMedReq patMedReq);
    //通过患者ID获取到最新的deptcode
    public PatMedOuthosp getDeptCodeByPatId(PatMedOuthosp patMedOuthosp);
    public Integer dealPatMedOuthosp(PatMedOuthosp patMedOuthosp, Integer visitTimeNum);
}