|
|
2 هفته پیش | |
|---|---|---|
| .. | ||
| backend | 2 هفته پیش | |
| docs | 2 هفته پیش | |
| frontend | 2 هفته پیش | |
| CALL_FLOW.md | 2 هفته پیش | |
| CONVERSATION_UPGRADE.md | 2 هفته پیش | |
| FAQ_TEST_CASES.md | 1 ماه پیش | |
| README.md | 2 هفته پیش | |
基于 SpringBoot + LangChain4J + Vue 的卡片式医疗挂号演示系统,实现对话式AI导诊和智能挂号功能。
| 层级 | 技术 |
|---|---|
| 后端 | SpringBoot 3.2 + LangChain4J 0.25 |
| 前端 | Vue 3.3 + Pinia |
| 构建工具 | Maven + npm |
| 其他 | ZXing (二维码生成) |
medical-card-demo/
├── backend/ # SpringBoot 后端
│ ├── src/main/java/ # Java 源代码
│ │ └── com/medical/demo/
│ │ ├── controller/ # API 控制器
│ │ ├── service/ # 业务逻辑
│ │ └── dto/ # 数据传输对象
│ ├── src/main/resources/ # 配置文件
│ └── pom.xml # Maven 配置
├── frontend/ # Vue 前端
│ ├── src/
│ │ ├── components/ # 组件
│ │ │ ├── cards/ # 卡片组件
│ │ │ └── ChatInterface.vue
│ │ ├── api/ # API 接口
│ │ └── App.vue
│ ├── public/
│ └── package.json
├── build.sh # 构建脚本
├── start.sh # 启动脚本
└── README.md # 项目文档
# 进入后端目录
cd medical-card-demo/backend
cd "E:/java/emoon/card_robot_demo/medical-card-demo/backend"
cd E:/java/emoon/card_robot_demo/medical-card-demo/backend
./startup.sh
# 运行一键启动脚本
./startup.sh
启动脚本会自动完成:
应用启动后:后端 JAR 为 http://localhost:3381;一键脚本末尾会启动前端开发服(默认 http://localhost:8080,API 代理至 3381)。
如果需要分别启动前后端进行开发:
# 终端1 - 启动后端
cd medical-card-demo/backend
mvn spring-boot:run
# 终端2 - 启动前端(开发服务器)
cd medical-card-demo/frontend
npm install # 首次需要安装依赖
npm run serve
cd medical-card-demo/backend
# 先构建前端
cd ../frontend
npm install
npm run build
# 再打包后端(会自动复制前端资源)
cd ../backend
mvn clean package
# 运行打包后的JAR
java -jar target/RobotMedicalCardDemo.jar
描述病情
选择科室
选择医生和排班
完成挂号
系统支持以下常见症状识别:
POST /api/v1/chat/messages
Content-Type: application/json
{
"query": "我头疼发烧",
"conversationId": ""
}
POST /api/v1/chat/select-department?conversationId=xxx&departmentId=dept_001
POST /api/v1/chat/select-doctor?conversationId=xxx&doctorId=doc_xxx&date=2026-02-15
POST /api/v1/chat/appointment
Content-Type: application/json
{
"departmentId": "dept_001",
"doctorId": "doc_xxx",
"date": "2026-02-15",
"scheduleId": "slot_001",
"timeSlot": "09:00-09:15",
"conversationId": "xxx"
}
本项目参考了 medical-agent-card-interaction-design.md 中的设计原理:
department-selection:科室选择卡片doctor-selection:医生排班选择卡片appointment-success:挂号成功卡片cd backend
# 开发模式运行
mvn spring-boot:run
# 运行测试
mvn test
# 打包
mvn clean package
cd frontend
# 安装依赖
npm install
# 开发模式运行
npm run serve
# 构建生产版本
npm run build
推荐使用 Chrome 移动端模拟器进行演示
MIT License
如有问题或建议,欢迎反馈。