Index: ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/operationreservation/OperationReservation.java =================================================================== diff -u -r26785 -r33742 --- ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/operationreservation/OperationReservation.java (.../OperationReservation.java) (revision 26785) +++ ssts-basedata/src/main/java/com/forgon/disinfectsystem/entity/operationreservation/OperationReservation.java (.../OperationReservation.java) (revision 33742) @@ -86,6 +86,21 @@ * 巡回护士 */ private String circuitNurse; + + /** + * 手术次数,用于判断手术申请单是否重复提交(BJDXZLYY-30) + */ + private Integer operNum; + + /** + * 患者 ID 标识,用于判断手术申请单是否重复提交(BJDXZLYY-30) + */ + private String patientID; + + /** + * 就诊次数,用于判断手术申请单是否重复提交(BJDXZLYY-30) + */ + private Integer visitNum; public String getOperationName() { return operationName; @@ -193,7 +208,30 @@ this.patientAge = patientAge; } - + public Integer getOperNum() { + return operNum; + } + + public void setOperNum(Integer operNum) { + this.operNum = operNum; + } + + public String getPatientID() { + return patientID; + } + + public void setPatientID(String patientID) { + this.patientID = patientID; + } + + public Integer getVisitNum() { + return visitNum; + } + + public void setVisitNum(Integer visitNum) { + this.visitNum = visitNum; + } + public static final Comparator OperationReservationConsoleNameComparator = new Comparator() { @Override public int compare(OperationReservation o1, OperationReservation o2) { Index: ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/operationreservation/service/OperationReservationWebServiceImpl.java =================================================================== diff -u -r33619 -r33742 --- ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/operationreservation/service/OperationReservationWebServiceImpl.java (.../OperationReservationWebServiceImpl.java) (revision 33619) +++ ssts-webservice/src/main/java/com/forgon/disinfectsystem/webservice/operationreservation/service/OperationReservationWebServiceImpl.java (.../OperationReservationWebServiceImpl.java) (revision 33742) @@ -168,6 +168,12 @@ //住院号 String hospitalNumberXpath = rootXpath + "/s:subject/s:patient/s:id/s:item[2]/@extension"; String hospitalNumber = processDataByXpath(document, nameSpaceURIMap, hospitalNumberXpath); + //患者ID标识 + String patientIDXpath = rootXpath + "/s:subject/s:patient/s:id/s:item[3]/@extension"; + String patientID = processDataByXpath(document, nameSpaceURIMap, patientIDXpath); + //就诊次数 + String visitNumXpath = rootXpath + "/s:subject/s:patient/s:id/s:item[4]/@extension"; + String visitNum = processDataByXpath(document, nameSpaceURIMap, visitNumXpath); //病人姓名 String patientNameXpath = rootXpath + "/s:subject/s:patient/s:patientPerson/s:name/s:item/s:part/@value"; String patientName = processDataByXpath(document, nameSpaceURIMap, patientNameXpath); @@ -179,15 +185,31 @@ //手术台次 String consoleNameXpath = rootXpath + "/s:code/@value"; String consoleName = processDataByXpath(document, nameSpaceURIMap, consoleNameXpath); + //手术次数 + String operNumXpath = rootXpath + "/s:opernum/@value"; + String operNum = processDataByXpath(document, nameSpaceURIMap, operNumXpath); //备注 String remarkXpath = rootXpath + "/s:text/@value"; String remark = processDataByXpath(document, nameSpaceURIMap, remarkXpath); OperationReservation operationReservation = new OperationReservation(); - //判断手术申请单是否重复提交 - if(StringUtils.isNotBlank(scheduleId)){ - List list = objectDao.findByProperty(OperationReservation.class.getSimpleName(), "scheduleId", scheduleId); + //判断手术申请单是否重复提交(根据 患者 ID 标识、手术次数、就诊次数 判断是否重复) + String sql = ""; + if(StringUtils.isNotBlank(patientID)){ + sql += " and po.patientID = '" + patientID + "' "; + } + if(DatabaseUtil.isPoIdValid(operNum)){ + sql += " and po.operNum = " + operNum + " "; + } + if(DatabaseUtil.isPoIdValid(visitNum)){ + sql += " and po.visitNum = " + visitNum + " "; + } + if(StringUtils.isNotBlank(sql)){ + sql = String.format("select po from %s po where 1=1 %s ", + OperationReservation.class.getSimpleName(), + sql); + List list = objectDao.findByHql(sql); if(CollectionUtils.isNotEmpty(list)){ operationReservation = list.get(0); } @@ -224,6 +246,13 @@ operationReservation.setDeptName(deptName); operationReservation.setPatientName(patientName); operationReservation.setHospitalNumber(hospitalNumber); + operationReservation.setPatientID(patientID); + if(DatabaseUtil.isPoIdValid(operNum)){ + operationReservation.setOperNum(Integer.valueOf(operNum)); + } + if(DatabaseUtil.isPoIdValid(visitNum)){ + operationReservation.setVisitNum(Integer.valueOf(visitNum)); + } operationReservation.setRemark(remark); operationReservation.setSpelling(GB2Alpha.string2Alpha(depart));