Developer Guide

A discussion about each API endpoint can be found at API walk-through

How to administer a stateless assessment Stateless Assessment

How to customize a stateless assessment Stateless Customization

New Stopping Rules for Selected PROMIS CATs New Stopping Rules

How to localize a form in the API Localize Forms

Form(s) endpoint and LOINC coding.

Installation instructions

Verify/Turn on the Windows features that are displayed below.



Create an Application Pool for the API application.



Add an ASP.NET application to the website and assign the pool to the app. *Note the application needs to be below the root website



Verify the database Server authentication supports both SQL Server and Windows Authentication mode



Installation Troubleshooting

When I navigate to my api instance I get the following error:



This is caused when the api application is running under an app Pool set to .NET v2.0.50727 instead of .NET 4.0.30319


When I navigate to my api instance I get the following error:



.NET 4.0 is not properly registered on your IIS.
using the command below, depending on the OS (64 or 32)
Go to cmd and type this:
for x64 O.S: %windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir
for x32 O.S: %windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -ir


How to upgrade to the current release for instances more than one release behind

If you are upgrading and are more than one release behind the current version, then the quickest way to upgrade is:

1.) Restore the provided database (\db\IRT_API_DISTR.bak) on the same server with a different name. You could modify the restore_db.sql script to accomplish this.

2.) Add the current sql user to the new database and add it to the API_Users role. This is similar to the provided db_User.sql without the first command that creates the user on the server. You will need to update the USE statement for the correct db name.

3.) Move over the dbo.Registration record(s) to the new database.

4.) Update the web.config for the new database.

If you are using statefull endponts (i.e. Assessments, Participants) then you will also have to move the data in the dbo.State and dbo.Results tables.

Follow the instructions in the README for the website, basically copy and paste (make sure not to foget to update the web.config)


Result Interpretation

Do you have population based norms for T-Scores?

A lookup table for selected norms is included in /docs/TScore_Percentile.xlsx.
Percentiles are included based on gender and age groups.

Illness Impact Measures

Administering Illness Impact measures are different than other measures because 3 items are presented for each request

Illness Impact measures are archived, but they still can be administered, by using the FormOID listed below:

FormOIDName
3156A7E4-CC27-4504-962A-B8472CAF1A59    PROMIS Bank v1.0 - Psychosocial Illness Impact Neg
D7C20FB2-8A2E-4A43-A13C-652D59006624    PROMIS Bank v1.0 - Psychosocial Illness Impact Pos
8F838F15-C9D4-4009-863B-E9B2D0C58044    PROMIS SF v1.0 - Psychosoc Illness Impact-Neg 4a
8C1DE1DA-D33E-416A-B9C1-6FBF9D150EBA    PROMIS SF v1.0 - Psychosoc Illness Impact-Neg 8a
57B119B2-F8A4-40C9-BAC3-3F1E7A8E7454    PROMIS SF v1.0 - Psychosoc Illness Impact-Pos 4a
08AB0C1F-C2F8-4DD3-98BE-6230E4B501ED    PROMIS SF v1.0 - Psychosoc Illness Impact-Pos 8a

Syntax of Illness Impact measures

You will need to present three items on the screen. The first item will be the stem and will NOT have mappings associated with it. Do not respond to this item. The next two items (i.e. 'before' and 'since' items will have itemID followed by .b .a) will have mappings and these are the two items that you will respond to.

Submitting data for Illness Impact measures

FormItemOID attributes must be posted along with ItemResponseOID and Response. Each form-data variable is piped.

An example of POSTed form-data variables is below

FormItemOID = B5E5F9BD-2915-4274-AD3E-9CFC2861B6EE|6F1440CB-20F2-457B-A7F5-8C41CDD69175
ItemResponseOID = 48E3B064-CA1E-4936-A96D-0A763392E3D6|14DD8FC6-0E01-4620-863E-D1F7672D22F4
Response = 3|3

Below is what a trace request would look like

POST /ac_api/2014-01/Participants/c720c55b-ad45-4481-a2db-5bee9db475ce.json HTTP/1.1
Host: localhost
Authorization: Basic MzlD ... A==
Cache-Control: no-cache

----WebKitFormBoundaryE19zNvXGzXaLvS5C
Content-Disposition: form-data; name="FormItemOID" B5E5F9BD-2915-4274-AD3E-9CFC2861B6EE|6F1440CB-20F2-457B-A7F5-8C41CDD69175 ----WebKitFormBoundaryE19zNvXGzXaLvS5C Content-Disposition: form-data; name="ItemResponseOID" 48E3B064-CA1E-4936-A96D-0A763392E3D6|14DD8FC6-0E01-4620-863E-D1F7672D22F4 ----WebKitFormBoundaryE19zNvXGzXaLvS5C Content-Disposition: form-data; name="Response" 3|3 ----WebKitFormBoundaryE19zNvXGzXaLvS5C