1. A method for generating a medical history for a patient, comprising: obtaining from a user at least a portion of the names of each of the medications the patient is taking; obtaining demographic data for the patient and historical data for other users of the method; creating a list of probable medications using a computer processor, including determining which known medications are the probable medications that are more likely taken by the patient based on the at least a portion of the medication name received from the user, based on the patient's demographic data and the historical data, and based on a first knowledge base of medications, causing the list of probable medications to be displayed to the user; and receiving a selection from the user of one of the probable medications on the list of probable medications; for each one of the selected probable medications: (i) creating a list of probable medical indications associated with the respective medication using a computer processor, wherein the probable medical indications are diseases or symptoms, including determining which known medical indications are probable medical indications for which the patient most likely takes the identified medication based on the patient's demographic data and the historical data, and based on a second knowledge base of known medical indications for the respective medication; (ii) causing the list of medical indications to be displayed to the user; and (iii) receiving a selection from the user of one or more of the probable medical indications on the list; and generating a medical history for the patient based on the user selected probable medical indications and respective medications.