|
@@ -17,6 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Component;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
|
+import java.util.Arrays;
|
|
import java.util.List;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Map;
|
|
|
|
|
|
@@ -38,12 +39,16 @@ public class FIRP0178 extends QCCatalogue {
|
|
if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getLeaveHospitalDoc() != null) {
|
|
if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getLeaveHospitalDoc() != null) {
|
|
Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
|
|
Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
|
|
List<Map<String, String>> dischargeDiag = (List) firstpageStructureMap.get(Content.dischargeDiag);
|
|
List<Map<String, String>> dischargeDiag = (List) firstpageStructureMap.get(Content.dischargeDiag);
|
|
- String opcNum = (String) firstpageStructureMap.get("门急诊诊断编码");
|
|
|
|
|
|
+ String mainDiagnosis = "";
|
|
if (ListUtil.isEmpty(dischargeDiag)) {
|
|
if (ListUtil.isEmpty(dischargeDiag)) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
+ if (dischargeDiag.get(0) != null) {
|
|
|
|
+ mainDiagnosis = dischargeDiag.get(0).get("诊断名称");
|
|
|
|
+ }
|
|
|
|
+
|
|
/* 病案首页出院小结诊断 除去主诊断*/
|
|
/* 病案首页出院小结诊断 除去主诊断*/
|
|
- List<String> firstpageLeaveDiags = getFirstPageDiag(dischargeDiag, opcNum);
|
|
|
|
|
|
+ List<String> firstpageLeaveDiags = getFirstPageDiag(dischargeDiag);
|
|
if (ListUtil.isEmpty(firstpageLeaveDiags)) {
|
|
if (ListUtil.isEmpty(firstpageLeaveDiags)) {
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -69,7 +74,17 @@ public class FIRP0178 extends QCCatalogue {
|
|
infoStr = CatalogueUtil.concatInfo(infoStr, leaveDiag);
|
|
infoStr = CatalogueUtil.concatInfo(infoStr, leaveDiag);
|
|
}
|
|
}
|
|
} else if (jsonArray.size() == 0) {
|
|
} else if (jsonArray.size() == 0) {
|
|
- infoStr = CatalogueUtil.concatInfo(infoStr, leaveDiag);
|
|
|
|
|
|
+ JSONArray jsonArr = modelAI.loadChiefPresentSimilarAI(leaveDiag, Arrays.asList(mainDiagnosis), false
|
|
|
|
+ , "diagnose", chiefPresentSimilarityServiceClient);
|
|
|
|
+ if (jsonArr.size() == 2) {
|
|
|
|
+ /* 相似度分数 */
|
|
|
|
+ double likeRate = jsonArr.getDoubleValue(1);
|
|
|
|
+ if (likeRate < 0.9) {
|
|
|
|
+ infoStr = CatalogueUtil.concatInfo(infoStr, leaveDiag);
|
|
|
|
+ }
|
|
|
|
+ } else if (jsonArray.size() == 0) {
|
|
|
|
+ infoStr = CatalogueUtil.concatInfo(infoStr, leaveDiag);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if (StringUtil.isNotBlank(infoStr)) {
|
|
if (StringUtil.isNotBlank(infoStr)) {
|
|
@@ -79,13 +94,10 @@ public class FIRP0178 extends QCCatalogue {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- private List<String> getFirstPageDiag(List<Map<String, String>> dischargeDiag, String opcNum) {
|
|
|
|
|
|
+ private List<String> getFirstPageDiag(List<Map<String, String>> dischargeDiag) {
|
|
List<String> firstpageDiag = new ArrayList<>();
|
|
List<String> firstpageDiag = new ArrayList<>();
|
|
for (int i = 0; i < dischargeDiag.size(); i++) {
|
|
for (int i = 0; i < dischargeDiag.size(); i++) {
|
|
- if ("门急诊诊断".equals(dischargeDiag.get(i).get("诊断类别"))) {
|
|
|
|
- continue;
|
|
|
|
- }
|
|
|
|
- if (StringUtil.isNotBlank(opcNum) && opcNum.contains(dischargeDiag.get(i).get("诊断编码"))) {
|
|
|
|
|
|
+ if ("主要诊断".equals(dischargeDiag.get(i).get("诊断类别"))) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
String diagnoseName = dischargeDiag.get(i).get(Content.diagnoseName);
|
|
String diagnoseName = dischargeDiag.get(i).get(Content.diagnoseName);
|