|
@@ -5,19 +5,25 @@ import cn.hutool.core.date.DateUtil;
|
|
|
import cn.hutool.core.map.MapUtil;
|
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
+import org.jetbrains.annotations.NotNull;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
import thyyxxk.webserver.dao.his.medicaladvice.medicamanage.MedicalManagementDao;
|
|
|
+import thyyxxk.webserver.dao.his.zhuyuanyisheng.YiZhuLuRuDao;
|
|
|
import thyyxxk.webserver.entity.ResultVo;
|
|
|
import thyyxxk.webserver.entity.inpatient.patient.Patient;
|
|
|
+import thyyxxk.webserver.entity.inpatient.patient.YzQueryBase;
|
|
|
import thyyxxk.webserver.entity.login.UserInfo;
|
|
|
import thyyxxk.webserver.entity.medicaladvice.medicamanage.YzPrintVO;
|
|
|
+import thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru.XinZhenYzActOrder;
|
|
|
import thyyxxk.webserver.service.inpatient.PatientService;
|
|
|
import thyyxxk.webserver.service.redislike.RedisLikeService;
|
|
|
import thyyxxk.webserver.utils.AssertUtil;
|
|
|
+import thyyxxk.webserver.utils.EntityStringTrim;
|
|
|
import thyyxxk.webserver.utils.ResultVoUtil;
|
|
|
import thyyxxk.webserver.utils.StringUtil;
|
|
|
|
|
|
+import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
@@ -37,6 +43,9 @@ public class MedicalManagementService {
|
|
|
private PatientService patientService;
|
|
|
@Autowired
|
|
|
private RedisLikeService redisLikeService;
|
|
|
+ @Autowired
|
|
|
+ private YiZhuLuRuDao yiZhuLuRuDao;
|
|
|
+
|
|
|
|
|
|
|
|
|
public ResultVo<Map<String,Object>> cqYzPrint(String patNo, Integer times) {
|
|
@@ -88,7 +97,7 @@ public class MedicalManagementService {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- Patient patientInfo = patientService.getPatientBaseInfo(patNo);
|
|
|
+ Patient patientInfo = getPatientBaseInfo(patNo,times);
|
|
|
map.put("yzPrintVOList",yzPrintVOList);
|
|
|
map.put("patientInfo",patientInfo);
|
|
|
return ResultVoUtil.success(map);
|
|
@@ -111,5 +120,112 @@ public class MedicalManagementService {
|
|
|
List<Patient> patient = dao.queryPatientInfo(query);
|
|
|
return patient;
|
|
|
}
|
|
|
+ /**
|
|
|
+ * @description:查询医嘱
|
|
|
+ * @author: lihong
|
|
|
+ * @date: 2023/4/20 10:34
|
|
|
+ * @param: yzQueryBase
|
|
|
+ * @return: java.lang.Object
|
|
|
+ **/
|
|
|
+ public Map<String,Object> queryYz(YzQueryBase yzQueryBase) {
|
|
|
+ Map<String, Object> result = new HashMap<>(3);
|
|
|
+ List<XinZhenYzActOrder> yiZhuList = listYzActOrder(yzQueryBase);
|
|
|
+ if (CollUtil.isNotEmpty(yiZhuList)) {
|
|
|
+ List<XinZhenYzActOrder> childrenList = yiZhuList.stream().filter(o -> o.getParentNo() != null).collect(Collectors.toList());
|
|
|
+ Map<Long, List<XinZhenYzActOrder>> groupMap = null;
|
|
|
+ if (CollUtil.isNotEmpty(childrenList)) {
|
|
|
+ groupMap = childrenList.stream().collect(Collectors.groupingBy(o -> Long.valueOf(o.getParentNo().longValue())));
|
|
|
+ }
|
|
|
+ for (XinZhenYzActOrder item : yiZhuList) {
|
|
|
+ if ("00".equals(item.getSerial())) {
|
|
|
+ item.setGroupNoName("项目");
|
|
|
+ item.setSerialName("项目");
|
|
|
+ } else {
|
|
|
+ if ("01".equals(item.getSerial())) {
|
|
|
+ item.setSerialName("小包装");
|
|
|
+ } else if ("99".equals(item.getSerial())) {
|
|
|
+ item.setSerialName("大包装");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (MapUtil.isNotEmpty(groupMap)) {
|
|
|
+ if (item.getParentNo() == null && groupMap.containsKey(item.getActOrderNo().longValue())) {
|
|
|
+ item.setOrderGroup("┏");
|
|
|
+ } else if (item.getParentNo() != null) {
|
|
|
+ List<XinZhenYzActOrder> orderList = groupMap.get(item.getParentNo().longValue());
|
|
|
+ if (item.getActOrderNo() == orderList.get(orderList.size() - 1).getActOrderNo()) {
|
|
|
+ item.setOrderGroup("┗");
|
|
|
+ } else {
|
|
|
+ item.setOrderGroup("┃");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ Patient patientInfo = getPatientBaseInfo(yzQueryBase.getPatNo(),yzQueryBase.getTimes());
|
|
|
+ result.put("patientInfo", patientInfo);
|
|
|
+ result.put("yzDataList",yiZhuList);
|
|
|
+ return result;
|
|
|
+ }
|
|
|
|
|
|
+ @NotNull
|
|
|
+ public QueryWrapper<?> getQueryWrapper(YzQueryBase yzQueryBase) {
|
|
|
+ QueryWrapper<?> qw = new QueryWrapper<>();
|
|
|
+ qw.eq("a.inpatient_no", yzQueryBase.getPatNo()).eq("a.admiss_times", yzQueryBase.getTimes());
|
|
|
+ if ("3".equals(yzQueryBase.getStatusFlag())) {
|
|
|
+ qw.inSql("a.status_flag", "'3','4'");
|
|
|
+ } else if ( StringUtil.notBlank(yzQueryBase.getStatusFlag()) && !"0".equals(yzQueryBase.getStatusFlag())) {
|
|
|
+ qw.eq("a.status_flag", yzQueryBase.getStatusFlag());
|
|
|
+ }
|
|
|
+ /**显示范围 0 全部 1停止 2当前(查询确认和执行) 3 今天 */
|
|
|
+ if ("1".equals(yzQueryBase.getQueryRange())) {
|
|
|
+ qw.eq("a.status_flag", "5");
|
|
|
+ } else if ("2".equals(yzQueryBase.getQueryRange())) {
|
|
|
+ qw.inSql("a.status_flag", "'2','3','4'");
|
|
|
+ } else if ("3".equals(yzQueryBase.getQueryRange())) {
|
|
|
+ Date now = new Date();
|
|
|
+ String nowStr = DateUtil.format(now, "yyyy-MM-dd");
|
|
|
+ qw.ge("a.start_time", nowStr + " 00:00:00");
|
|
|
+ qw.le("a.start_time", nowStr + " 23:59:59");
|
|
|
+ }
|
|
|
+ qw.orderByAsc("a.order_time");
|
|
|
+ return qw;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ public Patient getPatientBaseInfo(String patNo,Integer times){
|
|
|
+ Patient patientInfo = patientService.getPatientBaseInfo(patNo);
|
|
|
+ YzQueryBase yzQueryBase = new YzQueryBase();
|
|
|
+ yzQueryBase.setPatNo(patNo);
|
|
|
+ yzQueryBase.setTimes(times);
|
|
|
+ yzQueryBase.setQueryRange("0");
|
|
|
+ yzQueryBase.setStatusFlag("0");
|
|
|
+ List<XinZhenYzActOrder> orderList = listYzActOrder(yzQueryBase);
|
|
|
+ for(XinZhenYzActOrder item : orderList){
|
|
|
+ if ("3".equals(item.getStatusFlag()) || "4".equals(item.getStatusFlag())) {
|
|
|
+ if(item.getOrderName().contains("级护理")){
|
|
|
+ patientInfo.setNursingLevel(item.getOrderName());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if ("05888".equals(item.getOrderCode())) {
|
|
|
+ patientInfo.setCriticallyIllStatus("病重");
|
|
|
+ }else if("05887".equals(item.getOrderCode())) {
|
|
|
+ patientInfo.setCriticallyIllStatus("病危");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ Integer count = dao.existOprt(patNo, times);
|
|
|
+ if(count != null){
|
|
|
+ patientInfo.setOprtStatus("有手术");
|
|
|
+ }else {
|
|
|
+ patientInfo.setOprtStatus("无手术");
|
|
|
+ }
|
|
|
+ return patientInfo;
|
|
|
+ }
|
|
|
+
|
|
|
+ public List<XinZhenYzActOrder> listYzActOrder(YzQueryBase yzQueryBase) {
|
|
|
+ QueryWrapper<?> qw = getQueryWrapper(yzQueryBase);
|
|
|
+ List<XinZhenYzActOrder> yiZhuList = yiZhuLuRuDao.selectOrderNo(qw);
|
|
|
+ EntityStringTrim.beanAttributeValueTrimList(yiZhuList);
|
|
|
+ return yiZhuList;
|
|
|
+ }
|
|
|
}
|