private Participant copyFrom(Participant participant) { final Participant p = ParticipantFactory.getInstance().createObject(); p.setId(participant.getId()); p.setActivityStatus(participant.getActivityStatus()); p.setBirthDate(participant.getBirthDate()); p.setEthnicity(participant.getEthnicity()); p.setFirstName(participant.getFirstName()); p.setLastName(participant.getLastName()); p.setGender(participant.getGender()); p.setMetaPhoneCode(participant.getMetaPhoneCode()); p.setSocialSecurityNumber(participant.getSocialSecurityNumber()); p.setVitalStatus(participant.getVitalStatus()); final Iterator<Race> iter = participant.getRaceCollection().iterator(); while (iter.hasNext()) { final Race race = (Race) iter.next(); final Race r = RaceFactory.getInstance().createObject(); r.setParticipant(p); r.setRaceName(race.getRaceName()); p.getRaceCollection().add(r); } final Iterator<CollectionProtocolRegistration> cprIter = participant.getCollectionProtocolRegistrationCollection().iterator(); while (cprIter.hasNext()) { final CollectionProtocolRegistration collectionProtocolRegistration = (CollectionProtocolRegistration) cprIter.next(); final CollectionProtocol collectionProtocol = collectionProtocolRegistration.getCollectionProtocol(); final CollectionProtocol cp = CollectionProtocolFactory.getInstance().createObject(); cp.setActivityStatus(collectionProtocol.getActivityStatus()); cp.setTitle(collectionProtocol.getTitle()); cp.setShortTitle(collectionProtocol.getShortTitle()); final CollectionProtocolRegistration cpr = CollectionProtocolRegistrationFactory.getInstance().createObject(); cpr.setParticipant(p); cpr.setConsentSignatureDate(collectionProtocolRegistration.getConsentSignatureDate()); cpr.setRegistrationDate(collectionProtocolRegistration.getRegistrationDate()); cpr.setProtocolParticipantIdentifier( collectionProtocolRegistration.getProtocolParticipantIdentifier()); // setting empty consenttier status collection, as update flow will not update consent tier cpr.setConsentTierResponseCollection( (Collection<ConsentTierResponse>) new LinkedHashSet<ConsentTierResponse>()); cpr.setCollectionProtocol(cp); p.getCollectionProtocolRegistrationCollection().add(cpr); } return p; }
private String getShortTitleForParticipant(Participant participant) { String shortTitle = ""; final ArrayList<CollectionProtocolRegistration> cprColl = new ArrayList<CollectionProtocolRegistration>( participant.getCollectionProtocolRegistrationCollection()); if (!cprColl.isEmpty()) { // We are expecting only ONE CPR here final CollectionProtocolRegistration cpr = cprColl.get(0); final CollectionProtocol collectionProtocol = cpr.getCollectionProtocol(); shortTitle = collectionProtocol.getShortTitle(); } return shortTitle; }
/** * This method is used to check if the CollectionProtocol of incoming participant is different * from existingParticipant * * @return true if the CP is different */ private boolean isCollectionProtocolChanged( Participant participant, Participant existingParticipant) { boolean isCPChanged = false; final List<CollectionProtocolRegistration> existCPRList = new ArrayList<CollectionProtocolRegistration>( existingParticipant.getCollectionProtocolRegistrationCollection()); final CollectionProtocolRegistration existCPR = (CollectionProtocolRegistration) existCPRList.get(0); final String existShortTitle = existCPR.getCollectionProtocol().getShortTitle(); final ArrayList<CollectionProtocolRegistration> cprColl = new ArrayList<CollectionProtocolRegistration>( participant.getCollectionProtocolRegistrationCollection()); final String shortTitle = cprColl.get(0).getCollectionProtocol().getShortTitle(); if (!shortTitle.equals(existShortTitle)) { isCPChanged = true; } return isCPChanged; }
/** * This method is used to populate the CP-title inside Participant object for given CP-shortTitle. * Also it will call method to populate the default ConsentTierResponse * * @param participant * @return Participant with Title populated * @throws ApplicationException - ApplicationException */ private Participant populateCP(Participant participant) throws ApplicationException { final ArrayList<CollectionProtocolRegistration> cprColl = new ArrayList<CollectionProtocolRegistration>( participant.getCollectionProtocolRegistrationCollection()); if (!cprColl.isEmpty()) { // We are expecting only ONE CPR here final CollectionProtocolRegistration incomingCPR = cprColl.get(0); final CollectionProtocol incomingCP = incomingCPR.getCollectionProtocol(); // get the existing CollectionProtocol for given shortTitle final CollectionProtocol fetchedCP = getExistingCollectionProtocol(incomingCP.getShortTitle()); if (fetchedCP != null) { // set the fetched CP_Title into the Participant-CPR-CP-title incomingCP.setTitle(fetchedCP.getTitle()); populateConsentTierResponse(incomingCPR, fetchedCP); } } return participant; }