CITI Program Web Services

Introduction

CITI Web Services is one of the tools that sites can use to integrate with their CITI data. Another option is the Automated Downloads v2

Access

Access is by permission only. Create an account to access the SOAP Services on the Create Account page. Initially your account will not have access. Please go to Support to have your account attached to your own institution and set to SUBSCRIBER for full access. You will need to submit an email from an institutional administrator with your request for access. Once you are set up, to test your SOAP Service Access, go to Client Sample.

Services

The SOAP web methods parallel the current download service options, but that's not all it can do. We have created a method to list your courses and the unique Keys to see if they will match your own LMS Keys for Imports. We also created a simple member list to verify the member information, which will be broken out into targeted methods for more on a single member or custom report style queries.

Field Descriptions

Data Dictionary for Grade Book Dataset

strObjectnamestrObjectFieldNamestrobjectfielddescriptionstrObjectDataDefinitionbitKeyField
GetGradeBooksintCompletionReportIDGradeBook ID [Hierarchy: GradeBook ID | Course ID | Stage ID][int]
GetGradeBooksintInstitutionIDInstitution CITI's Unique ID for each Institution[int]
GetGradeBooksstrCompletionReportGradeBook Title: Research Curriculum Title (per institution, not generic, GCP, HUman Subjects, etc)[varchar](100)
GetGradeBooksintGroupIDCourse ID [Hierarchy: GradeBook ID | Course ID | Stage ID][int]
GetGradeBooksstrGroupCourse Title (Ex. IRB Reference Resource, Group 1. Biomedical, etc)[varchar](200)
GetGradeBooksintStageIDStage ID [Hierarchy: GradeBook ID | Course ID | Stage ID][int]
GetGradeBooksstrStageStage Title : Name of the stage (per institution, not generic) (Basic, Refresher 1,2,3,4 etc)[varchar](500)



A Code snippet in asp.net GetGradeBook Web Method looks like this:

/* Code Sippet Begin Dim DSGradeBook As New DataSet
Dim client2 As CITIWebService.CITISOAPServiceSoapClient = New CITIWebService.CITISOAPServiceSoapClient() ‘ instantiate your client after importing the Wsdl

‘ Test the rights of your account
Dim helloUserString2 As String = client2.HelloWorldbyUser(usr,pw)
‘Pull the datasets
DSGradeBook = client2.GetGradeBooks(usr,pw)

‘Attach them to an object to view
GradeBookGridView.DataSource = DSGradeBook.Tables("GradeBook") ‘ Or Table(0) there is only one table in each dataset
GradeBookGridView.DataBind()
Code Sippet End */




Data Dictionary for Member DataSet

strObjectnamestrObjectFieldNamestrobjectfielddescriptionstrObjectDataDefinitionbitKeyField
GetMembersintMemberIDCITI Member ID Number[int]
GetMembersstrUsernameIICITI Member Username[varchar](50)
GetMembersstrInstUsernameInstitution User Name[varchar](50)
GetMembersstrFirstIICITI Member First Name[varchar](100)
GetMembersstrLastIICITI Member Last Name[varchar](100)
GetMembersstrInstEmailInstitution Member Email[varchar](100)
GetMembersdteAddedCITI Member Account Created Date[Date]
GetMembersdteAffiliatedInstitution Member Affilated Date[Date]
GetMembersdteLastLoginCITI Member Date and Time Member Logged in Last[Date]
GetMembersstrCustom1Institution Custom Profile Field[varchar](1000)
GetMembersstrCustom2Institution Custom Profile Field[varchar](255)
GetMembersstrCustom3Institution Custom Profile Field[varchar](255)
GetMembersstrCustom4Institution Custom Profile Field[varchar](255)
GetMembersstrCustom5Institution Custom Profile Field[varchar](100)
GetMembersstrSSOCustomAttrib1Institution SSO Student Number[varchar](50)
GetMembersstrSSOCustomAttrib2Institution SSO Employee Number[varchar](255)
GetMembersstrEmployeeNumInstitution Profile Employee Number[varchar](50)



A Code snippet in asp.net GetMembers Web Method looks like this:

/* Code Sippet Begin */
Dim DSMembers As New DataSet
Dim client2 As CITIWebService.CITISOAPServiceSoapClient = New CITIWebService.CITISOAPServiceSoapClient() ‘ instantiate your client after importing the Wsdl
‘Pull the dataset
DSMembers = client2.GetMembers(usr,pw)

‘Attach them to an object to view
MembersGridView.DataSource = DSMembers.Tables("Members") ‘ Or Table(0) there is only one table in each dataset
MembersGridView.DataBind()
/* Code Sippet End */




Data Dictionary for Completion Report DataSet

strObjectnamestrObjectFieldNamestrobjectfielddescriptionstrObjectDataDefinitionbitKeyField
GetCompletionReportsstrUsernameIICITI Member Username[varchar](50)
GetCompletionReportsstrInstUsernameInstitution User Name[varchar](50)
GetCompletionReportsstrFirstIICITI Member First Name[varchar](100)
GetCompletionReportsstrInstEmailInstitution Member Email[varchar](100)
GetCompletionReportsdteAddedCITI Member Account Created Date[Date]
GetCompletionReportsdteAffiliatedInstitution Member Affilated Date[Date]
GetCompletionReportsstrCustom1Institution Custom Profile Field[varchar](1000)
GetCompletionReportsstrCustom2Institution Custom Profile Field[varchar](255)
GetCompletionReportsstrCustom3Institution Custom Profile Field[varchar](255)
GetCompletionReportsstrCustom4Institution Custom Profile Field[varchar](255)
GetCompletionReportsstrCustom5Institution Custom Profile Field[varchar](100)
GetCompletionReportsstrCompletionReportGradeBook Title: Research Curriculum Title (per institution, not generic, GCP, HUman Subjects, etc)[varchar](100)
GetCompletionReportsintGroupIDCourse ID [Hierarchy: GradeBook ID | Course ID | Stage ID][int]
GetCompletionReportsstrGroupCourse Title (Ex. IRB Reference Resource, Group 1. Biomedical, etc)[varchar](200)
GetCompletionReportsstrStageStage Title : Name of the stage (per institution, not generic) (Basic, Refresher 1,2,3,4 etc)[varchar](500)
GetCompletionReportsintStageNumber Order the stages are presented to learner (Basic, Refresher 1,2,3,4 etc) [int]
GetCompletionReportsintMemberStageID CR Number, important [int]
GetCompletionReportsdteCompleted Date All Module Completed (Different from passed) [Date]
GetCompletionReportsdtePassed Date Course passed[Date]
GetCompletionReportsintScore Grade for Completed Course (Stage) [int]
GetCompletionReportsintPassingScore What Constituted a passing score at time test test taken[int]
GetCompletionReportsdteExpiration When the Course expires and refresher or next stage begins [Date]
GetCompletionReportsstrMemberEmailCITI Member Email[varchar](100)


A Code snippet in asp.net GetCompletionReports Web Method looks like this:

/* Code Sippet Begin */
Dim DSCompletionReports As New DataSet
Dim client2 As CITIWebService.CITISOAPServiceSoapClient = New CITIWebService.CITISOAPServiceSoapClient() ‘ instantiate your client after importing the Wsdl

‘Pull the datasets
DSCompletionReports = client2.GetCompletionReports(usr,pw)

‘Attach them to an object to view
CRGridView.DataSource = DSGradeBook.Tables("CRS") ‘ Or Table(0) there is only one table in each dataset
CRGridView.DataBind()
/* Code Sippet End */




Notes on what these methods are and what base class they set the structural foundation for later:

The GradeBook list for an Institution breaks down like this:

  • Institution GradeBooks
  • Institution Courses in GradeBooks
  • Institution Stages in Courses in GradeBooks

This Web Method will, hopefully, expose how CITI stores your GradeBooks for eventual use to put learners in the correct gradebooks, Course and Stage for your institution. This is the building block of the Course Presentation Layer inside CITI Program.

PHP Client Notes

Please email Support with any qustions you might have and for the benefit of all institutions we will post Q and A here if it's general in nature.


1. Locate php.ini in your php bin folder 2. Remove the ; from the beginning of extension=php_soap.dll 3. Remove the ; from the beginning of extension=php_openssl.dll 4. Check that the time out is greater than 0 (default_socket_timeout = 300) Restart the service

FAQ










Problems with website? Contact Support

DISCLAIMER: These Policies and Procedures are the sole property of the CITIProgram.org and are for exclusive use by our employees and customers. Policies and Procedures should not be copied or distributed externally without administrative approval.