# Mechanism-core states -> clinical readouts. See model-spec.md Section 7.

#' Clinical Activity Score, 0-7, from the GAG/hyaluronan (edema/inflammation)
#' pool.
cas_score <- function(GAG, G50 = 1) {
  pmin(7, 7 * GAG / (GAG + G50))
}

#' Proptosis in mm above patient baseline, from myofibroblast + adipocyte
#' pools.
proptosis_mm <- function(Myo, Fat, baseline_mm, Pmax = 3,
                          wM = 0.5, wA = 0.5, M50 = 1, A50 = 1) {
  baseline_mm + Pmax * (wM * Myo / (Myo + M50) + wA * Fat / (Fat + A50))
}

#' Diplopia grade, 0-3 ordinal (Gorman-scale convention), from the
#' myofibroblast pool.
diplopia_grade <- function(Myo, D50 = 1.5) {
  round(pmin(3, 3 * Myo / (Myo + D50)))
}
