Single-point robustness: AUC and LogAUC no longer error on a length-1 input (they return 0), so sNCA handles a subject with a single measurable (non-zero) concentration instead of stopping with "subscript out of bounds".
sNCA no longer invokes the interactive DetSlope when there is only one non-zero point (a terminal slope cannot be fit from a single point).
IQNCA added: a self-contained Installation Qualification (IQ) report in pdf documenting whether NonCompart is correctly installed, intact, loadable, and operational (environment, version, dependency satisfaction, MD5 file integrity, namespace/exports, a functional NCA check against an external reference, an overall QUALIFIED/NOT QUALIFIED verdict, a sessionInfo appendix, and a per-file md5 checksum appendix).
OQNCA added: a self-contained Operational Qualification (OQ) report in pdf. It runs eight WinNonlin-referenced NCA scenarios (shipped in ‘inst/OQ’) through tblNCA on the user's machine and lists every computed value next to its reference value, with the absolute and relative difference and a pass flag, and an overall verdict.
writeMD5NCA added: writes the standard R ‘MD5’ integrity manifest into an installed package directory (using tools::md5sum) so that the IQNCA file-integrity check reports PASS for local installs. CRAN installs already include this manifest.
PQNCA added: a Performance Qualification (PQ) report generator. It runs the analysis the user intends on the user's own data and checks reproducibility, per-profile scientific plausibility, and (optionally) agreement with the user's expected values, with an input-data md5 fingerprint and a signed record.
addSigFieldNCA added (and a sigField argument to IQNCA/OQNCA/PQNCA): insert Adobe Acrobat Reader signature fields into the report PDF (pure base-R PDF incremental update, no external tools) so it can be signed with one click in the free Acrobat Reader, instead of printing and scanning.
signPDFNCA and verifyPDFNCA added: digitally sign a report PDF (a detached SHA-256 signature written to ‘<pdf>.sig’, using the openssl package) and verify it, as a scriptable alternative.
The IQ and OQ reports use 1 inch margins on every side, select Letter paper in a United States locale and A4 elsewhere, and place the signature/approval page first.
sNCA and tblNCA support predetermined indices of points (UsePoints) to calculate terminal slope.
tblNCA supports vector input for dur argument.
Fixed a bug in Slope where sequential is.finite filtering could cause misaligned x and y vectors.
Fixed typo 'umul/mL' to 'umol/mL' in concentration unit normalization (Unit, UnitUrine).
Replaced unsafe eval(parse(text=...)) with direct logical subsetting in tblNCA and tblAUC.
Extracted duplicated slope-finding logic in BestSlope into helper function findBestSlope.
Normalized adm parameter once at the top of sNCA instead of calling toupper(trimws()) repeatedly.
Extracted shared unit conversion helpers (normalizeConcUnit, convertVolUnit) in Unit.R.
Reduced redundant toupper(trimws(down)) calls in AUC and IntAUC.
Minor updates.
SS option for steady-state added in sNCA and tblNCA
tblAUC, gAUC, gInterpol functions are added for general purpose AUC such as AUC for pharmacodynamic(PD) data.
Rare cases raising NaN in BestSlope are handled.
DetSlope no longer opens a new device when closed.
Data type error with tibble data is fixed.
Bug when a slope is determined by manual selection is fixed.
excludeDelta option added to tblNCA, sNCA, and BestSlope functions.
UT function removed
returnNA option in sNCA function is removed.
When it is impossible to determine slope, it skips.
tblNCA supports iAUC argument.
Some sentences are revised.
Nonnumeric Subject ID is supported.
tblNCA is rewritten.
Issue on reverse dependence on ncar is solved.
Validation document is added.
DetSlope now accepts default slope from BestSlope.
Errata in manual corrected.
DetSlope function is added to determine slope manually.
NonCompart is more tolerable to the input error.
sNCA can accept key of multiple columns instead of single column colSubj.
NonCompart can handle the case of no or one positive y value.
NonCompart A bug in C0 calcuation of IV bolus case was fixed.
NonCompart Only essential functions for calculation were remained.