clingen-data-model / clingen-interpretation

Allele (variant) interpretation model and API for ClinGen
3 stars 1 forks source link

Associating Value Sets with Domain Entities #152

Closed cbizon closed 6 years ago

cbizon commented 6 years ago

@larrybabb : I think we need a sheet that associates, in a many-to-many fashion, Domain Entities with Value Sets.

Right now, the name of the value set "just happens" to be the name of the Domain Entity with which it is associated, but that's both error-prone and inflexible.

I'm not 100% sure of my understanding of ValueSets, so let me know if I am off my rocker.

larrybabb commented 6 years ago

you are off your rocker, but you are also correct.

I'm okay with adding a sheet to help with the association of value sets to attributes, but @bpow may want to weigh in on how he would like this to go. He was a proponent of making the datatype of the attributes that are linked to the ValueSets equal to the ValueSet name (or maybe I overread his thoughts).

@bpow can you weigh in on how we should type the attributes that link to ValueSets. Should the ValueSet name be different from the datatype on the attribute that links to that ValueSet.
For example,

MolecularConsequence
- contextualAllele  [ContextualAllele]
- consequence [MolecularConsequenceType]

The MolecularConsequence.consequence used to be a generic Coding data type, but we decided each set of Codings in a ValueSet should all be of a single type specific to that ValueSet (I think).

I went took this to mean that the ValueSet should be named to represent this subclass of Codings. In doing so, I corrupted the separation of the ValueSet (list of concepts of one type) with the actual coding concepts themselves.

Currently, MolecularConsequenceType is linked to both the ValueSet containing the individual set of concepts that comprise all molecular consequences as well as the individual occurrences of a consequence code in a higher-order MolecularConsequence class (i.e. for a given ContextualAllele).

Please advise (if this isn't too confusing).