A computer-implemented method for processing electronic medical records, comprising the steps of: storing, by a storage module, a plurality of objective medical data for a plurality of patients, each patient's objective medical data being structured into multiple elements for use in storing the objective medical data, each patient's objective medical data containing at least parameters of the patient, diseases of the patient, treatments that the patient underwent and outcomes of the treatments; classifying, by a degrouping module (62, 64) communicatively coupled to the storing module, the plurality of objective medical data into subgroups, the classifying step including at least one level of classifications based on each patient's parameters, disease, and treatment that each patient underwent for the disease, and the outcome of the treatment, iteratively repeating the classifying step, once for each subgroup in each level, until homogenous subgroups are found that have similar clinically-relevant parameters and similar outcomes, wherein the classifying step is cascaded and a first subgroup is classified into second smaller and more homogenous subgroups and either of the second smaller and more homogenous subgroups is further classified into third smaller and more homogenous subgroups, respectively; receiving, by an input module, a new patient's disease template with the new patient's objective medical data based on the patient's disease, the new patient's template including at least the clinically-relevant parameters of the new patient, and at least one disease of the new patient; and matching, by a matching module (66, 68) communicatively coupled to the degrouping module (62, 64) and the input module, the new patient's parameters and disease to the corresponding parameters and disease of the homogeneous subgroups to select the most similar subgroups and determine likely outcomes of potential treatments for the new patient based on the outcomes of treatments for the patients in the most similar subgroups. storing, by a storage module, a plurality of objective medical data for a plurality of patients, each patient's objective medical data being structured into multiple elements for use in storing the objective medical data, each patient's objective medical data containing at least parameters of the patient, diseases of the patient, treatments that the patient underwent and outcomes of the treatments; classifying, by a degrouping module (62, 64) communicatively coupled to the storing module, the plurality of objective medical data into subgroups, the classifying step including at least one level of classifications based on each patient's parameters, disease, and treatment that each patient underwent for the disease, and the outcome of the treatment, iteratively repeating the classifying step, once for each subgroup in each level, until homogenous subgroups are found that have similar clinically-relevant parameters and similar outcomes, wherein the classifying step is cascaded and a first subgroup is classified into second smaller and more homogenous subgroups and either of the second smaller and more homogenous subgroups is further classified into third smaller and more homogenous subgroups, respectively; receiving, by an input module, a new patient's disease template with the new patient's objective medical data based on the patient's disease, the new patient's template including at least the clinically-relevant parameters of the new patient, and at least one disease of the new patient; and matching, by a matching module (66, 68) communicatively coupled to the degrouping module (62, 64) and the input module, the new patient's parameters and disease to the corresponding parameters and disease of the homogeneous subgroups to select the most similar subgroups and determine likely outcomes of potential treatments for the new patient based on the outcomes of treatments for the patients in the most similar subgroups.