while (hitsByOffsetItr.hasNext())
{
Collection hitsAtOffsetCol = (Collection) hitsByOffsetItr.next();
FSArray ocArr = new FSArray(jcas, countUniqueCodes(hitsAtOffsetCol));
int ocArrIdx = 0;
// iterate over the LookupHit objects and create
// a corresponding JCas OntologyConcept object that will
// be placed in a FSArray
Iterator lhAtOffsetItr = hitsAtOffsetCol.iterator();
int neBegin = -1;
int neEnd = -1;
Set<String> codes = new HashSet<String>();
while (lhAtOffsetItr.hasNext())
{
LookupHit lh = (LookupHit) lhAtOffsetItr.next();
neBegin = lh.getStartOffset();
neEnd = lh.getEndOffset();
MetaDataHit mdh = lh.getDictMetaDataHit();
String code = mdh.getMetaFieldValue(iv_props.getProperty(CODE_MF_PRP_KEY));
if (codes.contains(code)) {
// don't create a second entry in the array for a code already seen, including null
} else {
OntologyConcept oc = new OntologyConcept(jcas);
oc.setCode(code);
oc.setCodingScheme(iv_props.getProperty(CODING_SCHEME_PRP_KEY));
if(iv_props.getProperty(TYPE_ID_FIELD) != null) {
typeId = iv_props.getProperty(TYPE_ID_FIELD);//mdh.getMetaFieldValue(iv_props.getProperty(TYPE_ID_FIELD));
}
ocArr.set(ocArrIdx, oc);
ocArrIdx++;
codes.add(code);
}