% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/vitamin_d_status.R
\name{vitamin_d_status}
\alias{vitamin_d_status}
\title{Vitamin D Status Category}
\usage{
vitamin_d_status(
  data,
  col_map = NULL,
  na_action = c("keep", "omit", "error", "ignore", "warn"),
  verbose = TRUE
)
}
\arguments{
\item{data}{A data.frame or tibble with a 25-hydroxyvitamin D concentration column.}

\item{col_map}{A named list with \code{vitamin_d} giving the column name in \code{data} for 25(OH)D.}

\item{na_action}{One of c("keep","omit","error","ignore","warn").
\itemize{
\item keep/ignore: compute and propagate NA
\item omit: drop rows with NA in required input
\item error: abort if required input contains NA
\item warn: like keep, but emit missingness warnings
}}

\item{verbose}{Logical; if TRUE, emits progress via rlang::inform.}
}
\value{
A tibble with one column: vitamin_d_status (ordered factor with levels "Deficient","Insufficient","Sufficient").
}
\description{
Categorizes vitamin D status based on serum 25-hydroxyvitamin D (25(OH)D) levels.
}
\details{
Serum 25(OH)D is the standard biomarker for vitamin D status. This function classifies
levels (assumed in ng/mL) into categories:
\itemize{
\item Deficient (< 20 ng/mL)
\item Insufficient (20-29 ng/mL)
\item Sufficient (>= 30 ng/mL)
}

Note: Ensure input units are ng/mL. If values appear extremely high (e.g., median > 150),
they might be in nmol/L (divide by 2.5 to convert to ng/mL).
}
\examples{
df <- data.frame(VitD = c(18, 45, 72))
vitamin_d_status(df)

}
\references{
\insertRef{iomm2011calciumvitd}{HealthMarkers}
\insertRef{holick2011vitd}{HealthMarkers}
}
