修改
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.MedicalRecordsLabel;
|
||||
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.MedicalRecordsService;
|
||||
import com.peanut.modules.common.service.MedicalRecordsToLabelService;
|
||||
import com.peanut.modules.common.service.TaihuTalentService;
|
||||
import com.vladsch.flexmark.html.HtmlRenderer;
|
||||
import com.vladsch.flexmark.parser.Parser;
|
||||
import com.vladsch.flexmark.util.data.MutableDataSet;
|
||||
@@ -38,6 +40,15 @@ public class MedicalRecordsController {
|
||||
private MedicalRecordsLabelService medicalRecordsLabelService;
|
||||
@Autowired
|
||||
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")
|
||||
@@ -64,8 +75,13 @@ public class MedicalRecordsController {
|
||||
@RequestMapping(value = "/medicalRecordsSplit")
|
||||
public R medicalRecordsSplit(@RequestBody Map<String,Object> parmas) {
|
||||
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();
|
||||
mr.setOriginalData(parmas.get("message").toString());
|
||||
medicalRecordsService.save(mr);
|
||||
StringBuffer sb = new StringBuffer();
|
||||
Date date = new Date();
|
||||
@@ -73,29 +89,60 @@ public class MedicalRecordsController {
|
||||
Parser parser = Parser.builder(options).build();
|
||||
HtmlRenderer renderer = HtmlRenderer.builder(options).build();
|
||||
chatClient.prompt()
|
||||
.user("你是一名编辑,给你一份资料,必须按照1.一般信息,2.主诉,3.现病史,4.既往史,5.家族史,6.体格检查,7.诊断,8.治疗和后续治疗;" +
|
||||
"这8方面进行拆分,如果没有内容只显示标题,内容为无。内容开头必须为一般信息,不要增删内容,个人信息必须脱敏处理,结果必须是markdown格式;内容如下:"+
|
||||
parmas.get("message").toString())
|
||||
.user("""
|
||||
不要增删内容得情况下拆分一下内容,个人信息要进行脱敏处理,如果有标题放到一般信息中,开头必须是1.一般信息,1.一般信息这种要h1样式,
|
||||
结果必须是markdown格式,按照以下模板:
|
||||
1.一般信息
|
||||
...
|
||||
end
|
||||
2.主诉
|
||||
...
|
||||
end
|
||||
3.现病史
|
||||
...
|
||||
end
|
||||
4.既往史
|
||||
...
|
||||
end
|
||||
5.家族史
|
||||
...
|
||||
end
|
||||
6.体格检查
|
||||
...
|
||||
end
|
||||
7.诊断
|
||||
...
|
||||
end
|
||||
8.治疗和后续诊断
|
||||
...
|
||||
end
|
||||
9.其他
|
||||
...
|
||||
"""+
|
||||
"内容如下:"+parmas.get("message").toString())
|
||||
.stream()
|
||||
.content()
|
||||
.doOnNext(data -> {
|
||||
sb.append(data);
|
||||
})
|
||||
.doOnNext(sb::append)
|
||||
.doFinally(data -> {
|
||||
System.out.println(sb);
|
||||
String res = sb.toString().replace("```markdown\n","").replace("```","");
|
||||
String[] datas = res.split("\n\n");
|
||||
mr.setInformation(renderer.render(parser.parse(datas[0])));
|
||||
mr.setChiefComplaint(renderer.render(parser.parse(datas[1])));
|
||||
mr.setHistoryOfPresentIllness(renderer.render(parser.parse(datas[2])));
|
||||
mr.setPastHistory(renderer.render(parser.parse(datas[3])));
|
||||
mr.setPersonalAndFamilyHistory(renderer.render(parser.parse(datas[4])));
|
||||
mr.setPhysicaExamination(renderer.render(parser.parse(datas[5])));
|
||||
mr.setDiagnosis(renderer.render(parser.parse(datas[6])));
|
||||
mr.setTreatmentPlan(renderer.render(parser.parse(datas[7])));
|
||||
mr.setData(uuid+"->");
|
||||
medicalRecordsService.saveOrUpdate(mr);
|
||||
System.out.println(new Date().getTime()-date.getTime());
|
||||
try {
|
||||
System.out.println(sb);
|
||||
String res = sb.toString().replace("```markdown\n","").replace("```","");
|
||||
String[] datas = res.split("end");
|
||||
mr.setInformation(renderer.render(parser.parse(datas[0])));
|
||||
mr.setChiefComplaint(renderer.render(parser.parse(datas[1])));
|
||||
mr.setHistoryOfPresentIllness(renderer.render(parser.parse(datas[2])));
|
||||
mr.setPastHistory(renderer.render(parser.parse(datas[3])));
|
||||
mr.setPersonalAndFamilyHistory(renderer.render(parser.parse(datas[4])));
|
||||
mr.setPhysicaExamination(renderer.render(parser.parse(datas[5])));
|
||||
mr.setDiagnosis(renderer.render(parser.parse(datas[6])));
|
||||
mr.setTreatmentPlan(renderer.render(parser.parse(datas[7])));
|
||||
mr.setOther(renderer.render(parser.parse(datas[8])));
|
||||
mr.setData(uuid+"->");
|
||||
medicalRecordsService.saveOrUpdate(mr);
|
||||
System.out.println(new Date().getTime()-date.getTime());
|
||||
} catch (Exception e) {
|
||||
medicalRecordsService.removeById(mr.getId());
|
||||
}
|
||||
})
|
||||
.doOnError(error -> {
|
||||
medicalRecordsService.removeById(mr.getId());
|
||||
|
||||
@@ -41,10 +41,14 @@ public class MedicalRecords {
|
||||
private String diagnosis;
|
||||
//治疗方案
|
||||
private String treatmentPlan="";
|
||||
//其他
|
||||
private String other="";
|
||||
//图片
|
||||
private String img="";
|
||||
//原始数据
|
||||
//总结数据
|
||||
private String data="";
|
||||
//原始数据
|
||||
private String originalData="";
|
||||
|
||||
private Date createTime;
|
||||
|
||||
|
||||
@@ -39,16 +39,25 @@ public class MedicalRecordsController {
|
||||
@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);
|
||||
if ("3".equals(params.get("state"))){
|
||||
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.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()));
|
||||
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);
|
||||
}
|
||||
@@ -86,7 +95,14 @@ public class MedicalRecordsController {
|
||||
}
|
||||
|
||||
@RequestMapping("/editMedicalRecords")
|
||||
@Transactional
|
||||
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);
|
||||
return R.ok();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user