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

Jigsaw to pull lab values from custom vocabulary operators #253

Closed
jenniferduryea opened this issue Jul 31, 2019 · 2 comments
Closed

Jigsaw to pull lab values from custom vocabulary operators #253

jenniferduryea opened this issue Jul 31, 2019 · 2 comments

Comments

@jenniferduryea
Copy link

We need output from custom vocabulary operators to bring out lab records. The current use case is CPRD's vocabulary "enttype". Lab values are associated to these enttype codes (via measurement_details_id from the clinical_codes table). This affects a whole slew of tickets: #145 #241 #184 and #185. But, probably the easiest fix is to assign domains to custom vocabularies in GDM (described in outcomesinsights/generalized_data_model#118) and then have lexicon read the assignment and know to pull out lab values (and also drug - since we're at it) for output.

Tagging @aguynamedryan for implementation and @marc-outins for GDM changes(?) This is now a high priority ticket since it directly affects a project we are working on (CPRD). Assigning to chisel 2.

@jenniferduryea jenniferduryea added this to the Chisel 19.05.02 milestone Jul 31, 2019
aguynamedryan added a commit that referenced this issue Aug 3, 2019
In order to implement #253, we needed to turn our current dynamic
vocabularies system on its head.

Originally we had a single class that would impersonate all the
dynamically generated vocabularies.  Now we actually create a proper
class for each dynamically generated library and even create OMOP and
GDM-based variants.

Now that each vocabulary is properly represented as a class, we can
modify individual classes to behave as we'd like, so we should be able
to get dynamically generated operators to include lab values much more
easily now.

As with many large overhauls, I ran into other issues that I addressed
along the way:

- Validations we're working correctly and I've addressed an issue where
    identical warnings could stack up within the same operator
- ICD10 is now properly a multi-vocabulary operator
- Removed all hard-coded vocabulary-related operators except for Read
- Put existing behaviors under ConceptQL::Behaviors
- Reworked how requiring operators works
aguynamedryan added a commit that referenced this issue Aug 3, 2019
In order to implement #253, we needed to turn our current dynamic
vocabularies system on its head.

Originally we had a single class that would impersonate all the
dynamically generated vocabularies.  Now we actually create a proper
class for each dynamically generated library and even create OMOP and
GDM-based variants.

Now that each vocabulary is properly represented as a class, we can
modify individual classes to behave as we'd like, so we should be able
to get dynamically generated operators to include lab values much more
easily now.

As with many large overhauls, I ran into other issues that I addressed
along the way:

- Validations we're working correctly and I've addressed an issue where
    identical warnings could stack up within the same operator
- ICD10 is now properly a multi-vocabulary operator
- Removed all hard-coded vocabulary-related operators except for Read
- Put existing behaviors under ConceptQL::Behaviors
- Reworked how requiring operators works
aguynamedryan added a commit that referenced this issue Aug 3, 2019
In order to implement #253, we needed to turn our current dynamic
vocabularies system on its head.

Originally we had a single class that would impersonate all the
dynamically generated vocabularies.  Now we actually create a proper
class for each dynamically generated library and even create OMOP and
GDM-based variants.

Now that each vocabulary is properly represented as a class, we can
modify individual classes to behave as we'd like, so we should be able
to get dynamically generated operators to include lab values much more
easily now.

As with many large overhauls, I ran into other issues that I addressed
along the way:

- Validations we're working correctly and I've addressed an issue where
    identical warnings could stack up within the same operator
- ICD10 is now properly a multi-vocabulary operator
- Removed all hard-coded vocabulary-related operators except for Read
- Put existing behaviors under ConceptQL::Behaviors
- Reworked how requiring operators works
@aguynamedryan
Copy link
Contributor

This should be ready to go. Thanks, @marc-outins, for updating the vocabularies file in gdm_vocabularies!

@jenniferduryea
Copy link
Author

confirmed this works. Please note that the values are determined by the operator you choose in the algo. So if GDM has cpt code that has a measurement_detail_id and you use the CPT operator to query the code, the measurement_details will not be output in jigsaw because CPT operator is not defined as a "lab" operator. But, if you use the LOINC operator, the measurement_details will be output because the LOINC operator is defined as a "lab" operator. Tested on gdm_250_extended_20190708 and pending test for framework. Also adding note for documentation in the diagram editor manual. Closed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants