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