|
@@ -62,20 +62,24 @@ public class THR03016 extends QCCatalogue {
|
|
}
|
|
}
|
|
int hoursPerWeek = 3 * 24 * 60;
|
|
int hoursPerWeek = 3 * 24 * 60;
|
|
String roundRecordThisWeek = "";
|
|
String roundRecordThisWeek = "";
|
|
|
|
+ String recordDoctorThisWeek = "";
|
|
List<String> roundRecordEveryWeek = new ArrayList<>();
|
|
List<String> roundRecordEveryWeek = new ArrayList<>();
|
|
|
|
+ List<String> recordDoctorEveryWeek = new ArrayList<>();
|
|
beginDate = DateUtil.dateZeroClear(DateUtil.addDate(beginDate, 1));//从入院时间第二天0点开始算
|
|
beginDate = DateUtil.dateZeroClear(DateUtil.addDate(beginDate, 1));//从入院时间第二天0点开始算
|
|
int i = 1;
|
|
int i = 1;
|
|
String lastWardDateRange = "";
|
|
String lastWardDateRange = "";
|
|
List<String> lastWardDateRangeList = new ArrayList<>();
|
|
List<String> lastWardDateRangeList = new ArrayList<>();
|
|
//每3天的病历记录
|
|
//每3天的病历记录
|
|
while (i >= 1) {
|
|
while (i >= 1) {
|
|
- roundRecordThisWeek = extractWardRecord(inputInfo, allDoctorWradDocs, beginDate, hoursPerWeek, lastRecordDate);
|
|
|
|
|
|
+ roundRecordThisWeek = extractWardRecord(allDoctorWradDocs, beginDate, hoursPerWeek, lastRecordDate);
|
|
|
|
+ recordDoctorThisWeek = extractRecordDoctor(allDoctorWradDocs, beginDate, hoursPerWeek, lastRecordDate);
|
|
if (CatalogueUtil.isEmpty(roundRecordThisWeek)) {
|
|
if (CatalogueUtil.isEmpty(roundRecordThisWeek)) {
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
lastWardDateRange = DateUtil.formatDate(beginDate) + " -> " + DateUtil.formatDate(DateUtil.addDate(beginDate, 2));
|
|
lastWardDateRange = DateUtil.formatDate(beginDate) + " -> " + DateUtil.formatDate(DateUtil.addDate(beginDate, 2));
|
|
lastWardDateRangeList.add(lastWardDateRange);
|
|
lastWardDateRangeList.add(lastWardDateRange);
|
|
roundRecordEveryWeek.add(roundRecordThisWeek);
|
|
roundRecordEveryWeek.add(roundRecordThisWeek);
|
|
|
|
+ recordDoctorEveryWeek.add(recordDoctorThisWeek);
|
|
beginDate = DateUtil.addDate(beginDate, 3);
|
|
beginDate = DateUtil.addDate(beginDate, 3);
|
|
i++;
|
|
i++;
|
|
}
|
|
}
|
|
@@ -84,6 +88,18 @@ public class THR03016 extends QCCatalogue {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
List<String> resultInfos = new ArrayList<>();
|
|
List<String> resultInfos = new ArrayList<>();
|
|
|
|
+ for (int j = 0; j < recordDoctorEveryWeek.size(); j++) {
|
|
|
|
+ int attendNum = CatalogueUtil.appearNumber(recordDoctorEveryWeek.get(j).split(","), "F");
|
|
|
|
+ if (attendNum == 0) {
|
|
|
|
+ //每3天无1次主治医师查房记录
|
|
|
|
+ status.set("-1");
|
|
|
|
+ resultInfos.add(lastWardDateRangeList.get(j));
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (resultInfos.size() == 0) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
for (int j = 0; j < roundRecordEveryWeek.size(); j++) {
|
|
for (int j = 0; j < roundRecordEveryWeek.size(); j++) {
|
|
int attendNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), Content.attend);
|
|
int attendNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), Content.attend);
|
|
if (attendNum == 0) {
|
|
if (attendNum == 0) {
|
|
@@ -117,7 +133,7 @@ public class THR03016 extends QCCatalogue {
|
|
* @param duration
|
|
* @param duration
|
|
* @return
|
|
* @return
|
|
*/
|
|
*/
|
|
- private static String extractWardRecord(InputInfo inputInfo, List<ThreeLevelWardDoc> threeLevelWardDocs, Date admisDate, int duration, Date maxRecordDate) {
|
|
|
|
|
|
+ private static String extractWardRecord(List<ThreeLevelWardDoc> threeLevelWardDocs, Date admisDate, int duration, Date maxRecordDate) {
|
|
String recordTime = "", recordTitle = "", title = "";
|
|
String recordTime = "", recordTitle = "", title = "";
|
|
List<Date> dateList = new ArrayList();
|
|
List<Date> dateList = new ArrayList();
|
|
for (ThreeLevelWardDoc threeLevelWardDoc : threeLevelWardDocs) {
|
|
for (ThreeLevelWardDoc threeLevelWardDoc : threeLevelWardDocs) {
|
|
@@ -131,22 +147,49 @@ public class THR03016 extends QCCatalogue {
|
|
if (recordDate == null) {
|
|
if (recordDate == null) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
- /* 替换查房标题中主刀/一助的职称 */
|
|
|
|
- /*List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
|
|
|
|
- if (title.contains("主刀")) {
|
|
|
|
- String doctorTitle = CatalogueUtil.getDoctorTitle(operationDocs, recordDate, "主刀医师");
|
|
|
|
- title = title.replace("主刀", doctorTitle);
|
|
|
|
- } else if (title.contains("一助")) {
|
|
|
|
- String doctorTitle = CatalogueUtil.getDoctorTitle(operationDocs, recordDate, "一助");
|
|
|
|
- title = title.replace("一助", doctorTitle);
|
|
|
|
- }*/
|
|
|
|
if (admisDate.before(recordDate) && !CatalogueUtil.compareTime(admisDate, recordDate, Long.valueOf(duration))) {
|
|
if (admisDate.before(recordDate) && !CatalogueUtil.compareTime(admisDate, recordDate, Long.valueOf(duration))) {
|
|
recordTitle += title + ",";
|
|
recordTitle += title + ",";
|
|
dateList.add(recordDate);
|
|
dateList.add(recordDate);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (dateList.size() > 0) {
|
|
if (dateList.size() > 0) {
|
|
- //dateList.sort(Date::compareTo);
|
|
|
|
|
|
+ if (!maxRecordDate.equals(dateList.get(dateList.size() - 1)) || CatalogueUtil.compareTime(admisDate, dateList.get(dateList.size() - 1), Long.valueOf(2 * 24 * 60))) {
|
|
|
|
+ return recordTitle;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return "";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * 抽取duration分钟内所有查房标题
|
|
|
|
+ * 抽取一周内所有记录医师,若一周内记录少于2天,则返回""
|
|
|
|
+ *
|
|
|
|
+ * @param threeLevelWardDocs
|
|
|
|
+ * @param admisDate
|
|
|
|
+ * @param duration
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
|
|
+ private static String extractRecordDoctor(List<ThreeLevelWardDoc> threeLevelWardDocs, Date admisDate, int duration, Date maxRecordDate) {
|
|
|
|
+ String recordTime = "", recordTitle = "", title = "";
|
|
|
|
+ List<Date> dateList = new ArrayList();
|
|
|
|
+ for (ThreeLevelWardDoc threeLevelWardDoc : threeLevelWardDocs) {
|
|
|
|
+ Map<String, String> threeLevelWardStructureMap = threeLevelWardDoc.getStructureMap();
|
|
|
|
+ recordTime = threeLevelWardStructureMap.get("查房日期");
|
|
|
|
+ title = threeLevelWardStructureMap.get("记录医师个人职称");
|
|
|
|
+ if (StringUtil.isBlank(recordTime) || StringUtil.isBlank(title)) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ Date recordDate = StringUtil.parseDateTime(recordTime);
|
|
|
|
+ if (recordDate == null) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (admisDate.before(recordDate) && !CatalogueUtil.compareTime(admisDate, recordDate, Long.valueOf(duration))) {
|
|
|
|
+ recordTitle += title + ",";
|
|
|
|
+ dateList.add(recordDate);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if (dateList.size() > 0) {
|
|
if (!maxRecordDate.equals(dateList.get(dateList.size() - 1)) || CatalogueUtil.compareTime(admisDate, dateList.get(dateList.size() - 1), Long.valueOf(2 * 24 * 60))) {
|
|
if (!maxRecordDate.equals(dateList.get(dateList.size() - 1)) || CatalogueUtil.compareTime(admisDate, dateList.get(dateList.size() - 1), Long.valueOf(2 * 24 * 60))) {
|
|
return recordTitle;
|
|
return recordTitle;
|
|
}
|
|
}
|