|
@@ -7,6 +7,7 @@ import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
|
|
|
import com.lantone.qc.pub.model.doc.ThreeLevelWardDoc;
|
|
|
import com.lantone.qc.pub.model.doc.operation.OperationDoc;
|
|
|
import com.lantone.qc.pub.model.doc.operation.OperationRecordDoc;
|
|
|
+import com.lantone.qc.pub.util.DateUtil;
|
|
|
import com.lantone.qc.pub.util.StringUtil;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
@@ -30,7 +31,7 @@ public class PRE0328 extends QCCatalogue {
|
|
|
/**
|
|
|
* 1:入院记录【现病史】包含".*急诊.*术.*|.*急症.*术.*"不报错。
|
|
|
* 2:如果术前讨论、术前小结次数条数为0 且 (首次病程录【诊疗计划】或查房记录【病情记录】包含急诊手术——".*急诊.*术.*|.*急症.*术.*"),则术前讨论、术前小结次数+1。
|
|
|
- * 3:如果手术记录次数(第一次手术的开始至截止时间内有其他手术不算次数) 大于 术前讨论、术前小结次数,则出错
|
|
|
+ * 3:如果手术记录次数(第一次手术的日期内有其他手术不算次数) 大于 术前讨论、术前小结次数,则出错
|
|
|
*/
|
|
|
status.set("0");
|
|
|
List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
|
|
@@ -111,29 +112,23 @@ public class PRE0328 extends QCCatalogue {
|
|
|
}
|
|
|
Map<String, String> structureMap = operationRecordDoc.getStructureMap();
|
|
|
String operationStartDateStr = structureMap.get("手术开始时间");
|
|
|
- String operationEndDateStr = structureMap.get("手术结束时间");
|
|
|
- if (StringUtil.isNotBlank(operationStartDateStr) && StringUtil.isNotBlank(operationEndDateStr)) {
|
|
|
+ // String operationEndDateStr = structureMap.get("手术结束时间");
|
|
|
+ if (StringUtil.isNotBlank(operationStartDateStr)) {
|
|
|
Date operationStartDate = StringUtil.parseDateTime(operationStartDateStr);
|
|
|
- Date operationEndDate = StringUtil.parseDateTime(operationEndDateStr);
|
|
|
- if (operationStartDate != null && operationEndDate != null) {
|
|
|
- /* 放第一个手术记录的时间到operationDateList */
|
|
|
+ operationStartDate = DateUtil.dateZeroClear(operationStartDate);
|
|
|
+ if (operationStartDate != null) {
|
|
|
+ /* 放第一个手术记录的日期到operationDateList */
|
|
|
if (operationDateList.size() == 0) {
|
|
|
operationDate = new HashMap<>();
|
|
|
operationDate.put("手术开始时间", operationStartDate);
|
|
|
- operationDate.put("手术结束时间", operationEndDate);
|
|
|
operationDateList.add(operationDate);
|
|
|
continue;
|
|
|
}
|
|
|
/* 如果其中一个手术记录的开始时间到结束时间之间还包含另一个手术,就不往operationDateList里加 */
|
|
|
boolean findInnerOperation = false;
|
|
|
for (Map<String, Date> date : operationDateList) {
|
|
|
- Date listStartDate = date.get("手术开始时间");
|
|
|
- Date listEndDate = date.get("手术结束时间");
|
|
|
- if (operationStartDate.before(listStartDate) && listEndDate.before(operationEndDate)){
|
|
|
- date.put("手术开始时间", operationStartDate);
|
|
|
- date.put("手术结束时间", operationEndDate);
|
|
|
- }
|
|
|
- if (listStartDate.before(operationStartDate) && operationEndDate.before(listEndDate)) {
|
|
|
+ Date listStartDate = DateUtil.dateZeroClear(date.get("手术开始时间"));
|
|
|
+ if (listStartDate.equals(operationStartDate)) {
|
|
|
findInnerOperation = true;
|
|
|
break;
|
|
|
}
|
|
@@ -141,7 +136,6 @@ public class PRE0328 extends QCCatalogue {
|
|
|
if (!findInnerOperation) {
|
|
|
operationDate = new HashMap<>();
|
|
|
operationDate.put("手术开始时间", operationStartDate);
|
|
|
- operationDate.put("手术结束时间", operationEndDate);
|
|
|
operationDateList.add(operationDate);
|
|
|
}
|
|
|
}
|