Example #1
0
  /**
   * Soft deletes Participant in CaTissue. That is to mark it as disabled with SSN set as NULL.
   *
   * @param participant - Participant to be deleted
   * @return instance of Participant
   * @throws ApplicationException - ApplicationException
   */
  public Participant deleteParticipant(Participant participant) throws ApplicationException {
    final Participant persistedParticipant =
        getParticipantForPatientId(
            participant.getLastName(), getShortTitleForParticipant(participant));
    if (persistedParticipant == null) {
      return null;
    }

    persistedParticipant.setActivityStatus(DISABLED);
    persistedParticipant.setSocialSecurityNumber(null);
    persistedParticipant.setLastName(null);

    final Iterator<CollectionProtocolRegistration> iter =
        persistedParticipant.getCollectionProtocolRegistrationCollection().iterator();
    while (iter.hasNext()) {
      final CollectionProtocolRegistration collectionProtocolRegistration =
          (CollectionProtocolRegistration) iter.next();
      collectionProtocolRegistration.setProtocolParticipantIdentifier("");
      collectionProtocolRegistration.setActivityStatus(DISABLED);
      caTissueAPIClient.update(collectionProtocolRegistration);
    }

    /*
     * Iterator<ParticipantMedicalIdentifier> iter = persistedParticipant.getParticipantMedicalIdentifierCollection
     * ().iterator(); while (iter.hasNext()) { ParticipantMedicalIdentifier participantMedicalIdentifier =
     * (ParticipantMedicalIdentifier) iter .next();//caTissueAPIClient.delete(
     * "Delete from ParticipantMedicalIdentifier pmi where pmi.id=" + participantMedicalIdentifier.getId());
     * caTissueAPIClient.delete(participantMedicalIdentifier); }
     */

    persistedParticipant.getParticipantMedicalIdentifierCollection().clear();

    return caTissueAPIClient.update(persistedParticipant);
  }
Example #2
0
 private CollectionProtocol getExistingCollectionProtocol(String shortTitle)
     throws ApplicationException {
   CollectionProtocol cp = new CollectionProtocol();
   cp.setShortTitle(shortTitle);
   cp = caTissueAPIClient.searchById(CollectionProtocol.class, cp);
   return cp;
 }
Example #3
0
  /**
   * Retrieve the participant for given PatientId
   *
   * @param participantId - PatientId for which participant has to be fetched
   * @param shortTitle - ShortTitle of the CollectionProtocol
   * @return Participant
   * @throws ApplicationException - ApplicationException
   */
  public Participant getParticipantForPatientId(String participantId, String shortTitle)
      throws ApplicationException {
    final List<Participant> prtcpntLst =
        caTissueAPIClient
            .getApplicationService()
            .query(CqlUtility.getParticipantForPatientId(participantId, shortTitle));
    if (prtcpntLst == null || prtcpntLst.isEmpty()) {
      return null;
    }

    return prtcpntLst.get(0);
  }
Example #4
0
  /**
   * updates Participant registration in CaTissue
   *
   * @param participant - Participant to be registered
   * @return instance of Participant
   * @throws ApplicationException - ApplicationException
   */
  public Participant updateParticipantRegistration(Participant participant)
      throws ApplicationException {
    if (participant == null || StringUtils.isEmpty(participant.getLastName())) {
      LOG.error(
          "Participant does not contain the unique medical identifier "
              + participant.getLastName());
      throw new ApplicationException("Participant does not contain the unique medical identifier");
    }

    final Participant existingParticipant =
        getParticipantForPatientId(
            participant.getLastName(), getShortTitleForParticipant(participant));
    if (existingParticipant == null) {
      LOG.error(
          "CaTissue does not contain a participant with the unique identifier, "
              + participant.getLastName());
      throw new ApplicationException(
          "CaTissue does not contain a participant with the unique identifier, "
              + participant.getLastName());
    }

    // check if the collection protocol is different, if different then throw exception
    if (isCollectionProtocolChanged(participant, existingParticipant)) {
      LOG.error(
          "Update Participant Registration failed for "
              + participant.getLastName()
              + "and exception is Study can't be changed while updating the Participant.");
      throw new ApplicationException(
          "Update Participant Registration failed for "
              + participant.getLastName()
              + "and exception is Study can't be changed while updating the Participant.");
    }

    participant.setId(existingParticipant.getId());

    // Set the values in CPR only for Create Participant Flow and don't set it for UpdateParticipant
    participant.setCollectionProtocolRegistrationCollection(
        new HashSet<CollectionProtocolRegistration>());

    // code to handle the existing/new race collection
    updateParticipantRaceCollection(existingParticipant, participant);

    try {
      caTissueAPIClient.update(participant);
    } catch (ApplicationException ae) {
      LOG.error(
          "Update Registration Failed for Participant with Subject ID " + participant.getLastName(),
          ae);
      throw new ApplicationException(ae);
    }

    return copyFrom(existingParticipant);
  }
Example #5
0
  /**
   * Registers Participant in CaTissue
   *
   * @param participant - Participant to be registered
   * @return instance of Participant
   * @throws ApplicationException - ApplicationException
   */
  public Participant registerParticipant(Participant participant) throws ApplicationException {
    if (participant == null || StringUtils.isEmpty(participant.getLastName())) {
      throw new ApplicationException("Participant does not contain the unique medical identifier");
    }

    // populate the CP-Title inside Participant-CPR-CP-Title. Also call
    // populateConsentTierResponse()
    populateCP(participant);

    Participant returnParticipant = null;
    try {
      returnParticipant = caTissueAPIClient.insert(participant);
    } catch (ApplicationException ae) {
      LOG.error(
          "Create Registration Failed for Participant with Subject ID as "
              + participant.getLastName(),
          ae);
      throw new ApplicationException(ae);
    }
    return returnParticipant;
  }
Example #6
0
 /**
  * retrieve participants registered to a collection protocol
  *
  * @param cpTitle - collection protocol title
  * @return list of participant for that collection protocol
  * @throws ApplicationException - ApplicationException
  */
 public List<Participant> getParticipantsForCollectionProtocol(String cpTitle)
     throws ApplicationException {
   return caTissueAPIClient
       .getApplicationService()
       .query(CqlUtility.getParticipantsForCP(cpTitle));
 }