医案收集
This commit is contained in:
6
pom.xml
6
pom.xml
@@ -63,6 +63,12 @@
|
|||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
<dependencies>
|
<dependencies>
|
||||||
|
<!-- markdown字符串转html -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.vladsch.flexmark</groupId>
|
||||||
|
<artifactId>flexmark-all</artifactId>
|
||||||
|
<version>0.62.2</version>
|
||||||
|
</dependency>
|
||||||
<!-- Spring AI MCP 客户端 -->
|
<!-- Spring AI MCP 客户端 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.ai</groupId>
|
<groupId>org.springframework.ai</groupId>
|
||||||
|
|||||||
@@ -1,12 +1,18 @@
|
|||||||
package com.peanut.modules.common.controller;
|
package com.peanut.modules.common.controller;
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
|
||||||
import com.peanut.common.utils.R;
|
import com.peanut.common.utils.R;
|
||||||
import com.peanut.common.utils.ShiroUtils;
|
import com.peanut.common.utils.ShiroUtils;
|
||||||
import com.peanut.modules.common.entity.MedicalRecords;
|
import com.peanut.modules.common.entity.MedicalRecords;
|
||||||
|
import com.peanut.modules.common.entity.MedicalRecordsLabel;
|
||||||
import com.peanut.modules.common.entity.MedicalRecordsToLabel;
|
import com.peanut.modules.common.entity.MedicalRecordsToLabel;
|
||||||
|
import com.peanut.modules.common.service.MedicalRecordsLabelService;
|
||||||
import com.peanut.modules.common.service.MedicalRecordsService;
|
import com.peanut.modules.common.service.MedicalRecordsService;
|
||||||
import com.peanut.modules.common.service.MedicalRecordsToLabelService;
|
import com.peanut.modules.common.service.MedicalRecordsToLabelService;
|
||||||
|
import com.vladsch.flexmark.html.HtmlRenderer;
|
||||||
|
import com.vladsch.flexmark.parser.Parser;
|
||||||
|
import com.vladsch.flexmark.util.data.MutableDataSet;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.ai.chat.client.ChatClient;
|
import org.springframework.ai.chat.client.ChatClient;
|
||||||
import org.springframework.ai.tool.ToolCallbackProvider;
|
import org.springframework.ai.tool.ToolCallbackProvider;
|
||||||
@@ -29,8 +35,27 @@ public class MedicalRecordsController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private MedicalRecordsService medicalRecordsService;
|
private MedicalRecordsService medicalRecordsService;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
private MedicalRecordsLabelService medicalRecordsLabelService;
|
||||||
|
@Autowired
|
||||||
private MedicalRecordsToLabelService medicalRecordsToLabelService;
|
private MedicalRecordsToLabelService medicalRecordsToLabelService;
|
||||||
|
|
||||||
|
//获取医案标签列表
|
||||||
|
@RequestMapping("/getMedicalRecordsLabelList")
|
||||||
|
public R getMedicalRecordsLabelList(){
|
||||||
|
return R.ok().put("Medicals", medicalRecordsLabels(0));
|
||||||
|
}
|
||||||
|
private List<MedicalRecordsLabel> medicalRecordsLabels(int id){
|
||||||
|
List<MedicalRecordsLabel> medicalRecordsLabelList = medicalRecordsLabelService.list(new LambdaQueryWrapper<MedicalRecordsLabel>()
|
||||||
|
.eq(MedicalRecordsLabel::getPid, id));
|
||||||
|
for (MedicalRecordsLabel m : medicalRecordsLabelList){
|
||||||
|
if(m.getIsLast()!=1){
|
||||||
|
List<MedicalRecordsLabel> so = this.medicalRecordsLabels(m.getId());
|
||||||
|
m.setChildren(so);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return medicalRecordsLabelList;
|
||||||
|
}
|
||||||
|
|
||||||
public MedicalRecordsController(ChatClient.Builder chatClientBuilder, ToolCallbackProvider tools) {
|
public MedicalRecordsController(ChatClient.Builder chatClientBuilder, ToolCallbackProvider tools) {
|
||||||
this.chatClient = chatClientBuilder.defaultToolCallbacks(tools).build();
|
this.chatClient = chatClientBuilder.defaultToolCallbacks(tools).build();
|
||||||
}
|
}
|
||||||
@@ -39,12 +64,17 @@ public class MedicalRecordsController {
|
|||||||
@RequestMapping(value = "/medicalRecordsSplit")
|
@RequestMapping(value = "/medicalRecordsSplit")
|
||||||
public R medicalRecordsSplit(@RequestBody Map<String,Object> parmas) {
|
public R medicalRecordsSplit(@RequestBody Map<String,Object> parmas) {
|
||||||
MedicalRecords mr = new MedicalRecords();
|
MedicalRecords mr = new MedicalRecords();
|
||||||
|
mr.setUserId(ShiroUtils.getUId());
|
||||||
String uuid = UUID.randomUUID().toString();
|
String uuid = UUID.randomUUID().toString();
|
||||||
|
medicalRecordsService.save(mr);
|
||||||
StringBuffer sb = new StringBuffer();
|
StringBuffer sb = new StringBuffer();
|
||||||
Date date = new Date();
|
Date date = new Date();
|
||||||
|
MutableDataSet options = new MutableDataSet();
|
||||||
|
Parser parser = Parser.builder(options).build();
|
||||||
|
HtmlRenderer renderer = HtmlRenderer.builder(options).build();
|
||||||
chatClient.prompt()
|
chatClient.prompt()
|
||||||
.user("你是一名文档编辑,给你一份资料,必须按照1.一般信息,2.主诉,3.现病史,4.既往史,5.家族史,6.体格检查,7.诊断,8.治疗和后续治疗;" +
|
.user("你是一名编辑,给你一份资料,必须按照1.一般信息,2.主诉,3.现病史,4.既往史,5.家族史,6.体格检查,7.诊断,8.治疗和后续治疗;" +
|
||||||
"这8方面进行拆分,不要增删内容,个人信息必须脱敏处理,结果必须是markdown格式;内容如下:"+
|
"这8方面进行拆分,如果没有内容只显示标题,内容为无。内容开头必须为一般信息,不要增删内容,个人信息必须脱敏处理,结果必须是markdown格式;内容如下:"+
|
||||||
parmas.get("message").toString())
|
parmas.get("message").toString())
|
||||||
.stream()
|
.stream()
|
||||||
.content()
|
.content()
|
||||||
@@ -55,28 +85,41 @@ public class MedicalRecordsController {
|
|||||||
System.out.println(sb);
|
System.out.println(sb);
|
||||||
String res = sb.toString().replace("```markdown\n","").replace("```","");
|
String res = sb.toString().replace("```markdown\n","").replace("```","");
|
||||||
String[] datas = res.split("\n\n");
|
String[] datas = res.split("\n\n");
|
||||||
mr.setUserId(ShiroUtils.getUId());
|
mr.setInformation(renderer.render(parser.parse(datas[0])));
|
||||||
mr.setInformation(datas[0]);
|
mr.setChiefComplaint(renderer.render(parser.parse(datas[1])));
|
||||||
mr.setChiefComplaint(datas[1]);
|
mr.setHistoryOfPresentIllness(renderer.render(parser.parse(datas[2])));
|
||||||
mr.setHistoryOfPresentIllness(datas[2]);
|
mr.setPastHistory(renderer.render(parser.parse(datas[3])));
|
||||||
mr.setPastHistory(datas[3]);
|
mr.setPersonalAndFamilyHistory(renderer.render(parser.parse(datas[4])));
|
||||||
mr.setPersonalAndFamilyHistory(datas[4]);
|
mr.setPhysicaExamination(renderer.render(parser.parse(datas[5])));
|
||||||
mr.setPhysicaExamination(datas[5]);
|
mr.setDiagnosis(renderer.render(parser.parse(datas[6])));
|
||||||
mr.setDiagnosis(datas[6]);
|
mr.setTreatmentPlan(renderer.render(parser.parse(datas[7])));
|
||||||
mr.setTreatmentPlan(datas[7]);
|
mr.setData(uuid+"->");
|
||||||
mr.setData(uuid+"->\n"+res);
|
medicalRecordsService.saveOrUpdate(mr);
|
||||||
medicalRecordsService.save(mr);
|
|
||||||
System.out.println(new Date().getTime()-date.getTime());
|
System.out.println(new Date().getTime()-date.getTime());
|
||||||
})
|
})
|
||||||
|
.doOnError(error -> {
|
||||||
|
medicalRecordsService.removeById(mr.getId());
|
||||||
|
})
|
||||||
.subscribe();
|
.subscribe();
|
||||||
return R.ok().put("data",uuid);
|
return R.ok().put("data",mr.getId());
|
||||||
}
|
}
|
||||||
|
|
||||||
//查询正在拆分的医案
|
//查询正在拆分的医案
|
||||||
@RequestMapping(value = "/medicalRecordsQuerySplit")
|
@RequestMapping(value = "/medicalRecordsQuerySplit")
|
||||||
public R medicalRecordsQuerySplit(@RequestBody Map<String,Object> parmas) {
|
public R medicalRecordsQuerySplit(@RequestBody Map<String,Object> parmas) {
|
||||||
List<MedicalRecords> list = medicalRecordsService.list(new LambdaQueryWrapper<MedicalRecords>()
|
List<MedicalRecords> list = medicalRecordsService.list(new LambdaQueryWrapper<MedicalRecords>()
|
||||||
.like(MedicalRecords::getData,parmas.get("queryFlag")));
|
.eq(MedicalRecords::getId, parmas.get("id")));
|
||||||
|
for (MedicalRecords mr : list){
|
||||||
|
MedicalRecordsToLabel toLabel = medicalRecordsToLabelService.getOne(new LambdaQueryWrapper<MedicalRecordsToLabel>()
|
||||||
|
.eq(MedicalRecordsToLabel::getRecordId,mr.getId()));
|
||||||
|
if (toLabel!=null){
|
||||||
|
mr.setLabelId(toLabel.getLabelId());
|
||||||
|
MedicalRecordsLabel label = medicalRecordsLabelService.getById(toLabel.getLabelId());
|
||||||
|
if (label!=null){
|
||||||
|
mr.setLabelTitle(label.getTitle());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return R.ok().put("medicalRecords",list.size()>0?list.get(0):null);
|
return R.ok().put("medicalRecords",list.size()>0?list.get(0):null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -84,10 +127,6 @@ public class MedicalRecordsController {
|
|||||||
@RequestMapping(value = "/saveMedicalRecords")
|
@RequestMapping(value = "/saveMedicalRecords")
|
||||||
@Transactional
|
@Transactional
|
||||||
public R saveMedicalRecords(@RequestBody MedicalRecords medicalRecords) {
|
public R saveMedicalRecords(@RequestBody MedicalRecords medicalRecords) {
|
||||||
MedicalRecordsToLabel toLabel = new MedicalRecordsToLabel();
|
|
||||||
toLabel.setRecordId(medicalRecords.getId());
|
|
||||||
toLabel.setLabelId(medicalRecords.getLabelId());
|
|
||||||
medicalRecordsToLabelService.save(toLabel);
|
|
||||||
if (medicalRecords.getState()==1){
|
if (medicalRecords.getState()==1){
|
||||||
if ("儿科".equals(medicalRecords.getLabelTitle())){
|
if ("儿科".equals(medicalRecords.getLabelTitle())){
|
||||||
if ((!medicalRecords.getPastHistory().contains("接种")&&
|
if ((!medicalRecords.getPastHistory().contains("接种")&&
|
||||||
@@ -108,8 +147,37 @@ public class MedicalRecordsController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
medicalRecordsService.save(medicalRecords);
|
medicalRecords.setData(medicalRecords.getInformation()+medicalRecords.getChiefComplaint()+medicalRecords.getHistoryOfPresentIllness()
|
||||||
|
+medicalRecords.getPastHistory()+medicalRecords.getPastHistory()+medicalRecords.getPersonalAndFamilyHistory()
|
||||||
|
+medicalRecords.getPhysicaExamination()+medicalRecords.getDiagnosis()+medicalRecords.getTreatmentPlan());
|
||||||
|
medicalRecordsService.saveOrUpdate(medicalRecords);
|
||||||
|
//绑定标签
|
||||||
|
MedicalRecordsToLabel toLabel = medicalRecordsToLabelService.getOne(new LambdaQueryWrapper<MedicalRecordsToLabel>()
|
||||||
|
.eq(MedicalRecordsToLabel::getLabelId, medicalRecords.getLabelId())
|
||||||
|
.eq(MedicalRecordsToLabel::getRecordId,medicalRecords.getId()));
|
||||||
|
if (toLabel==null){
|
||||||
|
toLabel = new MedicalRecordsToLabel();
|
||||||
|
}
|
||||||
|
toLabel.setRecordId(medicalRecords.getId());
|
||||||
|
toLabel.setLabelId(medicalRecords.getLabelId());
|
||||||
|
medicalRecordsToLabelService.saveOrUpdate(toLabel);
|
||||||
return R.ok().put("medicalRecords",medicalRecords);
|
return R.ok().put("medicalRecords",medicalRecords);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//删除医案
|
||||||
|
@RequestMapping(value = "/delMmedicalRecords")
|
||||||
|
public R delMmedicalRecords(@RequestBody Map<String,Object> parmas) {
|
||||||
|
medicalRecordsService.removeById(parmas.get("id").toString());
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
//医案列表
|
||||||
|
@RequestMapping(value = "/medicalRecordsList")
|
||||||
|
public R medicalRecordsList(@RequestBody Map<String,Object> parmas) {
|
||||||
|
List<MedicalRecords> medicalRecordsList = medicalRecordsService.list(new LambdaQueryWrapper<MedicalRecords>()
|
||||||
|
.eq(MedicalRecords::getUserId,ShiroUtils.getUId())
|
||||||
|
.eq(MedicalRecords::getState,parmas.get("state")));
|
||||||
|
return R.ok().put("medicalRecordsList",medicalRecordsList);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,12 +19,12 @@ public class MedicalRecords {
|
|||||||
private Integer userId;
|
private Integer userId;
|
||||||
//标题
|
//标题
|
||||||
private String title;
|
private String title;
|
||||||
//0暂存1有效
|
//0暂存1提交审核2审核拒绝3审核成功
|
||||||
private Integer state;
|
private Integer state;
|
||||||
//是否加入ai训练库0否1是
|
//是否加入ai训练库0否1是
|
||||||
private Integer train;
|
private Integer train;
|
||||||
//未加入训练库原因
|
//未加入训练库原因
|
||||||
private String trainReason;
|
private String mark;
|
||||||
//一般信息
|
//一般信息
|
||||||
private String information;
|
private String information;
|
||||||
//主诉
|
//主诉
|
||||||
@@ -40,15 +40,19 @@ public class MedicalRecords {
|
|||||||
//诊断
|
//诊断
|
||||||
private String diagnosis;
|
private String diagnosis;
|
||||||
//治疗方案
|
//治疗方案
|
||||||
private String treatmentPlan;
|
private String treatmentPlan="";
|
||||||
|
//图片
|
||||||
|
private String img="";
|
||||||
//原始数据
|
//原始数据
|
||||||
private String data;
|
private String data="";
|
||||||
|
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
@TableLogic
|
@TableLogic
|
||||||
private Integer delFlag;
|
private Integer delFlag;
|
||||||
|
|
||||||
|
@TableField(exist = false)
|
||||||
|
private MyUserEntity user;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private Integer labelId;
|
private Integer labelId;
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
|
|||||||
@@ -10,8 +10,10 @@ import com.peanut.modules.common.service.MedicalRecordsLabelService;
|
|||||||
import com.peanut.modules.common.service.MedicalRecordsService;
|
import com.peanut.modules.common.service.MedicalRecordsService;
|
||||||
import com.peanut.modules.common.service.MedicalRecordsToLabelService;
|
import com.peanut.modules.common.service.MedicalRecordsToLabelService;
|
||||||
import com.peanut.modules.common.to.ParamTo;
|
import com.peanut.modules.common.to.ParamTo;
|
||||||
|
import com.peanut.modules.master.service.MyUserService;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.web.bind.annotation.RequestBody;
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
@@ -30,27 +32,56 @@ public class MedicalRecordsController {
|
|||||||
private MedicalRecordsLabelService medicalRecordsLabelService;
|
private MedicalRecordsLabelService medicalRecordsLabelService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private MedicalRecordsToLabelService toLabelService;
|
private MedicalRecordsToLabelService toLabelService;
|
||||||
|
@Autowired
|
||||||
|
private MyUserService userService;
|
||||||
|
|
||||||
|
//获取医案待审核、拒绝列表
|
||||||
|
@RequestMapping("/getMedicalRecordsListCheck")
|
||||||
|
public R getMedicalRecordsListCheck(@RequestBody Map<String,Object> params){
|
||||||
|
MPJLambdaWrapper<MedicalRecords> wrapper = new MPJLambdaWrapper();
|
||||||
|
wrapper.leftJoin(MedicalRecordsToLabel.class,MedicalRecordsToLabel::getRecordId,MedicalRecords::getId);
|
||||||
|
wrapper.leftJoin(MedicalRecordsLabel.class,MedicalRecordsLabel::getId,MedicalRecordsToLabel::getLabelId);
|
||||||
|
wrapper.leftJoin(MyUserEntity.class,MyUserEntity::getId,MedicalRecords::getUserId);
|
||||||
|
wrapper.selectAll(MedicalRecords.class);
|
||||||
|
wrapper.selectAs(MedicalRecordsLabel::getTitle,"labelTitle");
|
||||||
|
wrapper.eq(MedicalRecords::getState,params.get("state"));
|
||||||
|
Page<MedicalRecords> page = medicalRecordsService.page(new Page<>(
|
||||||
|
Long.parseLong(params.get("current").toString()),Long.parseLong(params.get("limit").toString())),wrapper);
|
||||||
|
for (MedicalRecords mr:page.getRecords()){
|
||||||
|
mr.setUser(userService.getById(mr.getUserId()));
|
||||||
|
}
|
||||||
|
return R.ok().put("page",page);
|
||||||
|
}
|
||||||
|
|
||||||
|
//获取标签下医案列表
|
||||||
@RequestMapping("/getMedicalRecordsList")
|
@RequestMapping("/getMedicalRecordsList")
|
||||||
public R getMedicalRecordsList(@RequestBody Map<String,Object> params){
|
public R getMedicalRecordsList(@RequestBody Map<String,Object> params){
|
||||||
MPJLambdaWrapper<MedicalRecords> wrapper = new MPJLambdaWrapper();
|
MPJLambdaWrapper<MedicalRecords> wrapper = new MPJLambdaWrapper();
|
||||||
wrapper.rightJoin(MedicalRecordsToLabel.class,MedicalRecordsToLabel::getRecordId,MedicalRecords::getId);
|
wrapper.rightJoin(MedicalRecordsToLabel.class,MedicalRecordsToLabel::getRecordId,MedicalRecords::getId);
|
||||||
|
wrapper.leftJoin(MyUserEntity.class,MyUserEntity::getId,MedicalRecords::getUserId);
|
||||||
wrapper.selectAll(MedicalRecords.class);
|
wrapper.selectAll(MedicalRecords.class);
|
||||||
wrapper.eq(MedicalRecordsToLabel::getLabelId,params.get("labelId"));
|
wrapper.eq(MedicalRecordsToLabel::getLabelId,params.get("labelId"));
|
||||||
wrapper.eq(MedicalRecords::getState,1);
|
wrapper.eq(MedicalRecords::getState,3);
|
||||||
|
wrapper.like(StringUtils.isNotBlank(params.get("tel").toString()),MyUserEntity::getTel,params.get("tel"));
|
||||||
wrapper.eq(StringUtils.isNotBlank(params.get("train").toString()),MedicalRecords::getTrain,params.get("train"));
|
wrapper.eq(StringUtils.isNotBlank(params.get("train").toString()),MedicalRecords::getTrain,params.get("train"));
|
||||||
wrapper.eq(StringUtils.isNotBlank(params.get("title").toString()),MedicalRecords::getTitle,params.get("title"));
|
wrapper.like(StringUtils.isNotBlank(params.get("title").toString()),MedicalRecords::getTitle,params.get("title"));
|
||||||
Page<MedicalRecords> page = medicalRecordsService.page(new Page<>(
|
Page<MedicalRecords> page = medicalRecordsService.page(new Page<>(
|
||||||
Long.parseLong(params.get("current").toString()),Long.parseLong(params.get("limit").toString())),wrapper);
|
Long.parseLong(params.get("current").toString()),Long.parseLong(params.get("limit").toString())),wrapper);
|
||||||
|
for (MedicalRecords mr:page.getRecords()){
|
||||||
|
mr.setUser(userService.getById(mr.getUserId()));
|
||||||
|
}
|
||||||
return R.ok().put("page",page);
|
return R.ok().put("page",page);
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/addMedicalRecords")
|
@RequestMapping("/addMedicalRecords")
|
||||||
|
@Transactional
|
||||||
public R addMedicalRecords(@RequestBody MedicalRecords medicalRecords){
|
public R addMedicalRecords(@RequestBody MedicalRecords medicalRecords){
|
||||||
medicalRecords.setState(1);
|
medicalRecords.setState(3);
|
||||||
medicalRecordsService.updateById(medicalRecords);
|
medicalRecordsService.save(medicalRecords);
|
||||||
|
MedicalRecordsToLabel toLabel = new MedicalRecordsToLabel();
|
||||||
|
toLabel.setLabelId(medicalRecords.getLabelId());
|
||||||
|
toLabel.setRecordId(medicalRecords.getId());
|
||||||
|
toLabelService.save(toLabel);
|
||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -60,6 +91,12 @@ public class MedicalRecordsController {
|
|||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequestMapping("/delMedicalRecords")
|
||||||
|
public R delMedicalRecords(@RequestBody MedicalRecords medicalRecords){
|
||||||
|
medicalRecordsService.removeById(medicalRecords);
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -69,7 +106,7 @@ public class MedicalRecordsController {
|
|||||||
}
|
}
|
||||||
private List<MedicalRecordsLabel> medicalRecordsLabels(int id){
|
private List<MedicalRecordsLabel> medicalRecordsLabels(int id){
|
||||||
List<MedicalRecordsLabel> medicalRecordsLabelList = medicalRecordsLabelService.list(new LambdaQueryWrapper<MedicalRecordsLabel>()
|
List<MedicalRecordsLabel> medicalRecordsLabelList = medicalRecordsLabelService.list(new LambdaQueryWrapper<MedicalRecordsLabel>()
|
||||||
.eq(MedicalRecordsLabel::getPid, 0));
|
.eq(MedicalRecordsLabel::getPid, id));
|
||||||
for (MedicalRecordsLabel m : medicalRecordsLabelList){
|
for (MedicalRecordsLabel m : medicalRecordsLabelList){
|
||||||
if(m.getIsLast()!=1){
|
if(m.getIsLast()!=1){
|
||||||
List<MedicalRecordsLabel> so = this.medicalRecordsLabels(m.getId());
|
List<MedicalRecordsLabel> so = this.medicalRecordsLabels(m.getId());
|
||||||
@@ -129,59 +166,6 @@ public class MedicalRecordsController {
|
|||||||
return R.ok().put("medicalRecordsLabel", medicalRecordsLabel);
|
return R.ok().put("medicalRecordsLabel", medicalRecordsLabel);
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/getMedicalRecordsListForLabel")
|
|
||||||
public R getMedicalRecordsListForLabel(@RequestBody ParamTo param){
|
|
||||||
MPJLambdaWrapper<MedicalRecords> wrapper = new MPJLambdaWrapper<>();
|
|
||||||
wrapper.rightJoin(MedicalRecordsToLabel.class,MedicalRecordsToLabel::getRecordId, MedicalRecords::getId);
|
|
||||||
wrapper.selectAll(MedicalRecords.class);
|
|
||||||
wrapper.eq(MedicalRecordsToLabel::getLabelId,param.getId());
|
|
||||||
wrapper.orderByAsc(MedicalRecordsToLabel::getSort);
|
|
||||||
List<MedicalRecords> medicalRecordsList = medicalRecordsService.list(wrapper);
|
|
||||||
return R.ok().put("medicalRecordsList",medicalRecordsList);
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping("/getMedicalRecordsListCanLabel")
|
|
||||||
public R getMedicalRecordsListCanLabel(@RequestBody ParamTo param){
|
|
||||||
List<Integer> collect = toLabelService.list(new LambdaQueryWrapper<MedicalRecordsToLabel>()
|
|
||||||
.eq(MedicalRecordsToLabel::getLabelId, param.getId()))
|
|
||||||
.stream().map(MedicalRecordsToLabel::getRecordId).collect(Collectors.toList());
|
|
||||||
LambdaQueryWrapper<MedicalRecords> wrapper = new LambdaQueryWrapper<>();
|
|
||||||
if (collect.size() != 0){
|
|
||||||
wrapper.notIn(MedicalRecords::getId,collect);
|
|
||||||
}
|
|
||||||
wrapper.like(StringUtils.isNotBlank(param.getKeywords()),MedicalRecords::getTitle,param.getKeywords());
|
|
||||||
Page<MedicalRecords> page = medicalRecordsService.page(new Page<>(param.getPage(), param.getLimit()), wrapper);
|
|
||||||
return R.ok().put("page",page);
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping("/bindMedicalRecordsAndLabel")
|
|
||||||
public R bindMedicalRecordsAndLabel(@RequestBody MedicalRecordsToLabel toLabel){
|
|
||||||
//去重
|
|
||||||
MedicalRecordsToLabel one = toLabelService.getOne(new LambdaQueryWrapper<MedicalRecordsToLabel>()
|
|
||||||
.eq(MedicalRecordsToLabel::getRecordId, toLabel.getRecordId())
|
|
||||||
.eq(MedicalRecordsToLabel::getLabelId, toLabel.getLabelId()));
|
|
||||||
if(one != null){
|
|
||||||
return R.error(501,"绑定失败,绑定关系已将存在");
|
|
||||||
}
|
|
||||||
toLabelService.save(toLabel);
|
|
||||||
return R.ok();
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping("/unbindMedicalRecordsAndLabel")
|
|
||||||
public R unbindMedicalRecordsAndLabel(@RequestBody MedicalRecordsToLabel toLabel){
|
|
||||||
boolean b = toLabelService.removeById(toLabel.getId());
|
|
||||||
if(b){
|
|
||||||
return R.ok();
|
|
||||||
}else {
|
|
||||||
return R.error("error");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@RequestMapping("/updateMedicalRecordsToLabelSort")
|
|
||||||
public R updateMedicalRecordsToLabelSort(@RequestBody MedicalRecordsToLabel toLabel){
|
|
||||||
toLabelService.updateById(toLabel);
|
|
||||||
return R.ok();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
|||||||
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
import com.peanut.common.utils.R;
|
import com.peanut.common.utils.R;
|
||||||
import com.peanut.modules.common.entity.*;
|
import com.peanut.modules.common.entity.*;
|
||||||
|
import com.peanut.modules.common.service.MedicalRecordsService;
|
||||||
import com.peanut.modules.common.service.TaihuTalentService;
|
import com.peanut.modules.common.service.TaihuTalentService;
|
||||||
import com.peanut.modules.common.service.UserCertificateLabelService;
|
import com.peanut.modules.common.service.UserCertificateLabelService;
|
||||||
import com.peanut.modules.common.service.UserCertificateService;
|
import com.peanut.modules.common.service.UserCertificateService;
|
||||||
@@ -30,6 +31,8 @@ public class TaihuTalentController {
|
|||||||
private UserCertificateLabelService userCertificateLabelService;
|
private UserCertificateLabelService userCertificateLabelService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private CourseService courseService;
|
private CourseService courseService;
|
||||||
|
@Autowired
|
||||||
|
private MedicalRecordsService medicalRecordsService;
|
||||||
|
|
||||||
//太湖英才列表
|
//太湖英才列表
|
||||||
@RequestMapping("/getTaihuTalents")
|
@RequestMapping("/getTaihuTalents")
|
||||||
@@ -102,17 +105,24 @@ public class TaihuTalentController {
|
|||||||
res.add(label);
|
res.add(label);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
//名医精彩
|
||||||
MPJLambdaWrapper<CourseEntity> wrapper = new MPJLambdaWrapper();
|
MPJLambdaWrapper<CourseEntity> wrapper = new MPJLambdaWrapper();
|
||||||
wrapper.rightJoin(CourseToTalent.class,CourseToTalent::getCourseId,CourseEntity::getId);
|
wrapper.rightJoin(CourseToTalent.class,CourseToTalent::getCourseId,CourseEntity::getId);
|
||||||
wrapper.leftJoin(TaihuTalent.class,TaihuTalent::getId,CourseToTalent::getTalentId);
|
wrapper.leftJoin(TaihuTalent.class,TaihuTalent::getId,CourseToTalent::getTalentId);
|
||||||
wrapper.selectAll(CourseEntity.class);
|
wrapper.selectAll(CourseEntity.class);
|
||||||
wrapper.eq(CourseToTalent::getTalentId,taihuTalent.getId());
|
wrapper.eq(CourseToTalent::getTalentId,taihuTalent.getId());
|
||||||
List<CourseEntity> courseList = courseService.list(wrapper);
|
List<CourseEntity> courseList = courseService.list(wrapper);
|
||||||
|
//精彩医案
|
||||||
|
List<MedicalRecords> medicalRecords = medicalRecordsService.list(new LambdaQueryWrapper<MedicalRecords>()
|
||||||
|
.eq(MedicalRecords::getState,3)
|
||||||
|
.eq(MedicalRecords::getUserId,taihuTalent.getUserId())
|
||||||
|
.orderByDesc(MedicalRecords::getTrain));
|
||||||
return R.ok()
|
return R.ok()
|
||||||
.put("taihuTalent",taihuTalent)
|
.put("taihuTalent",taihuTalent)
|
||||||
.put("label",titleLabel)
|
.put("label",titleLabel)
|
||||||
.put("certificates",res)
|
.put("certificates",res)
|
||||||
.put("courseList",courseList);
|
.put("courseList",courseList)
|
||||||
|
.put("medicalRecords",medicalRecords);
|
||||||
}
|
}
|
||||||
|
|
||||||
void getUserCertificates(List<UserCertificate> us,UserCertificateLabel label,int userId){
|
void getUserCertificates(List<UserCertificate> us,UserCertificateLabel label,int userId){
|
||||||
|
|||||||
Reference in New Issue
Block a user