Cluster analysis will require thousands of not tens of thousands of cases to study. And since we don't know even how many diseases there are, this will have to be an unsupervised CA, so for each case you'll be looking tens if not hundreds of parameters.
Machine Learning techniques are well suited to crunching this type of data, but don't underestimate the difficulty in collecting so much data.
You don't need thousands of cases, but you probably do need on the order of around a thousand samples. A hundred individuals with ten samples each over time isn't that challenging. I've done it successfully with mouse work at that scale.
I've found that in biological systems, individual variation can be as large as population variation, particularly for something "reactive" like the immune system, which is tied into stress response.
I choose clustering and dimensionality reduction hyperparameters to penalize clusterings with few repeated individuals (high entropy), while trying to maximize the entropy of the distribution of cluster labels.
To prevent cluster count explosion, you can put a regularization term/prior on the total number of clusters. An exponential or gamma with the expectation set to the square root of the number of distinct individuals is a good starting point.
Of course a big part of any analysis is responding to the data, no single approach will work every time.
Machine Learning techniques are well suited to crunching this type of data, but don't underestimate the difficulty in collecting so much data.