liusheng
8 天以前 f0a09ee996ab2605869844d6a3d812709e2bf0fa
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
package com.smartor.service;
 
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接口
 *
 * @author smartor
 * @date 2023-03-04
 */
public interface IPatMedInhospService {
    /**
     * 查询患者住院记录
     *
     * @param inhospid 患者住院记录主键
     * @return 患者住院记录
     */
    public PatMedInhosp selectPatMedInhospByInhospid(Long inhospid);
 
    public List<PatMedInhosp> selectPatMedInhosp(PatMedInhosp patMedInhosp);
 
    /**
     * 查询患者住院记录列表
     *
     * @param patMedInhosp 患者住院记录
     * @return 患者住院记录集合
     */
    public List<PatMedInhosp> selectPatMedInhospList(PatMedInhosp patMedInhosp);
 
    public List<PatMedInhospDTO> selectPatMedInhospByApplication(PatMedInhosp patMedInhosp);
 
    /**
     * 查询当前登陆人自己(病区、部门)的患者住院记录列表
     *
     * @param patMedInhospVO
     * @return
     */
    public List<PatMedInhosp> selectPatMedInhospListByCondition(PatMedInhospVO patMedInhospVO);
 
    public PatMedInhosp getDeptCodeByPatId(PatMedInhosp patMedInhosp);
 
    public PatMedRes selectPatMedInhospListCount(PatMedReq patMedReq);
 
    /**
     * 新增患者住院记录
     *
     * @param patMedInhosp 患者住院记录
     * @return 结果
     */
    public int insertPatMedInhosp(PatMedInhosp patMedInhosp);
 
    /**
     * 修改患者住院记录
     *
     * @param patMedInhosp 患者住院记录
     * @return 结果
     */
    public int updatePatMedInhosp(PatMedInhosp patMedInhosp);
 
    /**
     * 批量删除患者住院记录
     *
     * @param inhospids 需要删除的患者住院记录主键集合
     * @return 结果
     */
    public int deletePatMedInhospByInhospids(Long[] inhospids);
 
    /**
     * 删除患者住院记录信息
     *
     * @param inhospid 患者住院记录主键
     * @return 结果
     */
    public int deletePatMedInhospByInhospid(Long inhospid);
 
    public int deletePatMedInhospByInhospno(String inhospno);
 
    /**
     * 处理从his取来的出院数据
     *
     * @param
     * @return 结果
     */
    public int dealOutHospInfo(String config);
 
    /**
     * 处理从his取来的出院数据 任务组生成
     *
     * @param
     * @return 结果
     */
    public int dealOutHospInfoBySchedule(String config);
 
    /**
     * 获取出院,住院,门诊服务人次
     *
     * @param patMedReq
     * @return
     */
    public List<PatMedRes> getDeptRanking(PatMedReq patMedReq);
 
    /**
     * 医护与患者关联关系
     *
     * @param patMedInhosp
     * @return
     */
    public List<PatMedInhosp> getDocAndPat(PatMedInhosp patMedInhosp);
 
    /**
     * 处理从his取来的手术信息
     *
     * @param
     * @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);
}