There are numerous algorithms that be the category of "machine learning", and that is true for your scenario depends on the kind of information you are managing. If your data essentially consists of mappings of a set of questions to a set of diagnoses each of which can be yes/no, then I think methods that could potentially work include neural networks and strategies for automatically building a decision tree supported the test knowledge. I'd have a glance at a number of the quality texts like Russel & Norvig ("Artificial Intelligence: a contemporary Approach") and alternative introductions to AI/machine learning and see if you can simply adapt the algorithms they mention to your specific knowledge. See also O'Reilly, "Programming Collective Intelligence" for some sample Python code of one or two algorithms that might be adaptable to your case. If you can read Spanish, the Mexican publishing house Alfaomega has also published various good AI-related introductions in recent years. This is a classification problem, not really data mining. The general approach is to extract features from every knowledge instance and let the classification algorithmic program learn a model from the options and therefore the outcome (which for you is 0 or 1). Presumably, each of your 30 queries would be its own feature.
There are many classification techniques you can use. Support vector machines are popular as are maximum entropy. I haven't used the Java Machine Learning library, however, at a look, I do not see either of those. The OpenNLP project has a maximum entropy implementation. LibSVM has a support vector machine implementation.