Commit Graph

6 Commits

Author SHA1 Message Date
James ade93669d3 chore: commit accumulated WIP (Mar 23)
Modified:
- api/api_contact_sheet.go, api/api_image.go — image/contact sheet cleanup
- cmd/import-lab/main.go — minor fix
- docs/schema-auth.sql — auth schema updates
- lib/normalize.go, lib/stubs.go — normalization refactor
- portal/defense.go — new defense middleware
- portal/dossier_sections.go — section updates
- portal/genome.go — genome fix
- portal/main.go — main portal updates
- portal/mcp_http.go, portal/mcp_tools.go — MCP refactor
- portal/static/viewer.js — viewer fix
- marketing/twitter/header-FINAL.png — updated asset

New files:
- portal/oauth_chatgpt.go — ChatGPT OAuth integration
- lib/loinc.go — LOINC code lookup
- lib/render.go — rendering engine
- lib/Sora-Regular.ttf, lib/Sora-SemiBold.ttf — fonts
- docs/chatgpt-actions-setup.md, docs/openapi.yaml — docs
- portal/static/claditor-logo.css — styling
- web/static/genetics.html — genetics page
- tools/loinc-lookup/ — LOINC lookup tool
- marketing/screens/ — screenshots
- import-renpho/import-renpho — renpho binary
2026-03-23 12:11:13 -04:00
James cc1dd7690c Lab reference charts, import tracking, DossierFromEntry consolidation
- Fix lab chart reference bands: parse DOB in DossierFromEntry, generate
  deterministic ref_ids in import-caliper (was collapsing 4363 rows to 1)
- Consolidate DossierFromEntry into lib/dbcore.go (eliminate portal duplicate)
- Add Import field to entries for batch undo (NextImportID, all import paths)
- MyChart direct JSON parsing (skip Gemini for structured lab data)
- Multi-order extraction from markdown/text tables
- Normalize progress callback for UI feedback
- DICOM import, genome import, API, portal, MCP, translation updates
- Remove test DICOM data from repo

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 05:15:03 -05:00
James 75e9ec7722 Refactor: Remove legacy v2, data, roles modules; update auth, queries, translations, portal MCP tools 2026-02-13 15:30:22 -05:00
James 6486a52ad9 refactor: complete RBAC redesign with hierarchical permissions
Simplify access control from 500+ lines to ~50 lines of core logic:
- New permission bitmask (PermRead/Write/Delete/Manage)
- Hierarchical access (dossier → category → entry)
- Single choke points: CheckAccess(), EntryQuery(), DossierQuery()
- All data access now enforced through lib RBAC layer
- Removed complex role templates and permission caching

Also improved NewID() to use UUID v4 + SHA-256 hash for better
randomness distribution (was limited to 0-7 hex start).

Net -210 lines across 28 files. Ready for staging deployment.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-11 00:06:02 -05:00
James c1cd76559d fix: genome query RBAC - use system context for data access
- Updated all genome functions to accept AccessContext parameter
- GenomeGetExtraction, GenomeGetTiers, GenomeGetTierByCategory,
  GenomeGetVariants, GenomeGetVariantsByTier now pass context to EntryList
- API genome handler uses system context after dossier access check
- Categories endpoint uses system context for counting operations
- Fixes MCP query_genome returning 403/no data errors

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-07 16:31:17 -05:00
Johan 94946baf00 Initial commit 2026-02-01 02:43:27 -05:00