Results ------- Results methods can be used to query the delivery database for information about assessment results. There are methods for obtaining an individual result from a result ID, :qm:meth:`GetResult`, or methods for obtaining a list of results by filtering, for example :qm:meth:`GetResultListByAssessment`, :qm:meth:`GetResultListByGroup` and qm:meth:`GetResultListByParticipant`. .. warning:: Questionmark databases may contain many millions of results, some of these methods were designed to work with smaller datasets and may not be suitable for use when the number of results returned is very large. As a rule of thumb, if the returned result set exceeds 1,000 results consider using an alternative API. The :od:feed:`deliveryodata.Results` OData feed queries the same part of the data model and will accept more filters (including date filters) allowing you to return more precise result sets. Result Methods ~~~~~~~~~~~~~~ Getting Result Information ++++++++++++++++++++++++++ .. qm:meth:: GetResult :input: Result_ID string :output: Result Result Returns a single result from the database. The string type of the input parameter is an anomaly, the parameter value is required (See :ref:`qmwise_string`) and must be the integer value of a result ID present in the database. See :qm:field:`A_Result.Result_ID`. The output parameter returned is of type :qm:xtype:`Result2`, which is an extension of the basic :qm:xtype:`Result` type declared in the WSDL. (See :ref:`extension_types`.) Example:: 218475 218475 0009962000009962 true miami147 10.30.6.5 false 9 0 1 3 3 Customer 147 0 Thank you! 2016515 100 true 58275 Printing and Scanning in Miami 100 3 3 3 2016-04-13T15:28:14 2016-04-12T23:01:33 2016-04-13T15:28:14 Customer 147 Miami2016 663244283 .. qm:meth:: GetResultList :output: ResultList ResultList Returns *all* results in the repository database. Use of this method is no longer recommended due to the number of result records in a typical repository. .. qm:meth:: GetResultListByAssessment :input: Assessment_ID string :output: ResultList ResultList Returns *all* results in the repository database associated with a given assessment. Use of this method is no longer recommended if the number of results for the assessment exceeds 10,000 records. The input parameter is given as type string but it must be the numeric ID of the assessment left-padded with 0s to a fixed length of 16 characters. See :ref:`assessmentid` for details. .. qm:meth:: GetResultListByGroup :input: Group_Name string :output: ResultList ResultList Returns *all* results in the repository database associated with a given Group. Use of this method is no longer recommended if the number of results for the group exceeds 10,000 records. Notice that the group is identified by *name* and not by a numeric ID. The name must be the name of a top-level group and is matched against :qm:field:`A_Result.Member_Group` in the data model. For backwards compatibility, if the Group_Name input parameter contains the single quote character it is replaced with the back-quote \` before being used to filter the result set. .. qm:meth:: GetResultListByParticipant :input: Participant_Name string :output: ResultList ResultList Returns *all* results in the repository database associated with a given Participant. Notice that the participant is identified by *name* and not by a numeric ID. The name is matched against :qm:field:`A_Result.Participant` in the data model. For backwards compatibility, if the Participant_Name input parameter contains the single quote character it is replaced with the back-quote \` before being used to filter the result set. .. qm:meth:: GetResultListBySubGroup :input: Event string :output: EventResultList EventResultList Similar to :qm:meth:`GetResultListByGroup`, this returns all results in the repository where :qm:field:`A_Result.Member_Sub_Group_1` matches the input parameter. This method imposes the additional constraint that the input parameter must be the name of a group as recorded in :qm:field:`G_Group_Tree.Group_Name`. Unlike similar methods, no character transformations are applied to the input parameter. .. qm:meth:: GetAssessmentResult :input: Result_ID string :output: AssessmentResult AssessmentResult Similar to :qm:meth:`GetResult` but returns additional information including the Feedback and the the detailed item-level responses and scores. .. qm:meth:: GetAssessmentResult2 :input: Result_ID string :output: AssessmentResult2 AssessmentResult2 Similar to :qm:meth:`GetAssessmentResult` but returns some elements missing from the original method by using the :qm:xtype:`AssessmentResult2` type. .. qm:meth:: GetAssessmentResultListByAssessment :input: Assessment_ID string :output: AssessmentResultList AssessmentResultList Similar to :qm:meth:`GetResultListByAssessment` but returns additional information including the Feedback and the the detailed item-level responses and scores. .. qm:meth:: GetAssessmentResultListByGroup :input: Group_Name string :output: AssessmentResultList AssessmentResultList Similar to :qm:meth:`GetResultListByGroup` but returns additional information including the Feedback and the the detailed item-level responses and scores. .. qm:meth:: GetAssessmentResultListByParticipant :input: Participant_Name string :output: AssessmentResultList AssessmentResultList Similar to :qm:meth:`GetResultListByParticipant` but returns additional information including the Feedback and the the detailed item-level responses and scores. Creating Results ++++++++++++++++ The following methods can be used to create results in the repository. The mechanism used by these methods relies on the :qm:table:`A_Session_Ex` and :qm:table:`A_Question_Ex` tables in the data model. This is an older data flow that has some issues with the handling of assessment and question revisions. The methods are documented here for backwards compatibility, new projects should consider using the new snapshot-based 'Attempt' flow facilitated by the :od:svc:`Delivery OData` service. .. qm:meth:: CreateAssessmentResult :input: AssessmentResult AssessmentResult :output: Result_ID string Creates a single result in the database from the supplied information. This is the base method designed to work with the basic :qm:xtype:`Result` and :qm:xtype:`Answer` elements. The method creates a record in :qm:table:`A_Result` and optionally records in :qm:table:`A_TopicScore`, :qm:table:`A_Answer`, :qm:table:`A_ScoreBand_Ex` and :qm:table:`A_Comment`. as appropriate. On input, the :qm:xfield:`Result.Result_ID` is ignored, it is recommended to set it to "0". The supplied :qm:xfield:`Result.Assessment_ID` must correspond to the ID of an assessment in :qm:table:`A_Session_Ex` in the repository database. Similarly, any uploaded answers must have corresponding records in :qm:table:`A_Question_Ex`. Before using this method you should familiarise yourself with the purpose of these tables in the data model. It is likely that you will have to call :qm:meth:`CreateAssessmentResultInfoList` and :qm:meth:`CreateQuestionResultInfoList` when creating results for the first time - you can use :qm:meth:`GetAssessmentResultInfo` and :qm:meth:`GetQuestionResultInfoList` to test for the existence of the required records. If :qm:xfield:`AssessmentResult.Feedback` is provided a new record is created in :qm:table:`A_ScoreBand_Ex` to hold the feebdack. The feedback is not validated against the assessment. It should record the feedback the participant actually saw at the time of delivery. If the result has been created following delivery *and scoring* via some external system it would be appropriate to set the feedback string to the message provided by that system on submission such as an indication of pass or fail. .. warning:: Scored results created with QMWISe are not subject to the same level of validation as results created and scored using the OData :od:feed:`deliveryodata.Attempts` feed. In particular, care is needed to ensure that answers adhere to the correct format for the question type, as described by :qm:field:`A_Answer.Answer_Full`. Furthermore, these values must validate against the associated question. Using the correct revision number and ensuring that the indicated When_Started time is consistent with the revision history of the associated questions is important to ensure consistent reporting in Questionmark Analytics. .. qm:meth:: CreateAssessmentResult2 :input: AssessmentResult2 AssessmentResult2 :output: Result_ID string Extends the basic :qm:meth:`CreateAssessmentResult` to use the updated :qm:xtype:`AssessmentResult2` type. .. qm:meth:: CreateAssessmentResult3 :input: AssessmentResult3 AssessmentResult3 :output: Result_ID string Extends the basic :qm:meth:`CreateAssessmentResult` to use the language-aware :qm:xtype:`AssessmentResult3` type. .. qm:meth:: CreateAssessmentResultInfoList :input: AssessmentResultInfoList AssessmentResultInfoList :output: NumberRecordsCreated int Creates an entry in :qm:table:`A_Session_Ex` for each item in the input list if there is no existing entry available. Returns the number of records that were actually created as a result. Before a result can be created for an assessment the assessment must have an entry in A_Session_Ex. This method can be used to force the creation of a suitable record enabling subsequent calls to :qm:meth:`CreateAssessmentResult` to succeed. (Though see the similar :qm:meth:`CreateQuestionResultInfoList`). For assessments that have been created using Questionmark tools but have been delivered by an external system you should use :qm:meth:`GetAssessment` to discover the appropriate information to pass. For assessments that have been created *and* delivered externally you must create a unique Assessment ID (see :ref:`midlid` for important information about the valid set of IDs) that is not currently in use. You may then fill the fields in appropriately to describe the external assessment. .. qm:meth:: CreateAssessmentResultInfoList2 :input: AssessmentResultInfoList2 AssessmentResultInfoList2 :output: NumberRecordsCreated int Similar to :qm:meth:`CreateAssessmentResultInfoList` but takes an extended set of elements allowing two extra fields to be set in the database. Note that the :qm:xfield:`AssessmentResultInfo2.CourseProperty` field should contain the name of the folder containing the assessment. This is not easy to discover using QMWISe as :qm:meth:`GetAssessment` returns the ID of the folder (rather than the name) and there is no method to get information about a folder itself from its ID. Given this limitation the field should be treated as more general metadata. The value of this field is copied to the :qm:field:`A_Result.Course` field for each result created for this assessment. .. qm:meth:: CreateAssessmentResultInfoList3 :input: AssessmentResultInfoList3 AssessmentResultInfoList3 :output: NumberRecordsCreated int Similar to :qm:meth:`CreateAssessmentResultInfoList2` but takes an extended set of elements allowing language information to be set for the assessment. .. qm:meth:: CreateQuestionResultInfoList :input: QuestionResultInfoList QuestionResultInfoList :output: NumberRecordsCreated int Creates an entry in :qm:table:`A_Question_Ex` for each item in the input list if there is no existing entry available. Returns the number of records that were actually created as a result. Before an answer record can be created for a question the quesitno must have an entry in A_Question_Ex. This method can be used to force the creation of a suitable record enabling subsequent calls to :qm:meth:`CreateAssessmentResult` to succeed. (Though see the similar :qm:meth:`CreateAssessmentResultInfoList`). Creating answer records with QMWISe for assessments that have been created using Questionmark tools but have been delivered by an external system is not simple and is discouraged. Generating the outcome information to pass to this method requires detailed knowledge of, and access to, the QML description of the question itself. Consider using snapshots in combination with the newer :od:feed:`deliveryodata.Attempts` feed for this type of project. The only exception to this use case would be when the result info record is known to already exist, for example if you are creating a new result after re-scoring an existing one. In that case you would not need to call this method. For assessments that have been created *and* delivered externally you must create a unique Question ID (see :ref:`midlid` for important information about the valid set of IDs) for each question that is not currently in use. You may then fill the fields in appropriately to describe the externally created question. .. qm:meth:: CreateQuestionResultInfoList2 :input: QuestionResultInfoList2 QuestionResultInfoList2 :output: NumberRecordsCreated int Similar to :qm:meth:`CreateQuestionResultInfoList` but takes an extended set of elements allowing language information to be set for the assessment. For use with :qm:meth:`CreateAssessmentResultInfoList3`. .. qm:meth:: GetAssessmentResultInfo :input: Assessment_ID string :output: AssessmentResultInfo AssessmentResultInfo Returns information from :qm:table:`A_Session_Ex`. Can be used to check that the required information about an Assessment exists before creating results with :qm:meth:`CreateAssessmentResult` and similar methods. The input parameter is given as type string but it must be the numeric ID of the assessment left-padded with 0s to a fixed length of 16 characters. See :ref:`assessmentid` for details. .. qm:meth:: GetAssessmentResultInfo2 :input: Assessment_ID string :output: AssessmentResultInfo2 AssessmentResultInfo2 As per :qm:meth:`GetAssessmentResultInfo` but with extended information. .. qm:meth:: GetAssessmentResultInfo3 :input: Assessment_ID string, Base boolean, Language string :output: AssessmentResultInfo3 AssessmentResultInfo3 As per :qm:meth:`GetAssessmentResultInfo` but can be used with translated assessments. For translated assessments the assessment is specified with an additional language code and the flag indicating whether or not the language is the base language for the assessment. In fact, the flag is actually ignored, if the correct value is not known it may be set to false. .. qm:meth:: GetAssessmentResultInfoList :output: AssessmentResultInfoList AssessmentResultInfoList Returns all records from :qm:table:`A_Session_Ex`. .. qm:meth:: GetAssessmentResultInfoList2 :output: AssessmentResultInfoList2 AssessmentResultInfoList2 Returns all records from :qm:table:`A_Session_Ex` with additional elements as defined in :qm:xtype:`AssessmentResultInfo2`. Note there is not 'GetAssessmentResultInfoList3'. .. qm:meth:: GetQuestionResultInfoList :output: QuestionResultInfoList QuestionResultInfoList Returns all records from :qm:table:`A_Question_Ex`. Can be used to check that the required information about a Question exists before creating results with :qm:meth:`CreateAssessmentResult` and similar methods. .. warning:: Some repository databases have thousands of delivered questions. This method is not intended for use on larger repositories. The use cases for using QMWISe to obtain information from :qm:table:`A_Question_Ex` are limited to legacy applications and are documented here only for completeness. New applications should use the :od:feed:`deliveryodata.Attempts` feed in Delivery OData to create externally generated results. Result Types ~~~~~~~~~~~~ .. qm:xtype:: AssessmentResult The XML datatype that provides complete information about a result. .. qm:xfield:: Result Result :optional: The summary information for the result. Although marked as optional in the schema this element is always present and must be provided when creating results. .. qm:xfield:: Feedback string :optional: If present, and non empty, corresponds to the HTML feedback for the result as stored in :qm:field:`A_ScoreBand_Ex.Feedback`. .. qm:xfield:: AnswerList AnswerList :optional: The list of answers stored for this result. .. qm:xtype:: AssessmentResult2 An alternative type used for complete information about a result. .. note:: Despite the name this type is *not* a simple extension of the similarly named :qm:xtype:`AssessmentResult` type. .. qm:xfield:: Result Result2 :optional: The summary information for the result. Although marked as optional in the schema this element is always present and must be provided when creating results. .. qm:xfield:: Feedback string :optional: If present, and non empty, corresponds to the HTML feedback for the result as stored in :qm:field:`A_ScoreBand_Ex.Feedback`. .. qm:xfield:: AnswerList AnswerList2 :optional: The list of answers stored for this result. .. qm:xfield:: LMSDetails UnencryptedLMSDetails :optional: Deprecated. This field was originally intended to allow the AICC protocol to notify a learning management system of the new result. .. qm:xtype:: AssessmentResult3 An alternative type used for complete information about a result that uses the language-aware :qm:xtype:`Result3` type. .. note:: Despite the name this type is *not* a simple extension of the similarly named :qm:xtype:`AssessmentResult2` type. .. qm:xfield:: Result Result3 :optional: The summary information for the result. Although marked as optional in the schema this element is always present and must be provided when creating results. .. qm:xfield:: Feedback string :optional: If present, and non empty, corresponds to the HTML feedback for the result as stored in :qm:field:`A_ScoreBand_Ex.Feedback`. .. qm:xfield:: AnswerList AnswerList2 :optional: The list of answers stored for this result. .. qm:xfield:: LMSDetails UnencryptedLMSDetails :optional: Deprecated. This field was originally intended to allow the AICC protocol to notify a learning management system of the new result. .. qm:xtype:: AssessmentResultList The element type used for a list of assessment results. .. qm:xfield:: AssessmentResult AssessmentResult :optional: :max: unbounded .. qm:xtype:: Result The XML datatype representing a result. This is a base type that is extended by :qm:xtype:`Result2` and further by :qm:xtype:`Result3`. In most cases the fields returned are simply the values from associated record in the :qm:table:`A_Result` table in the underlying data model. .. qm:xfield:: Result_ID string :optional: See :qm:field:`A_Result.Result_ID`. .. qm:xfield:: Assessment_ID string :optional: See :qm:field:`A_Result.Session_MID` for more information, the field value here is the combined ID, as per :qm:field:`A_Result.Assessment_ID` but *may* be left-padded with 0s. See :ref:`assessmentid` for details. .. qm:xfield:: Write_Answer_Data boolean See :qm:field:`A_Result.Write_Answer_Data`. .. qm:xfield:: Participant string :optional: See :qm:field:`A_Result.Participant`. .. qm:xfield:: Member_Group string :optional: See :qm:field:`A_Result.Member_Group`. .. qm:xfield:: Participant_Details string :optional: See :qm:field:`A_Result.Participant_Details`. .. qm:xfield:: Hostname string :optional: See :qm:field:`A_Result.Hostname`. .. qm:xfield:: IP_Address string :optional: See :qm:field:`A_Result.IP_Address`. .. qm:xfield:: Still_Going boolean See :qm:field:`A_Result.Still_Going`. .. qm:xfield:: Status short See :qm:field:`A_Result.Status`. .. qm:xfield:: Feedback short See :qm:field:`A_Result.Feedback`. .. qm:xfield:: Number_Sections short See :qm:field:`A_Result.Number_Sections`. .. qm:xfield:: Max_Score int See :qm:field:`A_Result.Max_Score`. .. qm:xfield:: Total_Score int See :qm:field:`A_Result.Total_Score`. .. qm:xfield:: Special_1 string :optional: See :qm:field:`A_Result.Special_1`. .. qm:xfield:: Special_2 string :optional: See :qm:field:`A_Result.Special_2`. .. qm:xfield:: Special_3 string :optional: See :qm:field:`A_Result.Special_3`. .. qm:xfield:: Special_4 string :optional: See :qm:field:`A_Result.Special_4`. .. qm:xfield:: Special_5 string :optional: See :qm:field:`A_Result.Special_5`. .. qm:xfield:: Special_6 string :optional: See :qm:field:`A_Result.Special_6`. .. qm:xfield:: Special_7 string :optional: See :qm:field:`A_Result.Special_7`. .. qm:xfield:: Special_8 string :optional: See :qm:field:`A_Result.Special_8`. .. qm:xfield:: Special_9 string :optional: See :qm:field:`A_Result.Special_9`. .. qm:xfield:: Special_10 string :optional: See :qm:field:`A_Result.Special_10`. .. qm:xfield:: Time_Taken int See :qm:field:`A_Result.Time_Taken`. .. qm:xfield:: Score_Band_Title string :optional: See :qm:field:`A_Result.Score_Band_Title`. .. qm:xfield:: Score_Band_Number int See :qm:field:`A_Result.Score_Band_Number`. .. qm:xfield:: Percentage_Score short See :qm:field:`A_Result.Percentage_Score`. .. qm:xfield:: Schedule_Name string :optional: See :qm:field:`A_Result.Schedule_Name`. .. qm:xfield:: Monitored boolean See :qm:field:`A_Result.Monitored`. .. qm:xfield:: Monitor_Name string :optional: See :qm:field:`A_Result.Monitor_Name`. .. qm:xfield:: TopicScoringList TopicScoringList :optional: A list of topic scores. .. qm:xfield:: When_Started string :optional: See :qm:field:`A_Result.When_Started`. .. qm:xfield:: Session_Last_Modified string :optional: See :qm:field:`A_Result.Session_Last_Modified`. .. qm:xfield:: When_Finished string :optional: See :qm:field:`A_Result.When_Finished`. .. qm:xtype:: TopicScoringList Element used to return a list of topic scores in :qm:xtype:`Result`. and :qm:xtype:`EventResult`. .. qm:xfield:: TopicScoring TopicScoring :optional: :max: unbounded Each topic score is contained in its own TopicScoring element. .. qm:xtype:: TopicScoring Element representing a topic score. This information is loaded from the :qm:table:`A_TopicScore` in the data model. .. qm:xfield:: Topic_ID string :optional: See :qm:field:`A_TopicScore.Topic_ID` .. qm:xfield:: Topic_Name string :optional: See :qm:field:`A_TopicScore.Topic` .. qm:xfield:: Description string :optional: See :qm:field:`A_TopicScore.Description` .. qm:xfield:: Percentage_Score double See :qm:field:`A_TopicScore.Percentage_Score` .. qm:xfield:: Actual_Score int See :qm:field:`A_TopicScore.Actual_Score` .. qm:xfield:: Maximum_Score int See :qm:field:`A_TopicScore.Maximum_Score` .. qm:xfield:: Num_Questions int See :qm:field:`A_TopicScore.Num_Questions` .. qm:xtype:: Result2 Result .. qm:xfield:: FirstName string :optional: See :qm:field:`A_Result.First_Name`. .. qm:xfield:: LastName string :optional: See :qm:field:`A_Result.Last_Name`. .. qm:xfield:: PrimaryEmailAddress string :optional: See :qm:field:`A_Result.Primary_Email`. .. qm:xfield:: SubgroupPath string :optional: If the result is associated with a sub-group then this field may contain the path to the subgroup with the top-level group as the first path component. The path separator is the back-slash character. Whether or not the value of this element is set on a retrieved result will depend on the delivery mode used to create it. See :qm:field:`A_Result.Member_Sub_Group_1` for more information. .. qm:xfield:: CourseProperty string :optional: See :qm:field:`A_Result.Course`. .. qm:xfield:: ScoreBandIDProperty int See :qm:field:`A_Result.ScoreBand_ID`. .. qm:xtype:: Result3 Result2 An extension of the result element type that includes information about the language of the assessment taken. Currently used only for creating results. .. qm:xfield:: Language string :optional: See :qm:field:`A_Result.Lang`. When creating results there must be an entry in :qm:table:`A_Session_Ex` that matches both the Assessment_ID (defined by the base Result type) *and* the Language. .. qm:xfield:: Base boolean Indicates if Language is the base language for the assessment or a translation. This field is actually used only for the creation of feedback and, along with Language, is used to set the language information for the ScoreBand (feedback) associated with the result. See :qm:field:`A_ScoreBand_Ex.Base` for more information. .. qm:xtype:: ResultList The type used to serialize a list of results. .. qm:xfield:: Result Result :optional: :max: unbounded .. qm:xtype:: Answer Fields largely correspond to the similarly named fields in :qm:table:`A_Answer`. .. qm:xfield:: Question_ID string :optional: The ID of the Question, calculated from the MID and LID, see :qm:field:`A_Answer.Question_MID`. .. qm:xfield:: Revision int See :qm:field:`A_Answer.Revision`. .. qm:xfield:: Occurrence short See :qm:field:`A_Answer.Occurrence`. .. qm:xfield:: Topic_Name string :optional: See :qm:field:`A_Answer.Topic`. .. qm:xfield:: Block_Number short See :qm:field:`A_Answer.Block_Number`. .. qm:xfield:: Question_Number short See :qm:field:`A_Answer.Question_Number`. .. qm:xfield:: Status short See :qm:field:`A_Answer.Status`. .. qm:xfield:: Times_Answered short See :qm:field:`A_Answer.Times_Answered`. .. qm:xfield:: Max_Score int See :qm:field:`A_Answer.Max_Score`. .. qm:xfield:: Actual_Score int See :qm:field:`A_Answer.Actual_Score`. .. qm:xfield:: Know_Time_Taken boolean See :qm:field:`A_Answer.Know_Time_Taken`. .. qm:xfield:: Time_Taken int See :qm:field:`A_Answer.Time_Taken`. .. qm:xfield:: Number_Outcomes short See :qm:field:`A_Answer.Number_Outcomes`. .. qm:xfield:: Outcome_Number short See :qm:field:`A_Answer.Outcome_Number`. .. qm:xfield:: Outcome_Exponential int See :qm:field:`A_Answer.Outcome_Exponential`. Note that the underlying data model allows for 64 outcome bits through the provision of a second field :qm:field:`A_Answer.Outcome_Exponential_2` but that this field is not included in the basic Answer element, this omission was corrected with the creation of :qm:xtype:`Answer2`. .. qm:xfield:: Answer_Truncated string :optional: See :qm:field:`A_Answer.Answer_Truncated`. .. qm:xfield:: Answer_Full string :optional: See :qm:field:`A_Answer.Answer_Full`. .. qm:xfield:: Comment string :optional: The associated participant comment, obtained from the related entity in :qm:field:`A_Comment.Comment` (if present). .. qm:xtype:: Answer2 Answer A small update to the base class to correct the limitation on the number of reported outcomes for a question. .. qm:xfield:: Outcome_Exponential2Property int Extends QMWISe to support the full 64-outcomes per question when performing operations on answer records. See :qm:field:`A_Answer.Outcome_Exponential_2` and the note above in :qm:xfield:`Answer.Outcome_Exponential`. .. note:: The name of this element does not conform to the pattern in either the data model or the base type being extended. .. qm:xtype:: AnswerList The type used to serialize a list of answers. .. qm:xfield:: Answer Answer :optional: :max: unbounded .. qm:xtype:: AnswerList2 The type used to serialize a list of answers using the updated :qm:xtype:`Answer2` content model. .. qm:xfield:: Answer2 Answer2 :optional: :max: unbounded .. qm:xtype:: AssessmentResultInfo Records information about an assessment that has been used to generate results - used prior to creating results. See :qm:meth:`CreateAssessmentResultInfoList`. .. qm:xfield:: Assessment_ID string :optional: .. qm:xfield:: Revision int .. qm:xfield:: Session_Name string :optional: .. qm:xfield:: Session_Author string :optional: .. qm:xfield:: Whether_Time_Limit boolean .. qm:xfield:: Time_Limit int .. qm:xfield:: Number_Sections short .. qm:xfield:: Description string :optional: .. qm:xfield:: Last_Updated string :optional: .. qm:xfield:: When_Modified string :optional: .. qm:xtype:: AssessmentResultInfo2 AssessmentResultInfo Extends the base class adding the following elements. For usage see :qm:meth:`CreateAssessmentResultInfoList2`. .. qm:xfield:: Assessment_TypeProperty int Sets the assessment type from one of the constants defined by :qm:field:`S_Header_Ex.Assessment_Type`. .. qm:xfield:: CourseProperty string :optional: The name of the assessment folder that contains the assessment. .. qm:xtype:: AssessmentResultInfo3 AssessmentResultInfo2 Extends the base classes with elements for specifying if the assessment has been translated and whether or not this is the base language. .. qm:xfield:: Base boolean True if the language given is the base language. .. qm:xfield:: Language string :optional: The language code of the language the assessment was presented in. .. qm:xtype:: AssessmentResultInfoList Element that contains a list of AssessmentResultInfo. .. qm:xfield:: AssessmentResultInfo AssessmentResultInfo :optional: :max: unbounded .. qm:xtype:: AssessmentResultInfoList2 Element that contains a list of AssessmentResultInfo2. .. qm:xfield:: AssessmentResultInfo2 AssessmentResultInfo2 :optional: :max: unbounded .. qm:xtype:: AssessmentResultInfoList3 Element that contains a list of AssessmentResultInfo3. .. qm:xfield:: AssessmentResultInfo3 AssessmentResultInfo3 :optional: :max: unbounded .. qm:xtype:: QuestionResultInfo Records information about a question that has been used to generate answers - used prior to creating results. See :qm:meth:`CreateQuestionResultInfoList`. .. qm:xfield:: Question_ID string :optional: .. qm:xfield:: Revision int .. qm:xfield:: Question_Description string :optional: .. qm:xfield:: Question_Type string :optional: .. qm:xfield:: Topic_Name string :optional: .. qm:xfield:: Number_Outcomes short .. qm:xfield:: Question_Wording string :optional: .. qm:xfield:: OutcomeList OutcomeList :optional: .. qm:xfield:: Last_Updated string :optional: .. qm:xtype:: Outcome .. qm:xfield:: Outcome_Number short .. qm:xfield:: Outcome_Name string :optional: .. qm:xfield:: Feedback string :optional: .. qm:xtype:: OutcomeList Element that contains a list of Outcomes. .. qm:xfield:: Outcome Outcome :optional: :max: unbounded .. qm:xtype:: QuestionResultInfo2 QuestionResultInfo Extends the base QuestionResultInfo to include support for translated questions. .. qm:xfield:: Base boolean .. qm:xfield:: Language string :optional: .. qm:xtype:: QuestionResultInfoList Element that contains a list of QuestionResultInfo. .. qm:xfield:: QuestionResultInfo QuestionResultInfo :optional: :max: unbounded .. qm:xtype:: QuestionResultInfoList2 Element that contains a list of QuestionResultInfoList2. .. qm:xfield:: QuestionResultInfoList2 QuestionResultInfoList2 :optional: :max: unbounded .. qm:xtype:: EventResult The XML datatype representing a result as returned by the special method :qm:meth:`GetResultListBySubGroup`. In most cases the fields returned are simply the values from associated record in the :qm:table:`A_Result` table in the underlying data model. .. qm:xfield:: Result_ID string :optional: See :qm:field:`A_Result.Result_ID`. .. qm:xfield:: Assessment_ID string :optional: See :qm:field:`A_Result.Session_MID` for more information, the field value here is the combined ID, as per :qm:field:`A_Result.Assessment_ID` but *may* be left-padded with 0s. See :ref:`assessmentid` for details. .. qm:xfield:: Write_Answer_Data boolean See :qm:field:`A_Result.Write_Answer_Data`. .. qm:xfield:: Participant string :optional: See :qm:field:`A_Result.Participant`. .. qm:xfield:: Member_Group string :optional: See :qm:field:`A_Result.Member_Group`. .. qm:xfield:: Participant_Details string :optional: See :qm:field:`A_Result.Participant_Details`. .. qm:xfield:: Hostname string :optional: See :qm:field:`A_Result.Hostname`. .. qm:xfield:: IP_Address string :optional: See :qm:field:`A_Result.IP_Address`. .. qm:xfield:: Still_Going boolean See :qm:field:`A_Result.Still_Going`. .. qm:xfield:: Status short See :qm:field:`A_Result.Status`. .. qm:xfield:: Feedback short See :qm:field:`A_Result.Feedback`. .. qm:xfield:: Number_Sections short See :qm:field:`A_Result.Number_Sections`. .. qm:xfield:: Max_Score int See :qm:field:`A_Result.Max_Score`. .. qm:xfield:: Total_Score int See :qm:field:`A_Result.Total_Score`. .. qm:xfield:: Special_1 string :optional: See :qm:field:`A_Result.Special_1`. .. qm:xfield:: Special_2 string :optional: See :qm:field:`A_Result.Special_2`. .. qm:xfield:: Special_3 string :optional: See :qm:field:`A_Result.Special_3`. .. qm:xfield:: Special_4 string :optional: See :qm:field:`A_Result.Special_4`. .. qm:xfield:: Special_5 string :optional: See :qm:field:`A_Result.Special_5`. .. qm:xfield:: Special_6 string :optional: See :qm:field:`A_Result.Special_6`. .. qm:xfield:: Special_7 string :optional: See :qm:field:`A_Result.Special_7`. .. qm:xfield:: Special_8 string :optional: See :qm:field:`A_Result.Special_8`. .. qm:xfield:: Special_9 string :optional: See :qm:field:`A_Result.Special_9`. .. qm:xfield:: Special_10 string :optional: See :qm:field:`A_Result.Special_10`. .. qm:xfield:: Time_Taken int See :qm:field:`A_Result.Time_Taken`. .. qm:xfield:: Score_Band_Title string :optional: See :qm:field:`A_Result.Score_Band_Title`. .. qm:xfield:: Score_Band_Number int See :qm:field:`A_Result.Score_Band_Number`. .. qm:xfield:: Percentage_Score short See :qm:field:`A_Result.Percentage_Score`. .. qm:xfield:: Schedule_Name string :optional: See :qm:field:`A_Result.Schedule_Name`. .. qm:xfield:: Monitored boolean See :qm:field:`A_Result.Monitored`. .. qm:xfield:: Monitor_Name string :optional: See :qm:field:`A_Result.Monitor_Name`. .. qm:xfield:: topicScoringList TopicScoringList :optional: .. note:: The name of this element differs from the corresponding field in :qm:xtype:`Result` in the case of the first letter. .. qm:xfield:: ScoreBandID int .. note:: The name of this element differs from the corresponding field in :qm:xtype:`Result2`. See :qm:field:`A_Result.ScoreBand_ID`. .. qm:xfield:: Course string :optional: .. note:: The name of this element differs from the corresponding field in :qm:xtype:`Result2`. See :qm:field:`A_Result.Course`. .. qm:xfield:: Participant_FirstName string :optional: .. note:: The name of this element differs from the corresponding field in :qm:xtype:`Result2`. See :qm:field:`A_Result.First_Name`. .. qm:xfield:: Participant_LastName string :optional: .. note:: The name of this element differs from the corresponding field in :qm:xtype:`Result2`. See :qm:field:`A_Result.Last_Name`. .. qm:xfield:: Result_Value string :optional: Essentially, this value indicates if the participant achieved the best possible assessment outcome (not to be confused with the maximum possible score). For example, if the assessment defines two outcomes bands for pass and fail then this value would be "1" if the participant passed and "0" if they failed. Similarly, if the assessment had 5 outcome bands representing grades "A" to "E" with "A" being the highest scoring then this field would be "1" if the participant achieved grade A. "0" The percentage score in the result was not in the highest scoring outcome band. "1" The percentage score in the result was in the highest scoring outcome band. "" There was no information about outcome bands available. .. qm:xfield:: Member_Sub_Group_1 string :optional: See :qm:field:`A_Result.Member_Sub_Group_1`. .. qm:xfield:: Assessment_Name string :optional: The name of the Assessement referenced by :qm:xfield:`EventResult.Assessment_ID`. The name is obtained by looking up information in :qm:table:`S_AML`. .. qm:xfield:: When_Started string :optional: See :qm:field:`A_Result.When_Started`. .. qm:xfield:: Session_Last_Modified string :optional: See :qm:field:`A_Result.Session_Last_Modified`. .. qm:xfield:: When_Finished string :optional: See :qm:field:`A_Result.When_Finished`. .. qm:xtype:: EventResultList The type used to serialize a list of results by :qm:meth:`GetResultListBySubGroup`. .. qm:xfield:: EventResult EventResult :optional: :max: unbounded .. qm:xtype:: UnencryptedLMSDetails LMSDetails Deprecated. .. qm:xfield:: Password string :optional: .. qm:xtype:: LMSDetails Deprecated. .. qm:xfield:: SessionId string :optional: .. qm:xfield:: LmsUrl string :optional: