修改
This commit is contained in:
@@ -7,9 +7,11 @@ 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.MedicalRecordsLabel;
|
||||||
import com.peanut.modules.common.entity.MedicalRecordsToLabel;
|
import com.peanut.modules.common.entity.MedicalRecordsToLabel;
|
||||||
|
import com.peanut.modules.common.entity.TaihuTalent;
|
||||||
import com.peanut.modules.common.service.MedicalRecordsLabelService;
|
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.service.TaihuTalentService;
|
||||||
import com.vladsch.flexmark.html.HtmlRenderer;
|
import com.vladsch.flexmark.html.HtmlRenderer;
|
||||||
import com.vladsch.flexmark.parser.Parser;
|
import com.vladsch.flexmark.parser.Parser;
|
||||||
import com.vladsch.flexmark.util.data.MutableDataSet;
|
import com.vladsch.flexmark.util.data.MutableDataSet;
|
||||||
@@ -38,6 +40,15 @@ public class MedicalRecordsController {
|
|||||||
private MedicalRecordsLabelService medicalRecordsLabelService;
|
private MedicalRecordsLabelService medicalRecordsLabelService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private MedicalRecordsToLabelService medicalRecordsToLabelService;
|
private MedicalRecordsToLabelService medicalRecordsToLabelService;
|
||||||
|
@Autowired
|
||||||
|
private TaihuTalentService taihuTalentService;
|
||||||
|
|
||||||
|
//当前用户是否拥有医案模块
|
||||||
|
@RequestMapping("/getMedicalRecordsRoleByUser")
|
||||||
|
public R getMedicalRecordsRoleByUser(){
|
||||||
|
return R.ok().put("roleFlag", taihuTalentService.count(new LambdaQueryWrapper<TaihuTalent>()
|
||||||
|
.eq(TaihuTalent::getUserId,ShiroUtils.getUId())));
|
||||||
|
}
|
||||||
|
|
||||||
//获取医案标签列表
|
//获取医案标签列表
|
||||||
@RequestMapping("/getMedicalRecordsLabelList")
|
@RequestMapping("/getMedicalRecordsLabelList")
|
||||||
@@ -64,8 +75,13 @@ 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());
|
if (parmas.containsKey("userId")&& StringUtils.isNotEmpty(parmas.get("userId").toString())) {
|
||||||
|
mr.setUserId(Integer.parseInt(parmas.get("userId").toString()));
|
||||||
|
}else {
|
||||||
|
mr.setUserId(ShiroUtils.getUId());
|
||||||
|
}
|
||||||
String uuid = UUID.randomUUID().toString();
|
String uuid = UUID.randomUUID().toString();
|
||||||
|
mr.setOriginalData(parmas.get("message").toString());
|
||||||
medicalRecordsService.save(mr);
|
medicalRecordsService.save(mr);
|
||||||
StringBuffer sb = new StringBuffer();
|
StringBuffer sb = new StringBuffer();
|
||||||
Date date = new Date();
|
Date date = new Date();
|
||||||
@@ -73,29 +89,60 @@ public class MedicalRecordsController {
|
|||||||
Parser parser = Parser.builder(options).build();
|
Parser parser = Parser.builder(options).build();
|
||||||
HtmlRenderer renderer = HtmlRenderer.builder(options).build();
|
HtmlRenderer renderer = HtmlRenderer.builder(options).build();
|
||||||
chatClient.prompt()
|
chatClient.prompt()
|
||||||
.user("你是一名编辑,给你一份资料,必须按照1.一般信息,2.主诉,3.现病史,4.既往史,5.家族史,6.体格检查,7.诊断,8.治疗和后续治疗;" +
|
.user("""
|
||||||
"这8方面进行拆分,如果没有内容只显示标题,内容为无。内容开头必须为一般信息,不要增删内容,个人信息必须脱敏处理,结果必须是markdown格式;内容如下:"+
|
不要增删内容得情况下拆分一下内容,个人信息要进行脱敏处理,如果有标题放到一般信息中,开头必须是1.一般信息,1.一般信息这种要h1样式,
|
||||||
parmas.get("message").toString())
|
结果必须是markdown格式,按照以下模板:
|
||||||
|
1.一般信息
|
||||||
|
...
|
||||||
|
end
|
||||||
|
2.主诉
|
||||||
|
...
|
||||||
|
end
|
||||||
|
3.现病史
|
||||||
|
...
|
||||||
|
end
|
||||||
|
4.既往史
|
||||||
|
...
|
||||||
|
end
|
||||||
|
5.家族史
|
||||||
|
...
|
||||||
|
end
|
||||||
|
6.体格检查
|
||||||
|
...
|
||||||
|
end
|
||||||
|
7.诊断
|
||||||
|
...
|
||||||
|
end
|
||||||
|
8.治疗和后续诊断
|
||||||
|
...
|
||||||
|
end
|
||||||
|
9.其他
|
||||||
|
...
|
||||||
|
"""+
|
||||||
|
"内容如下:"+parmas.get("message").toString())
|
||||||
.stream()
|
.stream()
|
||||||
.content()
|
.content()
|
||||||
.doOnNext(data -> {
|
.doOnNext(sb::append)
|
||||||
sb.append(data);
|
|
||||||
})
|
|
||||||
.doFinally(data -> {
|
.doFinally(data -> {
|
||||||
System.out.println(sb);
|
try {
|
||||||
String res = sb.toString().replace("```markdown\n","").replace("```","");
|
System.out.println(sb);
|
||||||
String[] datas = res.split("\n\n");
|
String res = sb.toString().replace("```markdown\n","").replace("```","");
|
||||||
mr.setInformation(renderer.render(parser.parse(datas[0])));
|
String[] datas = res.split("end");
|
||||||
mr.setChiefComplaint(renderer.render(parser.parse(datas[1])));
|
mr.setInformation(renderer.render(parser.parse(datas[0])));
|
||||||
mr.setHistoryOfPresentIllness(renderer.render(parser.parse(datas[2])));
|
mr.setChiefComplaint(renderer.render(parser.parse(datas[1])));
|
||||||
mr.setPastHistory(renderer.render(parser.parse(datas[3])));
|
mr.setHistoryOfPresentIllness(renderer.render(parser.parse(datas[2])));
|
||||||
mr.setPersonalAndFamilyHistory(renderer.render(parser.parse(datas[4])));
|
mr.setPastHistory(renderer.render(parser.parse(datas[3])));
|
||||||
mr.setPhysicaExamination(renderer.render(parser.parse(datas[5])));
|
mr.setPersonalAndFamilyHistory(renderer.render(parser.parse(datas[4])));
|
||||||
mr.setDiagnosis(renderer.render(parser.parse(datas[6])));
|
mr.setPhysicaExamination(renderer.render(parser.parse(datas[5])));
|
||||||
mr.setTreatmentPlan(renderer.render(parser.parse(datas[7])));
|
mr.setDiagnosis(renderer.render(parser.parse(datas[6])));
|
||||||
mr.setData(uuid+"->");
|
mr.setTreatmentPlan(renderer.render(parser.parse(datas[7])));
|
||||||
medicalRecordsService.saveOrUpdate(mr);
|
mr.setOther(renderer.render(parser.parse(datas[8])));
|
||||||
System.out.println(new Date().getTime()-date.getTime());
|
mr.setData(uuid+"->");
|
||||||
|
medicalRecordsService.saveOrUpdate(mr);
|
||||||
|
System.out.println(new Date().getTime()-date.getTime());
|
||||||
|
} catch (Exception e) {
|
||||||
|
medicalRecordsService.removeById(mr.getId());
|
||||||
|
}
|
||||||
})
|
})
|
||||||
.doOnError(error -> {
|
.doOnError(error -> {
|
||||||
medicalRecordsService.removeById(mr.getId());
|
medicalRecordsService.removeById(mr.getId());
|
||||||
|
|||||||
@@ -41,10 +41,14 @@ public class MedicalRecords {
|
|||||||
private String diagnosis;
|
private String diagnosis;
|
||||||
//治疗方案
|
//治疗方案
|
||||||
private String treatmentPlan="";
|
private String treatmentPlan="";
|
||||||
|
//其他
|
||||||
|
private String other="";
|
||||||
//图片
|
//图片
|
||||||
private String img="";
|
private String img="";
|
||||||
//原始数据
|
//总结数据
|
||||||
private String data="";
|
private String data="";
|
||||||
|
//原始数据
|
||||||
|
private String originalData="";
|
||||||
|
|
||||||
private Date createTime;
|
private Date createTime;
|
||||||
|
|
||||||
|
|||||||
@@ -39,16 +39,25 @@ public class MedicalRecordsController {
|
|||||||
@RequestMapping("/getMedicalRecordsListCheck")
|
@RequestMapping("/getMedicalRecordsListCheck")
|
||||||
public R getMedicalRecordsListCheck(@RequestBody Map<String,Object> params){
|
public R getMedicalRecordsListCheck(@RequestBody Map<String,Object> params){
|
||||||
MPJLambdaWrapper<MedicalRecords> wrapper = new MPJLambdaWrapper();
|
MPJLambdaWrapper<MedicalRecords> wrapper = new MPJLambdaWrapper();
|
||||||
wrapper.leftJoin(MedicalRecordsToLabel.class,MedicalRecordsToLabel::getRecordId,MedicalRecords::getId);
|
if ("3".equals(params.get("state"))){
|
||||||
wrapper.leftJoin(MedicalRecordsLabel.class,MedicalRecordsLabel::getId,MedicalRecordsToLabel::getLabelId);
|
wrapper.leftJoin(MedicalRecordsToLabel.class,MedicalRecordsToLabel::getRecordId,MedicalRecords::getId);
|
||||||
|
wrapper.leftJoin(MedicalRecordsLabel.class,MedicalRecordsLabel::getId,MedicalRecordsToLabel::getLabelId);
|
||||||
|
wrapper.selectAs(MedicalRecordsLabel::getTitle,"labelTitle");
|
||||||
|
}
|
||||||
wrapper.leftJoin(MyUserEntity.class,MyUserEntity::getId,MedicalRecords::getUserId);
|
wrapper.leftJoin(MyUserEntity.class,MyUserEntity::getId,MedicalRecords::getUserId);
|
||||||
wrapper.selectAll(MedicalRecords.class);
|
wrapper.selectAll(MedicalRecords.class);
|
||||||
wrapper.selectAs(MedicalRecordsLabel::getTitle,"labelTitle");
|
|
||||||
wrapper.eq(MedicalRecords::getState,params.get("state"));
|
wrapper.eq(MedicalRecords::getState,params.get("state"));
|
||||||
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()){
|
for (MedicalRecords mr:page.getRecords()){
|
||||||
mr.setUser(userService.getById(mr.getUserId()));
|
mr.setUser(userService.getById(mr.getUserId()));
|
||||||
|
MedicalRecordsToLabel toLabel = toLabelService.getOne(new LambdaQueryWrapper<MedicalRecordsToLabel>()
|
||||||
|
.eq(MedicalRecordsToLabel::getRecordId,mr.getId()));
|
||||||
|
if (toLabel!=null){
|
||||||
|
MedicalRecordsLabel label = medicalRecordsLabelService.getById(toLabel.getLabelId());
|
||||||
|
mr.setLabelId(label.getId());
|
||||||
|
mr.setLabelTitle(label.getTitle());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return R.ok().put("page",page);
|
return R.ok().put("page",page);
|
||||||
}
|
}
|
||||||
@@ -86,7 +95,14 @@ public class MedicalRecordsController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@RequestMapping("/editMedicalRecords")
|
@RequestMapping("/editMedicalRecords")
|
||||||
|
@Transactional
|
||||||
public R editMedicalRecords(@RequestBody MedicalRecords medicalRecords){
|
public R editMedicalRecords(@RequestBody MedicalRecords medicalRecords){
|
||||||
|
MedicalRecordsToLabel toLabel = toLabelService.getOne(new LambdaQueryWrapper<MedicalRecordsToLabel>()
|
||||||
|
.eq(MedicalRecordsToLabel::getRecordId,medicalRecords.getId()));
|
||||||
|
if (toLabel!=null){
|
||||||
|
toLabel.setLabelId(medicalRecords.getLabelId());
|
||||||
|
toLabelService.updateById(toLabel);
|
||||||
|
}
|
||||||
medicalRecordsService.updateById(medicalRecords);
|
medicalRecordsService.updateById(medicalRecords);
|
||||||
return R.ok();
|
return R.ok();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user