I'm using the FastPipeline, and cTakes 4.0(dev version) to process a note that contains sentences about falling. After the note is run through the pipeline, I pick out only the IdentifiedAnnotations in the note, the sentence that contain them, and the CUIS of the IdentifiedAnnotation. Here are the results:
cTakes did not identify any words in any of these sentences: "The patient fell." "The patient fell again after using the restroom." "The patient has not fallen since the afternoon." cTakes identified the keyword "fall" in all of these, including it's CUI. "The patient had a fall in the morning during a shift change." "The patient had a fall." "The patient had no fall." The patient did not have a fall" cTakes picked up on these, but only because it matched "did". "The patient didn't fall." "The patient did not fall." The first problem is, I need cTakes to identify "fell" and all other versions of "fall", and give me it's CUI(which according to MetaMaps is: C0085639). The other problem is that cTakes seems to need "have a" or "had a" in front of "fall" in order to pick it up. Here is the code I'm using to process notes: JCas jcas = JCasFactory.createJCas(); jcas.setDocumentText(note); AggregateBuilder builder = new AggregateBuilder(); builder.add(ClinicalPipelineFactory.getFastPipeline()); SimplePipeline.runPipeline(jcas, builder.createAggregateDescription()); for (IdentifiedAnnotation entity : JCasUtil.select(jcas, IdentifiedAnnotation.class)) { ... } If there is a better way of processing notes and getting CUIs, please let me know Thank You, Justin