Cognitive Assessments¶
Metricis provides a comprehensive suite of cognitive assessment tasks built on jsPsych 8.x.
Available Tasks¶
The full inventory of 36 cognitive performance tasks and patient-reported outcomes — grouped by cognitive domain, with a one-paragraph description and key outcome measures for each — is maintained in the Task Library. That page is the canonical reference for what's available to include in a battery.
ePRO templates and license-review-pending instruments (PGIC/PGIS diaries, adult PROMIS/BPI scaffolds, anchor-condition templates and instrument scaffolds) are tracked separately as study-configurable assets rather than first-class jsPsych tasks; see the study assistant and battery builder flows in the portal.
Task Configuration¶
Tasks are configured centrally in client/src/config.ts:
export const TASK_CONFIG = {
simpleRT: {
trials: 20,
timeout: 5000,
isi_range: [500, 1500],
},
cpt: {
trials: 100,
target_frequency: 0.3,
stimulus_duration: 500,
isi: 1000,
},
nback: {
levels: [1, 2, 3],
trials_per_level: 20,
stimulus_duration: 500,
isi: 2000,
},
digitSpan: {
starting_length: 3,
max_length: 9,
trials_per_length: 2,
},
};
Assessment Sessions¶
Session Flow¶
- Consent - Review and sign consent (if required)
- Welcome - Task overview and instructions
- Practice Trials - Familiarization with task interface
- Main Assessment - Actual task trials
- Breaks - Rest periods between tasks
- Completion - Summary and next steps
Session Management¶
// Start session
const session = await api.startSession({
participant_id: "P001",
battery_id: "battery_1",
});
// Run assessment
jsPsych.run(timeline);
// Submit data
await api.submitData({
session_id: session.session_id,
task_summaries: summaries,
trials: jsPsych.data.get().values(),
});
Data Collection¶
Trial-Level Data¶
Each trial captures:
rt- Reaction time (ms)response- Participant responsestimulus- Presented stimuluscorrect- Response accuracytask- Task identifiertrial_type- Trial type (e.g., target, distractor)timestamp- Trial timestamp
Task Summaries¶
Computed metrics for each task:
{
simple_rt: {
mean_rt: 342.5,
median_rt: 335.0,
sd_rt: 45.2,
accuracy: 0.95,
num_trials: 20,
},
cpt: {
hits: 28,
misses: 2,
false_alarms: 3,
correct_rejections: 67,
dprime: 2.5,
beta: 1.2,
},
}
Batteries¶
Batteries group tasks into collections for specific use cases:
Example: Neurology Battery¶
{
"name": "Neurology Screening",
"description": "Brief cognitive screening for neurology clinic",
"estimated_minutes": 15,
"tasks": [
{ "task_name": "simple_rt", "config": { "trials": 20 } },
{ "task_name": "digit_span", "config": { "max_length": 7 } },
{ "task_name": "promis", "config": { "bundleName": "neurology" } },
{ "task_name": "compass31", "config": {} },
{ "task_name": "facs", "config": {} }
]
}
Battery Builder¶
Researchers can create custom batteries in the portal:
- Select tasks from library
- Configure task parameters
- Set task order
- Preview estimated duration
- Save and assign to studies
Offline Support¶
Assessments work offline using IndexedDB:
// Store session data locally
await db.sessions.add({
id: session_id,
participant_id: participant_id,
trials: trials,
submitted: false,
});
// Sync when online
if (navigator.onLine) {
const pending = await db.sessions.where('submitted').equals(false).toArray();
for (const session of pending) {
await api.submitData(session);
await db.sessions.update(session.id, { submitted: true });
}
}
Mobile Deployment¶
Assessments run natively on iOS and Android via Capacitor:
# Build and open iOS from the monorepo root
npm run build:ios --workspace=client
npm run cap:open:ios
# Build and open Android from the monorepo root
npm run build:android --workspace=client
npm run cap:open:android
Adaptive Testing (CAT)¶
Computer Adaptive Testing adjusts difficulty based on performance:
// Adaptive N-Back
let currentLevel = 1;
function determineNextLevel(accuracy: number) {
if (accuracy > 0.8) currentLevel++;
if (accuracy < 0.5) currentLevel--;
currentLevel = Math.max(1, Math.min(3, currentLevel));
}
Accessibility¶
- Multi-language support - English/French via i18next
- Large tap targets - Mobile-friendly interface
- Clear instructions - Plain language explanations
- Practice trials - Familiarization before assessment
- Progress indicators - Visual feedback on completion
Quality Control¶
- Attention checks - Detect inattentive responding
- Validity indicators - Flag suspicious patterns
- Completion rates - Track task abandonment
- Technical issues - Log errors and device problems
Next Steps¶
- Data Entry - Manual data entry features
- Validation & Queries - Data quality management
- REDCap Integration - External system sync
- Client Architecture - Technical details