Turns a messy, multi-format travel itinerary into a clinician-reviewable altitude-illness risk profile — because the risk depends on where a traveler sleeps each night, not the landmark photo on the itinerary.
Altitude illness (acute mountain sickness, and its more severe forms HACE and HAPE) is common and largely preventable — but the risk hinges on a detail commercial itineraries routinely bury: where a traveler actually sleeps each night, and how quickly that sleeping altitude climbs. A day titled "Visit Jade Dragon Snow Mountain" might have the traveler overnighting far lower, in Lijiang — but a real-world itinerary PDF mixes promotional copy, multilingual place names, ambiguous dates, and transit stops in with genuine overnight stays, so pulling out the true ascent profile by hand is feasible but slow.
A pre-travel-medicine study of Thai travelers (Harnnavachok et al., JITMM Proceedings, 2018, n=362) found acute mountain sickness incidence around 20% — the scale of the problem this tool targets.
A traveler uploads an itinerary as a PDF, image, or pasted text. A Vercel serverless API sends it to Google Gemini, using an iterated extraction prompt that performs "clinical semantic narrowing" — deliberately separating each day's sleeping location/altitude from its highest point reached, since those are clinically different numbers with different risk implications.
The output renders as an editable table plus an elevation-profile chart, and a clinician reviews and corrects every row before anything is finalized — the tool is built to assist judgment, not replace it, and never auto-diagnoses. Rule-based flags surface ascent-rate risk directly, for example more than 500 m/day of sleeping-altitude gain, or sleeping above 2,500 m.
The extraction schema and risk flags follow the "climb high, sleep low" principle from established altitude-medicine guidance (Wilderness Medical Society altitude-illness guidelines; CDC Yellow Book altitude chapter): risk rises for unacclimatized travelers sleeping above roughly 2,500 m, and above roughly 3,000 m, sleeping-altitude gains are generally kept under ~500 m/night with a rest day roughly every 3–4 days or 1,000 m gained.
As part of a Chulalongkorn Faculty of Medicine DigiHealth independent-study thesis, the extraction pipeline was benchmarked against 20 researcher-built itineraries across text, PDF, and image formats, comparing roughly 18 candidate models. The selected model performed best on altitude agreement within ±100 m of reference, at a mean latency of 4.8 seconds and roughly $0.0038 per call for text input.
A classical OCR-plus-gazetteer baseline scored far lower, supporting the conclusion that this task needs contextual language-model reasoning rather than lookup alone.