00 / About
Hi, I'm Chris
Web division lead at Cistec AG, based in Zürich.
Most of my work sits between a health data standard and the people who have to implement it: SDKs, desktop tools and reference systems that make openEHR approachable instead of intimidating. The projects here are built in the open, and usually written about afterwards.
When I'm not doing that, I'm on the mats — which is how one of the projects below came to exist.
01 / Open source
oehrpy
openEHR, the Pythonic way
A Python SDK for openEHR. Type-safe Reference Model classes, template builders, an async EHRBase client and a fluent AQL query builder — so nobody has to hand-assemble deeply nested composition JSON ever again.
- 134 Pydantic models covering openEHR RM 1.1.0
- OPT parser and code generator
- FLAT format support for EHRBase 2.26+
- AQL query builder with a fluent API
Python 3.10+ · Pydantic v2 · async/await
02 / Open source
openEHR Explorer
Browse, query and inspect any openEHR CDR — no curl required.
A cross-platform desktop client for openEHR Clinical Data Repositories. Connect to any CDR, walk through EHRs and compositions, run AQL against them, and watch every HTTP request the app makes while you do it.
- Template-aware composition viewer: pretty, raw JSON and FLAT
- AQL runner with three-layer autocomplete and CSV export
- Web Template browser with OPT XML inspection
- macOS, Windows and Linux — Homebrew and Scoop included
Tauri · Rust · Vue 3 · TypeScript · Apache-2.0
03 / Open source
Open CIS
A minimal clinical information system on openEHR.
A small but complete CIS built on openEHR and EHRBase, developed in the open as a learning platform — and documented step by step in an article series as it grows.
- Patient management UI
- FastAPI + Pydantic REST API, Swagger and ReDoc
- EHRBase as the clinical data repository
- Docker Compose setup with a live staging environment
Vue 3 · FastAPI · EHRBase · PostgreSQL · Docker
04 / Product
BJJ Video Analyzer
Analyze techniques, explore positions, improve your game.
AI-assisted video analysis for Brazilian Jiu-Jitsu. Upload a roll and get transcription, frame analysis and pose detection, backed by a searchable library of positions, phases and mechanics.
- Pose detection and technique identification
- Technique library with Japanese terminology and pronunciation
- Share videos and analyse them with training partners
- MCP integration for Claude, Cursor and VS Code
Free trial · no signup required
05 / Side quest
Pacman Canvas
An old classic, re-written in HTML5.
The reason this site has been pixel green since 2012. A full Pac-Man in HTML5 canvas — ghost AI with scatter and chase modes, ten levels, highscores, swipe controls — and still the most-forked thing I have ever written.
- Ghost AI with scatter/chase modes and pathfinding
- Ten levels, power-ups and beast mode
- Keyboard, touch and swipe controls
- 351 stars and 553 forks on GitHub
JavaScript · HTML5 Canvas · Node/Express · SQLite
06 / Writing
Writing
Notes from building things.
I write up what I learn while building — openEHR and clinical data modelling, GraphQL federation, and the gap between a specification and a working system.
Building Open CIS
Six parts on building a minimal clinical information system on openEHR: the clinical modelling stack, template formats, architecture decisions and the SDK landscape.
Path to GraphQL Supergraph
Three parts so far on the road to a federated supergraph: the current state, usage reporting with GraphQL Hive, and moving from Hive to WunderGraph Cosmo.
All articles
Everything else on Medium — @platzh1rsch.
07 / Contact
Get in touch
Happy to talk openEHR, tooling or jiu-jitsu.
