While medical information systems have become common in the United States, commercial systems that automate or assist in the process of medical diagnosis remain uncommon. This is not surprising, since automating diagnosis requires considerable sophistication both in the understanding of medical epidemeology and in knowledge represen- tation techniques. This paper is an interdisciplinary study of how recent results in logic programming and non-monotonic reasoning can aid in psychiatric diagnosis. We argue that to logically represent psychiatric diagnosis as codified in the Diagnostic and Statistical Manual of Men- tal Disorders, 4th edition requires abduction over programs that include both explicit and non-stratified default negation, as well as dynamic rules that express preferences between conclusions. We show how such programs can be translated into abductive frameworks over normal logic programs and implemented using recently introduced logic programming techniques. Finally, we note how such programs are used in a commercial product Diagnostica.