LTI Outcomes Integration

This page captures the details on LTI Outcomes integration.

Overview

LTI Outcomes allows consumers and providers to send score information back and forth. This document describes how a Consumer declares its support for Outcomes Management to a Provider and describes the services made available to a Provider. The Basic Outcomes service described in this document provide a mechanism for a Provider to set, retrieve and delete LIS results for users in the Consumer gradebook.

Launch Parameters for Outcomes Management

In order to support grade return from Gooru to the Consumer using the Basic Outcomes service described in this document, the following parameters should be passed in launch request:

lis_result_sourcedid

This parameter contains an identifier that indicates the LIS Result Identifier (if any) associated with this launch. It identifies a unique row and column within the consumer gradebook. This identifier is unique for every combination of resource_link_id / user_id but its value may change from one launch to the next.

lis_outcome_service_url

Outcomes service URL will be configured in Gooru manually. If passed in request it will be skipped.

Process Flow

On successful launch request, user will redirect to play the assessment/collection having user session established. Then Gooru player will pass the necessary information to the back end system to record the user responses. Once user submits the assessment, results are computed at Gooru back end system and outcomes is posted back on the configured API end point.

👍

On Success

On success, the response will be posted by on the configured API end point of the consumer. Sample response format is as below.

{
	"result": {
		"lis_result_sourcedid": "83873872987329873264783687634",
		"score": 0.75
	},
	"context": {
		"gooru_content_id": "92d417e2-3f4d-4129-b71f-ab65f3c7eb54",
		"type": "assessment",
		"user_id": "bc669008-5d08-45cd-8f71-5afb93935e0f",
		"class_id": "cb3f8e9a-6f98-44ec-8cba-105abe80252c",
		"course_id": "f777d439-1c98-458e-8f6d-b6d2f6634efe",
		"unit_id": "dd8a640f-e101-46d6-99ca-093d011582e4",
		"lesson_id": "b6a35d12-7c65-4cb7-a635-b8032ce7a5aa"
	},
	"time_spend_ms": 669438,
	"reaction": 0,
	"questions_count": 10,
	"completed_time": 4173261254453,
	"student": true
}

Field Name

Type

Purpose

result.lis_result_sourcedid

String

To identify the user in consumer system

result.score

Double

Score after assessment played. Range 0 to 1

context.gooru_content_id

UUID

Gooru content id which played.

context.type

String

Type of the content played. It could be assessment or collection

context.user_id

UUID

Gooru user id

context.class_id

UUID

Gooru class id. (If any).

context.course_id

UUID

Gooru course id. (If any).

context.unit_id

UUID

Gooru unit id. (If any).

context.lesson_id

UUID

Gooru lesson id. (If any).

time_spend_ms

Long

Total time spend on the assessment

reaction

Integer

questions_count

Integer

Number of questions in the assessment

completed_time

Long

At what time the assessment/collection is completed

student

Boolean

Whether its student playing the assessment/collection

❗️

On Failure

TBD