|
@@ -2,6 +2,7 @@ package thyyxxk.webserver.service.casefrontsheet;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import io.swagger.models.auth.In;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.springframework.scheduling.annotation.Scheduled;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -15,6 +16,7 @@ import thyyxxk.webserver.dao.his.casefrontsheet.CaseFrontSheetDao;
|
|
|
import thyyxxk.webserver.dao.his.casefrontsheet.SheetCreatedDao;
|
|
|
import thyyxxk.webserver.entity.ResultVo;
|
|
|
import thyyxxk.webserver.entity.casefrontsheet.*;
|
|
|
+import thyyxxk.webserver.entity.covid.Region;
|
|
|
import thyyxxk.webserver.entity.dictionary.PureCodeName;
|
|
|
import thyyxxk.webserver.service.externalhttp.PowersiSrvc;
|
|
|
import thyyxxk.webserver.utils.*;
|
|
@@ -195,12 +197,19 @@ public class CaseFrontSheetMainService {
|
|
|
CaseFrontsheetMain sheet;
|
|
|
String bah = overview.getBah();
|
|
|
Integer times = overview.getTimes();
|
|
|
+ StandardAddressMember standardAddressMember = getStandardAddressMember(bah);
|
|
|
int fileStatus = overview.getFileStatus();
|
|
|
if (fileStatus == 1) {
|
|
|
sheet = dao.selectSignedSheetMain(bah, times);
|
|
|
if (null != sheet) {
|
|
|
sheet.setDisdiagList(getSheetDisDiags(bah, times, fileStatus));
|
|
|
sheet.setSurgeryList(getSheetSurgeries(bah, times, fileStatus));
|
|
|
+ if (null != standardAddressMember) {
|
|
|
+ sheet.setStandardAddress(standardAddressMember.makeStandardAddress());
|
|
|
+ sheet.setLivePlaceCombo(standardAddressMember.makeAddressCombo() + sheet.getLivePlace());
|
|
|
+ } else {
|
|
|
+ sheet.setLivePlaceCombo(sheet.getLivePlace());
|
|
|
+ }
|
|
|
if (sheet.getAge() == 0 && null == sheet.getAgeDays()) {
|
|
|
sheet.setAgeDays(DateUtil.calculateNewBornAge(sheet.getBirthDate(), sheet.getAdmissDate()));
|
|
|
dao.updateNewBornAge(bah, times, sheet.getAgeDays());
|
|
@@ -279,9 +288,48 @@ public class CaseFrontSheetMainService {
|
|
|
}
|
|
|
sheet.setDisdiagList(getSheetDisDiags(bah, times, fileStatus));
|
|
|
sheet.setSurgeryList(getSheetSurgeries(bah, times, fileStatus));
|
|
|
+ if (null != standardAddressMember) {
|
|
|
+ sheet.setStandardAddress(standardAddressMember.makeStandardAddress());
|
|
|
+ sheet.setLivePlaceCombo(standardAddressMember.makeAddressCombo() + sheet.getLivePlace());
|
|
|
+ } else {
|
|
|
+ sheet.setLivePlaceCombo(sheet.getLivePlace());
|
|
|
+ }
|
|
|
return ResultVoUtil.success(sheet);
|
|
|
}
|
|
|
|
|
|
+ private StandardAddressMember getStandardAddressMember(String bah) {
|
|
|
+ StandardAddressMember member = dao.selectStandardAddressMember(bah);
|
|
|
+ if (null != member) {
|
|
|
+ return member;
|
|
|
+ }
|
|
|
+ String socialNo = dao.selectSocialNo(bah);
|
|
|
+ if (null == socialNo || socialNo.trim().length() < 15) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ Integer district;
|
|
|
+ try {
|
|
|
+ district = Integer.parseInt(socialNo.substring(0, 6));
|
|
|
+ } catch (Exception e) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ Region city = dao.selectParentRegion(district);
|
|
|
+ if (null == city) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ Region province = dao.selectParentRegion(city.getCode());
|
|
|
+ if (null == province) {
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+ member = new StandardAddressMember();
|
|
|
+ member.setCityCode(city.getCode());
|
|
|
+ member.setCityName(city.getName());
|
|
|
+ member.setDistrictCode(district);
|
|
|
+ member.setDistrictName(dao.selectRegionName(district));
|
|
|
+ member.setProvinceCode(province.getCode());
|
|
|
+ member.setProvinceName(province.getName());
|
|
|
+ return member;
|
|
|
+ }
|
|
|
+
|
|
|
private List<CaseFrontsheetDisdiag> getSheetDisDiags(String bah, int times, int status) {
|
|
|
List<CaseFrontsheetDisdiag> disdiags = status == 1 ?
|
|
|
dao.selectSignedSheetDiags(bah, times) : dao.getDisdiags(bah, times);
|
|
@@ -330,6 +378,15 @@ public class CaseFrontSheetMainService {
|
|
|
String bah = sheet.getBah();
|
|
|
int times = sheet.getAdmissTimes();
|
|
|
dao.updateAPatientMi(sheet);
|
|
|
+
|
|
|
+ Integer[] addrs = sheet.getStandardAddress();
|
|
|
+ if (null != addrs && addrs.length > 0) {
|
|
|
+ Integer province = addrs[0];
|
|
|
+ Integer city = addrs.length > 1 ? addrs[1] : null;
|
|
|
+ Integer district = addrs.length > 2 ? addrs[2] : null;
|
|
|
+ dao.updateAddressCascader(bah, province, city, district);
|
|
|
+ }
|
|
|
+
|
|
|
dao.updateZyActPatient(bah, times, sheet.getAutopsy(), sheet.getDiagConform1(),
|
|
|
sheet.getDiagConform2(), sheet.getDiagConform3(), sheet.getDiagConform4(),
|
|
|
sheet.getDiagConform5(), sheet.getHasSurgery(), sheet.getPathologicDiagStr(),
|