IRB Exchange

Show / Hide Table of Contents

sIRB Site Modification Information

When the sIRB moves a site modification they downloaded from IRB Exchange around in the workflow, they need to upload information about the sIRB site modification to the IRB Exchange.

What's Involved

  1. Add a method to create JSON representing a sIRB site modification's data for upload to the IRB Exchange.
  2. Add a method to upload sIRB site modification information to the IRB Exchange.
  3. Modifying the method called by the global state transition post-processing script to upload updates.

Create sIRB Site Modification Information JSON

_IRBSubmission.toSiteSirbModJson Method Example

//Converts the relevant data for a sirb site mod into Json for upload to exchange.
function toSiteSirbModJson()
{
    var jsonObj = {};
    jsonObj.poRef = this + "";
    jsonObj.studyPoRef = this.getQualifiedAttribute("customAttributes.parentStudy.customAttributes.mSSStudy")+ "";
    jsonObj.exchangeRef = this.getQualifiedAttribute("customAttributes.draftStudy.customAttributes.mSSPSiteInstitutionalProfile.customAttributes.exchangeID");
    jsonObj.status = this.getQualifiedAttribute("status.ID");
    return JSON.stringify(jsonObj, null, null);
}

Upload sIRB Site Modification Information to IRB Exchange

_IRBSubmission.uploadToExchangeIfSirbSiteMod Method Example

/** Checks if the submission is a sirb site mod.
 If it is then uploads its status on IRB exchange.
 **/
function uploadToExchangeIfSirbSiteMod()
{
    var isExchangeEnabled = _IRBSettings.getIRBSettings().getQualifiedAttribute("customAttributes.isIRBExchangeEnabled");
    if(isExchangeEnabled != true) return;
    var submissionType = this.getQualifiedAttribute("customAttributes.submissionType.ID");
    var isExternalMod = this.getQualifiedAttribute("customAttributes.parentStudy.customAttributes.mSSStudy");
    // check for sirb site mod.
    if(submissionType == "MOD" && isExternalMod != null){
        var accountName = this.getQualifiedAttribute("customAttributes.IRB.customAttributes.iRBExchangeAccountName");
        if(accountName != null){
            var exchangeClient = ClickIRBUtils.getExchangeClient(accountName);
            var containerRef = IrbExchangeReference.GetEntityForPoRef(this + "", exchangeClient + "");
            //a local sirb site mod will not have a container associated
            //so we dont want to attempt sending it to exchange.
            if(containerRef == null) return;
            //else save to exchange           
            exchangeClient.SaveSirbSiteModification(this.toSiteSirbModJson());
        }
    }
}

Technical notes about this method example:

  • sIRB site modification information is uploaded to the IRB Exchange if the site modification was downloaded from the IRB Exchange. This is done via the method call IrbExchange.SaveSirbSiteModification.

Place Trigger to Upload sIRB Site Modification Information to IRB Exchange

_IRBSubmission.onGlobalStateTransition Method Snippet Example

// Sirb site modification status always upload to exchange on state transition
this.uploadToExchangeIfSirbSiteMod();
Back to top © 2017 Huron Consulting Group Inc. and affiliates.
Use and distribution prohibited except through written agreement with Huron. Trademarks used in this website are registered or unregistered trademarks of Huron or its licensors.