A system for optimizing a patient's insulin dosage regimen over time, comprising: at least a first memory for storing data inputs corresponding to one or more components of a patient's present insulin dosage regimen, and data inputs corresponding to at least the patient's blood-glucose-level measurements determined at a plurality of times; wherein the data inputs corresponding at least to the patient's blood-glucose-level measurements determined at a plurality of times are each associated with an identifier indicative of when the measurement was input into the memory, wherein the patient's initial insulin dosage regimen has been entered in the at least first memory; and a processor operatively connected to the first memory, the processor programmed to determine from the data inputs corresponding to the patient's blood-glucose-level measurements determined at a plurality of times whether and by how much to vary at least one of the one or more components in the patient's present insulin dosage regimen in order to maintain the patient's future blood-glucose-level measurements within a predefined range; wherein the one or more components in the patient's present insulin dosage regimen comprise a long-acting insulin dosage component, and wherein the processor is programmed to determine from the identifier indicative of when a measurement was input into the memory at least whether the measurement is a morning or bed-time blood-glucose-level measurement, to determine whether the patient's morning and bed-time blood-glucose-level measurements fall within a predefined range, and to determine by how much to vary the patient's long-acting insulin dosage component only when the patient's morning and bed-time blood-glucose-level measurements are determined to fall outside of the said predefined range. at least a first memory for storing data inputs corresponding to one or more components of a patient's present insulin dosage regimen, and data inputs corresponding to at least the patient's blood-glucose-level measurements determined at a plurality of times; wherein the data inputs corresponding at least to the patient's blood-glucose-level measurements determined at a plurality of times are each associated with an identifier indicative of when the measurement was input into the memory, wherein the patient's initial insulin dosage regimen has been entered in the at least first memory; and a processor operatively connected to the first memory, the processor programmed to determine from the data inputs corresponding to the patient's blood-glucose-level measurements determined at a plurality of times whether and by how much to vary at least one of the one or more components in the patient's present insulin dosage regimen in order to maintain the patient's future blood-glucose-level measurements within a predefined range; wherein the one or more components in the patient's present insulin dosage regimen comprise a long-acting insulin dosage component, and wherein the processor is programmed to determine from the identifier indicative of when a measurement was input into the memory at least whether the measurement is a morning or bed-time blood-glucose-level measurement, to determine whether the patient's morning and bed-time blood-glucose-level measurements fall within a predefined range, and to determine by how much to vary the patient's long-acting insulin dosage component only when the patient's morning and bed-time blood-glucose-level measurements are determined to fall outside of the said predefined range.