Merge remote-tracking branch 'origin/dev' into dev

# Conflicts:
#	virtual-patient-rasa/src/main/java/com/superversion/rasa/service/impl/RasaCmdServiceImpl.java
dev_v1.0.1
xueqingkun 2 years ago
commit e1ab5e3d7a

@ -25,6 +25,11 @@ public class Disease implements Serializable {
@TableId @TableId
private String id; private String id;
/**
*
*/
private String diseaseName;
/** /**
* *
*/ */
@ -37,11 +42,6 @@ public class Disease implements Serializable {
@ApiModelProperty("状态 0未训练 1已训练") @ApiModelProperty("状态 0未训练 1已训练")
private Integer status; private Integer status;
/**
*
*/
@ApiModelProperty("预期诊断结果")
private String expectedDiagnosisResult;
/** /**
* *
@ -61,11 +61,6 @@ public class Disease implements Serializable {
@ApiModelProperty("鉴别依据") @ApiModelProperty("鉴别依据")
private String basisIdentification; private String basisIdentification;
/**
*
*/
@ApiModelProperty("治疗计划")
private String diseaseTreatmentPlan;
/** /**
* *

@ -71,6 +71,18 @@ public class Patient implements Serializable {
@TableField(typeHandler = StringListTypeHandler.class) @TableField(typeHandler = StringListTypeHandler.class)
private List<String> diseaseList; private List<String> diseaseList;
/**
*
*/
@ApiModelProperty("预期诊断结果")
private String expectedDiagnosisResult;
/**
*
*/
@ApiModelProperty("治疗计划")
private String diseaseTreatmentPlan;
/** /**
* ID * ID
*/ */

@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable; import java.io.Serializable;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;

@ -7,12 +7,11 @@
<resultMap id="BaseResultMap" type="com.supervision.model.Disease"> <resultMap id="BaseResultMap" type="com.supervision.model.Disease">
<id property="id" column="id" jdbcType="VARCHAR"/> <id property="id" column="id" jdbcType="VARCHAR"/>
<result property="code" column="code" jdbcType="VARCHAR"/> <result property="code" column="code" jdbcType="VARCHAR"/>
<result property="diseaseName" column="disease_name" jdbcType="VARCHAR"/>
<result property="status" column="status" jdbcType="INTEGER"/> <result property="status" column="status" jdbcType="INTEGER"/>
<result property="expectedDiagnosisResult" column="expected_diagnosis_result" jdbcType="VARCHAR"/>
<result property="preliminaryDiagnosis" column="preliminary_diagnosis" jdbcType="VARCHAR"/> <result property="preliminaryDiagnosis" column="preliminary_diagnosis" jdbcType="VARCHAR"/>
<result property="confirmingDiagnosis" column="confirming_diagnosis" jdbcType="VARCHAR"/> <result property="confirmingDiagnosis" column="confirming_diagnosis" jdbcType="VARCHAR"/>
<result property="basisIdentification" column="basis_identification" jdbcType="VARCHAR"/> <result property="basisIdentification" column="basis_identification" jdbcType="VARCHAR"/>
<result property="diseaseTreatmentPlan" column="disease_treatment_plan" jdbcType="VARCHAR"/>
<result property="other" column="other" jdbcType="VARCHAR"/> <result property="other" column="other" jdbcType="VARCHAR"/>
<result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/> <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
@ -21,7 +20,7 @@
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id id,disease_name
,code,status, ,code,status,
expected_diagnosis_result,preliminary_diagnosis,confirming_diagnosis, expected_diagnosis_result,preliminary_diagnosis,confirming_diagnosis,
basis_identification,disease_treatment_plan,other,create_user_id, basis_identification,disease_treatment_plan,other,create_user_id,

@ -14,6 +14,8 @@
<result property="weight" column="weight" jdbcType="DECIMAL"/> <result property="weight" column="weight" jdbcType="DECIMAL"/>
<result property="diseaseList" jdbcType="ARRAY" column="disease_list" <result property="diseaseList" jdbcType="ARRAY" column="disease_list"
typeHandler="com.supervision.handler.StringListTypeHandler"/> typeHandler="com.supervision.handler.StringListTypeHandler"/>
<result property="expectedDiagnosisResult" column="expected_diagnosis_result" jdbcType="VARCHAR"/>
<result property="diseaseTreatmentPlan" column="disease_treatment_plan" jdbcType="VARCHAR"/>
<result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/> <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/>
<result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
<result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/> <result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/>

@ -9,12 +9,12 @@
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
</parent> </parent>
<groupId>com.superversion</groupId>
<artifactId>virtual-patient-rasa</artifactId> <artifactId>virtual-patient-rasa</artifactId>
<name>virtual-patient-rasa</name>
<description>virtual-patient-rasa</description>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>virtual-patient-rasa</name>
<properties> <properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>

@ -1,4 +1,4 @@
package com.supervision; package com.superversion.rasa;
import com.supervision.config.WebConfig; import com.supervision.config.WebConfig;
import org.mybatis.spring.annotation.MapperScan; import org.mybatis.spring.annotation.MapperScan;
@ -9,7 +9,7 @@ import org.springframework.context.annotation.FilterType;
@SpringBootApplication @SpringBootApplication
@MapperScan(basePackages = {"com.supervision.**.mapper"}) @MapperScan(basePackages = {"com.supervision.**.mapper"})
@ComponentScan(basePackages = {"com.supervision"},excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {WebConfig.class})) @ComponentScan(basePackages = {"com.superversion"},excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = {WebConfig.class}))
public class VirtualPatientRasaApplication { public class VirtualPatientRasaApplication {
public static void main(String[] args) { public static void main(String[] args) {

@ -1,4 +1,4 @@
package com.supervision.rasa.config; package com.superversion.rasa.config;
import java.util.concurrent.*; import java.util.concurrent.*;

@ -1,8 +1,8 @@
package com.supervision.rasa.controller; package com.superversion.rasa.controller;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.supervision.rasa.pojo.vo.RasaArgument; import com.superversion.rasa.pojo.vo.RasaArgument;
import com.supervision.rasa.service.RasaCmdService; import com.superversion.rasa.service.RasaCmdService;
import com.supervision.exception.BusinessException; import com.supervision.exception.BusinessException;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.io.*; import java.io.*;
import java.net.ServerSocket;
import java.util.concurrent.*; import java.util.concurrent.*;
@Api(tags = "rasa文件保存") @Api(tags = "rasa文件保存")

@ -1,7 +1,7 @@
package com.supervision.rasa.controller; package com.superversion.rasa.controller;
import com.supervision.rasa.service.RasaFileService; import com.superversion.rasa.service.RasaFileService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@ -9,7 +9,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.util.UUID;
@Api(tags = "rasa文件保存") @Api(tags = "rasa文件保存")
@RestController @RestController

@ -1,6 +1,6 @@
package com.supervision.rasa.controller; package com.superversion.rasa.controller;
import com.supervision.rasa.service.RasaTalkService; import com.superversion.rasa.service.RasaTalkService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;

@ -1,4 +1,4 @@
package com.supervision.rasa.pojo.dto; package com.superversion.rasa.pojo.dto;
import lombok.Data; import lombok.Data;

@ -1,4 +1,4 @@
package com.supervision.rasa.pojo.dto; package com.superversion.rasa.pojo.dto;
import lombok.Data; import lombok.Data;

@ -1,4 +1,4 @@
package com.supervision.rasa.pojo.vo; package com.superversion.rasa.pojo.vo;
import lombok.Data; import lombok.Data;

@ -1,6 +1,6 @@
package com.supervision.rasa.service; package com.superversion.rasa.service;
import com.supervision.rasa.pojo.vo.RasaArgument; import com.superversion.rasa.pojo.vo.RasaArgument;
import java.io.IOException; import java.io.IOException;
import java.util.concurrent.ExecutionException; import java.util.concurrent.ExecutionException;

@ -1,4 +1,4 @@
package com.supervision.rasa.service; package com.superversion.rasa.service;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;

@ -1,4 +1,4 @@
package com.supervision.rasa.service; package com.superversion.rasa.service;
import java.util.List; import java.util.List;

@ -3,6 +3,10 @@ package com.supervision.rasa.service.impl;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.collection.ListUtil; import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.superversion.rasa.config.ThreadPoolExecutorConfig;
import com.superversion.rasa.pojo.vo.RasaArgument;
import com.superversion.rasa.service.RasaCmdService;
import com.supervision.model.RasaModelInfo;
import com.supervision.model.RasaModelInfo; import com.supervision.model.RasaModelInfo;
import com.supervision.rasa.config.ThreadPoolExecutorConfig; import com.supervision.rasa.config.ThreadPoolExecutorConfig;
import com.supervision.rasa.pojo.vo.RasaArgument; import com.supervision.rasa.pojo.vo.RasaArgument;
@ -10,8 +14,11 @@ import com.supervision.rasa.service.RasaCmdService;
import com.supervision.model.User; import com.supervision.model.User;
import com.supervision.service.RasaModeService; import com.supervision.service.RasaModeService;
import com.supervision.service.UserService; import com.supervision.service.UserService;
import com.supervision.service.impl.UserServiceImpl;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.omg.CORBA.TRANSACTION_MODE;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -100,6 +107,13 @@ public class RasaCmdServiceImpl implements RasaCmdService {
return String.join("\r\n",execCmd(cmds,s-> StrUtil.isNotBlank(s)&& s.contains("Rasa server is up and running"),90)); return String.join("\r\n",execCmd(cmds,s-> StrUtil.isNotBlank(s)&& s.contains("Rasa server is up and running"),90));
} }
@Override
public void test() {
List<User> list = userService.list();
//RasaModelInfo rasaModelInfo = rasaModeService.queryByModelId("1");
System.out.println(list);
}
private List<String> execCmd(List<String> cmds, Predicate<String> endPredicate, long timeOut) throws InterruptedException, ExecutionException, TimeoutException { private List<String> execCmd(List<String> cmds, Predicate<String> endPredicate, long timeOut) throws InterruptedException, ExecutionException, TimeoutException {

@ -1,8 +1,8 @@
package com.supervision.rasa.service.impl; package com.superversion.rasa.service.impl;
import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.ZipUtil; import cn.hutool.core.util.ZipUtil;
import com.supervision.rasa.service.RasaFileService; import com.superversion.rasa.service.RasaFileService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;

@ -1,10 +1,10 @@
package com.supervision.rasa.service.impl; package com.superversion.rasa.service.impl;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import com.supervision.rasa.pojo.dto.RasaReqDTO; import com.superversion.rasa.pojo.dto.RasaReqDTO;
import com.supervision.rasa.pojo.dto.RasaResDTO; import com.superversion.rasa.pojo.dto.RasaResDTO;
import com.supervision.rasa.service.RasaTalkService; import com.superversion.rasa.service.RasaTalkService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;

@ -1,9 +1,12 @@
package com.supervision.rasa.util; package com.superversion.rasa.util;
import jdk.nashorn.internal.runtime.regexp.JoniRegExp;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import java.io.IOException; import java.io.IOException;
import java.net.Socket; import java.net.Socket;
import java.util.TreeMap;
import java.util.function.Predicate;
@Slf4j @Slf4j
public class PortUtil { public class PortUtil {

@ -1,4 +1,4 @@
package com.supervision.rasa; package com.superversion.rasa;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;

@ -1,10 +1,15 @@
package com.supervision.controller; package com.supervision.controller;
import cn.hutool.core.collection.ListUtil; import cn.hutool.core.collection.ListUtil;
import cn.hutool.core.lang.hash.Hash;
import cn.hutool.crypto.digest.MD5;
import cn.hutool.extra.pinyin.PinyinUtil; import cn.hutool.extra.pinyin.PinyinUtil;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil; import cn.hutool.json.JSONUtil;
import cn.hutool.poi.excel.ExcelReader; import cn.hutool.poi.excel.ExcelReader;
import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelUtil;
import com.supervision.exception.BusinessException;
import com.supervision.model.AskDiseaseQuestionAnswer; import com.supervision.model.AskDiseaseQuestionAnswer;
import com.supervision.model.AskTemplateQuestion; import com.supervision.model.AskTemplateQuestion;
import com.supervision.model.ConfigPhysicalTool; import com.supervision.model.ConfigPhysicalTool;
@ -13,12 +18,9 @@ import com.supervision.service.AskTemplateQuestionService;
import com.supervision.service.ConfigPhysicalToolService; import com.supervision.service.ConfigPhysicalToolService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List; import java.util.*;
@RestController @RestController
@RequestMapping("test") @RequestMapping("test")
@ -37,6 +39,64 @@ public class TestController {
return configPhysicalToolService.list(); return configPhysicalToolService.list();
} }
/**
*
* @param key ID,
* @param token ,UUID
* @return
*/
@GetMapping("queryRoomId")
public String queryRoomId(String key,String token){
Map<String, Object> param = new HashMap<>();
param.put("token",token);
param.put("key",key);
String s = HttpUtil.get("https://digital-human.jd.com/getRoomId", param);
JSONObject entries = JSONUtil.parseObj(s);
if (200 != entries.getInt("code")){
throw new BusinessException(entries.getStr("data"));
}
return entries.getStr("data");
}
/**
*
* @param text
* @param roomId ID
*/
@GetMapping("shuZiRenSend")
public void shuZiRenSend(String text, String roomId) {
HashMap<String, Object> param = new HashMap<>();
long timeStamp = System.currentTimeMillis();
param.put("text", text);
param.put("roomId", roomId);
param.put("action", "-1");
param.put("nonce", UUID.randomUUID().toString());
param.put("timeStamp", String.valueOf(timeStamp));
param.put("sign", getSign(String.valueOf(timeStamp),
(String) param.get("nonce"),
(String) param.get("text"),
(String) param.get("actionId"),
(String) param.get("roomId")));
String s = HttpUtil.get("https://digital-human.jd.com/text_driven", param);
System.out.println(s);
}
private static String getSign(String timeStamp, String nonce, String text, String actionId, String roomId) {
Map<String, Object> paramMap = new TreeMap<>();
paramMap.put("action", actionId);
paramMap.put("nonce", nonce);
paramMap.put("roomId", roomId);
paramMap.put("text", text);
paramMap.put("timeStamp", timeStamp);
String paramJsonString = JSONUtil.toJsonStr(paramMap);
System.out.println(paramJsonString);
String signServer = new MD5().digestHex16(paramJsonString);
System.out.println("---------> :" + signServer);
return signServer;
}
@PostMapping("saveQuestion") @PostMapping("saveQuestion")
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void saveQuestion() { public void saveQuestion() {

@ -1,9 +1,18 @@
package com.supervision.pojo.vo; package com.supervision.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.util.List;
@Data @Data
public class BasisIdentificationResultResVO { public class BasisIdentificationResultResVO {
@ApiModelProperty("证实诊断依据")
private String identificationDiagnosis;
@ApiModelProperty("证实诊断列表")
private List<BasisDiagnosisNodeResVO> nodeList;
} }

@ -9,9 +9,9 @@ import java.util.List;
public class BasisPrimaryResultResVO { public class BasisPrimaryResultResVO {
@ApiModelProperty("初步诊断依据") @ApiModelProperty("初步诊断依据-每一种病都有一种初步诊断依据-vp_disease疾病表中的preliminary_diagnosis")
private String preliminaryDiagnosis; private List<String> preliminaryDiagnosis;
@ApiModelProperty("初步诊断依据列表") @ApiModelProperty("初步诊断依据列表-医生做的某些操作项,require_check=1")
private List<BasisDiagnosisNodeResVO> nodeList; private List<BasisDiagnosisNodeResVO> nodeList;
} }

@ -1,7 +1,17 @@
package com.supervision.pojo.vo; package com.supervision.pojo.vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@Data @Data
public class DealPlanResVO { public class DealPlanResVO {
@ApiModelProperty("用户的治疗计划类型(0门诊 1住院)")
private Integer userTreatmentPlanType;
@ApiModelProperty("用户的治疗计划")
private String userTreatmentPlan;
@ApiModelProperty("治疗计划")
private String realTreatmentPlan;
} }

@ -15,7 +15,7 @@ public class DiagnosisDiseaseResultNodeVO {
private Integer correct; private Integer correct;
@ApiModelProperty("疾病ID") @ApiModelProperty("疾病ID")
private Integer diseaseId; private String diseaseId;
} }

@ -20,7 +20,7 @@ public class DiagnosisResultResVO {
@ApiModelProperty("鉴别诊断依据") @ApiModelProperty("鉴别诊断依据")
private BasisIdentificationResultResVO basisIdentificationResult; private BasisIdentificationResultResVO basisIdentificationResult;
@ApiModelProperty("全面检查") @ApiModelProperty("全面检查-(暂无相关数据)")
private FullCheckResVO fullCheck; private FullCheckResVO fullCheck;
@ApiModelProperty("处置方案") @ApiModelProperty("处置方案")

@ -1,4 +1,6 @@
package com.supervision.pojo.vo; package com.supervision.pojo.vo;
public class FullCheckResVO { public class FullCheckResVO {
private String desc;
} }

@ -1,18 +1,19 @@
package com.supervision.service.impl; package com.supervision.service.impl;
import com.supervision.model.DiagnosisPrimary; import com.supervision.exception.BusinessException;
import com.supervision.model.DiagnosisResult; import com.supervision.model.*;
import com.supervision.pojo.vo.DiagnosisResultResVO; import com.supervision.model.Process;
import com.supervision.pojo.vo.FinishAskReqVO; import com.supervision.pojo.vo.*;
import com.supervision.service.AskDiagnosisResultService; import com.supervision.service.*;
import com.supervision.service.DiagnosisPrimaryService;
import com.supervision.service.DiagnosisResultService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set;
import java.util.UUID;
import java.util.stream.Collectors; import java.util.stream.Collectors;
@Service @Service
@ -23,6 +24,12 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
private final DiagnosisPrimaryService diagnosisPrimaryService; private final DiagnosisPrimaryService diagnosisPrimaryService;
private final ProcessService processService;
private final PatientService patientService;
private final DiseaseService diseaseService;
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void finishAsk(FinishAskReqVO reqVO) { public void finishAsk(FinishAskReqVO reqVO) {
@ -32,7 +39,7 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
// 最终诊断结果,从初步诊断中获取 // 最终诊断结果,从初步诊断中获取
List<DiagnosisPrimary> list = diagnosisPrimaryService.lambdaQuery() List<DiagnosisPrimary> list = diagnosisPrimaryService.lambdaQuery()
.eq(DiagnosisPrimary::getProcessId, reqVO.getProcessId()) .eq(DiagnosisPrimary::getProcessId, reqVO.getProcessId())
.eq(DiagnosisPrimary::getDeleteFlag,0) .eq(DiagnosisPrimary::getDeleteFlag, 0)
.list(); .list();
diagnosisResult.setFinalDiagnosis(list.stream().map(DiagnosisPrimary::getPrimaryDiagnosisId).collect(Collectors.toList())); diagnosisResult.setFinalDiagnosis(list.stream().map(DiagnosisPrimary::getPrimaryDiagnosisId).collect(Collectors.toList()));
diagnosisResult.setTreatmentPlanType(reqVO.getTreatmentPlanType()); diagnosisResult.setTreatmentPlanType(reqVO.getTreatmentPlanType());
@ -42,7 +49,58 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService
@Override @Override
public DiagnosisResultResVO queryDiagnosisResult(String processId) { public DiagnosisResultResVO queryDiagnosisResult(String processId) {
// 首先查询到结果
DiagnosisResult diagnosisResult = diagnosisResultService.lambdaQuery()
.eq(DiagnosisResult::getProcessId, processId).last("limit 1").oneOpt().orElseThrow(() -> new BusinessException("未找到评估结果"));
DiagnosisResultResVO diagnosisResultResVO = new DiagnosisResultResVO();
diagnosisResultResVO.setId(processId);
Process process = processService.getById(processId);
Patient patient = patientService.getById(process.getPatientId());
List<Disease> diseasesList = diseaseService.listByIds(patient.getDiseaseList());
// 1.生成预期诊断结果
ExpertDiagnosisResultResVO expertDiagnosisResultResVO = creatExpertDiagnosisResult(diagnosisResult, patient, diseasesList);
diagnosisResultResVO.setExpertDiagnosisResult(expertDiagnosisResultResVO);
// 2.生成初步诊断依据
BasisPrimaryResultResVO basisPrimaryResultResVO = new BasisPrimaryResultResVO();
basisPrimaryResultResVO.setPreliminaryDiagnosis(diseasesList.stream().map(Disease::getPreliminaryDiagnosis).collect(Collectors.toList()));
// 根据record记录寻找符合初步诊断依据的项目
// basisPrimaryResultResVO.setNodeList();
//
//
// diagnosisResultResVO.setBasisPrimaryResultResVO();
// diagnosisResultResVO.setBasisConfirmResultResVO();
// diagnosisResultResVO.setBasisIdentificationResult();
// diagnosisResultResVO.setFullCheck();
// diagnosisResultResVO.setDealPlan();
return null; return null;
} }
private ExpertDiagnosisResultResVO creatExpertDiagnosisResult(DiagnosisResult diagnosisResult, Patient patient, List<Disease> diseasesList) {
ExpertDiagnosisResultResVO expertDiagnosisResultResVO = new ExpertDiagnosisResultResVO();
expertDiagnosisResultResVO.setDiagnosis(patient.getExpectedDiagnosisResult());
Set<String> expertDiseaseIdSet = diseasesList.stream().map(Disease::getId).collect(Collectors.toSet());
List<Disease> userDiagnosisDiseaseList = diseaseService.listByIds(diagnosisResult.getFinalDiagnosis());
// 用户的诊断
expertDiagnosisResultResVO.setUserDiagnosisResult(userDiagnosisDiseaseList.stream().map(e -> {
DiagnosisDiseaseResultNodeVO userNode = new DiagnosisDiseaseResultNodeVO();
userNode.setDiseaseName(e.getDiseaseName());
// 如果用户诊断在预期诊断里面,则正确,否则错误
userNode.setCorrect(expertDiseaseIdSet.contains(e.getId()) ? 1 : 0);
userNode.setDiseaseId(e.getId());
return userNode;
}).collect(Collectors.toList()));
// 预期诊断
expertDiagnosisResultResVO.setExpertDiagnosisResult(diseasesList.stream().map(e -> {
DiagnosisDiseaseResultNodeVO node = new DiagnosisDiseaseResultNodeVO();
node.setDiseaseName(e.getDiseaseName());
node.setDiseaseId(e.getId());
return node;
}).collect(Collectors.toList()));
return expertDiagnosisResultResVO;
}
} }

@ -0,0 +1,28 @@
recipe: default.v1
language: zh
pipeline:
- name: JiebaTokenizer
- name: LanguageModelFeaturizer
model_name: bert
model_weights: bert-base-chinese
- name: RegexFeaturizer
- name: DIETClassifier
epochs: 100
learning_rate: 0.001
tensorboard_log_directory: ./log
- name: ResponseSelector
epochs: 100
learning_rate: 0.001
- name: FallbackClassifier
threshold: 0.87
ambiguity_threshold: 0.1
- name: EntitySynonymMapper
policies:
- name: MemoizationPolicy
- name: TEDPolicy
- name: RulePolicy
core_fallback_threshold: 0.87
core_fallback_action_name: "action_default_fallback"
enable_fallback_prediction: True
Loading…
Cancel
Save