病历夹

This commit is contained in:
wuchunlei
2025-05-19 15:25:53 +08:00
parent d004e86110
commit a0e5c26266
7 changed files with 144 additions and 68 deletions

View File

@@ -1,50 +0,0 @@
package com.peanut.modules.common.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.peanut.common.utils.R;
import com.peanut.common.utils.ShiroUtils;
import com.peanut.modules.common.entity.AiRecordFolder;
import com.peanut.modules.common.service.AiRecordFolderService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Map;
@Slf4j
@RestController("commonAiRecordFolder")
@RequestMapping("common/aiRecordFolder")
public class AiRecordFolderController {
@Autowired
private AiRecordFolderService aiRecordFolderService;
//病历夹列表
@RequestMapping("/getRecordFolders")
public R getRecordFolders(@RequestBody Map<String,Object> params){
LambdaQueryWrapper<AiRecordFolder> wrapper = new LambdaQueryWrapper();
wrapper.eq(AiRecordFolder::getUserId, ShiroUtils.getUId());
if (StringUtils.isNotEmpty(params.get("title").toString())||StringUtils.isNotEmpty(params.get("patientName").toString())){
wrapper.like(StringUtils.isNotEmpty(params.get("title").toString()),AiRecordFolder::getTitle,params.get("title"));
wrapper.like(StringUtils.isNotEmpty(params.get("patientName").toString()),AiRecordFolder::getPatientName,params.get("patientName"));
}else {
wrapper.select(AiRecordFolder::getTitle);
wrapper.groupBy(AiRecordFolder::getTitle);
}
wrapper.orderByDesc(AiRecordFolder::getCreateTime);
return R.ok().put("list",aiRecordFolderService.list(wrapper));
}
//将聊天记录加入病历夹
@RequestMapping("/addRecordFolder")
public R addRecordFolder(@RequestBody AiRecordFolder aiRecordFolder){
aiRecordFolder.setUserId(ShiroUtils.getUId());
aiRecordFolderService.save(aiRecordFolder) ;
return R.ok();
}
}

View File

@@ -0,0 +1,9 @@
package com.peanut.modules.common.dao;
import com.github.yulichang.base.MPJBaseMapper;
import com.peanut.modules.common.entity.AiRecordFolderChat;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface AiRecordFolderChatDao extends MPJBaseMapper<AiRecordFolderChat> {
}

View File

@@ -1,10 +1,13 @@
package com.peanut.modules.common.entity; package com.peanut.modules.common.entity;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data; import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import java.util.List;
@Data @Data
@TableName("ai_record_folder") @TableName("ai_record_folder")
@@ -16,17 +19,9 @@ public class AiRecordFolder implements Serializable {
private Integer userId; private Integer userId;
//病历夹名称 private String folderName;
private String title;
//患者姓名 private Integer sort;
private String patientName;
//聊天助手id
private String chatAssistantId;
//对话id
private String chatId;
private Date createTime; private Date createTime;
@@ -34,10 +29,4 @@ public class AiRecordFolder implements Serializable {
private Integer delFlag; private Integer delFlag;
} }

View File

@@ -0,0 +1,34 @@
package com.peanut.modules.common.entity;
import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
@Data
@TableName("ai_record_folder_chat")
public class AiRecordFolderChat implements Serializable {
private static final long serialVersionUID = 1L;
@TableId
private Integer id;
//病历夹id
private String folderId;
//患者姓名
private String patientName;
//聊天助手id
private String chatAssistantId;
//对话id
private String chatId;
private Date createTime;
@TableLogic
private Integer delFlag;
}

View File

@@ -0,0 +1,7 @@
package com.peanut.modules.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.peanut.modules.common.entity.AiRecordFolderChat;
public interface AiRecordFolderChatService extends IService<AiRecordFolderChat> {
}

View File

@@ -0,0 +1,13 @@
package com.peanut.modules.common.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.peanut.modules.common.dao.AiRecordFolderChatDao;
import com.peanut.modules.common.entity.AiRecordFolderChat;
import com.peanut.modules.common.service.AiRecordFolderChatService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
@Slf4j
@Service("commonAiRecordFolderChatService")
public class AiRecordFolderChatServiceImpl extends ServiceImpl<AiRecordFolderChatDao, AiRecordFolderChat> implements AiRecordFolderChatService {
}

View File

@@ -0,0 +1,74 @@
package com.peanut.modules.taihumed.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import com.peanut.common.utils.R;
import com.peanut.common.utils.ShiroUtils;
import com.peanut.modules.common.entity.AiRecordFolder;
import com.peanut.modules.common.entity.AiRecordFolderChat;
import com.peanut.modules.common.service.AiRecordFolderChatService;
import com.peanut.modules.common.service.AiRecordFolderService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
@Slf4j
@RestController("taihumedAiRecordFolder")
@RequestMapping("taihumed/aiRecordFolder")
public class AiRecordFolderController {
@Autowired
private AiRecordFolderService aiRecordFolderService;
@Autowired
private AiRecordFolderChatService aiRecordFolderChatService;
//病历夹下患者列表
@RequestMapping("/getRecordFolderChats")
public R getRecordFolderChats(@RequestBody Map<String,Object> params){
LambdaQueryWrapper<AiRecordFolderChat> wrapper = new LambdaQueryWrapper();
wrapper.eq(AiRecordFolderChat::getFolderId,params.get("folderId"));
wrapper.like(StringUtils.isNotEmpty(params.get("patientName").toString()), AiRecordFolderChat::getPatientName,params.get("patientName"));
wrapper.orderByDesc(AiRecordFolderChat::getCreateTime);
List<AiRecordFolderChat> list = aiRecordFolderChatService.list(wrapper);
return R.ok().put("list",list);
}
//病历夹列表
@RequestMapping("/getRecordFolders")
public R getRecordFolders(@RequestBody Map<String,Object> params){
MPJLambdaWrapper<AiRecordFolder> wrapper = new MPJLambdaWrapper();
wrapper.leftJoin(AiRecordFolderChat.class,AiRecordFolderChat::getFolderId,AiRecordFolder::getId);
wrapper.selectAll(AiRecordFolder.class);
wrapper.distinct();
wrapper.eq(AiRecordFolder::getUserId, ShiroUtils.getUId());
wrapper.like(StringUtils.isNotEmpty(params.get("folderName").toString()), AiRecordFolder::getFolderName,params.get("folderName"));
wrapper.like(StringUtils.isNotEmpty(params.get("patientName").toString()), AiRecordFolderChat::getPatientName,params.get("patientName"));
wrapper.orderByAsc(AiRecordFolder::getSort);
wrapper.orderByDesc(AiRecordFolderChat::getCreateTime);
List<AiRecordFolder> list = aiRecordFolderService.list(wrapper);
return R.ok().put("list",list);
}
//将聊天记录加入病历夹
@RequestMapping("/addRecordFolderChat")
public R addRecordFolderChat(@RequestBody AiRecordFolderChat aiRecordFolderChat){
aiRecordFolderChatService.save(aiRecordFolderChat) ;
return R.ok();
}
//新建病例夹
@RequestMapping("/addRecordFolder")
public R addRecordFolder(@RequestBody AiRecordFolder aiRecordFolder){
aiRecordFolder.setUserId(ShiroUtils.getUId());
aiRecordFolderService.save(aiRecordFolder) ;
return R.ok();
}
}