| Title: | Mapping Calculator for EQ-5D Utility Scores |
| Version: | 2.0.0 |
| Description: | Provides a 'shiny' web application to map scores from clinical instruments (PANSS, SQLS, WHODAS 2.0, PHQ-8, EQ-5D-5L) to preference-based EQ-5D-5L health utility values using validated regression-based and beta-mixture mapping algorithms developed from Singapore population studies. Intended for use in health economic evaluations and cost-utility analyses. Methods are based on: Abdin et al. (2019) <doi:10.1007/s11136-018-2037-7>, Seow et al. (2023) <doi:10.1080/14737167.2023.2215430>, Abdin et al. (2021) <doi:10.1186/s12888-021-03463-0>, Abdin et al. (2024) <doi:10.1080/14737167.2024.2376100>. |
| License: | MIT + file LICENSE |
| Encoding: | UTF-8 |
| RoxygenNote: | 7.3.3 |
| Depends: | R (≥ 4.1.0) |
| Imports: | shiny (≥ 1.7.0), bslib, ggplot2, readxl, haven, writexl, tibble |
| Suggests: | DT, testthat (≥ 3.0.0), spelling |
| Language: | en-GB |
| NeedsCompilation: | no |
| Packaged: | 2026-03-24 01:01:22 UTC; Edi |
| Author: | Edimansyah Abdin |
| Maintainer: | Edimansyah Abdin <edimansyah.bin.abdin@gmail.com> |
| Repository: | CRAN |
| Date/Publication: | 2026-03-27 10:20:12 UTC |
MappingCalc: Mapping Calculator for EQ-5D Utility Scores
Description
Provides a 'shiny' web application to map scores from clinical instruments (PANSS, SQLS, WHODAS 2.0, PHQ-8, EQ-5D-5L) to preference-based EQ-5D-5L health utility values using validated regression-based and beta-mixture mapping algorithms developed from Singapore population studies. Intended for use in health economic evaluations and cost-utility analyses. Methods are based on: Abdin et al. (2019) doi:10.1007/s11136-018-2037-7, Seow et al. (2023) doi:10.1080/14737167.2023.2215430, Abdin et al. (2021) doi:10.1186/s12888-021-03463-0, Abdin et al. (2024) doi:10.1080/14737167.2024.2376100.
Author(s)
Maintainer: Edimansyah Abdin edimansyah.bin.abdin@gmail.com (ORCID)
Data Analysis Module Server
Description
Shiny module server for the Data Analysis tab. All analysis tabs share a single uploaded dataset. Covers descriptive statistics, linear regression, cost-utility analysis, and probabilistic sensitivity analysis.
Usage
Analyses_server(id)
Arguments
id |
Character. The Shiny module namespace ID. |
Value
A Shiny module server function (called for its side effects).
Data Analysis Module UI
Description
Shiny module UI for the Data Analysis tab. Provides tools for descriptive statistics, linear regression, basic cost-utility analysis (ICER), and probabilistic sensitivity analysis (PSA) with CEAC. A single shared dataset upload at the top feeds all analysis tabs.
Usage
Analyses_ui(id)
Arguments
id |
Character. The Shiny module namespace ID. |
Value
A Shiny tabPanel UI element.
Compare EQ-5D-5L Profile Value to Singapore Population Mean
Description
Returns whether the index value for a given EQ-5D-5L health state profile is above or below the Singapore population mean of 0.95.
Usage
eq5d5l_index_comparison(
Mobility,
SelfCare,
UsualActivities,
PainDiscomfort,
AnxietyDepression,
profile_data
)
Arguments
Mobility |
Integer 1–5. Mobility dimension level. |
SelfCare |
Integer 1–5. Self-care dimension level. |
UsualActivities |
Integer 1–5. Usual activities dimension level. |
PainDiscomfort |
Integer 1–5. Pain/discomfort dimension level. |
AnxietyDepression |
Integer 1–5. Anxiety/depression dimension level. |
profile_data |
Data frame with columns |
Value
Character. "above" if index value > 0.95, "below"
otherwise.
Examples
profile_file <- system.file("extdata", "profile.csv",
package = "MappingCalc")
profile_data <- utils::read.csv(profile_file)
eq5d5l_index_comparison(1, 1, 1, 1, 1, profile_data)
eq5d5l_index_comparison(5, 5, 5, 5, 5, profile_data)
Look Up EQ-5D-5L Index Value from Profile
Description
Returns the EQ-5D-5L index value for a given five-digit health state profile using the Singapore value set (Luo et al., 2014) via the crosswalk method (van Hout et al., 2012).
Usage
eq5d5l_index_value(
Mobility,
SelfCare,
UsualActivities,
PainDiscomfort,
AnxietyDepression,
profile_data
)
Arguments
Mobility |
Integer 1–5. Mobility dimension level. |
SelfCare |
Integer 1–5. Self-care dimension level. |
UsualActivities |
Integer 1–5. Usual activities dimension level. |
PainDiscomfort |
Integer 1–5. Pain/discomfort dimension level. |
AnxietyDepression |
Integer 1–5. Anxiety/depression dimension level. |
profile_data |
Data frame with columns |
Value
Numeric scalar. EQ-5D-5L index value for the specified profile.
Examples
profile_file <- system.file("extdata", "profile.csv",
package = "MappingCalc")
profile_data <- utils::read.csv(profile_file)
eq5d5l_index_value(1, 1, 1, 1, 1, profile_data)
eq5d5l_index_value(3, 3, 3, 3, 3, profile_data)
Build EQ-5D-5L Profile String
Description
Concatenates the five EQ-5D-5L dimension levels into a
five-digit profile string (e.g., "11111" for full health).
Usage
eq5d5l_profile_string(
Mobility,
SelfCare,
UsualActivities,
PainDiscomfort,
AnxietyDepression
)
Arguments
Mobility |
Integer 1–5. Mobility dimension level. |
SelfCare |
Integer 1–5. Self-care dimension level. |
UsualActivities |
Integer 1–5. Usual activities dimension level. |
PainDiscomfort |
Integer 1–5. Pain/discomfort dimension level. |
AnxietyDepression |
Integer 1–5. Anxiety/depression dimension level. |
Value
Character scalar. Five-digit EQ-5D-5L profile string.
Examples
eq5d5l_profile_string(1, 2, 3, 2, 1)
eq5d5l_profile_string(3, 3, 3, 3, 3)
EQ_5D_5L Calculator Server
Description
EQ_5D_5L Calculator Server
Usage
mod_eq_5d_5l_server(id)
Arguments
id |
Character. The Shiny module namespace ID. |
Value
Called for its side effects.
EQ_5D_5L Calculator UI
Description
EQ_5D_5L Calculator UI
Usage
mod_eq_5d_5l_ui(id)
Arguments
id |
Character. The Shiny module namespace ID. |
Value
A tabPanel UI element.
EQ_PANSS Calculator Server
Description
EQ_PANSS Calculator Server
Usage
mod_eq_panss_server(id)
Arguments
id |
Character. The Shiny module namespace ID. |
Value
Called for its side effects.
EQ_PANSS Calculator UI
Description
EQ_PANSS Calculator UI
Usage
mod_eq_panss_ui(id)
Arguments
id |
Character. The Shiny module namespace ID. |
Value
A tabPanel UI element.
EQ_PHQ8 Calculator Server
Description
Shiny module server for the EQ_PHQ8 calculator. Handles individual score prediction and batch dataset upload/download using a 2-component Beta Mixture Model.
Usage
mod_eq_phq8_server(id)
Arguments
id |
Character. The Shiny module namespace ID. |
Value
A Shiny module server function (called for its side effects).
EQ_PHQ8 Calculator UI
Description
Shiny module UI for the EQ_PHQ8 calculator tab. Maps PHQ-8 scores to EQ-5D-5L utility values using a 2-component Beta Mixture Model.
Usage
mod_eq_phq8_ui(id)
Arguments
id |
Character. The Shiny module namespace ID. |
Value
A Shiny tabPanel UI element.
EQ_SQLS Calculator Server
Description
EQ_SQLS Calculator Server
Usage
mod_eq_sqls_server(id)
Arguments
id |
Character. The Shiny module namespace ID. |
Value
Called for its side effects.
EQ_SQLS Calculator UI
Description
EQ_SQLS Calculator UI
Usage
mod_eq_sqls_ui(id)
Arguments
id |
Character. The Shiny module namespace ID. |
Value
A tabPanel UI element.
EQ_WHODAS Calculator Server
Description
EQ_WHODAS Calculator Server
Usage
mod_eq_whodas_server(id)
Arguments
id |
Character. The Shiny module namespace ID. |
Value
Called for its side effects.
EQ_WHODAS Calculator UI
Description
EQ_WHODAS Calculator UI
Usage
mod_eq_whodas_ui(id)
Arguments
id |
Character. The Shiny module namespace ID. |
Value
A tabPanel UI element.
Compare PANSS-Predicted Utility to Singapore Population Mean
Description
Returns whether the predicted EQ-5D-5L utility is above or below the Singapore population mean of 0.95.
Usage
panss_utility_comparison(positive, negative, gps, age1, gender)
Arguments
positive |
Numeric. PANSS Positive subscale score (range: 7–49). |
negative |
Numeric. PANSS Negative subscale score (range: 7–49). |
gps |
Numeric. PANSS General Psychopathology score (range: 16–112). |
age1 |
Numeric. Patient age in years (minimum: 21). |
gender |
Numeric. Gender code: 1 = female, 0 = male. |
Value
Character. "above" if predicted utility > 0.95,
"below" otherwise.
Examples
panss_utility_comparison(34, 17, 80, 40, 1)
Estimate EQ-5D-5L Utility Score from PANSS Subscales
Description
Predicts the EQ-5D-5L utility index value using an OLS regression model from Abdin et al. (2019). Predicted scores above 1.000 are capped at 1.000.
Usage
panss_utility_score(positive, negative, gps, age1, gender)
Arguments
positive |
Numeric. PANSS Positive subscale score (range: 7–49). |
negative |
Numeric. PANSS Negative subscale score (range: 7–49). |
gps |
Numeric. PANSS General Psychopathology score (range: 16–112). |
age1 |
Numeric. Patient age in years (minimum: 21). |
gender |
Numeric. Gender code: 1 = female, 0 = male. |
Value
Numeric scalar. EQ-5D-5L utility value rounded to 3 decimal places, capped at a maximum of 1.000.
References
Abdin E, Chong SA, Seow E et al. (2019). Mapping the Positive and Negative Syndrome Scale scores to EQ-5D-5L and SF-6D utility scores in patients with schizophrenia. Quality of Life Research, 28, 177–186. doi:10.1007/s11136-018-2037-7
Examples
panss_utility_score(34, 17, 80, 40, 1)
panss_utility_score(positive = 20, negative = 15, gps = 40,
age1 = 35, gender = 0)
Launch the MappingCalc Shiny Application
Description
Launches the MappingCalc interactive Shiny calculator in the default web browser. Provides validated mapping calculators for PANSS, SQLS, WHODAS 2.0, PHQ-8, and EQ-5D-5L instruments, plus a Data Analysis module for descriptive statistics, linear regression, cost-utility analysis, and probabilistic sensitivity analysis.
Usage
run_app(...)
Arguments
... |
Additional arguments passed to |
Value
Called for its side effect of launching a Shiny application.
Returns the value of shiny::runApp() invisibly.
Examples
if (interactive()) {
run_app()
}
Compare SQLS-Predicted Utility to Singapore Population Mean
Description
Returns whether the predicted EQ-5D-5L utility is above or below the Singapore population mean of 0.95.
Usage
sqls_utility_comparison(psychosocial, motivation, symptoms, age, gender)
Arguments
psychosocial |
Numeric. SQLS Psychosocial subscale score (range: 0–100). |
motivation |
Numeric. SQLS Motivation subscale score (range: 0–100). |
symptoms |
Numeric. SQLS Symptoms subscale score (range: 0–100). |
age |
Numeric. Patient age in years. |
gender |
Numeric. Gender code: 1 = female, 0 = male. |
Value
Character. "above" if predicted utility > 0.95,
"below" otherwise.
Examples
sqls_utility_comparison(50, 50, 50, 40, 1)
Estimate EQ-5D-5L Utility Score from SQLS Subscales
Description
Predicts the EQ-5D-5L utility index value using an OLS regression model from Seow et al. (2023).
Usage
sqls_utility_score(psychosocial, motivation, symptoms, age, gender)
Arguments
psychosocial |
Numeric. SQLS Psychosocial subscale score (range: 0–100). |
motivation |
Numeric. SQLS Motivation subscale score (range: 0–100). |
symptoms |
Numeric. SQLS Symptoms subscale score (range: 0–100). |
age |
Numeric. Patient age in years. |
gender |
Numeric. Gender code: 1 = female, 0 = male. |
Value
Numeric scalar. EQ-5D-5L utility value rounded to 3 decimal places.
References
Seow E, Abdin E, Subramaniam M, Chong SA (2023). Mapping the schizophrenia quality of life scale to EQ-5D, HUI3 and SF-6D utility scores in patients with schizophrenia. Expert Review of Pharmacoeconomics and Outcomes Research, 23(7), 813–821. doi:10.1080/14737167.2023.2215430
Examples
sqls_utility_score(50, 50, 50, 40, 1)
Compare WHODAS-Predicted Utility to Singapore Population Mean
Description
Returns whether the predicted EQ-5D-5L utility is above or below the Singapore population mean of 0.95.
Usage
whodas_total_utility_comparison(whodas_scores)
Arguments
whodas_scores |
Numeric. WHODAS 2.0 total score (range: 0–48). |
Value
Character. "above" if predicted utility > 0.95,
"below" otherwise.
Examples
whodas_total_utility_comparison(10)
Estimate EQ-5D-5L Utility Score from WHODAS 2.0 Total Score
Description
Predicts the EQ-5D-5L utility index value from the WHODAS 2.0 12-item total score using a robust regression model from Abdin et al. (2024). Predicted values below -0.584 are floored at -0.584.
Usage
whodas_total_utility_score(whodas_scores)
Arguments
whodas_scores |
Numeric. WHODAS 2.0 total score (range: 0–48). |
Value
Numeric scalar. EQ-5D-5L utility value rounded to 3 decimal places, floored at a minimum of -0.584.
References
Abdin E et al. (2024). Mapping the World Health Organization Disability Assessment Schedule 2.0 to the EQ-5D-5L in patients with mental disorders. Expert Review of Pharmacoeconomics and Outcomes Research. doi:10.1080/14737167.2024.2376100
Examples
whodas_total_utility_score(10)
whodas_total_utility_score(48)