include-dcc / include-linkml

LinkML Schema for INCLUDE DCC
https://include-dcc.github.io/include-linkml/
MIT License
3 stars 4 forks source link

define `hasParticipant`, `hasBiospecimen`, `hasStudy`, `hasDatafile` in model (post March) #116

Open lopierra opened 1 year ago

lopierra commented 1 year ago

Currently the specific mappings for hasParticipant, hasBiospecimen, hasStudy, and hasDatafile are only found in schematic_json_transformer.py and not in the model itself, but this is confusing to external users (e.g. Eric from FHIR team)

How these are defined in YAML, e.g.:

hasStudy: definition_uri: include:hasStudy description: Link to a Study title: Has Study range: Study

How they are defined in transformer:

"hasParticipant": "participantExternalId", "hasBiospecimen": "sampleExternalId", "hasStudy": "studyCode", "hasDatafile": "fileExternalId"

lopierra commented 1 year ago

this might change in future if transformer/schematic changes, so might not be relevant

putmantime commented 1 year ago

This is indeed a symptom of LinkML and schematic being out of sync. Those properties are in the model, but we define the mapping between them in the transformer because if schematic gets an object in the range (e.g. Participant hasStudy Study) then it puts all the Study attributes in the manifest for Participant even though the only desired one is StudyCode.

Schematic is working on a fix for this so it is only temporary. I Think we should keep this ticket alive until that happens so we can be reminded to remove it when the fix is implemented in schematic.

lopierra commented 1 year ago

Thanks!

We also need to include the Global IDs for participants, samples, etc. now since the FHIR team is using those. Maybe we could consider renaming to hasStudyCode, hasParticipantGlobalId, hasParticipantExternalId, etc. when we revisit.