修改
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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user