feat(all): Winlis生成后的内容,CA签名完成

pull/544/head
dazer007 2025-03-06 20:17:31 +08:00
parent 04fe1d26f0
commit 852b8f7a4f
16 changed files with 310 additions and 329 deletions

View File

@ -2,8 +2,10 @@ package com.neuhis.his.app.controller;
import cn.hutool.core.codec.Base64; import cn.hutool.core.codec.Base64;
import com.neuhis.his.domain.vo.bjca.BjCaResult; 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.bjca.CaStartVo;
import com.neuhis.his.service.IBjCaService; import com.neuhis.his.service.IBjCaService;
import com.neuhis.his.service.winlis.IWinLisService;
import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.AjaxResult;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -27,14 +29,17 @@ import javax.annotation.Resource;
public class AppBjCaController { public class AppBjCaController {
@Resource @Resource
private IBjCaService bjCaService; private IBjCaService bjCaService;
@Resource
private IWinLisService winLisService;
/** /**
* startAutoSign[id] * startAutoSign[id]
*/ */
private String autoSignSignDataId = "SD_4c6ec5f6-22e3-4fae-b2aa-681e5beacf1e"; private String autoSignSignDataId = "SD_892d8817-4a96-445c-a5c1-2eb9f334fecc";
@GetMapping("/startAutoSign") @GetMapping("/startAutoSign")
@ApiOperation(value = "步骤A启动自动签名", notes = "步骤1、启动自动签名获取签名二维码让医师使用【协同签名】进行签名") @ApiOperation(value = "步骤A启动自动签名", notes = "步骤1、启动自动签名获取签名二维码让医师使用【协同签名】进行签名")
public AjaxResult bjcaAuto() { public AjaxResult bjcaAuto() {
//89003046 自动签未开启或已过期, 如果提示这个需要重新【协同签名】app
autoSignSignDataId = bjCaService.startAutoSign(); autoSignSignDataId = bjCaService.startAutoSign();
return AjaxResult.success(autoSignSignDataId); return AjaxResult.success(autoSignSignDataId);
} }
@ -48,8 +53,16 @@ public class AppBjCaController {
@GetMapping("/createAndGetTssInfo") @GetMapping("/createAndGetTssInfo")
@ApiOperation(value = "步骤C产生时间戳", notes = "步骤3、产生时间戳") @ApiOperation(value = "步骤C产生时间戳", notes = "步骤3、产生时间戳")
public AjaxResult createAndGetTssInfo() { public AjaxResult createAndGetTssInfo(String signature) {
String caStartVo = bjCaService.createAndGetTssInfo( Base64.encode("aaaaa")); String caStartVo = bjCaService.createAndGetTssInfo( Base64.encode("aaaaa"), signature);
return AjaxResult.success(caStartVo); 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);
}
} }

View File

@ -12,7 +12,7 @@ import com.ruoyi.common.core.domain.BaseEntity;
/** /**
* *
,,,,. las_rol_person las_rol_person
* *
* @author ruoyi * @author ruoyi
* @date 2025-03-06 * @date 2025-03-06
@ -57,7 +57,7 @@ public class LasRolPerson extends BaseEntity
/** 手写签名 */ /** 手写签名 */
@Excel(name = "手写签名") @Excel(name = "手写签名")
private String manuscript; private byte[] manuscript;
/** (1)来自HIS等外部系统;(0)自行维护人员 */ /** (1)来自HIS等外部系统;(0)自行维护人员 */
@Excel(name = "(1)来自HIS等外部系统;(0)自行维护人员") @Excel(name = "(1)来自HIS等外部系统;(0)自行维护人员")
@ -119,7 +119,7 @@ public class LasRolPerson extends BaseEntity
/** 外语手写签名 */ /** 外语手写签名 */
@Excel(name = "外语手写签名") @Excel(name = "外语手写签名")
private String enmanuscript; private byte[] enmanuscript;
/** 外语姓名 */ /** 外语姓名 */
@Excel(name = "外语姓名") @Excel(name = "外语姓名")

View File

@ -0,0 +1,31 @@
package com.neuhis.his.domain.vo.bjca;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* CAbase64id
*
* @author dazer
* @date 2025/3/6 18:54
**/
@Getter
@Setter
@ToString
@NoArgsConstructor
public class CaResultVo extends CaStartVo {
/**
* base64ORINGIN_TEXT
*/
private String oriData;
/**
* : base64
*/
private String oriDataBase64;
/**
* TIMECIPHERTEXT
*/
private String timeciphertext;
}

View File

@ -17,15 +17,15 @@ import lombok.ToString;
@NoArgsConstructor @NoArgsConstructor
public class CaStartVo { public class CaStartVo {
/** /**
* id,StartAutoSignSD_18eb25f8-3d15-4971-a60c-730c1480d837 * id,StartAutoSignSD_18eb25f8-3d15-4971-a60c-730c1480d837
*/ */
private String signDataId; private String signDataId;
/** /**
* MEYCIQDvcy6/WHJ+8QS1S1Ja1Q9FBa6gtnboxwndyQpHBBbcaQIhAMeZjymkozFKm1MaD2xq/ L4JhW3gO5XTmGL6SO0MzZw * PRIVATE_INFO/signatureMEYCIQDvcy6/WHJ+8QS1S1Ja1Q9FBa6gtnboxwndyQpHBBbcaQIhAMeZjymkozFKm1MaD2xq/ L4JhW3gO5XTmGL6SO0MzZw
*/ */
private String signResult; private String signResult;
/** /**
* MIIDAzCCAqagAwIBAgISXXXXXXXXXXXu4j9CUZ/w0w== * CERTMIIDAzCCAqagAwIBAgISXXXXXXXXXXXu4j9CUZ/w0w==
*/ */
private String signCert; private String signCert;
} }

View File

@ -1,12 +1,13 @@
package com.neuhis.his.mapper.winlis; package com.neuhis.his.mapper.winlis;
import com.neuhis.his.domain.entity.winlis.LasRolPerson; import com.neuhis.his.domain.entity.winlis.LasRolPerson;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
/** /**
* *
,,,,.Mapper Mapper
* *
* @author ruoyi * @author ruoyi
* @date 2025-03-06 * @date 2025-03-06
@ -15,62 +16,15 @@ public interface LasRolPersonMapper
{ {
/** /**
* *
,,,,.
*
* @param personid * @param personid
,,,,.
* @return * @return
,,,,.
*/ */
LasRolPerson selectLasRolPersonByPersonid(String personid); LasRolPerson selectLasRolPersonByPersonid(@Param(value ="personid") String personid);
/** /**
* *
,,,,.
*
* @param lasRolPerson * @param lasRolPerson
,,,,.
* @return * @return
,,,,.
*/ */
List<LasRolPerson> selectLasRolPersonList(LasRolPerson lasRolPerson); List<LasRolPerson> 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);
} }

View File

@ -1,6 +1,7 @@
package com.neuhis.his.mapper.winlis; package com.neuhis.his.mapper.winlis;
import com.neuhis.his.domain.entity.winlis.LasRtResult; import com.neuhis.his.domain.entity.winlis.LasRtResult;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -18,7 +19,7 @@ public interface LasRtResultMapper
* @param testdate * @param testdate
* @return * @return
*/ */
List<LasRtResult> selectLasRtResultByTestdate(String testdate, String barcode, String machineid); List<LasRtResult> selectLasRtResultByTestdate(@Param("testdate")String testdate,@Param("machineid") String machineid,@Param("sampleId") String sampleId);
/** /**
* *

View File

@ -1,6 +1,7 @@
package com.neuhis.his.mapper.winlis; package com.neuhis.his.mapper.winlis;
import com.neuhis.his.domain.entity.winlis.LasSapSamplereg; import com.neuhis.his.domain.entity.winlis.LasSapSamplereg;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
@ -20,7 +21,7 @@ public interface LasSapSampleregMapper
* @param testdate * @param testdate
* @return * @return
*/ */
LasSapSamplereg selectLasSapSampleregByTestdate(String testdate, String barcode, String machineid); LasSapSamplereg selectLasSapSampleregByTestdate(@Param("testdate")String testdate,@Param("machineid") String machineid,@Param("sampleId") String sampleId);
/** /**
* *

View File

@ -32,5 +32,5 @@ public interface IBjCaService {
* *
* @param oriDataBase64 base64 * @param oriDataBase64 base64
*/ */
String createAndGetTssInfo(String oriDataBase64); String createAndGetTssInfo(String oriDataBase64, String signature);
} }

View File

@ -76,7 +76,7 @@ public class BjCaServiceImpl implements IBjCaService {
} }
@Override @Override
public String createAndGetTssInfo(String oriDataBase64) { public String createAndGetTssInfo(String oriDataBase64, String signature) {
//region 参数校验 //region 参数校验
if (StrUtil.isNotEmpty(oriDataBase64) && !Base64.isBase64(oriDataBase64)) { if (StrUtil.isNotEmpty(oriDataBase64) && !Base64.isBase64(oriDataBase64)) {
throw new IllegalArgumentException("原文必须是base64编码"); throw new IllegalArgumentException("原文必须是base64编码");
@ -84,7 +84,8 @@ public class BjCaServiceImpl implements IBjCaService {
//endregion //endregion
Map<String, String> params = getBjCaCommonParams(); Map<String, String> params = getBjCaCommonParams();
params.put("oriData", oriDataBase64);//数据原文oriData: 数据原文和自动签名接口里面传的数据原文保持一致就行, 待签数据(必须是 base64编码 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<CaCreateAndGetTssInfoVo> result = postBjCa(bjCaConfig.getServerTssInfo(), params, CaCreateAndGetTssInfoVo.class); BjCaResult<CaCreateAndGetTssInfoVo> result = postBjCa(bjCaConfig.getServerTssInfo(), params, CaCreateAndGetTssInfoVo.class);
return result != null && result.isSuccess() ? result.getData().getTsResp() : ""; return result != null && result.isSuccess() ? result.getData().getTsResp() : "";
} }

View File

@ -47,29 +47,32 @@ public class LasSapSampleregServiceImpl implements ILasSapSampleregService
*/ */
@Override @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 @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 //region 查询1条码信息 Winlis.las_sap_samplereg
LasSapSampleregVo vo = new LasSapSampleregVo(); 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); BeanUtil.copyProperties(entity, vo);
//endregion //endregion
//region 查询2检验结果信息 Winlis.LAS_RT_RESULT //region 查询2检验结果信息 Winlis.LAS_RT_RESULT
List<LasRtResult> rtResults = lasRtResultMapper.selectLasRtResultByTestdate(testdate, barcode, machineid); List<LasRtResult> rtResults = lasRtResultMapper.selectLasRtResultByTestdate(testdate, machineid, sampleId);
vo.setRtResultList(rtResults); vo.setRtResultList(rtResults);
//endregion //endregion
//region 查询3: 检验人员信息 Winlis.las_rol_person //region 查询3: 检验人员信息 Winlis.las_rol_person
String approverid = entity.getApproverid(); String approverid = entity.getApproverid();
if (!StrUtil.isEmpty(approverid)) { if (StrUtil.isNotEmpty(approverid)) {
LasRolPerson lasRolPerson = latestRolPersonMapper.selectLasRolPersonByPersonid(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 //endregion
return vo; return vo;

View File

@ -1,7 +1,15 @@
package com.neuhis.his.service.impl.winlis; 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 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.domain.vo.winlis.LasSapSampleregVo;
import com.neuhis.his.service.IBjCaService;
import com.neuhis.his.service.winlis.ILasSapSampleregService; import com.neuhis.his.service.winlis.ILasSapSampleregService;
import com.neuhis.his.service.winlis.IWinLisService; import com.neuhis.his.service.winlis.IWinLisService;
import com.ruoyi.common.annotation.DataSource; import com.ruoyi.common.annotation.DataSource;
@ -13,6 +21,8 @@ import org.springframework.stereotype.Service;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import static cn.hutool.core.date.DatePattern.NORM_DATETIME_PATTERN;
/** /**
* Winlis * Winlis
* *
@ -25,178 +35,237 @@ import java.util.List;
public class WinLisServiceImpl implements IWinLisService { public class WinLisServiceImpl implements IWinLisService {
@Autowired @Autowired
private ILasSapSampleregService lasSapSampleregService; private ILasSapSampleregService lasSapSampleregService;
@Autowired
private IBjCaService bjCaService;
@Override @Override
public String getLisCaOriginText(String testdate, String barcode, String machineid) { public String getWinLisCaOriginText(String testdate, String machineid, String sampleId) {
LasSapSampleregVo regVo = lasSapSampleregService.selectLasSapSampleregVo(testdate, barcode, machineid); LasSapSampleregVo reg = lasSapSampleregService.selectLasSapSampleregVo(testdate, machineid, sampleId);
if (regVo == null) { if (reg == null) {
return ""; return "";
} }
List<String> items = new ArrayList<>(); List<String> items = new ArrayList<>();
for (int i = 0; regVo.getRtResultList() != null && i < regVo.getRtResultList().size(); i++) { for (int i = 0; reg.getRtResultList() != null && i < reg.getRtResultList().size(); i++) {
String srcItem = "ITEMID:IL-6" + LasRtResult rt = reg.getRtResultList().get(i);
",ITEMNAME:白介素6" + String srcItem =
",REPORTVALUE:5" + "ITEMID:"+strDef(rt.getItemid() )+
",ORGVALUE:" + ",ITEMNAME:"+strDef(rt.getItemname() )+
",DESCVALUE:" + ",REPORTVALUE:"+strDef(rt.getReportvalue() )+
",CUTOFF:" + ",ORGVALUE:"+strDef(rt.getOrgvalue() )+
",ODVALUE:" + ",DESCVALUE:"+strDef(rt.getDescvalue() )+
",SCO:" + ",CUTOFF:"+strDef(rt.getCutoff() )+
",MEMOVALUE:" + ",ODVALUE:"+strDef(rt.getOdvalue() )+
",SCO:"+strDef(rt.getSco() )+
",MEMOVALUE:"+strDef(rt.getMemovalue() )+
",ALERTEXPLAIN:" + //ALERTEXPLAIN 不存在 ",ALERTEXPLAIN:" + //ALERTEXPLAIN 不存在
",ALERTFLAG:5" + ",ALERTFLAG:"+strDef(rt.getAlertflag() )+
",AUTOCONFIRMINFO:" + ",AUTOCONFIRMINFO:"+strDef(rt.getAutoconfirminfo() )+
",AUTOCONFIRMSIGN:" + ",AUTOCONFIRMSIGN:"+strDef(rt.getAutoconfirmsign() )+
",BARCODE:1010449586" + ",BARCODE:"+strDef(rt.getBarcode() )+
",Calfomula:" + ",Calfomula:" +//Calfomula 无字段
",CHECKSTATE:" + ",CHECKSTATE:"+strDef(rt.getCheckstate() )+
",COMMTIME:2025-02-28 14:42:49" + ",COMMTIME:"+DateUtil.format(rt.getCommtime(), DatePattern.NORM_DATETIME_FORMAT)+//2025-02-28 14:42:49
",CONFIRMTIME:" +//CONFIRMTIME 不存在 ",CONFIRMTIME:" +//CONFIRMTIME 不存在
",DOTNUM:-1" +//DOTNUM 不存在 ",DOTNUM:-1" +//DOTNUM 不存在
",ENGNAME:bjs6" + ",ENGNAME:"+strDef(rt.getEngname() )+
",EXECSQN:" +//las_sap_samplereg#EXECSQN ",EXECSQN:"+strDef(reg.getExecsqn() )+//las_sap_samplereg#EXECSQN
",TESTDATE:20250228" + ",TESTDATE:"+strDef(rt.getTestdate() )+
",MACHINEID:WSW_caris200" + ",MACHINEID:"+strDef(rt.getMachineid() )+
",HISITEMID:F00000019999" + ",HISITEMID:"+strDef(rt.getHisitemid() )+
",LOINCID:IL-6" + ",LOINCID:"+strDef(rt.getLoincid() )+
",SAMPLEID:9999" + ",SAMPLEID:"+strDef(rt.getSampleid() )+
",PRINTSEQ:10000" + ",PRINTSEQ:"+strDef(rt.getPrintseq() )+
",TESTTIME:2025-02-28 14:42:49" + ",TESTTIME:"+strDef(rt.getItemname() )+//2025-02-28 14:42:49
",RERUNVALUE:" + ",RERUNVALUE:"+strDef(rt.getRerunvalue() )+
",RESULTLIST:5" + ",RESULTLIST:"+strDef(rt.getResultlist() )+
",VALUESRC:" + ",VALUESRC:"+strDef(rt.getValuesrc() )+
",RERUNFLAG:" + ",RERUNFLAG:"+strDef(rt.getRerunflag() )+
",RANGEINFO:0--7" + ",RANGEINFO:"+strDef(rt.getRangeinfo() )+
",UNIT:pg/ml" + ",UNIT:"+strDef(rt.getUnit() )+
",RESULTFLAG:Normal" + ",RESULTFLAG:"+strDef(rt.getResultflag() )+
",PATIENTID:" + ",PATIENTID:"+strDef(rt.getPatientid() )+
",PATIENTTYPE:其他" + ",PATIENTTYPE:"+strDef(rt.getPatienttype() )+
",SAMPLETYPE:血清" + ",SAMPLETYPE:"+strDef(rt.getSampletype() )+
",TESTMACHINEID:" + ",TESTMACHINEID:"+strDef(rt.getTestmachineid() )+
",RACKCUP:" + ",RACKCUP:"+strDef(rt.getRackcup() )+
",PRINTROW:1" + ",PRINTROW:"+strDef(rt.getPrintrow() )+
",RANGELIMIT:" + ",RANGELIMIT:"+strDef(rt.getRangelimit() )+
",METHOD: "; ",METHOD:"+strDef(rt.getMethod())
;
items.add(srcItem); items.add(srcItem);
} }
String srcRegData = "#REG:TESTDATE:20250228" + //reg.testdate String srcRegData = "#REG:TESTDATE:"+ strDef(reg.getTestdate() )+ //reg.testdate 20250227
"|MACHINEID:WSW_caris200" +//reg.machineid "|MACHINEID:"+ strDef(reg.getMachineid() )+//reg.machineid, WSW_caris200
"|SAMPLEID:9999" +//reg.sampleid "|SAMPLEID:"+ strDef(reg.getMachineid() )+//reg.sampleid 9999
"|BARCODE:1010449586" +//reg.barcode "|BARCODE:"+ strDef(reg.getBarcode() )+//reg.barcode 1010449586
"|PATIENTTYPE:其他" +//reg.barcode "|PATIENTTYPE:" + strDef(reg.getPatienttype() )+//reg.patienttype 其他
"|PATIENTID:" +//reg.PATIENTID "|PATIENTID:"+ strDef(reg.getPatientid() )+//reg.PATIENTID
"|PATIENTNAME:田斌" +//reg.PATIENTNAME "|PATIENTNAME:"+ strDef(reg.getPatientname() )+//reg.PATIENTNAME 田斌
"|PATIENTSEX:PATIENTAGE:PATIENTAGEUNIT:" + //PATIENTSEX:女PATIENTAGE:52PATIENTAGEUNIT:岁, "|PATIENTSEX"+ strDef(reg.getPatientsex())+":PATIENTAGE"+ strDef(reg.getPatientage())+":PATIENTAGEUNIT:"+ strDef(reg.getPatientageunit())+ //PATIENTSEX:女PATIENTAGE:52PATIENTAGEUNIT:岁,
"|DEPTNAME:" + "|DEPTNAME:"+ strDef(reg.getDeptname() )+
"|WARDNAME:" + "|WARDNAME:"+ strDef(reg.getWardname() )+
"|HISITEMIDLIST:F00000019999" + "|HISITEMIDLIST:"+ strDef(reg.getHisitemidlist())+ //F00000019999
"|HISITEMNAMELIST:[组套]白细胞介素6" + "|HISITEMNAMELIST:"+ strDef(reg.getHisitemnamelist())+ //[组套]白细胞介素6
"|EXECSQN:F00000019999+1010449586" + "|EXECSQN:"+ strDef(reg.getExecsqn() )+ //F00000019999+1010449586
"|ACCEPTERID:003259" + "|ACCEPTERID:"+ strDef(reg.getAccepterid() )+//003259
"|ACCEPTERNAME:郭宇" + "|ACCEPTERNAME:"+ strDef(reg.getAcceptername() )+//郭宇
"|ACCEPTTIME:2025-02-28 14:41:13" + "|ACCEPTTIME:"+ DateUtil.format(reg.getAccepttime(), DatePattern.NORM_DATETIME_FORMAT)+//2025-02-28 14:41:13
"|APPROVERID:003142" + "|APPROVERID:" + strDef(reg.getApproverid())+//003142
"|APPROVERNAME:雷杨犇" + "|APPROVERNAME:"+ strDef(reg.getApprovername())+//雷杨犇
"|APPROVETIME:2025-02-28 17:29:40" + "|APPROVETIME:"+DateUtil.format(reg.getApprovetime(), DatePattern.NORM_DATETIME_FORMAT)+//2025-02-28 17:29:40
"|BARCODEMEMO:" + "|BARCODEMEMO:"+ strDef(reg.getBarcodememo() )+
"|BARPRTINTTIME:0001-01-01 00:00:00" + //字段单次写错了 "|BARPRTINTTIME:"+DateUtil.format(reg.getBarprinttime(), DatePattern.NORM_DATETIME_FORMAT)+ //字段单次写错了 0001-01-01 00:00:00
"|BIRTHDAY:0001-01-01|" + "|BIRTHDAY:"+DateUtil.format(reg.getBirthday(), DatePattern.NORM_DATE_FORMAT)+//0001-01-01
"CHECKTIME:2025-02-28 14:41:13" + "|CHECKTIME:"+DateUtil.format(reg.getChecktime(), DatePattern.NORM_DATE_FORMAT)+ //2025-02-28 14:41:13
"|COMMTIME:0001-01-01 00:00:00" + //COMMTIME 没有字段 "|COMMTIME:" + //COMMTIME 没有字段 0001-01-01 00:00:00
"|CONFIRMSTATE:1" + "|CONFIRMSTATE:" +strDef(reg.getConfirmstate())+ //1
"|ALERTSTATE:0" + "|ALERTSTATE:"+ strDef(reg.getAlertstate() )+//0
"|CONFIRMTIMELIMIT:0" + //CONFIRMTIMELIMIT 没有字段 "|CONFIRMTIMELIMIT:"+ //CONFIRMTIMELIMIT 没有字段 0
"|DEPTID:" + "|DEPTID:"+ strDef(reg.getDeptid() )+
"|DIAGNOSIS:" + "|DIAGNOSIS:"+ strDef(reg.getDiagnosis() )+
"|DIAGNOSISID:" + "|DIAGNOSISID:"+ strDef(reg.getDiagnosisid() )+
"|DOCTORID:" + "|DOCTORID:"+ strDef(reg.getDoctorid() )+
"|DOCTORNAME:" + "|DOCTORNAME:" + strDef(reg.getDoctorname())+
"|DOCTORTEL:" + //DOCTORTEL 没有字段 "|DOCTORTEL:"+ //DOCTORTEL 没有字段
"|DOCUMENTID:" + "|DOCUMENTID:"+ strDef(reg.getDocumentid() )+
"|DOCUMENTTIME:0001-01-01 00:00:00" + "|DOCUMENTTIME:"+DateUtil.format(reg.getDocumenttime(), DatePattern.NORM_DATETIME_FORMAT) +//0001-01-01 00:00:00
"|DOCUMNETNAME:" +//字段单次写错了documentname "|DOCUMNETNAME:"+ strDef(reg.getDocumentname() )+//字段单次写错了documentname
"|EMC:0" + "|EMC:0" +
"|EXECDEPTID:1044" + "|EXECDEPTID:"+ strDef(reg.getExecdeptid() )+//1044
"|EXECDEPTNAME:医学检验科" + "|EXECDEPTNAME:"+ strDef(reg.getExecdeptname() )+//医学检验科
"|EXECSQN2:" + "|EXECSQN2:"+ strDef(reg.getExecsqn2() )+
"|GROUPID:02" + "|GROUPID:"+ strDef(reg.getGroupid() )+//02
"|GROUPNAME:" +//GROUPNAME 没有字段 "|GROUPNAME:" +//GROUPNAME 没有字段
"|GROUPTEL:" +//GROUPTEL 没有字段 "|GROUPTEL:" +//GROUPTEL 没有字段
"|HISITEMPRICE:43" + "|HISITEMPRICE:"+ strDef(reg.getHisitemprice() )+//43
"|HOSPITALID:" + "|HOSPITALID:" + strDef(reg.getHospitalid())+
"|LSPTESTFORM:" + "|LSPTESTFORM:" + strDef(reg.getLsptestform())+
"|INCEPTORID:" + "|INCEPTORID:"+ strDef(reg.getInceptorid() )+
"|INCEPTORNAME:" + "|INCEPTORNAME:"+DateUtil.format(reg.getIncepttime(), DatePattern.NORM_DATETIME_FORMAT)+
"|INCEPTTIME:2025-02-28 14:41:13" + "|INCEPTTIME:"+DateUtil.format(reg.getIncepttime(), DatePattern.NORM_DATETIME_FORMAT) +//2025-02-28 14:41:13
"|MACHINENAME:" +//MACHINENAME 没有字段 "|MACHINENAME:" +//MACHINENAME 没有字段
"|MEMO:" + "|MEMO:" +strDef(reg.getMemo())+
"|MENSTRUALCYCLE:" + "|MENSTRUALCYCLE:" +strDef(reg.getMenstrualcycle())+
"|MIXCODE:" + "|MIXCODE:"+strDef(reg.getMixcode() )+
"|NURSEID:" + "|NURSEID:"+strDef(reg.getNurseid() )+
"|NURSENAME:" + "|NURSENAME:"+strDef(reg.getNursename() )+
"|ORDERTIME:2025-02-28 14:41:13" + "|ORDERTIME:"+DateUtil.format(reg.getOrdertime(), DatePattern.NORM_DATETIME_FORMAT)+//2025-02-28 14:41:13
"|PASSPORTNO:" + "|PASSPORTNO:" +strDef(reg.getPassportno())+
"|PATIENTBEDNO:" + "|PATIENTBEDNO:" +strDef(reg.getPatientbedno())+
"|PATIENTID2:" + "|PATIENTID2:" +strDef(reg.getPatientid2())+
"|PATIENTID3:" + "|PATIENTID3:"+strDef(reg.getPatientid3() )+
"|PATIENTIDENNO:" + "|PATIENTIDENNO:"+strDef(reg.getPatientidenno() )+
"|PATIENTSEQ:" + "|PATIENTSEQ:" +strDef(reg.getPatientseq())+
"|PATIENTSITE:" + "|PATIENTSITE:" +strDef(reg.getPatientsite())+
"|PATIENTRACE:" + "|PATIENTRACE:"+strDef(reg.getPatientrace() )+
"|PATIENTTEL:" + "|PATIENTTEL:"+strDef(reg.getPatienttel() )+
"|PRINTEDTIME:0001-01-01 00:00:00" + "|PRINTEDTIME:"+DateUtil.format(reg.getPrintedtime(), DatePattern.NORM_DATETIME_FORMAT)+//0001-01-01 00:00:00
"|PRINTERID:" + "|PRINTERID:"+strDef(reg.getPatientid() )+
"|PRINTERNAME:" + "|PRINTERNAME:"+strDef(reg.getPrintername() )+
"|REPORTTIME:0001-01-01 00:00:00" + "|REPORTTIME:"+DateUtil.format(reg.getReporttime(), DatePattern.NORM_DATETIME_FORMAT) +//0001-01-01 00:00:00
"|RESULTTIME:0001-01-01 00:00:00" + "|RESULTTIME:"+DateUtil.format(reg.getResulttime(), DatePattern.NORM_DATETIME_FORMAT) +//0001-01-01 00:00:00
"|SAMPLEGETID:" + "|SAMPLEGETID:"+strDef(reg.getSamplegetid()) +
"|SAMPLEGETNAME:" + "|SAMPLEGETNAME:"+strDef(reg.getSamplegetname()) +
"|SAMPLEPOSITION:" + "|SAMPLEPOSITION:"+strDef(reg.getSampleposition()) +
"|SAMPLESTATE:" + "|SAMPLESTATE:"+strDef(reg.getSamplestate()) +
"|SENDERID:" + "|SENDERID:"+strDef(reg.getSenderid()) +
"|SENDERNAME:" + "|SENDERNAME:"+strDef(reg.getSendername()) +
"|SENDFORMID:" + "|SENDFORMID:"+strDef(reg.getSenderid()) +
"|SAMPLETIME:0001-01-01 00:00:00" + "|SAMPLETIME:"+DateUtil.format(reg.getSampletime(), DatePattern.NORM_DATETIME_FORMAT)+//0001-01-01 00:00:00
"|SENDTIME:0001-01-01 00:00:00" + "|SENDTIME:"+DateUtil.format(reg.getSendtime(), DatePattern.NORM_DATETIME_FORMAT)+//0001-01-01 00:00:00
"|TESTTYPE:" + "|TESTTYPE:" +strDef(reg.getTesttype() )+
"|TESTTYPEEXTEND:" + "|TESTTYPEEXTEND:" +
"|WARDID:" + "|WARDID:" +strDef(reg.getWardid() )+
"|TRANSLATIONINFO:" + "|TRANSLATIONINFO:" +strDef(reg.getTranslationinfo() )+
"|URINEQTY:" + "|URINEQTY:" +strDef(reg.getUrineqty() )+
"|WARDPHONE:" +//WARDPHONE 没有字段 "|WARDPHONE:"+//WARDPHONE 没有字段
"|ISGCP:0" + "|ISGCP:" +strDef(reg.getIsgcp() )+
"|ISHIGHRISK:0" + "|ISHIGHRISK:"+strDef(reg.getIshighrisk()) +
"|IsLSPReApproved:0" +//IsLSPReApproved 没有字段 "|IsLSPReApproved:" +//IsLSPReApproved 没有字段
"|ISREJECT:0" +//ISREJECT 没有字段 "|ISREJECT:" +//ISREJECT 没有字段
"|PRINTSTATE:0" + "|PRINTSTATE:" +strDef(reg.getPrintstate() )+
"|ACTUALITEMCOUNT:1" + "|ACTUALITEMCOUNT:"+strDef(reg.getActualitemcount()) +
"|AUTOCONFIRMINFO:" + "|AUTOCONFIRMINFO:"+strDef(reg.getAutoconfirminfo() )+
"|BARCODE2:" + "|BARCODE2:" +strDef(reg.getBarcode2() )+
"|DESCVALUE:" + //DESCVALUE 没有字段 "|DESCVALUE:"+ //DESCVALUE 没有字段
"|EXTRAINFO:怀孕次数|^^^孕周|^^^孕周天|^^^体重|^^^多胞胎|^^^吸烟|^^^胰岛素依赖|^^^人种|^^^" + //有该字段 "|EXTRAINFO:" +strDef(reg.getExtrainfo() )+ //有该字段 怀孕次数|^^^孕周|^^^孕周天|^^^体重|^^^多胞胎|^^^吸烟|^^^胰岛素依赖|^^^人种|^^^
"|PICTUREPATH:" + "|PICTUREPATH:"+
"|PLANITEMCOUNT:1" + "|PLANITEMCOUNT:"+strDef(reg.getPlanitemcount()) +//1
"|RACKCUP:" + "|RACKCUP:" +strDef(reg.getRackcup() )+
"|STATE:0000000000000000" + "|STATE:"+strDef(reg.getState() )+ //0000000000000000
"|STATE2:00000000000100000000000000000000" + "|STATE2:"+strDef(reg.getState2()) +//00000000000100000000000000000000
"|TESTEDITEMCOUNT:1" + "|TESTEDITEMCOUNT:" +strDef(reg.getTesteditemcount() )+//1
"|SAMPLETYPE:血清" + "|SAMPLETYPE:" +strDef(reg.getSampletype() )+//血清
"|LISMEMO:测试DESCVALUE:" + "|LISMEMO::" +strDef(reg.getLismemo() )+//测试DESCVALUE
"|DESC1:" + "|DESC1:" +//DESC1
"|DESC2:" +//DESC2 没有字段 "|DESC2:" +//DESC2 没有字段
"|MorphologyDesc1:" +//MorphologyDesc1 没有字段 "|MorphologyDesc1:" +//MorphologyDesc1 没有字段
"|MorphologyDesc2:" +//MorphologyDesc2 没有字段 "|MorphologyDesc2:" +//MorphologyDesc2 没有字段
"|MorphologyDesc3:" +//MorphologyDesc3 没有字段 "|MorphologyDesc3:" +//MorphologyDesc3 没有字段
"|MorphologyDesc4:" +//MorphologyDesc4 没有字段 "|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: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) + "|#RESULT:" + StrUtil.join("|", items)+
"|#APPROVER:PERSONID:003142" +//approverid "|#APPROVER:PERSONID:"+strDef(reg.getApproverid()) +//approverid
"|PERSONNAME:" + "" +//approvername "|PERSONNAME:"+strDef(reg.getApprovername()) +//approvername
"|CACARDID:" + ""; //身份证号码, select t.cacardid from las_rol_person t where t.personid = '003142' "|CACARDID:"+strDef(reg.getCacardid()); //身份证号码, select t.cacardid from las_rol_person t where t.personid = '003142'
log.info("开始生成代签名原文\n" + log.info("开始生成代签名原文\n" +
"testdate=" + testdate + "\n"+ "testdate=" + testdate + "\n"+
"barcode=" + barcode + "\n"+
"machineid" + machineid + "\n"+ "machineid" + machineid + "\n"+
"sampleId=" + sampleId + "\n"+
"生成原文:" + srcRegData); "生成原文:" + 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; 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<CaStartVo> 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();
}
} }

View File

@ -23,7 +23,7 @@ public interface ILasSapSampleregService
* @return * @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 barcode
* @param machineid * @param machineid
*/ */
LasSapSampleregVo selectLasSapSampleregVo(String testdate, String barcode, String machineid); LasSapSampleregVo selectLasSapSampleregVo(String testdate, String machineid, String sampleId);
/** /**
* *

View File

@ -1,5 +1,7 @@
package com.neuhis.his.service.winlis; package com.neuhis.his.service.winlis;
import com.neuhis.his.domain.vo.bjca.CaResultVo;
/** /**
* Winlis * Winlis
* *
@ -8,11 +10,16 @@ package com.neuhis.his.service.winlis;
**/ **/
public interface IWinLisService { public interface IWinLisService {
/** /**
* winlis.las_sap_cadata * WinlisCAWinlis.las_sap_samplereg+Winlis.LAS_RT_RESULT
* @param testdate * @param testdate
* @param barcode
* @param machineid id * @param machineid id
* @param sampleId
* @return ORINGIN_TEXT * @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);
} }

View File

@ -68,105 +68,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectLasRolPersonByPersonid" parameterType="String" resultMap="LasRolPersonResult"> <select id="selectLasRolPersonByPersonid" parameterType="String" resultMap="LasRolPersonResult">
<include refid="selectLasRolPersonVo"/> <include refid="selectLasRolPersonVo"/>
where personid = #{personid} where personid = #{personid} and rownum = 1
</select> </select>
<insert id="insertLasRolPerson" parameterType="com.neuhis.his.domain.entity.winlis.LasRolPerson" useGeneratedKeys="true" keyProperty="personid">
insert into las_rol_person
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="personname != null">personname,</if>
<if test="loginname != null">loginname,</if>
<if test="loginpass != null">loginpass,</if>
<if test="testerpass != null">testerpass,</if>
<if test="groupid != null">groupid,</if>
<if test="roleid != null">roleid,</if>
<if test="logingroup != null">logingroup,</if>
<if test="manuscript != null">manuscript,</if>
<if test="issourcehis != null">issourcehis,</if>
<if test="isopenca != null">isopenca,</if>
<if test="isenabled != null">isenabled,</if>
<if test="begindate != null">begindate,</if>
<if test="enddate != null">enddate,</if>
<if test="applylimit != null">applylimit,</if>
<if test="persontype != null">persontype,</if>
<if test="cacardid != null">cacardid,</if>
<if test="isreadedftpcon != null">isreadedftpcon,</if>
<if test="pswerrcount != null">pswerrcount,</if>
<if test="islock != null">islock,</if>
<if test="loginboardtime != null">loginboardtime,</if>
<if test="testerboardtime != null">testerboardtime,</if>
<if test="logingrouprole != null">logingrouprole,</if>
<if test="enmanuscript != null">enmanuscript,</if>
<if test="enpersonname != null">enpersonname,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="personname != null">#{personname},</if>
<if test="loginname != null">#{loginname},</if>
<if test="loginpass != null">#{loginpass},</if>
<if test="testerpass != null">#{testerpass},</if>
<if test="groupid != null">#{groupid},</if>
<if test="roleid != null">#{roleid},</if>
<if test="logingroup != null">#{logingroup},</if>
<if test="manuscript != null">#{manuscript},</if>
<if test="issourcehis != null">#{issourcehis},</if>
<if test="isopenca != null">#{isopenca},</if>
<if test="isenabled != null">#{isenabled},</if>
<if test="begindate != null">#{begindate},</if>
<if test="enddate != null">#{enddate},</if>
<if test="applylimit != null">#{applylimit},</if>
<if test="persontype != null">#{persontype},</if>
<if test="cacardid != null">#{cacardid},</if>
<if test="isreadedftpcon != null">#{isreadedftpcon},</if>
<if test="pswerrcount != null">#{pswerrcount},</if>
<if test="islock != null">#{islock},</if>
<if test="loginboardtime != null">#{loginboardtime},</if>
<if test="testerboardtime != null">#{testerboardtime},</if>
<if test="logingrouprole != null">#{logingrouprole},</if>
<if test="enmanuscript != null">#{enmanuscript},</if>
<if test="enpersonname != null">#{enpersonname},</if>
</trim>
</insert>
<update id="updateLasRolPerson" parameterType="com.neuhis.his.domain.entity.winlis.LasRolPerson">
update las_rol_person
<trim prefix="SET" suffixOverrides=",">
<if test="personname != null">personname = #{personname},</if>
<if test="loginname != null">loginname = #{loginname},</if>
<if test="loginpass != null">loginpass = #{loginpass},</if>
<if test="testerpass != null">testerpass = #{testerpass},</if>
<if test="groupid != null">groupid = #{groupid},</if>
<if test="roleid != null">roleid = #{roleid},</if>
<if test="logingroup != null">logingroup = #{logingroup},</if>
<if test="manuscript != null">manuscript = #{manuscript},</if>
<if test="issourcehis != null">issourcehis = #{issourcehis},</if>
<if test="isopenca != null">isopenca = #{isopenca},</if>
<if test="isenabled != null">isenabled = #{isenabled},</if>
<if test="begindate != null">begindate = #{begindate},</if>
<if test="enddate != null">enddate = #{enddate},</if>
<if test="applylimit != null">applylimit = #{applylimit},</if>
<if test="persontype != null">persontype = #{persontype},</if>
<if test="cacardid != null">cacardid = #{cacardid},</if>
<if test="isreadedftpcon != null">isreadedftpcon = #{isreadedftpcon},</if>
<if test="pswerrcount != null">pswerrcount = #{pswerrcount},</if>
<if test="islock != null">islock = #{islock},</if>
<if test="loginboardtime != null">loginboardtime = #{loginboardtime},</if>
<if test="testerboardtime != null">testerboardtime = #{testerboardtime},</if>
<if test="logingrouprole != null">logingrouprole = #{logingrouprole},</if>
<if test="enmanuscript != null">enmanuscript = #{enmanuscript},</if>
<if test="enpersonname != null">enpersonname = #{enpersonname},</if>
</trim>
where personid = #{personid}
</update>
<delete id="deleteLasRolPersonByPersonid" parameterType="String">
delete from las_rol_person where personid = #{personid}
</delete>
<delete id="deleteLasRolPersonByPersonids" parameterType="String">
delete from las_rol_person where personid in
<foreach item="personid" collection="array" open="(" separator="," close=")">
#{personid}
</foreach>
</delete>
</mapper> </mapper>

View File

@ -93,6 +93,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectLasRtResultByTestdate" parameterType="String" resultMap="LasRtResultResult"> <select id="selectLasRtResultByTestdate" parameterType="String" resultMap="LasRtResultResult">
<include refid="selectLasRtResultVo"/> <include refid="selectLasRtResultVo"/>
where testdate = #{testdate} and barcode = #{barcode} and machineid = #{machineid} where testdate = #{testdate} and machineid = #{machineid} and sampleid = #{sampleId}
</select> </select>
</mapper> </mapper>

View File

@ -210,6 +210,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectLasSapSampleregByTestdate" parameterType="String" resultMap="LasSapSampleregResult"> <select id="selectLasSapSampleregByTestdate" parameterType="String" resultMap="LasSapSampleregResult">
<include refid="selectLasSapSampleregVo"/> <include refid="selectLasSapSampleregVo"/>
where testdate = #{testdate} and barcode = #{barcode} and machineid = #{machineid} where testdate = #{testdate} and machineid = #{machineid} and sampleid = #{sampleId}
</select> </select>
</mapper> </mapper>