-
Within the GKS repo schema source files there is a This is dealt with in FHIR by placing a D, TU or N at the class level and then any property that is less than the level of the class gets its maturity level specified. The assumption is that any property that does not have a specified maturity level assumes the maturity level of the class. We discussed this when we started down this path thinking we would follow this approach. Now we need to finalize the plan. In addition we are using If we do not apply the Just as we might apply the rule that
We should also have a rule that
|
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 5 replies
-
From Alex Wagner 10:31 AM It depends on what is meant by “abstract class”. Anything with properties–heritable or not–should have maturity associated with those properties, which are used by concrete classes. But, in JSON Schema you can define schemas that are groups of other schemas; a pattern we often use (e.g. Variation is one of Molecular Variation , Systemic Variation). When we discussed these groups previously, we considered that the logic for updating them would effectively create cascading version changes that were not desirable. Do you see a need for us to do this? |
Beta Was this translation helpful? Give feedback.
-
For now I suggest we put the |
Beta Was this translation helpful? Give feedback.
-
My 2 cents, FWIW. The maturity model was intended to communicate information about relative stability of data classes. Abstract classes are not implemented directly so there is a gray area here. This gets fuzzier when the abstract class is used as shorthand for data type polymorphism. If an abstract class serves only an organizational role and does not convey any special semantics (which might be revised and thus change the meaning of its concrete child classes), then it could be viewed as a technical artifact that does not require a maturity level. The implemented data class could be modeled equally as a single class containing all attributes directly, or as a class at the bottom of an arbitrarily deep inheritance hierarchy from which its attributes are derived. From the implementation POV, it is the structure and semantics of the instantiated class that matters, and inheritance only matters if it imposes meaning. IMO, classes like I don't have strong feelings about this, I'm only offering ideas to try to streamline the process. |
Beta Was this translation helpful? Give feedback.
For now I suggest we put the
maturity
flag on ALL classes and defer theproperty
level maturity discussion. If there are any properties that do not get used in atrial use
class we will lower there maturity todraft
when the property-level maturity is implemented in our schema processing workflow.