It's a mistake to abstract Coding Systems from Data Models
How models are "supposed to work"
In theory, clinical modellers erect an abstraction barrier to keep the details of coding systems out of their data models. According to this theory:
"Data Models" describe classes or types of data, along with the properties that class members can/should/must assign. For instance, let's take a model for "Prescription" specifying that each Prescription has a required start date, optional end date, and a required "drug" field.
"Coding Systems" are separately-maintained sets of values that a data model can "bind" to a given property. These are often large, multi-purpose systems maintained by teams of analysts working for a major healthcare organization, government, or SDO. For instance: