...
Code Block |
---|
{
"Observation": {
"name": "observation",
"description": "test observation",
"primaryCtegory": "Observation",
"identifier": "do_1_observation",
"frameworkTemplate": [],
"ecm": [
"ecm1",
"ecm2",
"ecm3"
],
"children": [
{
"identifier": "do_1_question1",
"name": "question1",
"parent": "do_1_observation",
"domain": "domain1",
"criteria": "criteria1",
"pageNumber": 1,
"ecm": "ecm1" // ecm meta is optional
},
{
"identifier": "do_1_question2",
"name": "question2",
"parent": "do_1_observation",
"domain": "domain1",
"criteria": "criteria1",
"pageNumber": 2,
"ecm": "ecm2" // ecm meta is optional
}
]
}
} |
...
Pros:
This approach is simpler one as we are not changing the structure
Cons:
Approach 2: FrameworkTemplate and View
...
because it provides required views with minimum computation.
creation of different needs to perform two operation: filter by metadata and group by pageNumber
this approach requires minimal changes in the platform.
Cons:
player need to understand
pageNumber
metadata.player need to perform two operation: filter by metadata and group by pageNumber
storing the forms is still not solved with this approach
Approach 2: FrameworkTemplate and View
ObservationType - 'Self' (without ECM)
Code Block | ||
---|---|---|
| ||
{ "Observation": { "type": "self", "frameworkTemplate": { "domain": [], "criteria": [] }, "sections": [], "view": [], "children": [] } } |
...
loading the required presentation (criteria view, ecm view) at consumption requires more processing.
Behaviour:
...
Creator will see the framework hierarchical structure of domain & criteria for the first time, when creation of observation begins.
...
Once the observation is created, the taxonomy structure will be copied to the observation and same will be shown to the user from next loading of editor.
...
Rubrics at each criteria
Code Block |
---|
{
"Observation": {
"levels": {
"L1": {
"label": "Below Average"
},
"L2": {
"label": "Average"
},
"L3": {
"label": "Good"
}
}
}
} |
Behaviour:
Creator will see the framework hierarchical structure of domain & criteria for the first time, when creation of observation begins.
Once the observation is created, the taxonomy structure will be copied to the observation and same will be shown to the user from next loading of editor.
Label and some additional information (description, keywords, etc) can be updated by creator for the copied taxonomy structure.
Recommended Approach:
QuestionSet will have the hierarchy as usual. For Observation with rubrics, the editor will auto-create the question-set hierarchy using the framework structure.
The editor (or the question set category - Observation with Rubric) should use a config to specify the list of framework categories that are to be used to create the hierarchy.
Once the hierarchy is created, the editor shall not allow editing the structure of the hierarchy (i.e. the folders).
Regarding the pagination structure, lets add a new attribute “rendering_sequence” to the question_set object. This attribute has the following structure:
Code Block | ||
---|---|---|
| ||
{
"name": "name of the view, could be defaulted to the attribute used to group the questions, e.g.: ecm, criteria, score, etc",
"sequence": [
{ // one entry per section, one section may contain multiple pages
"value": "attribute value, e.g.: ecm-1, criteria-1, etc",
"name": "human readable name for the section, same as the attribute value by default",
"pages": [["list of question ids in page 1"], ["questions in page 2"]],
"index": 0
}
]
} |
No partial updates are allowed for rendering_sequence. The complete sequence will be overridden on update.
Platform will not validate the rendering_sequence. I.e, if the rendering_sequence has a question_id that doesn’t exist in the hierarchy, API will still update the value.
Old players which do not understand rendering_sequence can fall back to use the default hierarchy.
If the rendering_sequence has invalid data, player can choose to skip the question, fail the rendering of the question set or fall back to use the default hierarchy.
Rubrics should be defined on the sections of the original hierarchy using the outcome_declaration attribute (should have the same structure as response_declaration of questions).
Open Item: should Observations with rubric be a new primary category or a new object type? It depends on the PRD:
- if the editor workflow is generalised enough to embed in the question set editor or not
- if the behaviours like rendering_sequence and rubrics are applicable for any question set or not
Questions:
Code Block |
---|
Question Category definition
hierarchyCategories: [ domain, criteria ]
Framework1
{
domain
criteria
}
Framework2
{
topic
learningOutcome
} |
Code Block |
---|
Observation Type - 'External'
{
"name": "ecm",
"sequence": [
{
"value": "ECM1",
"name": "<Name_Of_The_ECM_1>",
"pages": [["do_Question_1", "do_Question_3"], ["do_Question_2"]],
"index": 0
},
{
"value": "ECM2",
"name": "<Name_Of_The_ECM_2>",
"pages": [["do_Question_4", "do_Question_5"], ["do_Question_6"]],
"index": 1
}
]
}
Observation Type - 'Self'
{
"name": "criteria",
"sequence": [
{
"value": "CRITERIA1",
"name": "<Name_Of_The_CRITERIA_1>",
"pages": [["do_Question_1", "do_Question_3"], ["do_Question_2"]],
"index": 0
},
{
"value": "CRITERIA2",
"name": "<Name_Of_The_CRITERIA_2>",
"pages": [["do_Question_4", "do_Question_5"], ["do_Question_6"]],
"index": 1
}
]
} |