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 >