Medico - Design Document

From GaProgMan's Wiki
Jump to: navigation, search

Page under construction

This set of pages represent the full design document for the medico project. For an overview on the medico project, please see it's project page

medico will be an open source Windows Forms application, written in C#, designed to annoy the user until they have taken their medication.

Original author(s) Jamie
Developer(s) Jamie
Development status Planning
Written in C#, .NET
Operating system Windows
Available in English
License GPLv2


medico is dedicated to the memory of Leigh Fisher, who passed away, at the age of 32, shortly before Christmas 2013. He was a close, personal friend of Jamie's.

Problem Domain

Leigh's medication regimen was quite strict during the final year of his life, and he would follow this procedure everyday:

  • Take his first medication shortly after waking
  • Manually create a series of alarms on his mobile devices, one alarm for each the doses of his medication
  • Nap, rest or take it easy until it was time to take his medication (the alarm would wake him)

All of his medication was time based, so he would have to set each of the alarms at the beginning of the day - MANUALLY. What he wanted was an app that would set all of the alarms for him when he took his first dose in the morning. Should his miss or delay a dose, the later alarms would be put on hold until he took his allotted dose, then all alarms based after that one would cascade AUTOMATICALLY.


Biff is on a strictly enforced, timetabled, prescribed medicine regimen.

To help him remember to take his medication, Biff sets a selection of alarms on his smart phone. The problem is that he has to do this manually. Biff has no central control for this, so he has to set an array of alarms each day.

What of Biff forgets to set an alarm?


medico (stylised in all lower-case letters) could help with the problem described in the above example. medico is a smartphone app and (possibly) web service. medico's primary aim is to mark it easier for users to keep track of any medication that they are prescribed.

Almost everyone has a smart phone these days, so why not use that computing power to annoy and remind people to take their medication?

medico allows users to add all of their current medications to it's internal database. medico will then automatically generate all of the necessary alarms and notifications for the user and display them with "yes/no", "taken/delayed" style prompts. Based on the user's answer to these prompts, the alarm or prompt will be silenced.

Project Components

The project will be split into several components, each with their own code name:

* Potter - The messaging system
* Klinger - The Scheduler
* Radar - Alarm Subsystem
* Hawkeye - Notifications System
* BeaJay - User Interface Management
* Winchester - File Parser

For a description of each of the components, see the Components page

Medicine Class Format

All medications entered into medico (and thus stored in the database) are represented by the Medicine Class Format, for more information see the class format pages