重症分段配置

3.2.4.44
wyb 2 years ago
parent a180be23c7
commit 6f5dd32dce

@ -0,0 +1,15 @@
[
{
"key": "icu",
"desc": "重症系统文件采集,文件分段设置,通过文件名包含标题取,否则取默认",
"assort": {
"defaultAssortId": "icu702",
"other": [
{
"title": "血气",
"assortId": "检验报告分类id"
}
]
}
}
]

@ -0,0 +1,55 @@
package com.docus.server.report.config;
import cn.hutool.core.collection.CollUtil;
import com.docus.core.util.Func;
import com.docus.server.report.util.TableJsonRead;
import lombok.Data;
import java.util.List;
/**
*
* @author WYBDEV
*/
@Data
public class SystemAssortConfig {
private String key;
private String desc;
private Assort assort;
private final static TableJsonRead JSON_READ = new TableJsonRead();
public static SystemAssortConfig getSystemAssortConfig(String collectorId) {
List<SystemAssortConfig> configs = getSystemAssortConfig();
if (CollUtil.isNotEmpty(configs)) {
for (SystemAssortConfig config : configs) {
if (collectorId.equals(config.getKey())) {
return config;
}
}
}
return null;
}
public synchronized static List<SystemAssortConfig> getSystemAssortConfig() {
String configJson = JSON_READ.ReadContent("data-config", "system-assort-config.json");
return Func.parseJsonArray(configJson, SystemAssortConfig.class);
}
@Data
public static class Assort {
private String defaultAssortId;
private List<AssortObj> other;
}
@Data
public static class AssortObj {
private String title;
private String assortId;
}
public static void main(String[] args) {
System.out.println(getSystemAssortConfig());
}
}

@ -7,6 +7,7 @@ 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.config.SystemAssortConfig;
import com.docus.server.report.service.ReportService;
import com.docus.server.report.util.JSXMLResult;
import com.docus.server.report.util.XmlUtil;
@ -17,6 +18,7 @@ import org.springframework.stereotype.Service;
import org.w3c.dom.Node;
import javax.annotation.Resource;
import java.util.List;
/**
*
@ -43,6 +45,7 @@ public class JsIcuReportHandler implements WebserviceReceiveServerHandler {
msgId = msgNode.getTextContent();
ReportDto reportDto = convert(xmlUtil);
verifyReportDto(reportDto);
setAssortId(reportDto);
reportService.report(reportDto);
saveSubmitNodeLog(reportDto);
return JSXMLResult.success(msgId);
@ -55,11 +58,48 @@ public class JsIcuReportHandler implements WebserviceReceiveServerHandler {
}
}
/**
* id
*
* @param reportDto
*/
private void setAssortId(ReportDto reportDto) {
SystemAssortConfig systemAssortConfig = SystemAssortConfig.getSystemAssortConfig(reportDto.getSysFlag());
if (systemAssortConfig == null) {
return;
}
String fileTitle = reportDto.getFileTitle();
// 有配置,没有配置其他的条件,取默认
SystemAssortConfig.Assort configAssort = systemAssortConfig.getAssort();
String assortId = configAssort.getDefaultAssortId();
List<SystemAssortConfig.AssortObj> configAssortOther = configAssort.getOther();
if (configAssortOther != null) {
// 有配置其它的,匹配文件标题
for (SystemAssortConfig.AssortObj assortObj : configAssortOther) {
if (Func.isNotBlank(assortObj.getTitle()) && fileTitle.contains(assortObj.getTitle())) {
assortId = assortObj.getAssortId();
break;
}
}
}
reportDto.setAssortId(assortId);
}
public static void main(String[] args) {
JsIcuReportHandler icuReportHandler = new JsIcuReportHandler();
ReportDto reportDto = new ReportDto();
reportDto.setSysFlag("icu");
reportDto.setFileTitle("血气哈哈哈");
reportDto.setAssortId("1008611");
icuReportHandler.setAssortId(reportDto);
System.out.println(reportDto);
}
private void saveSubmitNodeLog(ReportDto reportDto) {
try {
// 如果出现多条出错的情况,还是得保存收到的信息,人工干预处理
String patientId = tBasicMapper.getPatientIdByInpatientNoAndAdminssTimes(reportDto.getInpatientNo(), reportDto.getAdmisstimes());
if(Func.isNotBlank(patientId)){
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()});
@ -69,7 +109,7 @@ public class JsIcuReportHandler implements WebserviceReceiveServerHandler {
hospitalSubmitNodeServiceApi.addLog(dto);
}
} catch (Exception ex) {
log.error("保存icu提交记录出错病案号"+reportDto.getInpatientNo()+" ,住院次数:"+reportDto.getAdmisstimes(), ex);
log.error("保存icu提交记录出错病案号" + reportDto.getInpatientNo() + " ,住院次数:" + reportDto.getAdmisstimes(), ex);
}
}

Loading…
Cancel
Save