|
@@ -31,7 +31,7 @@ public class FIRC0095 extends QCCatalogue {
|
|
ChiefPresentSimilarityServiceClient chiefPresentSimilarityServiceClient;
|
|
ChiefPresentSimilarityServiceClient chiefPresentSimilarityServiceClient;
|
|
|
|
|
|
public void start(InputInfo inputInfo, OutputInfo outputInfo) {
|
|
public void start(InputInfo inputInfo, OutputInfo outputInfo) {
|
|
- if (inputInfo.getBeHospitalizedDoc() == null) {
|
|
|
|
|
|
+ if (inputInfo.getFirstCourseRecordDoc() == null) {
|
|
status.set("0");
|
|
status.set("0");
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -53,12 +53,18 @@ public class FIRC0095 extends QCCatalogue {
|
|
String lastGeneral = generals.get(generals.size() - 1).getName();
|
|
String lastGeneral = generals.get(generals.size() - 1).getName();
|
|
int lastGeneralIndex = presentText.indexOf(lastGeneral);
|
|
int lastGeneralIndex = presentText.indexOf(lastGeneral);
|
|
for (Diag presentDiag : presentDiags) {
|
|
for (Diag presentDiag : presentDiags) {
|
|
- if (presentDiag.getNegative() != null) {
|
|
|
|
|
|
+ if (presentDiag.getNegative() != null || presentDiag.getHospitalDiagName().contains("否认")) {
|
|
continue;
|
|
continue;
|
|
}
|
|
}
|
|
/* 现病史中一般情况之后的疾病名称 */
|
|
/* 现病史中一般情况之后的疾病名称 */
|
|
if (presentText.indexOf(presentDiag.getHospitalDiagName()) > lastGeneralIndex) {
|
|
if (presentText.indexOf(presentDiag.getHospitalDiagName()) > lastGeneralIndex) {
|
|
- presentPastDiags.add(presentDiag.getHospitalDiagName());
|
|
|
|
|
|
+ if (presentDiag.getHospitalDiagName().contains("心")
|
|
|
|
+ || presentDiag.getHospitalDiagName().contains("糖")
|
|
|
|
+ || presentDiag.getHospitalDiagName().contains("脑萎缩")
|
|
|
|
+ || presentDiag.getHospitalDiagName().contains("慢性")
|
|
|
|
+ || presentDiag.getHospitalDiagName().contains("血")) {
|
|
|
|
+ presentPastDiags.add(presentDiag.getHospitalDiagName());
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
@@ -72,8 +78,9 @@ public class FIRC0095 extends QCCatalogue {
|
|
/* 取初步诊断中疾病名称 */
|
|
/* 取初步诊断中疾病名称 */
|
|
List<String> initDiags = new ArrayList<>();
|
|
List<String> initDiags = new ArrayList<>();
|
|
List<Diag> initialDiagDiags = initialDiagLabel.getDiags();
|
|
List<Diag> initialDiagDiags = initialDiagLabel.getDiags();
|
|
- addDiagHospitalName(initDiags, initialDiagDiags);
|
|
|
|
|
|
+ addInitDiagHospitalName(initDiags, initialDiagDiags);
|
|
|
|
|
|
|
|
+ String infoStr = "";
|
|
int matchSum = 0;
|
|
int matchSum = 0;
|
|
ModelAI modelAI = new ModelAI();
|
|
ModelAI modelAI = new ModelAI();
|
|
for (String presentPastDiag : presentPastDiags) {
|
|
for (String presentPastDiag : presentPastDiags) {
|
|
@@ -84,11 +91,16 @@ public class FIRC0095 extends QCCatalogue {
|
|
String symptom = jsonArray.getString(0);
|
|
String symptom = jsonArray.getString(0);
|
|
/* 相似度分数 */
|
|
/* 相似度分数 */
|
|
double likeRate = jsonArray.getDoubleValue(1);
|
|
double likeRate = jsonArray.getDoubleValue(1);
|
|
- if (likeRate > 0.9) {
|
|
|
|
|
|
+ if (likeRate > 0.85) {
|
|
matchSum++;
|
|
matchSum++;
|
|
|
|
+ } else {
|
|
|
|
+ infoStr = concatInfo(infoStr, presentPastDiag);
|
|
}
|
|
}
|
|
|
|
+ } else {
|
|
|
|
+ infoStr = concatInfo(infoStr, presentPastDiag);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ info.set(infoStr);
|
|
if (matchSum == presentPastDiags.size()) {
|
|
if (matchSum == presentPastDiags.size()) {
|
|
status.set("0");
|
|
status.set("0");
|
|
}
|
|
}
|
|
@@ -99,7 +111,33 @@ public class FIRC0095 extends QCCatalogue {
|
|
*/
|
|
*/
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private String concatInfo(String infoStr, String presentPastDiag) {
|
|
|
|
+ if (StringUtil.isBlank(infoStr)) {
|
|
|
|
+ infoStr += presentPastDiag;
|
|
|
|
+ } else {
|
|
|
|
+ if (!infoStr.contains(presentPastDiag)) {
|
|
|
|
+ infoStr += "," + presentPastDiag;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return infoStr;
|
|
|
|
+ }
|
|
|
|
+
|
|
private void addDiagHospitalName(List<String> presentPastDiag, List<Diag> pastDiags) {
|
|
private void addDiagHospitalName(List<String> presentPastDiag, List<Diag> pastDiags) {
|
|
|
|
+ for (Diag pastDiag : pastDiags) {
|
|
|
|
+ if (pastDiag.getNegative() != null) {
|
|
|
|
+ continue;
|
|
|
|
+ }
|
|
|
|
+ if (pastDiag.getHospitalDiagName().contains("心")
|
|
|
|
+ || pastDiag.getHospitalDiagName().contains("糖")
|
|
|
|
+ || pastDiag.getHospitalDiagName().contains("脑萎缩")
|
|
|
|
+ || pastDiag.getHospitalDiagName().contains("慢性")
|
|
|
|
+ || pastDiag.getHospitalDiagName().contains("血")) {
|
|
|
|
+ presentPastDiag.add(pastDiag.getHospitalDiagName());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ private void addInitDiagHospitalName(List<String> presentPastDiag, List<Diag> pastDiags) {
|
|
for (Diag pastDiag : pastDiags) {
|
|
for (Diag pastDiag : pastDiags) {
|
|
if (pastDiag.getNegative() != null) {
|
|
if (pastDiag.getNegative() != null) {
|
|
continue;
|
|
continue;
|