fix: 匹配患者病历的时候,需要匹配出院日期

jp2demo1.0
wyb 10 months ago
parent 8861f7c74f
commit d7a9a0597c

@ -26,8 +26,6 @@ import org.springframework.stereotype.Service;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.stream.Collectors;
@Slf4j
@ -171,7 +169,7 @@ public class SyncBasicDataImpl implements ISyncBasicDataService {
private List<Tbasic> getTbasicList(List<Tbasic> oldBasicList, List<Tpatientvisit> tpatientvisitList, List<Tdiagnose> tdiagnoses, List<Toperation> toperations) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
// 根据病案号 住院次数 名称 做去重判断
return tpatientvisitList.stream().map(m -> {
@ -179,6 +177,7 @@ public class SyncBasicDataImpl implements ISyncBasicDataService {
.filter(old -> ObjectUtil.equal(m.getFprn(), old.getInpatientNo().toLowerCase(Locale.ROOT))
&& ObjectUtil.equal(m.getFtimes(), old.getAdmissTimes())
&& ObjectUtil.equal(m.getFname(), old.getName())
&& sdf.format(m.getFcydate()).equals(sdf.format(old.getDisDate()))
)
.findFirst()
.orElse(null);
@ -300,18 +299,20 @@ public class SyncBasicDataImpl implements ISyncBasicDataService {
}
private List<Tbasic> getInsertTbasic(List<Tbasic> oldBasicList, List<CardInfo> cardInfoList) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
List<CardInfo> cardInfos = cardInfoList.stream().filter(f -> {
//根据病案号 名称 住院次数 出院时间 去重
String pno = f.getPatNo();
String name = f.getPatName();
Integer pNum = f.getPatNum();
Date outDate = f.getOutDate();
Tbasic tbasic = oldBasicList.stream().filter(o ->
ObjectUtil.equal(pno, o.getInpatientNo().toLowerCase(Locale.ROOT))
&& ObjectUtil.equal(name, o.getName())
&& ObjectUtil.equal(pNum, o.getAdmissTimes())
)
&& ObjectUtil.equal(pNum, o.getAdmissTimes())
&& sdf.format(outDate).equals(sdf.format(o.getDisDate())))
.findAny()
.orElse(null);

@ -290,6 +290,7 @@ public class SyncBasicFileImpl implements ISyncBasicFileService {
}
private Tbasic getOldTbasic(FileUploadJpgDto fileUploadJpgDto) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String admissId = fileUploadJpgDto.getAdmissId();
Tbasic getByAdmissId = basicMapper.getTbasicByAdmissId(admissId);
if (getByAdmissId != null) {
@ -297,14 +298,17 @@ public class SyncBasicFileImpl implements ISyncBasicFileService {
}
String jpgDtoInpatientNo = fileUploadJpgDto.getInpatientNo();
Integer jpgDtoAdmissTimes = fileUploadJpgDto.getAdmissTimes();
Date jpgDtoDisDate = fileUploadJpgDto.getDisDate();
List<String> inpatientNos = Collections.singletonList(jpgDtoInpatientNo);
SyncBasicDataDto dto = new SyncBasicDataDto();
List<Tbasic> oldBasicList = basicMapper.getOldBasicList(inpatientNos, dto);
for (Tbasic tbasic : oldBasicList) {
// 名字,病案号,住院次数 相同 ,人为是一个数据
// 名字,病案号,住院次数,出院时间 相同 ,人为是一个数据
if (ObjectUtil.equals(tbasic.getName(), fileUploadJpgDto.getName())
&& tbasic.getInpatientNo().equalsIgnoreCase(jpgDtoInpatientNo)
&& ObjectUtil.equals(jpgDtoAdmissTimes, tbasic.getAdmissTimes())) {
&& ObjectUtil.equals(jpgDtoAdmissTimes, tbasic.getAdmissTimes())
&& sdf.format(jpgDtoDisDate).equals(sdf.format(tbasic.getDisDate()))) {
return tbasic;
}
}

Loading…
Cancel
Save