Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TIMS/N3C: [OMOP <--> ICD10CM, etc] --> SSSOM --> FHIR ConceptMap #140

Open
4 of 6 tasks
joeflack4 opened this issue Sep 28, 2022 · 16 comments
Open
4 of 6 tasks

TIMS/N3C: [OMOP <--> ICD10CM, etc] --> SSSOM --> FHIR ConceptMap #140

joeflack4 opened this issue Sep 28, 2022 · 16 comments
Assignees
Milestone

Comments

@joeflack4
Copy link
Member

joeflack4 commented Sep 28, 2022

Overview

Stephanie is doing some mapping work, I think for N3C (I'm not sure the exact nature of it). There is a desire create SSSOM for these mappings. After creating the SSSOM files, we'll convert to FHIR ConceptMap and load onto the TIMS server.

Tasks

  • 1. Complete the map
  • 2. Convert to FHIR and upload to TIMS server

Questions

  • 1. mapping_justification: What is the valid range? Is there an enumeration of permissible values somewhere?
  • 2. mapping_justification: We know that OMOP has mapped to various terminologies using automation. However, we don't know how it was done. Does semapv:lexicalMatch have an abstract parent class semapv:match that we could use? Or is there something in semapv (or elsewhere) for 'unspecified algorithm'?
  • 3. Other mapping details: Similar to mapping_justification, if we don't know the details for "use mapping_tool, mapping_tool_version, confidence , match_string, subject_preprocessing, object_preprocessing,", should we leave these fields out? Or should we include them and leave them blank or populate them with some 'unknown' value or null value?
  • 4. What CURIE to use for OMOP?

Additional information

Slack Conversation

looked at the docs, but I’m not 100% sure what fields she would have to fill out, and their range / valid values

Joe Flack
22 hours ago
I believe she needs mapping_justification, which has range of EntityReference, but it hasn’t been properly defined yet. just says str.

Joe Flack
22 hours ago
I see an example here:
name: mapping_justification
description: A mapping justification is an action (or the written representation
of that action) of showing a mapping to be right or reasonable.
examples:
- value: semapv:LexicalMatching
- value: semapv:ManualMappingCuration

Joe Flack
22 hours ago
So I think for (1) curation, she needs to set mapping_justification column to semapv:ManualMappingCuration for the given rows

Joe Flack
22 hours ago
for (2) generated, you could set mapping_justification to semapv:LexicalMatching (word similarity), if that’s how you are doing the matches. but i don’t know the nature of your generated/automated mappings.

Joe Flack
22 hours ago
In addition, for (1) curation, I’m not sure what other fields she would want to fill out, but I’m guessing they would be: author_id, author_label, reviewer_id, reviewer_label, creator_id, creator_label (although those can also apply to (2) generated as well. (edited)

Joe Flack
22 hours ago
For (2) generated, I think she could use mapping_tool, mapping_tool_version, confidence , match_string, subject_preprocessing, object_preprocessing,

Joe Flack
22 hours ago
as well as semantic_similarity_scoreand semantic_similarity_measure if using a semantic matching algorithm rather than lexical

Joe Flack
22 hours ago
@Stephanie Hong
Those are my thoughts so far. we can meet tomorrow to go over if you want. Though would be nice to know if
@Nico Matentzoglu
is aware of anything I missed

Nico Matentzoglu
7 hours ago
You figured it out quite well. There have been some attempts to connect mapping_justifications to their respective slots a bit more tightly, but nothing definite yet. Just note that in an SSSOM table, you need 1 row per mapping_justification. This means that if you have a manually curated and automatically mapped mapping (two justifications for one mapping), you use two rows.

Related

timsbiomed/issues#59
#145

@joeflack4
Copy link
Member Author

@Sigfried This isn't related to TermHub but Stephanie doesn't have any code for this yet, and it uses enclave_wrangelr, so just making an issue here.

@stephanieshong FYI, I created this issue for Nico to respond to.

@matentzn Here you are!

@matentzn
Copy link

matentzn commented Sep 29, 2022

  1. mapping_justification currently allowes these values, but it is extensible and can take any input. (Make pr here).
  2. You shouldn't, but you can use semapv:UnspecifiedMatching (highly discouraged) or make a comment on Add new term MappingDerivation mapping-commons/semantic-mapping-vocabulary#1
  3. All of these are optional and should be left blank if unknown.

@stephanieshong
Copy link
Collaborator

stephanieshong commented Sep 29, 2022

@matentzn - ok. Thank you. I will give you some example of one to many map that you can comment on.
@joeflack4 - there should a input parameter of value sets that specifies what to map which list source code and code system. Where should I grab the input from?
input - list of source code /code system pair to map
input - target code system for the output
output- map in SSSOM format.

@joeflack4
Copy link
Member Author

@matentzn Awesome answers, thanks. I spoke with @stephanieshong and got her what she needs. She was asking about how to construct the curie_map for the most part.

  1. Nice. I'll file those mapping_justification values somewhere in my notes. Eventually we'll need to update the documentation w/ these.
  2. I think we're going to have to use sempav:UnspecifiedMatching. I do have some thoughts about it, which I will share in that other issue.
  3. Got it!

@joeflack4
Copy link
Member Author

@matentzn I added a new question (4): What CURIE to use for OMOP?

For now I randomly picked https://www.ohdsi.org/data-standardization/the-common-data-model/ , but I know that this is wrong. I don't know if there is any URL pattern for pulling up pages that show information about OMOP codes.

@matentzn
Copy link

What CURIE to use for OMOP?

In all my projects we use OMOP: https://athena.ohdsi.org/search-terms/terms/

All codes resolve there.

@stephanieshong
Copy link
Collaborator

stephanieshong commented Sep 30, 2022

Thank you.

@stephanieshong
Copy link
Collaborator

stephanieshong commented Sep 30, 2022

@matentzn - thank you I will use athena link to resolve in the curie map. I am just making a note for myself here:

  - equals_string: semapv:LexicalMatching
  - equals_string: semapv:LogicalReasoning
  - equals_string: semapv:CompositeMatching
  - equals_string: semapv:UnspecifiedMatching
  - equals_string: semapv:SemanticSimilarityThresholdMatching
  - equals_string: semapv:LexicalSimilarityThresholdMatching
  - equals_string: semapv:MappingChaining
  - equals_string: semapv:MappingReview
  - equals_string: semapv:ManualMappingCuration

@joeflack4 joeflack4 changed the title [OMOP <--> ICD10CM, etc] --> SSSOM --> FHIR ConceptMap TIMS/N3C: [OMOP <--> ICD10CM, etc] --> SSSOM --> FHIR ConceptMap Oct 4, 2022
@joeflack4
Copy link
Member Author

@Sigfried Just FYI TIMS woulda been the better place to put this issue, but w/ the discussion here so far, too late to move it. I'll make a mirror issue and link it.

@stephanieshong
Copy link
Collaborator

@joeflack4 - did you remove the sssom_map branch?

@Sigfried
Copy link
Collaborator

Sigfried commented Oct 7, 2022

@joeflack4 Stephanie is asking me where the sssom_mapping branch and files went. I didn't know. I had her add them to the develop branch: 077da0c

@stephanieshong
Copy link
Collaborator

@joeflack4 - checked in my sample files under the sample_mapping_files directory

@joeflack4
Copy link
Member Author

Hey @stephanieshong, I know we talked about this on Teams. Yeah, I'm not sure; I don't remember us creating that branch.

I think @Sigfried and I have not yet decided where mapping content should go. Maybe we need a new git submodule? Or we could move them into termhub-csets, if we want to use that submodule for mapping content as well.

For now I agree they are fine there. Could always just add these to a standalone repo as well.

@stephanieshong
Copy link
Collaborator

Yes, I created the branch from my machine. But I think I created from the sub-directory and then later removed the .git so i think it got lost.
all I need to check-in was the sample SSSOM mapping file for Nico to review.

@stephanieshong
Copy link
Collaborator

stephanieshong commented Oct 10, 2022

@joeflack4 - I will create a branch from the main and use that branch for the SSSOM mapping files.
This has nothing to do with TermHub for now. Unless you want to use it to map the terminologies from the TermHub which is related. (ICD10CM to SNOMED CT)

@stephanieshong
Copy link
Collaborator

A ---[narrowMatch]-->B means that B is narrower than A.
So for most part we would be using [boardMatch]

@Sigfried Sigfried added this to TermHub Aug 23, 2023
@github-project-automation github-project-automation bot moved this to Todo in TermHub Aug 23, 2023
@joeflack4 joeflack4 added this to the 9. Unplanned milestone May 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: 3. Backlog
Development

No branches or pull requests

4 participants