Class: DaVinciDTRTestKit::DTRFullEHRV220AdaptiveQuestionnairesCompletedTest
- Inherits:
-
Inferno::Test
- Object
- Inferno::Test
- DaVinciDTRTestKit::DTRFullEHRV220AdaptiveQuestionnairesCompletedTest
- Defined in:
- lib/davinci_dtr_test_kit/full_ehr/v2.2.0/interaction/adaptive_questionnaires_completed_test.rb
Constant Summary
Constants included from ShortCircuitInteractionVerification
ShortCircuitInteractionVerification::DEFAULT_SHORT_CIRCUIT_BAD_MESSAGE, ShortCircuitInteractionVerification::DEFAULT_SHORT_CIRCUIT_OK_MESSAGE, ShortCircuitInteractionVerification::SHORT_CIRCUIT_ADAPTIVE_MESSAGE
Instance Method Summary collapse
- #adaptive_questionnaire_canonicals ⇒ Object
-
#completed_contained_questionnaire(request) ⇒ Object
Returns the contained Questionnaire from a $next-question response's QuestionnaireResponse, but only when Inferno marked that QuestionnaireResponse
completed-- an in-progress adaptive workflow hasn't finished yet. - #completed_questionnaire_canonicals ⇒ Object
- #nq_requests_to_analyze ⇒ Object
- #qp_requests_to_analyze ⇒ Object
- #target_nq_tags ⇒ Object
- #target_qp_tags ⇒ Object
Methods included from QuestionnaireHelper
#adaptive_questionnaire?, #contained_questionnaire_from_questionnaire_response, #no_questionnaires_returned?, #questionnaire_canonical_url, #questionnaire_display, #questionnaire_from_next_question_output_parameters, #questionnaire_from_package_bundle, #questionnaire_package_bundles, #questionnaire_package_output_parameters_from_operation_responses, #questionnaire_response_from_next_question_request, #questionnaire_response_from_next_question_response, #questionnaires_from_operation_response_parameters, #questionnaires_from_operation_responses, #questionnaires_from_questionnaire_package_output_parameters
Methods included from ShortCircuitInteractionVerification
#check_for_adaptive_short_circuit, #check_for_short_circuit, #clear_adaptive_short_circuit_flag, #clear_short_circuit_flag, #short_circuit_adaptive_validation_tests, #short_circuit_fail, #short_circuit_omit, #short_circuit_pass, #short_circuit_skip, #short_circuit_validation_tests
Methods included from MultiRequestMessageHelper
#add_request_message, #parse_fhir_request_entity, #request_prefix, #requests_with_errors_prefix
Methods included from URLs
#base_url, #ehr_authorize_url, #ehr_token_url, #fhir_base_url, #next_url, #payer_token_url, #questionnaire_package_url, #questionnaire_response_url, #registration_url, #resume_fail_url, #resume_pass_url, #suite_id, #supported_payer_url, #token_url, #udap_discovery_url
Instance Method Details
#adaptive_questionnaire_canonicals ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/davinci_dtr_test_kit/full_ehr/v2.2.0/interaction/adaptive_questionnaires_completed_test.rb', line 43 def adaptive_questionnaire_canonicals @adaptive_questionnaire_canonicals ||= qp_requests_to_analyze.each_with_object([]) do |request, adaptive_questionnaires| request_parameters = FHIR.from_contents(request.response_body) next unless request_parameters.is_a?(FHIR::Parameters) adaptive_questionnaires.concat( questionnaires_from_questionnaire_package_output_parameters(request_parameters, include_standard: false) .map { |questionnaire| questionnaire_canonical_url(questionnaire) } ) rescue JSON::ParserError next end end |
#completed_contained_questionnaire(request) ⇒ Object
Returns the contained Questionnaire from a $next-question response's QuestionnaireResponse,
but only when Inferno marked that QuestionnaireResponse completed -- an in-progress adaptive
workflow hasn't finished yet.
73 74 75 76 77 78 79 80 |
# File 'lib/davinci_dtr_test_kit/full_ehr/v2.2.0/interaction/adaptive_questionnaires_completed_test.rb', line 73 def completed_contained_questionnaire(request) response_body = FHIR.from_contents(request.response_body) response_questionnaire_response = questionnaire_response_from_next_question_response(response_body) return nil unless response_questionnaire_response.present? return nil unless response_questionnaire_response.status == 'completed' contained_questionnaire_from_questionnaire_response(response_questionnaire_response) end |
#completed_questionnaire_canonicals ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/davinci_dtr_test_kit/full_ehr/v2.2.0/interaction/adaptive_questionnaires_completed_test.rb', line 58 def completed_questionnaire_canonicals @completed_questionnaire_canonicals ||= nq_requests_to_analyze.each_with_object([]) do |request, completed_questionnaires| contained_questionnaire = completed_contained_questionnaire(request) next unless contained_questionnaire.present? completed_questionnaires << questionnaire_canonical_url(contained_questionnaire) rescue JSON::ParserError next end end |
#nq_requests_to_analyze ⇒ Object
39 40 41 |
# File 'lib/davinci_dtr_test_kit/full_ehr/v2.2.0/interaction/adaptive_questionnaires_completed_test.rb', line 39 def nq_requests_to_analyze @nq_requests_to_analyze ||= load_tagged_requests(*) end |
#qp_requests_to_analyze ⇒ Object
35 36 37 |
# File 'lib/davinci_dtr_test_kit/full_ehr/v2.2.0/interaction/adaptive_questionnaires_completed_test.rb', line 35 def qp_requests_to_analyze @qp_requests_to_analyze ||= load_tagged_requests(*) end |
#target_nq_tags ⇒ Object
28 29 30 31 32 33 |
# File 'lib/davinci_dtr_test_kit/full_ehr/v2.2.0/interaction/adaptive_questionnaires_completed_test.rb', line 28 def = [CLIENT_NEXT_TAG] << config.[:dtr_workflow_tag] if config.[:dtr_workflow_tag].present? end |
#target_qp_tags ⇒ Object
21 22 23 24 25 26 |
# File 'lib/davinci_dtr_test_kit/full_ehr/v2.2.0/interaction/adaptive_questionnaires_completed_test.rb', line 21 def = [QUESTIONNAIRE_PACKAGE_TAG] << config.[:dtr_workflow_tag] if config.[:dtr_workflow_tag].present? end |