增加了影像分检刷新功能
Some checks are pending
Java CI with Maven / build (11) (push) Waiting to run
Java CI with Maven / build (17) (push) Waiting to run
Java CI with Maven / build (8) (push) Waiting to run
yudao-ui-admin CI / build (14.x) (push) Waiting to run
yudao-ui-admin CI / build (16.x) (push) Waiting to run
Some checks are pending
Java CI with Maven / build (11) (push) Waiting to run
Java CI with Maven / build (17) (push) Waiting to run
Java CI with Maven / build (8) (push) Waiting to run
yudao-ui-admin CI / build (14.x) (push) Waiting to run
yudao-ui-admin CI / build (16.x) (push) Waiting to run
This commit is contained in:
parent
35e745af59
commit
4962c79588
@ -126,6 +126,12 @@
|
||||
<version>2.1.0-jdk8-snapshot</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>cn.iocoder.boot</groupId>
|
||||
<artifactId>yudao-module-tblist-biz</artifactId>
|
||||
<version>2.1.0-jdk8-snapshot</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
|
@ -8,10 +8,14 @@ import cn.iocoder.yudao.module.applyregistration.service.applyform.device.Device
|
||||
import cn.iocoder.yudao.module.system.controller.admin.dicomworklist.vo.DicomWorklistVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.apiconfig.ApiconfigDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.dicomworklist.DicomworklistDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.org.OrgUnitDO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import cn.iocoder.yudao.module.system.service.apiconfig.ApiconfigService;
|
||||
import cn.iocoder.yudao.module.system.service.dicomworklist.DicomworklistService;
|
||||
import cn.iocoder.yudao.module.system.service.org.OrgUnitService;
|
||||
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
|
||||
import cn.iocoder.yudao.module.tblist.dal.dataobject.patientexamlist.PatientexamlistDO;
|
||||
import cn.iocoder.yudao.module.tblist.service.patientexamlist.PatientexamlistService;
|
||||
import com.mzt.logapi.starter.annotation.LogRecord;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.slf4j.Logger;
|
||||
@ -25,6 +29,7 @@ import io.swagger.v3.oas.annotations.Operation;
|
||||
|
||||
|
||||
import java.sql.SQLException;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
@ -72,6 +77,11 @@ public class ApplyformController {
|
||||
private AdminUserService userService;
|
||||
@Resource
|
||||
private DicomworklistService dicomworklistService;
|
||||
@Resource
|
||||
private PatientexamlistService patientexamlistService;
|
||||
|
||||
@Resource
|
||||
private OrgUnitService Service;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建申请登记记录")
|
||||
@ -176,6 +186,9 @@ public class ApplyformController {
|
||||
} else {
|
||||
List<DicomworklistDO> worklightDOS = getDicomworklistDOS(deviceVO, user);
|
||||
dicomworklistService.insertbatch(worklightDOS);
|
||||
|
||||
List<PatientexamlistDO> patientexamlistDOList = getPatientexamlistDOS(deviceVO, user);
|
||||
patientexamlistService.insertbatch(patientexamlistDOList);
|
||||
}
|
||||
|
||||
|
||||
@ -189,7 +202,7 @@ public class ApplyformController {
|
||||
}
|
||||
|
||||
//处理数据
|
||||
private static @NotNull List<DicomworklistDO> getDicomworklistDOS(deviceupVO deviceVO, AdminUserDO user) {
|
||||
private @NotNull List<DicomworklistDO> getDicomworklistDOS(deviceupVO deviceVO, AdminUserDO user) {
|
||||
List<DicomworklistDO> dicomworklistDOS = new ArrayList<>();
|
||||
for (DicomWorklistVO item : deviceVO.getWorklist()) {
|
||||
// 处理每个元素
|
||||
@ -211,6 +224,36 @@ public class ApplyformController {
|
||||
return dicomworklistDOS;
|
||||
}
|
||||
|
||||
//处理数据
|
||||
private @NotNull List<PatientexamlistDO> getPatientexamlistDOS(deviceupVO deviceVO, AdminUserDO user) {
|
||||
List<PatientexamlistDO> patientexamlistDOList = new ArrayList<>();
|
||||
OrgUnitDO aDo = Service.get(user.getOrgId());
|
||||
for (DicomWorklistVO item : deviceVO.getWorklist()) {
|
||||
// 处理每个元素
|
||||
LocalDateTime dateTime = LocalDateTime.parse(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
LocalDate PatientBir = LocalDate.parse(item.getPatientBir(), DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
UUID guid = UUID.randomUUID();
|
||||
PatientexamlistDO patientexamlistDO = new PatientexamlistDO();
|
||||
patientexamlistDO.setId(guid.toString());
|
||||
patientexamlistDO.setExamId(item.getStudyInsta());
|
||||
patientexamlistDO.setPName(item.getPatientNam());
|
||||
patientexamlistDO.setGender(Objects.equals(item.getPatientSex(), "F") ?"女":"男");
|
||||
patientexamlistDO.setBirthday(PatientBir.atStartOfDay());
|
||||
patientexamlistDO.setDeviceType(item.getModality());
|
||||
patientexamlistDO.setExamItemName(item.getExamItemName());
|
||||
patientexamlistDO.setExamItemCode(item.getExamItemCode());
|
||||
patientexamlistDO.setReportstatus("已分检");
|
||||
patientexamlistDO.setApplicationDate(dateTime);
|
||||
patientexamlistDO.setOrgId(user.getOrgId());
|
||||
patientexamlistDO.setOrgName(aDo.getOrgName());
|
||||
patientexamlistDO.setRegId(item.getPatientID());
|
||||
patientexamlistDO.setBillDoctorDepartment("影像科");
|
||||
patientexamlistDO.setDeviceName(item.getDevname());
|
||||
patientexamlistDOList.add(patientexamlistDO);
|
||||
|
||||
}
|
||||
return patientexamlistDOList;
|
||||
}
|
||||
|
||||
@DeleteMapping("/cancel")
|
||||
@Operation(summary = "申请单作废")
|
||||
@ -246,8 +289,11 @@ public class ApplyformController {
|
||||
//最终提交的数据
|
||||
List<ApplyformDO> doList = new ArrayList<>();
|
||||
List<DicomworklistDO> dicomworklistDOS = new ArrayList<>();
|
||||
List<PatientexamlistDO> patientexamlistDOList = new ArrayList<>();
|
||||
|
||||
//获取当前登陆用户
|
||||
AdminUserDO user = userService.getUser(getLoginUserId());
|
||||
OrgUnitDO aDo = Service.get(user.getOrgId());
|
||||
//当前时间
|
||||
LocalDateTime dateTime = LocalDateTime.parse(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
|
||||
//循环传递进来的参数 赋值
|
||||
@ -278,11 +324,34 @@ public class ApplyformController {
|
||||
dicomworklistDO.setOrgId(user.getOrgId());
|
||||
dicomworklistDO.setRegistrant(user.getUsername());
|
||||
dicomworklistDOS.add(dicomworklistDO);
|
||||
|
||||
// 处理每个元素
|
||||
LocalDate PatientBir = LocalDate.parse(item.getPatientBir(), DateTimeFormatter.ofPattern("yyyyMMdd"));
|
||||
UUID guid = UUID.randomUUID();
|
||||
PatientexamlistDO patientexamlistDO = new PatientexamlistDO();
|
||||
patientexamlistDO.setId(guid.toString());
|
||||
patientexamlistDO.setExamId(item.getStudyInsta());
|
||||
patientexamlistDO.setPName(item.getPatientNam());
|
||||
patientexamlistDO.setGender(Objects.equals(item.getPatientSex(), "F") ?"女":"男");
|
||||
patientexamlistDO.setBirthday(PatientBir.atStartOfDay());
|
||||
patientexamlistDO.setDeviceType(item.getModality());
|
||||
patientexamlistDO.setExamItemName(item.getExamItemName());
|
||||
patientexamlistDO.setExamItemCode(item.getExamItemCode());
|
||||
patientexamlistDO.setReportstatus("已分检");
|
||||
patientexamlistDO.setApplicationDate(dateTime);
|
||||
patientexamlistDO.setOrgId(user.getOrgId());
|
||||
patientexamlistDO.setOrgName(aDo.getOrgName());
|
||||
patientexamlistDO.setRegId(item.getPatientID());
|
||||
patientexamlistDO.setBillDoctorDepartment("影像科");
|
||||
patientexamlistDO.setDeviceName(item.getDevname());
|
||||
patientexamlistDOList.add(patientexamlistDO);
|
||||
}
|
||||
|
||||
}
|
||||
if (!doList.isEmpty() && !dicomworklistDOS.isEmpty()) {
|
||||
if (!doList.isEmpty() && !dicomworklistDOS.isEmpty() && !patientexamlistDOList.isEmpty()) {
|
||||
boolean bol = applyformService.updateBatchById(doList);
|
||||
dicomworklistService.insertbatch(dicomworklistDOS);
|
||||
patientexamlistService.insertbatch(patientexamlistDOList);
|
||||
return success(bol);
|
||||
} else {
|
||||
return success(false);
|
||||
|
@ -8,6 +8,7 @@ import cn.iocoder.yudao.module.applyregistration.controller.admin.applyform.vo.*
|
||||
import cn.iocoder.yudao.module.applyregistration.dal.dataobject.applyform.ApplyformDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.module.tblist.dal.dataobject.patientexamlist.PatientexamlistDO;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import javax.validation.Valid;
|
||||
@ -67,5 +68,5 @@ public interface ApplyformService extends IService<ApplyformDO> {
|
||||
*/
|
||||
PageResult<ApplyformDO> getApplyformPage(ApplyformPageReqVO pageReqVO);
|
||||
|
||||
|
||||
boolean insertbatch(List<ApplyformDO> doList);
|
||||
}
|
@ -4,6 +4,7 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode;
|
||||
import cn.iocoder.yudao.module.applyregistration.controller.admin.applyform.devicevo.deviceupVO;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
|
||||
import cn.iocoder.yudao.module.tblist.dal.dataobject.patientexamlist.PatientexamlistDO;
|
||||
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
@ -132,5 +133,12 @@ public class ApplyformServiceImpl extends ServiceImpl<ApplyformMapper, Applyform
|
||||
public PageResult<ApplyformDO> getApplyformPage(ApplyformPageReqVO pageReqVO) {
|
||||
return applyformMapper.selectPage(pageReqVO);
|
||||
}
|
||||
@Override
|
||||
public boolean insertbatch(List<ApplyformDO> doList) {
|
||||
|
||||
boolean bol=false;
|
||||
bol= applyformMapper.insertBatch(doList);
|
||||
|
||||
return bol;
|
||||
}
|
||||
}
|
@ -47,4 +47,13 @@ public class DicomWorklistVO {
|
||||
|
||||
@Schema(description = "登记医生")
|
||||
private String registrant;
|
||||
|
||||
@Schema(description = "检查项目")
|
||||
private String examItemName;
|
||||
|
||||
@Schema(description = "检查项目ID")
|
||||
private String examItemCode;
|
||||
@Schema(description = "检查设备名称")
|
||||
private String devname;
|
||||
|
||||
}
|
||||
|
@ -60,6 +60,8 @@ public interface DicomworklistMapper extends BaseMapperX<DicomworklistDO> {
|
||||
// 根据ID查询DicomStudies表对应的数据
|
||||
List<DicomstudiesDO> GetDicomStudiesData(@Param("patientId") String patientId, @Param("orgId") String orgId);
|
||||
|
||||
// 根据ID查询DicomStudies表对应的数据
|
||||
List<DicomstudiesDO> GetInstaDicomStudiesData(@Param("patientId") String patientId,@Param("StudyInsta") String StudyInsta, @Param("orgId") String orgId);
|
||||
// 根据Studies的StudyInsta查询DicomSeries表对应的数据
|
||||
List<DicomSeriesDO> GetDicomSeriesData(@Param("StudyInsta") String StudyInsta, @Param("orgId") String orgId);
|
||||
|
||||
@ -91,4 +93,6 @@ public interface DicomworklistMapper extends BaseMapperX<DicomworklistDO> {
|
||||
|
||||
@Update(" UPDATE dicompatients t1 SET t1.dataSync='1' WHERE t1.PatientID=#{patientID} ")
|
||||
int UpdateDataSyncOfDicompatientsByPatientID(@Param("patientID") String patientID);
|
||||
|
||||
|
||||
}
|
@ -19,6 +19,11 @@
|
||||
resultType="cn.iocoder.yudao.module.system.dal.dataobject.dicomworklist.DicomstudiesDO">
|
||||
select * from dicomstudies where PatientID=#{patientId} and orgId=#{orgId}
|
||||
</select>
|
||||
<select id="GetInstaDicomStudiesData"
|
||||
resultType="cn.iocoder.yudao.module.system.dal.dataobject.dicomworklist.DicomstudiesDO">
|
||||
select * from dicomstudies where PatientID=#{patientId} and orgId=#{orgId} and StudyInsta=#{StudyInsta}
|
||||
</select>
|
||||
|
||||
<select id="GetDicomSeriesData"
|
||||
resultType="cn.iocoder.yudao.module.system.dal.dataobject.dicomworklist.DicomSeriesDO">
|
||||
select * from dicomseries where StudyInsta=#{StudyInsta} and orgId=#{orgId} and BodyPartEx is not null and BodyPartEx!='' ORDER BY SeriesNumb
|
||||
|
@ -150,6 +150,15 @@ public class PatientexamlistController {
|
||||
patientexamlistService.dicomDataSync();
|
||||
return success(true);
|
||||
}
|
||||
@GetMapping("/dicomDataRefresh")
|
||||
@Operation(summary = "dicomj检查后数据刷新")
|
||||
@PreAuthorize("@ss.hasPermission('tblist:patientexamlist:query')")
|
||||
public CommonResult<Boolean> dicomDataRefresh() {
|
||||
//获取当前登陆用户
|
||||
AdminUserDO user = userService.getUser(getLoginUserId());
|
||||
patientexamlistService.dicomDataRefresh(user.getOrgId());
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出PACS检查列表 Excel")
|
||||
|
@ -8,6 +8,8 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.module.tblist.dal.dataobject.patientexamlist.PatientexamlistDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import cn.iocoder.yudao.module.tblist.controller.admin.patientexamlist.vo.*;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
/**
|
||||
* PACS检查列表 Mapper
|
||||
@ -71,5 +73,7 @@ public interface PatientexamlistMapper extends BaseMapperX<PatientexamlistDO> {
|
||||
.orderByDesc(PatientexamlistDO::getId));
|
||||
|
||||
}
|
||||
|
||||
// 查询需要刷新的数据
|
||||
@Select("select * from tb_patientexamlist where reportstatus='已分检' and examDate is null and orgId=#{orgId}")
|
||||
List<PatientexamlistDO> GetSortingDataList(@Param("orgId") String orgId);
|
||||
}
|
@ -5,7 +5,7 @@ import java.util.*;
|
||||
import cn.iocoder.yudao.module.tblist.controller.admin.patientexamlist.vo.*;
|
||||
import cn.iocoder.yudao.module.tblist.dal.dataobject.patientexamlist.PatientexamlistDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
|
||||
import javax.validation.Valid;
|
||||
|
||||
@ -14,7 +14,7 @@ import javax.validation.Valid;
|
||||
*
|
||||
* @author 李晓东
|
||||
*/
|
||||
public interface PatientexamlistService {
|
||||
public interface PatientexamlistService extends IService<PatientexamlistDO> {
|
||||
|
||||
/**
|
||||
* 创建PACS检查列表
|
||||
@ -77,5 +77,10 @@ public interface PatientexamlistService {
|
||||
* @return
|
||||
*/
|
||||
void dicomDataSync();
|
||||
|
||||
/**
|
||||
* 刷新dicom分检数据至tb_patientexamlist
|
||||
*
|
||||
*/
|
||||
boolean dicomDataRefresh(String orgId);
|
||||
boolean insertbatch(List<PatientexamlistDO> doList);
|
||||
}
|
@ -5,10 +5,10 @@ import cn.iocoder.yudao.module.system.dal.dataobject.dicomworklist.*;
|
||||
import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO;
|
||||
import cn.iocoder.yudao.module.system.dal.mysql.dicomworklist.DicomworklistMapper;
|
||||
import cn.iocoder.yudao.module.system.service.user.AdminUserService;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.ZoneOffset;
|
||||
@ -18,7 +18,6 @@ import java.util.*;
|
||||
import cn.iocoder.yudao.module.tblist.controller.admin.patientexamlist.vo.*;
|
||||
import cn.iocoder.yudao.module.tblist.dal.dataobject.patientexamlist.PatientexamlistDO;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||
|
||||
import cn.iocoder.yudao.module.tblist.dal.mysql.patientexamlist.PatientexamlistMapper;
|
||||
@ -36,7 +35,7 @@ import static cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUti
|
||||
*/
|
||||
@Service
|
||||
@Validated
|
||||
public class PatientexamlistServiceImpl implements PatientexamlistService {
|
||||
public class PatientexamlistServiceImpl extends ServiceImpl<PatientexamlistMapper, PatientexamlistDO> implements PatientexamlistService {
|
||||
|
||||
@Resource
|
||||
private PatientexamlistMapper patientexamlistMapper;
|
||||
@ -164,6 +163,37 @@ public class PatientexamlistServiceImpl implements PatientexamlistService {
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean dicomDataRefresh(String orgId) {
|
||||
//先查询所有的状态是分检的数据并且是检查时间为空的数据
|
||||
List<PatientexamlistDO> doList= patientexamlistMapper.GetSortingDataList(orgId);
|
||||
boolean bol=false;
|
||||
if(!doList.isEmpty())
|
||||
{ //更新数据集合
|
||||
List<PatientexamlistDO> aDo = new ArrayList<>();
|
||||
for (PatientexamlistDO patientexamlistDO:doList)
|
||||
{
|
||||
List<DicomstudiesDO> dicomstudiesDOS= dicomworklistMapper.GetInstaDicomStudiesData(patientexamlistDO.getRegId(),patientexamlistDO.getExamId(),orgId);
|
||||
if(!dicomstudiesDOS.isEmpty())
|
||||
{
|
||||
String seim= dicomworklistMapper.GetSeDcByPatientIDAndStudyInsta(dicomstudiesDOS.get(0).getPatientID(),dicomstudiesDOS.get(0).getStudyInsta());
|
||||
PatientexamlistDO examdo=new PatientexamlistDO();
|
||||
examdo.setId(patientexamlistDO.getId());
|
||||
examdo.setExamDate(formatLocalDateTime2(String.valueOf(dicomstudiesDOS.get(0).getAccessTime())));
|
||||
examdo.setSeDc(seim);
|
||||
examdo.setReportstatus("待分析");
|
||||
aDo.add(examdo);
|
||||
}
|
||||
}
|
||||
if(!aDo.isEmpty())
|
||||
{
|
||||
bol= updateBatchById(aDo);
|
||||
|
||||
}
|
||||
}
|
||||
return bol;
|
||||
}
|
||||
|
||||
//其它方法
|
||||
private String formatSex1(String sex) {
|
||||
String _out = "";
|
||||
@ -196,4 +226,13 @@ public class PatientexamlistServiceImpl implements PatientexamlistService {
|
||||
}
|
||||
return _out;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean insertbatch(List<PatientexamlistDO> doList) {
|
||||
|
||||
boolean bol=false;
|
||||
bol= patientexamlistMapper.insertBatch(doList);
|
||||
|
||||
return bol;
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user