|
@@ -4,7 +4,10 @@ import ca.uhn.hl7v2.model.Message;
|
|
|
import ca.uhn.hl7v2.parser.PipeParser;
|
|
|
import ca.uhn.hl7v2.util.Terser;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
|
|
+import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
|
import com.diagbot.entity.*;
|
|
|
+import com.diagbot.enums.IsDeleteEnum;
|
|
|
import com.diagbot.enums.data.DoctorAdviceStatusEnum;
|
|
|
import com.diagbot.facade.BehospitalInfoFacade;
|
|
|
import com.diagbot.facade.data.*;
|
|
@@ -55,27 +58,25 @@ public class YWAnalysis {
|
|
|
try {
|
|
|
Message message = pipeParser.parse(hisMessage);
|
|
|
Terser terser = new Terser(message);
|
|
|
- //入院登记
|
|
|
-// if (message.getName().equals("ADT_A01")) {
|
|
|
-// aBehospitalInfoFacade.execute(getBehospitalInfoToView(terser.get("/.PV1-19-1")));
|
|
|
-// }
|
|
|
- if (message.getName().equals("ADT_A09") || message.getName().equals("ADT_A16") ) {
|
|
|
+ //入院/入科更新入院登记
|
|
|
+ if (message.getName().equals("ADT_A01") || message.getName().equals("ADT_A09")) {
|
|
|
aBehospitalInfoFacade.execute(getBehospitalInfoToView(terser.get("/.PV1-19-1")));
|
|
|
- //从入科消息中获取更新入院时间
|
|
|
-// BehospitalInfo behospitalInfo = behospitalInfoFacade.getOne(new QueryWrapper<BehospitalInfo>()
|
|
|
-// .eq("behospital_code", terser.get("/.PV1-19-1"))
|
|
|
-// .eq("hospital_id", HOSPITAL_ID)
|
|
|
-// .eq("is_deleted", IsDeleteEnum.N), false);
|
|
|
-// if(behospitalInfo != null){
|
|
|
-// if(StringUtil.isNotEmpty(terser.get("/.PV1-44-1"))){
|
|
|
-// behospitalInfo.setBehospitalDate(DateUtil.parseDate(YWDateUtils.convJsonDateToString(terser.get("/.PV1-44-1"), DateUtil.DATE_TIME_FORMAT)));
|
|
|
-// }
|
|
|
-// QueryWrapper<BehospitalInfo> queryWrapper = new QueryWrapper<>();
|
|
|
-// queryWrapper.eq("behospital_code", terser.get("/.PV1-19-1"));
|
|
|
-// queryWrapper.eq("hospital_id", HOSPITAL_ID);
|
|
|
-// queryWrapper.eq("is_deleted", IsDeleteEnum.N);
|
|
|
-// behospitalInfoFacade.update(behospitalInfo,queryWrapper);
|
|
|
-// }
|
|
|
+ }
|
|
|
+ if (message.getName().equals("ADT_A16") ) {
|
|
|
+ //预出院消息更新出院时间
|
|
|
+ BehospitalInfo behospitalInfo = behospitalInfoFacade.getOne(new QueryWrapper<BehospitalInfo>()
|
|
|
+ .eq("behospital_code", terser.get("/.PV1-19-1"))
|
|
|
+ .eq("hospital_id", HOSPITAL_ID)
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N), false);
|
|
|
+ if(behospitalInfo != null && StringUtil.isNotEmpty(terser.get("/.PV1-45-1"))){
|
|
|
+ UpdateWrapper<BehospitalInfo> behospitalInfoUpdateWrapper = new UpdateWrapper<>();
|
|
|
+ behospitalInfoUpdateWrapper.eq("behospital_code", behospitalInfo.getBehospitalCode())
|
|
|
+ .eq("hospital_id", HOSPITAL_ID)
|
|
|
+ .eq("is_deleted", IsDeleteEnum.N)
|
|
|
+ .set("leave_hospital_date",DateUtil.parseDate(YWDateUtils.convJsonDateToString(terser.get("/.PV1-45-1"), DateUtil.DATE_TIME_FORMAT),"yyyy-MM-dd HH:mm:ss"))
|
|
|
+ .set("gmt_modified",DateUtil.now());
|
|
|
+ behospitalInfoFacade.update(behospitalInfoUpdateWrapper);
|
|
|
+ }
|
|
|
}else if (message.getName().equals("OMP_O09")) {
|
|
|
//医嘱
|
|
|
aDoctorAdviceFacade.execute(getDoctorAdviceToView(terser.get("/.ORC-2-1")));
|