This paper proposes a new constrained-syntax genetic programming (GP) algorithm for discovering classification rules in medical data sets. The proposed GP contains several syntactic constraints to be enforced by the system using a disjunctive normal form representation, so that individuals represent valid rule sets that are easy to interpret. The GP is compared with C4.5, a very well-known decision-tree-building algorithm, and with another GP that uses boolean inputs (BGP), in five medical data sets: Chest pain, Ljubljana breast cancer, Dermatology, Wisconsin breast cancer, and Pediatric Adrenocortical Tumor. For this last data set a new preprocessing step was devised for survival prediction. Computational experiments show that, overall, the GP algorithm obtained good results with respect to predictive accuracy and rule comprehensibility, by comparison with C4.5 and BGP.