Chia-Yu Chiang
I take medical software all the way to deployment: each piece is live and anyone can open it. My capstone is a two-sided health information platform. The consumer side, ClinCalc, interprets 35 lab indicators in the browser, and the AI analysis receives the verdicts, not the lab values (report photo scanning is the exception). The clinic side, ExClinCalc, is designed for primary-care clinics and covers registration, triage, the physician's SOAP workflow and pharmacy dispensing, with access control written into the database as 42 PostgreSQL policies.
I have since applied the same approach outside healthcare: personal finance, Taiwan stock data, speech synthesis, a learning platform and commerce compliance.
All 8 works can be opened or downloaded publicly. Some main repositories are private; what is public is the release.
An eGFR below 60 for more than three months meets one of the diagnostic criteria for chronic kidney disease.
Work
8 projectsTitles open the full write-up; ↗ opens the work itself.
- 2025–2026 Consumer Health
ClinCalc
Consumer health self-check & multimodal interpretation platform
Helps everyday users understand lab reports with trustworthy, explainable interpretation.
Next.js · TypeScript · Supabase · CF Workers
Lab values are interpreted in the browser. A language model is involved only when the user asks, and for lab data it gets conclusions such as “high” or “low”, never the values.
- 2025–2026 Clinical
ExClinCalc
Clinical Decision Support System (CDSS) for primary clinics
Full workflow loop: registration → SOAP charting → prescription check → pharmacist dispensing.
PostgreSQL RLS · Supabase · CF Workers · TOTP
Of the 42 database policies, 6 enforce two-factor authentication and 8 keep demo accounts inside demo data; 109 integration tests, run on every push, simulate what each role must and must not be allowed to do.
- 2026 Interop Research
clinconvert
FHIR R4 interoperability research POC
Research proof-of-concept: structuring Excel medical records into HL7 FHIR R4 Bundles.
Astro · TypeScript · Web Crypto · FHIR R4 · HL7
- 2024–2026 Cross-domain
Kaizei
Personal Finance OS (desktop app)
The same engineering approach, carried across domains — medical-grade security thinking applied to personal finance.
Electron · React · TypeScript strict · CF Workers
The master key is generated on the device and never uploaded. The server cannot recover the plaintext cryptographically.
- 2026 Research Work
Zhiyin
A model-agnostic Chinese TTS engine
Make swapping models cheap first — then run a reproducible four-engine evaluation with objective metrics.
Python · IndexTTS-2 · GPT-SoVITS · faster-whisper · PyTorch
The technical report records two negative results and lists the small speaker and listener samples as a threat to validity.
- 2026 Learning Platform
Lumi
Open-source personal learning platform (self-hosted · offline-capable)
A personalised review system starting from TOEIC — content is generated at build time, so no LLM is called at runtime.
SvelteKit · TypeScript strict · Turso (libSQL) · Drizzle · CF Pages
Questions whose answers overlap too much with the passage are rejected: they test word-matching, not reading.
- 2026 Financial Data System
TRADESIGHT
Taiwan equity analysis tool (desktop shipped)
Institutional and branch-level flows, screening, health checks and backtesting — read-only, and structurally incapable of trading.
Python · FastAPI · Tauri v2 · pytest · 政府開放資料
It connects to a broker API but has no ordering feature. A test scans the whole codebase and fails the build if order-related code appears.
- 2026 Commerce & Compliance
Maplebox
Bilingual imported-food storefront (demo)
Taiwan's tax and food-labelling rules encoded as build-time checks rather than things people must remember. Runs on seed data; checkout is not wired to a gateway.
TypeScript · Next.js · Hono · Turborepo · CF Workers
Approach
The stacks differ from project to project; the way decisions are made does not.
- Privacy first
- Interpretation runs on the device first; the AI analysis gets the verdicts, not the lab values; report photo scanning sends the photo to the model.
- Rules first
- Interpretation and calculation are done by deterministic rules. The language model only turns the result into readable text; it makes no decisions.
- Security in the database
- Even if the application has a bug, the database still blocks unauthorized access. 42 RLS policies are the last line of defence.
- I can say every attack I thought of is blocked. I cannot yet prove there is none I missed. That is why I want graduate training.
Writing
in ChineseProblems I ran into while building these systems, written down.
-
CI/CD 白話拆解:一次 git push 之後,機器幫我做了什麼
我網站的每次更新都是 git push 完就自動上線。這篇把背後的 CI/CD 流程一行一行拆給非本科看,並示範怎麼自己從零設一個。
-
被問到「你的系統架構長怎樣」,我會怎麼講
把一套醫療系統的架構,從瀏覽器到資料庫分四層講清楚。每一層解決一個問題、每個選擇都有理由 —— 一篇讓我自己也能照著複述的架構說明。
-
我的醫療 App 用 Next.js,但這個作品集網站故意用 Astro + 純 CSS
會 React 不代表每個東西都該用 React。這篇講我為什麼給互動式醫療 App 選 Next.js,卻給這個作品集網站選 Astro + 純 CSS —— 一個關於「不過度工程」的選擇。
-
看懂體檢報告上的腎功能:白話解釋 eGFR 這個數字
體檢報告上的 eGFR 是什麼?用「腎臟是一台濾水器」的比喻,說明這個數字代表什麼、怎麼看、以及為什麼不能只憑一次數字就嚇自己。
-
兩家醫院的病歷為什麼互通這麼難?HL7 FHIR 白話,以及我做的一個轉換 POC
換一家醫院就要重做一次檢查,常常是因為病歷資料互通不了。這篇白話講醫療互通難在哪、HL7 FHIR 在解什麼,以及我的 clinconvert 研究型 POC 在試什麼。

