+ "exists in the shadow database", transactionType);
return false;
}
String marriageStatus = null;
String marriageType = null;
Fingerprint fp1 = new Fingerprint();
Fingerprint fp2 = new Fingerprint();
String event = "";
Date eventDate = null;
for (Row r : rowList) {
String value = r.value;
if (value == null) {
value = "";
} else {
value = value.trim(); // HDSS database values have a lot of trailing spaces.
value = value.replace('\u2018', '\'').replace('\u2019', '\''); // Some values have "curly" quote characters -- cause problems for XML.
}
if (r.name.equals("fname")) {
p.setFirstName(value);
} else if (r.name.equals("jname")) {
p.setMiddleName(value);
} else if (r.name.equals("lname")) {
p.setLastName(value);
} else if (r.name.equals("famcla")) {
p.setClanName(value);
} else if (r.name.equals("akaname")) {
p.setOtherName(value);
} else if (r.name.equals("gender")) {
p.setSex(HdssDataParser.sex(value, hdssId));
} else if (r.name.equals("dob")) {
p.setBirthdate(parseDate(value));
} else if (r.name.equals("mfname")) {
p.setMothersFirstName(value);
} else if (r.name.equals("mjname")) {
p.setMothersMiddleName(value);
} else if (r.name.equals("mlname")) {
p.setMothersLastName(value);
} else if (r.name.equals("ffname")) {
p.setFathersFirstName(value);
} else if (r.name.equals("fjname")) {
p.setFathersMiddleName(value);
} else if (r.name.equals("flname")) {
p.setFathersLastName(value);
} else if (r.name.equals("mtal")) {
marriageStatus = value;
} else if (r.name.equals("mtyp")) {
marriageType = value;
} else if (r.name.equals("cfname")) {
p.setCompoundHeadFirstName(value);
} else if (r.name.equals("cjname")) {
p.setCompoundHeadMiddleName(value);
} else if (r.name.equals("clname")) {
p.setCompoundHeadLastName(value);
} else if (r.name.equals("villname")) {
p.setVillageName(value);
} else if (r.name.equals("lasteventdate")) {
eventDate = parseDate(value);
} else if (r.name.equals("lastevent")) {
event = value;
} else if (r.name.equals("expectedDeliveryDate")) {
p.setExpectedDeliveryDate(parseDate(value));
} else if (r.name.equals("pregnancyEndDate")) {
p.setPregnancyEndDate(parseDate(value));
} else if (r.name.equals("pregnancyOutcome")) {
p.setPregnancyOutcome(HdssDataParser.pregnancyOutcome(value, hdssId));
} else if (r.name.equals("f_Template")) {
fp1.setTemplate(parseHex(value));
} else if (r.name.equals("f_Type")) {
fp1.setFingerprintType(HdssDataParser.fingerprintType(value, hdssId));
} else if (r.name.equals("f_Technology")) {
fp1.setTechnologyType(HdssDataParser.fingerprintTechnologyType(value, hdssId));
} else if (r.name.equals("f_DateEntered")) {
fp1.setDateEntered(parseDate(value));
} else if (r.name.equals("f_DateModified")) {
fp1.setDateChanged(parseDate(value));
} else if (r.name.equals("s_Template")) {
fp2.setTemplate(parseHex(value));
} else if (r.name.equals("s_Type")) {
fp2.setFingerprintType(HdssDataParser.fingerprintType(value, hdssId));
} else if (r.name.equals("s_Technology")) {
fp2.setTechnologyType(HdssDataParser.fingerprintTechnologyType(value, hdssId));
} else if (r.name.equals("s_DateEntered")) {
fp2.setDateEntered(parseDate(value));
} else if (r.name.equals("s_DateModified")) {
fp2.setDateChanged(parseDate(value));
}
}
if (event.equalsIgnoreCase("DTH")) {
//p.setAliveStatus(Person.AliveStatus.no);
p.setDeathdate(eventDate);
} else if (event.equalsIgnoreCase("EXT")) {
p.setLastMoveDate(eventDate);
}
//
// Set marital status, if present.
//
p.setMaritalStatus(HdssDataParser.maritalStatus(marriageStatus, marriageType, hdssId));
//
// Set the Kisumu HDSS person identifier.
//
List<PersonIdentifier> personIdentifierList = new ArrayList<PersonIdentifier>();
PersonIdentifier pi = new PersonIdentifier();
pi.setIdentifier(hdssId);
pi.setIdentifierType(PersonIdentifier.Type.kisumuHdssId);
personIdentifierList.add(pi);
p.setPersonIdentifierList(personIdentifierList);
//
// Set the fingerprints if present.
//
List<Fingerprint> fingerprintList = new ArrayList<Fingerprint>();
if (fp1.getTemplate() != null) {
fingerprintList.add(fp1);
}
if (fp2.getTemplate() != null) {
fingerprintList.add(fp2);
}
if (fingerprintList.size() > 0) {
p.setFingerprintList(fingerprintList);
} else {