diff --git a/virtual-patient-model/src/main/java/com/supervision/mapper/AskDefaultQuestionAnswerMapper.java b/virtual-patient-model/src/main/java/com/supervision/mapper/AskDefaultQuestionAnswerMapper.java deleted file mode 100644 index 939e1a5f..00000000 --- a/virtual-patient-model/src/main/java/com/supervision/mapper/AskDefaultQuestionAnswerMapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.supervision.mapper; - -import com.supervision.model.AskDefaultQuestionAnswer; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -/** -* @author flevance -* @description 针对表【vp_ask_default_question_answer(默认问询意图)】的数据库操作Mapper -* @createDate 2023-10-27 10:05:55 -* @Entity com.supervision.model.AskDefaultQuestionAnswer -*/ -public interface AskDefaultQuestionAnswerMapper extends BaseMapper<AskDefaultQuestionAnswer> { - -} - - - - diff --git a/virtual-patient-model/src/main/java/com/supervision/mapper/AskDiseaseQuestionAnswerMapper.java b/virtual-patient-model/src/main/java/com/supervision/mapper/AskDiseaseQuestionAnswerMapper.java deleted file mode 100644 index 9fbbdedc..00000000 --- a/virtual-patient-model/src/main/java/com/supervision/mapper/AskDiseaseQuestionAnswerMapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.supervision.mapper; - -import com.supervision.model.AskDiseaseQuestionAnswer; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -/** -* @author flevance -* @description 针对表【vp_ask_disease_question_answer(诊断问询-疾病特有意图问题及回复)】的数据库操作Mapper -* @createDate 2023-10-27 10:05:55 -* @Entity com.supervision.model.AskDiseaseQuestionAnswer -*/ -public interface AskDiseaseQuestionAnswerMapper extends BaseMapper<AskDiseaseQuestionAnswer> { - -} - - - - diff --git a/virtual-patient-model/src/main/java/com/supervision/mapper/AskPatientAnswerMapper.java b/virtual-patient-model/src/main/java/com/supervision/mapper/AskPatientAnswerMapper.java new file mode 100644 index 00000000..fe7a172b --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/mapper/AskPatientAnswerMapper.java @@ -0,0 +1,18 @@ +package com.supervision.mapper; + +import com.supervision.model.AskPatientAnswer; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author flevance +* @description 针对表【vp_ask_patient_answer(诊断问询-针对患者的回复)】的数据库操作Mapper +* @createDate 2023-11-03 11:13:26 +* @Entity com.supervision.model.AskPatientAnswer +*/ +public interface AskPatientAnswerMapper extends BaseMapper<AskPatientAnswer> { + +} + + + + diff --git a/virtual-patient-model/src/main/java/com/supervision/mapper/AskTemplateQuestionLibraryMapper.java b/virtual-patient-model/src/main/java/com/supervision/mapper/AskTemplateQuestionLibraryMapper.java new file mode 100644 index 00000000..22be5eb9 --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/mapper/AskTemplateQuestionLibraryMapper.java @@ -0,0 +1,18 @@ +package com.supervision.mapper; + +import com.supervision.model.AskTemplateQuestionLibrary; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author flevance +* @description 针对表【vp_ask_template_question_library(诊断问询意图问题库)】的数据库操作Mapper +* @createDate 2023-11-03 11:13:26 +* @Entity com.supervision.model.AskTemplateQuestionLibrary +*/ +public interface AskTemplateQuestionLibraryMapper extends BaseMapper<AskTemplateQuestionLibrary> { + +} + + + + diff --git a/virtual-patient-model/src/main/java/com/supervision/mapper/AskTemplateQuestionMapper.java b/virtual-patient-model/src/main/java/com/supervision/mapper/AskTemplateQuestionMapper.java deleted file mode 100644 index 7e449ccf..00000000 --- a/virtual-patient-model/src/main/java/com/supervision/mapper/AskTemplateQuestionMapper.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.supervision.mapper; - -import com.supervision.model.AskTemplateQuestion; -import com.baomidou.mybatisplus.core.mapper.BaseMapper; - -/** -* @author flevance -* @description 针对表【vp_ask_template_question(诊断问询意图)】的数据库操作Mapper -* @createDate 2023-10-27 10:05:55 -* @Entity com.supervision.model.AskTemplateQuestion -*/ -public interface AskTemplateQuestionMapper extends BaseMapper<AskTemplateQuestion> { - -} - - - - diff --git a/virtual-patient-model/src/main/java/com/supervision/mapper/MedicalRecMapper.java b/virtual-patient-model/src/main/java/com/supervision/mapper/MedicalRecMapper.java new file mode 100644 index 00000000..17ecf939 --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/mapper/MedicalRecMapper.java @@ -0,0 +1,18 @@ +package com.supervision.mapper; + +import com.supervision.model.MedicalRec; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** +* @author flevance +* @description 针对表【vp_medical_rec(病历表)】的数据库操作Mapper +* @createDate 2023-11-03 11:25:43 +* @Entity com.supervision.model.MedicalRec +*/ +public interface MedicalRecMapper extends BaseMapper<MedicalRec> { + +} + + + + diff --git a/virtual-patient-model/src/main/java/com/supervision/model/AskDiseaseQuestionAnswer.java b/virtual-patient-model/src/main/java/com/supervision/model/AskDiseaseQuestionAnswer.java deleted file mode 100644 index e6da314b..00000000 --- a/virtual-patient-model/src/main/java/com/supervision/model/AskDiseaseQuestionAnswer.java +++ /dev/null @@ -1,96 +0,0 @@ -package com.supervision.model; - -import com.baomidou.mybatisplus.annotation.IdType; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; - -import java.io.Serializable; -import java.time.LocalDateTime; -import java.util.List; - -import com.baomidou.mybatisplus.extension.activerecord.Model; -import com.supervision.handler.StringListTypeHandler; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - -/** - * 诊断问询-疾病特有意图问题及回复 - * - * @TableName vp_ask_disease_question_answer - */ -@TableName(value = "vp_ask_disease_question_answer", autoResultMap = true) -@Data -@ApiModel -public class AskDiseaseQuestionAnswer extends Model<AskDiseaseQuestionAnswer> implements Serializable { - /** - * 主键 - */ - @TableId - private String id; - - /** - * 病人ID - */ - @ApiModelProperty("病人ID") - private String patientId; - - /** - * 模板问题ID(如果not null,则从template_question表出code,desc,question) - */ - @ApiModelProperty("模板问题ID(如果not null,则从template_question表出code,desc,question)") - private String templateQuestionId; - - /** - * 编码 - */ - @ApiModelProperty("编码") - private String code; - - /** - * 中文注释 - */ - @ApiModelProperty("中文注释") - private String description; - - /** - * 问题列表 - */ - @ApiModelProperty("问题列表") - @TableField(typeHandler = StringListTypeHandler.class) - private List<String> question; - - /** - * 回答列表 - */ - @ApiModelProperty("回答列表") - @TableField(typeHandler = StringListTypeHandler.class) - private List<String> answer; - - @ApiModelProperty("是否必查-初步诊断依据 0否1是") - private Integer requireCheck; - - /** - * 创建人ID - */ - private String createUserId; - - /** - * 创建时间 - */ - private LocalDateTime createTime; - - /** - * 更新人 - */ - private String updateUserId; - - /** - * 更新时间 - */ - private LocalDateTime updateTime; - - @TableField(exist = false) - private static final long serialVersionUID = 1L; -} \ No newline at end of file diff --git a/virtual-patient-model/src/main/java/com/supervision/model/AskTemplateQuestion.java b/virtual-patient-model/src/main/java/com/supervision/model/AskPatientAnswer.java similarity index 60% rename from virtual-patient-model/src/main/java/com/supervision/model/AskTemplateQuestion.java rename to virtual-patient-model/src/main/java/com/supervision/model/AskPatientAnswer.java index 8bf54832..b1c14709 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/AskTemplateQuestion.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/AskPatientAnswer.java @@ -8,20 +8,16 @@ import java.io.Serializable; import java.time.LocalDateTime; import java.util.List; -import com.baomidou.mybatisplus.extension.activerecord.Model; import com.supervision.handler.StringListTypeHandler; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** - * 诊断问询意图 - * @TableName vp_ask_template_question + * 诊断问询-针对患者的回复 + * @TableName vp_ask_patient_answer */ -@TableName(value ="vp_ask_template_question",autoResultMap = true) +@TableName(value ="vp_ask_patient_answer",autoResultMap = true) @Data -@ApiModel -public class AskTemplateQuestion extends Model<AskTemplateQuestion> implements Serializable { +public class AskPatientAnswer implements Serializable { /** * 主键 */ @@ -29,23 +25,25 @@ public class AskTemplateQuestion extends Model<AskTemplateQuestion> implements S private String id; /** - * 编码 + * 病人ID */ - @ApiModelProperty("编码") - private String code; + private String patientId; /** - * 中文注释 + * 问题库问题ID */ - @ApiModelProperty("中文注释") - private String description; + private String libraryQuestionId; /** - * 问题列表 + * 回答 */ - @ApiModelProperty("问题列表") @TableField(typeHandler = StringListTypeHandler.class) - private List<String> question; + private List<String> answer; + + /** + * 是否必查-初步诊断依据 0否1是 + */ + private Integer requireCheck; /** * 创建人ID diff --git a/virtual-patient-model/src/main/java/com/supervision/model/AskDefaultQuestionAnswer.java b/virtual-patient-model/src/main/java/com/supervision/model/AskTemplateQuestionLibrary.java similarity index 70% rename from virtual-patient-model/src/main/java/com/supervision/model/AskDefaultQuestionAnswer.java rename to virtual-patient-model/src/main/java/com/supervision/model/AskTemplateQuestionLibrary.java index 1e1ad11d..0b7f7277 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/AskDefaultQuestionAnswer.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/AskTemplateQuestionLibrary.java @@ -4,25 +4,20 @@ import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; - import java.io.Serializable; import java.time.LocalDateTime; import java.util.List; import com.supervision.handler.StringListTypeHandler; -import io.swagger.annotations.ApiModel; -import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** - * 默认问询意图 - * - * @TableName vp_ask_default_question_answer + * 诊断问询意图问题库 + * @TableName vp_ask_template_question_library */ -@TableName(value = "vp_ask_default_question_answer", autoResultMap = true) +@TableName(value ="vp_ask_template_question_library", autoResultMap = true) @Data -@ApiModel -public class AskDefaultQuestionAnswer implements Serializable { +public class AskTemplateQuestionLibrary implements Serializable { /** * 主键 */ @@ -32,28 +27,24 @@ public class AskDefaultQuestionAnswer implements Serializable { /** * 编码 */ - @ApiModelProperty("编码") private String code; /** * 中文注释 */ - @ApiModelProperty("中文注释") private String description; /** * 问题列表 */ - @ApiModelProperty("问题列表") @TableField(typeHandler = StringListTypeHandler.class) private List<String> question; /** - * 回答列表 + * 默认问题的回答 */ - @ApiModelProperty("回答列表") @TableField(typeHandler = StringListTypeHandler.class) - private List<String> answer; + private List<String> defaultAnswer; /** * 创建人ID diff --git a/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisQaRecord.java b/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisQaRecord.java index 5b118db4..d4e996d4 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisQaRecord.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/DiagnosisQaRecord.java @@ -32,9 +32,6 @@ public class DiagnosisQaRecord extends Model<DiagnosisQaRecord> implements Seria @ApiModelProperty("诊断进程ID") private String processId; - @ApiModelProperty("问答类型:default,disease") - private String questionAnswerType; - /** * 问题答案表ID */ diff --git a/virtual-patient-model/src/main/java/com/supervision/model/Disease.java b/virtual-patient-model/src/main/java/com/supervision/model/Disease.java index 5d8c8848..a5e1796c 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/Disease.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/Disease.java @@ -6,7 +6,9 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.io.Serializable; import java.time.LocalDateTime; +import java.util.List; +import com.supervision.handler.StringListTypeHandler; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -15,7 +17,7 @@ import lombok.Data; * 疾病名称 * @TableName vp_disease */ -@TableName(value ="vp_disease") +@TableName(value ="vp_disease", autoResultMap = true) @Data @ApiModel public class Disease implements Serializable { @@ -68,6 +70,9 @@ public class Disease implements Serializable { @ApiModelProperty("其他") private String other; + @TableField(typeHandler = StringListTypeHandler.class) + private List<String> standardQuestionLibrary; + /** * 创建人ID diff --git a/virtual-patient-model/src/main/java/com/supervision/model/DiseaseAncillary.java b/virtual-patient-model/src/main/java/com/supervision/model/DiseaseAncillary.java index e0d4599a..06af2c04 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/DiseaseAncillary.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/DiseaseAncillary.java @@ -26,10 +26,10 @@ public class DiseaseAncillary implements Serializable { private String id; /** - * 病人ID + * 病历ID */ - @ApiModelProperty("病人ID") - private String patientId; + @ApiModelProperty("病历ID") + private String medicalRecId; /** * 工具ID diff --git a/virtual-patient-model/src/main/java/com/supervision/model/DiseasePhysical.java b/virtual-patient-model/src/main/java/com/supervision/model/DiseasePhysical.java index 9a187d12..67ff78f6 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/DiseasePhysical.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/DiseasePhysical.java @@ -26,11 +26,10 @@ public class DiseasePhysical implements Serializable { private String id; /** - * 病人ID + * 病历ID */ - @ApiModelProperty("病人ID") - private String patientId; - + @ApiModelProperty("病历ID") + private String medicalRecId; /** * 工具ID */ diff --git a/virtual-patient-model/src/main/java/com/supervision/model/MedicalRec.java b/virtual-patient-model/src/main/java/com/supervision/model/MedicalRec.java new file mode 100644 index 00000000..9684caa9 --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/model/MedicalRec.java @@ -0,0 +1,91 @@ +package com.supervision.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; + +import java.io.Serializable; +import java.util.List; + +import com.supervision.handler.StringListTypeHandler; +import lombok.Data; + +/** + * 病历表 + * + * @TableName vp_medical_rec + */ +@TableName(value = "vp_medical_rec", autoResultMap = true) +@Data +public class MedicalRec implements Serializable { + /** + * 主键 + */ + @TableId + private String id; + + /** + * 病例编号 + */ + private String no; + + /** + * 病人ID + */ + private String patientId; + + /** + * 疾病列表 + */ + @TableField(typeHandler = StringListTypeHandler.class) + private List<String> diseaseList; + + /** + * 患者主诉 + */ + private String patientSelfDesc; + + /** + * 症状 + */ + private String symptoms; + + /** + * 预期诊断结果 + */ + private String expectDiagnosisResult; + + /** + * 预期治疗计划 + */ + private String expectDiseaseTreatmentPlan; + + /** + * 初步诊断 + */ + private Object primaryDiagnosis; + + /** + * 过敏史 + */ + private String allergyHistory; + + /** + * 既往史 + */ + private String previousHistory; + + /** + * 家族史 + */ + private String familyHistory; + + /** + * 婚育史 + */ + private String marriageChildHistory; + + @TableField(exist = false) + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/virtual-patient-model/src/main/java/com/supervision/model/Patient.java b/virtual-patient-model/src/main/java/com/supervision/model/Patient.java index af5d6958..5e4b4682 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/Patient.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/Patient.java @@ -18,7 +18,7 @@ import java.util.List; * * @TableName vp_patient */ -@TableName(value = "vp_patient", autoResultMap = true) +@TableName(value = "vp_patient") @Data @ApiModel public class Patient implements Serializable { @@ -64,25 +64,6 @@ public class Patient implements Serializable { @ApiModelProperty("体重") private BigDecimal weight; - /** - * 疾病列表 - */ - @ApiModelProperty("疾病列表") - @TableField(typeHandler = StringListTypeHandler.class) - private List<String> diseaseList; - - /** - * 预期诊断结果 - */ - @ApiModelProperty("预期诊断结果") - private String expectedDiagnosisResult; - - /** - * 治疗计划 - */ - @ApiModelProperty("治疗计划") - private String diseaseTreatmentPlan; - /** * 创建人ID */ diff --git a/virtual-patient-model/src/main/java/com/supervision/model/Process.java b/virtual-patient-model/src/main/java/com/supervision/model/Process.java index fd6abade..cf172f33 100644 --- a/virtual-patient-model/src/main/java/com/supervision/model/Process.java +++ b/virtual-patient-model/src/main/java/com/supervision/model/Process.java @@ -32,6 +32,9 @@ public class Process implements Serializable { @ApiModelProperty("病人ID") private String patientId; + @ApiModelProperty("病历ID") + private String medicalRecId; + /** * 用户ID */ @@ -41,7 +44,7 @@ public class Process implements Serializable { /** * 任务状态 0进行中 1已完成 */ - @ApiModelProperty("任务状态 0进行中 1已完成") + @ApiModelProperty("任务状态 -1未开始 0进行中 1已完成") private Integer status; /** diff --git a/virtual-patient-model/src/main/java/com/supervision/service/AskDefaultQuestionAnswerService.java b/virtual-patient-model/src/main/java/com/supervision/service/AskDefaultQuestionAnswerService.java deleted file mode 100644 index 2f3601f5..00000000 --- a/virtual-patient-model/src/main/java/com/supervision/service/AskDefaultQuestionAnswerService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.supervision.service; - -import com.supervision.model.AskDefaultQuestionAnswer; -import com.baomidou.mybatisplus.extension.service.IService; - -/** -* @author flevance -* @description 针对表【vp_ask_default_question_answer(默认问询意图)】的数据库操作Service -* @createDate 2023-10-27 10:05:55 -*/ -public interface AskDefaultQuestionAnswerService extends IService<AskDefaultQuestionAnswer> { - -} diff --git a/virtual-patient-model/src/main/java/com/supervision/service/AskDiseaseQuestionAnswerService.java b/virtual-patient-model/src/main/java/com/supervision/service/AskDiseaseQuestionAnswerService.java deleted file mode 100644 index cad8c846..00000000 --- a/virtual-patient-model/src/main/java/com/supervision/service/AskDiseaseQuestionAnswerService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.supervision.service; - -import com.supervision.model.AskDiseaseQuestionAnswer; -import com.baomidou.mybatisplus.extension.service.IService; - -/** -* @author flevance -* @description 针对表【vp_ask_disease_question_answer(诊断问询-疾病特有意图问题及回复)】的数据库操作Service -* @createDate 2023-10-27 10:05:55 -*/ -public interface AskDiseaseQuestionAnswerService extends IService<AskDiseaseQuestionAnswer> { - -} diff --git a/virtual-patient-model/src/main/java/com/supervision/service/AskPatientAnswerService.java b/virtual-patient-model/src/main/java/com/supervision/service/AskPatientAnswerService.java new file mode 100644 index 00000000..1f2f978b --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/service/AskPatientAnswerService.java @@ -0,0 +1,13 @@ +package com.supervision.service; + +import com.supervision.model.AskPatientAnswer; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author flevance +* @description 针对表【vp_ask_patient_answer(诊断问询-针对患者的回复)】的数据库操作Service +* @createDate 2023-11-03 11:13:26 +*/ +public interface AskPatientAnswerService extends IService<AskPatientAnswer> { + +} diff --git a/virtual-patient-model/src/main/java/com/supervision/service/AskTemplateQuestionLibraryService.java b/virtual-patient-model/src/main/java/com/supervision/service/AskTemplateQuestionLibraryService.java new file mode 100644 index 00000000..23cb0809 --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/service/AskTemplateQuestionLibraryService.java @@ -0,0 +1,13 @@ +package com.supervision.service; + +import com.supervision.model.AskTemplateQuestionLibrary; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author flevance +* @description 针对表【vp_ask_template_question_library(诊断问询意图问题库)】的数据库操作Service +* @createDate 2023-11-03 11:13:26 +*/ +public interface AskTemplateQuestionLibraryService extends IService<AskTemplateQuestionLibrary> { + +} diff --git a/virtual-patient-model/src/main/java/com/supervision/service/AskTemplateQuestionService.java b/virtual-patient-model/src/main/java/com/supervision/service/AskTemplateQuestionService.java deleted file mode 100644 index a15af01c..00000000 --- a/virtual-patient-model/src/main/java/com/supervision/service/AskTemplateQuestionService.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.supervision.service; - -import com.supervision.model.AskTemplateQuestion; -import com.baomidou.mybatisplus.extension.service.IService; - -/** -* @author flevance -* @description 针对表【vp_ask_template_question(诊断问询意图)】的数据库操作Service -* @createDate 2023-10-27 10:05:55 -*/ -public interface AskTemplateQuestionService extends IService<AskTemplateQuestion> { - -} diff --git a/virtual-patient-model/src/main/java/com/supervision/service/MedicalRecService.java b/virtual-patient-model/src/main/java/com/supervision/service/MedicalRecService.java new file mode 100644 index 00000000..ceb949d8 --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/service/MedicalRecService.java @@ -0,0 +1,13 @@ +package com.supervision.service; + +import com.supervision.model.MedicalRec; +import com.baomidou.mybatisplus.extension.service.IService; + +/** +* @author flevance +* @description 针对表【vp_medical_rec(病历表)】的数据库操作Service +* @createDate 2023-11-03 11:25:43 +*/ +public interface MedicalRecService extends IService<MedicalRec> { + +} diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/AskDefaultQuestionAnswerServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/AskDefaultQuestionAnswerServiceImpl.java deleted file mode 100644 index 1b74f40c..00000000 --- a/virtual-patient-model/src/main/java/com/supervision/service/impl/AskDefaultQuestionAnswerServiceImpl.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.supervision.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.supervision.model.AskDefaultQuestionAnswer; -import com.supervision.service.AskDefaultQuestionAnswerService; -import com.supervision.mapper.AskDefaultQuestionAnswerMapper; -import org.springframework.stereotype.Service; - -/** -* @author flevance -* @description 针对表【vp_ask_default_question_answer(默认问询意图)】的数据库操作Service实现 -* @createDate 2023-10-27 10:05:55 -*/ -@Service -public class AskDefaultQuestionAnswerServiceImpl extends ServiceImpl<AskDefaultQuestionAnswerMapper, AskDefaultQuestionAnswer> - implements AskDefaultQuestionAnswerService{ - -} - - - - diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/AskDiseaseQuestionAnswerServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/AskDiseaseQuestionAnswerServiceImpl.java deleted file mode 100644 index 55ddbfef..00000000 --- a/virtual-patient-model/src/main/java/com/supervision/service/impl/AskDiseaseQuestionAnswerServiceImpl.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.supervision.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.supervision.model.AskDiseaseQuestionAnswer; -import com.supervision.service.AskDiseaseQuestionAnswerService; -import com.supervision.mapper.AskDiseaseQuestionAnswerMapper; -import org.springframework.stereotype.Service; - -/** -* @author flevance -* @description 针对表【vp_ask_disease_question_answer(诊断问询-疾病特有意图问题及回复)】的数据库操作Service实现 -* @createDate 2023-10-27 10:05:55 -*/ -@Service -public class AskDiseaseQuestionAnswerServiceImpl extends ServiceImpl<AskDiseaseQuestionAnswerMapper, AskDiseaseQuestionAnswer> - implements AskDiseaseQuestionAnswerService{ - -} - - - - diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/AskPatientAnswerServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/AskPatientAnswerServiceImpl.java new file mode 100644 index 00000000..83f66d36 --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/service/impl/AskPatientAnswerServiceImpl.java @@ -0,0 +1,22 @@ +package com.supervision.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.supervision.model.AskPatientAnswer; +import com.supervision.service.AskPatientAnswerService; +import com.supervision.mapper.AskPatientAnswerMapper; +import org.springframework.stereotype.Service; + +/** +* @author flevance +* @description 针对表【vp_ask_patient_answer(诊断问询-针对患者的回复)】的数据库操作Service实现 +* @createDate 2023-11-03 11:13:26 +*/ +@Service +public class AskPatientAnswerServiceImpl extends ServiceImpl<AskPatientAnswerMapper, AskPatientAnswer> + implements AskPatientAnswerService{ + +} + + + + diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/AskTemplateQuestionLibraryServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/AskTemplateQuestionLibraryServiceImpl.java new file mode 100644 index 00000000..a4eecea5 --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/service/impl/AskTemplateQuestionLibraryServiceImpl.java @@ -0,0 +1,22 @@ +package com.supervision.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.supervision.model.AskTemplateQuestionLibrary; +import com.supervision.service.AskTemplateQuestionLibraryService; +import com.supervision.mapper.AskTemplateQuestionLibraryMapper; +import org.springframework.stereotype.Service; + +/** +* @author flevance +* @description 针对表【vp_ask_template_question_library(诊断问询意图问题库)】的数据库操作Service实现 +* @createDate 2023-11-03 11:13:26 +*/ +@Service +public class AskTemplateQuestionLibraryServiceImpl extends ServiceImpl<AskTemplateQuestionLibraryMapper, AskTemplateQuestionLibrary> + implements AskTemplateQuestionLibraryService{ + +} + + + + diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/AskTemplateQuestionServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/AskTemplateQuestionServiceImpl.java deleted file mode 100644 index a1ce81fb..00000000 --- a/virtual-patient-model/src/main/java/com/supervision/service/impl/AskTemplateQuestionServiceImpl.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.supervision.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.supervision.model.AskTemplateQuestion; -import com.supervision.service.AskTemplateQuestionService; -import com.supervision.mapper.AskTemplateQuestionMapper; -import org.springframework.stereotype.Service; - -/** -* @author flevance -* @description 针对表【vp_ask_template_question(诊断问询意图)】的数据库操作Service实现 -* @createDate 2023-10-27 10:05:55 -*/ -@Service -public class AskTemplateQuestionServiceImpl extends ServiceImpl<AskTemplateQuestionMapper, AskTemplateQuestion> - implements AskTemplateQuestionService{ - -} - - - - diff --git a/virtual-patient-model/src/main/java/com/supervision/service/impl/MedicalRecServiceImpl.java b/virtual-patient-model/src/main/java/com/supervision/service/impl/MedicalRecServiceImpl.java new file mode 100644 index 00000000..fa5c2149 --- /dev/null +++ b/virtual-patient-model/src/main/java/com/supervision/service/impl/MedicalRecServiceImpl.java @@ -0,0 +1,22 @@ +package com.supervision.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.supervision.model.MedicalRec; +import com.supervision.service.MedicalRecService; +import com.supervision.mapper.MedicalRecMapper; +import org.springframework.stereotype.Service; + +/** +* @author flevance +* @description 针对表【vp_medical_rec(病历表)】的数据库操作Service实现 +* @createDate 2023-11-03 11:25:43 +*/ +@Service +public class MedicalRecServiceImpl extends ServiceImpl<MedicalRecMapper, MedicalRec> + implements MedicalRecService{ + +} + + + + diff --git a/virtual-patient-model/src/main/resources/mapper/AskDiseaseQuestionAnswerMapper.xml b/virtual-patient-model/src/main/resources/mapper/AskDiseaseQuestionAnswerMapper.xml deleted file mode 100644 index 6a8e90ef..00000000 --- a/virtual-patient-model/src/main/resources/mapper/AskDiseaseQuestionAnswerMapper.xml +++ /dev/null @@ -1,27 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE mapper - PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" - "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.supervision.mapper.AskDiseaseQuestionAnswerMapper"> - - <resultMap id="BaseResultMap" type="com.supervision.model.AskDiseaseQuestionAnswer"> - <id property="id" column="id" jdbcType="VARCHAR"/> - <result property="patientId" column="patient_id" jdbcType="VARCHAR"/> - <result property="templateQuestionId" column="template_question_id" jdbcType="VARCHAR"/> - <result property="code" column="code" jdbcType="VARCHAR"/> - <result property="description" column="description" jdbcType="VARCHAR"/> - <result property="question" column="question" jdbcType="ARRAY" typeHandler="com.supervision.handler.StringListTypeHandler"/> - <result property="answer" column="answer" jdbcType="ARRAY" typeHandler="com.supervision.handler.StringListTypeHandler"/> - <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/> - <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> - <result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/> - <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/> - </resultMap> - - <sql id="Base_Column_List"> - id,patient_id,template_question_id, - code,description,question, - answer,create_user_id,create_time, - update_user_id,update_time - </sql> -</mapper> diff --git a/virtual-patient-model/src/main/resources/mapper/AskDefaultQuestionAnswerMapper.xml b/virtual-patient-model/src/main/resources/mapper/AskPatientAnswerMapper.xml similarity index 60% rename from virtual-patient-model/src/main/resources/mapper/AskDefaultQuestionAnswerMapper.xml rename to virtual-patient-model/src/main/resources/mapper/AskPatientAnswerMapper.xml index 5a7a978f..5da28e5f 100644 --- a/virtual-patient-model/src/main/resources/mapper/AskDefaultQuestionAnswerMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/AskPatientAnswerMapper.xml @@ -2,14 +2,14 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.supervision.mapper.AskDefaultQuestionAnswerMapper"> +<mapper namespace="com.supervision.mapper.AskPatientAnswerMapper"> - <resultMap id="BaseResultMap" type="com.supervision.model.AskDefaultQuestionAnswer"> + <resultMap id="BaseResultMap" type="com.supervision.model.AskPatientAnswer"> <id property="id" column="id" jdbcType="VARCHAR"/> - <result property="code" column="code" jdbcType="VARCHAR"/> - <result property="description" column="description" jdbcType="VARCHAR"/> - <result property="question" column="question" jdbcType="ARRAY" typeHandler="com.supervision.handler.StringListTypeHandler"/> - <result property="answer" column="answer" jdbcType="ARRAY" typeHandler="com.supervision.handler.StringListTypeHandler"/> + <result property="patientId" column="patient_id" jdbcType="VARCHAR"/> + <result property="libraryQuestionId" column="library_question_id" jdbcType="VARCHAR"/> + <result property="answer" column="answer" jdbcType="OTHER"/> + <result property="requireCheck" column="require_check" jdbcType="INTEGER"/> <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/> @@ -17,8 +17,8 @@ </resultMap> <sql id="Base_Column_List"> - id,code,description, - question,answer,create_user_id, + id,patient_id,library_question_id, + answer,require_check,create_user_id, create_time,update_user_id,update_time </sql> </mapper> diff --git a/virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionMapper.xml b/virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionLibraryMapper.xml similarity index 76% rename from virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionMapper.xml rename to virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionLibraryMapper.xml index 5c8807fc..2d946087 100644 --- a/virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionMapper.xml +++ b/virtual-patient-model/src/main/resources/mapper/AskTemplateQuestionLibraryMapper.xml @@ -2,13 +2,14 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> -<mapper namespace="com.supervision.mapper.AskTemplateQuestionMapper"> +<mapper namespace="com.supervision.mapper.AskTemplateQuestionLibraryMapper"> - <resultMap id="BaseResultMap" type="com.supervision.model.AskTemplateQuestion"> + <resultMap id="BaseResultMap" type="com.supervision.model.AskTemplateQuestionLibrary"> <id property="id" column="id" jdbcType="VARCHAR"/> <result property="code" column="code" jdbcType="VARCHAR"/> <result property="description" column="description" jdbcType="VARCHAR"/> - <result property="question" column="question" jdbcType="ARRAY" typeHandler="com.supervision.handler.StringListTypeHandler"/> + <result property="question" column="question" jdbcType="OTHER"/> + <result property="defaultAnswer" column="default_answer" jdbcType="OTHER"/> <result property="createUserId" column="create_user_id" jdbcType="VARCHAR"/> <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/> <result property="updateUserId" column="update_user_id" jdbcType="VARCHAR"/> @@ -17,7 +18,7 @@ <sql id="Base_Column_List"> id,code,description, - question,create_user_id,create_time, - update_user_id,update_time + question,default_answer,create_user_id, + create_time,update_user_id,update_time </sql> </mapper> diff --git a/virtual-patient-model/src/main/resources/mapper/MedicalRecMapper.xml b/virtual-patient-model/src/main/resources/mapper/MedicalRecMapper.xml new file mode 100644 index 00000000..3b07084b --- /dev/null +++ b/virtual-patient-model/src/main/resources/mapper/MedicalRecMapper.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper + PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.supervision.mapper.MedicalRecMapper"> + + <resultMap id="BaseResultMap" type="com.supervision.model.MedicalRec"> + <id property="id" column="id" jdbcType="VARCHAR"/> + <result property="no" column="no" jdbcType="VARCHAR"/> + <result property="patientId" column="patient_id" jdbcType="VARCHAR"/> + <result property="patientSelfDesc" column="patient_self_desc" jdbcType="VARCHAR"/> + <result property="symptoms" column="symptoms" jdbcType="VARCHAR"/> + <result property="expectDiagnosisResult" column="expect_diagnosis_result" jdbcType="VARCHAR"/> + <result property="expectDiseaseTreatmentPlan" column="expect_disease_treatment_plan" jdbcType="VARCHAR"/> + <result property="primaryDiagnosis" column="primary_diagnosis" jdbcType="OTHER"/> + <result property="allergyHistory" column="allergy_history" jdbcType="VARCHAR"/> + <result property="previousHistory" column="previous_history" jdbcType="VARCHAR"/> + <result property="familyHistory" column="family_history" jdbcType="VARCHAR"/> + <result property="marriageChildHistory" column="marriage_child_history" jdbcType="VARCHAR"/> + </resultMap> + + <sql id="Base_Column_List"> + id,no,patient_id, + patient_self_desc,symptoms,expect_diagnosis_result, + expect_disease_treatment_plan,primary_diagnosis,allergy_history, + previous_history,family_history,marriage_child_history + </sql> +</mapper> diff --git a/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java b/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java index 6e95fbdf..a7b3e38a 100644 --- a/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java +++ b/virtual-patient-web/src/main/java/com/supervision/controller/TestController.java @@ -1,23 +1,13 @@ package com.supervision.controller; -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.http.HttpUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; -import cn.hutool.poi.excel.ExcelReader; -import cn.hutool.poi.excel.ExcelUtil; import com.supervision.exception.BusinessException; -import com.supervision.model.AskDiseaseQuestionAnswer; -import com.supervision.model.AskTemplateQuestion; import com.supervision.model.ConfigPhysicalTool; -import com.supervision.service.AskDiseaseQuestionAnswerService; -import com.supervision.service.AskTemplateQuestionService; import com.supervision.service.ConfigPhysicalToolService; import lombok.RequiredArgsConstructor; -import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import java.util.*; @@ -96,38 +86,6 @@ public class TestController { return signServer; } - @PostMapping("saveQuestion") - @Transactional(rollbackFor = Exception.class) - public void saveQuestion() { - ExcelReader reader = ExcelUtil.getReader("/Users/flevance/Desktop/template.xlsx"); - List<List<Object>> read = reader.read(); - for (List<Object> readLine : read) { - String desc = (String) readLine.get(0); - String pinyin = PinyinUtil.getPinyin((String) readLine.get(0), "_"); - String question = (String) readLine.get(1); - String answer = (String) readLine.get(2); - String otherQuestionStr = (String) readLine.get(3); - - AskTemplateQuestion templateQuestion = new AskTemplateQuestion(); - templateQuestion.setCode("ask_" + pinyin); - templateQuestion.setDescription(desc); - List<String> questionList = JSONUtil.toList(otherQuestionStr, String.class); - questionList.add(0, question); - templateQuestion.setQuestion(questionList); - templateQuestion.insert(); - - - AskDiseaseQuestionAnswer askDiseaseQuestionAnswer = new AskDiseaseQuestionAnswer(); - askDiseaseQuestionAnswer.setPatientId("1"); - askDiseaseQuestionAnswer.setTemplateQuestionId(templateQuestion.getId()); - askDiseaseQuestionAnswer.setAnswer(ListUtil.of(answer)); - askDiseaseQuestionAnswer.insert(); - - - } - - - } } diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskAncillaryServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskAncillaryServiceImpl.java index 33ac6bbe..4f25834e 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskAncillaryServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskAncillaryServiceImpl.java @@ -26,6 +26,8 @@ public class AskAncillaryServiceImpl implements AskAncillaryService { private final DiagnosisAncillaryRecordService diagnosisAncillaryRecordService; + private final MedicalRecService medicalRecService; + @Override public List<ConfigAncillaryItemResVO> queryAncillaryItemList() { List<ConfigAncillaryItem> list = ancillaryItemService.lambdaQuery().list(); @@ -42,7 +44,7 @@ public class AskAncillaryServiceImpl implements AskAncillaryService { // 首先根据process_id查新到流程ID Process process = Optional.ofNullable(processService.getById(reqVO.getProcessId())).orElseThrow(() -> new BusinessException("未找到流程ID")); // 找到对应的项目的检查结果 - DiseaseAncillary diseaseAncillary = diseaseAncillaryService.lambdaQuery().eq(DiseaseAncillary::getPatientId, process.getPatientId()).eq(DiseaseAncillary::getItemId, reqVO.getItemId()) + DiseaseAncillary diseaseAncillary = diseaseAncillaryService.lambdaQuery().eq(DiseaseAncillary::getMedicalRecId, process.getMedicalRecId()).eq(DiseaseAncillary::getItemId, reqVO.getItemId()) .oneOpt().orElseGet(() -> { DiseaseAncillary get = new DiseaseAncillary(); get.setResult("无相关资讯"); diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java index 8e7306b2..e0f5f294 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskDiagnosisResultServiceImpl.java @@ -28,7 +28,9 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService private final DiagnosisPrimaryService diagnosisPrimaryService; - private final AskDiseaseQuestionAnswerService askDiseaseQuestionAnswerService; + private final AskPatientAnswerService askPatientAnswerService; + + private final MedicalRecService medicalRecService; private final DiagnosisQaRecordService diagnosisQaRecordService; @@ -68,11 +70,12 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService diagnosisResultResVO.setId(processId); Process process = processService.getById(processId); Patient patient = patientService.getById(process.getPatientId()); - List<Disease> diseasesList = diseaseService.listByIds(patient.getDiseaseList()); + MedicalRec medicalRec = medicalRecService.getById(process.getMedicalRecId()); + List<Disease> diseasesList = diseaseService.listByIds(medicalRec.getDiseaseList()); // 1.生成预期诊断结果 - diagnosisResultResVO.setExpertDiagnosisResult(creatExpertDiagnosisResult(diagnosisResult, patient, diseasesList)); + diagnosisResultResVO.setExpertDiagnosisResult(creatExpertDiagnosisResult(medicalRec, diagnosisResult, diseasesList)); // 2.生成初步诊断依据 - diagnosisResultResVO.setBasisPrimaryResultResVO(createBasisPrimaryResult(processId, diseasesList)); + diagnosisResultResVO.setBasisPrimaryResultResVO(createBasisPrimaryResult(patient, processId, diseasesList)); // 3.生成证实诊断依据 diagnosisResultResVO.setBasisConfirmResultResVO(createBasisConfirmResult(processId, diseasesList)); // 4.生成鉴别诊断依据 @@ -80,15 +83,15 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService // 5.全面检查-(暂无相关数据) 后面再看 diagnosisResultResVO.setFullCheck(null); // 6.处置方案 - diagnosisResultResVO.setDealPlan(createDealPlan(diagnosisResult, patient)); + diagnosisResultResVO.setDealPlan(createDealPlan(medicalRec, diagnosisResult, patient)); return diagnosisResultResVO; } - private DealPlanResVO createDealPlan(DiagnosisResult diagnosisResult, Patient patient) { + private DealPlanResVO createDealPlan(MedicalRec medicalRec, DiagnosisResult diagnosisResult, Patient patient) { DealPlanResVO dealPlanResVO = new DealPlanResVO(); dealPlanResVO.setUserTreatmentPlanType(diagnosisResult.getTreatmentPlanType()); dealPlanResVO.setUserTreatmentPlan(diagnosisResult.getTreatmentPlan()); - dealPlanResVO.setRealTreatmentPlan(patient.getDiseaseTreatmentPlan()); + dealPlanResVO.setRealTreatmentPlan(medicalRec.getExpectDiseaseTreatmentPlan()); return dealPlanResVO; } @@ -153,7 +156,7 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService return basisConfirmResultResVO; } - private BasisPrimaryResultResVO createBasisPrimaryResult(String processId, List<Disease> diseasesList) { + private BasisPrimaryResultResVO createBasisPrimaryResult(Patient patient, String processId, List<Disease> diseasesList) { BasisPrimaryResultResVO basisPrimaryResultResVO = new BasisPrimaryResultResVO(); basisPrimaryResultResVO.setPreliminaryDiagnosis(diseasesList.stream().map(Disease::getPreliminaryDiagnosis).collect(Collectors.toList())); // 根据record记录寻找符合初步诊断依据的项目 @@ -161,13 +164,11 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService List<BasisDiagnosisNodeResVO> basisDiagnosisNodeResVOS = new ArrayList<>(); List<DiagnosisQaRecord> qaRecordList = diagnosisQaRecordService.lambdaQuery().eq(DiagnosisQaRecord::getProcessId, processId).list(); if (CollectionUtil.isNotEmpty(qaRecordList)) { - Set<String> questionAnswerIdSet = qaRecordList.stream().map(DiagnosisQaRecord::getQuestionAnswerId).collect(Collectors.toSet()); - List<AskDiseaseQuestionAnswer> list = askDiseaseQuestionAnswerService.lambdaQuery() - .in(AskDiseaseQuestionAnswer::getId, questionAnswerIdSet) - .eq(AskDiseaseQuestionAnswer::getRequireCheck, 1) - .select(AskDiseaseQuestionAnswer::getId).list(); + List<AskPatientAnswer> list = askPatientAnswerService.lambdaQuery() + .eq(AskPatientAnswer::getPatientId, patient.getId()) + .eq(AskPatientAnswer::getRequireCheck, 1).list(); // 获取必问的项目 - Set<String> requireCheckIdSet = list.stream().map(AskDiseaseQuestionAnswer::getId).collect(Collectors.toSet()); + Set<String> requireCheckIdSet = list.stream().map(AskPatientAnswer::getId).collect(Collectors.toSet()); List<BasisDiagnosisNodeResVO> qaList = qaRecordList.stream().map(e -> { BasisDiagnosisNodeResVO node = new BasisDiagnosisNodeResVO(); node.setType(0); @@ -208,9 +209,12 @@ public class AskDiagnosisResultServiceImpl implements AskDiagnosisResultService } - private ExpertDiagnosisResultResVO creatExpertDiagnosisResult(DiagnosisResult diagnosisResult, Patient patient, List<Disease> diseasesList) { + /** + * 预期诊断结果 + */ + private ExpertDiagnosisResultResVO creatExpertDiagnosisResult(MedicalRec medicalRec, DiagnosisResult diagnosisResult, List<Disease> diseasesList) { ExpertDiagnosisResultResVO expertDiagnosisResultResVO = new ExpertDiagnosisResultResVO(); - expertDiagnosisResultResVO.setDiagnosis(patient.getExpectedDiagnosisResult()); + expertDiagnosisResultResVO.setDiagnosis(medicalRec.getExpectDiagnosisResult()); Set<String> expertDiseaseIdSet = diseasesList.stream().map(Disease::getId).collect(Collectors.toSet()); List<Disease> userDiagnosisDiseaseList = diseaseService.listByIds(diagnosisResult.getFinalDiagnosis()); // 用户的诊断 diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPhysicalServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPhysicalServiceImpl.java index 1b9ff141..b4b506cf 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPhysicalServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskPhysicalServiceImpl.java @@ -59,7 +59,7 @@ public class AskPhysicalServiceImpl implements AskPhysicalService { .oneOpt().orElseThrow(() -> new BusinessException("未找到对应部位")); locationId = location.getId(); } - DiseasePhysical result = diseasePhysicalService.lambdaQuery().eq(DiseasePhysical::getPatientId, process.getPatientId()) + DiseasePhysical result = diseasePhysicalService.lambdaQuery().eq(DiseasePhysical::getMedicalRecId, process.getMedicalRecId()) .eq(DiseasePhysical::getToolId, tool.getId()).eq(StrUtil.isNotBlank(locationId), DiseasePhysical::getLocationId, locationId).last("limit 1") .oneOpt() .orElseGet(() -> { diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java index 506eef7e..22d6aad7 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/AskServiceImpl.java @@ -1,14 +1,18 @@ package com.supervision.service.impl; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.RandomUtil; import cn.hutool.core.util.StrUtil; import com.supervision.exception.BusinessException; +import com.supervision.model.AskPatientAnswer; +import com.supervision.model.AskTemplateQuestionLibrary; import com.supervision.model.DiagnosisQaRecord; import com.supervision.model.Process; import com.supervision.pojo.vo.TalkReqVO; import com.supervision.pojo.vo.TalkResultResVO; -import com.supervision.service.AskDefaultQuestionAnswerService; -import com.supervision.service.AskDiseaseQuestionAnswerService; +import com.supervision.service.AskPatientAnswerService; +import com.supervision.service.AskTemplateQuestionLibraryService; import com.supervision.service.ProcessService; import com.supervision.util.*; import com.supervision.service.AskService; @@ -31,9 +35,9 @@ public class AskServiceImpl implements AskService { private final ProcessService processService; - private final AskDiseaseQuestionAnswerService askDiseaseQuestionAnswerService; + private final AskTemplateQuestionLibraryService askTemplateQuestionLibraryService; - private final AskDefaultQuestionAnswerService askDefaultQuestionAnswerService; + private final AskPatientAnswerService askPatientAnswerService; @Override @@ -56,11 +60,17 @@ public class AskServiceImpl implements AskService { @Override @Transactional(rollbackFor = Exception.class) - public TalkResultResVO talk(TalkReqVO talkReqVO) throws IOException { + public TalkResultResVO talk(TalkReqVO talkReqVO) { // 根据processId找到对应的病人 Process process = Optional.ofNullable(processService.getById(talkReqVO.getProcessId())).orElseThrow(() -> new BusinessException("未找到诊疗进程")); // 调用rasa获取文字内容 String rasaResult = RasaUtil.talkRasa(talkReqVO.getText(), UserUtil.getUser().getId(), process.getPatientId()); + // 如果rasa没有识别出来,则返回默认值 + if (StrUtil.isBlank(rasaResult)) { + // 这里调用京东数字人接口首先根据token获取房间号 + String roomId = HumanUtil.queryRoomId(talkReqVO.getRoomKey(), talkReqVO.getRoomToken()); + HumanUtil.textDriven("您好,我没有听懂您说什么", roomId); + } TalkResultResVO talkResultResVO = new TalkResultResVO(); // 这里校验,rasa回复的结果是不是action // 这里设置的模板,对于action的动作全部是用ancillary_ | tool_进行标记,详情看生成rasa的yml的代码:RasaServiceImpl.generateDomain @@ -77,42 +87,28 @@ public class AskServiceImpl implements AskService { return talkResultResVO; } } else { - // 语音消息,这时调用京东的接口进行播放操作 - // 这里调用京东数字人接口首先根据token获取房间号 String roomId = HumanUtil.queryRoomId(talkReqVO.getRoomKey(), talkReqVO.getRoomToken()); - // 区分 - List<String> answerIdList = StrUtil.split(rasaResult, '_'); - String qaId = null; - String qaType = "miss"; - String answer = "您好,我没有听懂您说什么"; - if (answerIdList.size() > 1) { - if (rasaResult.startsWith("default_")) { - qaType = "default"; - List<String> answerList = Optional.ofNullable(askDefaultQuestionAnswerService.getById(answerIdList.get(1)).getAnswer()) - .orElse(CollUtil.newArrayList("您好,我没有听懂您说什么")); - answer = answerList.get(new Random().nextInt(answerList.size())); - qaId = answerIdList.get(1); - - } else if (rasaResult.startsWith("disease_")) { - qaType = "disease"; - List<String> answerList = Optional.ofNullable(askDiseaseQuestionAnswerService.getById(answerIdList.get(1)).getAnswer()) - .orElse(CollUtil.newArrayList("您好,我没有听懂您说什么")); - answer = answerList.get(new Random().nextInt(answerList.size())); - qaId = answerIdList.get(1); + AskTemplateQuestionLibrary library = askTemplateQuestionLibraryService.getById(rasaResult); + if (ObjectUtil.isEmpty(library)) { + HumanUtil.textDriven("您好,我没有听懂您说什么", roomId); + } else { + AskPatientAnswer askPatientAnswer = askPatientAnswerService.lambdaQuery().eq(AskPatientAnswer::getPatientId, process.getPatientId()) + .eq(AskPatientAnswer::getLibraryQuestionId, library.getId()).last("limit 1").one(); + if (ObjectUtil.isEmpty(askPatientAnswer) || CollUtil.isEmpty(askPatientAnswer.getAnswer())) { + HumanUtil.textDriven("您好,我没有听懂您说什么", roomId); + } else { + String resText = askPatientAnswer.getAnswer().get(RandomUtil.randomInt(0, askPatientAnswer.getAnswer().size())); + HumanUtil.textDriven(resText, roomId); + // 保存记录 + DiagnosisQaRecord record = new DiagnosisQaRecord(); + record.setProcessId(talkReqVO.getProcessId()); + record.setQuestionAnswerId(askPatientAnswer.getId()); + record.setQuestion(talkReqVO.getText()); + record.setAnswer(resText); + record.setCreateUserId(UserUtil.getUser().getId()); + record.insert(); } } - // 然后这里进行播放 - // 这里应该从对话中取结果 - HumanUtil.textDriven(rasaResult, roomId); - // 保存记录 - DiagnosisQaRecord record = new DiagnosisQaRecord(); - record.setProcessId(talkReqVO.getProcessId()); - record.setQuestionAnswerType(qaType); - record.setQuestionAnswerId(qaId); - record.setQuestion(talkReqVO.getText()); - record.setAnswer(answer); - record.setCreateUserId(UserUtil.getUser().getId()); - record.insert(); } talkResultResVO.setType(1); return talkResultResVO; diff --git a/virtual-patient-web/src/main/java/com/supervision/service/impl/RasaServiceImpl.java b/virtual-patient-web/src/main/java/com/supervision/service/impl/RasaServiceImpl.java index ed61af87..29e70f80 100644 --- a/virtual-patient-web/src/main/java/com/supervision/service/impl/RasaServiceImpl.java +++ b/virtual-patient-web/src/main/java/com/supervision/service/impl/RasaServiceImpl.java @@ -7,15 +7,12 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; -import cn.hutool.json.JSONUtil; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.supervision.domain.GlobalResult; import com.supervision.exception.BusinessException; import com.supervision.model.*; -import com.supervision.pojo.paddlespeech.res.PaddleSpeechResDTO; -import com.supervision.pojo.paddlespeech.res.TtsResultDTO; import com.supervision.pojo.rasa.train.DomainYmlTemplate; import com.supervision.pojo.rasa.train.NluYmlTemplate; import com.supervision.pojo.rasa.train.QuestionAnswerDTO; @@ -43,16 +40,13 @@ import java.util.zip.ZipOutputStream; @RequiredArgsConstructor public class RasaServiceImpl implements RasaService { - private final AskDefaultQuestionAnswerService askDefaultQuestionAnswerService; - - private final AskDiseaseQuestionAnswerService askDiseaseQuestionAnswerService; - - private final AskTemplateQuestionService askTemplateQuestionService; - private final ConfigPhysicalToolService configPhysicalToolService; private final ConfigAncillaryItemService configAncillaryItemService; + private final AskTemplateQuestionLibraryService askTemplateQuestionLibraryService; + + private static final ObjectMapper objectMapper = new ObjectMapper(); @Value("${rasa.base-url}${rasa.saveRasaFile}") @@ -114,53 +108,20 @@ public class RasaServiceImpl implements RasaService { Map<String, File> ymalFileMap) { // 首先生成根据意图查找到nlu文件 List<NluYmlTemplate.Nlu> nluList = new ArrayList<>(); + // 默认意图 - List<AskDefaultQuestionAnswer> defaultQuestionAnswerList = askDefaultQuestionAnswerService.lambdaQuery().isNotNull(AskDefaultQuestionAnswer::getAnswer).list(); + List<AskTemplateQuestionLibrary> askTemplateQuestionLibraryList = askTemplateQuestionLibraryService.lambdaQuery().list(); // 生成默认意图的nlu - for (AskDefaultQuestionAnswer defaultQA : defaultQuestionAnswerList) { - if (CollUtil.isNotEmpty(defaultQA.getQuestion()) && CollUtil.isNotEmpty(defaultQA.getAnswer())) { - // 开始生成 - NluYmlTemplate.Nlu nlu = new NluYmlTemplate.Nlu(); - // 拼接格式:code_id(防止重复) - String intentCode = defaultQA.getCode() + "_" + defaultQA.getId(); - nlu.setIntent(intentCode); - nlu.setExamples(defaultQA.getQuestion()); - nluList.add(nlu); - // 添加到map中,key为意图编码,value为意图ID - intentCodeAndIdMap.put(intentCode, new QuestionAnswerDTO(defaultQA.getQuestion(), CollUtil.newArrayList("default_" + defaultQA.getId()), defaultQA.getDescription())); - } - } - // 然后处理该疾病对应的意图 - List<AskDiseaseQuestionAnswer> diseaseQuestionAnswerList = askDiseaseQuestionAnswerService.lambdaQuery() - .eq(AskDiseaseQuestionAnswer::getPatientId, patientId).list(); - // 使用通用模板的 - Map<String, AskTemplateQuestion> templateQuestionMap = new HashMap<>(); - // 根据默认意图找到所有的问题 - if (CollUtil.isNotEmpty(diseaseQuestionAnswerList)) { - // 首先找到使用通用模板的问题 - List<AskDiseaseQuestionAnswer> templateQuestionList = diseaseQuestionAnswerList.stream() - .filter(e -> StrUtil.isNotBlank(e.getTemplateQuestionId())).collect(Collectors.toList()); - if (CollUtil.isNotEmpty(templateQuestionList)) { - Set<String> templateQuestionIdList = templateQuestionList.stream().map(AskDiseaseQuestionAnswer::getTemplateQuestionId).collect(Collectors.toSet()); - List<AskTemplateQuestion> list = askTemplateQuestionService.lambdaQuery().in(AskTemplateQuestion::getId, templateQuestionIdList).list(); - templateQuestionMap = list.stream().collect(Collectors.toMap(AskTemplateQuestion::getId, Function.identity())); - } - } - // 这里开始遍历 - for (AskDiseaseQuestionAnswer askDiseaseQuestionAnswer : diseaseQuestionAnswerList) { - // 如果走模板的问题 - if (StrUtil.isNotBlank(askDiseaseQuestionAnswer.getTemplateQuestionId()) && templateQuestionMap.containsKey(askDiseaseQuestionAnswer.getTemplateQuestionId())) { - AskTemplateQuestion askTemplateQuestion = templateQuestionMap.get(askDiseaseQuestionAnswer.getTemplateQuestionId()); - // 开始生成 - NluYmlTemplate.Nlu nlu = new NluYmlTemplate.Nlu(); - // 拼接格式:code_answerId(防止重复) - String intentCode = askTemplateQuestion.getCode() + "_" + askDiseaseQuestionAnswer.getId(); - nlu.setIntent(intentCode); - nlu.setExamples(askTemplateQuestion.getQuestion()); - nluList.add(nlu); - intentCodeAndIdMap.put(intentCode, new QuestionAnswerDTO(askTemplateQuestion.getQuestion(), CollUtil.newArrayList("disease_" + askDiseaseQuestionAnswer.getId()), askTemplateQuestion.getDescription())); - - } + for (AskTemplateQuestionLibrary questionLibrary : askTemplateQuestionLibraryList) { + // 开始生成 + NluYmlTemplate.Nlu nlu = new NluYmlTemplate.Nlu(); + // 拼接格式:code_id(防止重复) + String intentCode = questionLibrary.getCode() + "_" + questionLibrary.getId(); + nlu.setIntent(intentCode); + nlu.setExamples(questionLibrary.getQuestion()); + nluList.add(nlu); + // 添加到map中,key为意图编码,value为意图ID + intentCodeAndIdMap.put(intentCode, new QuestionAnswerDTO(questionLibrary.getQuestion(), CollUtil.newArrayList( questionLibrary.getId()), questionLibrary.getDescription())); } // 这里处理呼出的问题(code和问题不能为空)