package oboannotator.annotator; import java.util.Iterator; import oboannotator.typesys.MedlineDocument; import oboannotator.typesys.MedlineField; import org.apache.uima.analysis_component.JCasAnnotator_ImplBase; import org.apache.uima.cas.FSIndex; import org.apache.uima.conceptMapper.DictTerm; import org.apache.uima.conceptMapper.support.tokenizer.TokenAnnotation; import org.apache.uima.jcas.JCas; public class DataRecordAnnotator extends JCasAnnotator_ImplBase { /** * @see JCasAnnotator_ImplBase#process(JCas) */ public void process(JCas aJCas) { // get annotation indexes FSIndex mlDocIndex = aJCas.getAnnotationIndex(MedlineDocument.type); FSIndex mlFieldIndex = aJCas.getAnnotationIndex(MedlineField.type); FSIndex tokenIndex = aJCas.getAnnotationIndex(TokenAnnotation.type); FSIndex dictTermIndex = aJCas.getAnnotationIndex(DictTerm.type); // store end position of last meeting we identified, to prevent multiple // annotations over same span //int lastMeetingEnd = -1; // iterate over all combinations Iterator mlDocIter = mlDocIndex.iterator(); while (mlDocIter.hasNext()) { MedlineDocument mlDoc = (MedlineDocument) mlDocIter.next(); System.out.println("Doc ID: " + mlDoc.getDocID()); Iterator mlFieldIter = mlFieldIndex.iterator(); while (mlFieldIter.hasNext()) { MedlineField mlField = (MedlineField) mlFieldIter.next(); if("UI".equals(mlField.getName())){ System.out.println("Document ID: " + mlField.getName()); //mlField.getText() } Iterator tokenIter = tokenIndex.iterator(); while (tokenIter.hasNext()) { TokenAnnotation tokenAnnot = (TokenAnnotation) tokenIter .next(); Iterator dictTermIter = dictTermIndex.iterator(); while (dictTermIter.hasNext()) { DictTerm dictTerm = (DictTerm) dictTermIter.next(); // DataRecord dr = new DataRecord(aJCas, dictTerm // .getBegin(), dictTerm.getEnd(), mlDoc, mlField, // tokenAnnot, dictTerm); //System.out.println("Doc ID: " + mlDoc.getDocID()); //System.out.println("Doc Text: " + mlDoc.getText()); // System.out.println("Dict Covered Text: " + dictTerm.getCoveredText()); // System.out.println("Dict Canon: " + dictTerm.getDictCanon()); // System.out.println("Dict Matched Text: " + dictTerm.getMatchedText()); // System.out.println("Dict Sofa: " + dictTerm.getSofa()); } } } } } }