2. 核心数据模型
2.1 标识资产实体(sign_asset)
| 字段名 | 类型 | 必填 | 说明 | 示例值 |
|---|---|---|---|---|
| asset_id | UUID | ★ | 资产唯一编号(主键) | a1b2c3d4-… |
| asset_code | VARCHAR(32) | ★ | 资产编码(规则: 院区码-楼码-楼层-类型序号) | HQ-A-3F-DIR-001 |
| asset_name | VARCHAR(128) | ★ | 资产名称 | 心内科3楼走廊方向指引牌 |
| asset_type | ENUM | ★ | 类型: 方向指引/楼层导引/科室门牌/信息提示/安全警示/户外标识/数字标识 | 方向指引 |
| asset_level | ENUM | ★ | 层级: 一级(院区级)/二级(楼栋级)/三级(楼层级)/四级(房间级) | 三级 |
| location_id | UUID | ★ | 关联空间位置(外键→space) | — |
| org_id | UUID | 归属科室(外键→organization) | — | |
| specification | JSON | ★ | 规格参数(长×宽×厚/材质/颜色/工艺) | {“L”:800,“W”:400,“T”:5,“material”:“铝合金+亚克力”,“color”:“蓝白”,“craft”:“丝印+UV”} |
| material_primary | VARCHAR(64) | ★ | 主材 | 铝合金 |
| material_secondary | VARCHAR(128) | 辅材 | 亚克力面板、不锈钢螺栓 | |
| craft_method | VARCHAR(128) | 制作工艺 | 丝网印刷+UV固化 | |
| supplier_id | UUID | 供应商(外键→supplier) | — | |
| order_id | UUID | 关联订单(外键→order) | — | |
| install_date | DATE | 安装日期 | 2024-03-15 | |
| warranty_end | DATE | 质保到期日 | 2026-03-15 | |
| status | ENUM | ★ | 状态: draft/active/repairing/inactive/scrapped | active |
| status_since | DATETIME | ★ | 当前状态起始时间 | 2024-03-15 10:00 |
| bim_element_id | VARCHAR(64) | BIM模型关联ID | 3F-DIR-001-Revit | |
| photo_ids | ARRAY[UUID] | 照片(外键→file_store),最多10张 | — | |
| design_file_id | UUID | 设计文件(外键→file_store) | — | |
| qr_code_url | VARCHAR(256) | 二维码图片URL | — | |
| content_json | JSON | 标识内容(文字/图标/双语) | {“zh”:“心内科→”,“en”:“Cardiology→”,“icon”:“arrow_right”} | |
| digital_device_id | UUID | 数字标识设备ID(外键→digital_device) | — | |
| sensor_ids | ARRAY[UUID] | 关联传感器ID列表 | — | |
| last_inspection | DATETIME | 最近巡检时间 | 2024-11-01 | |
| next_inspection | DATETIME | 下次巡检计划时间 | 2024-12-01 | |
| cost | DECIMAL(10,2) | 采购/制作成本(元) | 850.00 | |
| remark | TEXT | 备注 | — | |
| created_by | UUID | ★ | 创建人 | — |
| created_at | DATETIME | ★ | 创建时间 | — |
| updated_by | UUID | 最后修改人 | — | |
| updated_at | DATETIME | 最后修改时间 | — |
2.2 空间模型(space)
层级结构:院区(campus)→建筑(building)→楼层(floor)→区域(zone)→房间(room)
| 实体 | 关键字段 | 说明 |
|---|---|---|
| campus | campus_id, campus_name, address, area_m2, geo_point | 院区信息,含地理坐标 |
| building | building_id, campus_id(FK), building_name, floors, area_m2, bim_model_id | 建筑信息 |
| floor | floor_id, building_id(FK), floor_name(1F/2F/B1), area_m2, plan_image_id | 楼层信息,含平面图 |
| zone | zone_id, floor_id(FK), zone_name(门诊区/候诊区/走廊/电梯厅), zone_type | 区域划分 |
| room | room_id, zone_id(FK), room_no(301), room_name, room_type(诊室/病房/检查室/手术室), area_m2, door_direction(门朝向) | 房间信息 |
空间与标识关联: - 每件标识通过location_id关联到最末级空间(区域或房间) - 楼层平面图上标注标识位置(x,y坐标,相对平面图左上角百分比) - 支持一对多:一个空间可有多件标识,一件标识仅归属一个空间
2.3 组织模型(organization)
层级结构:院领导→职能部门→科室
| 实体 | 关键字段 | 说明 |
|---|---|---|
| department | dept_id, parent_id, dept_name, dept_type(职能部门/临床科室/医技科室), leader_id, phone | 科室/部门 |
| staff | staff_id, dept_id(FK), name, title, role, phone, his_staff_id | 人员 |
| dept_location | dept_id(FK), room_id(FK), location_type(主址/分址) | 科室-空间多对多 |
科室信息与标识联动: - 科室名称变更→触发关联标识内容更新通知 - 科室搬迁(房间变更)→触发标识位置迁移+内容更新通知 - 科室合并/拆分→触发批量标识变更工单
2.4 流程模型
标识全生命周期状态机:
┌──────────┐
新建申请 ──→│ draft │←──────────────────┐
└────┬─────┘ │
审批通过 │ 恢复使用 │
┌────▼─────┐ │
│ active │──────────────┐ │
│ (在用) │ │ │
└────┬─────┘ 报废 │ │
故障上报 │ ┌───────▼──────▼──┐
┌────▼─────┐ │ scrapped │
│repairing │ │ (已报废) │
│(维修中) │ └────────────────┘
└────┬─────┘
维修完成 │
┌────▼─────┐
│ inactive │──── 维修后可恢复 ───→active
│(停用) │
└────┬─────┘
报废│
┌────▼─────┐
│ scrapped │
└──────────┘
流程模型表设计(flow_instance):
| 字段 | 类型 | 说明 |
|---|---|---|
| flow_id | UUID | 流程实例ID |
| flow_type | ENUM | 类型: apply(申请)/install(安装)/repair(维修)/scrap(报废)/inspect(巡检) |
| asset_id | UUID | 关联资产 |
| current_node | VARCHAR | 当前流程节点 |
| initiator_id | UUID | 发起人 |
| assignee_id | UUID | 当前处理人 |
| priority | ENUM | P0/P1/P2/P3 |
| created_at | DATETIME | 发起时间 |
| deadline | DATETIME | 截止时间 |
| status | ENUM | pending/processing/completed/rejected/cancelled |
2.5 内容模型
| 实体 | 关键字段 | 说明 |
|---|---|---|
| content_dict | dict_id, dict_type(科室名/医生名/检查项目/方向词/警示语), zh_text, en_text, verified | 双语词库 |
| icon_lib | icon_id, icon_name, category(方向/科室/设施/安全), svg_data, png_url | 图标库 |
| content_template | template_id, template_name, layout_json, applicable_type | 内容模板 |
| asset_content | asset_id(FK), content_version, content_json, effective_date | 标识-内容关联(版本化) |
内容变更联动机制:
词库变更(如"消化内科"更名"消化内科与内镜中心")
→ 查询所有引用该词的标识内容(asset_content)
→ 生成内容变更通知(含变更前后对比)
→ 推送通知至标识管理员+相关科室
→ 标识管理员确认→自动更新数字标识内容→生成物理标识更换工单
2.6 ER关系图(文字描述)
campus ──1:N──→ building ──1:N──→ floor ──1:N──→ zone ──1:N──→ room
│
│(location_id)
▼
sign_asset ──N:1──→ room/zone organization ──1:N──→ department ──1:N──→ staff
│ ▲ │ │
│ │ │(org_id) │(leader_id)
│(supplier_id) │ ▼ │
▼ │ sign_asset │
supplier sign_asset │ │
│ │(dept_location) │
(digital_device_id) └──────────N:M───────────────┘
│ dept_location
▼
digital_device ──1:N──→ sensor_data
│
│(content_publish)
▼
publish_schedule ──N:1──→ content_template
│
└──→ asset_content ──N:1──→ content_dict
icon_lib
核心关系说明: - sign_asset与space:多对一(一件标识归属一个空间) - sign_asset与organization:多对一(一件标识归属一个科室/多科室共用通过dept_location) - sign_asset与digital_device:一对一(数字标识关联设备,物理标识无此关联) - sign_asset与supplier:多对一(多件标识来自同一供应商) - department与room:多对多(一个科室可占多个房间,一个房间可被多科室共用) - content_dict与asset_content:一对多(一个词条被多件标识引用) - flow_instance与sign_asset:一对多(一件标识可有多个流程实例)