jh-module-ecg/jh-module-ecg-api/src/main/java/cn/lihu/jh/module/ecg/enums/ErrorCodeConstants.java
@@ -34,4 +34,6 @@ ErrorCode DEV_DISMANTLE_EXIST = new ErrorCode(1_010_005_006, "å½å¤©å·²æææº"); ErrorCode JOB_RECORD_NOT_EXISTS = new ErrorCode(1_010_006_000, "å·¥ä½è®°å½ä¸åå¨"); ErrorCode CALL_NOT_EXISTS = new ErrorCode(1_010_007_000, "å«å·ä¸åå¨"); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/call/CallController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,83 @@ package cn.lihu.jh.module.ecg.controller.admin.call; import org.springframework.web.bind.annotation.*; import org.springframework.validation.annotation.Validated; import org.springframework.security.access.prepost.PreAuthorize; import io.swagger.v3.oas.annotations.tags.Tag; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.Operation; import java.util.*; import java.io.IOException; import cn.lihu.jh.framework.common.pojo.PageParam; import cn.lihu.jh.framework.common.pojo.PageResult; import cn.lihu.jh.framework.common.pojo.CommonResult; import cn.lihu.jh.framework.common.util.object.BeanUtils; import static cn.lihu.jh.framework.common.pojo.CommonResult.success; import cn.lihu.jh.framework.excel.core.util.ExcelUtils; import cn.lihu.jh.framework.apilog.core.annotation.ApiAccessLog; import static cn.lihu.jh.framework.apilog.core.enums.OperateTypeEnum.*; import cn.lihu.jh.module.ecg.controller.admin.call.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.call.CallDO; import cn.lihu.jh.module.ecg.service.call.CallService; import javax.annotation.Resource; import javax.annotation.security.PermitAll; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; @Tag(name = "管çåå° - å«å·") @RestController @RequestMapping("/ecg/call") @Validated public class CallController { @Resource private CallService callService; @PostMapping("/create") @Operation(summary = "å建å«å·") @PreAuthorize("@ss.hasPermission('ecg:call:create')") public CommonResult<Integer> createCall(@Valid @RequestBody CallSaveReqVO createReqVO) { return success(callService.createCall(createReqVO)); } @PutMapping("/update") @Operation(summary = "æ´æ°å«å·") @PreAuthorize("@ss.hasPermission('ecg:call:update')") public CommonResult<Boolean> updateCall(@Valid @RequestBody CallSaveReqVO updateReqVO) { callService.updateCall(updateReqVO); return success(true); } @DeleteMapping("/delete") @Operation(summary = "å é¤å«å·") @Parameter(name = "id", description = "ç¼å·", required = true) @PreAuthorize("@ss.hasPermission('ecg:call:delete')") public CommonResult<Boolean> deleteCall(@RequestParam("id") Integer id) { callService.deleteCall(id); return success(true); } @GetMapping("/get") @Operation(summary = "è·å¾å«å·") @Parameter(name = "id", description = "ç¼å·", required = true, example = "1024") @PreAuthorize("@ss.hasPermission('ecg:call:query')") public CommonResult<CallRespVO> getCall(@RequestParam("id") Integer id) { CallDO call = callService.getCall(id); return success(BeanUtils.toBean(call, CallRespVO.class)); } @GetMapping("/next") @Operation(summary = "è·å¾ä¸ä¸ä¸ªå«å·") @PermitAll public CommonResult<CallRespVO> nextCall() { CallDO call = callService.getNextCall(); return success(BeanUtils.toBean(call, CallRespVO.class)); } } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/call/vo/CallPageReqVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,55 @@ package cn.lihu.jh.module.ecg.controller.admin.call.vo; import lombok.*; import java.util.*; import io.swagger.v3.oas.annotations.media.Schema; import cn.lihu.jh.framework.common.pojo.PageParam; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; import static cn.lihu.jh.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @Schema(description = "管çåå° - å«å·å页 Request VO") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class CallPageReqVO extends PageParam { @Schema(description = "æ£è ç¼å·", example = "1991") private String patId; @Schema(description = "æ£è å§å", example = "æå") private String patName; @Schema(description = "æ£è æ§å«") private Integer patGender; @Schema(description = "æéåºå·") private Integer seqNum; @Schema(description = "è¿å·æ è®°") private Integer passed; @Schema(description = "é¢çº¦è¿ææ è®°") private Integer expired; @Schema(description = "å«å·ç¶æ 0 æªæ 1 å·²æ ") private Integer called; @Schema(description = "æéæ è®°") private Integer jumpFlag; @Schema(description = "è¯å®¤ç¼å·", example = "30859") private Long roomId; @Schema(description = "è¯å®¤åç§°", example = "æå") private String roomName; @Schema(description = "è¯çåºç¼å·") private String bedNo; @Schema(description = "å建æ¶é´") @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/call/vo/CallRespVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,67 @@ package cn.lihu.jh.module.ecg.controller.admin.call.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import java.util.*; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDateTime; import com.alibaba.excel.annotation.*; @Schema(description = "管çåå° - å«å· Response VO") @Data @ExcelIgnoreUnannotated public class CallRespVO { @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20296") @ExcelProperty("id") private Integer id; @Schema(description = "æ£è ç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "1991") @ExcelProperty("æ£è ç¼å·") private String patId; @Schema(description = "æ£è å§å", requiredMode = Schema.RequiredMode.REQUIRED, example = "æå") @ExcelProperty("æ£è å§å") private String patName; @Schema(description = "æ£è æ§å«") @ExcelProperty("æ£è æ§å«") private Integer patGender; @Schema(description = "æéåºå·") @ExcelProperty("æéåºå·") private Integer seqNum; @Schema(description = "è¿å·æ è®°") @ExcelProperty("è¿å·æ è®°") private Integer passed; @Schema(description = "é¢çº¦è¿ææ è®°") @ExcelProperty("é¢çº¦è¿ææ è®°") private Integer expired; @Schema(description = "å«å·ç¶æ 0 æªæ 1 å·²æ ") @ExcelProperty("å«å·ç¶æ 0 æªæ 1 å·²æ ") private Integer called; @Schema(description = "æéæ è®°") @ExcelProperty("æéæ è®°") private Integer jumpFlag; @Schema(description = "è¯å®¤ç¼å·", example = "30859") @ExcelProperty("è¯å®¤ç¼å·") private Long roomId; @Schema(description = "è¯å®¤åç§°", example = "æå") @ExcelProperty("è¯å®¤åç§°") private String roomName; @Schema(description = "è¯çåºç¼å·") @ExcelProperty("è¯çåºç¼å·") private String bedNo; @Schema(description = "å建æ¶é´", requiredMode = Schema.RequiredMode.REQUIRED) @ExcelProperty("å建æ¶é´") private LocalDateTime createTime; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/call/vo/CallSaveReqVO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,51 @@ package cn.lihu.jh.module.ecg.controller.admin.call.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.*; import javax.validation.constraints.NotEmpty; import java.util.*; @Schema(description = "管çåå° - å«å·æ°å¢/ä¿®æ¹ Request VO") @Data public class CallSaveReqVO { @Schema(description = "id", requiredMode = Schema.RequiredMode.REQUIRED, example = "20296") private Integer id; @Schema(description = "æ£è ç¼å·", requiredMode = Schema.RequiredMode.REQUIRED, example = "1991") @NotEmpty(message = "æ£è ç¼å·ä¸è½ä¸ºç©º") private String patId; @Schema(description = "æ£è å§å", requiredMode = Schema.RequiredMode.REQUIRED, example = "æå") @NotEmpty(message = "æ£è å§åä¸è½ä¸ºç©º") private String patName; @Schema(description = "æ£è æ§å«") private Integer patGender; @Schema(description = "æéåºå·") private Integer seqNum; @Schema(description = "è¿å·æ è®°") private Integer passed; @Schema(description = "é¢çº¦è¿ææ è®°") private Integer expired; @Schema(description = "å«å·ç¶æ 0 æªæ 1 å·²æ ") private Integer called; @Schema(description = "æéæ è®°") private Integer jumpFlag; @Schema(description = "è¯å®¤ç¼å·", example = "30859") private Long roomId; @Schema(description = "è¯å®¤åç§°", example = "æå") private String roomName; @Schema(description = "è¯çåºç¼å·") private String bedNo; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/controller/admin/doctor/DoctorController.java
@@ -4,15 +4,18 @@ import cn.lihu.jh.framework.common.pojo.CommonResult; import cn.lihu.jh.framework.common.util.object.BeanUtils; import cn.lihu.jh.framework.security.core.util.SecurityFrameworkUtils; import cn.lihu.jh.module.ecg.controller.admin.call.vo.CallSaveReqVO; import cn.lihu.jh.module.ecg.controller.admin.queue.vo.PatientStatisticVO; import cn.lihu.jh.module.ecg.controller.admin.queue.vo.QueueRespVO; import cn.lihu.jh.module.ecg.controller.admin.room.vo.RoomRespVO; import cn.lihu.jh.module.ecg.dal.dataobject.queue.QueueDO; import cn.lihu.jh.module.ecg.enums.QueueStatusEnum; import cn.lihu.jh.module.ecg.service.call.CallService; import cn.lihu.jh.module.ecg.service.queue.QueueService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @@ -20,19 +23,25 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Objects; import static cn.lihu.jh.framework.common.exception.enums.GlobalErrorCodeConstants.SUCCESS; import static cn.lihu.jh.framework.common.pojo.CommonResult.error; import static cn.lihu.jh.framework.common.pojo.CommonResult.success; import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.ECG_INNER_ERROR; @Tag(name = "管çåå° - å»çå«å·") @RestController @RequestMapping("/ecg/doctor") @Validated @Slf4j public class DoctorController { @Resource private QueueService queueService; @Resource private CallService callService; @GetMapping("/bed-doctor-pause") @Operation(summary = "å»çæå") @@ -131,6 +140,15 @@ queueStatusList.add(QueueStatusEnum.ONSTAGE.getStatus()); queueStatusList.add(QueueStatusEnum.PASSED.getStatus()); List<QueueDO> queueDOList = queueService.getDoctorQueueByStatus(roomId, bedNo, queueStatusList); // è¿æ»¤åº å°±è¯ä¸çï¼åå¤å«å· QueueDO onStageItem = queueDOList.stream().filter(item -> Objects.equals(item.getStatus(), QueueStatusEnum.ONSTAGE.getStatus())).findFirst().orElse(null); if (null != onStageItem) { CallSaveReqVO callSaveReqVO = BeanUtils.toBean(onStageItem, CallSaveReqVO.class); callSaveReqVO.setId(null); callService.createCall(callSaveReqVO); } return success(BeanUtils.toBean(queueDOList, QueueRespVO.class)); } @@ -150,9 +168,47 @@ queueStatusList.add(QueueStatusEnum.ONSTAGE.getStatus()); queueStatusList.add(QueueStatusEnum.PASSED.getStatus()); List<QueueDO> queueDOList = queueService.getDoctorQueueByStatus(roomId, bedNo, queueStatusList); // è¿æ»¤åº å°±è¯ä¸çï¼åå¤å«å· QueueDO onStageItem = queueDOList.stream().filter(item -> Objects.equals(item.getStatus(), QueueStatusEnum.ONSTAGE.getStatus())).findFirst().orElse(null); if (null != onStageItem) { CallSaveReqVO callSaveReqVO = BeanUtils.toBean(onStageItem, CallSaveReqVO.class); callSaveReqVO.setId(null); callService.createCall(callSaveReqVO); } return success(BeanUtils.toBean(queueDOList, QueueRespVO.class)); } @GetMapping("/call-again") @Operation(summary = "éå«ãæ£è ") @Parameter(name = "roomId", description = "è¯å®¤ç¼å·", required = true, example = "116") @Parameter(name = "bedNo", description = "å·¥ä½ç¼å·", required = true, example = "B2") @PreAuthorize("@ss.hasPermission('ecg:doctor:task')") public CommonResult<String> callAgainPatient( @RequestParam("roomId") Long roomId, @RequestParam("bedNo") String bedNo) { List<Byte> queueStatusList = new ArrayList<>(); queueStatusList.add(QueueStatusEnum.ONSTAGE.getStatus()); List<QueueDO> queueDOList = queueService.getDoctorQueueByStatus(roomId, bedNo, queueStatusList); if (queueDOList.isEmpty()) return success("æ å°±è¯ä¸æ£è "); if (queueDOList.size() > 1) { log.error("room {} bed {} have {} å°±è¯ä¸æ£è ", roomId, bedNo, queueDOList.size()); return error(ECG_INNER_ERROR); } QueueDO onStageItem = queueDOList.get(0); CallSaveReqVO callSaveReqVO = BeanUtils.toBean(onStageItem, CallSaveReqVO.class); callSaveReqVO.setId(null); callService.callAgain(callSaveReqVO); return success("æä½æå"); } @GetMapping("/get-patient-list") @Operation(summary = "忣è å表") @Parameter(name = "roomId", description = "è¯å®¤ç¼å·", required = true, example = "116") jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/dataobject/call/CallDO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,75 @@ package cn.lihu.jh.module.ecg.dal.dataobject.call; import lombok.*; import java.util.*; import java.time.LocalDateTime; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.*; import cn.lihu.jh.framework.mybatis.core.dataobject.BaseDO; /** * å«å· DO * * @author 马忳¢ */ @TableName("call_patient") @KeySequence("call_seq") // ç¨äº OracleãPostgreSQLãKingbaseãDB2ãH2 æ°æ®åºç主é®èªå¢ãå¦ææ¯ MySQL çæ°æ®åºï¼å¯ä¸åã @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) @Builder @NoArgsConstructor @AllArgsConstructor public class CallDO extends BaseDO { /** * id */ @TableId private Integer id; /** * æ£è ç¼å· */ private String patId; /** * æ£è å§å */ private String patName; /** * æ£è æ§å« */ private Integer patGender; /** * æéåºå· */ private Integer seqNum; /** * è¿å·æ è®° */ private Integer passed; /** * é¢çº¦è¿ææ è®° */ private Integer expired; /** * å«å·ç¶æ 0 æªæ 1 å·²æ */ private Integer called; /** * æéæ è®° */ private Integer jumpFlag; /** * è¯å®¤ç¼å· */ private Long roomId; /** * è¯å®¤åç§° */ private String roomName; /** * è¯çåºç¼å· */ private String bedNo; } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/dal/mysql/call/CallMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,44 @@ package cn.lihu.jh.module.ecg.dal.mysql.call; import java.util.*; import cn.lihu.jh.framework.common.pojo.PageResult; import cn.lihu.jh.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.lihu.jh.framework.mybatis.core.mapper.BaseMapperX; import cn.lihu.jh.module.ecg.dal.dataobject.call.CallDO; import org.apache.ibatis.annotations.Mapper; import cn.lihu.jh.module.ecg.controller.admin.call.vo.*; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; /** * å«å· Mapper * * @author 马忳¢ */ @Mapper public interface CallMapper extends BaseMapperX<CallDO> { default PageResult<CallDO> selectPage(CallPageReqVO reqVO) { return selectPage(reqVO, new LambdaQueryWrapperX<CallDO>() .eqIfPresent(CallDO::getPatId, reqVO.getPatId()) .likeIfPresent(CallDO::getPatName, reqVO.getPatName()) .eqIfPresent(CallDO::getPatGender, reqVO.getPatGender()) .eqIfPresent(CallDO::getSeqNum, reqVO.getSeqNum()) .eqIfPresent(CallDO::getPassed, reqVO.getPassed()) .eqIfPresent(CallDO::getExpired, reqVO.getExpired()) .eqIfPresent(CallDO::getCalled, reqVO.getCalled()) .eqIfPresent(CallDO::getJumpFlag, reqVO.getJumpFlag()) .eqIfPresent(CallDO::getRoomId, reqVO.getRoomId()) .likeIfPresent(CallDO::getRoomName, reqVO.getRoomName()) .eqIfPresent(CallDO::getBedNo, reqVO.getBedNo()) .betweenIfPresent(CallDO::getCreateTime, reqVO.getCreateTime()) .orderByDesc(CallDO::getId)); } @Select("select * from lihu.call_patient where pat_id = #{patId} order by id desc limit 1") CallDO getLatestPatientCall(@Param("patId") String patId); @Select("select * from lihu.call_patient where called = 0 order by id limit 1") CallDO getNextCall(); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/call/CallService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,70 @@ package cn.lihu.jh.module.ecg.service.call; import java.util.*; import cn.lihu.jh.module.ecg.controller.admin.call.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.call.CallDO; import cn.lihu.jh.framework.common.pojo.PageResult; import cn.lihu.jh.framework.common.pojo.PageParam; import javax.validation.Valid; /** * å«å· Service æ¥å£ * * @author 马忳¢ */ public interface CallService { /** * å建å«å· * * @param createReqVO åå»ºä¿¡æ¯ * @return ç¼å· */ Integer createCall(@Valid CallSaveReqVO createReqVO); /** * æ´æ°å«å· * * @param updateReqVO æ´æ°ä¿¡æ¯ */ void updateCall(@Valid CallSaveReqVO updateReqVO); /** * å é¤å«å· * * @param id ç¼å· */ void deleteCall(Integer id); /** * è·å¾å«å· * * @param id ç¼å· * @return å«å· */ CallDO getCall(Integer id); /** * è·å¾ä¸ä¸ä¸ªå«å· * * @return å«å· */ CallDO getNextCall(); /** * è·å¾å«å·å页 * * @param pageReqVO å页æ¥è¯¢ * @return å«å·å页 */ PageResult<CallDO> getCallPage(CallPageReqVO pageReqVO); /** * éå« * * @param createReqVO åå»ºä¿¡æ¯ * @return ç¼å· */ Integer callAgain(@Valid CallSaveReqVO createReqVO); } jh-module-ecg/jh-module-ecg-biz/src/main/java/cn/lihu/jh/module/ecg/service/call/CallServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,86 @@ package cn.lihu.jh.module.ecg.service.call; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import cn.lihu.jh.module.ecg.controller.admin.call.vo.*; import cn.lihu.jh.module.ecg.dal.dataobject.call.CallDO; import cn.lihu.jh.framework.common.pojo.PageResult; import cn.lihu.jh.framework.common.util.object.BeanUtils; import cn.lihu.jh.module.ecg.dal.mysql.call.CallMapper; import javax.annotation.Resource; import static cn.lihu.jh.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.lihu.jh.module.ecg.enums.ErrorCodeConstants.*; /** * å«å· Service å®ç°ç±» * * @author 马忳¢ */ @Service @Validated public class CallServiceImpl implements CallService { @Resource private CallMapper callMapper; @Override public Integer createCall(CallSaveReqVO createReqVO) { // æå ¥ CallDO call = BeanUtils.toBean(createReqVO, CallDO.class); callMapper.insert(call); // è¿å return call.getId(); } @Override public void updateCall(CallSaveReqVO updateReqVO) { // æ ¡éªåå¨ validateCallExists(updateReqVO.getId()); // æ´æ° CallDO updateObj = BeanUtils.toBean(updateReqVO, CallDO.class); callMapper.updateById(updateObj); } @Override public void deleteCall(Integer id) { // æ ¡éªåå¨ validateCallExists(id); // å é¤ callMapper.deleteById(id); } private void validateCallExists(Integer id) { if (callMapper.selectById(id) == null) { throw exception(CALL_NOT_EXISTS); } } @Override public CallDO getCall(Integer id) { return callMapper.selectById(id); } @Override public CallDO getNextCall() { CallDO callDO = callMapper.getNextCall(); return callDO; } @Override public PageResult<CallDO> getCallPage(CallPageReqVO pageReqVO) { return callMapper.selectPage(pageReqVO); } @Override public Integer callAgain(CallSaveReqVO createReqVO) { CallDO callDO = callMapper.getLatestPatientCall(createReqVO.getPatId()); if (null != callDO && callDO.getCalled() == 0) return 0; return createCall(createReqVO); } } jh-module-ecg/jh-module-ecg-biz/src/main/resources/mapper/call/CallMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,12 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.lihu.jh.module.ecg.dal.mysql.call.CallMapper"> <!-- ä¸è¬æ åµä¸ï¼å°½å¯è½ä½¿ç¨ Mapper è¿è¡ CRUD å¢å æ¹æ¥å³å¯ã æ æ³æ»¡è¶³çåºæ¯ï¼ä¾å¦è¯´å¤è¡¨å ³èæ¥è¯¢ï¼æä½¿ç¨ XML ç¼å SQLã 代ç çæå¨ææ¶åªçæ Mapper XML æä»¶æ¬èº«ï¼æ´å¤æ¨è MybatisX å¿«éå¼åæä»¶æ¥çææ¥è¯¢ã ææ¡£å¯è§ï¼https://www.iocoder.cn/MyBatis/x-plugins/ --> </mapper> sql/mysql/jh.sql
@@ -189,3 +189,29 @@ KEY `idx_rent_id` (`rent_id`) ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='å·¥ä½è®°å½è¡¨'; -- ---------------------------- -- Table structure for call -- ---------------------------- DROP TABLE IF EXISTS `call_patient`; SELECT * FROM lihu.call_patient;CREATE TABLE `call_patient` ( `id` int NOT NULL AUTO_INCREMENT COMMENT 'id', `pat_id` varchar(30) NOT NULL COMMENT 'æ£è ç¼å·', `pat_name` varchar(10) NOT NULL COMMENT 'æ£è å§å', `pat_gender` int DEFAULT NULL COMMENT 'æ£è æ§å«', `seq_num` int DEFAULT NULL COMMENT 'æéåºå·', `passed` int DEFAULT '0' COMMENT 'è¿å·æ è®°', `expired` int DEFAULT '0' COMMENT 'é¢çº¦è¿ææ è®°', `called` int DEFAULT '0' COMMENT 'å«å·ç¶æ 0 æªæ 1 å·²æ ', `jump_flag` int DEFAULT '0' COMMENT 'æéæ è®°', `room_id` bigint DEFAULT '0' COMMENT 'è¯å®¤ç¼å·', `room_name` varchar(10) DEFAULT '' COMMENT 'è¯å®¤åç§°', `bed_no` varchar(10) DEFAULT '' COMMENT 'è¯çåºç¼å·', `creator` varchar(10) DEFAULT '' COMMENT 'å建è ', `create_time` datetime NOT NULL COMMENT 'å建æ¶é´', `updater` varchar(10) DEFAULT '' COMMENT 'æ´æ°è ', `update_time` datetime NOT NULL COMMENT 'æ´æ°æ¶é´', `deleted` bit(1) DEFAULT b'0' COMMENT 'å 餿 è®°', PRIMARY KEY (`id`), KEY `idx_pat` (`pat_id`) USING BTREE, KEY `idx_called` (`called`) USING BTREE ) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='å«å·è¡¨';