protected CompositeInstanceContext mergePatientContext( Group group, CompositeInstanceContext newContext) { if (group.context == null) { // System.err.println("mergePatientContext(): creating new context for group"); group.context = newContext; } else { AttributeList groupList = group.context.getAttributeList(); Iterator<Attribute> newListIterator = newContext.getAttributeList().values().iterator(); while (newListIterator.hasNext()) { Attribute a = newListIterator.next(); AttributeTag tag = a.getTag(); String groupValue = Attribute.getSingleStringValueOrEmptyString(groupList, tag); String newValue = a.getSingleStringValueOrEmptyString(); if (!newValue.equals(groupValue)) { String describeTag = tag + " " + groupList.getDictionary().getFullNameFromTag(tag); System.err.println( "mergePatientContext(): in group " + group.identity + " for " + describeTag + " values differ between existing group value <" + groupValue + "> and new value <" + newValue + ">"); if (newValue.length() > 0 && (groupValue.length() == 0 || isNonZeroLengthDummyValue(groupValue))) { System.err.println( "mergePatientContext(): in group " + group.identity + " for " + describeTag + " replacing absent/empty/dummy existing group value with new value <" + newValue + ">"); groupList.put(a); } } } } return group.context; }