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 NameTypePurpose
result.lis_result_sourcedidStringTo identify the user in consumer system
result.scoreDoubleScore after assessment played. Range 0 to 1
context.gooru_content_idUUIDGooru content id which played.
context.typeStringType of the content played. It could be assessment or collection
context.user_idUUIDGooru user id
context.class_idUUIDGooru class id. (If any).
context.course_idUUIDGooru course id. (If any).
context.unit_idUUIDGooru unit id. (If any).
context.lesson_idUUIDGooru lesson id. (If any).
time_spend_msLongTotal time spend on the assessment
reactionInteger
questions_countIntegerNumber of questions in the assessment
completed_timeLongAt what time the assessment/collection is completed
studentBooleanWhether its student playing the assessment/collection

❗️

On Failure

TBD