diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/app/controller/AppBjCaController.java b/ruoyi-admin/src/main/java/com/neuhis/his/app/controller/AppBjCaController.java index 37ae34bcd..f237b0f49 100644 --- a/ruoyi-admin/src/main/java/com/neuhis/his/app/controller/AppBjCaController.java +++ b/ruoyi-admin/src/main/java/com/neuhis/his/app/controller/AppBjCaController.java @@ -2,8 +2,10 @@ package com.neuhis.his.app.controller; import cn.hutool.core.codec.Base64; import com.neuhis.his.domain.vo.bjca.BjCaResult; +import com.neuhis.his.domain.vo.bjca.CaResultVo; import com.neuhis.his.domain.vo.bjca.CaStartVo; import com.neuhis.his.service.IBjCaService; +import com.neuhis.his.service.winlis.IWinLisService; import com.ruoyi.common.core.domain.AjaxResult; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -27,14 +29,17 @@ import javax.annotation.Resource; public class AppBjCaController { @Resource private IBjCaService bjCaService; + @Resource + private IWinLisService winLisService; /** * startAutoSign启动自动签名获取的签名数据,[签名任务id] */ - private String autoSignSignDataId = "SD_4c6ec5f6-22e3-4fae-b2aa-681e5beacf1e"; + private String autoSignSignDataId = "SD_892d8817-4a96-445c-a5c1-2eb9f334fecc"; @GetMapping("/startAutoSign") @ApiOperation(value = "步骤A:启动自动签名", notes = "步骤1、启动自动签名,获取签名二维码,让医师使用【协同签名】进行签名") public AjaxResult bjcaAuto() { + //89003046 自动签未开启或已过期, 如果;提示这个,需要重新【协同签名】app autoSignSignDataId = bjCaService.startAutoSign(); return AjaxResult.success(autoSignSignDataId); } @@ -48,8 +53,16 @@ public class AppBjCaController { @GetMapping("/createAndGetTssInfo") @ApiOperation(value = "步骤C:产生时间戳", notes = "步骤3、产生时间戳") - public AjaxResult createAndGetTssInfo() { - String caStartVo = bjCaService.createAndGetTssInfo( Base64.encode("aaaaa")); + public AjaxResult createAndGetTssInfo(String signature) { + String caStartVo = bjCaService.createAndGetTssInfo( Base64.encode("aaaaa"), signature); return AjaxResult.success(caStartVo); } + + @GetMapping("/getWinLisCaInfo") + @ApiOperation(value = "获取:Winlis的CA原文", notes = "获取:Winlis的CA原文;生成CA信息(签名结果、证书、时间戳)") + public AjaxResult getWinLisCaInfo() { + //String caOriginText = winLisService.getWinLisCaOriginText("20250228", "WSW_caris200", "9999"); + CaResultVo caResultVo = winLisService.generateBjCaInfo("20250228", "WSW_caris200", "9999", autoSignSignDataId); + return AjaxResult.success(caResultVo); + } } diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/domain/entity/winlis/LasRolPerson.java b/ruoyi-admin/src/main/java/com/neuhis/his/domain/entity/winlis/LasRolPerson.java index 03ee436cc..397852b66 100644 --- a/ruoyi-admin/src/main/java/com/neuhis/his/domain/entity/winlis/LasRolPerson.java +++ b/ruoyi-admin/src/main/java/com/neuhis/his/domain/entity/winlis/LasRolPerson.java @@ -12,7 +12,7 @@ import com.ruoyi.common.core.domain.BaseEntity; /** * 人员管理 - 包含人员基本信息,角色,可登录小组,签名,密码等信息.对象 las_rol_person + 对象 las_rol_person * * @author ruoyi * @date 2025-03-06 @@ -57,7 +57,7 @@ public class LasRolPerson extends BaseEntity /** 手写签名 */ @Excel(name = "手写签名") - private String manuscript; + private byte[] manuscript; /** (1)来自HIS等外部系统;(0)自行维护人员 */ @Excel(name = "(1)来自HIS等外部系统;(0)自行维护人员") @@ -119,7 +119,7 @@ public class LasRolPerson extends BaseEntity /** 外语手写签名 */ @Excel(name = "外语手写签名") - private String enmanuscript; + private byte[] enmanuscript; /** 外语姓名 */ @Excel(name = "外语姓名") diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/domain/vo/bjca/CaResultVo.java b/ruoyi-admin/src/main/java/com/neuhis/his/domain/vo/bjca/CaResultVo.java new file mode 100644 index 000000000..7963a745b --- /dev/null +++ b/ruoyi-admin/src/main/java/com/neuhis/his/domain/vo/bjca/CaResultVo.java @@ -0,0 +1,31 @@ +package com.neuhis.his.domain.vo.bjca; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import lombok.ToString; + +/** + * CA结果信息(原文(未base64)、证书、签名结果、时间戳、任务id) + * + * @author dazer + * @date 2025/3/6 18:54 + **/ +@Getter +@Setter +@ToString +@NoArgsConstructor +public class CaResultVo extends CaStartVo { + /** + * 原文(未base64),ORINGIN_TEXT + */ + private String oriData; + /** + * 原文: base64之后的内容 + */ + private String oriDataBase64; + /** + * 时间戳,TIMECIPHERTEXT + */ + private String timeciphertext; +} diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/domain/vo/bjca/CaStartVo.java b/ruoyi-admin/src/main/java/com/neuhis/his/domain/vo/bjca/CaStartVo.java index e3b114c03..08e177110 100644 --- a/ruoyi-admin/src/main/java/com/neuhis/his/domain/vo/bjca/CaStartVo.java +++ b/ruoyi-admin/src/main/java/com/neuhis/his/domain/vo/bjca/CaStartVo.java @@ -17,15 +17,15 @@ import lombok.ToString; @NoArgsConstructor public class CaStartVo { /** - * 签名任务id,StartAutoSign的返回参数,形如:SD_18eb25f8-3d15-4971-a60c-730c1480d837 + * 签名任务id,StartAutoSign接口的返回参数,形如:SD_18eb25f8-3d15-4971-a60c-730c1480d837,一次任务可以签署多份文档 */ private String signDataId; /** - * 签名结果,形如:MEYCIQDvcy6/WHJ+8QS1S1Ja1Q9FBa6gtnboxwndyQpHBBbcaQIhAMeZjymkozFKm1MaD2xq/ L4JhW3gO5XTmGL6SO0MzZw + * 签名结果PRIVATE_INFO/signature,形如:MEYCIQDvcy6/WHJ+8QS1S1Ja1Q9FBa6gtnboxwndyQpHBBbcaQIhAMeZjymkozFKm1MaD2xq/ L4JhW3gO5XTmGL6SO0MzZw */ private String signResult; /** - * 证书,形如:MIIDAzCCAqagAwIBAgISXXXXXXXXXXXu4j9CUZ/w0w== + * 证书CERT,形如:MIIDAzCCAqagAwIBAgISXXXXXXXXXXXu4j9CUZ/w0w== */ private String signCert; } diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasRolPersonMapper.java b/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasRolPersonMapper.java index 8fa81b176..1370dcbad 100644 --- a/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasRolPersonMapper.java +++ b/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasRolPersonMapper.java @@ -1,12 +1,13 @@ package com.neuhis.his.mapper.winlis; import com.neuhis.his.domain.entity.winlis.LasRolPerson; +import org.apache.ibatis.annotations.Param; import java.util.List; /** * 人员管理 - 包含人员基本信息,角色,可登录小组,签名,密码等信息.Mapper接口 + Mapper接口 * * @author ruoyi * @date 2025-03-06 @@ -15,62 +16,15 @@ public interface LasRolPersonMapper { /** * 查询人员管理 - 包含人员基本信息,角色,可登录小组,签名,密码等信息. - * * @param personid 人员管理 - 包含人员基本信息,角色,可登录小组,签名,密码等信息.主键 * @return 人员管理 - 包含人员基本信息,角色,可登录小组,签名,密码等信息. */ - LasRolPerson selectLasRolPersonByPersonid(String personid); + LasRolPerson selectLasRolPersonByPersonid(@Param(value ="personid") String personid); /** * 查询人员管理 - 包含人员基本信息,角色,可登录小组,签名,密码等信息.列表 - * * @param lasRolPerson 人员管理 - 包含人员基本信息,角色,可登录小组,签名,密码等信息. * @return 人员管理 - 包含人员基本信息,角色,可登录小组,签名,密码等信息.集合 */ List selectLasRolPersonList(LasRolPerson lasRolPerson); - - /** - * 新增人员管理 - 包含人员基本信息,角色,可登录小组,签名,密码等信息. - * - * @param lasRolPerson 人员管理 - 包含人员基本信息,角色,可登录小组,签名,密码等信息. - * @return 结果 - */ - int insertLasRolPerson(LasRolPerson lasRolPerson); - - /** - * 修改人员管理 - 包含人员基本信息,角色,可登录小组,签名,密码等信息. - * - * @param lasRolPerson 人员管理 - 包含人员基本信息,角色,可登录小组,签名,密码等信息. - * @return 结果 - */ - int updateLasRolPerson(LasRolPerson lasRolPerson); - - /** - * 删除人员管理 - 包含人员基本信息,角色,可登录小组,签名,密码等信息. - * - * @param personid 人员管理 - 包含人员基本信息,角色,可登录小组,签名,密码等信息.主键 - * @return 结果 - */ - int deleteLasRolPersonByPersonid(String personid); - - /** - * 批量删除人员管理 - 包含人员基本信息,角色,可登录小组,签名,密码等信息. - * - * @param personids 需要删除的数据主键集合 - * @return 结果 - */ - int deleteLasRolPersonByPersonids(String[] personids); } diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasRtResultMapper.java b/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasRtResultMapper.java index 8feafa9c8..98206ee50 100644 --- a/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasRtResultMapper.java +++ b/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasRtResultMapper.java @@ -1,6 +1,7 @@ package com.neuhis.his.mapper.winlis; import com.neuhis.his.domain.entity.winlis.LasRtResult; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -18,7 +19,7 @@ public interface LasRtResultMapper * @param testdate 常规检验结果主键 * @return 常规检验结果 */ - List selectLasRtResultByTestdate(String testdate, String barcode, String machineid); + List selectLasRtResultByTestdate(@Param("testdate")String testdate,@Param("machineid") String machineid,@Param("sampleId") String sampleId); /** * 查询常规检验结果列表 diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasSapSampleregMapper.java b/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasSapSampleregMapper.java index 10047130a..f2ec3fe45 100644 --- a/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasSapSampleregMapper.java +++ b/ruoyi-admin/src/main/java/com/neuhis/his/mapper/winlis/LasSapSampleregMapper.java @@ -1,6 +1,7 @@ package com.neuhis.his.mapper.winlis; import com.neuhis.his.domain.entity.winlis.LasSapSamplereg; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -20,7 +21,7 @@ public interface LasSapSampleregMapper * @param testdate 常规检验登记表 * @return 常规检验登记表 */ - LasSapSamplereg selectLasSapSampleregByTestdate(String testdate, String barcode, String machineid); + LasSapSamplereg selectLasSapSampleregByTestdate(@Param("testdate")String testdate,@Param("machineid") String machineid,@Param("sampleId") String sampleId); /** * diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/service/IBjCaService.java b/ruoyi-admin/src/main/java/com/neuhis/his/service/IBjCaService.java index f407aaae0..7a392c417 100644 --- a/ruoyi-admin/src/main/java/com/neuhis/his/service/IBjCaService.java +++ b/ruoyi-admin/src/main/java/com/neuhis/his/service/IBjCaService.java @@ -32,5 +32,5 @@ public interface IBjCaService { * 产生时间戳 * @param oriDataBase64 待签数据(必须是 base64编码) */ - String createAndGetTssInfo(String oriDataBase64); + String createAndGetTssInfo(String oriDataBase64, String signature); } diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/BjCaServiceImpl.java b/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/BjCaServiceImpl.java index 3f2e0165f..5a408f458 100644 --- a/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/BjCaServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/BjCaServiceImpl.java @@ -76,7 +76,7 @@ public class BjCaServiceImpl implements IBjCaService { } @Override - public String createAndGetTssInfo(String oriDataBase64) { + public String createAndGetTssInfo(String oriDataBase64, String signature) { //region 参数校验 if (StrUtil.isNotEmpty(oriDataBase64) && !Base64.isBase64(oriDataBase64)) { throw new IllegalArgumentException("原文必须是base64编码"); @@ -84,7 +84,8 @@ public class BjCaServiceImpl implements IBjCaService { //endregion Map params = getBjCaCommonParams(); params.put("oriData", oriDataBase64);//数据原文oriData: 数据原文和自动签名接口里面传的数据原文保持一致就行, 待签数据(必须是 base64编码) - params.put("attachCert", "false");//最终产生的时间戳是否带证书 (true/false) + params.put("attachCert", StrUtil.isNotEmpty(signature) ? "true" : "false");//最终产生的时间戳是否带证书 (true/false) + params.put("signature", signature);//最终产生的时间戳是否带证书 (true/false) BjCaResult result = postBjCa(bjCaConfig.getServerTssInfo(), params, CaCreateAndGetTssInfoVo.class); return result != null && result.isSuccess() ? result.getData().getTsResp() : ""; } diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/winlis/LasSapSampleregServiceImpl.java b/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/winlis/LasSapSampleregServiceImpl.java index b058be544..a0cb3a62b 100644 --- a/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/winlis/LasSapSampleregServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/winlis/LasSapSampleregServiceImpl.java @@ -47,29 +47,32 @@ public class LasSapSampleregServiceImpl implements ILasSapSampleregService */ @Override - public LasSapSamplereg selectLasSapSampleregByTestdate(String testdate, String barcode, String machineid) + public LasSapSamplereg selectLasSapSampleregByTestdate(String testdate, String machineid, String sampleId) { - return lasSapSampleregMapper.selectLasSapSampleregByTestdate(testdate, barcode, machineid); + return lasSapSampleregMapper.selectLasSapSampleregByTestdate(testdate, machineid, sampleId); } @Override - public LasSapSampleregVo selectLasSapSampleregVo(String testdate, String barcode, String machineid) { + public LasSapSampleregVo selectLasSapSampleregVo(String testdate, String machineid, String sampleId) { //region 查询1:条码信息 Winlis.las_sap_samplereg LasSapSampleregVo vo = new LasSapSampleregVo(); - LasSapSamplereg entity = lasSapSampleregMapper.selectLasSapSampleregByTestdate(testdate, barcode, machineid); + LasSapSamplereg entity = lasSapSampleregMapper.selectLasSapSampleregByTestdate(testdate, machineid, sampleId); + if (entity == null) { + return null; + } BeanUtil.copyProperties(entity, vo); //endregion //region 查询2:检验结果信息 Winlis.LAS_RT_RESULT - List rtResults = lasRtResultMapper.selectLasRtResultByTestdate(testdate, barcode, machineid); + List rtResults = lasRtResultMapper.selectLasRtResultByTestdate(testdate, machineid, sampleId); vo.setRtResultList(rtResults); //endregion //region 查询3: 检验人员信息 Winlis.las_rol_person String approverid = entity.getApproverid(); - if (!StrUtil.isEmpty(approverid)) { + if (StrUtil.isNotEmpty(approverid)) { LasRolPerson lasRolPerson = latestRolPersonMapper.selectLasRolPersonByPersonid(approverid); - Opt.of(lasRolPerson).ifPresent(en -> en.setCacardid(en.getCacardid())); + Opt.of(lasRolPerson).ifPresent(en -> vo.setCacardid(en.getCacardid())); } //endregion return vo; diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/winlis/WinLisServiceImpl.java b/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/winlis/WinLisServiceImpl.java index 1e9f8c3a1..d63e343b5 100644 --- a/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/winlis/WinLisServiceImpl.java +++ b/ruoyi-admin/src/main/java/com/neuhis/his/service/impl/winlis/WinLisServiceImpl.java @@ -1,7 +1,15 @@ package com.neuhis.his.service.impl.winlis; +import cn.hutool.core.codec.Base64; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; +import com.neuhis.his.domain.entity.winlis.LasRtResult; +import com.neuhis.his.domain.vo.bjca.BjCaResult; +import com.neuhis.his.domain.vo.bjca.CaResultVo; +import com.neuhis.his.domain.vo.bjca.CaStartVo; import com.neuhis.his.domain.vo.winlis.LasSapSampleregVo; +import com.neuhis.his.service.IBjCaService; import com.neuhis.his.service.winlis.ILasSapSampleregService; import com.neuhis.his.service.winlis.IWinLisService; import com.ruoyi.common.annotation.DataSource; @@ -13,6 +21,8 @@ import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; +import static cn.hutool.core.date.DatePattern.NORM_DATETIME_PATTERN; + /** * Winlis相关 * @@ -25,178 +35,237 @@ import java.util.List; public class WinLisServiceImpl implements IWinLisService { @Autowired private ILasSapSampleregService lasSapSampleregService; + @Autowired + private IBjCaService bjCaService; @Override - public String getLisCaOriginText(String testdate, String barcode, String machineid) { - LasSapSampleregVo regVo = lasSapSampleregService.selectLasSapSampleregVo(testdate, barcode, machineid); - if (regVo == null) { + public String getWinLisCaOriginText(String testdate, String machineid, String sampleId) { + LasSapSampleregVo reg = lasSapSampleregService.selectLasSapSampleregVo(testdate, machineid, sampleId); + if (reg == null) { return ""; } List items = new ArrayList<>(); - for (int i = 0; regVo.getRtResultList() != null && i < regVo.getRtResultList().size(); i++) { - String srcItem = "ITEMID:IL-6" + - ",ITEMNAME:白介素6" + - ",REPORTVALUE:5" + - ",ORGVALUE:" + - ",DESCVALUE:" + - ",CUTOFF:" + - ",ODVALUE:" + - ",SCO:" + - ",MEMOVALUE:" + + for (int i = 0; reg.getRtResultList() != null && i < reg.getRtResultList().size(); i++) { + LasRtResult rt = reg.getRtResultList().get(i); + String srcItem = + "ITEMID:"+strDef(rt.getItemid() )+ + ",ITEMNAME:"+strDef(rt.getItemname() )+ + ",REPORTVALUE:"+strDef(rt.getReportvalue() )+ + ",ORGVALUE:"+strDef(rt.getOrgvalue() )+ + ",DESCVALUE:"+strDef(rt.getDescvalue() )+ + ",CUTOFF:"+strDef(rt.getCutoff() )+ + ",ODVALUE:"+strDef(rt.getOdvalue() )+ + ",SCO:"+strDef(rt.getSco() )+ + ",MEMOVALUE:"+strDef(rt.getMemovalue() )+ ",ALERTEXPLAIN:" + //ALERTEXPLAIN 不存在 - ",ALERTFLAG:5" + - ",AUTOCONFIRMINFO:" + - ",AUTOCONFIRMSIGN:" + - ",BARCODE:1010449586" + - ",Calfomula:" + - ",CHECKSTATE:" + - ",COMMTIME:2025-02-28 14:42:49" + + ",ALERTFLAG:"+strDef(rt.getAlertflag() )+ + ",AUTOCONFIRMINFO:"+strDef(rt.getAutoconfirminfo() )+ + ",AUTOCONFIRMSIGN:"+strDef(rt.getAutoconfirmsign() )+ + ",BARCODE:"+strDef(rt.getBarcode() )+ + ",Calfomula:" +//Calfomula 无字段 + ",CHECKSTATE:"+strDef(rt.getCheckstate() )+ + ",COMMTIME:"+DateUtil.format(rt.getCommtime(), DatePattern.NORM_DATETIME_FORMAT)+//2025-02-28 14:42:49 ",CONFIRMTIME:" +//CONFIRMTIME 不存在 ",DOTNUM:-1" +//DOTNUM 不存在 - ",ENGNAME:bjs6" + - ",EXECSQN:" +//las_sap_samplereg#EXECSQN - ",TESTDATE:20250228" + - ",MACHINEID:WSW_caris200" + - ",HISITEMID:F00000019999" + - ",LOINCID:IL-6" + - ",SAMPLEID:9999" + - ",PRINTSEQ:10000" + - ",TESTTIME:2025-02-28 14:42:49" + - ",RERUNVALUE:" + - ",RESULTLIST:5" + - ",VALUESRC:" + - ",RERUNFLAG:" + - ",RANGEINFO:0--7" + - ",UNIT:pg/ml" + - ",RESULTFLAG:Normal" + - ",PATIENTID:" + - ",PATIENTTYPE:其他" + - ",SAMPLETYPE:血清" + - ",TESTMACHINEID:" + - ",RACKCUP:" + - ",PRINTROW:1" + - ",RANGELIMIT:" + - ",METHOD: "; + ",ENGNAME:"+strDef(rt.getEngname() )+ + ",EXECSQN:"+strDef(reg.getExecsqn() )+//las_sap_samplereg#EXECSQN + ",TESTDATE:"+strDef(rt.getTestdate() )+ + ",MACHINEID:"+strDef(rt.getMachineid() )+ + ",HISITEMID:"+strDef(rt.getHisitemid() )+ + ",LOINCID:"+strDef(rt.getLoincid() )+ + ",SAMPLEID:"+strDef(rt.getSampleid() )+ + ",PRINTSEQ:"+strDef(rt.getPrintseq() )+ + ",TESTTIME:"+strDef(rt.getItemname() )+//2025-02-28 14:42:49 + ",RERUNVALUE:"+strDef(rt.getRerunvalue() )+ + ",RESULTLIST:"+strDef(rt.getResultlist() )+ + ",VALUESRC:"+strDef(rt.getValuesrc() )+ + ",RERUNFLAG:"+strDef(rt.getRerunflag() )+ + ",RANGEINFO:"+strDef(rt.getRangeinfo() )+ + ",UNIT:"+strDef(rt.getUnit() )+ + ",RESULTFLAG:"+strDef(rt.getResultflag() )+ + ",PATIENTID:"+strDef(rt.getPatientid() )+ + ",PATIENTTYPE:"+strDef(rt.getPatienttype() )+ + ",SAMPLETYPE:"+strDef(rt.getSampletype() )+ + ",TESTMACHINEID:"+strDef(rt.getTestmachineid() )+ + ",RACKCUP:"+strDef(rt.getRackcup() )+ + ",PRINTROW:"+strDef(rt.getPrintrow() )+ + ",RANGELIMIT:"+strDef(rt.getRangelimit() )+ + ",METHOD:"+strDef(rt.getMethod()) + ; items.add(srcItem); } - String srcRegData = "#REG:TESTDATE:20250228" + //reg.testdate - "|MACHINEID:WSW_caris200" +//reg.machineid - "|SAMPLEID:9999" +//reg.sampleid - "|BARCODE:1010449586" +//reg.barcode - "|PATIENTTYPE:其他" +//reg.barcode - "|PATIENTID:" +//reg.PATIENTID - "|PATIENTNAME:田斌" +//reg.PATIENTNAME - "|PATIENTSEX:PATIENTAGE:PATIENTAGEUNIT:" + //PATIENTSEX:女PATIENTAGE:52PATIENTAGEUNIT:岁, - "|DEPTNAME:" + - "|WARDNAME:" + - "|HISITEMIDLIST:F00000019999" + - "|HISITEMNAMELIST:[组套]白细胞介素6" + - "|EXECSQN:F00000019999+1010449586" + - "|ACCEPTERID:003259" + - "|ACCEPTERNAME:郭宇" + - "|ACCEPTTIME:2025-02-28 14:41:13" + - "|APPROVERID:003142" + - "|APPROVERNAME:雷杨犇" + - "|APPROVETIME:2025-02-28 17:29:40" + - "|BARCODEMEMO:" + - "|BARPRTINTTIME:0001-01-01 00:00:00" + //字段单次写错了 - "|BIRTHDAY:0001-01-01|" + - "CHECKTIME:2025-02-28 14:41:13" + - "|COMMTIME:0001-01-01 00:00:00" + //COMMTIME 没有字段 - "|CONFIRMSTATE:1" + - "|ALERTSTATE:0" + - "|CONFIRMTIMELIMIT:0" + //CONFIRMTIMELIMIT 没有字段 - "|DEPTID:" + - "|DIAGNOSIS:" + - "|DIAGNOSISID:" + - "|DOCTORID:" + - "|DOCTORNAME:" + - "|DOCTORTEL:" + //DOCTORTEL 没有字段 - "|DOCUMENTID:" + - "|DOCUMENTTIME:0001-01-01 00:00:00" + - "|DOCUMNETNAME:" +//字段单次写错了,documentname + String srcRegData = "#REG:TESTDATE:"+ strDef(reg.getTestdate() )+ //reg.testdate 20250227 + "|MACHINEID:"+ strDef(reg.getMachineid() )+//reg.machineid, WSW_caris200 + "|SAMPLEID:"+ strDef(reg.getMachineid() )+//reg.sampleid 9999 + "|BARCODE:"+ strDef(reg.getBarcode() )+//reg.barcode 1010449586 + "|PATIENTTYPE:" + strDef(reg.getPatienttype() )+//reg.patienttype 其他 + "|PATIENTID:"+ strDef(reg.getPatientid() )+//reg.PATIENTID + "|PATIENTNAME:"+ strDef(reg.getPatientname() )+//reg.PATIENTNAME 田斌 + "|PATIENTSEX"+ strDef(reg.getPatientsex())+":PATIENTAGE"+ strDef(reg.getPatientage())+":PATIENTAGEUNIT:"+ strDef(reg.getPatientageunit())+ //PATIENTSEX:女PATIENTAGE:52PATIENTAGEUNIT:岁, + "|DEPTNAME:"+ strDef(reg.getDeptname() )+ + "|WARDNAME:"+ strDef(reg.getWardname() )+ + "|HISITEMIDLIST:"+ strDef(reg.getHisitemidlist())+ //F00000019999 + "|HISITEMNAMELIST:"+ strDef(reg.getHisitemnamelist())+ //[组套]白细胞介素6 + "|EXECSQN:"+ strDef(reg.getExecsqn() )+ //F00000019999+1010449586 + "|ACCEPTERID:"+ strDef(reg.getAccepterid() )+//003259 + "|ACCEPTERNAME:"+ strDef(reg.getAcceptername() )+//郭宇 + "|ACCEPTTIME:"+ DateUtil.format(reg.getAccepttime(), DatePattern.NORM_DATETIME_FORMAT)+//2025-02-28 14:41:13 + "|APPROVERID:" + strDef(reg.getApproverid())+//003142 + "|APPROVERNAME:"+ strDef(reg.getApprovername())+//雷杨犇 + "|APPROVETIME:"+DateUtil.format(reg.getApprovetime(), DatePattern.NORM_DATETIME_FORMAT)+//2025-02-28 17:29:40 + "|BARCODEMEMO:"+ strDef(reg.getBarcodememo() )+ + "|BARPRTINTTIME:"+DateUtil.format(reg.getBarprinttime(), DatePattern.NORM_DATETIME_FORMAT)+ //字段单次写错了 0001-01-01 00:00:00 + "|BIRTHDAY:"+DateUtil.format(reg.getBirthday(), DatePattern.NORM_DATE_FORMAT)+//0001-01-01 + "|CHECKTIME:"+DateUtil.format(reg.getChecktime(), DatePattern.NORM_DATE_FORMAT)+ //2025-02-28 14:41:13 + "|COMMTIME:" + //COMMTIME 没有字段 0001-01-01 00:00:00 + "|CONFIRMSTATE:" +strDef(reg.getConfirmstate())+ //1 + "|ALERTSTATE:"+ strDef(reg.getAlertstate() )+//0 + "|CONFIRMTIMELIMIT:"+ //CONFIRMTIMELIMIT 没有字段 0 + "|DEPTID:"+ strDef(reg.getDeptid() )+ + "|DIAGNOSIS:"+ strDef(reg.getDiagnosis() )+ + "|DIAGNOSISID:"+ strDef(reg.getDiagnosisid() )+ + "|DOCTORID:"+ strDef(reg.getDoctorid() )+ + "|DOCTORNAME:" + strDef(reg.getDoctorname())+ + "|DOCTORTEL:"+ //DOCTORTEL 没有字段 + "|DOCUMENTID:"+ strDef(reg.getDocumentid() )+ + "|DOCUMENTTIME:"+DateUtil.format(reg.getDocumenttime(), DatePattern.NORM_DATETIME_FORMAT) +//0001-01-01 00:00:00 + "|DOCUMNETNAME:"+ strDef(reg.getDocumentname() )+//字段单次写错了,documentname "|EMC:0" + - "|EXECDEPTID:1044" + - "|EXECDEPTNAME:医学检验科" + - "|EXECSQN2:" + - "|GROUPID:02" + + "|EXECDEPTID:"+ strDef(reg.getExecdeptid() )+//1044 + "|EXECDEPTNAME:"+ strDef(reg.getExecdeptname() )+//医学检验科 + "|EXECSQN2:"+ strDef(reg.getExecsqn2() )+ + "|GROUPID:"+ strDef(reg.getGroupid() )+//02 "|GROUPNAME:" +//GROUPNAME 没有字段 "|GROUPTEL:" +//GROUPTEL 没有字段 - "|HISITEMPRICE:43" + - "|HOSPITALID:" + - "|LSPTESTFORM:" + - "|INCEPTORID:" + - "|INCEPTORNAME:" + - "|INCEPTTIME:2025-02-28 14:41:13" + + "|HISITEMPRICE:"+ strDef(reg.getHisitemprice() )+//43 + "|HOSPITALID:" + strDef(reg.getHospitalid())+ + "|LSPTESTFORM:" + strDef(reg.getLsptestform())+ + "|INCEPTORID:"+ strDef(reg.getInceptorid() )+ + "|INCEPTORNAME:"+DateUtil.format(reg.getIncepttime(), DatePattern.NORM_DATETIME_FORMAT)+ + "|INCEPTTIME:"+DateUtil.format(reg.getIncepttime(), DatePattern.NORM_DATETIME_FORMAT) +//2025-02-28 14:41:13 "|MACHINENAME:" +//MACHINENAME 没有字段 - "|MEMO:" + - "|MENSTRUALCYCLE:" + - "|MIXCODE:" + - "|NURSEID:" + - "|NURSENAME:" + - "|ORDERTIME:2025-02-28 14:41:13" + - "|PASSPORTNO:" + - "|PATIENTBEDNO:" + - "|PATIENTID2:" + - "|PATIENTID3:" + - "|PATIENTIDENNO:" + - "|PATIENTSEQ:" + - "|PATIENTSITE:" + - "|PATIENTRACE:" + - "|PATIENTTEL:" + - "|PRINTEDTIME:0001-01-01 00:00:00" + - "|PRINTERID:" + - "|PRINTERNAME:" + - "|REPORTTIME:0001-01-01 00:00:00" + - "|RESULTTIME:0001-01-01 00:00:00" + - "|SAMPLEGETID:" + - "|SAMPLEGETNAME:" + - "|SAMPLEPOSITION:" + - "|SAMPLESTATE:" + - "|SENDERID:" + - "|SENDERNAME:" + - "|SENDFORMID:" + - "|SAMPLETIME:0001-01-01 00:00:00" + - "|SENDTIME:0001-01-01 00:00:00" + - "|TESTTYPE:" + + "|MEMO:" +strDef(reg.getMemo())+ + "|MENSTRUALCYCLE:" +strDef(reg.getMenstrualcycle())+ + "|MIXCODE:"+strDef(reg.getMixcode() )+ + "|NURSEID:"+strDef(reg.getNurseid() )+ + "|NURSENAME:"+strDef(reg.getNursename() )+ + "|ORDERTIME:"+DateUtil.format(reg.getOrdertime(), DatePattern.NORM_DATETIME_FORMAT)+//2025-02-28 14:41:13 + "|PASSPORTNO:" +strDef(reg.getPassportno())+ + "|PATIENTBEDNO:" +strDef(reg.getPatientbedno())+ + "|PATIENTID2:" +strDef(reg.getPatientid2())+ + "|PATIENTID3:"+strDef(reg.getPatientid3() )+ + "|PATIENTIDENNO:"+strDef(reg.getPatientidenno() )+ + "|PATIENTSEQ:" +strDef(reg.getPatientseq())+ + "|PATIENTSITE:" +strDef(reg.getPatientsite())+ + "|PATIENTRACE:"+strDef(reg.getPatientrace() )+ + "|PATIENTTEL:"+strDef(reg.getPatienttel() )+ + "|PRINTEDTIME:"+DateUtil.format(reg.getPrintedtime(), DatePattern.NORM_DATETIME_FORMAT)+//0001-01-01 00:00:00 + "|PRINTERID:"+strDef(reg.getPatientid() )+ + "|PRINTERNAME:"+strDef(reg.getPrintername() )+ + "|REPORTTIME:"+DateUtil.format(reg.getReporttime(), DatePattern.NORM_DATETIME_FORMAT) +//0001-01-01 00:00:00 + "|RESULTTIME:"+DateUtil.format(reg.getResulttime(), DatePattern.NORM_DATETIME_FORMAT) +//0001-01-01 00:00:00 + "|SAMPLEGETID:"+strDef(reg.getSamplegetid()) + + "|SAMPLEGETNAME:"+strDef(reg.getSamplegetname()) + + "|SAMPLEPOSITION:"+strDef(reg.getSampleposition()) + + "|SAMPLESTATE:"+strDef(reg.getSamplestate()) + + "|SENDERID:"+strDef(reg.getSenderid()) + + "|SENDERNAME:"+strDef(reg.getSendername()) + + "|SENDFORMID:"+strDef(reg.getSenderid()) + + "|SAMPLETIME:"+DateUtil.format(reg.getSampletime(), DatePattern.NORM_DATETIME_FORMAT)+//0001-01-01 00:00:00 + "|SENDTIME:"+DateUtil.format(reg.getSendtime(), DatePattern.NORM_DATETIME_FORMAT)+//0001-01-01 00:00:00 + "|TESTTYPE:" +strDef(reg.getTesttype() )+ "|TESTTYPEEXTEND:" + - "|WARDID:" + - "|TRANSLATIONINFO:" + - "|URINEQTY:" + - "|WARDPHONE:" +//WARDPHONE 没有字段 - "|ISGCP:0" + - "|ISHIGHRISK:0" + - "|IsLSPReApproved:0" +//IsLSPReApproved 没有字段 - "|ISREJECT:0" +//ISREJECT 没有字段 - "|PRINTSTATE:0" + - "|ACTUALITEMCOUNT:1" + - "|AUTOCONFIRMINFO:" + - "|BARCODE2:" + - "|DESCVALUE:" + //DESCVALUE 没有字段 - "|EXTRAINFO:怀孕次数|^^^孕周|^^^孕周天|^^^体重|^^^多胞胎|^^^吸烟|^^^胰岛素依赖|^^^人种|^^^" + //有该字段 - "|PICTUREPATH:" + - "|PLANITEMCOUNT:1" + - "|RACKCUP:" + - "|STATE:0000000000000000" + - "|STATE2:00000000000100000000000000000000" + - "|TESTEDITEMCOUNT:1" + - "|SAMPLETYPE:血清" + - "|LISMEMO:测试DESCVALUE:" + - "|DESC1:" + + "|WARDID:" +strDef(reg.getWardid() )+ + "|TRANSLATIONINFO:" +strDef(reg.getTranslationinfo() )+ + "|URINEQTY:" +strDef(reg.getUrineqty() )+ + "|WARDPHONE:"+//WARDPHONE 没有字段 + "|ISGCP:" +strDef(reg.getIsgcp() )+ + "|ISHIGHRISK:"+strDef(reg.getIshighrisk()) + + "|IsLSPReApproved:" +//IsLSPReApproved 没有字段 + "|ISREJECT:" +//ISREJECT 没有字段 + "|PRINTSTATE:" +strDef(reg.getPrintstate() )+ + "|ACTUALITEMCOUNT:"+strDef(reg.getActualitemcount()) + + "|AUTOCONFIRMINFO:"+strDef(reg.getAutoconfirminfo() )+ + "|BARCODE2:" +strDef(reg.getBarcode2() )+ + "|DESCVALUE:"+ //DESCVALUE 没有字段 + "|EXTRAINFO:" +strDef(reg.getExtrainfo() )+ //有该字段 怀孕次数|^^^孕周|^^^孕周天|^^^体重|^^^多胞胎|^^^吸烟|^^^胰岛素依赖|^^^人种|^^^ + "|PICTUREPATH:"+ + "|PLANITEMCOUNT:"+strDef(reg.getPlanitemcount()) +//1 + "|RACKCUP:" +strDef(reg.getRackcup() )+ + "|STATE:"+strDef(reg.getState() )+ //0000000000000000 + "|STATE2:"+strDef(reg.getState2()) +//00000000000100000000000000000000 + "|TESTEDITEMCOUNT:" +strDef(reg.getTesteditemcount() )+//1 + "|SAMPLETYPE:" +strDef(reg.getSampletype() )+//血清 + "|LISMEMO::" +strDef(reg.getLismemo() )+//测试DESCVALUE + "|DESC1:" +//DESC1 "|DESC2:" +//DESC2 没有字段 "|MorphologyDesc1:" +//MorphologyDesc1 没有字段 "|MorphologyDesc2:" +//MorphologyDesc2 没有字段 "|MorphologyDesc3:" +//MorphologyDesc3 没有字段 "|MorphologyDesc4:" +//MorphologyDesc4 没有字段 //"|#RESULT:ITEMID:IL-6,ITEMNAME:白介素6,REPORTVALUE:5,ORGVALUE:,DESCVALUE:,CUTOFF:,ODVALUE:,SCO:,MEMOVALUE:,ALERTEXPLAIN:,ALERTFLAG:5,AUTOCONFIRMINFO:,AUTOCONFIRMSIGN:,BARCODE:1010449586,Calfomula:,CHECKSTATE:,COMMTIME:2025-02-28 14:42:49,CONFIRMTIME:,DOTNUM:-1,ENGNAME:bjs6,EXECSQN:,TESTDATE:20250228,MACHINEID:WSW_caris200,HISITEMID:F00000019999,LOINCID:IL-6,SAMPLEID:9999,PRINTSEQ:10000,TESTTIME:2025-02-28 14:42:49,RERUNVALUE:,RESULTLIST:5,VALUESRC:,RERUNFLAG:,RANGEINFO:0--7,UNIT:pg/ml,RESULTFLAG:Normal,PATIENTID:,PATIENTTYPE:其他,SAMPLETYPE:血清,TESTMACHINEID:,RACKCUP:,PRINTROW:1,RANGELIMIT:,METHOD:" + - "|#RESULT:" + StrUtil.join("|", items) + - "|#APPROVER:PERSONID:003142" +//approverid - "|PERSONNAME:" + "" +//approvername - "|CACARDID:" + ""; //身份证号码, select t.cacardid from las_rol_person t where t.personid = '003142' - log.info("开始生成代签名原文\n:" + - "testdate=" + testdate + "\n"+ - "barcode=" + barcode + "\n"+ - "machineid" + machineid + "\n"+ - "生成原文:" + srcRegData); + "|#RESULT:" + StrUtil.join("|", items)+ + "|#APPROVER:PERSONID:"+strDef(reg.getApproverid()) +//approverid + "|PERSONNAME:"+strDef(reg.getApprovername()) +//approvername + "|CACARDID:"+strDef(reg.getCacardid()); //身份证号码, select t.cacardid from las_rol_person t where t.personid = '003142' + log.info("开始生成代签名原文\n:" + + "testdate=" + testdate + "\n"+ + "machineid" + machineid + "\n"+ + "sampleId=" + sampleId + "\n"+ + "生成原文:" + srcRegData); + + //#REG:TESTDATE:20250228|MACHINEID:WSW_caris200|SAMPLEID:WSW_caris200|BARCODE:1010449586|PATIENTTYPE:其他|PATIENTID:null|PATIENTNAME:田斌|PATIENTSEXnull:PATIENTAGEnull:PATIENTAGEUNIT:null|DEPTNAME:null|WARDNAME:null|HISITEMIDLIST:F00000019999|HISITEMNAMELIST:[组套]白细胞介素6|EXECSQN:F00000019999+1010449586|ACCEPTERID:003259|ACCEPTERNAME:郭宇|ACCEPTTIME:2025-02-28 14:41:13|APPROVERID:null|APPROVERNAME:null|APPROVETIME:null|BARCODEMEMO:null|BARPRTINTTIME:2025-02-28 14:41:13|BIRTHDAY:0001-01-01|CHECKTIME:2025-02-28|COMMTIME:|CONFIRMSTATE:2|ALERTSTATE:null|CONFIRMTIMELIMIT:|DEPTID:null|DIAGNOSIS:null|DIAGNOSISID:null|DOCTORID:null|DOCTORNAME:null|DOCTORTEL:|DOCUMENTID:null|DOCUMENTTIME:null|DOCUMNETNAME:null|EMC:0|EXECDEPTID:1044|EXECDEPTNAME:医学检验科|EXECSQN2:null|GROUPID:02|GROUPNAME:|GROUPTEL:|HISITEMPRICE:43|HOSPITALID:null|LSPTESTFORM:00000000000000000000000000000000|INCEPTORID:null|INCEPTORNAME:Fri Feb 28 14:41:13 CST 2025|INCEPTTIME:2025-02-28 14:41:13|MACHINENAME:|MEMO:null|MENSTRUALCYCLE:null|MIXCODE:null|NURSEID:null|NURSENAME:null|ORDERTIME:2025-02-28 14:41:13|PASSPORTNO:null|PATIENTBEDNO:null|PATIENTID2:null|PATIENTID3:null|PATIENTIDENNO:null|PATIENTSEQ:null|PATIENTSITE:null|PATIENTRACE:null|PATIENTTEL:null|PRINTEDTIME:null|PRINTERID:null|PRINTERNAME:null|REPORTTIME:0001-01-01 00:00:00|RESULTTIME:null|SAMPLEGETID:null|SAMPLEGETNAME:null|SAMPLEPOSITION:null|SAMPLESTATE:null|SENDERID:null|SENDERNAME:null|SENDFORMID:null|SAMPLETIME:0001-01-01 00:00:00|SENDTIME:0001-01-01 00:00:00|TESTTYPE:null|TESTTYPEEXTEND:|WARDID:null|TRANSLATIONINFO:null|URINEQTY:null|WARDPHONE:|ISGCP:0|ISHIGHRISK:0|IsLSPReApproved:|ISREJECT:|PRINTSTATE:0|ACTUALITEMCOUNT:1|AUTOCONFIRMINFO:null|BARCODE2:null|DESCVALUE:|EXTRAINFO:怀孕次数|^^^孕周|^^^孕周天|^^^体重|^^^多胞胎|^^^吸烟|^^^胰岛素依赖|^^^人种|^^^|PICTUREPATH:|PLANITEMCOUNT:1|RACKCUP:null|STATE:0000000000000000|STATE2:00000000000100000000000000000000|TESTEDITEMCOUNT:1|SAMPLETYPE:血清|LISMEMO::测试|DESC1:|DESC2:|MorphologyDesc1:|MorphologyDesc2:|MorphologyDesc3:|MorphologyDesc4: + // |#RESULT:ITEMID:IL-6,ITEMNAME:白介素6,REPORTVALUE:5,ORGVALUE:null,DESCVALUE:null,CUTOFF:null,ODVALUE:null,SCO:null,MEMOVALUE:null,ALERTEXPLAIN:,ALERTFLAG:null,AUTOCONFIRMINFO:null,AUTOCONFIRMSIGN:null,BARCODE:1010449586,Calfomula:,CHECKSTATE:null,COMMTIME:Fri Feb 28 14:42:49 CST 2025,CONFIRMTIME:,DOTNUM:-1,ENGNAME:bjs6,EXECSQN:F00000019999+1010449586,TESTDATE:20250228,MACHINEID:WSW_caris200,HISITEMID:F00000019999,LOINCID:IL-6,SAMPLEID:9999,PRINTSEQ:10000,TESTTIME:白介素6,RERUNVALUE:null,RESULTLIST:5,VALUESRC:null,RERUNFLAG:null,RANGEINFO:0--7,UNIT:pg/ml,RESULTFLAG:null,PATIENTID:null,PATIENTTYPE:其他,SAMPLETYPE:血清,TESTMACHINEID:null,RACKCUP:null,PRINTROW:1,RANGELIMIT:null,METHOD:null + // |#APPROVER:PERSONID:null|PERSONNAME:null|CACARDID:null return srcRegData; } + + @Override + public CaResultVo generateBjCaInfo(String testdate, String machineid, String sampleId, String autoSignSignDataId) { + //region 1、获取等待签名的原文 + String originText = getWinLisCaOriginText(testdate, machineid, sampleId); + if (StrUtil.isEmpty(originText)) { + return null; + } + //endregion + + //region 2、北京CA自动签名 + BjCaResult autoSignRe = bjCaService.autoSign(autoSignSignDataId, Base64.encode(originText)); + if (autoSignRe == null || !autoSignRe.isSuccess()) { + return null; + } + //endregion + + //region 3、北京CA获取带有证书的时间戳 + String signature = autoSignRe.getData().getSignResult(); + String timestampWithCert = bjCaService.createAndGetTssInfo(Base64.encode(originText), signature); + if (timestampWithCert == null) { + return null; + } + //endregion + + //region 4、返回结果 + CaResultVo caResultVo = new CaResultVo(); + caResultVo.setOriData(originText); + caResultVo.setOriDataBase64(Base64.encode(originText)); + caResultVo.setSignDataId(autoSignSignDataId);//接口1:出参,需要再手机上面签署 + caResultVo.setSignResult(signature); + caResultVo.setSignCert(autoSignRe.getData().getSignCert()); + caResultVo.setTimeciphertext(timestampWithCert); + //endregion + return caResultVo; + } + + private String strDef(String str) { + if ("null".equalsIgnoreCase(str)) { + return ""; + } + return StrUtil.emptyToDefault(str, ""); + } + + private String strDef(Long str) { + if (str == null) { + return ""; + } + return str.toString(); + } } diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/service/winlis/ILasSapSampleregService.java b/ruoyi-admin/src/main/java/com/neuhis/his/service/winlis/ILasSapSampleregService.java index 75d2d6229..4f5568d1e 100644 --- a/ruoyi-admin/src/main/java/com/neuhis/his/service/winlis/ILasSapSampleregService.java +++ b/ruoyi-admin/src/main/java/com/neuhis/his/service/winlis/ILasSapSampleregService.java @@ -23,7 +23,7 @@ public interface ILasSapSampleregService * @return 常规检验登记表 */ - LasSapSamplereg selectLasSapSampleregByTestdate(String testdate, String barcode, String machineid); + LasSapSamplereg selectLasSapSampleregByTestdate(String testdate, String machineid, String sampleId); /** * 返回一个试管检验条码信息和检验结果明细信息 @@ -31,7 +31,7 @@ public interface ILasSapSampleregService * @param barcode 条码 * @param machineid 机器 */ - LasSapSampleregVo selectLasSapSampleregVo(String testdate, String barcode, String machineid); + LasSapSampleregVo selectLasSapSampleregVo(String testdate, String machineid, String sampleId); /** * diff --git a/ruoyi-admin/src/main/java/com/neuhis/his/service/winlis/IWinLisService.java b/ruoyi-admin/src/main/java/com/neuhis/his/service/winlis/IWinLisService.java index 10e3c0b01..d5688a8c0 100644 --- a/ruoyi-admin/src/main/java/com/neuhis/his/service/winlis/IWinLisService.java +++ b/ruoyi-admin/src/main/java/com/neuhis/his/service/winlis/IWinLisService.java @@ -1,5 +1,7 @@ package com.neuhis.his.service.winlis; +import com.neuhis.his.domain.vo.bjca.CaResultVo; + /** * Winlis相关 * @@ -8,11 +10,16 @@ package com.neuhis.his.service.winlis; **/ public interface IWinLisService { /** - * 检验:winlis.las_sap_cadata + * 生成Winlis的CA原文,根据检验信息(Winlis.las_sap_samplereg+Winlis.LAS_RT_RESULT) * @param testdate 检验日期 - * @param barcode 条码号码 * @param machineid 机器id + * @param sampleId 样本号 * @return ORINGIN_TEXT 待签名原文 */ - String getLisCaOriginText(String testdate, String barcode, String machineid); + String getWinLisCaOriginText(String testdate, String machineid, String sampleId); + + /** + * 生成北京CA签名信息 + */ + CaResultVo generateBjCaInfo(String testdate, String machineid, String sampleId, String autoSignSignDataId); } diff --git a/ruoyi-admin/src/main/resources/mapper/winlis/LasRolPersonMapper.xml b/ruoyi-admin/src/main/resources/mapper/winlis/LasRolPersonMapper.xml index e248f9731..d5a53dcd9 100644 --- a/ruoyi-admin/src/main/resources/mapper/winlis/LasRolPersonMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/winlis/LasRolPersonMapper.xml @@ -68,105 +68,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - - - insert into las_rol_person - - personname, - loginname, - loginpass, - testerpass, - groupid, - roleid, - logingroup, - manuscript, - issourcehis, - isopenca, - isenabled, - begindate, - enddate, - applylimit, - persontype, - cacardid, - isreadedftpcon, - pswerrcount, - islock, - loginboardtime, - testerboardtime, - logingrouprole, - enmanuscript, - enpersonname, - - - #{personname}, - #{loginname}, - #{loginpass}, - #{testerpass}, - #{groupid}, - #{roleid}, - #{logingroup}, - #{manuscript}, - #{issourcehis}, - #{isopenca}, - #{isenabled}, - #{begindate}, - #{enddate}, - #{applylimit}, - #{persontype}, - #{cacardid}, - #{isreadedftpcon}, - #{pswerrcount}, - #{islock}, - #{loginboardtime}, - #{testerboardtime}, - #{logingrouprole}, - #{enmanuscript}, - #{enpersonname}, - - - - - update las_rol_person - - personname = #{personname}, - loginname = #{loginname}, - loginpass = #{loginpass}, - testerpass = #{testerpass}, - groupid = #{groupid}, - roleid = #{roleid}, - logingroup = #{logingroup}, - manuscript = #{manuscript}, - issourcehis = #{issourcehis}, - isopenca = #{isopenca}, - isenabled = #{isenabled}, - begindate = #{begindate}, - enddate = #{enddate}, - applylimit = #{applylimit}, - persontype = #{persontype}, - cacardid = #{cacardid}, - isreadedftpcon = #{isreadedftpcon}, - pswerrcount = #{pswerrcount}, - islock = #{islock}, - loginboardtime = #{loginboardtime}, - testerboardtime = #{testerboardtime}, - logingrouprole = #{logingrouprole}, - enmanuscript = #{enmanuscript}, - enpersonname = #{enpersonname}, - - where personid = #{personid} - - - - delete from las_rol_person where personid = #{personid} - - - - delete from las_rol_person where personid in - - #{personid} - - - \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/winlis/LasRtResultMapper.xml b/ruoyi-admin/src/main/resources/mapper/winlis/LasRtResultMapper.xml index a5d7d2542..e231f05e7 100644 --- a/ruoyi-admin/src/main/resources/mapper/winlis/LasRtResultMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/winlis/LasRtResultMapper.xml @@ -93,6 +93,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" \ No newline at end of file diff --git a/ruoyi-admin/src/main/resources/mapper/winlis/LasSapSampleregMapper.xml b/ruoyi-admin/src/main/resources/mapper/winlis/LasSapSampleregMapper.xml index cc450364f..73414fa43 100644 --- a/ruoyi-admin/src/main/resources/mapper/winlis/LasSapSampleregMapper.xml +++ b/ruoyi-admin/src/main/resources/mapper/winlis/LasSapSampleregMapper.xml @@ -210,6 +210,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" \ No newline at end of file