区域检验中心

This commit is contained in:
jiangs 2025-11-14 16:26:51 +08:00
parent f2a7a62345
commit ed2c621be5
7 changed files with 143 additions and 36 deletions

View File

@ -94,6 +94,11 @@ if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'com_
alter table com_opt add status varchar(10)
end
if not exists(SELECT 1 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'com_opt' AND COLUMN_NAME = 'lx')
begin
alter table com_opt add lx varchar(10)
end
if not exists(select 1 from com_opt where yq = '' and xxdh = 'A5MERGEA4')
begin
insert into com_opt(yq,xxdh,xxlb,xxqz,bz,lx) values('','A5MERGEA4','SYS','0','A5报告单是否合并成A4打印','1')

View File

@ -7,7 +7,7 @@ import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface RegTransitSampleMapper {
List<RegTransitSample> getRegTransitSample(RegTransitSample labQuerySample);
List<RegTransitSample> getRegTransitSample(RegTransitSample regTransitSample);
List<RegTransitSampleDetail> getRegTransitSampleDetail(RegTransitSampleDetail regTransitSampleDetail);
void addRegTransitSample(RegTransitSample regTransitSample);

View File

@ -5,6 +5,7 @@ import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
import java.util.List;
@Data
@ -12,13 +13,25 @@ import java.util.List;
@NoArgsConstructor
public class SampleSignVO {
@ApiModelProperty(value = "条码集合")
List<String> barcode;
private List<String> barcode;
@ApiModelProperty(value = "状态")
String status;
private String status;
@ApiModelProperty(value = "送检医院代码")
String dstHospCode;
private String dstHospCode;
@ApiModelProperty(value = "送检医院名称")
String dstHospName;
private String dstHospName;
@ApiModelProperty(value = "标本退回原因")
String backReasons;
private String backReasons;
@ApiModelProperty(value = "标本采集时间")
private Date affirmTime;
@ApiModelProperty(value = "标本采集人代码")
private String affirmUserCode;
@ApiModelProperty(value = "标本采集人姓名")
private String affirmUserName;
@ApiModelProperty(value = "标本送出时间")
private Date sendPackTime;
@ApiModelProperty(value = "标本送出人代码")
private String sendUserCode;
@ApiModelProperty(value = "标本送出人姓名")
private String sendUserName;
}

View File

@ -17,7 +17,6 @@ public class RegTransitSample {
/**
* 病人ID
*/
@ApiModelProperty(value = "病人ID")
private String PatId;
/**
* 就诊卡类型
@ -130,7 +129,6 @@ public class RegTransitSample {
/**
* 标本条码号
*/
@ApiModelProperty(value = "标本条码号")
private String Barcode;
/**
* 试管编码
@ -236,6 +234,9 @@ public class RegTransitSample {
private Date create_time;
private String update_by;
private Date update_time;
/**
* 数据来源:1.委托机构,2.区域流转平台
*/
private String DataSource;
/**
* 检验目的,项目字段拼接
@ -303,8 +304,6 @@ public class RegTransitSample {
*/
private Date BackTime;
private String DateType;
private Date DateStart;
private Date DateEnd;

View File

@ -1,16 +1,19 @@
package com.czlis.transitPF.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.czlis.common.core.domain.Result;
import com.czlis.transitPF.mapper.RegTransitSampleMapper;
import com.czlis.transitPF.pojo.DTO.SampleSignVO;
import com.czlis.transitPF.pojo.RegTransitSample;
import com.czlis.transitPF.pojo.RegTransitSampleDetail;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
@Component
@ -18,6 +21,7 @@ import java.util.List;
public class RegInterfaceImpl {
@Autowired
RegTransitSampleMapper regTransitSampleMapper;
/**
*{
* "method":"addTransitSample",
@ -35,35 +39,40 @@ public class RegInterfaceImpl {
* @return
*/
public Result addTransitSample(String jsonStr){
JSONObject jsonObject = null;
JSONObject reqMain = null;
JSONArray reqDetailList = null;
try{
jsonObject = JSONUtil.parseObj(jsonStr);
JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
reqMain = jsonObject.getJSONObject("req").getJSONObject("reqMain");
if(reqMain.getStr("PatId") == null || reqMain.getStr("PatId").equals("")) return new Result("-1","PatId不能为空!");
if(reqMain.getStr("PatName") == null || reqMain.getStr("PatName").equals("")) return new Result("-1","PatName不能为空!");
if(reqMain.getStr("PatSex") == null || reqMain.getStr("PatSex").equals("")) return new Result("-1","PatSex不能为空!");
if(reqMain.getStr("PatBirthday") == null || reqMain.getStr("PatBirthday").equals("")) return new Result("-1","PatBirthday不能为空!");
if(reqMain.getStr("OrderTime") == null ) return new Result("-1","OrderTime不能为空!");
if(reqMain.getStr("Barcode") == null || reqMain.getStr("Barcode").equals("")) return new Result("-1","Barcode不能为空!");
reqDetailList = jsonObject.getJSONObject("req").getJSONArray("reqDetail");
}catch (Exception e){
e.printStackTrace();
log.error("json格式错误:",e);
return new Result("-1","json格式不合法");
return new Result("-1","json格式不合法"+e.getMessage());
}
JSONObject reqMain = jsonObject.getJSONObject("req").getJSONObject("reqMain");
RegTransitSample regTransitSample = JSONUtil.toBean(reqMain, RegTransitSample.class);
RegTransitSample regTransitSample1 = new RegTransitSample();
regTransitSample1.setBarcode(reqMain.getStr("Barcode"));
regTransitSample1.setSrcHospCode(reqMain.getStr("SrcHospCode"));
List<RegTransitSample> regTransitSample2List = regTransitSampleMapper.getRegTransitSample(regTransitSample1);
if(regTransitSample2List.size() > 0){
for (RegTransitSample transitSample : regTransitSample2List) {
String barcode = transitSample.getBarcode();
regTransitSampleMapper.delRegTransitSample(barcode);
regTransitSampleMapper.delRegTransitSampleDetail(barcode);
}
}
JSONArray reqDetailList = jsonObject.getJSONObject("req").getJSONArray("reqDetail");
if(regTransitSample2List.size() > 0) return new Result("-1","存在相同记录的标本信息!");
String checkPUR = "";
//填写默认值
List<RegTransitSampleDetail> regTransitSampleDetailList = reqDetailList.toList(RegTransitSampleDetail.class);
for (RegTransitSampleDetail regTransitSampleDetail : regTransitSampleDetailList) {
checkPUR = checkPUR + "," + regTransitSampleDetail.getOrderItemName();
}
checkPUR = checkPUR.substring(1);
regTransitSample.setCheckPUR(checkPUR);
regTransitSample.setStatus("10");
regTransitSample.setDataSource("1");
regTransitSampleMapper.addRegTransitSample(regTransitSample);
for (RegTransitSampleDetail regTransitSampleDetail : regTransitSampleDetailList) {
regTransitSampleMapper.addRegTransitSampleDetail(regTransitSampleDetail);
@ -71,7 +80,6 @@ public class RegInterfaceImpl {
return new Result("0","");
}
/**
* {
* "method":"delTransitSample",
@ -84,17 +92,78 @@ public class RegInterfaceImpl {
* @return
*/
public Result delTransitSample(String jsonStr){
JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
String barcode = jsonObject.getJSONObject("reqMain").getStr("Barcode");
String barcode = "";
try{
JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
barcode = jsonObject.getJSONObject("reqMain").getStr("barcode");
RegTransitSample regTransitSample = new RegTransitSample();
regTransitSample.setBarcode(barcode);
List<RegTransitSample> regTransitSampleList = regTransitSampleMapper.getRegTransitSample(regTransitSample);
for (RegTransitSample transitSample : regTransitSampleList) {
String status = transitSample.getStatus();
if(Integer.parseInt(status) > 20) return new Result("-1","标本已经送检,不允许删除!");
}
}catch (Exception e){
e.printStackTrace();
log.error("json格式不合法",e);
return new Result("-1","json格式不合法!");
}
regTransitSampleMapper.delRegTransitSample(barcode);
regTransitSampleMapper.delRegTransitSampleDetail(barcode);
return new Result("0","删除成功!");
}
public Result queryTransitSample(String jsonStr){
JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
try{
JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
String barcode = jsonObject.getJSONObject("req").getJSONObject("param").getStr("barcode");
RegTransitSample regTransitSample = new RegTransitSample();
regTransitSample.setBarcode(barcode);
List<RegTransitSample> regTransitSampleList = regTransitSampleMapper.getRegTransitSample(regTransitSample);
return new Result("0","获取数据成功!",regTransitSampleList);
}catch (Exception e){
e.printStackTrace();
log.error("调用的json格式不合法!",e);
return new Result("-1","调用的json格式不合法!");
}
}
public Result updateStatus(String jsonStr){
try{
JSONObject jsonObject = JSONUtil.parseObj(jsonStr);
SampleSignVO sampleSignVO = jsonObject.getJSONObject("req").getJSONObject("param").toBean(SampleSignVO.class);
List<String> barcodeList = sampleSignVO.getBarcode();
Date sendPackTime = sampleSignVO.getSendPackTime();
String sendUserCode = sampleSignVO.getSendUserCode();
String sendUserName = sampleSignVO.getSendUserName();
//状态判断
for (String barcode : barcodeList) {
RegTransitSample regTransitSample1 = new RegTransitSample();
regTransitSample1.setBarcode(barcode);
List<RegTransitSample> regTransitSampleList = regTransitSampleMapper.getRegTransitSample(regTransitSample1);
if(regTransitSampleList.size() <= 0) return new Result("-1","没有查到该标本的信息!");
String status = regTransitSampleList.get(0).getStatus();
if(Integer.parseInt(status) >= 30) return new Result("-1","该标本已经送检!");
RegTransitSample regTransitSample = new RegTransitSample();
regTransitSample.setBarcode(barcode);
regTransitSample.setSendUserCode(sendUserCode);
regTransitSample.setSendUserName(sendUserName);
try{
regTransitSample.setSendPackTime(sendPackTime);
}catch (Exception e){
e.printStackTrace();
return new Result("-1","日期时间格式不正确!");
}
regTransitSample.setStatus("30");
regTransitSampleMapper.updateRegTransitSample(regTransitSample);
}
}catch (Exception e){
e.printStackTrace();
log.error("json格式不合法",e);
return new Result("-1","json格式不合法!");
}
return null;
}

View File

@ -19,6 +19,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;
import java.util.List;
@Service
@ -53,10 +54,12 @@ public class RegTransitSampleServiceImpl implements RegTransitSampleService {
switch (method){
case "addTransitSample": //新增数据接口
return regInterfaceImpl.addTransitSample(jsonStr);
case "delTransitSample":
case "delTransitSample": //删除数据接口
return regInterfaceImpl.delTransitSample(jsonStr);
case "queryTransitSample":
case "queryTransitSample": //查询数据接口
return regInterfaceImpl.queryTransitSample(jsonStr);
case "update": //修改状态, 目前只写了送检状态的
return regInterfaceImpl.updateStatus(jsonStr);
// case "test":
// return test();
default:
@ -78,6 +81,13 @@ public class RegTransitSampleServiceImpl implements RegTransitSampleService {
String dstHospCode = sampleSignVO.getDstHospCode();
String dstHospName = sampleSignVO.getDstHospName();
String backReasons = sampleSignVO.getBackReasons();
Date affirmTime = sampleSignVO.getAffirmTime();
String affirmUserCode = sampleSignVO.getAffirmUserCode();
String affirmUserName = sampleSignVO.getAffirmUserName();
Date sendPackTime = sampleSignVO.getSendPackTime();
String sendUserName = sampleSignVO.getSendUserName();
String sendUserCode = sampleSignVO.getSendUserCode();
List<String> barcode = sampleSignVO.getBarcode();
for (int i = 0; i < barcode.size(); i++) {
RegTransitSample regTransitSample = new RegTransitSample();
@ -86,16 +96,27 @@ public class RegTransitSampleServiceImpl implements RegTransitSampleService {
if(sysUserOne == null) return new Result("-1","未查询到员工信息!");
String nickName = sysUserOne.getNickName();
switch (status){
case "20": //标本采集
if(affirmTime == null) return new Result("-1","affirmTime标本采集时间不能为空!");
if(affirmUserName == null || affirmUserName.equals("")) return new Result("-1","affirmUserName标本采集人姓名不能为空!");
regTransitSample.setAffirmTime(affirmTime);
regTransitSample.setAffirmUserCode(affirmUserCode);
regTransitSample.setAffirmUserName(affirmUserName);
case "30": //标本送检
if(dstHospName == null || dstHospName.equals("")) return new Result("-1","dstHospName不能为空!");
if(sendPackTime == null) return new Result("-1","sendPackTime不能为空!");
if(sendUserName == null || sendUserName.equals("")) return new Result("-1","sendUserName不能为空!");
regTransitSample.setDstHospCode(dstHospCode);
regTransitSample.setDstHospName(dstHospName);
regTransitSample.setSendPackTime(sendPackTime);
regTransitSample.setSendUserCode(sendUserCode);
regTransitSample.setSendUserName(sendUserName);
break;
case "50": //标本签收
regTransitSample.setSignInTime(commonUtil.getCurrentTime());
regTransitSample.setSignInUserCode(userId);
System.out.println("名称:"+commonUtil.getSysUserOne(userId).toString());
regTransitSample.setSignInUserName(nickName);
break;
case "30": //标本送检
regTransitSample.setDstHospCode(dstHospCode);
regTransitSample.setDstHospName(dstHospName);
break;
case "100": //标本退回
regTransitSample.setBackReasons(backReasons);
regTransitSample.setBackUserCode(userId);

View File

@ -5,14 +5,14 @@
<mapper namespace="com.czlis.transitPF.mapper.RegReportMapper">
<select id="getSampleTypeCount" resultType="map">
select OrderTime,srchospname,sampletypecode,sampletypename,count(1) as sl from reg_TransitSample
select srchospname,sampletypecode,sampletypename,count(1) as sl from reg_TransitSample
<where>
<if test="SrcHospName != null and SrcHospName !=''">and SrcHospName = #{SrcHospName}</if>
<if test="SampleTypeCode != null and SampleTypeCode !=''">and sampletypecode = #{SampleTypeCode}</if>
<if test="SampleTypeName != null and SampleTypeName !=''">and sampletypename = #{SampleTypeName}</if>
<if test="OrderTime != null">and (OrderTime between #{DateStart} and #{DateEnd})</if>
</where>
group by OrderTime,srchospname,sampletypecode,sampletypename
group by srchospname,sampletypecode,sampletypename
</select>
<select id="getItemCount" resultType="map">