Skip to content

cogvars_gdr_20251107.sas runs unmodified on Jenner — test bundle#2

Open
jenner-analytics wants to merge 1 commit into
UCSFGeriatrics:masterfrom
jenner-analytics:jenner-check/initial-bundles
Open

cogvars_gdr_20251107.sas runs unmodified on Jenner — test bundle#2
jenner-analytics wants to merge 1 commit into
UCSFGeriatrics:masterfrom
jenner-analytics:jenner-check/initial-bundles

Conversation

@jenner-analytics

@jenner-analytics jenner-analytics commented Jul 14, 2026

Copy link
Copy Markdown

Jenneranalytics.com provides an API that runs SAS code, with support for more than 200 SAS procedures. You can also use it with AI assistants in a collaborative workspace. It's available for Mac on the Apple App Store, and by license for Windows and Linux.

We support the larger community by
(1) increasing access to SAS-compatible systems,
(2) by providing test coverage and a test coverage framework to public SAS repos in order to encourage the use of best practices in software engineering.

Your cogvars_gdr_20251107.sas runs on Jenner unmodified — this PR adds a small compatibility bundle so you can see for yourself. It's the test we wrote for your library, shared in case it's useful, and was assembled with AI assistance as is most code in modern businesses today.

Reading through the cognitive-measures program, the piece that stood out is the %proxy macro's handling of the Jorm IQCODE. Rather than dropping "other / don't know / refused" item responses, it folds them toward the nearest unchanged category — a 7/8/9 on the improved branch becomes "a bit improved" and on the declined branch "a bit worse" — so a proxy interview with a few unusable items still contributes a sixteen-item average instead of going missing entirely. The %merge2sets utility is a nice companion: one place for the sort/keep/merge boilerplate that the rest of the pipeline leans on, instead of that pattern being re-typed at every join. Documented decisions like these are what make derivation code trustworthy to reuse, and they're the parts worth pinning a test around.

The bundle lives entirely under jenner-check/ — three self-contained tests, each a copy of one of your constructs plus a small mock input, the captured log and listing from a passing run, and a runner. Nothing outside jenner-check/ is touched, nothing runs on merge, and there are no workflow files or hooks.

jenner-check/
├── run_jenner.sh
├── README.md
├── t001_merge2sets/       %merge2sets sort/keep/merge utility
├── t002_proxy_iqcode/     %proxy Jorm IQCODE derivation
└── t003_frailtyscore/     frailty-score domains + 0-4 score

To try one against the hosted engine, check out this PR and run from the repo root:

# puts you on this PR's branch, then run from the repo root:
gh pr checkout 2
curl -sS --data-binary @jenner-check/t001_merge2sets/script.sas https://api.jenneranalytics.com/v1/quick

Or cd jenner-check && ./run_jenner.sh --all, which re-runs every bundle and checks the pinned fields in each expected.json. The API is free to try with no signup; full API reference: the docs.

On data: the runner sends only the SAS source text of the script it runs (plus a two-line autoexec) to api.jenneranalytics.com, which runs it and returns the log and listing. It does not read or upload any data files — each bundle carries its own small mock input in the columns the construct reads — so anything sitting next to a script stays on your machine, and nothing is transmitted unless you run one of these commands yourself. As with pasting a snippet into any hosted tool, only the code you run is transmitted, so you can review a script first if it ever embeds sensitive values inline.

Merge it, close it, or ignore it — all fine, and no response is expected. We won't open further PRs in this repo. To opt out of any future contact, leave no-more-prs in a comment or open an issue titled jenner-check: opt out.


Lawrence W. Sinclair
CEO / Jenner Analytics Ltd
linkedin.com/in/lwsinclair/

Adds a self-contained jenner-check/ directory with three compatibility
bundles derived from this repo's SAS:
  - t001_merge2sets: the %merge2sets sort/keep/merge utility
  - t002_proxy_iqcode: the %proxy Jorm IQCODE derivation
  - t003_frailtyscore: the frailty-score domain + 0-4 scoring data step

Each bundle carries a copy of the construct, a small mock input, the
captured log and listing from a passing run on Jenner, and a shell runner.
Nothing outside jenner-check/ is touched and nothing executes on merge.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant