Each code represents a diagnosis that is potentially present in more than one disease column. I believe that this table is sensible. The whole point of this exercise is to automate the creation of this table and therefore the fact that it has many columns is not a problem.