ThinkChat🤖让你学习和工作更高效,注册即送10W Token,即刻开启你的AI之旅 广告
## 1.0版本 ## 预约挂号提交说明 功能说明:目前预约挂号还不是跟医院信息系统(HIS)对接的,所以无法保证挂号的实时性。需要客户随时关注后台 ### 1.数据库建表 #### (1)挂号科室表:chuanhai_appointment_department ``` DROP TABLE IF EXISTS `chuanhai_appointment_department`; CREATE TABLE `chuanhai_appointment_department` ( `id` int(11) NOT NULL AUTO_INCREMENT, `addTime` int(11) NOT NULL DEFAULT 0 COMMENT '添加时间', `editTime` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间', `department_name` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '部门名称', `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序', `toStatus` tinyint(1) NOT NULL DEFAULT 0 COMMENT '审核状态', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 6 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '挂号科室管理表' ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1; ``` #### (2)挂号专家表:chuanhai_appointment_doctor ``` DROP TABLE IF EXISTS `chuanhai_appointment_doctor`; CREATETABLE`chuanhai_appointment_doctor`  ( `id`int(11) NOTNULL AUTO\_INCREMENT, `addTime`int(11) NOTNULL DEFAULT 0 COMMENT '添加时间', `editTime`int(11) NOTNULL DEFAULT 0 COMMENT '修改时间', `sort`int(11) NOTNULL DEFAULT 0 COMMENT '排序', `toStatus`tinyint(1) NOTNULL DEFAULT 0 COMMENT '审核状态', `departmentId`varchar(50) CHARACTERSET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '挂号科室id', `doctor_name`varchar(50) CHARACTERSET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '专家姓名', `titles`varchar(20) CHARACTERSET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '职称', PRIMARYKEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT =4 CHARACTERSET= utf8 COLLATE = utf8_general_ci COMMENT ='挂号专家列表' ROW\_FORMAT =Dynamic; SET FOREIGN\_KEY_CHECKS =1; ``` #### (3)挂号记录表: chuanhai_appointment_register ``` DROP TABLE IF EXISTS `chuanhai_appointment_register`; CREATE TABLE `chuanhai_appointment_register` ( `id` int(11) NOT NULL AUTO_INCREMENT, `classId` int(11) NOT NULL DEFAULT 0 COMMENT '挂号分类id', `addTime` int(11) NOT NULL DEFAULT 0 COMMENT '添加时间', `editTime` int(11) NOT NULL DEFAULT 0 COMMENT '修改时间', `toStatus` tinyint(1) NOT NULL DEFAULT 0 COMMENT '审核状态', `sort` int(11) NOT NULL DEFAULT 0 COMMENT '排序', `name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '患者姓名', `mobile` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手机号', `IdCard` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '0' COMMENT '身份证号码', `doctorId` int(10) NULL DEFAULT NULL COMMENT '挂号专家id', `departmentId` int(10) NULL DEFAULT NULL COMMENT '挂号科室id', `orderTime` int(11) NOT NULL DEFAULT 0 COMMENT '预约时间', `content` varchar(200) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '备注', PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB AUTO_INCREMENT = 15 CHARACTER SET = utf8 COLLATE = utf8_general_ci COMMENT = '挂号记录表' ROW_FORMAT = Dynamic; SET FOREIGN_KEY_CHECKS = 1; ``` ### 2.后台管理预约挂号 #### (1)应用面板开启应用 ,添加预约挂号侧边导航 开启应用:在模板文件夹下-Admin/System.index.html找到预约挂号的代码,添加跳转链接和css样式。 添加侧边导航:AdminCommon.class.php中添加‘‘服务’’对应的数组元素。 #### (2)控制器:Admin模块添加Appointment.class.php控制器,包括挂号,科室,专家的CURD操作。注意方法名要对应后台模板的命名。 #### (3)前端科室-专家联动的控制器:Index模块添加Appointment.class.php控制器。前端ajax请求科室和专家的接口。 #### (4)后台模板: Appointment.addAppointment.html Appointment.indexAppointment.html Appointment.addDepartment.html Appointment.indexDepartment.html Appointment.addDoctor.html Appointment.indexDoctor.html ### 3.前端数据提交 ``` ‘‘姓名’’(name), “电话”(mobile), “身份证号”(IdCard), “科室”(departmentId), “专家”(doctorId), “预约时间”(orderTime), “病情描述”(content) 验证码(imageVerificationCode) ``` 科室和专家是联动的,预约的时间限制在明天以后(需要引入 [My97日期控件](https://www.baidu.com/link?url=AlADf_lSTSQGsgvs50tNDV8XjYnTyVKv2_7B08PnYJy&wd=&eqid=89854717000016f9000000065f0d2b48))。 下载的压缩包:DatePicker.zip放到stati下的info或M目录下解压,然后分别引入两个文件: ``` {css file="__STATIC__M/Info/DatePicker/skin/WdatePicker.css" /} {js file="__STATIC__M/Info/DatePicker/WdatePicker.js" /} ``` 注意:表单提交地址的变化 1.0版本 --- /Index/Appointment/index 2.0版本 --- /v1/Index/Appointment/index ### 4.表单POST提交操作 ``` $('form').submit(function(){ //submit   $.post($(this).attr('action'),$(this).serializeArray(),function(result){ //success if(result['status'] !=0){ layer.msg(result['message'], {icon: 2});  } //error else{ layer.msg(result['message'], {icon: 1},function () { window.location.href=result['result']['url'];       });     }   },'json'); return false; }); ```