mirror of https://gitee.com/y_project/RuoYi.git
feat(all): Winlis生成后的内容,CA签名完成
parent
04fe1d26f0
commit
852b8f7a4f
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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 = "外语姓名")
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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<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);
|
||||
}
|
||||
|
|
|
@ -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<LasRtResult> selectLasRtResultByTestdate(String testdate, String barcode, String machineid);
|
||||
List<LasRtResult> selectLasRtResultByTestdate(@Param("testdate")String testdate,@Param("machineid") String machineid,@Param("sampleId") String sampleId);
|
||||
|
||||
/**
|
||||
* 查询常规检验结果列表
|
||||
|
|
|
@ -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);
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
|
@ -32,5 +32,5 @@ public interface IBjCaService {
|
|||
* 产生时间戳
|
||||
* @param oriDataBase64 待签数据(必须是 base64编码)
|
||||
*/
|
||||
String createAndGetTssInfo(String oriDataBase64);
|
||||
String createAndGetTssInfo(String oriDataBase64, String signature);
|
||||
}
|
||||
|
|
|
@ -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<String, String> 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<CaCreateAndGetTssInfoVo> result = postBjCa(bjCaConfig.getServerTssInfo(), params, CaCreateAndGetTssInfoVo.class);
|
||||
return result != null && result.isSuccess() ? result.getData().getTsResp() : "";
|
||||
}
|
||||
|
|
|
@ -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<LasRtResult> rtResults = lasRtResultMapper.selectLasRtResultByTestdate(testdate, barcode, machineid);
|
||||
List<LasRtResult> 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;
|
||||
|
|
|
@ -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<String> 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<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();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
||||
/**
|
||||
*
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
|
|
@ -68,105 +68,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
<select id="selectLasRolPersonByPersonid" parameterType="String" resultMap="LasRolPersonResult">
|
||||
<include refid="selectLasRolPersonVo"/>
|
||||
where personid = #{personid}
|
||||
where personid = #{personid} and rownum = 1
|
||||
</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>
|
|
@ -93,6 +93,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
<select id="selectLasRtResultByTestdate" parameterType="String" resultMap="LasRtResultResult">
|
||||
<include refid="selectLasRtResultVo"/>
|
||||
where testdate = #{testdate} and barcode = #{barcode} and machineid = #{machineid}
|
||||
where testdate = #{testdate} and machineid = #{machineid} and sampleid = #{sampleId}
|
||||
</select>
|
||||
</mapper>
|
|
@ -210,6 +210,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
|
||||
<select id="selectLasSapSampleregByTestdate" parameterType="String" resultMap="LasSapSampleregResult">
|
||||
<include refid="selectLasSapSampleregVo"/>
|
||||
where testdate = #{testdate} and barcode = #{barcode} and machineid = #{machineid}
|
||||
where testdate = #{testdate} and machineid = #{machineid} and sampleid = #{sampleId}
|
||||
</select>
|
||||
</mapper>
|
Loading…
Reference in New Issue