liusheng
4 天以前 0bbbd746e8c39d91ad7b47a4e36e29ab972dc98c
smartor/src/main/java/com/smartor/service/IPatMedInhospService.java
@@ -2,12 +2,20 @@
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.common.core.page.TableDataInfo;
import com.ruoyi.common.core.service.dto.PatMedReq;
import com.ruoyi.common.core.service.dto.PatMedRes;
import com.smartor.domain.*;
import com.ruoyi.inhospvisit.domain.PatMedInhospDTO;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
import java.util.Map;
import com.ruoyi.inhospvisit.domain.PatMedInhospVO;
import com.ruoyi.inhospvisit.domain.PatMedInhosp;
import com.ruoyi.common.core.domain.entity.PatArchive;
import com.ruoyi.task.domain.ServiceSubtask;
import com.ruoyi.task.domain.ServiceTask;
/**
 * 患者住院记录Service接口
 *
@@ -33,10 +41,7 @@
     */
    public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp);
    /**
     * 出院、门诊人数和随访量统计(周,月,年)
     */
    public Map<String, Integer> queryPersonCount(PatServiceCount patServiceCount);
    public List<PatMedInhospDTO> selectPatMedInhospByApplication(PatMedInhosp patMedInhosp);
    /**
     * 查询当前登陆人自己(病区、部门)的患者住院记录列表
@@ -123,4 +128,58 @@
     * @return 结果
     */
    public void addOperationSubTask(String config);
    public ServiceSubtask boxedServiceSubtask(ServiceTask serviceTask, PatMedInhosp patMedInhosp1, PatArchive patArchive, String config, Integer type);
    // ==========================================================================
    // 出入院随访模块化(第一批)—— 供 VisitTaskCreateApiBridge / OtherVisitApiBridge 复用的过渡入口
    //
    // ⚠️ 这 3 个方法是<b>刻意新增</b>的过渡期入口(纯转发,零业务逻辑),
    //    不是误加、也不要"顺手删掉":
    //      · runOperationVisit(config)              —— 让 OtherVisitApiBridge 有个"随访能力"形状的入口
    //      · persistSubtask(subtask)                —— 让 VisitTaskCreateApiBridge 有唯一的落库入口
    //      · selectPendingDeptPatientsForVisit()    —— 让 PatMedInhospController 切到新入口后
    //                                                  仍能把列表交给院外/门诊合并
    //    由 sql/_probe/verify_step16_service_restore.py 与 audit_worktree_changes.py 登记把关。
    // ==========================================================================
    /**
     * 【过渡期用】手术随访扫描。
     * <p>
     * 与 {@link #addOperationSubTask(String)} <b>完全等价</b>(本方法就是转发到它),
     * 存在的唯一理由是给 {@code OtherVisitApiBridge} 一个"看起来属于随访能力"的入口,
     * 让手术随访将来搬去 {@code ruoyi-othervisit} 时只换实现方。
     * <p>
     * 注意:{@code addOperationSubTask} <b>不能删</b> —— 它被
     * {@code PatMedInhospController#addOperationSubTask}(URL 不变)直接调用。
     *
     * @param config {@code sys_config: visit.early.day}
     * @return 处理的手术记录数
     */
    int runOperationVisit(String config);
    /**
     * 【过渡期用】把「科室维度未处理的在院患者」列表读出来。
     * <p>
     * 供 {@code PatMedInhospController#dealOutHospInfo}(URL 不变)在切换到新入口后
     * 仍能把列表交给 {@code IPatMedOuthospService} 做"院外门诊 + 在院"合并。
     * <p>
     * 条件与原 {@code dealOutHospInfo} 的第一段查询<b>完全一致</b>:
     * {@code deptcheck_flag='0'} + {@code inhospstate='1'} + {@code fuflag='1'}。
     * 实现是纯转发({@code selectPatMedInhospList}),零逻辑改动。
     *
     * @return 科室维度未处理的在院患者
     */
    List<PatMedInhosp> selectPendingDeptPatientsForVisit();
    /**
     * 【过渡期用】把一条已组装好的子任务落库。
     * <p>
     * 单独抽出来的理由:让 {@code VisitTaskCreateApiBridge} 有一个可控的写入口,
     * 便于"搬迁前后逐行等价"的探针比对;将来「随访任务创建模块」接管时替换实现方。
     *
     * @param serviceSubtask 已组装好的子任务(调用方负责填全字段)
     * @return true = 落库成功
     */
    boolean persistSubtask(ServiceSubtask serviceSubtask);
}