평가 및 화면 구조 정리

This commit is contained in:
Yun Chan 2026-06-28 21:46:22 +09:00
parent 1248ae8ca4
commit 391639c1de
44 changed files with 5816 additions and 4501 deletions

View file

@ -0,0 +1,99 @@
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "vignette.case_worksheet_rubric.v1",
"title": "Vignette case worksheet rubric",
"type": "object",
"additionalProperties": false,
"required": [
"schema_version",
"rubric_id",
"title",
"status",
"content_owner",
"scoring_enabled",
"approval",
"sections"
],
"properties": {
"schema_version": { "const": "vignette.case_worksheet_rubric.v1" },
"rubric_id": { "type": "string", "minLength": 1 },
"title": { "type": "string", "minLength": 1 },
"status": { "enum": ["scaffold_only", "draft", "approved"] },
"content_owner": { "const": "clinical_team" },
"scoring_enabled": { "type": "boolean" },
"approval": {
"anyOf": [
{ "type": "null" },
{
"type": "object",
"additionalProperties": false,
"required": ["clinical_reviewer", "approved_at"],
"properties": {
"clinical_reviewer": { "type": "string", "minLength": 1 },
"approved_at": { "type": "string", "minLength": 1 },
"notes": { "type": "string" }
}
}
]
},
"notes": {
"type": "array",
"items": { "type": "string" },
"default": []
},
"sections": {
"type": "array",
"minItems": 1,
"items": { "$ref": "#/$defs/section" }
}
},
"$defs": {
"section": {
"type": "object",
"additionalProperties": false,
"required": ["key", "title", "items"],
"properties": {
"key": { "type": "string", "minLength": 1 },
"title": { "type": "string", "minLength": 1 },
"items": {
"type": "array",
"minItems": 1,
"items": { "$ref": "#/$defs/item" }
}
}
},
"item": {
"type": "object",
"additionalProperties": false,
"required": ["key", "label", "criteria", "score_scale"],
"properties": {
"key": { "type": "string", "minLength": 1 },
"label": { "type": "string", "minLength": 1 },
"criteria": {
"type": "array",
"items": { "type": "string" },
"default": []
},
"score_scale": {
"anyOf": [
{ "type": "null" },
{
"type": "object",
"additionalProperties": false,
"required": ["min", "max", "anchors"],
"properties": {
"min": { "type": "integer" },
"max": { "type": "integer" },
"anchors": {
"type": "array",
"minItems": 2,
"items": { "type": "string" }
}
}
}
]
}
}
}
}
}