Hi Sean,
I’ve got one additional question, sorry if it’s a naive one. If I send cTAKES 
an XMI file as input, is the file name stored anywhere in the jCas object that 
is created?

The problem I’m running into is I’m trying to retrieve the file name via

File noteFile = new File(ViewUriUtil.getURI(jCas).toString());

But this throws

org.apache.uima.cas.CASRuntimeException: No sofaFS with name UriView found

Thanks again,
John

From: Finan, Sean <sean.fi...@childrens.harvard.edu.INVALID>
Date: Thursday, February 2, 2023 at 1:53 PM
To: dev@ctakes.apache.org <dev@ctakes.apache.org>
Subject: Re: CUI Question [EXTERNAL]
Hi John,

Each annotation gets a unique concept for every combination of possible codes, 
semantic types, etc.
You have pasted a good example of when that happens:  (abbreviated)

< code="7092007" tui="T109"/>
<code="7092007" tui="T121"/>
<code="372826007"  tui="T109"/>
<code="372826007"  tui="T121"/>

This is definitely a little confusing when the CUI for all 4 'unique' concepts 
is the same, in your case cui="C0025859".

If you are interested in gathering annotations, cuis, codes, concepts, semantic 
types etc. you should consider using the OntologyConceptUtil in ctakes-core.
https://ctakes.apache.org/apidocs/4.0.0/org/apache/ctakes/core/util/OntologyConceptUtil.html

As far as I can tell, methods with application to your question would be:

getAnnotationsByCui( jCas, "C0025859" )
  --> which would return 3 annotations given your example.

getCuiCounts(  jCas )
  --> which would return a Map<String,Long> where  the cui is the key (String) 
and the # of annotations with that cui is the value (Long).  In your case this 
should be "C0025859", 3.

There are around 35 methods, so hopefully you can find some that fit your needs.

In case you really need something special, parsing the xmi files is probably 
not the best way to get information.


Sean


________________________________
From: JOHN R CASKEY <jrcas...@medicine.wisc.edu.INVALID>
Sent: Thursday, February 2, 2023 1:58 PM
To: dev@ctakes.apache.org <dev@ctakes.apache.org>
Subject: CUI Question [EXTERNAL]

* External Email - Caution *


Hello,
I’ve run into a problem and a question when running cTAKES. If I have a 
document and process it through cTAKES, then the XMI output will contain 
numerous XML tags. The tags our lab is interested in are the CUIs, for example, 
the XMI tag

<refsem:UmlsConcept xmi:id="16626" codingScheme="SNOMEDCT_US" code="7092007" 
score="0.0" disambiguated="false" cui="C0025859" tui="T109" 
preferredText="Metoprolol-containing product"/>

Would indicate the CUI C0025859 for Metoprolol-containing product is found in a 
given document.

If I look at the input document text, then I can locate three instances of the 
drug Metoprolol in the document text. When I look at the cTAKES XMI output in 
the cTAKES XMI CVD viewer, each of the results for Metoprolol is part of 
ontologyConceptArr, with 4 members each, looking like this:

// found at org.apache.ctakes.typesystem.type.textsem.EventMention
//       org.apache.ctakes.typesystem.type.textsem.MedicationMention
//           ontologyConceptArr = uima.cas.FSArray[4]

<refsem:UmlsConcept xmi:id="16626" codingScheme="SNOMEDCT_US" code="7092007" 
score="0.0" disambiguated="false" cui="C0025859" tui="T109" 
preferredText="Metoprolol-containing product"/>
<refsem:UmlsConcept xmi:id="16646" codingScheme="SNOMEDCT_US" code="7092007" 
score="0.0" disambiguated="false" cui="C0025859" tui="T121" 
preferredText="Metoprolol-containing product"/>
<refsem:UmlsConcept xmi:id="16616" codingScheme="SNOMEDCT_US" code="372826007" 
score="0.0" disambiguated="false" cui="C0025859" tui="T109" 
preferredText="Metoprolol-containing product"/>
<refsem:UmlsConcept xmi:id="16636" codingScheme="SNOMEDCT_US" code="372826007" 
score="0.0" disambiguated="false" cui="C0025859" tui="T121" 
preferredText="Metoprolol-containing product"/>

Although not shown here, it is possible for there to be different CUIs within a 
single uima.cas.FSArray, with this array mapping to a single string of text in 
the document.

If I walk the XMI file and retrieve all CUIs, then the result will be the CUI 
C0025859 being found 12 times, however, if I extend the JCasAnnotator_ImplBase 
java class to extract the CUIs from the jCas annotations, then it only finds 
this CUI 3 times.

If part of the output needs to include a count of all CUIs found by cTAKES 
within a given document, which method is correct?

Thanks!


John Caskey, PhD
Senior Data Scientist
Department of Medicine
University of Wisconsin-Madison

Reply via email to