Skip to main content

Join Keys

Entity Fields

Study

Returned by List Studies.

Response

Returned by Get Responses. Each response belongs to a study via linkId.

Answer

Nested inside Response.answersArray.

TranscriptRow

Returned by Get Single Response inside the transcript array.

Question

Returned by Get Study Questions.

Concept

Nested inside Question.concepts.

Traversal Examples

Get all answers for a study, grouped by question

  1. GET /api/public/v1/studies to find the study’s id and linkId
  2. GET /api/public/v1/studies/{studyId}/questions to get all questions (using the id)
  3. GET /api/public/v1/responses/{linkId} to get all responses
  4. Join each answersArray[] item to its question using discussionGuideQuestionId = Question.id

Match transcript audio/video to specific questions

  1. GET /api/public/v1/responses/{linkId}/{responseId} to get the full transcript
  2. GET /api/public/v1/studies/{studyId}/questions to get question definitions
  3. Each transcript row’s discussionGuideQuestionId tells you which question it belongs to
  4. Use audio, video, and screenVideo fields on the transcript row to access the media for that exchange

Group transcript rows by answer (including follow-ups)

  1. GET /api/public/v1/responses/{linkId}/{responseId} to get the full transcript
  2. Group transcript rows by answerId. Rows sharing the same answerId belong to the same answer. Follow-ups are marked by isFollowUp: true.
  3. Cross-reference with answersArray from the list endpoint using the same answerId to get the extracted answer text

Read the selected options for a multiple choice question

  1. GET /api/public/v1/studies/{studyId}/questions to get choices for the question
  2. GET /api/public/v1/responses/{linkId} to get the response’s answersArray
  3. Find the answer whose discussionGuideQuestionId matches Question.id
  4. Map each value in optionIds to the text of the choices entry with the same id