Please see this post too
Handling in the vocabulary is probably the best option, especially because we can manage relationship and ancestry. One concern, is that we already have many concept options for conition_type_concept_id. http://athena.ohdsi.org/search-terms/terms?standardConcept=Standard&domain=Type+Concept&vocabulary=Condition+Type&page=1&pageSize=15&query=
Many of these are probably not commonly used. I think we could probably remove the numeric position information - or handle them in vocabulary hierarchy. In general, I think the numeric position of the secondary diagnosis does not have inherent value. So, we probably don't need all that concepts for conition_type_concept_id.
I would take out any visit information, e.g. Inpatient vs outpatient vs other, because they are attributes of Visit captured using visit_concept_id of visit_occurrence table. Visit_occurrence and condition table may then be linked.