📅  最后修改于: 2023-12-03 15:39:23.142000             🧑  作者: Mango
本项目使用 TypeScript 编写,实现了一个在线预约医生的功能,针对巴基斯坦地区的医疗需求进行设计。
用户可以在本网站上选择医生,预约时间段并填写个人信息,确认预约后即可获得预约成功的提示信息。
本项目采用前后端分离的架构模式。
本项目使用 MongoDB 数据库,并定义了以下 Schema。
// 用户信息
interface User {
name: string; // 姓名
age: number; // 年龄
gender: string; // 性别
phone: string; // 手机号码
email: string; // 电子邮箱
}
// 医生信息
interface Doctor {
name: string; // 姓名
title: string; // 职称
specialty: string; // 专长
weekDay: string[]; // 工作日
availableTime: number[]; // 可预约时间段,0 表示 9:00-10:00,1 表示 10:00-11:00,以此类推
}
// 预约信息
interface Appointment {
user: User; // 用户信息
doctor: Doctor; // 医生信息
date: string; // 预约日期
time: number; // 预约时间
status: string; // 预约状态,未处理、待确认、已完成
}
GET /api/doctors
返回所有医生的列表。
[
{
"name": "张医生",
"title": "主治医师",
"specialty": "心脏病",
"weekDay": ["周一", "周三", "周五"],
"availableTime": [0, 1, 2, 3, 4]
},
{
"name": "李医生",
"title": "主任医师",
"specialty": "眼科",
"weekDay": ["周二", "周四", "周六"],
"availableTime": [1, 3, 5]
}
]
POST /api/appointment
用户填写个人信息和预约信息,发起预约请求。
请求参数:
{
"user": {
"name": "张三",
"age": 25,
"gender": "男",
"phone": "13000000000",
"email": "zhangsan@example.com"
},
"doctor": {
"name": "张医生",
"title": "主治医师",
"specialty": "心脏病",
"weekDay": ["周一", "周三", "周五"],
"availableTime": [0, 1, 2, 3, 4]
},
"date": "2022-04-01",
"time": 0
}
说明:
user
字段为用户信息。doctor
字段为医生信息。date
字段为预约日期,格式为 yyyy-mm-dd
。time
字段为预约时间段,0 表示 9:00-10:00,1 表示 10:00-11:00,以此类推。返回值:
{
"status": "success",
"message": "预约成功!"
}
GET /api/appointment/:id
根据预约 ID 查询预约状态。
请求参数:
id
:预约 ID。返回值:
{
"id": "123456",
"user": {
"name": "张三",
"age": 25,
"gender": "男",
"phone": "13000000000",
"email": "zhangsan@example.com"
},
"doctor": {
"name": "张医生",
"title": "主治医师",
"specialty": "心脏病",
"weekDay": ["周一", "周三", "周五"],
"availableTime": [0, 1, 2, 3, 4]
},
"date": "2022-04-01",
"time": 0,
"status": "待确认"
}
返回值说明:
id
:预约 ID。user
:用户信息。doctor
:医生信息。date
:预约日期。time
:预约时间段,0 表示 9:00-10:00,1 表示 10:00-11:00,以此类推。status
:预约状态,未处理、待确认、已完成。本项目使用 Docker 容器进行部署。
安装 Docker 和 Docker Compose。
下载本项目源代码。
在项目根目录下,执行以下命令启动容器:
$ docker-compose up -d
在浏览器中访问 http://localhost:3000
即可使用该系统。
本项目使用 TypeScript 编写,具有强类型检查和面向对象编程的优点,同时采用了流行的 React、Node.js、Express、MongoDB 等技术栈,实现了一个在线预约医生的功能。在此基础上,可以进一步扩展功能,提高系统的实用性和可操作性。