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": []
}