StatelessParticipants endpoint administers CATs in a stateless fashion. Because of this stateless administration, there is no need to register an assessment before administration. This endpoint returns the next item, based on all information POSTed to it. The StatelessParticipants endpoint can be customized by using request parameters.

 

In the example below, we will use the PROMIS Bank v1.0 - Depression,

where the FormOID = 96FE494D-F176-4EFB-A473-2AB406610626

 

The example below will use the BodyParam set to true so that a json object can be sent as raw text.

 

The following is a curl example of an administration with responses to all depression items as Never (i.e. no endorsement of depression). 12 items are administered.

 

Resquest

curl --location --request POST 'http://localhost/ac_api/2014-01/StatelessParticipants/96FE494D-F176-4EFB-A473-2AB406610626.json?BodyParam=true' \

--header 'Authorization: Basic {Deleted Use your local credentials}==' \

--header 'Content-Type: text/plain' \

--data-raw '[

{"ItemID":"EDDEP29","ItemResponseOID":"Never","Order":1},

{"ItemID":"EDDEP36","ItemResponseOID":"Never","Order":2},

{"ItemID":"EDDEP17","ItemResponseOID":"Never","Order":3},

{"ItemID":"EDDEP26","ItemResponseOID":"Never","Order":4},

{"ItemID":"EDDEP46","ItemResponseOID":"Never","Order":5},

{"ItemID":"EDDEP54","ItemResponseOID":"Never","Order":6},

{"ItemID":"EDDEP31","ItemResponseOID":"Never","Order":7},

{"ItemID":"EDDEP28","ItemResponseOID":"Never","Order":8},

{"ItemID":"EDDEP50","ItemResponseOID":"Never","Order":9},

{"ItemID":"EDDEP23","ItemResponseOID":"Never","Order":10},

{"ItemID":"EDDEP30","ItemResponseOID":"Never","Order":11},

{"ItemID":"EDDEP21","ItemResponseOID":"Never","Order":12}

]'

 

Response

 

{

    "EngineAssembly""CORE.Engines",

    "EngineType""CORE.Engines.CATEngineGRM_Configurable",

    "Theta""-1.58325018765786",

    "StdError""0.515964289149284",

    "T-Score""34",

    "SError""5",

    "Items": []

}

 

Set Maximum Item count

If you pass the MaxNumItems = {Integer}, the CAT algorithm will stop once the items administered reaches this limit. In this example 8, resulting in 8 items administered.

 

Resquest

curl --location --request POST 'http://localhost/ac_api/2014-01/StatelessParticipants/96FE494D-F176-4EFB-A473-2AB406610626.json?BodyParam=true&MaxNumItems=8' \

--header 'Authorization: Basic {Deleted Use your local credentials}==' \

--header 'Content-Type: text/plain' \

--data-raw '[

{"ItemID":"EDDEP29","ItemResponseOID":"Never","Order":1},

{"ItemID":"EDDEP36","ItemResponseOID":"Never","Order":2},

{"ItemID":"EDDEP17","ItemResponseOID":"Never","Order":3},

{"ItemID":"EDDEP26","ItemResponseOID":"Never","Order":4},

{"ItemID":"EDDEP46","ItemResponseOID":"Never","Order":5},

{"ItemID":"EDDEP54","ItemResponseOID":"Never","Order":6},

{"ItemID":"EDDEP31","ItemResponseOID":"Never","Order":7},

{"ItemID":"EDDEP28","ItemResponseOID":"Never","Order":8}

]'

 

Response

 

{

    "EngineAssembly""CORE.Engines",

    "EngineType""CORE.Engines.CATEngineGRM_Configurable",

    "Theta""-1.50936054270626",

    "StdError""0.524085769676843",

    "T-Score""35",

    "SError""5",

    "Items": []

}

 

 

Set Maximum Error

If you pass the MaxStdErr = {real}, the CAT algorithm will stop once the standard error reaches this limit. In this example .53, resulting in 7 items administered.

 

Resquest

curl --location --request POST 'http://localhost/ac_api/2014-01/StatelessParticipants/96FE494D-F176-4EFB-A473-2AB406610626.json?BodyParam=true&MaxStdErr=.53' \

--header 'Authorization: Basic {Deleted Use your local credentials}==' \

--header 'Content-Type: text/plain' \

--data-raw '[

{"ItemID":"EDDEP29","ItemResponseOID":"Never","Order":1},

{"ItemID":"EDDEP36","ItemResponseOID":"Never","Order":2},

{"ItemID":"EDDEP17","ItemResponseOID":"Never","Order":3},

{"ItemID":"EDDEP26","ItemResponseOID":"Never","Order":4},

{"ItemID":"EDDEP46","ItemResponseOID":"Never","Order":5},

{"ItemID":"EDDEP54","ItemResponseOID":"Never","Order":6},

{"ItemID":"EDDEP31","ItemResponseOID":"Never","Order":7}

]'

 

Response

 

{

    "EngineAssembly""CORE.Engines",

    "EngineType""CORE.Engines.CATEngineGRM_Configurable",

    "Theta""-1.4866797849303",

    "StdError""0.527287750778598",

    "T-Score""35",

    "SError""5",

    "Items": []

}

 

 

Standard Error Reduction (SER)

If you pass the EngineAssembly = MSS.PSEREngine and EngineType=MSS.Engines.CATEngineGRM_PSER_EST, the CAT algorithm will stop once the standard error does not change by more than the defined threshold of 0.01

 

After the fourth item administered

 

[

{"ItemID":"EDDEP29","ItemResponseOID":"Never","Order":1},

{"ItemID":"EDDEP36","ItemResponseOID":"Never","Order":2},

{"ItemID":"EDDEP17","ItemResponseOID":"Never","Order":3},

{"ItemID":"EDDEP26","ItemResponseOID":"Never","Order":4}

]

 

The theta and StdError are as follows. Notice that the standard error is .548.

"Theta": "-1.33227641559178",

"StdError": "0.548094902330281",

 

Once the fifth item is administered

 

Request

curl --location --request POST 'http://localhost/ac_api/2014-01/StatelessParticipants/96FE494D-F176-4EFB-A473-2AB406610626.json?BodyParam=true&EngineAssembly=MSS.PSEREngine&EngineType=MSS.Engines.CATEngineGRM_PSER_EST' \

--header 'Authorization: Basic MzlDNzE5NzUtODg5Ny00NkU4LUIyQkEtNzM2M0ZCODI3QUE2OjczQkQ0NTlFLTQ5RTgtNDk3QS1CQUQzLTc0MTJDRkM2NzU4OA==' \

--header 'Content-Type: text/plain' \

--data-raw '[

{"ItemID":"EDDEP29","ItemResponseOID":"Never","Order":1},

{"ItemID":"EDDEP36","ItemResponseOID":"Never","Order":2},

{"ItemID":"EDDEP17","ItemResponseOID":"Never","Order":3},

{"ItemID":"EDDEP26","ItemResponseOID":"Never","Order":4},

{"ItemID":"EDDEP46","ItemResponseOID":"Never","Order":5}

]'

 

Response

 

{

    "EngineAssembly""MSS.PSEREngine",

    "EngineType""MSS.Engines.CATEngineGRM_PSER_EST",

    "Theta""-1.41182980969215",

    "StdError""0.540847357508161",

    "T-Score""36",

    "SError""5",

    "Items": []

}

 

In this example the standard error changed from 0.548 to .540 between the fourth and fifth item administration, difference of .008, resulting in 5 items administered.

 

Extreme Response Options

If you pass the EngineAssembly = MSS.PSEREngine and EngineType=MSS.Engines.CATEngineGRM_ExtremeResponses, the CAT algorithm will stop if the first four responses are extreme responses in the best health direction (i.e. lowest symptom response option or highest functioning response option)

 

Two parameters are used with this configuration

Direction parameter = {Higher is better | Lower is better}

ExtremeResponse = {Integer} (optional with a default value of 4)

 

Request

curl --location --request POST 'http://localhost/ac_api/2014-01/StatelessParticipants/96FE494D-F176-4EFB-A473-2AB406610626.json?BodyParam=true&EngineAssembly=MSS.PSEREngine&EngineType=MSS.Engines.CATEngineGRM_ExtremeResponses&ExtremeResponses=3' \

--header 'Authorization: Basic MzlDNzE5NzUtODg5Ny00NkU4LUIyQkEtNzM2M0ZCODI3QUE2OjczQkQ0NTlFLTQ5RTgtNDk3QS1CQUQzLTc0MTJDRkM2NzU4OA==' \

--header 'Content-Type: text/plain' \

--data-raw '[

{"ItemID":"EDDEP29","ItemResponseOID":"Never","Order":1},

{"ItemID":"EDDEP36","ItemResponseOID":"Never","Order":2},

{"ItemID":"EDDEP17","ItemResponseOID":"Never","Order":3}

]'

 

 

 

 

Request

curl --location --request POST 'http://localhost/ac_api/2014-01/StatelessParticipants/96FE494D-F176-4EFB-A473-2AB406610626.json?BodyParam=true&EngineAssembly=MSS.PSEREngine&EngineType=MSS.Engines.CATEngineGRM_ExtremeResponses&Direction=Lower is better' \

--header 'Authorization: Basic MzlDNzE5NzUtODg5Ny00NkU4LUIyQkEtNzM2M0ZCODI3QUE2OjczQkQ0NTlFLTQ5RTgtNDk3QS1CQUQzLTc0MTJDRkM2NzU4OA==' \

--header 'Content-Type: text/plain' \

--data-raw '[

{"ItemID":"EDDEP29","ItemResponseOID":"Never","Order":1},

{"ItemID":"EDDEP36","ItemResponseOID":"Never","Order":2},

{"ItemID":"EDDEP17","ItemResponseOID":"Never","Order":3},

{"ItemID":"EDDEP26","ItemResponseOID":"Never","Order":4}

]'

 

Response

{

    "EngineAssembly""MSS.PSEREngine",

    "EngineType""MSS.Engines.CATEngineGRM_ExtremeResponses",

    "Theta""-1.33227641559178",

    "StdError""0.548094902330281",

    "T-Score""37",

    "SError""5",

    "Items": []

}

 

 

Request

curl --location --request POST 'http://localhost/ac_api/2014-01/StatelessParticipants/96FE494D-F176-4EFB-A473-2AB406610626.json?BodyParam=true&EngineAssembly=MSS.PSEREngine&EngineType=MSS.Engines.CATEngineGRM_ExtremeResponses&Direction=Lower is better&ExtremeResponses=3' \

--header 'Authorization: Basic MzlDNzE5NzUtODg5Ny00NkU4LUIyQkEtNzM2M0ZCODI3QUE2OjczQkQ0NTlFLTQ5RTgtNDk3QS1CQUQzLTc0MTJDRkM2NzU4OA==' \

--header 'Content-Type: text/plain' \

--data-raw '[

{"ItemID":"EDDEP29","ItemResponseOID":"Never","Order":1},

{"ItemID":"EDDEP36","ItemResponseOID":"Never","Order":2},

{"ItemID":"EDDEP17","ItemResponseOID":"Never","Order":3}

]'

 

Response

{

    "EngineAssembly""MSS.PSEREngine",

    "EngineType""MSS.Engines.CATEngineGRM_ExtremeResponses",

    "Theta""-1.25968657212247",

    "StdError""0.563162164074557",

    "T-Score""37",

    "SError""6",

    "Items": []

}