*! version 2.0 28nov2025

Title

midas_quadas2 -- Create QUADAS-2 quality assessment plots for systematic reviews

Syntax

midas_quadas2
,
id(varname)
robvars(varlist)
acvars(varlist)
plot(string)
[options]

Required
id(varname) variable identifying individual studies

robvars(varlist) variables for Risk of Bias assessment

acvars(varlist) variables for Applicability Concerns assessment

plot(string) type of plot: bar or sum

Optional
color produce color plots instead of grayscale

scheme(string) specify Stata graphics scheme

saving(string) save combined graph

graph_options additional graph options to pass through

Description

midas_quadas2 creates quality assessment plots following the QUADAS-2
(Quality Assessment of Diagnostic Accuracy Studies-2) framework for systematic
reviews of diagnostic test accuracy studies. The command produces two types of
visualizations:

Bar plots (plot(bar)) - Display the proportion of studies rated as
having low, unclear, or high risk of bias/applicability concerns for each
assessment criterion. These plots provide an overview of methodological quality
across all included studies.

Summary (traffic-light) plots (plot(sum)) - Display the quality
assessment for each individual study across all criteria using a traffic-light
display. Each study is represented as a row, and each criterion as a column,
with symbols indicating the risk level.

Options

Required

id(varname) specifies the variable that uniquely identifies each study in
the dataset. This is typically a study identifier or author-year combination.
For summary plots, the study labels will be displayed on the y-axis.

robvars(varlist) specifies the variables containing Risk of Bias
assessments. Each variable should represent one QUADAS-2 signaling question or
domain. Variables must be string variables containing the values "low",
"unclear", or "high". Variable labels will be used as criterion labels in the
plots.

acvars(varlist) specifies the variables containing Applicability Concerns
assessments. Like robvars, these should be string variables with values
"low", "unclear", or "high". Variable labels will be used as criterion labels.

plot(string) specifies the type of plot to create. Must be either:

bar - Creates horizontal stacked bar charts showing the
percentage distribution of quality ratings

sum - Creates traffic-light plots showing individual study
assessments

Optional

color produces colored plots instead of the default grayscale. In color
mode:

- Low risk is displayed in green

- Unclear risk is displayed in yellow/gold

- High risk is displayed in red

In grayscale mode:

- Low risk is displayed with white fill

- Unclear risk is displayed in gray

- High risk is displayed in black

scheme(string) specifies a Stata graphics scheme. Default is s2mono.
You can use any installed Stata scheme (e.g., s1color, economist, sj).

saving(string) saves the combined graph to a file. Specify the filename
with or without the .gph extension.

graph_options are additional options passed to the underlying graph
commands. These can include options like name(), title(), etc.

Examples

Setup: Create example dataset with QUADAS-2 assessments

. clear

. input str20 study str10 rob1 str10 rob2 str10 rob3 str10 ac1 str10 ac2

"Smith 2020" "low" "low" "unclear" "low" "low"

"Jones 2021" "high" "low" "low" "low" "unclear"

"Brown 2022" "low" "unclear" "high" "unclear" "low"

end

. label variable rob1 "Patient Selection"

. label variable rob2 "Index Test"

. label variable rob3 "Reference Standard"

. label variable ac1 "Patient Selection"

. label variable ac2 "Index Test"

Example 1: Create grayscale bar charts

. midas_quadas2, id(study) robvars(rob1 rob2 rob3) acvars(ac1 ac2) plot(bar)

Example 2: Create color bar charts

. midas_quadas2, id(study) robvars(rob1 rob2 rob3) acvars(ac1 ac2) plot(bar) color

Example 3: Create traffic-light summary plot in grayscale

. midas_quadas2, id(study) robvars(rob1 rob2 rob3) acvars(ac1 ac2) plot(sum)

Example 4: Create color traffic-light plot with custom scheme

. midas_quadas2, id(study) robvars(rob1 rob2 rob3) acvars(ac1 ac2) plot(sum) color scheme(s1color)

Example 5: Create and save plots

. midas_quadas2, id(study) robvars(rob1 rob2 rob3) acvars(ac1 ac2) plot(sum) color saving(quadas2_plots)

Stored results

midas_quadas2 stores the following in r():

Scalars

r(N) number of studies

Remarks

Data preparation:

Before using midas_quadas2, ensure your data are properly formatted:

1. Each observation should represent one study

2. Quality assessment variables must be string variables containing
exactly "low", "unclear", or "high" (case-sensitive)

3. Add descriptive variable labels to your quality assessment
variables - these will appear as criterion labels in the plots

4. The study ID variable should contain unique, meaningful study
identifiers (e.g., "Author Year")

Interpreting the plots:

Bar plots show the overall methodological quality across studies. A high
proportion of "low risk" ratings (green or white bars) indicates good overall
study quality. Large proportions of "unclear" or "high" risk suggest potential
quality issues.

Traffic-light plots allow assessment of individual study quality patterns.
Each row represents a study, each column a quality criterion. Patterns of red
or yellow/gold circles across a row indicate studies with potential bias.
Patterns down a column indicate criteria that are problematic across multiple
studies.

QUADAS-2 framework:

The QUADAS-2 tool assesses four key domains:

1. Patient Selection

2. Index Test

3. Reference Standard

4. Flow and Timing

Each domain is assessed for Risk of Bias (first three domains also for
Applicability Concerns). Your robvars should include variables for each
relevant domain's risk of bias assessment, and acvars should include
applicability assessments.

References

Whiting PF, Rutjes AW, Westwood ME, et al. QUADAS-2: a revised tool for the
quality assessment of diagnostic accuracy studies. Ann Intern Med.
2011;155(8):529-536. doi:10.7326/0003-4819-155-8-201110180-00009

Author

For questions, bug reports, or suggestions, please contact the package maintainer.

Also see

Online: [R] meta, [G-2] graph