市一 图片处理 数据处理

main
zhanglb 2 years ago
parent aec807a51d
commit f8cc793899

@ -43,25 +43,6 @@ public class SyncBasicDataController {
}
@ApiOperation("test")
@GetMapping("/test")
public CommonResult<?> test(){
ImageUtils.getInstance().savePic("C:\\Users\\Administrator\\Desktop\\QSL0015.jp2","C:\\Users\\Administrator\\Desktop\\QSL0015.jpg");
return CommonResult.success("测试成功");
}
@ApiOperation("rotateFile")
@GetMapping("/rotateFile")
public CommonResult<?> rotateFile(){
ImageUtils.getInstance().rotateFile("C:\\Users\\Administrator\\Desktop\\QSL0015.jpg","C:\\Users\\Administrator\\Desktop\\QSL0015.jpg",90);
return CommonResult.success("测试成功");
}
@ApiOperation("tifToJpg")
@GetMapping("/tifToJpg")
public CommonResult<?> tifToJpg(){
ImageUtils.getInstance().tifToJpg("C:\\Users\\Administrator\\Desktop\\1.tif","C:\\Users\\Administrator\\Desktop\\1.jpg");
return CommonResult.success("测试成功");
}
}

@ -1,7 +1,6 @@
package com.docus.demo.mapper.mysql;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.docus.demo.dto.BasicSelectDto;
import com.docus.demo.dto.SyncBasicDataDto;
import com.docus.demo.entity.Tbasic;
@ -21,5 +20,5 @@ public interface BasicMapper {
void insertOrUpdateByid(List<Tbasic> tbasicList);
List<Tbasic> getOldBasicList(List<String> fprnList, SyncBasicDataDto syncBasicDataDto);
List<Tbasic> getOldBasicList(@Param("list") List<String> fprnList, @Param("dto") SyncBasicDataDto syncBasicDataDto);
}

@ -14,13 +14,18 @@ import com.docus.demo.mapper.mysql.BasicMapper;
import com.docus.demo.mapper.sqlserver.TcardMapper;
import com.docus.demo.mapper.sqlserver1.PaintVisitMapper;
import com.docus.demo.utils.SnowflakeIdWorker;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
@Slf4j
@Service
public class SyncBasicDataImpl implements ISyncBasicDataService {
@Autowired
@ -31,6 +36,8 @@ public class SyncBasicDataImpl implements ISyncBasicDataService {
@Autowired
private TcardMapper tcardMapper;
private SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
private final ExecutorService executor = Executors.newFixedThreadPool(7);
@Override
public CommonResult<?> syncBasicData(SyncBasicDataDto syncBasicDataDto) {
@ -41,7 +48,7 @@ public class SyncBasicDataImpl implements ISyncBasicDataService {
List<Tpatientvisit> tpatientvisitList;
for (current = 1; ; current++) {
//根据出院时间查询省厅数据
tpatientvisitList = paintVisitMapper.getTpatientVisitList((current-1)*limit, limit,syncBasicDataDto);
tpatientvisitList = paintVisitMapper.getTpatientVisitList((current - 1) * limit, current*limit, syncBasicDataDto);
if (null == tpatientvisitList || tpatientvisitList.size() == 0) {
break;
}
@ -50,8 +57,8 @@ public class SyncBasicDataImpl implements ISyncBasicDataService {
List<Tdiagnose> tdiagnoses = paintVisitMapper.getTdiagnose(fprnList);
List<Toperation> toperations = paintVisitMapper.getToperation(fprnList);
//数据map转换
List<Tbasic> oldBasicList = basicMapper.getOldBasicList(fprnList,syncBasicDataDto);
List<Tbasic> tbasicList = this.getTbasicList(oldBasicList,tpatientvisitList,tdiagnoses,toperations);
List<Tbasic> oldBasicList = basicMapper.getOldBasicList(fprnList, syncBasicDataDto);
List<Tbasic> tbasicList = this.getTbasicList(oldBasicList, tpatientvisitList, tdiagnoses, toperations);
//数据入库
basicMapper.insertOrUpdateByid(tbasicList);
}
@ -59,122 +66,139 @@ public class SyncBasicDataImpl implements ISyncBasicDataService {
}
private List<Tbasic> getTbasicList(List<Tbasic> oldBasicList,List<Tpatientvisit> tpatientvisitList, List<Tdiagnose> tdiagnoses, List<Toperation> toperations) {
private List<Tbasic> getTbasicList(List<Tbasic> oldBasicList, List<Tpatientvisit> tpatientvisitList, List<Tdiagnose> tdiagnoses, List<Toperation> toperations) {
return tpatientvisitList.stream()
.filter(f->{
// 根据病案号 住院次数 名称 做去重判断
return tpatientvisitList.stream().map(m -> {
Tbasic oldBasic = oldBasicList.stream()
.filter(old->ObjectUtil.equal(f.getFprn(),old.getInpatientNo())
&&ObjectUtil.equal(f.getFtimes(),old.getAdmissTimes())
.filter(old -> ObjectUtil.equal(m.getFprn(), old.getInpatientNo())
&& ObjectUtil.equal(m.getFtimes(), old.getAdmissTimes())
&& ObjectUtil.equal(m.getFname(), old.getName())
)
.findFirst()
.orElse(null);
return oldBasic ==null;
})
.map(m->{
String fprn = m.getFprn();
Integer ftimes = m.getFtimes();
Tdiagnose tdiagnose = tdiagnoses.stream()
.filter(f-> ObjectUtil.equal(f.getFprn(),fprn)
&&ObjectUtil.equal(f.getFtimes(),ftimes)
&&ObjectUtil.equal(f.getFzdlx(),"1")
)
.findFirst()
.orElse(null);
Toperation toperation = toperations.stream()
.filter(f-> ObjectUtil.equal(f.getFprn(),fprn)
&&ObjectUtil.equal(f.getFtimes(),ftimes)
&&ObjectUtil.equal(f.getFpx(),1L)
)
.findFirst()
.orElse(null);
String fprn = m.getFprn();
Integer ftimes = m.getFtimes();
Tbasic tbasic = new Tbasic();
tbasic.setPatientId(String.valueOf(SnowflakeIdWorker.idWorker.nextId()));
tbasic.setAdmissTimes(m.getFtimes());
tbasic.setInpatientNo(m.getFprn());
tbasic.setName(m.getFname());
tbasic.setSex(m.getFsex());
tbasic.setAge(0);
tbasic.setIdCard(m.getFidcard());
tbasic.setTelphone("");
tbasic.setAdmissDate(m.getFrydate());
tbasic.setAdmissDept(m.getFrytykh());
tbasic.setAdmissDeptName(m.getFrydept());
tbasic.setDisDate(m.getFcydate());
tbasic.setDisDept(m.getFcytykh());
tbasic.setDisDeptName(m.getFcydept());
tbasic.setAdmissDays(m.getFdays());
tbasic.setAttending(m.getFzzdoctbh());
tbasic.setAttendingName(m.getFzzdoct());
if (tdiagnose!=null){
tbasic.setMainDiagCode(tdiagnose.getFicdm());
tbasic.setMainDiagName(tdiagnose.getFjbname());
}
if(toperation!=null){
tbasic.setMainOperateCode(toperation.getFopcode());
tbasic.setMainOperateName(toperation.getFop());
}
tbasic.setIsDead(m.getFbody());
tbasic.setCreateTime(new Date());
tbasic.setSexName(m.getFsex());
tbasic.setArchiveFileStorageType(2);
Tdiagnose tdiagnose = tdiagnoses.stream()
.filter(f -> ObjectUtil.equal(f.getFprn(), fprn)
&& ObjectUtil.equal(f.getFtimes(), ftimes)
&& ObjectUtil.equal(f.getFzdlx(), "1")
)
.findFirst()
.orElse(null);
return tbasic;
}).collect(Collectors.toList());
Toperation toperation = toperations.stream()
.filter(f -> ObjectUtil.equal(f.getFprn(), fprn)
&& ObjectUtil.equal(f.getFtimes(), ftimes)
&& ObjectUtil.equal(f.getFpx(), 1L)
)
.findFirst()
.orElse(null);
Tbasic tbasic = new Tbasic();
if (oldBasic!=null){
tbasic.setPatientId(oldBasic.getPatientId());
}else {
tbasic.setPatientId(String.valueOf(SnowflakeIdWorker.idWorker.nextId()));
}
tbasic.setAdmissTimes(m.getFtimes());
tbasic.setInpatientNo(m.getFprn());
tbasic.setName(m.getFname());
tbasic.setSex(m.getFsex());
tbasic.setAge(0);
tbasic.setIdCard(m.getFidcard());
tbasic.setTelphone("");
tbasic.setAdmissDate(m.getFrydate());
tbasic.setAdmissDept(m.getFrytykh());
tbasic.setAdmissDeptName(m.getFrydept());
tbasic.setDisDate(m.getFcydate());
tbasic.setDisDept(m.getFcytykh());
tbasic.setDisDeptName(m.getFcydept());
tbasic.setAdmissDays(m.getFdays());
tbasic.setAttending(m.getFzzdoctbh());
tbasic.setAttendingName(m.getFzzdoct());
if (tdiagnose != null) {
tbasic.setMainDiagCode(tdiagnose.getFicdm());
tbasic.setMainDiagName(tdiagnose.getFjbname());
}
if (toperation != null) {
tbasic.setMainOperateCode(toperation.getFopcode());
tbasic.setMainOperateName(toperation.getFop());
}
tbasic.setIsDead(m.getFbody());
tbasic.setCreateTime(new Date());
tbasic.setSexName(m.getFsex());
tbasic.setArchiveFileStorageType(2);
return tbasic;
}).collect(Collectors.toList());
}
@Override
public CommonResult<?> syncLzBasicData(SyncBasicDataDto syncBasicDataDto) {
//页码
int current;
//每页1000条数据
int limit = syncBasicDataDto.getLimit();
List<CardInfo> cardInfoList;
for (current = 1; ; current++) {
cardInfoList = tcardMapper.getCardInfo((current-1)*limit, limit,syncBasicDataDto);
if (null == cardInfoList || cardInfoList.size() == 0) {
break;
}
List<String> fprnList = cardInfoList.stream().map(CardInfo::getPatNo).collect(Collectors.toList());
//数据map转换
List<Tbasic> oldBasicList = basicMapper.getOldBasicList(fprnList,syncBasicDataDto);
List<Tbasic> tbasicList = this.getInsertTbasic(oldBasicList,cardInfoList);
if (ObjectUtil.isNotEmpty(tbasicList)){
//判断数据量 如果文件数据大于五百条 需要做拆分分批次插入
int batchSize = 1000;
// 拆分列表
for (int i = 0; i < tbasicList.size(); i += batchSize) {
int endIndex = Math.min(i + batchSize, tbasicList.size());
List<Tbasic> sublist = tbasicList.subList(i, endIndex);
//数据入库
basicMapper.insertOrUpdateByid(sublist);
executor.execute(()->{
//页码
int current;
//每页1000条数据
int limit = syncBasicDataDto.getLimit();
List<CardInfo> cardInfoList;
for (current = 1; ; current++) {
cardInfoList = tcardMapper.getCardInfo((current - 1) * limit, current * limit, syncBasicDataDto);
if (null == cardInfoList || cardInfoList.size() == 0) {
break;
}
log.info(syncBasicDataDto.getStartDate() + " " + syncBasicDataDto.getEndDate() + "开始同步" + cardInfoList.size());
List<String> fprnList = cardInfoList.stream().map(CardInfo::getPatNo).collect(Collectors.toList());
//数据map转换
List<Tbasic> oldBasicList = basicMapper.getOldBasicList(fprnList, syncBasicDataDto);
log.info("获取到旧数据"+oldBasicList.size());
List<Tbasic> tbasicList = this.getInsertTbasic(oldBasicList, cardInfoList);
if (ObjectUtil.isNotEmpty(tbasicList)) {
//判断数据量 如果文件数据大于五百条 需要做拆分分批次插入
int batchSize = 1000;
// 拆分列表
for (int i = 0; i < tbasicList.size(); i += batchSize) {
int endIndex = Math.min(i + batchSize, tbasicList.size());
List<Tbasic> sublist = tbasicList.subList(i, endIndex);
//数据入库
basicMapper.insertOrUpdateByid(sublist);
log.info("数据入库"+sublist.size());
}
}
}
}
log.info(syncBasicDataDto.getStartDate() + " " + syncBasicDataDto.getEndDate() + "结束同步" );
});
return CommonResult.success("同步成功");
}
private List<Tbasic> getInsertTbasic(List<Tbasic> oldBasicList, List<CardInfo> cardInfoList) {
return cardInfoList.stream().filter(f->{
List<CardInfo> cardInfos = cardInfoList.stream().filter(f -> {
//根据病案号 名称 住院次数 出院时间 去重
String pno = f.getPatNo();
String name = f.getPatName();
Integer pNum = f.getPatNum();
Date date = f.getOutDate();
Tbasic tbasic = oldBasicList.stream().filter(o->
ObjectUtil.equal(o.getInpatientNo(),pno)
&&ObjectUtil.equal(name,o.getName())
&&ObjectUtil.equal(pNum,o.getAdmissTimes())
&&ObjectUtil.equal(date,o.getDisDate()))
Tbasic tbasic = oldBasicList.stream().filter(o ->
ObjectUtil.equal(pno, o.getInpatientNo())
&& ObjectUtil.equal(name, o.getName())
&& ObjectUtil.equal(pNum, o.getAdmissTimes())
)
.findAny()
.orElse(null);
return tbasic==null;
}).map(m->{
//根据病案号 名称 住院次数 出院时间 去重
return tbasic == null;
}).collect(Collectors.toList());
List<Tbasic> tbasicList = cardInfos.stream().map(m -> {
Tbasic tbasic = new Tbasic();
tbasic.setPatientId(String.valueOf(SnowflakeIdWorker.idWorker.nextId()));
tbasic.setAdmissTimes(m.getPatNum());
@ -194,8 +218,16 @@ public class SyncBasicDataImpl implements ISyncBasicDataService {
tbasic.setMainDiagCode(m.getIcdeCode11());
tbasic.setMainOperateName(m.getOperName1());
tbasic.setMainOperateCode(m.getOperIcpm1());
tbasic.setBColumn5(m.getCuid());
tbasic.setBColumn8(1);
tbasic.setIsArchive(1);
tbasic.setArchiveFileStorageType(2);
tbasic.setCreateTime(new Date());
tbasic.setFileSource(2);
return tbasic;
}).collect(Collectors.toList());
return tbasicList;
}
}

@ -50,40 +50,41 @@ public class SyncBasicFileImpl implements ISyncBasicFileService {
public CommonResult<?> syncBasicFile(SyncFileDto syncFileDto) {
CompletableFuture.runAsync(() -> {
//页码
int current;
//每页1000条数据
int limit = syncFileDto.getLimit();
//1.先去tbaisc查数据 查询出带cid的数据
BasicSelectDto basicSelectDto = this.getBaiscSelectDto(syncFileDto);
List<BasicVo> basicVoList;
for (current = 1; ; current++) {
basicVoList = basicMapper.getBasicVoList((current-1)*limit, limit, basicSelectDto);
if (null == basicVoList || basicVoList.size() == 0) {
break;
}
// List<ScanAssort> updateOrInsertList = new ArrayList<>(5000);
for (BasicVo basicVo : basicVoList) {
log.info("开始同步"+basicVo.getInpatientNo());
List<ScanAssort> scanAssortList = this.doSyncFile(basicVo);
//2.5数据入库
// if (scanAssortList.size() != 0) {
// List<ScanAssort> oldScanAssort = scanAssortMapper.getListByPid(basicVo.getPatientId());
// //根据pid 查询数据库 根据路径和名称做匹配 如果数据存在需要做幂等 不存在需要做数据更新
// List<ScanAssort> addScanAssortList = this.handleUpdateOrInsert(oldScanAssort,scanAssortList);
// updateOrInsertList.addAll(addScanAssortList);
// } else {
// log.info(basicVo.getPatientId() + " canFindImage ");
// }
log.info("结束同步"+basicVo.getInpatientNo());
try {
//页码
int current;
//每页1000条数据
int limit = syncFileDto.getLimit();
//1.先去tbaisc查数据 查询出带cid的数据
BasicSelectDto basicSelectDto = this.getBaiscSelectDto(syncFileDto);
List<BasicVo> basicVoList;
for (current = 1; ; current++) {
basicVoList = basicMapper.getBasicVoList((current-1)*limit, limit, basicSelectDto);
if (null == basicVoList || basicVoList.size() == 0) {
break;
}
List<ScanAssort> updateOrInsertList = new ArrayList<>(5000);
for (BasicVo basicVo : basicVoList) {
log.info("开始同步"+basicVo.getInpatientNo());
List<ScanAssort> scanAssortList = this.doSyncFile(basicVo);
//2.5数据入库
if (scanAssortList.size() != 0) {
List<ScanAssort> oldScanAssort = scanAssortMapper.getListByPid(basicVo.getPatientId());
//根据pid 查询数据库 根据路径和名称做匹配 如果数据存在需要做幂等 不存在需要做数据更新
List<ScanAssort> addScanAssortList = this.handleUpdateOrInsert(oldScanAssort,scanAssortList);
updateOrInsertList.addAll(addScanAssortList);
} else {
log.info(basicVo.getPatientId() + " canFindImage ");
}
log.info("结束同步"+basicVo.getInpatientNo());
}
scanAssortMapper.insertOrUpdateBatch(updateOrInsertList);
}
// scanAssortMapper.insertOrUpdateBatch(updateOrInsertList);
}catch (Exception e){
log.info(e.getMessage());
}
},executor);
// System.out.println("执行了一个任务" +syncFileDto.getStartDate() +" " +syncFileDto.getEndDate());
return CommonResult.success("同步成功");
}
@ -147,22 +148,15 @@ public class SyncBasicFileImpl implements ISyncBasicFileService {
if (!file.exists()){
log.info(basicVo.getInpatientNo()+"文件未找到"+inPutFile);
}
// boolean savePicFlag ;
// boolean rotateFlag ;
// // 2.2jp2转化jpg 图片通过文件流写到挂在的盘符
// savePicFlag = ImageUtils.getInstance().savePic(inPutFile, outFile);
// if (!savePicFlag){
// //需要同步tif文件成jpg过来
// savePicFlag = ImageUtils.getInstance().tifToJpg(rootDir + picName + ".tif",outFile);
// }
// //需要旋转一下文件
// if (tpicture.getRotateDegree()!=0){
// rotateFlag = ImageUtils.getInstance().rotateFile(outFile,outFile,tpicture.getRotateDegree());
// }else {
// rotateFlag = true;
// }
boolean savePicFlag ;
boolean rotateFlag ;
// 2.2jp2转化jpg 图片通过文件流写到挂在的盘符
savePicFlag = ImageUtils.getInstance().savePic(inPutFile, outFile, tpicture.getRotateDegree());
if (!savePicFlag){
//需要同步tif文件成jpg过来
inPutFile = rootDir + picName + ".tif";
savePicFlag = ImageUtils.getInstance().savePic(inPutFile, outFile, tpicture.getRotateDegree());
}
// 2.4组合文件信息
ScanAssort scanAssort = new ScanAssort();
scanAssort.setId(SnowflakeIdWorker.idWorker.nextId());
@ -177,17 +171,11 @@ public class SyncBasicFileImpl implements ISyncBasicFileService {
scanAssort.setFileStorageType(1);
scanAssort.setFilePages(1);
// if (savePicFlag&&rotateFlag){
// scanAssort.setCreater("auto2");
// }else if (savePicFlag){
// scanAssort.setCreater("auto3");
// //需要记录创建人为auto3表示同步失败的文件
// }else {
// scanAssort.setCreater("auto4");
// }
if (savePicFlag){
scanAssort.setCreater("auto2");
}else {
scanAssort.setCreater("auto4");
}
scanAssortList.add(scanAssort);
sort+=1;

@ -1,5 +1,11 @@
package com.docus.demo.test;
import cn.hutool.core.util.ObjectUtil;
import com.docus.demo.entity.Tbasic;
import com.docus.demo.entity.sqlserver.CardInfo;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.CompletableFuture;
@ -11,18 +17,11 @@ public class test {
public static void main(String[] args) {
ExecutorService executor = Executors.newFixedThreadPool(1);
for (int j = 0; j < 1000; j++) {
CompletableFuture.runAsync(() -> {
try {
Thread.sleep(1000L);
System.out.println(new Date() + " "+Thread.currentThread().getId());
} catch (InterruptedException e) {
e.printStackTrace();
}
},executor);
}
// try {
// System.out.println( URLEncoder.encode("李毅","gbk"));
// } catch (UnsupportedEncodingException e) {
// e.printStackTrace();
// }
}
}

@ -7,15 +7,12 @@ import leadtools.codecs.CodecsLoadByteOrder;
import leadtools.codecs.CodecsSavePageMode;
import leadtools.codecs.RasterCodecs;
import leadtools.demos.DemoUtilities;
import leadtools.imageprocessing.RotateCommand;
import leadtools.imageprocessing.SizeCommand;
import lombok.extern.slf4j.Slf4j;
import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import java.awt.*;
import java.awt.geom.AffineTransform;
import java.awt.image.BufferedImage;
import java.io.*;
import java.util.Date;
@Slf4j
public class ImageUtils {
@ -118,66 +115,9 @@ public class ImageUtils {
}
/**
* tifjpg
* @param inPutFile
* @param outFile
* @return
*/
public boolean tifToJpg(String inPutFile, String outFile) {
try
{
if (createParentRoot(outFile)) {
return false;
}
InputStream inputStream = new FileInputStream(inPutFile);
OutputStream outputStream = new FileOutputStream(outFile);
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = inputStream.read(buffer)) != -1) {
outputStream.write(buffer, 0, bytesRead);
}
log.info(inPutFile + "成功将TIFF文件的字节码写入到新文件 " +outFile);
return true;
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
/**
* jpg
*
* @param inPutFile
* @param outFile
* @param degreesToRotate
* @return
*/
public boolean rotateFile(String inPutFile, String outFile, double degreesToRotate) {
try {
if (createParentRoot(outFile)) {
return false;
}
BufferedImage image = ImageIO.read(new File(inPutFile));
// 创建旋转后的图像
AffineTransform transform = new AffineTransform();
transform.rotate(Math.toRadians(degreesToRotate), image.getWidth() / 2.0, image.getHeight() / 2.0);
BufferedImage rotatedImage = new BufferedImage(image.getWidth(), image.getHeight(), image.getType());
Graphics2D g = rotatedImage.createGraphics();
g.drawImage(image, transform, null);
g.dispose();
ImageIO.write(rotatedImage, "jpg", new File(outFile));
return true;
} catch (Exception e) {
e.printStackTrace();
return false;
}
}
public boolean savePic(String inputfile, String outFile) {
public boolean savePic(String inputfile, String outFile,int angle) {
DemoData demoData = new DemoData();
demoData.firstPage = 1;
demoData.lastPage = 1;
@ -244,10 +184,19 @@ public class ImageUtils {
// System.out.println("Load image...");
rasterImage = rasterCodecs.load(stream, 0, CodecsLoadByteOrder.BGR_OR_GRAY, demoData.firstPage, demoData.lastPage);
if (angle!=0){
RotateCommand rotateCommand = new RotateCommand();
rotateCommand.setAngle(angle*100);
rotateCommand.run(rasterImage);
}
SizeCommand sizeCommand = new SizeCommand(rasterImage.getWidth(), rasterImage.getHeight(), RasterSizeFlags.BICUBIC.getValue());
sizeCommand.run(rasterImage);
// Save image
// System.out.println("Save image...");
rasterCodecs.save(rasterImage, demoData.outFilePath, RasterImageFormat.valueOf(demoData.outputFormat.toString()), demoData.outputBPP, 1, -1, 1, CodecsSavePageMode.OVERWRITE);
log.info("Image saved successfully here: " + demoData.outFilePath);
// log.info("Image saved successfully here: " + demoData.outFilePath);
return true;
} catch (Exception e) {
// System.out.println(e.getMessage());
@ -286,9 +235,10 @@ public class ImageUtils {
// public static void main(String[] args) {
// ImageUtils imageUtils = new ImageUtils();
//// imageUtils.savePic("C:\\Users\\Administrator\\Desktop\\HNSET0001.jp2.jp2","C:\\Users\\Administrator\\Desktop\\HNSET0001.jp2.jpg");
// imageUtils.tifToJpg("C:\\Users\\Administrator\\Desktop\\HNSET0001.tif","C:\\Users\\Administrator\\Desktop\\HNSET0001.jpg");
// imageUtils.rotateFile("C:\\Users\\Administrator\\Desktop\\HNSET0001.jp2.jpg","C:\\Users\\Administrator\\Desktop\\HNSET0001.jp2.jpg",90);
//// ImageUtils imageUtils = new ImageUtils();
//// imageUtils.savePic("C:\\Users\\Administrator\\Desktop\\HNSET0001.tif","C:\\Users\\Administrator\\Desktop\\HNSET0001.jpg",90);
//
//
//
// }
}

@ -58,7 +58,7 @@
</springProfile>
<!-- 监控sql日志输出-->
<!-- 监控sql日志输出-->
<!-- 如想看到表格数据将OFF改为INFO -->
<logger name="jdbc.resultsettable" level="OFF" additivity="false">
<appender-ref ref="console"/>

@ -5,30 +5,38 @@
<mapper namespace="com.docus.demo.mapper.mysql.BasicMapper">
<insert id="insertOrUpdateByid">
insert into docus_medicalrecord.t_basic
(patient_id,admiss_times,inpatient_no,admiss_id,
name,sex,age,id_card,
admiss_date,admiss_dept,admiss_dept_name,dis_date,
dis_dept,dis_dept_name,main_diag_code,main_diag_name,
main_operate_code,main_operate_name,create_time,is_archive,
file_source,b_column5,b_column8,archive_file_storage_type
)
values
<foreach collection="list" item="item" separator=",">
(#{item.patientId},#{item.admissTimes},#{item.inpatientNo},#{item.admissId},
#{item.name},#{item.sex},#{item.age},#{item.idCard},
#{item.admissDate},#{item.admissDept},#{item.admissDeptName},#{item.disDate},
#{item.disDept},#{item.disDeptName},#{item.mainDiagCode},#{item.mainDiagName},
#{item.mainOperateCode},#{item.mainOperateName},#{item.createTime},#{item.isArchive},
#{item.fileSource},#{item.bColumn5},#{item.bColumn8},#{item.archiveFileStorageType}
)
</foreach>
</insert>
<select id="getBasicVoList" resultType="com.docus.demo.vo.BasicVo">
SELECT
patient_id as patient_id,
admiss_times AS admissTimes,
admiss_times AS admissTimes,
inpatient_no AS inpatientNo,
dis_date AS disDate,
b_column5 as bColumn5
FROM docus_medicalrecord.t_basic
<where>
b_column5 is not null
b_column5 is not null
AND b_column8 = 1
<!-- <if test="dto.inpatientNoList !=null and dto.inpatientNoList.size() != 0 ">-->
<!-- AND inpatient_no in-->
<!-- <foreach collection="dto.inpatientNoList" item="inpatientNo" separator="," open="(" close=")">-->
<!-- #{inpatientNo}-->
<!-- </foreach>-->
<!-- </if>-->
<if test="dto.startDate !=null and dto.startDate != ''">
AND dis_date &gt;=#{dto.startDate}
</if>
@ -42,9 +50,23 @@
</select>
<select id="getOldBasicList" resultType="com.docus.demo.entity.Tbasic">
SELECT
admiss_times,
inpatient_no,
name,
dis_date
FROM
docus_medicalrecord.t_basic
where inpatient_no in
<foreach collection="list" item="inpatientNo" separator="," open="(" close=")">
#{inpatientNo}
</foreach>
<if test="dto.startDate !=null and dto.startDate != ''">
AND dis_date &gt;=#{dto.startDate}
</if>
<if test="dto.startDate !=null and dto.startDate != ''">
AND dis_date &lt;= #{dto.endDate}
</if>
</select>
</mapper>

@ -6,8 +6,6 @@
<select id="getCardInfo" resultType="com.docus.demo.entity.sqlserver.CardInfo">
SELECT *
from (
SELECT row_number() over(order by id ) as num ,
@ -29,9 +27,10 @@
FROM T_card_info
WHERE OutDate &gt;= #{dto.startDate}
AND OutDate &lt;= #{dto.endDate}
AND PatNum is not null
) as t2
where t2.num &gt;= #{pageStart}
and t2.num &lt;= {pageEnd}
and t2.num &lt;= #{pageEnd}
</select>
</mapper>

@ -6,7 +6,9 @@
<select id="getTpatientVisitList" resultType="com.docus.demo.entity.sqlserver1.Tpatientvisit">
SELECT ROWNUM "NAVICAT_ROWNUM" ,Tpatientvisit.* FROM Tpatientvisit
SELECT *
from (
SELECT row_number() over(order by fid ) as num , Tpatientvisit.* FROM Tpatientvisit
<where>
<if test="dto.inpatientNoList !=null and dto.inpatientNoList.size() != 0 ">
@ -23,9 +25,11 @@
<if test="dto.startDate !=null and dto.startDate != ''">
AND fcydate &lt;= #{dto.endDate}
</if>
AND ROWNUM &gt;= #{pageStart}
AND ROWNUM &lt;= #{pageEnd}
</where>
)as t2
where t2.num &gt;= #{pageStart}
and t2.num &lt;= #{pageEnd}
</select>
<select id="getToperation" resultType="com.docus.demo.entity.sqlserver1.Toperation">

Loading…
Cancel
Save