- TypeScript 43.3%
- Python 42.7%
- CSS 9.5%
- Dockerfile 3.2%
- HTML 0.7%
- Other 0.6%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
Some checks are pending
ci/woodpecker/push/woodpecker Pipeline is pending
Reviewed-on: #39 |
||
| .claude | ||
| apps | ||
| charts/plotter | ||
| docs | ||
| science | ||
| scripts | ||
| tests | ||
| .dockerignore | ||
| .gitignore | ||
| .prettierignore | ||
| .prettierrc.json | ||
| .woodpecker.yaml | ||
| mise.toml | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| pyproject.toml | ||
| README.md | ||
| renovate.json | ||
| THIRD_PARTY_NOTICES.md | ||
| uv.lock | ||
Pipeline Plotter
A pharmacokinetics research preview intended for https://plotter.trentranspipeline.cc.
React + TypeScript + Vite, a FastAPI/uv API, versioned scientific artifacts, two Docker Hardened Images, a Helm chart, and Woodpecker CI.
Run locally
Requires Node 26, pnpm 12.5.1, Python 3.14, uv and Helm for chart checks.
The pnpm version is pinned in package.json; CI and the web image builder use
Node's bundled npm only to bootstrap that pinned pnpm CLI.
uv sync --frozen
uv run uvicorn plotter.main:app --app-dir apps/api --host 127.0.0.1 --port 8000
# In a second terminal:
pnpm install --frozen-lockfile
pnpm --filter @plotter/web run dev
Open http://127.0.0.1:5173. Vite proxies /api to the local API.
Validate
uv run ruff check .
uv run ruff format --check .
uv run pytest -q
pnpm test
pnpm run build
helm lint charts/plotter --set web.tag=sha-test,api.tag=sha-test,route.enabled=true
woodpecker-cli lint .woodpecker.yaml
docker build -f apps/api/Dockerfile -t plotter-api:local .
docker build -f apps/web/Dockerfile -t plotter-web:local .
The first model reproduces an attributed Estrannaise EEn IM reference fit. It is not a new or independently clinically validated model. SC EEn and additional compounds remain separate evidence-review milestones. See science/README.md, docs/architecture.md, and docs/deployment.md.
For each complete injection interval, the API reports the highest modeled concentration and the modeled concentration immediately before the next injection. The site marks the last complete pair on the curve and lists every complete interval in an expandable table. A partial final interval has no invented trough; these values are not individual blood-level predictions.
The chart can optionally display a 100–200 pg/mL guideline reference band or a custom comparison band entered in pg/mL. Bands convert with the chart unit and remain visual references, not validated optimal ranges, safety thresholds, or dosing recommendations. The guideline reference is attributed to the Endocrine Society's 2017 guidance; a 2025 systematic review found insufficient evidence that this range optimizes outcomes. Neither source establishes an alternative universal 200–400 pg/mL target.
The production release path is Forgejo -> Woodpecker -> Forgejo OCI registry -> infra Git -> Argo CD -> root01. Argo CD Image Updater writes new image digests to infra Git; chart updates remain separately reviewed. No cluster credentials are needed in this repo.