feat: 新增封存病案 重症 病历采集

docus-active-query-service_1.3
wyb 2 years ago
parent bb5a4a552e
commit d3bee3e3e7

@ -86,4 +86,22 @@ public class SealReportCollectController {
}
@ApiOperation("重症采集接口")
@ApiImplicitParams({
@ApiImplicitParam(name = "sealId", value = "t_seal 的seal_id,封存id", required = true, dataTypeClass = String.class)
})
@GetMapping("/icu")
public CommonResult<String> collectSealIcu(@RequestParam("sealId") String sealId) {
log.info("封存病案采集 重症 病历,封存id为{}", sealId);
try {
bgtsService.collectSealIcu(sealId);
log.info("封存病案采集 重症 病历,封存id:{} 采集完成", sealId);
return CommonResult.success("采集完成");
} catch (Exception e) {
log.error("封存id" + sealId + " 封存病案采集 重症 病历,出现异常!", e);
return CommonResult.failed(e.getMessage());
}
}
}

@ -1,5 +1,13 @@
package com.docus.bgts.facade;
public interface IBgtsService {
/**
* id
* @date 2024/1/11 10:27
* @author YongBin Wen
* @param sealId id
*/
void collectSealIcu(String sealId) throws Exception;
/**
*
* @param empId

@ -1,10 +1,7 @@
package com.docus.bgts.mapper.dboracle;
import com.docus.bgts.entity.VDocumentPdf;
import org.apache.ibatis.annotations.Param;
import javax.xml.crypto.Data;
import java.util.Date;
import java.util.List;
import java.util.Map;
@ -25,4 +22,22 @@ public interface VDocumentPdfMapper {
@Param("tableName") String tableName,
@Param("fieldArr") List<String> fieldArr,
@Param("collectTimeName") String collectTimeName);
/**
*
*
* @param jzhField
* @param jzhVal
* @param namespace
* @param tableName
* @param fieldArr
* @return java.util.List<java.util.Map>
* @date 2024/1/11 17:08
* @author YongBin Wen
*/
List<Map> collectByJzh(@Param("jzhField") String jzhField,
@Param("jzhVal") String jzhVal,
@Param("namespace") String namespace,
@Param("tableName") String tableName,
@Param("fieldArr") List<String> fieldArr);
}

@ -119,11 +119,13 @@ public class AfCollectTaskServiceImpl extends ServiceImpl<AfCollectTaskMapper, A
synchronized (this) {
String patientId;
AfCollectTask afCollectTask;
if (StringUtils.isBlank(reportDownDto.getPatient().getJzh())) {
patientId = getPatientIdByInpatientNo(reportDownDto.getPatient().getInpatientno(), reportDownDto.getPatient().getAdmisstimes());
} else {
patientId = getpatientIdByEmpId(reportDownDto.getPatient().getJzh());
}
if (StringUtils.isNotBlank(reportDownDto.getPatient().getPatientid())) {
patientId = reportDownDto.getPatient().getPatientid();
} else if (StringUtils.isBlank(reportDownDto.getPatient().getJzh())) {
patientId = getPatientIdByInpatientNo(reportDownDto.getPatient().getInpatientno(), reportDownDto.getPatient().getAdmisstimes());
} else {
patientId = getpatientIdByEmpId(reportDownDto.getPatient().getJzh());
}
if (StringUtils.isBlank(patientId)) {
throw new RuntimeException("操作的病案信息不存在");
}

@ -81,6 +81,72 @@ public class BgtsServiceImpl implements IBgtsService {
@Autowired
private DownloadPlatformRpc downloadPlatformRpc;
@Override
@Transactional(rollbackFor = Exception.class)
public void collectSealIcu(String sealId) throws Exception {
TSeal seal = getSealAndCheckBySealId(sealId);
String jzh = seal.getJzh();
String collectorid = String.valueOf(FileUtils.getJsonByName("collectorid"));
String assortid = String.valueOf(FileUtils.getJsonByName("assortid"));
int filesource = Integer.parseInt(String.valueOf(FileUtils.getJsonByName("filesource")));
int filestoragetype = Integer.parseInt(String.valueOf(FileUtils.getJsonByName("filestoragetype")));
SnowflakeIdWorker idWorker = new SnowflakeIdWorker(0, 0);
String indexFlagField = String.valueOf(FileUtils.getJsonByName("indexFlag"));
String serialnumField = String.valueOf(FileUtils.getJsonByName("serialnum"));
//String filetitle = String.valueOf(FileUtils.getJsonByName("filetitle"));
String downurlField = String.valueOf(FileUtils.getJsonByName("downurl"));
String inPatientNoField = String.valueOf(FileUtils.getJsonByName("inPatientNo"));
String visitIdField = String.valueOf(FileUtils.getJsonByName("visitId"));
String inJzhField = String.valueOf(FileUtils.getJsonByName("jzh"));
List<String> fieldArr = new ArrayList<>();
fieldArr.add(indexFlagField);
fieldArr.add(serialnumField);
fieldArr.add(inPatientNoField);
fieldArr.add(visitIdField);
fieldArr.add(inJzhField);
// if(StringUtils.isNotBlank(filetitle)){
// fieldArr.add(filetitle);
// }
fieldArr.add(downurlField);
String namespace = String.valueOf(FileUtils.getJsonByName("namespace"));
String tableName = String.valueOf(FileUtils.getJsonByName("tableName"));
// String collectTimeName = String.valueOf(FileUtils.getJsonByName("collectTimeName"));
List<Map> viewDataList = vDocumentPdfMapper.collectByJzh(inJzhField, jzh, namespace, tableName, fieldArr);
if (CollUtil.isEmpty(viewDataList)) {
logger.info("封存id{} ,根据记账号:{},采集重症视图:{},没有采集到数据!", sealId, jzh, namespace + "." + tableName);
return;
}
logger.info("封存id{} ,根据记账号:{},采集重症视图:{},数据为:{}", sealId, jzh, namespace + "." + tableName, JSON.toJSON(viewDataList));
for (Map vieData : viewDataList) {
ReportDownPatientDto reportDownPatientDto = new ReportDownPatientDto();
reportDownPatientDto.setPatientid(seal.getPatientId());
ReportDownScanFileDto reportDownScanFileDto = new ReportDownScanFileDto();
reportDownScanFileDto.setDownurl(String.valueOf(vieData.get(downurlField)));
reportDownScanFileDto.setFilestoragetype(filestoragetype);
reportDownScanFileDto.setFilesource(filesource);
//reportDownScanFileDto.setFiletitle(map.get(filetitle)==null?"重症"+(System.currentTimeMillis()):String.valueOf(map.get(filetitle)));
reportDownScanFileDto.setFiletitle(StringUtils.isNotBlank(String.valueOf(vieData.get(serialnumField))) ? String.valueOf(vieData.get(serialnumField)) : String.valueOf(idWorker.nextId()));
reportDownScanFileDto.setSerialnum(StringUtils.isNotBlank(String.valueOf(vieData.get(serialnumField))) ? String.valueOf(vieData.get(serialnumField)) : String.valueOf(idWorker.nextId()));
List<ReportDownScanFileDto> reportDownScanFileDtos = Collections.singletonList(reportDownScanFileDto);
ReportDownDto reportDownDto = new ReportDownDto();
reportDownDto.setCollectorid(collectorid);
reportDownDto.setAssortid(assortid);
reportDownDto.setPatient(reportDownPatientDto);
reportDownDto.setScanfiles(reportDownScanFileDtos);
// 保存任务,上报封存病案报告
afCollectTaskService.insertServer(reportDownDto);
downloadPlatformRpc.sealReport(reportDownDto);
}
}
@Override
public void collect(String empId) throws Exception {
String collectorid = String.valueOf(FileUtils.getJsonByName("collectorid"));

@ -29,5 +29,15 @@
WHERE
"NAVICAT_ROWNUM" &gt; ${current}
</select>
<select id="collectByJzh" resultType="map">
SELECT
<foreach collection="fieldArr" item="field" separator=",">
${namespace}.${tableName}.${field}
</foreach>
FROM
${namespace}.${tableName}
WHERE
${jzhField} = #{jzhVal}
</select>
</mapper>
Loading…
Cancel
Save