private void performGenericAction(
      Protocol protocol, ProtocolGenericActionBean actionBean, String protocolActionType)
      throws Exception {
    ProtocolAction protocolAction =
        (ProtocolAction) createProtocolActionAndAttach(protocol, actionBean, protocolActionType);

    if (protocol.getNotifyIrbSubmissionId() == null) {
      getProtocolActionService().updateProtocolStatus(protocolAction, protocol);
    } else {
      for (ProtocolSubmissionBase submission : protocol.getProtocolSubmissions()) {
        if (submission.getSubmissionId().equals(protocol.getNotifyIrbSubmissionId())) {
          submission.setSubmissionStatusCode(ProtocolSubmissionStatus.IRB_ACKNOWLEDGEMENT);
        }
      }
    }

    protocol.refreshReferenceObject("protocolStatus");
    protocol.refreshReferenceObject("protocolSubmission");
    getDocumentService().saveDocument(protocol.getProtocolDocument());
  }