|
@@ -10,6 +10,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.client.RestTemplate;
|
|
|
import thyyxxk.webserver.config.exception.ExceptionEnum;
|
|
|
+import thyyxxk.webserver.constants.EmrType;
|
|
|
import thyyxxk.webserver.constants.sidicts.Insutype;
|
|
|
import thyyxxk.webserver.constants.sidicts.MedType;
|
|
|
import thyyxxk.webserver.dao.his.LoginDao;
|
|
@@ -40,17 +41,15 @@ public class CaseFrontSheetMainService {
|
|
|
private final BasSelectOverviewDao basDao;
|
|
|
private final LoginDao userDao;
|
|
|
private final PowersiSrvc srvc;
|
|
|
- private final RedisLikeService redis;
|
|
|
private final EmrServer emrService;
|
|
|
|
|
|
- public CaseFrontSheetMainService(SheetCreatedDao createdDao, CaseFrontSheetDao dao,
|
|
|
- BasSelectOverviewDao basDao, LoginDao userDao, PowersiSrvc srvc, RedisLikeService redis, EmrServer emrService) {
|
|
|
+ public CaseFrontSheetMainService(SheetCreatedDao createdDao, CaseFrontSheetDao dao, BasSelectOverviewDao basDao,
|
|
|
+ LoginDao userDao, PowersiSrvc srvc, EmrServer emrService) {
|
|
|
this.dao = dao;
|
|
|
this.createdDao = createdDao;
|
|
|
this.basDao = basDao;
|
|
|
this.userDao = userDao;
|
|
|
this.srvc = srvc;
|
|
|
- this.redis = redis;
|
|
|
this.emrService = emrService;
|
|
|
if (allDictionary == null) {
|
|
|
allDictionary = new ConcurrentHashMap<>();
|
|
@@ -348,8 +347,14 @@ public class CaseFrontSheetMainService {
|
|
|
private List<CaseFrontsheetDisdiag> getSheetDisDiags(String bah, int times, int status) {
|
|
|
List<CaseFrontsheetDisdiag> disdiags = status == 1 ?
|
|
|
dao.selectSignedSheetDiags(bah, times) : dao.getDisdiags(bah, times);
|
|
|
- if (disdiags == null) {
|
|
|
- disdiags = new ArrayList<>();
|
|
|
+ if (disdiags.isEmpty()) {
|
|
|
+ JSONArray diagList = emrService.getEmrData(bah, times, EmrType.DIAGNOSIS);
|
|
|
+ for (int i = 0; i < diagList.size(); i++) {
|
|
|
+ JSONObject diagItem = diagList.getJSONObject(i);
|
|
|
+ CaseFrontsheetDisdiag diag = dao.selectDiagInfoByCode(diagItem.getString("code"));
|
|
|
+ diag.setNo(i + 1);
|
|
|
+ disdiags.add(diag);
|
|
|
+ }
|
|
|
}
|
|
|
while (disdiags.size() < 27) {
|
|
|
disdiags.add(new CaseFrontsheetDisdiag());
|
|
@@ -360,8 +365,46 @@ public class CaseFrontSheetMainService {
|
|
|
private List<CaseFrontsheetSurgery> getSheetSurgeries(String bah, int times, int status) {
|
|
|
List<CaseFrontsheetSurgery> surgeries = status == 1 ?
|
|
|
dao.selectSignedSheetSurgeries(bah, times) : dao.getSurgeries(bah, times);
|
|
|
- if (surgeries == null) {
|
|
|
- surgeries = new ArrayList<>();
|
|
|
+ if (surgeries.isEmpty()) {
|
|
|
+ JSONArray oprtList = emrService.getEmrData(bah, times, EmrType.OPERATION);
|
|
|
+ for (int i = 0; i < oprtList.size(); i++) {
|
|
|
+ JSONObject oprtItem = oprtList.getJSONObject(i);
|
|
|
+ JSONObject oprtName = oprtItem.getJSONObject("手术名称");
|
|
|
+ if (null == oprtName) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ JSONArray oprtNameVals = oprtName.getJSONArray("value");
|
|
|
+ if (null == oprtNameVals) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ String opdate = oprtItem.getJSONObject("手术日期").getString("value");
|
|
|
+ JSONArray oprtorArr = oprtItem.getJSONObject("术者").getJSONArray("value");
|
|
|
+ JSONObject oprtor = null == oprtorArr ? new JSONObject() : oprtorArr.getJSONObject(0);
|
|
|
+
|
|
|
+ JSONArray assis1Arr = oprtItem.getJSONObject("第一助手").getJSONArray("value");
|
|
|
+ JSONObject assis1 = null == assis1Arr ? new JSONObject() : assis1Arr.getJSONObject(0);
|
|
|
+
|
|
|
+ JSONArray assis2Arr = oprtItem.getJSONObject("第二助手").getJSONArray("value");
|
|
|
+ JSONObject assis2 = null == assis2Arr ? new JSONObject() : assis2Arr.getJSONObject(0);
|
|
|
+
|
|
|
+ JSONArray anstorArr = oprtItem.getJSONObject("麻醉医生").getJSONArray("value");
|
|
|
+ JSONObject anstor = null == anstorArr ? new JSONObject() : anstorArr.getJSONObject(0);
|
|
|
+
|
|
|
+ for (int j = 0; j < oprtNameVals.size(); j++) {
|
|
|
+ JSONObject oprtCodeName = oprtNameVals.getJSONObject(j);
|
|
|
+ CaseFrontsheetSurgery surgery = dao.selectSurgeryByCode(oprtCodeName.getString("code"));
|
|
|
+ surgery.setDate(DateUtil.parse(opdate));
|
|
|
+ surgery.setOperator(oprtor.getString("code"));
|
|
|
+ surgery.setOperatorName(oprtor.getString("name"));
|
|
|
+ surgery.setAssistantOne(assis1.getString("code"));
|
|
|
+ surgery.setAssistantOneName(assis1.getString("name"));
|
|
|
+ surgery.setAssistantTwo(assis2.getString("code"));
|
|
|
+ surgery.setAssistantTwoName(assis2.getString("name"));
|
|
|
+ surgery.setAnaesthesiaor(anstor.getString("code"));
|
|
|
+ surgery.setAnaesthesiaorName(anstor.getString("name"));
|
|
|
+ surgeries.add(surgery);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
while (surgeries.size() < 5) {
|
|
|
surgeries.add(new CaseFrontsheetSurgery());
|