Structured Data Capture 2.5.0 - Edition 3(STU), For Comment 2018Sep Ballot

This page is part of the Structured Data Capture FHIR IG (v2.5.0: STU 3 Ballot 1) based on FHIR v3.5.0. The current version which supercedes this version is 3.0.0. For a full list of available versions, see the Directory of published versions

Adaptive Forms follow an architecture where a questionnnaire is not pre-defined, rather the questionnaire is dynamically developed based on previous answers to questions chosen from an item bank of questions. This type of administration is also known as Computerized Adaptive Testing (CAT), or administration of Adaptive Questionnaires. In these cases a set of questions typically 4 to 12 are administered from a question bank containing a large number of questions. The selected questions is based on Item Response Theory (IRT) algorithms which look at the answers provided and select the next question based on IRT algorithms. The questions are selected to quickly obtain the necessary outcomes (e.g assessing a person's physical function) using fewer questions rather than administer a large question bank. These small set of questions still provide the necessary confidence and scores required to interpret the data appropriately as if the whole questionnaire was administered.

The section explains the process of administering an Adaptive Questionnaire and the actors (systems) involved. Fig 1 below shows the abstract model of the administration process.

Adaptive Questionnaire Administration Abstract Model

Figure 1: Adaptive Questionnaire Administration Abstract Model

External Assessment Center: The External IRT based Assessment Center is a system that is capable of administering a questionnaire based on IRT algorithms. The data that is necessary for the administration is only the initial item bank. The External Assessment Center does not need to know about the specific patient identity or any other clinical information. The Assessment Center will use alogorithms recommended by the Questionnaire designer to determine how to administer the questionnaire.

Patient Facing Administration App: The Patient Facing Administration App is the actual app that is being used to present the questions to the patient. It can be an EHR, a SMART on FHIR App, an Independent PRO Administration App.

Data Flow Description for Adaptive Questionnaires Administration As shown in Figure 1 above, the Patient Facing Administration App (EHR, Care Delivery System, Independent App or SMART on FHIR App) acts as the client and initiates the administration process.
In the first step, the available adaptive questionnaires are loaded into the Assessment Center. The following are the steps that take place during the administration along with hand crafted request/response examples.

  • Step 2:The administration is initiated with a specific Adaptive Questionnaire.

    Request
    POST [BaseURL]/Questionnaire/[id]/next-q
    Request Body
                   
          
          { // start body
    			    "resourceType": "QuestionnaireResponse",
    			    "meta": {
    			      "profile": [
    			        "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaireresponse-adapt""
    			      ],
    			     },// meta
    			     
    			    // contained Questionnaire
    			    "contained": [
    			      {
    			        "resourceType": "Questionnaire",
    			        "id": "Id of the Questionnaire Instance on which operation is being invoked",
    			        "meta": {
    			          "profile": [
    			            "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-adapt"
    			          ]
    			        },
    			        "identifier": "Physical Function 2.0"
    			        
    			        //no items since initiating the adaptive questionnaire
    			      ...
    			      }
        			    ], // Contained Questionnaire
        			    
    			    //special element indicating that the questionnaire is dynamic
    			    "questionnaire": "http://hl7.org/fhir/us/sdc/StructureDefinition/sdc-questionnaire-dynamic"
    			   
        				"status": "in-progress",
       				...
      				 //no items since is just getting started
    
      }// end body
      
                

  • Step 3:The Assessment Center responds to the start request with a Questionnaire and the first item for administration.
    Response Body
                   
    
      { // start response body 
    			    "resourceType": "QuestionnaireResponse",
    			    "meta": {
    			      "profile": [
    			        "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaireresponse-adapt"
    			      ],
    			     },// meta
    			     
    			    // contained Questionnaire
    			    "contained": [
    			      {
    			        "resourceType": "Questionnaire",
    			        "id": "Id of the Questionnaire Instance on which operation is being invoked",
    			        "meta": {
    			          "profile": [
    			            "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-adapt"
    			          ]
    			        },
    			        "identifier": "Physical Function 2.0"
    			        
    			        //First Item being sent back
    			        "item": [
    			           {
    			              "linkId": "1.1" // unique id of the question within the questionnaire 
    			              "code" : {
    			                "system": "http://loinc.org",
    			                "code": "LA1",
    			                }
    			                "text": "Are you able to walk for 30 minutes ?",
    			                "type": "question",
    			                "answerValueSet": "http://loinc.org/LA1234"
    			                "answerOption": [
    			                    "valueCoding": {
    			                        
    			                    }
    			                ] // answer option              
    			           } // item
    			        
    			        ]
    			      
    			      }
        			    ], // Contained Questionnaire
    
      } // end response body
     
                

  • Step 4:The Patient Facing Administration App will then display the question to the user and collect the response.
  • Step 5:The Patient Facing Administration App will then send the answer to the Assessment Center and ask for the next question. The Assessment Center will use the answer to determine the next question based on the algorithm and respond back with the next question until the assessment is done.

    Request
    POST [BaseURL]/Questionnaire/[id]/next-q
    Request Body
                   
          
          { // start body
    			    "resourceType": "QuestionnaireResponse",
    			    "meta": {
    			      "profile": [
    			        "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaireresponse-adapt"
    			      ],
    			     },// meta
    			     
    			    // contained Questionnaire
    			    "contained": [
    			      {
    			        "resourceType": "Questionnaire",
    			        "id": "Id of the Questionnaire Instance on which operation is being invoked",
    			        "meta": {
    			          "profile": [
    			            "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-adapt"
    			          ]
    			        },
    			        "identifier": "Physical Function 2.0"
    			        
    			        // List items here that have been already administered. 
    			        "item": [
    			           {
    			              "linkId": "1.1" // unique id of the question within the questionnaire 
    			              "code" : {
    			                "system": "http://loinc.org",
    			                "code": "LA1",
    			                }
    			                "text": "Are you able to walk for 30 minutes ?",
    			                "type": "question",
    			                "answerValueSet": "http://loinc.org/LA1234"
    			                "answerOption": [
    			                    "valueCoding": {
    			                        
    			                    }
    			                ] // answer option              
    			           } // item
    			      }
        			    ], // Contained Questionnaire
        			    
    			    //references the contained Questionnaire
    			    "questionnaire": "http://hl7.org/fhir/us/sdc/StructureDefinition/sdc-questionnaire-dynamic"
    			   
        				"status": "in-progress",
       				...
       				
       				//First Item being sent back with answer to be used to determine completeness or next question.
    			        "item": [
    			           {
    			              "linkId": "1.1" // unique id of the question within the questionnaire 
    			              "code" : {
    			                "system": "http://loinc.org",
    			                "code": "LA1",
    			                }
    			                "text": "Are you able to walk for 30 minutes ?",
    			                "type": "question",
    			                "answerValueSet": "http://loinc.org/LA1234"
    			                "answerOption": [
    			                    "valueCoding": {
    			                        "system": "http://loinc.org",
    			                        "code": "LA1234"
    			                    }
    			                ] // answer option              
    			           } // item
      				 
    
      }// end body
      
                

    Response Body
                   
          
          { // start body
    			    "resourceType": "QuestionnaireResponse",
    			    "meta": {
    			      "profile": [
    			        "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaireresponse-adapt"
    			      ],
    			     },// meta
    			     
    			    // contained Questionnaire
    			    "contained": [
    			      {
    			        "resourceType": "Questionnaire",
    			        "id": "Id of the Questionnaire Instance on which operation is being invoked",
    			        "meta": {
    			          "profile": [
    			            "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-adapt"
    			          ]
    			        },
    			        "identifier": "Physical Function 2.0"
    			        
    			        // Items already administered. 
    			        "item": [
    			           {
    			              "linkId": "1.1" // unique id of the question within the questionnaire 
    			              "code" : {
    			                "system": "http://loinc.org",
    			                "code": "LA1",
    			                }
    			                "text": "Are you able to walk for 30 minutes ?",
    			                "type": "question",
    			                "answerValueSet": "http://loinc.org/LA1234"
    			                "answerOption": [
    			                    "valueCoding": {
    			                        
    			                    }
    			                ] // answer option              
    			           } // item
    			           
    			           // New Item
    			           "item": [
    			           {
    			              "linkId": "1.2" // unique id of the question within the questionnaire 
    			              "code" : {
    			                "system": "http://loinc.org",
    			                "code": "LA2",
    			                }
    			                "text": "Are you able to lift a chair to move from one room to another ?",
    			                "type": "question",
    			                "answerValueSet": "http://loinc.org/LA1234"
    			                "answerOption": [
    			                    "valueCoding": {
    			                        
    			                    }
    			                ] // answer option              
    			           } // item
    			      }
        			    ], // Contained Questionnaire
        			    
    			    //references the contained Questionnaire
    			    "questionnaire": "http://hl7.org/fhir/us/sdc/StructureDefinition/sdc-questionnaire-dynamic"
    			   
        				"status": "in-progress",
       				...
       				
       				//First Item that was sent back with answer when requesting next question.
    			        "item": [
    			           {
    			              "linkId": "1.1" // unique id of the question within the questionnaire 
    			              "code" : {
    			                "system": "http://loinc.org",
    			                "code": "LA1",
    			                }
    			                "text": "Are you able to walk for 30 minutes ?",
    			                "type": "question",
    			                "answerValueSet": "http://loinc.org/LA1234"
    			                "answerOption": [
    			                    "valueCoding": {
    			                        "system": "http://loinc.org",
    			                        "code": "LA1234"
    			                    }
    			                ] // answer option              
    			           } // item
      				 
    
      }// end body
      
                

  • Step 4 is repeated as long as new questions are received and the status is "in-progress"

  • Step 6:If the Assessment Center determines that the assessment is done, it will respond with the final results which will contain all the questions that were answered, along with the answers, the individual scores and the overall score.
    Request
    POST [BaseURL]/Questionnaire/[id]/next-q
    Response Body with Completed Status indicating completion of Administration
                   
          
          { // start body
    			    "resourceType": "QuestionnaireResponse",
    			    "meta": {
    			      "profile": [
    			        "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaireresponse-adapt"
    			      ],
    			     },// meta
    			     
    			     
    			    // contained Questionnaire
    			    "contained": [
    			      {
    			        "resourceType": "Questionnaire",
    			        "id": "Id of the Questionnaire Instance on which operation is being invoked",
    			        "meta": {
    			          "profile": [
    			            "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-adapt"
    			          ]
    			        },
    			        "identifier": "Physical Function 2.0"
    			        
    			        // Items already administered. 
    			        "item": [
    			           {
    			              "linkId": "1.1" // unique id of the question within the questionnaire 
    			              "code" : {
    			                "system": "http://loinc.org",
    			                "code": "LA1",
    			                }
    			                "text": "Are you able to walk for 30 minutes ?",
    			                "type": "question",
    			                "answerValueSet": "http://loinc.org/LA1234"
    			                "answerOption": [
    			                    "valueCoding": {
    			                        
    			                    }
    			                ] // answer option              
    			           } // item
    			           
    			           "item": [
    			           {
    			              "linkId": "1.2" // unique id of the question within the questionnaire 
    			              "code" : {
    			                "system": "http://loinc.org",
    			                "code": "LA2",
    			                }
    			                "text": "Are you able to lift a chair to move from one room to another ?",
    			                "type": "question",
    			                "answerValueSet": "http://loinc.org/LA1234"
    			                "answerOption": [
    			                    "valueCoding": {
    			                        
    			                    }
    			                ] // answer option              
    			           } // item
    			           
    			           //No New Item
    			      }
        			    ], // Contained Questionnaire
        			    
    			    //references the contained Questionnaire
    			    "questionnaire": "http://hl7.org/fhir/us/sdc/StructureDefinition/sdc-questionnaire-dynamic"
    			   
    			    //Completed Status
        				"status": "completed",
       				...
       				
       				//Administered items with answers
    			        "item": [
    			           {
    			              "linkId": "1.1" // unique id of the question within the questionnaire 
    			              "code" : {
    			                "system": "http://loinc.org",
    			                "code": "LA1",
    			                }
    			                "text": "Are you able to walk for 30 minutes ?",
    			                "type": "question",
    			                "answerValueSet": "http://loinc.org/LA1234"
    			                "answerOption": [
    			                    "valueCoding": {
    			                        "system": "http://loinc.org",
    			                        "code": "LA1234"
    			                    }
    			                ] // answer option              
    			           } // item
      				 
    
    					"item": [
    			           {
    			              "linkId": "1.2" // unique id of the question within the questionnaire 
    			              "code" : {
    			                "system": "http://loinc.org",
    			                "code": "LA2",
    			                }
    			                "text": "Are you able to lift a chair to move from one room to another ?",
    			                "type": "question",
    			                "answerValueSet": "http://loinc.org/LA1234"
    			                "answerOption": [
    			                    "valueCoding": {
    			                        "system": "http://loinc.org",
    			                        "code": "LA3534"
    			                    }
    			                ] // answer option              
    			           } // item
    			           
    			          // Since the questionnaire is completed, there will be a new item with the overall scores.
    			           "item": [
    			           {
    			              "linkId": "1.2" // unique id of the question within the questionnaire 
    			              "code" : {
    			                "system": "http://loinc.org",
    			                "code": "Score",
    			                }
    			                "text": "OverallScore",
    			                "type": "hidden", // IF THE SCORE is not to be displayed to user 
    			                "readOnly" : "true",
    			                "answerOption": [ 
    			                   { "valueDecimal": "123.45"}, // Score
    			                   { "valueDecimal": "0.95" } // Confidence
    			                ] // answer option              
    			           } // item
     	 }// end body