Hi Sean

I have 2 problems here that I need help with:

*Problem 1:*
I added a custom dictionary using the dictionary-gui module that you built.
I downloaded the complete rxnorm files from UMLS website:
RxNorm_full_prescribe_01032017.zip
<https://download.nlm.nih.gov/rxnorm/RxNorm_full_prescribe_01032017.zip>,
You mentioned in the dictionary-gui thread that the module parses
"MRCONSO.RRF" to create the dictionary in .script format. I found a file
"RXNCONSO.RRF" in the zip directory I downloaded, and changed every mention
of "RXNORM" to "RXNORM_16AA_160906F" and appended it to "MRCONSO.RRF"
thinking that the codes will get added to the dictionary, but when I passed
a query to the database using .rc file created:


*SELECT * FROM RXNORM_16AA_160906F WHERE RXNORM_16AA_160906F = 997422; *

it returned 0 matches.

Note that 997422 was present in the modified "MRCONSO.RRF" as:
*997422|ENG||||||1358127|1358127|997422||RXNORM_16AA_160906F|SY|997422|Allegra
180 MG Oral Tablet||N|4096|*

This din't seem to work, so I opened "MrconsoParser.java" in the
dictionary-gui module and I found a line:

*static private final String[] RXNORM_EXCLUSIONS = { "SY" };*

So I removed *"SY"* from the set and made it empty: *RXNORM_EXCLUSIONS = {
}; *thinking maybe the lines having *SY *are being excluded, but even after
this it was no use.

It would be great if you could help me understand what's going on here.


*Problem 2: *
When I query the database with the code: *309035,* it returns a match
where *CUI
= 975312*.
This is the code for *Castor Oil 793MG. *

Since it exists in the dictionary, when I pass *"Castor Oil 793 MG", *I
should ideally get:
Castor Oil 793 MG --> codes:[309035]

Instead, I still get:
Castor --> codes:[2129]
Oil --> codes:[1021284]
793 MG --> codes:[]

Please help me understand how this is actually picking out the covered
text, and if there's a way I can modify the pattern so that it gives me the
required output.

Thanks and Best Regards
Pratik Agarwal

On Tue, Jan 3, 2017 at 7:42 PM, Finan, Sean <
sean.fi...@childrens.harvard.edu> wrote:

> Hi Pratik,
>
> Because combinations of strength, route, form, etc. for medications amount
> to an enormous number of unique terms, the possible combinations are not
> included in the default ctakes dictionary.
>
> You can:
> 1.  Add a custom dictionary with your fully-defined terms of interest, or
> 2.  Create a post-process module that maps [drug, strength, route, form]
> to rxnorm codes based upon coded drug and following text or other codes.
> 3.  Use something like the drug-ner module to identify drug attributes and
> use them instead of fully-specifying drug, strength, route, form codes.
>
> There may be other possibilities, or maybe somebody out there has already
> done this and can be of further assistance.
>
> Sean
>
> -----Original Message-----
> From: pratik agarwal [mailto:pratikagarwal2...@gmail.com]
> Sent: Monday, December 26, 2016 4:57 AM
> To: dev@ctakes.apache.org
> Subject: Getting specific RXNORM and ICD codes instead of class codes
>
> Hi Everyone
>
> I am using cTAKES from the svn repository in IntelliJ IDEA. I wrote a
> small script calling the *getFastPipeline()* function from the
> *ClinicalPipelineFactory* class.
>
> On passing the string:
> *"clonazePAM 0.5 mg oral tablet*
> *clopidogrel 75 mg oral tablet"*
>
> I'm getting the annotated RXNORM tokens as:
>
> *clonazePAM --> codes: [2598]*
> *0.5 mg --> codes: []*
> *0.5 --> codes: []*
> *oral tablet --> codes: [317541]*
>
>
> *clopidogrel  --> codes: [32968]*
> *75mg --> codes:[]*
>
> *oral tablet --->  codes: [317541]*
>
> where actually I need something like:
>
> *clonazePAM 0.5 mg oral tablet --> codes: [197527]* *clopidogrel 75 mg
> oral tablet --> codes:[309362]*
>
> Can you please suggest if there's a way I can get these specific codes
> instead of the class codes?
>
> Thanks and Best Regards.
> Pratik Agarwal
>

Reply via email to