Hi Alaa, Have a look at the OntologyConceptUtil class in ctakes-core. You can use the getCodes(..) method to obtain the codes for a scheme.
For all codes of all annotations: Collection<String> allCodes = OntologyConceptUtil.getCodes( jcas, schemeName ); For all codes of all annotations in a window (paragraph, segment, sentence): Collection<String> windowCodes = OntologyConceptUtil.getCodes( jcas, windowAnnotation, schemeName ); For all codes in a single annotation: Collection<String> annotationCodes = OntologyConceptUtil.getCodes( annotation, schemeName ); For all codes in multiple annotations: Collection<String> annotationsCodes = OntologyConceptUtil.getCodes( annotations, schemeName ); If you want a map of scheme names and codes: Map<String,Collection<String>> getSchemeCodes( jcas ); Map<String,Collection<String>> getSchemeCodes( jcas, window ); ... getSchemeCodes( annotation ); ... getSchemeCodes( annotations ); If you have some other need, like getting all annotations with codes of a certain scheme, let me know. Sean -----Original Message----- From: Alaa al Barari [mailto:alaa.albar...@gmail.com] Sent: Monday, February 06, 2017 4:30 AM To: dev@ctakes.apache.org Subject: jcas work with a list of schemas Hi, I have my own dictionary and it has a lot of schemas which takes a lot of time. please see code below, how to make it work with specific list of schemas instead of all of them jcas = pipeline.newJCas(); jcas.setDocumentText(sentence.getCoveredText()); pipeline.process(jcas); String previousEntity = ""; for ( IdentifiedAnnotation entity : JCasUtil.select( jcas, IdentifiedAnnotation.class ) ) { final FSArray fsArray = entity.getOntologyConceptArr(); if ( fsArray == null ) { continue; } String entityString = entity.getCoveredText(); System.out.println( "Entity: " + entity.getCoveredText() + " === Polarity: " + entity.getPolarity() " === Subject: " + + entity.getSubject() " === History? " + (entity.getHistoryOf() == CONST.NE_HISTORY_OF_PRESENT)); final FeatureStructure[] featureStructures = fsArray.toArray(); final Collection<String> entityCodes = new ArrayList<>( featureStructures.length ); previousEntity = entityString; for ( FeatureStructure featureStructure : featureStructures ) { if ( featureStructure instanceof UmlsConcept ) { final UmlsConcept umlsConcept = (UmlsConcept)featureStructure; String entityCode = umlsConcept.getCode(); String entityScheme = umlsConcept.getCodingScheme(); String description = umlsConcept.getCodeDescription(); if (entityCode == null || entityScheme == null) { continue; } if (schemes.contains(entityScheme) || schemes.contains("all")) { System.out.println(entityScheme + "_" + entityCode + "_" + description); } } } } } Regards. -- Eng Alaa Al-Barari phone 0599297470