新增对外接口根据身份证访问ecg信息

This commit is contained in:
lxd 2025-03-07 11:30:51 +08:00
parent 7de8821041
commit 33d16eb4b5
13 changed files with 81 additions and 8 deletions

View File

@ -97,7 +97,32 @@ public class EcganalysisparasController {
ecganalysisparasService.updateEcganalysisparas(updateReqVO);
return success(true);
}
@GetMapping("/getIdCardEcgData")
@Operation(summary = "通过身份证获取心电数据")
public CommonResult<List<EcgidCardDataVO>> getIdCardEcgData(@RequestParam("idCard") String idCard)
{
List<EcgidCardDataVO> list1 = new ArrayList<>();
List<EcganalysisparasDO> list =ecganalysisparasService.idCardEcgData(idCard);
if (list!=null)
{
for (EcganalysisparasDO ecganalysisparasDO:list)
{
PatientexamlistDO patientexamlist = patientexamlistMapper.selectByExamIdKey(ecganalysisparasDO.getExamId(), ecganalysisparasDO.getOrgId());
EcgidCardDataVO ecgidCardDataVO = new EcgidCardDataVO();
ecgidCardDataVO.setExamId(ecganalysisparasDO.getExamId());
ecgidCardDataVO.setDiagResult(ecganalysisparasDO.getDoctorDiagResult());
ecgidCardDataVO.setEcgDataFilePath(patientexamlist.getPdfurl());
ecgidCardDataVO.setHR(ecganalysisparasDO.getHr());
ecgidCardDataVO.setDiagTime(ecganalysisparasDO.getDoctorDiagTime());
String diagResult = ecganalysisparasDO.getDoctorDiagResult();
// 判断是否包含心率不齐
int heartRateUneven = diagResult.contains("心率不齐") ? 1 : 0;
ecgidCardDataVO.setHeartRateUneven(heartRateUneven);
list1.add(ecgidCardDataVO);
}
}
return success(list1);
}
@PutMapping("/save")
@Operation(summary = "保存心电分析数据")

View File

@ -114,4 +114,7 @@ public class EcganalysisparasPageReqVO extends PageParam {
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createDate;
@Schema(description = "身份证")
private String idcard;
}

View File

@ -144,5 +144,7 @@ public class EcganalysisparasRespVO {
@Schema(description = "登记ID")
@ExcelProperty("登记ID")
private String regId;
@Schema(description = "身份证")
private String idcard;
}

View File

@ -115,5 +115,7 @@ public class EcganalysisparasSaveReqVO {
private String gender;
private String age;
private String diagtime;
private String idcard;
}

View File

@ -75,5 +75,6 @@ public class EcganalysisparascreateReqVO {
@Schema(description = "分析参数的创建时间")
private DateTime createDate;
@Schema(description = "身份证")
private String idcard;
}

View File

@ -120,4 +120,7 @@ public class PatientexamlistPageReqVO extends PageParam {
private String warning;
private String applyhighLevelname;
@Schema(description = "身份证")
private String idcard;
}

View File

@ -136,4 +136,7 @@ public class PatientexamlistRespVO {
private String pdfurl;
private String warning;
private String applyhighLevelname;
@Schema(description = "身份证")
private String idcard;
}

View File

@ -113,4 +113,8 @@ public class PatientexamlistSaveReqVO {
private String warning;
private String applyhighLevelname;
@Schema(description = "身份证")
private String idcard;
}

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.tblist.dal.dataobject.ecganalysisparas;
import cn.hutool.core.date.DateTime;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -190,5 +191,10 @@ public class EcganalysisparasDO {
private LocalDateTime createDate;
@TableField("regId")
private String regId;
/*
* 身份证号
* */
@TableField("idcard")
private String idcard;
}

View File

@ -188,4 +188,7 @@ public class PatientexamlistDO extends BaseDO {
@TableField(value = "warning")
private String warning;
@TableField(value = "idcard")
private String idcard;
}

View File

@ -73,6 +73,10 @@ public interface EcganalysisparasService extends IService<EcganalysisparasDO> {
* @return 心电分析数据
*/
EcganalysisparasDO getexamIDdata(String examID, String orgId);
/*
* 根据身份证号获取心电分析数据
* */
List<EcganalysisparasDO> idCardEcgData(String idcard);
/**
* 获取心电分析数据对应的pdf图像

View File

@ -22,14 +22,12 @@ import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
import cn.iocoder.yudao.module.tblist.controller.admin.ecganalysisparas.vo.*;
import cn.iocoder.yudao.module.tblist.dal.dataobject.ecganalysisparas.EcganalysisparasDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.tblist.dal.mysql.ecganalysisparas.EcganalysisparasMapper;
@ -131,7 +129,12 @@ public class EcganalysisparasServiceImpl extends ServiceImpl<EcganalysisparasMap
queryWrapper.eq("orgId", orgId);
return ecganalysisparasMapper.selectOne(queryWrapper);
}
@Override
public List<EcganalysisparasDO> idCardEcgData(String idcard) {
QueryWrapper<EcganalysisparasDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("idcard", idcard);
return ecganalysisparasMapper.selectList(queryWrapper);
}
@Override
public Map<String, Object> getEcgPdfImage(JSONObject params) {
Map<String, Object> mapResult = new HashMap<>();

View File

@ -15,6 +15,13 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.itextpdf.text.Image;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.*;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.conn.ssl.NoopHostnameVerifier;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.ssl.SSLContextBuilder;
import org.apache.http.util.EntityUtils;
import org.springframework.boot.system.ApplicationHome;
import org.springframework.stereotype.Service;
@ -620,9 +627,16 @@ public class PatientexamlistServiceImpl extends ServiceImpl<PatientexamlistMappe
private Image getAcroField_Image(String url) {
Image out = null;
try {
URL urlObj = new URL(safeString(url));
if (urlObj != null)
out = Image.getInstance(urlObj);
HttpClient httpClient = HttpClients.custom()
.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE)
.setSSLContext(SSLContextBuilder.create().loadTrustMaterial(null, (x509Certificates, s) -> true).build())
.build();
HttpGet request = new HttpGet(safeString(url));
try (CloseableHttpResponse response = (CloseableHttpResponse) httpClient.execute(request)) {
byte[] imageData = EntityUtils.toByteArray(response.getEntity());
if (imageData != null)
out = Image.getInstance(imageData);
}
} catch (Exception ex) {
out = null;
}