重症提交添加记录

3.2.4.44
wyb 2 years ago
parent 00bcb7c50a
commit 36769b856f

@ -1,16 +1,23 @@
package com.docus.server;
import com.docus.core.util.Func;
import com.docus.core.util.SpringUtils;
import com.docus.infrastructure.web.api.CommonResult;
import com.docus.server.api.HospitalSubmitNodeServiceApi;
import com.docus.server.api.dto.HospitalSubmitNodeLogAddDTO;
import com.docus.server.api.enums.HospitalSubmitNodeEnum;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.openfeign.EnableFeignClients;
import java.util.Properties;
@Slf4j
//@EnableFeignClients(basePackages = ("com.feign"))
@EnableFeignClients(basePackages = {"com.docus"})
//@EnableHystrix
@SpringBootApplication(scanBasePackages = {"com.docus"})
@MapperScan("com.docus.server.**.mapper")
@ -22,4 +29,17 @@ public class AppRunBootstrap {
System.setProperty("javax.xml.parsers.DocumentBuilderFactory", "com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl");
SpringApplication.run(AppRunBootstrap.class, args);
}
private static void test(){
HospitalSubmitNodeServiceApi hospitalSubmitNodeServiceApi = SpringUtils.getBean(HospitalSubmitNodeServiceApi.class);
HospitalSubmitNodeLogAddDTO dto = new HospitalSubmitNodeLogAddDTO();
dto.setPatientId("1008611");
dto.setContent(new String[]{"豪哥躺进了icu。狗头.pdf"});
dto.setCreaterName("重症提交");
dto.setCreater("重症提交");
dto.setSubmitNodeEnum(HospitalSubmitNodeEnum.ICU);
CommonResult<String> commonResult = hospitalSubmitNodeServiceApi.addLog(dto);
log.info(Func.toJson(commonResult));
}
}

@ -0,0 +1,45 @@
package com.docus.server.api;
import com.docus.infrastructure.web.api.CommonResult;
import com.docus.server.api.dto.HospitalSubmitNodeLogAddDTO;
import com.docus.server.api.dto.HospitalSubmitNodeLogQrDTO;
import com.docus.server.api.vo.HospitalSubmitNodeLogVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import java.util.List;
/**
* api
*
* @author
* @date 2023/9/5
*/
@Api(tags = "医院提交节点服务API")
@FeignClient(name = "submitNode", url = "${docus.url.medicalrecord}")
public interface HospitalSubmitNodeServiceApi {
String PREFIX = "/basic/submitNode";
/**
*
* @param submitNodeLogAddDTO
* @return
*/
@ApiOperation("提交节点,添加日志")
@RequestMapping(value = PREFIX + "/log/add", method = RequestMethod.POST)
CommonResult<String> addLog(@RequestBody HospitalSubmitNodeLogAddDTO submitNodeLogAddDTO);
/**
*
* @param submitNodeLogQrDTO
* @return
*/
@ApiOperation("提交节点日志列表查询")
@RequestMapping(value = PREFIX + "/log/list", method = RequestMethod.POST)
CommonResult<List<HospitalSubmitNodeLogVO>> listLogs(@RequestBody HospitalSubmitNodeLogQrDTO submitNodeLogQrDTO);
}

@ -0,0 +1,43 @@
package com.docus.server.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;
/**
*
*
* @author wyb
*/
@Data
@ApiModel("任务补偿下发参数")
public class CompensateTasRequest {
/**
*
*/
@ApiModelProperty(value = "病案主键",required = true)
@NotNull(message = "病案主键不能为空")
@Size(min = 1,message = "病案主键不能为空")
private List<String> patientIds;
/**
*
*/
@ApiModelProperty(value = "采集器id",required = true)
@NotNull(message = "采集采集器id不能为空")
@Size(min = 1,message = "采集采集器id不能为空")
private List<String> collectorIds;
/**
*
*/
@NotNull(message = "队列优先级不能为空")
@Min(value = 1,message = "队列优先级不能小于1")
@Max(value = 10,message = "队列优先级不能大于10")
@ApiModelProperty(value = "队列优先级",required = true)
private Integer priority;
}

@ -0,0 +1,45 @@
package com.docus.server.api.dto;
import com.docus.server.api.enums.HospitalSubmitNodeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
/**
*
*
* @author
* @date 2023/9/5
*/
@Data
@ApiModel("提交节点日志添加参数")
public class HospitalSubmitNodeLogAddDTO {
@NotBlank(message = "提交病案主键不能为空!")
@ApiModelProperty(value = "病案主键",required = true)
private String patientId;
@NotNull(message = "提交内容不能为空!")
@Size(min = 1,message = "提交内容不能为空!")
@ApiModelProperty(value = "提交内容",required = true)
private String[] content;
@NotNull(message = "提交节点不能为空!")
@ApiModelProperty(value = "提交节点",required = true)
private HospitalSubmitNodeEnum submitNodeEnum;
/**
*
*/
@ApiModelProperty("创建人")
private String creater;
/**
*
*/
@ApiModelProperty("创建人名称")
private String createrName;
}

@ -0,0 +1,22 @@
package com.docus.server.api.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
*
*
* @author
* @date 2023/9/5
*/
@Data
@ApiModel("提交节点日志查询参数")
public class HospitalSubmitNodeLogQrDTO {
@NotBlank(message = "提交病案主键不能为空!")
@ApiModelProperty(value = "病案主键",required = true)
private String patientId;
}

@ -0,0 +1,33 @@
package com.docus.server.api.enums;
/**
*
*
* @author
* @date 2023/9/5
*/
public enum HospitalSubmitNodeEnum {
/**
*
*/
NURSE("NURSE"),
/**
*
*/
EMR("EMR"),
/**
*
*/
ICU("ICU");
/**
* code
*/
String code;
HospitalSubmitNodeEnum(String code) {
this.code = code;
}
public String code(){
return code;
}
}

@ -0,0 +1,71 @@
package com.docus.server.api.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* 线
*
* @author
* @date 2023/9/5
*/
@Data
public class HospitalSubmitNodeLogVO {
private String date;
private List<LogVO> logs;
@Data
@ApiModel("医院提交节点日志视图对象")
public static class LogVO {
/**
*
*/
@ApiModelProperty("病案主键")
private String patientId;
/**
*
*/
@ApiModelProperty("节点代码")
private String nodeCode;
/**
*
*/
@ApiModelProperty("节点名称")
private String nodeName;
/**
*
*/
@ApiModelProperty("年月日,冗余创建时间,进行分组")
private String monthDate;
/**
*
*/
@ApiModelProperty("创建人")
private String creater;
/**
*
*/
@ApiModelProperty("创建人名称")
private String createrName;
/**
*
*/
@ApiModelProperty("创建时间")
private String createTime;
/**
*
*/
@ApiModelProperty("日志内容")
private String content;
}
}

@ -1,6 +1,11 @@
package com.docus.server.report.webservice.impl;
import com.docus.core.util.Func;
import com.docus.infrastructure.core.exception.BaseException;
import com.docus.server.api.HospitalSubmitNodeServiceApi;
import com.docus.server.api.dto.HospitalSubmitNodeLogAddDTO;
import com.docus.server.api.enums.HospitalSubmitNodeEnum;
import com.docus.server.collection.mapper.TBasicMapper;
import com.docus.server.report.api.dto.ReportDto;
import com.docus.server.report.service.ReportService;
import com.docus.server.report.util.JSXMLResult;
@ -23,6 +28,10 @@ import javax.annotation.Resource;
public class JsIcuReportHandler implements WebserviceReceiveServerHandler {
@Resource
private ReportService reportService;
@Resource
private TBasicMapper tBasicMapper;
@Resource
private HospitalSubmitNodeServiceApi hospitalSubmitNodeServiceApi;
@Override
public String handle(String receiveMessage) {
@ -35,6 +44,7 @@ public class JsIcuReportHandler implements WebserviceReceiveServerHandler {
ReportDto reportDto = convert(xmlUtil);
verifyReportDto(reportDto);
reportService.report(reportDto);
saveSubmitNodeLog(reportDto);
return JSXMLResult.success(msgId);
} catch (BaseException baseException) {
log.error(baseException.getMessage(), baseException);
@ -44,4 +54,23 @@ public class JsIcuReportHandler implements WebserviceReceiveServerHandler {
return JSXMLResult.failed(msgId, "系统故障!");
}
}
private void saveSubmitNodeLog(ReportDto reportDto) {
try {
// 如果出现多条出错的情况,还是得保存收到的信息,人工干预处理
String patientId = tBasicMapper.getPatientIdByInpatientNoAndAdminssTimes(reportDto.getInpatientNo(), reportDto.getAdmisstimes());
if(Func.isNotBlank(patientId)){
HospitalSubmitNodeLogAddDTO dto = new HospitalSubmitNodeLogAddDTO();
dto.setPatientId(patientId);
dto.setContent(new String[]{reportDto.getFileTitle()});
dto.setCreaterName("重症提交");
dto.setCreater("重症提交");
dto.setSubmitNodeEnum(HospitalSubmitNodeEnum.ICU);
hospitalSubmitNodeServiceApi.addLog(dto);
}
} catch (Exception ex) {
log.error("保存icu提交记录出错病案号"+reportDto.getInpatientNo()+" ,住院次数:"+reportDto.getAdmisstimes(), ex);
}
}
}

@ -86,6 +86,8 @@ sdry:
docus:
url:
medicalrecord: http://192.168.16.85:9102
dbtype: mysql
user:
# 用户默认密码

Loading…
Cancel
Save