API.md 7.8 KB

护理记录单 —— 后端接口说明

模块位置:src/views/elderly/assess/nursing-record-sheet/ 当前状态:前端页面与后端接口均已就绪,直连 src/api/elderly/assess/nursing-record-sheet/index.ts 中的真实接口(mock.ts 已删除)

一、表结构

表名建议:elderly_nursing_record

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']

响应:

{
  "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):

{
  "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 分支,直接走 request;
  2. src/api/elderly/assess/nursing-record-sheet/mock.ts 已删除。

七、导出 Excel 版式(无需后端参与)

护理记录单                                        ← 标题,合并整行,宋体18加粗居中
楼层房号床号:xxx    姓名:xxx    性别:x          ← 合并整行,左对齐加粗
日期 | 时间 | 体温 | 血氧 | 脉搏 | 呼吸 | 血压 | 病情观察及护理 | 签名
     |      | ℃   | Spo2 | 次/分 | 次/分 | mmHg |                |      ← 两行表头,日期/时间/病情观察/签名纵向合并
数据行(连续不分页)
护士签名:                                        ← 合并整行,左对齐加粗,留空手签
第 1 页                                           ← 合并整行,右对齐