|
@@ -9,16 +9,12 @@ import com.lantone.qc.kernel.util.CatalogueUtil;
|
|
|
import com.lantone.qc.pub.Content;
|
|
|
import com.lantone.qc.pub.model.InputInfo;
|
|
|
import com.lantone.qc.pub.model.OutputInfo;
|
|
|
-import com.lantone.qc.pub.model.entity.Diag;
|
|
|
-import com.lantone.qc.pub.model.label.DiagLabel;
|
|
|
import com.lantone.qc.pub.util.ListUtil;
|
|
|
import com.lantone.qc.pub.util.StringUtil;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Component;
|
|
|
|
|
|
-import java.lang.reflect.Array;
|
|
|
import java.util.ArrayList;
|
|
|
-import java.util.Arrays;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
|
|
@@ -38,14 +34,15 @@ public class FIRP0178 extends QCCatalogue {
|
|
|
public void start(InputInfo inputInfo, OutputInfo outputInfo) {
|
|
|
status.set("0");
|
|
|
if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getLeaveHospitalDoc() != null) {
|
|
|
+ String mainDiagnosis = "";
|
|
|
Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
|
|
|
List<Map<String, String>> dischargeDiag = (List) firstpageStructureMap.get(Content.dischargeDiag);
|
|
|
if (ListUtil.isEmpty(dischargeDiag)) {
|
|
|
return;
|
|
|
}
|
|
|
-// if (dischargeDiag.get(0) != null) {
|
|
|
-// mainDiagnosis = dischargeDiag.get(0).get("诊断名称");
|
|
|
-// }
|
|
|
+ if (dischargeDiag.get(0) != null) {
|
|
|
+ mainDiagnosis = dischargeDiag.get(0).get("诊断名称");
|
|
|
+ }
|
|
|
|
|
|
/* 病案首页出院小结诊断 除去主诊断*/
|
|
|
List<String> firstpageLeaveDiags = getFirstPageDiag(dischargeDiag);
|
|
@@ -61,9 +58,9 @@ public class FIRP0178 extends QCCatalogue {
|
|
|
List<String> leaveDiagsStr = putDiagToList(leaveDiags);*/
|
|
|
//出院小结得出院诊断,模型提取出现问题,需要手动以1.2.3.为界限切开
|
|
|
Map<String, String> leavehospitalStructureMap = inputInfo.getLeaveHospitalDoc().getStructureMap();
|
|
|
- List<String> leaveDiagsStr = new ArrayList<>();
|
|
|
- String leavediag = leavehospitalStructureMap.get("出院诊断");
|
|
|
- leaveDiagsStr = cut(leaveDiagsStr, leavediag);
|
|
|
+
|
|
|
+ String leaveDiag = leavehospitalStructureMap.get("出院诊断");
|
|
|
+ List<String> leaveDiagsStr = cut(leaveDiag, mainDiagnosis);
|
|
|
|
|
|
/* 修改为疾病相似度模型 */
|
|
|
ModelAI modelAI = new ModelAI();
|
|
@@ -107,26 +104,34 @@ public class FIRP0178 extends QCCatalogue {
|
|
|
return firstpageDiag;
|
|
|
}
|
|
|
|
|
|
- private List<String> putDiagToList(List<Diag> diagList) {
|
|
|
- List<String> diags = new ArrayList<>();
|
|
|
- for (Diag diag : diagList) {
|
|
|
- // 去重
|
|
|
- if (!diags.contains(diag.getHospitalDiagName())) {
|
|
|
- diags.add(diag.getHospitalDiagName());
|
|
|
- }
|
|
|
- }
|
|
|
- return diags;
|
|
|
- }
|
|
|
+// private List<String> putDiagToList(List<Diag> diagList) {
|
|
|
+// List<String> diags = new ArrayList<>();
|
|
|
+// for (Diag diag : diagList) {
|
|
|
+// // 去重
|
|
|
+// if (!diags.contains(diag.getHospitalDiagName())) {
|
|
|
+// diags.add(diag.getHospitalDiagName());
|
|
|
+// }
|
|
|
+// }
|
|
|
+// return diags;
|
|
|
+// }
|
|
|
|
|
|
- private List<String> cut(List<String> leaveDiagsStr, String leavediag) {
|
|
|
- if (leavediag != null) {
|
|
|
- String[] leavediags = leavediag.split(",?,?[0-9]\\.");
|
|
|
- for (String string : leavediags) {
|
|
|
+ private List<String> cut(String leaveDiag, String mainDiagnosis) {
|
|
|
+ List<String> diags = new ArrayList<>();
|
|
|
+ if (leaveDiag != null) {
|
|
|
+ String[] leaveDiags = leaveDiag.split(",?,?[0-9]\\.");
|
|
|
+ for (String string : leaveDiags) {
|
|
|
if (!string.isEmpty()) {
|
|
|
- leaveDiagsStr.add(string);
|
|
|
+ if (string.equals(mainDiagnosis)) {
|
|
|
+ diags.add(0, string);
|
|
|
+ } else {
|
|
|
+ // 去重
|
|
|
+ if (!diags.contains(string)) {
|
|
|
+ diags.add(string);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- return leaveDiagsStr;
|
|
|
+ return diags;
|
|
|
}
|
|
|
}
|