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 ORCID iD [aut, cre]
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 profile (character) and values (numeric), loaded from the package profile lookup table.

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 profile (character) and values (numeric), loaded from the package profile lookup table.

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 runApp, such as port or host.

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)