IRB Exchange

Show / Hide Table of Contents

Class IrbExchange

The main logic type. This class contains methods used by consuming Portal applications for interfacing with the IRB Exchange.

Inheritance
System.Object
Namespace:Portal.IrbExchange
Assembly:Portal.IrbExchange.dll
Syntax
public class IrbExchange : Click.Portal.Entity

Properties

AccountName

Name of the Account (admin office) this entity belongs to.

Declaration
public string AccountName { get; set; }
Property Value
Type Description
System.String

Extent

Gets the extent of IrbExchange instances.

Declaration
public static IEntityQuery<IrbExchange> Extent { get; }
Property Value
Type Description
IEntityQuery<IrbExchange>

Methods

AddItem(String, ItemHeader, String)

Adds an item to the container

Declaration
public Item AddItem(string containerId, ItemHeader itemHeader, string itemContent)
Parameters
Type Name Description
System.String containerId

Exchange ID of the container to add the item to

ItemHeader itemHeader

Item header used for storing metadata about the item

System.String itemContent

Content to be added as an item

Returns
Type Description
Item

The Item created

AddParticipant(String, String, String)

Adds a participant invitation for a participating site to a study. This is called when a single IRB of record confirms invitation decision for participating site to participate in the study and enables the participating site to download the study from the IRB Exchange.

Declaration
public bool AddParticipant(string studyPoRef, string participantId, string sitePiJsonStr)
Parameters
Type Name Description
System.String studyPoRef

PoRef of the study

System.String participantId

Exchange ID of the organization to add as a participant

System.String sitePiJsonStr

Person data type object as a JSON string

Returns
Type Description
System.Boolean

bool; true if participant added, false if not because account doesn't have sIRB privileges

CreateContainer()

Creates a container on the IRB Exchange

Declaration
public Huron.IrbExchange.Container CreateContainer()
Returns
Type Description
Huron.IrbExchange.Container

The IRB Exchange container created

CreateContainer(IEnumerable)

Creates a container on the IRB Exchange

Declaration
public Huron.IrbExchange.Container CreateContainer(IEnumerable organizationIds)
Parameters
Type Name Description
IEnumerable organizationIds

String list of IRB Exchange organization IDs

Returns
Type Description
Huron.IrbExchange.Container

IRB Exchange container

CreateExchangeAccount(Company, Boolean)

Exchange Administrator only method that creates an organization on the exchange from the provided context.

Declaration
public string CreateExchangeAccount(Company organization, bool isSingleIrb)
Parameters
Type Name Description
Company organization

Portal organization/company to update

System.Boolean isSingleIrb

flag to indicate if organization is a Huron IRB customer

Returns
Type Description
System.String

string representing the OrganizationId on the exchange

CreateExchangeAccount(String, String, Boolean)

Exchange Administrator only method that creates an organization on the exchange from the provided context.

Declaration
public string CreateExchangeAccount(string contextPoRef, string organizationName, bool isSingleIrb)
Parameters
Type Name Description
System.String contextPoRef

The poRef of the context that this method is being called from (like the organization oid)

System.String organizationName

Name of the organization

System.Boolean isSingleIrb

flag to indicate if organization is a Huron IRB customer

Returns
Type Description
System.String

string representing the OrganizationId on the exchange

CreateOrganization(String, Boolean)

Exchange Administrator only method that creates an organization on the exchange.

Declaration
public Organization CreateOrganization(string organizationName, bool isSingleIrb)
Parameters
Type Name Description
System.String organizationName

Name of the organization

System.Boolean isSingleIrb

flag to indicate if organization is a Huron IRB customer

Returns
Type Description
Organization

Organization

DisableExchangeAccount(Company)

Exchange Administrator only method that sets the isDisabled flag on the exchange account to true.

Declaration
public void DisableExchangeAccount(Company organization)
Parameters
Type Name Description
Company organization

The portal organization

DisableSingleIrb(Company)

Exchange Administrator only method that sets the isSingleIrb flag on the exchange account to true.

Declaration
public void DisableSingleIrb(Company organization)
Parameters
Type Name Description
Company organization

The portal organization

EnableExchangeAccount(Company)

Exchange Administrator only method that sets the isDisabled flag on the exchange account to false.

Declaration
public void EnableExchangeAccount(Company organization)
Parameters
Type Name Description
Company organization

The portal organization

EnableSingleIrb(Company)

Exchange Administrator only method that sets the isSingleIrb flag on the exchange account to true.

Declaration
public void EnableSingleIrb(Company organization)
Parameters
Type Name Description
Company organization

The portal organization

Get(String)

Retrieves the IrbExchange extent or null if not found

Declaration
public static IrbExchange Get(string poRef)
Parameters
Type Name Description
System.String poRef

Oid of the entity to retrieve

Returns
Type Description
IrbExchange

IrbExchange

Get(String, String)

Retrieves the IrbExchange extent or null if not found

Declaration
public static IrbExchange Get(string accountName, string endpointName)
Parameters
Type Name Description
System.String accountName
System.String endpointName
Returns
Type Description
IrbExchange

IrbExchange

GetBaseUrl()

Used to get the BaseUrl for this entity

Declaration
public string GetBaseUrl()
Returns
Type Description
System.String

string BaseUrl used to communicate with the IRB Exchange API

GetDefault()

Retrieves the default IrbExchange or null if not found

Declaration
public static IrbExchange GetDefault()
Returns
Type Description
IrbExchange

IrbExchange

GetDocument(String, String, String)

Download a document's content. This is the byte array data that makes up the document, or docProxy, in Portal.

Declaration
public FileContent GetDocument(string studyPoRef, string documentPoRef, string documentItemId)
Parameters
Type Name Description
System.String studyPoRef

OID of the study the document belongs to

System.String documentPoRef

OID of the document, if it has been previously downloaded

System.String documentItemId

Exchange ID of the document to get

Returns
Type Description
FileContent

FileContent stored in the store's corpus, ready to be set into a Document entity (docProxy attribute)

GetDownloadList()

Gets a list of studies the local institution has been added to as a participant and reportable new information submissions that have not yet been downloaded.

Declaration
public string GetDownloadList()
Returns
Type Description
System.String

Stringified JSON array representation of studies and reportable new information submissions that contain header information

GetEndpoint()

Used to get the Endpoint entity for this entity

Declaration
public IrbExchangeEndpoint GetEndpoint()
Returns
Type Description
IrbExchangeEndpoint

string IrbExchangeEndpoint extent used to communicate with the IRB Exchange API

GetEntityType()

Gets the runtime EntityType of this instance.

Declaration
public IrbExchange.EntityType GetEntityType()
Returns
Type Description
IrbExchange.EntityType

GetIrbExchangeByName(String)

Used to retrieve an IrbExchange by Name

Declaration
public static IrbExchange GetIrbExchangeByName(string name)
Parameters
Type Name Description
System.String name

Name of IrbExchange to get

Returns
Type Description
IrbExchange

IrbExchange

GetIrbExchangeForAccountName(String)

Retrieves the IrbExchange associated with the given Account Name and store selected endpoint.

Declaration
public static IrbExchange GetIrbExchangeForAccountName(string AccountName)
Parameters
Type Name Description
System.String AccountName

IrbExchangeAccountGroup containing the accounts for an entity

Returns
Type Description
IrbExchange

IrbExchange

GetOrCreate(String, String, String, String)

Gets the IrbExchange matching the accountName and endpointName passed in, or creates the endpoint if no match is found

Declaration
public static IrbExchange GetOrCreate(string accountName, string endpointName, string organizationId = null, string thumbprint = null)
Parameters
Type Name Description
System.String accountName

Name of the IRB Exchange account

System.String endpointName

Name of the IRB Exchange endpoint configured in the store

System.String organizationId

IRB Exchange organization ID

System.String thumbprint

Certificate thumbprint for the IRB Exchange organization

Returns
Type Description
IrbExchange

IrbExchange matching the account name and endpoint name

GetOrganization(String)

Retrieves information about the requested organization from the IRB Exchange

Declaration
public Organization GetOrganization(string organizationId)
Parameters
Type Name Description
System.String organizationId

ID of the organization on the IRB Exchange

Returns
Type Description
Organization

Organization from the IRB Exchange

GetOrganizationAsJson(String)

Retrieves information about the requested organization from the IRB Exchange as JSON

Declaration
public string GetOrganizationAsJson(string organizationId)
Parameters
Type Name Description
System.String organizationId

ID of the organization on the IRB Exchange

Returns
Type Description
System.String

Stringified JSON representing the organization from the IRB Exchange

GetOrganizations(String)

Gets a list of organizations from the IRB Exchange.

Declaration
public List<Organization> GetOrganizations(string name = null)
Parameters
Type Name Description
System.String name

Optional name of the organization to retrieve, if null all active organizations will be returned

Returns
Type Description
List<Organization>

List of active organizations

GetOrganizationsAsJson()

Gets a list of organizations from the Exchange and returns the list as JSON.

Declaration
public string GetOrganizationsAsJson()
Returns
Type Description
System.String

JSON collection of active organizations

GetOrganizationsAsJson(String)

Gets a list of organizations from the Exchange and returns the list as JSON.

Declaration
public string GetOrganizationsAsJson(string name = null)
Parameters
Type Name Description
System.String name

Optional name of the organization to retrieve, if null all active organizations will be returned

Returns
Type Description
System.String

JSON collection of active organizations

GetRni(String, String, String, String)

Downloads a reportable new information submission. This is called when a single IRB of record downloads the reportable new information related to a multi-site study, either for the first time or when requesting updated data.

Declaration
public string GetRni(string studyPoRef, string containerId, string rniPoRef, string rniItemId = null)
Parameters
Type Name Description
System.String studyPoRef

Optional OID of the study related to the RNI; one of studyPoRef or containerId is required

System.String containerId

Optional Exchange ID of the container the RNI is stored in; one of studyPoRef or containerId is required

System.String rniPoRef

Optional OID of the RNI for getting updates; one of rniPoRef or rniItemId is required

System.String rniItemId

Optional Exchange ID of the RNI item for downloading for first time; one of rniPoRef or rniItemId is required

Returns
Type Description
System.String

Stringified JSON representing the RNI's data

GetRniActionPlan(String, String)

Downloads reportable new information action plan information, which includes responsible party and determinations. This is called when a participating site requests any action plan information for a reportable new information they have sent to the single IRB of record.

Declaration
public string GetRniActionPlan(string studyPoRef, string rniPoRef)
Parameters
Type Name Description
System.String studyPoRef

OID of the study related to the RNI

System.String rniPoRef

OID of the RNI for getting updates

Returns
Type Description
System.String

Stringified JSON representing the action plan's data

GetSirbOrg(String)

Gets the sIRB organization that created a container.

Declaration
public Company GetSirbOrg(string containerId)
Parameters
Type Name Description
System.String containerId

Exchange ID of the study container

Returns
Type Description
Company

Company - the Portal Organization linked to the Exchange account that created the container (the Single IRB of Record), or null if it doesn't exist in the store

GetSirbOrgName(String)

Gets the sIRB organization name that created a container.

Declaration
public string GetSirbOrgName(string containerId)
Parameters
Type Name Description
System.String containerId

Exchange ID of the study container

Returns
Type Description
System.String

string - name of the Exchange account that created the container (the Single IRB of Record), or null if container not found

GetSirbRni(String, String)

Downloads the information about an external RNI from the IRB Exchange. This is called when any participating site requests to download any external RNI info uploaded by the single IRB of record.

Declaration
public string GetSirbRni(string studyPoRef, string rniPoRef)
Parameters
Type Name Description
System.String studyPoRef

OID of the study

System.String rniPoRef

OID of the rni

Returns
Type Description
System.String

Stringified JSON representation of the external RNI information

GetSirbSiteMod(String, String)

Downloads the modification data from the IRB Exchange. This is called when any participating site requests to download the modification info uploaded by the single IRB of record.

Declaration
public string GetSirbSiteMod(string studyPoRef, string pSiteModPoRef)
Parameters
Type Name Description
System.String studyPoRef

OID of the study

System.String pSiteModPoRef

OID of the site modification

Returns
Type Description
System.String

GetSite(String, String)

Downloads the information about a site from the IRB Exchange. This is called when the single IRB of record requests updated information about the site.

Declaration
public string GetSite(string studyPoRef, string participantId)
Parameters
Type Name Description
System.String studyPoRef

OID of the study

System.String participantId

Organization ID of the participating organization

Returns
Type Description
System.String

Stringified JSON representation of a site’s information

GetSiteCr(String, String)

Downloads the information about a site continuing review from the IRB Exchange. This is called when the single IRB of record reports continuing review data on its participating sites.

Declaration
public string GetSiteCr(string studyPoRef, string participantId)
Parameters
Type Name Description
System.String studyPoRef

OID of the study

System.String participantId

Organization ID of the participating organization

Returns
Type Description
System.String

Stringified JSON representation of a site CR’s information

GetSiteMod(String, String, String)

Downloads the information about a site modification from the IRB Exchange. This is called when the single IRB of record requests to download any site modification uploaded by the participating site.

Declaration
public string GetSiteMod(string studyPoRef, string participantId, string siteModPoRef)
Parameters
Type Name Description
System.String studyPoRef

OID of the study

System.String participantId

Exchange ID of the participating organization for the site mod

System.String siteModPoRef

OID of the site mod, if created

Returns
Type Description
System.String

Stringified JSON representation of a site modification’s information

GetStudy(String, String)

Downloads a study's data from the IRB Exchange. This is called when a participating site wants to download a study's information, either for the first time or for updates.

Declaration
public string GetStudy(string studyPoRef, string containerId = null)
Parameters
Type Name Description
System.String studyPoRef

PoRef of the study, for updates

System.String containerId

Optional Exchange ID of the study container, for downloading the study for the first time

Returns
Type Description
System.String

Stringified JSON representing the study's data

GetStudyContainer(String)

Gets a container that is related to the study. Throws an error if the study does not exist.

Declaration
public Huron.IrbExchange.Container GetStudyContainer(string studyPoRef)
Parameters
Type Name Description
System.String studyPoRef

A persistable object reference to the Study.

Returns
Type Description
Huron.IrbExchange.Container

The ExchangeContainer that hosts the study.

GetStudyContainerOrNull(String)

Attempts to get the container related to a study.

Declaration
public Huron.IrbExchange.Container GetStudyContainerOrNull(string studyPoRef)
Parameters
Type Name Description
System.String studyPoRef

A persistable object reference to the Study.

Returns
Type Description
Huron.IrbExchange.Container

The ExchangeContainer that hosts the study, otherwise null.

NewId()

Creates a new unique identifier.

Declaration
public string NewId()
Returns
Type Description
System.String

A GUID

Ping()

Test method to Ping returns pong

Declaration
public string Ping()
Returns
Type Description
System.String

Response, should be string "pong"

Ping(String)

Test method to Ping returns pong

Declaration
public static string Ping(string name)
Parameters
Type Name Description
System.String name

Name of IrbExchange entity to use

Returns
Type Description
System.String

Response, should be string "pong"

RemoveDocument(String, String)

Deletes a document from the IRB Exchange. This is called when an update to some data is uploaded to the IRB Exchange and a document was removed from the source data.

Declaration
public void RemoveDocument(string studyPoRef, string documentPoRef)
Parameters
Type Name Description
System.String studyPoRef

PoRef of the study the document belongs to

System.String documentPoRef

PoRef of the document

RenameExchangeAccount(Company, String)

Exchange Administrator only method that renames an organization on the Exchange from the provided string.

Declaration
public void RenameExchangeAccount(Company organization, string newAccountName)
Parameters
Type Name Description
Company organization

Portal organization/company linked to the Exchange account

System.String newAccountName

New name to set on the Exchange account

SaveDocument(String, String, String, String)

Uploads a document to the IRB Exchange. This is meant to be used for uploading documents when there are potentially many or of large sizes. Currently only used for studies.

Declaration
public void SaveDocument(string studyPoRef, string attachmentPoRef, string draftPoRef, string finalPoRef)
Parameters
Type Name Description
System.String studyPoRef

PoRef of the study

System.String attachmentPoRef

PoRef of the Attachment (if data source is an Attachment type)

System.String draftPoRef

PoRef of the draftVersion document on Attachment, or in Document type case just the document poRef

System.String finalPoRef

PoRef of the finalVersion document on Attachment

SaveReportableNewInformation(String)

Uploads a reportable new information submission to the IRB Exchange. If the submission was uploaded previously, the data will be updated. Called when a participating site is uploading reportable new information related to a study downloaded from the IRB Exchange.

Declaration
public void SaveReportableNewInformation(string rniJson)
Parameters
Type Name Description
System.String rniJson

JSON string representing reportable new information.

SaveReportableNewInformationActionPlan(String)

Uploads reportable new information action plan information to the IRB Exchange. This includes the responsible party and determinations. Each upload replaces any previous action plan information. This is called when a single IRB of record makes a determination on a reportable new information submission that came from a participating site related to one of their studies and an action plan is required. This is to relay the action plan information back to the participating site that reported it.

Declaration
public void SaveReportableNewInformationActionPlan(string rniActionPlanJsonStr)
Parameters
Type Name Description
System.String rniActionPlanJsonStr

Stringified JSON representing the reportable new information action plan data

SaveSirbRni(String)

Uploads external RNI info to IRB Exchange from the sIRB

Declaration
public void SaveSirbRni(string sirbRniJson)
Parameters
Type Name Description
System.String sirbRniJson

A JSON string that can be deserialized into an instance of a Portal.IrbExchange.Models.SirbRni.

SaveSirbSiteModification(String)

Uploads single IRB of record site mod to IRB Exchange

Declaration
public void SaveSirbSiteModification(string sirbSiteModificationJson)
Parameters
Type Name Description
System.String sirbSiteModificationJson

A JSON string that can be deserialized into an instance of a Portal.IrbExchange.Models.SirbSiteModification.

SaveSite(String)

Uploads a site to the IRB Exchange. If the site was previously uploaded, then the data will be updated. This is called when a participating site wants to provide its information to the single IRB of record.

Declaration
public void SaveSite(string siteJson)
Parameters
Type Name Description
System.String siteJson

A JSON string that can be deserialized into an instance of a Portal.IrbExchange.Models.Site.

SaveSiteContinuingReview(String)

Uploads a site continuing review to the IRB Exchange. Each continuing review report replaces any previous uploads. This is called when a participating site wants to report its continuing review data to the single IRB of record.

Declaration
public void SaveSiteContinuingReview(string continuingReviewJson)
Parameters
Type Name Description
System.String continuingReviewJson

A JSON string that can be deserialized into an instance of a Portal.IrbExchange.Models.SiteContinuingReview.

SaveSiteModification(String)

Uploads a site modification to the IRB Exchange. If the data was uploaded previously, then it will be updated. This is called when a participating site wants to upload a site modification it initiated for review by the single IRB of record.

Declaration
public void SaveSiteModification(string siteModificationJson)
Parameters
Type Name Description
System.String siteModificationJson

A JSON string that can be deserialized into an instance of a Portal.IrbExchange.Models.SiteModification.

SaveSiteSirbReviewData(String)

Uploads a site's single IRB of record review data to the IRB Exchange. If the data has been uploaded previously, then it will be updated. This is called when the single IRB of record officially completes review of the site so the participating site can recieve the review data.

Declaration
public void SaveSiteSirbReviewData(string sIrbReviewDataJson)
Parameters
Type Name Description
System.String sIrbReviewDataJson

A JSON string that can be deserialized into an instance of a Portal.IrbExchange.Models.SiteSirbReviewData.

SaveStudy(String)

Uploads a study to the IRB Exchange. If the study has been uploaded previously, then it will be updated. This is called when a multi-site study where the local institution will be the single IRB of record for participating sites is submitted to the IRB. Participating sites may download this data once the single IRB of record has confirmed the invitation decision.

Declaration
public void SaveStudy(string studyJson)
Parameters
Type Name Description
System.String studyJson

A JSON string that can be deserialized into an instance of a Portal.IrbExchange.Models.Study.

SetDefault(String)

Sets the IrbExchange.default value if an entity with that name exists

Declaration
public static void SetDefault(string value)
Parameters
Type Name Description
System.String value

Name of IrbExchange to set as default

Test()

Test method that returns "OK"

Declaration
public static string Test()
Returns
Type Description
System.String

string "OK"

TestAuthentication()

Test method to determine if an authenticated request can be made to the IRB Exchange.

Declaration
public bool TestAuthentication()
Returns
Type Description
System.Boolean

Boolean, true if successful, false if not

TestAuthorization()

Test method to determine if you are authorized as a Single IRB of record.

Declaration
public bool TestAuthorization()
Returns
Type Description
System.Boolean

Boolean, true if successful, false if not

TestConnectivity()

Test method to determine if the IRB Exchange is available.

Declaration
public bool TestConnectivity()
Returns
Type Description
System.Boolean

Boolean, true if successful, false if not

UpdateCertificate(String, FileContent)

Exchange Administrator only method that allows the user to update the Certificate for a given organizationId on the exchange.

Declaration
public string UpdateCertificate(string organizationId, FileContent certificate)
Parameters
Type Name Description
System.String organizationId

Id of the organization ot update

FileContent certificate

DocumentProxy of the certificate file

Returns
Type Description
System.String

string thrumbprint of the cert

UpdateExchangeCertificate(Company, FileContent)

Exchange Administrator only method that allows the user to update the Certificate for a given organizationId on the exchange.

Declaration
public string UpdateExchangeCertificate(Company organization, FileContent certificate)
Parameters
Type Name Description
Company organization

Portal organization/company to update

FileContent certificate

DocumentProxy of the certificate file

Returns
Type Description
System.String

string response

UserCanEdit(Person)

Used to determine if the user is allowed to edit entities

Declaration
public static bool UserCanEdit(Person user)
Parameters
Type Name Description
Person user

Person to be tested

Returns
Type Description
System.Boolean

Boolean indicating if passed in user can edit IrbExchange entities

UserCanRead(Person)

Used to determine if the user is allowed to see entities

Declaration
public static bool UserCanRead(Person user)
Parameters
Type Name Description
Person user

Person to be tested

Returns
Type Description
System.Boolean

Boolean indicating if passed in user can read IrbExchange entities

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.