Hospital systems · 2026
Internship system
One register for every intern at Kasr Al Ainy, and the engines that run rotations and courses off it.
- Role
- Internship coordinator, who built the systems
- Years
- 2026
- Built with
- Python
- Headless Chrome
- Excel

A course for every month, through January 2028.
The cover of the Training Office's publishing plan, which runs from November 2026 to January 2028.
01
The problem
As internship coordinator I had the same interns listed in many separate files. Each department kept its own version. A rotation list could go out with a gap in cover that nobody had spotted, and when an intern booked a training course and didn't turn up, the place was simply lost.
02
What I built
I started with one central register that holds a single permanent record for each person. Around it I wrote separate systems for the rotations in four departments and for the training office's courses. There are also systems for surveys and biometric attendance, and a read-only web portal that hasn't been deployed yet.
03
How it works
- Nobody is ever deleted from the register. Nobody gets created by accident either, and each field has exactly one owner, the only person allowed to change it.
- Before an import touches the register, it is matched against it and diffed. Then a preflight check runs, and only after that is it applied.
- In Internal Medicine every rotation week becomes a bilingual PDF and a spreadsheet. Three send files go out: one for the interns, and separate ones for the administration and for the departments. A separate report flags any gap in cover.
- Surgery gets ten-day department letters in Arabic, printed on a copy of the official letterhead.
- Training courses run on register, then confirm, then attend. If you book a place and don't come, the system puts you on the blacklist by itself. Every intern has a card listing their courses.
- 01
Match
Each incoming row is matched to a person already on the register.
- 02
Diff
Every field that would change is listed, with the old value beside the new one.
- 03
Preflight
The rules are checked before anything is written. Nobody can be deleted or created by accident.
- 04
Apply
Only then does the import go into the register.
04
What it changed
- 1,901
- Cohort 194 had this many interns, and each of them has exactly one record.
- 4
- Four departments get their rotations from engines I wrote.
- 3
- Every Internal Medicine rotation week goes out as three send files.