Project setup
AI screening
Review rules
Import
Config
AI extraction
Data review
Download
Analysis
{{ setupSection==='advanced' ? 'Advanced' : 'Analyses' }}
{{ showAnalysisPlanManagement ? 'Analysis plans' : 'Analysis' }}
An analysis plan selects interventions and an analysis type. Outcomes are linked in Outcome Setup.
More options
Archived analyses {{ archivedAnalysisPlans.length }}
{{ plan.name }}
Shared extraction measurements are retained.
Manage interventions Aliases, descriptions and shared intervention management
No interventions are defined yet. Add at least one intervention before mapping study groups or configuring intervention-specific analyses.
{{ treatment.preferred_name }}Archived{{ treatment.description }}
Add intervention
Merge or split interventions
Merge interventions
Use when two dictionary entries represent the same canonical intervention. The source entry is absorbed into the target.
Merge preview: {{ treatmentMergePreview.affected_arms || 0 }} study group mappings and {{ treatmentMergePreview.affected_plans || 0 }} analysis plans will be updated. The source name will be retained as an alias.
Split an intervention
Create a distinct canonical intervention and optionally remap selected study groups from the source entry.
No study groups currently map to this intervention. The new entry can still be created for future mapping.
Model and structure defaultsTime-point categories and analysis populations
Time-point categories
Use broad clinically meaningful categories. Exact reported timing is stored separately with each measurement.
Analysis populations
Analysis populations belong within study groups. A comparison cannot silently mix different populations.
{{ setupSection==='overview' ? 'Review overview' : 'Eligibility and screening' }}
Review conduct, reporting and registration
{{ reviewWorkflowAssignmentWarning }}
{{ fmtInt(reviewTotal) }} matching · {{ fmtInt(records.length) }} loaded
Updating records…
Loading records…
{{ recordsLoadError }}
No records in this queue.
{{ recordReviewStatusLabel(r) }}
Consensus review
The independent reviewers disagreed. Choose one submitted decision or edit after loading it.
saving
{{ r.title || '(No title)' }}
{{ r.year }}{{ r.authors }} · {{ r.journal }} · DOI {{ r.doi || 'not reported' }} · PMID {{ r.pmid || 'not reported' }}Metadata: {{ r.metadata_source_label }}
Final: {{ r.final_decision || 'pending' }}Source: {{ r.final_source }}Human reviewedDuplicateNot in PRISMA@{{ r.citation_key }}{{ label }}
{{ seg.text }}{{ seg.text }}
PDF attached
{{ pdf.original_name }}{{ pdf.match_status }}
LLM bucket:{{ decisionLabel(r.suggested_bucket) }} · confidence {{ r.suggestion_confidence }}
Thresholds used: include ≥ {{ r.suggestion.thresholds.include_threshold }}, maybe floor ≥ {{ r.suggestion.thresholds.maybe_threshold }}, exclude ≥ {{ r.suggestion.thresholds.exclude_threshold }}
LLM decision:{{ r.suggested_decision || 'not screened' }}
Reason: {{ r.suggestion?.reason || '' }}
Evidence: {{ r.suggestion?.evidence || '' }}
Model: {{ r.suggestion?.model || '' }}escalated from {{ r.suggestion?.primary_model }}
Missing: {{ r.suggestion.missing_information.join('; ') }}
Thresholds used: include ≥ {{ r.suggestion.thresholds.include_threshold }}, maybe floor ≥ {{ r.suggestion.thresholds.maybe_threshold }}, exclude ≥ {{ r.suggestion.thresholds.exclude_threshold }}
LLM decision:{{ r.suggested_decision || 'not screened' }}
Reason: {{ r.suggestion?.reason || '' }}
Evidence: {{ r.suggestion?.evidence || '' }}
Model: {{ r.suggestion?.model || '' }}escalated from {{ r.suggestion?.primary_model }}
Missing: {{ r.suggestion.missing_information.join('; ') }}
Last decision by {{ r.human_decision_user_name || r.human_decision_user_email }} at {{ formatDateTime(r.human_decision_at) }}
Importing and validating config…
Validation errors
- {{ err }}
Warnings
- {{ warn }}
No included studies found. Mark reports as included in Records to configure studies and enter data manually or using AI.
{{ selectedStructureStudy.label }}
Several reports may describe one study, and one report may describe several studies. Measurements retain their source report.
{{ selectedStructureStudyReports.length }} report(s)
{{ reportDisplayLabel(report) }}Primary report{{ reportRoleLabel(report.report_role) }}
{{ report.title || ('Record ' + report.record_id) }}
{{ arm.expected ? 'Expected' : 'Added' }} {{ armIndex+1 }}
Selected
A parallel-group comparative study requires at least two study groups.
Overlapping or uncertain groups cannot both enter an ordinary analysis as independent contributions.
Stable machine-readable name used in XLSX, R and jmeta. Internal data stays linked by the hidden field ID.
Used in analyses
The outcome is defined once and can be reused by any analysis.
Controls natural grouping and wording in R-composed smart summaries.
{{ selectedMetadataBundle.bundle_label }}
{{ characteristicBundleSubtitle(selectedMetadataBundle) }} · {{ selectedMetadataBundle.representation }}
Fields collected
{{ characteristicComponentLabel(member.field) }}
{{ member.field.export_name }}{{ member.field.display_name }} · {{ member.field.unit_hint }}
These existing fields retain their own IDs, export columns and summary definitions.
Stable machine-readable name used in XLSX, R and jmeta. Internal data stays linked by the hidden field ID.
Choose a supported risk-of-bias tool using Change risk-of-bias type.
Archived ROB assessments ({{ archivedRiskOfBiasAssessments.length }})
{{ archive.label || riskOfBiasLabel(archive.tool) }}
Preserved with {{ archive.fields?.length || 0 }} domains
Use the JSON tab for larger structural changes.
For uncommon sections or bulk edits, edit the complete config JSON here. Field IDs are immutable relationship keys: changing or removing an existing field_id is rejected unless the field was explicitly deleted. Click Apply JSON to validate and save the whole object.
{{ rawExtractionJsonError }}
Loading extraction setup…
Create or import an extraction config before running data extraction.
No studies queued for extraction yet.
Mark records as included to populate this list. Data can be extracted from an abstract, a linked PDF, or both.
Studies
{{ extractionStudyShortLabel(row) }}
{{ extractionStatusLabel(row.status) }}
{{ dataReviewStatusLabel(row) }}
{{ segment.text }}{{ segment.text }}
No abstract is available for this study.
No linked PDF is available for this study.
No PDF or abstract is available for this study.
{{ selectedExtraction.canonical_study_label || selectedExtraction.study_id || 'Study' }}
{{ selectedExtraction.record_title || selectedExtraction.study_id }}
The abstract is available for manual or AI extraction. A PDF can be added later without changing existing values or their provenance.
You can enter data manually, but no abstract or PDF is available for AI extraction.
{{ selectedExtraction.error.error }}
{{ dataReviewStatusLabel(selectedExtraction) }}
{{ dataReviewConflictCount(selectedExtraction) }} differing field{{ dataReviewConflictCount(selectedExtraction)===1 ? '' : 's' }}
Consensus review
Load either submitted copy into the existing form, edit any fields needed, then save consensus.
Study-level characteristics
Group-level characteristics
{{ arm.arm || 'Overall' }} {{ arm.intervention || '' }}
| Characteristic | Value |
|---|---|
|
{{ bundle.bundle_label }}
{{ characteristicBundleSubtitle(bundle) }}
|
{{ bundle.managed ? component.label : 'Value' }}
|
No study or study-group characteristics are configured.
No active risk-of-bias tool is configured.
Every domain is marked Not applicable. This usually means insufficient reporting was mistaken for non-applicability; review the assessment.
Archived ROB assessments
{{ archive.label || riskOfBiasLabel(archive.tool) }}
{{ archive.fields?.length || 0 }} preserved domains
Published effect estimates
Enter the effect as reported. MedScreen derives analysis-scale values automatically.
No published effect estimate has been entered for this study.
{{ reportedEffectValidation(effect).label }}
Provenance and context
| Study group | Data | Details |
|---|---|---|
{{ outcomeGroupCollapsed(selectedExtraction,group) ? '▸' : '▾' }}{{ group.label }}{{ group.timePoint }} · {{ group.population }} · {{ group.cohort }}
⚠ {{ group.warning }}{{ group.armCount }} group{{ group.armCount===1?'':'s' }}
|
||
|
{{ extractionArmBadgeLabel(entry.value) }}
{{ extractionArmInterventionLabel(entry.value) }}
|
||
{{ entry.value.confidence || 'not reported' }}{{ extractionSourceLabel(entry.value) }}
|
||
Analysis needs refreshing. {{ analysisRefreshMessage }}
Loading saved analysis…
Generating analysis outputs…
No saved analysis has been run yet.
Use Refresh to generate and save jmeta tables, forest plots, publication-bias figures and the PRISMA diagram from the extracted data.
Loading summary tables…
No summary tables
All configured variables remain available. Create a table when one is needed.
{{ column }}
Drop here to create a new table
{{ variable.label }}
{{ (variable.suggested_path || []).join(' › ') || 'No suggested heading' }}
{{ summaryVariableUsageLabel(variable) }}
No table selected.
{{ selectedAnalysisTable.title }}{{ analysisGeneratorLabel(selectedAnalysisTable) }}
{{ selectedAnalysisTable.description }}
{{ analysisArtifactRoleLabel(selectedAnalysisTableArtifact.publication_role) }} · {{ analysisArtifactPlacementLabel(selectedAnalysisTableArtifact.placement) }} · Stale
{{ selectedAnalysisTable.note }}
Preparing table editor…
No rows.
| {{ col }} | |
|---|---|
| {{ analysisTableCell(row[analysisTablePreviewColumns(selectedAnalysisTable)[0]]) }} | {{ analysisTableCell(row[col]) }}{{ analysisTableCell(row[col]) }} |
Showing first 250 rows.
No figure selected.
{{ selectedAnalysisFigureOutput.title }}{{ analysisGeneratorLabel(selectedAnalysisFigureOutput) }}
{{ selectedAnalysisFigureOutput.description }}
{{ analysisArtifactRoleLabel(selectedAnalysisFigureOutputArtifact.publication_role) }} {{ analysisArtifactPlacementLabel(selectedAnalysisFigureOutputArtifact.placement) }} Stale
{{ selectedAnalysisFigureOutput.figure.note }}
Figure file unavailable.
{{ analysisDistinctCaption(selectedAnalysisFigureOutputArtifact?.caption || selectedAnalysisFigureOutput.caption, selectedAnalysisFigureOutput.title, selectedAnalysisFigureOutput.description) }}
{{ analysisSubfigureLabel(figure, idx) }}
{{ figure.title }}{{ analysisGeneratorLabel(figure) }}
{{ figure.description }}
{{ analysisDistinctCaption(analysisGroupChildSubcaption(selectedAnalysisFigureOutputArtifact, figure.id, ''), figure.title, figure.description) }}
{{ figure.note }}
Figure file unavailable.
{{ analysisDistinctCaption(selectedAnalysisFigureOutputArtifact?.caption || selectedAnalysisFigureOutput.caption, selectedAnalysisFigureOutput.title, selectedAnalysisFigureOutput.description) }}
No text output selected.
{{ selectedAnalysisNarrative.title }}
{{ selectedAnalysisNarrative.section || 'Text' }}
{{ analysisGeneratorLabel(selectedAnalysisNarrative) }}
{{ selectedAnalysisNarrative.description }}
{{ selectedAnalysisNarrative.note }}
Accompanies:
{{ para }}
Loading {{ pendingProjectName || 'project' }}…
Create or select a project to begin.