Software

MYCIS: A Clinical Information System Built Exclusively for Taiwan’s National Health Insurance (NHI)

Taiwan’s NHI has officially adopted IC cards in 2004, and this was seen as an important milestone towards healthcare digitalization. However, most of the commercial NHI clinic information systems in the market responded with minimal modifications of their dBase applications; as a result, the data accuracy, performance, and cost-effectiveness are much less than ideal. In view of this, I am determined to develop a reliable, modern and highly automated system. The first version of MYCIS was coded in VB6 and launched in 2005, and it was rewritten in Python in 2011. Based on the positive feedbacks it was refactored and extended in 2016 and open-sourced in 2021.

Ānanda: A Collection of Computer-Assisted Learning / Memorizing Subroutines

As the authors stated in their PNAS paper,

Spaced repetition is a technique for efficient memorization which uses repeated review of content following a schedule determined by a spaced repetition algorithm to improve long-term retention. However, current spaced repetition algorithms are simple rule-based heuristics with a few hard-coded parameters. …

Back in 2005 I was learning German but struggled to master the language. Through trial and error I discovered that the flashcard technique powered with spaced-repetition is so effective that I started to write my own flashcard program in VB6. Traditionally the flashcard technique was used exclusively for language acquisition, but left me thinking whether the technique could still be effective in learning / memorizing higher mathematics. One of the greatest obstacles was to properly display mathematics; I found jsMath and it did the job. This was long before the advent of Anki, the most feature-complete flashcard software, and the rest is history.

At the heart of this suite is the integrated pdf & djvu reader and theorem ‘harvester’ (see figure above); manual flashcard composing and editing can be kept to a minimum and this will greatly facilitate incremental reading. Surely, one can then edit the flashcard (see figure below) and add supplementary notes with built-in LaTeX support (via MathJax).