- 创建 erp-plugin-assessment cdylib crate - 实现 Guest trait(init/on_tenant_created/handle_event) - on_tenant_created 自动插入 PHQ-9 抑郁筛查量表 - plugin.toml 声明 2 实体 + 4 权限 + 触发事件
150 lines
3.2 KiB
TOML
150 lines
3.2 KiB
TOML
# 评估量表 — plugin.toml
|
||
|
||
[metadata]
|
||
id = "assessment"
|
||
name = "评估量表"
|
||
version = "0.1.0"
|
||
description = "标准化医学评估量表(PHQ-9、GAD-7 等)"
|
||
author = "HMS"
|
||
min_platform_version = "0.1.0"
|
||
|
||
[[permissions]]
|
||
code = "assessment_scale.list"
|
||
name = "查看评估量表"
|
||
description = "查看评估量表列表和详情"
|
||
|
||
[[permissions]]
|
||
code = "assessment_scale.manage"
|
||
name = "管理评估量表"
|
||
description = "创建、编辑、删除评估量表"
|
||
|
||
[[permissions]]
|
||
code = "assessment_response.list"
|
||
name = "查看评估结果"
|
||
description = "查看患者评估答卷"
|
||
|
||
[[permissions]]
|
||
code = "assessment_response.manage"
|
||
name = "管理评估结果"
|
||
description = "提交、编辑评估答卷"
|
||
|
||
[[schema.entities]]
|
||
name = "assessment_scale"
|
||
display_name = "评估量表"
|
||
|
||
[[schema.entities.fields]]
|
||
name = "scale_code"
|
||
field_type = "string"
|
||
required = true
|
||
display_name = "量表编码"
|
||
unique = true
|
||
ui_widget = "select"
|
||
options = ["PHQ-9", "GAD-7", "SF-36", "MMSE", "ADL", "IADL"]
|
||
|
||
[[schema.entities.fields]]
|
||
name = "title"
|
||
field_type = "string"
|
||
required = true
|
||
display_name = "量表名称"
|
||
searchable = true
|
||
|
||
[[schema.entities.fields]]
|
||
name = "description"
|
||
field_type = "string"
|
||
display_name = "描述"
|
||
ui_widget = "textarea"
|
||
|
||
[[schema.entities.fields]]
|
||
name = "questions_json"
|
||
field_type = "json"
|
||
required = true
|
||
display_name = "题目定义(JSON)"
|
||
|
||
[[schema.entities.fields]]
|
||
name = "scoring_rules_json"
|
||
field_type = "json"
|
||
required = true
|
||
display_name = "评分规则(JSON)"
|
||
|
||
[[schema.entities.fields]]
|
||
name = "status"
|
||
field_type = "string"
|
||
required = true
|
||
display_name = "状态"
|
||
default = "active"
|
||
ui_widget = "select"
|
||
options = ["active", "inactive"]
|
||
|
||
[[schema.entities]]
|
||
name = "assessment_response"
|
||
display_name = "评估答卷"
|
||
|
||
[[schema.entities.fields]]
|
||
name = "scale_id"
|
||
field_type = "uuid"
|
||
required = true
|
||
display_name = "量表"
|
||
ui_widget = "entity_select"
|
||
ref_entity = "assessment_scale"
|
||
ref_plugin = "assessment"
|
||
|
||
[[schema.entities.fields]]
|
||
name = "patient_id"
|
||
field_type = "uuid"
|
||
required = true
|
||
display_name = "患者 ID"
|
||
|
||
[[schema.entities.fields]]
|
||
name = "answers_json"
|
||
field_type = "json"
|
||
required = true
|
||
display_name = "答案(JSON)"
|
||
|
||
[[schema.entities.fields]]
|
||
name = "total_score"
|
||
field_type = "integer"
|
||
required = true
|
||
display_name = "总分"
|
||
|
||
[[schema.entities.fields]]
|
||
name = "severity_level"
|
||
field_type = "string"
|
||
required = true
|
||
display_name = "严重程度"
|
||
ui_widget = "select"
|
||
options = ["normal", "mild", "moderate", "moderate_severe", "severe"]
|
||
|
||
[[schema.entities.fields]]
|
||
name = "assessed_by"
|
||
field_type = "uuid"
|
||
display_name = "评估人"
|
||
|
||
[[schema.entities.fields]]
|
||
name = "status"
|
||
field_type = "string"
|
||
required = true
|
||
display_name = "状态"
|
||
default = "completed"
|
||
ui_widget = "select"
|
||
options = ["draft", "completed", "reviewed"]
|
||
|
||
[[schema.entities.relations]]
|
||
entity = "assessment_scale"
|
||
foreign_key = "scale_id"
|
||
on_delete = "restrict"
|
||
name = "scale"
|
||
type = "belongs_to"
|
||
display_field = "title"
|
||
|
||
[[trigger_events]]
|
||
name = "assessment_completed"
|
||
display_name = "评估完成"
|
||
description = "患者完成评估量表,触发评分计算和后续流程"
|
||
entity = "assessment_response"
|
||
on = "create"
|
||
|
||
[[ui.pages]]
|
||
type = "crud"
|
||
label = "评估量表"
|
||
icon = "FormOutlined"
|