# 护理记录单 —— 后端接口说明 > 模块位置:`src/views/elderly/assess/nursing-record-sheet/` > 当前状态:前端页面已开发完成,接口未就绪,暂时走本地模拟数据 `src/api/elderly/assess/nursing-record-sheet/mock.ts` ## 一、表结构 表名建议:`elderly_nursing_record` ```sql CREATE TABLE elderly_nursing_record ( id BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键', tenant_id BIGINT NOT NULL DEFAULT 0 COMMENT '机构ID(多租户)', elder_id BIGINT NOT NULL COMMENT '长者ID', elder_name VARCHAR(64) NOT NULL COMMENT '长者姓名(冗余)', elder_sex TINYINT COMMENT '性别(冗余)1-男 2-女', bed_info VARCHAR(128) COMMENT '楼层房号床号(冗余,如 3栋-2楼-201-1床)', record_date DATE NOT NULL COMMENT '记录日期', record_time VARCHAR(8) NOT NULL COMMENT '记录时间 HH:mm', temperature DECIMAL(4,1) COMMENT '体温 ℃', blood_oxygen SMALLINT COMMENT '血氧 Spo2 %', pulse SMALLINT COMMENT '脉搏 次/分', respiration SMALLINT COMMENT '呼吸 次/分', systolic_pressure SMALLINT COMMENT '收缩压 mmHg', diastolic_pressure SMALLINT COMMENT '舒张压 mmHg', observation VARCHAR(500) COMMENT '病情观察及护理', signer VARCHAR(32) COMMENT '签名(护理人员姓名)', creator VARCHAR(64) COMMENT '创建人', create_time DATETIME COMMENT '创建时间', updater VARCHAR(64) COMMENT '更新人', update_time DATETIME COMMENT '更新时间', deleted BIT(1) NOT NULL DEFAULT 0 COMMENT '是否删除', PRIMARY KEY (id), KEY idx_elder_date (elder_id, record_date), KEY idx_tenant (tenant_id) ) COMMENT '护理记录单'; ``` ## 二、接口清单 接口前缀:`/admin-api/elderly/nursingRecord`(前端 request 里已省略 `/admin-api` 前缀,下面写的是前端调用的完整 url) | 序号 | 名称 | 方法 | 路径 | 说明 | |---|---|---|---|---| | 1 | 分页查询 | GET | `elderly/nursingRecord/page` | 列表页数据 | | 2 | 详情 | GET | `elderly/nursingRecord/get?id=` | 详情弹窗、编辑回显 | | 3 | 新增 | POST | `elderly/nursingRecord/create` | 新增单条记录 | | 4 | 修改 | PUT | `elderly/nursingRecord/update` | 修改单条记录 | | 5 | 删除 | DELETE | `elderly/nursingRecord/delete?id=` | 单条删除 | > 说明: > - 新增页面支持一次录入多行,前端是按行循环调用 `create` 的,不需要批量接口(如果希望改成批量接口,可另加 `createBatch`)。 > - 删除是单条删除,前端批量删除时循环调用。 > - **导出不需要后端接口**,Excel 由前端用 `xlsx-js-style` 本地生成(按纸质护理记录单版式)。 ### 1. 分页查询 `GET elderly/nursingRecord/page` 请求参数(Query): | 参数 | 类型 | 必填 | 说明 | |---|---|---|---| | pageNo | Integer | 是 | 页码,从 1 开始 | | pageSize | Integer | 是 | 每页条数 | | tenantIds | Long[] | 否 | 机构ID集合(多选),不传表示全部 | | elderName | String | 否 | 长者姓名,模糊匹配 | | recordDate | String[] | 否 | 记录日期区间,如 `['2026-09-01 00:00:00','2026-09-30 23:59:59']` | 响应: ```json { "code": 0, "data": { "list": [ { "id": 1, "elderName": "张桂英", "..." : "..." } ], "total": 90 } } ``` > `list` 建议按 `record_date` 倒序、`record_time` 倒序返回(列表最新在前)。 > 导出时前端会自行按正序重排。 > 日期区间的数组参数传法与现有「生命体征」模块的 `measuringDate` 保持一致即可。 ### 2. 详情 `GET elderly/nursingRecord/get?id=1` 响应 `data` 为单条记录对象(字段见第三节)。 ### 3. 新增 `POST elderly/nursingRecord/create` 请求体(JSON): ```json { "tenantId": 1, "elderId": 1001, "elderName": "张桂英", "elderSex": 2, "bedInfo": "3栋-2楼-201-1床", "recordDate": "2026-09-17", "recordTime": "08:00", "temperature": 36.5, "bloodOxygen": 97, "pulse": 76, "respiration": 18, "systolicPressure": 128, "diastolicPressure": 78, "observation": "神志清楚,精神尚可,饮食正常。", "signer": "王护士" } ``` 响应:返回记录 ID。 > `elderName / elderSex / bedInfo` 前端会根据选中的长者带出并随请求提交,后端可直接存冗余字段(也可只认 elderId 自行反查,两者都有即可)。 ### 4. 修改 `PUT elderly/nursingRecord/update` 请求体:同新增,额外必传 `id`。 ### 5. 删除 `DELETE elderly/nursingRecord/delete?id=1` 响应:true / false。 ## 三、字段说明 | 字段 | 类型 | 必填 | 说明 | |---|---|---|---| | id | Long | 修改时必填 | 主键 | | tenantId | Long | 是 | 机构ID | | elderId | Long | 是 | 长者ID | | elderName | String | 是 | 长者姓名 | | elderSex | Integer | 否 | 性别:1-男,2-女(字典 `system_user_sex`) | | bedInfo | String | 否 | 楼层房号床号,示例 `3栋-2楼-201-1床` | | recordDate | String | 是 | 记录日期 `yyyy-MM-dd` | | recordTime | String | 是 | 记录时间 `HH:mm` | | temperature | BigDecimal | 否 | 体温 ℃,1 位小数 | | bloodOxygen | Integer | 否 | 血氧 Spo2 % | | pulse | Integer | 否 | 脉搏 次/分 | | respiration | Integer | 否 | 呼吸 次/分 | | systolicPressure | Integer | 否 | 收缩压 mmHg | | diastolicPressure | Integer | 否 | 舒张压 mmHg | | observation | String | 否 | 病情观察及护理,最长 500 字 | | signer | String | 否 | 签名,最长 20 字 | | creator | String | 否 | 创建人(后端自动填充) | | createTime | String | 否 | 创建时间(详情展示用) | 列表页还需要 `tenantName`(机构名称)用于多机构场景展示。 ## 四、校验规则(前端已做,建议后端对齐) | 字段 | 规则 | |---|---| | elderId / recordDate / recordTime | 必填 | | temperature | 20 ~ 45,最多 1 位小数 | | bloodOxygen | 0 ~ 100 | | pulse | 0 ~ 300 | | respiration | 0 ~ 100 | | systolicPressure | 0 ~ 300 | | diastolicPressure | 0 ~ 300,且必须小于 systolicPressure | | observation | ≤ 500 字 | | signer | ≤ 20 字 | ## 五、菜单与权限配置 - 组件路径:`elderly/assess/nursing-record-sheet/index` - 建议权限标识:`records:nursing-record-sheet:query / add / edit / delete / export` - 前端按钮目前**未挂 `v-hasPermi`**,加权限时只需在按钮上补指令即可。 ## 六、联调切换方式 接口开发完成后: 1. 将 `src/api/elderly/assess/nursing-record-sheet/index.ts` 里的 `USE_MOCK` 改为 `false`; 2. 删除 `src/api/elderly/assess/nursing-record-sheet/mock.ts`。 ## 七、导出 Excel 版式(无需后端参与) ``` 护理记录单 ← 标题,合并整行,宋体18加粗居中 楼层房号床号:xxx 姓名:xxx 性别:x ← 合并整行,左对齐加粗 日期 | 时间 | 体温 | 血氧 | 脉搏 | 呼吸 | 血压 | 病情观察及护理 | 签名 | | ℃ | Spo2 | 次/分 | 次/分 | mmHg | | ← 两行表头,日期/时间/病情观察/签名纵向合并 数据行(连续不分页) 护士签名: ← 合并整行,左对齐加粗,留空手签 第 1 页 ← 合并整行,右对齐 ```