|
@@ -8,12 +8,16 @@ import com.lantone.qc.pub.Content;
|
|
import com.lantone.qc.pub.model.InputInfo;
|
|
import com.lantone.qc.pub.model.InputInfo;
|
|
import com.lantone.qc.pub.model.OutputInfo;
|
|
import com.lantone.qc.pub.model.OutputInfo;
|
|
import com.lantone.qc.pub.model.doc.*;
|
|
import com.lantone.qc.pub.model.doc.*;
|
|
|
|
+import com.lantone.qc.pub.util.DateUtil;
|
|
import com.lantone.qc.pub.util.ListUtil;
|
|
import com.lantone.qc.pub.util.ListUtil;
|
|
import com.lantone.qc.pub.util.StringUtil;
|
|
import com.lantone.qc.pub.util.StringUtil;
|
|
import org.apache.commons.lang3.time.DateUtils;
|
|
import org.apache.commons.lang3.time.DateUtils;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
|
|
+import java.text.ParseException;
|
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
|
+import java.util.ArrayList;
|
|
import java.util.Date;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
@@ -44,6 +48,7 @@ public class THR03150 extends QCCatalogue {
|
|
}
|
|
}
|
|
MedicalRecordInfoDoc medicalRecordInfoDoc = inputInfo.getMedicalRecordInfoDoc();
|
|
MedicalRecordInfoDoc medicalRecordInfoDoc = inputInfo.getMedicalRecordInfoDoc();
|
|
List<String> noDeathList = Content.noDeathList;
|
|
List<String> noDeathList = Content.noDeathList;
|
|
|
|
+ List<Date> dateList = new ArrayList<>();
|
|
if(ListUtil.isNotEmpty(doctorAdviceDocs)){
|
|
if(ListUtil.isNotEmpty(doctorAdviceDocs)){
|
|
sw: for (DoctorAdviceDoc doctorAdviceDoc : doctorAdviceDocs) {
|
|
sw: for (DoctorAdviceDoc doctorAdviceDoc : doctorAdviceDocs) {
|
|
//取长期临时医嘱,不为作废医嘱
|
|
//取长期临时医嘱,不为作废医嘱
|
|
@@ -86,6 +91,9 @@ public class THR03150 extends QCCatalogue {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
Date doctorStartDate = StringUtil.parseDateTime(doctorStartTime);
|
|
Date doctorStartDate = StringUtil.parseDateTime(doctorStartTime);
|
|
|
|
+ if(null != doctorStartDate){
|
|
|
|
+ dateList.add(doctorStartDate);
|
|
|
|
+ }
|
|
//判断与出院时间是否为同一天
|
|
//判断与出院时间是否为同一天
|
|
if(medicalRecordInfoDoc!=null){
|
|
if(medicalRecordInfoDoc!=null){
|
|
//获取出院时间
|
|
//获取出院时间
|
|
@@ -131,14 +139,20 @@ public class THR03150 extends QCCatalogue {
|
|
//去【抢救记录】内找是否有包含【上级医师姓名】/【主任】字段,若无报出
|
|
//去【抢救记录】内找是否有包含【上级医师姓名】/【主任】字段,若无报出
|
|
List<RescueDoc> rescueDocs = inputInfo.getRescueDocs();
|
|
List<RescueDoc> rescueDocs = inputInfo.getRescueDocs();
|
|
if(ListUtil.isNotEmpty(rescueDocs)) {
|
|
if(ListUtil.isNotEmpty(rescueDocs)) {
|
|
|
|
+ int rescueCount = 0;
|
|
for (RescueDoc rescueDoc : rescueDocs) {
|
|
for (RescueDoc rescueDoc : rescueDocs) {
|
|
- String text = rescueDoc.getText();
|
|
|
|
- if (StringUtil.isNotBlank(text)) {
|
|
|
|
- if (text.contains("主任") || judgeContainsDoctor(text)) {
|
|
|
|
- status.set("0");
|
|
|
|
- return;
|
|
|
|
|
|
+ String rescueDateStr= rescueDoc.getStructureMap().get("抢救开始时间")+":00";
|
|
|
|
+ Date rescueDate = DateUtil.parseDateTimeSpecical(rescueDateStr);
|
|
|
|
+ if(ListUtil.isNotEmpty(dateList) && null != dateList.get(rescueCount) && CatalogueUtil.compareTime(rescueDate, dateList.get(rescueCount), 6 * 60L)){
|
|
|
|
+ String text = rescueDoc.getText();
|
|
|
|
+ if (StringUtil.isNotBlank(text)) {
|
|
|
|
+ if (text.contains("主任") || judgeContainsDoctor(text)) {
|
|
|
|
+ status.set("0");
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ rescueCount++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
//首次病程录
|
|
//首次病程录
|
|
@@ -146,7 +160,8 @@ public class THR03150 extends QCCatalogue {
|
|
if(firstCourseRecordDoc!=null){
|
|
if(firstCourseRecordDoc!=null){
|
|
String text = firstCourseRecordDoc.getText();
|
|
String text = firstCourseRecordDoc.getText();
|
|
if (StringUtil.isNotBlank(text)) {
|
|
if (StringUtil.isNotBlank(text)) {
|
|
- if (text.contains("主任") || judgeContainsDoctor(text)) {
|
|
|
|
|
|
+ String signName = firstCourseRecordDoc.getStructureMap().get("医师签名");
|
|
|
|
+ if (text.contains("主任") || judgeContainsDoctor(signName) || judgeContainsDoctor(text)) {
|
|
status.set("0");
|
|
status.set("0");
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -200,6 +215,9 @@ public class THR03150 extends QCCatalogue {
|
|
if (hospitalDoctorMap == null) {
|
|
if (hospitalDoctorMap == null) {
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
+ if (StringUtil.isBlank(string)) {
|
|
|
|
+ return false;
|
|
|
|
+ }
|
|
for (String keyStr : hospitalDoctorMap.keySet()) {
|
|
for (String keyStr : hospitalDoctorMap.keySet()) {
|
|
if (string.contains(keyStr)) {
|
|
if (string.contains(keyStr)) {
|
|
Object professor = hospitalDoctorMap.get(keyStr).get("professor");
|
|
Object professor = hospitalDoctorMap.get(keyStr).get("professor");
|