Class: DaVinciDTRTestKit::DTRPayerServerV220::SmallValueSetExpansionTest
Constant Summary
QuestionnaireOperationValidation::QUESTIONNAIRE_PACKAGE_BUNDLE_PROFILE, QuestionnaireOperationValidation::QUESTIONNAIRE_PACKAGE_PARAMETER_PROFILE
Instance Method Summary
collapse
#add_request_message, #parse_fhir_request_entity, #request_prefix, #requests_with_errors_prefix
#expansion_code_identifier, #expansion_timestamp_error, #inactive_code_error, #inactive_codes_in, #inactive_expansion_codes, #value_set_expansion_current?, #value_set_expansion_errors
#check_libraries, #check_referenced_libraries, #depends_on_library_canonicals, #evaluate_library, #extension_presence, #extract_bundles_from_parameter, #extract_libraries_from_bundles, #extract_questionnaire_bundles, #extract_questionnaires_from_bundles, #library_canonical, #library_canonicals, #library_contains_cql?, #library_contains_elm?, #library_names, #perform_questionnaire_package_response_validation, #referenced_library_canonicals, #reset_library_tracking
Instance Method Details
#expansion_entry_count(contains) ⇒ Object
101
102
103
104
105
106
107
|
# File 'lib/davinci_dtr_test_kit/server/v2.2.0/value_set_expand_support/small_value_set_expansion_test.rb', line 101
def expansion_entry_count(contains)
return 0 if contains.blank?
contains.sum do |entry|
1 + expansion_entry_count(entry.contains)
end
end
|
#expansion_sizes_by_url ⇒ Object
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/davinci_dtr_test_kit/server/v2.2.0/value_set_expand_support/small_value_set_expansion_test.rb', line 64
def expansion_sizes_by_url
load_tagged_requests(VALUE_SET_EXPAND_TAG).filter_map do |request|
url = value_set_url_from_expand_request(request)
next if url.blank?
expanded_value_set = FHIR.from_contents(request.response_body)
next unless expanded_value_set.is_a?(FHIR::ValueSet) &&
expanded_value_set.expansion.present?
[url, expansion_entry_count(expanded_value_set.expansion.contains)]
rescue JSON::ParserError, FHIR::ClientException
nil
end.to_h
end
|
#value_set_compose_contains_only_codes?(value_set) ⇒ Boolean
89
90
91
92
93
94
95
96
97
98
99
|
# File 'lib/davinci_dtr_test_kit/server/v2.2.0/value_set_expand_support/small_value_set_expansion_test.rb', line 89
def value_set_compose_contains_only_codes?(value_set)
compose = value_set.compose
return false if compose.blank? || compose.exclude.present?
compose.include.present? &&
compose.include.all? do |include|
include.concept.present? &&
include.filter.blank? &&
include.valueSet.blank?
end
end
|
#value_set_expanded?(value_set) ⇒ Boolean
80
81
82
83
|
# File 'lib/davinci_dtr_test_kit/server/v2.2.0/value_set_expand_support/small_value_set_expansion_test.rb', line 80
def value_set_expanded?(value_set)
value_set_expansion_contains_codes?(value_set) ||
value_set_compose_contains_only_codes?(value_set)
end
|
#value_set_expansion_contains_codes?(value_set) ⇒ Boolean
85
86
87
|
# File 'lib/davinci_dtr_test_kit/server/v2.2.0/value_set_expand_support/small_value_set_expansion_test.rb', line 85
def value_set_expansion_contains_codes?(value_set)
value_set.expansion&.contains.present?
end
|
#value_set_url_from_expand_request(request) ⇒ Object
109
110
111
112
113
114
115
116
117
|
# File 'lib/davinci_dtr_test_kit/server/v2.2.0/value_set_expand_support/small_value_set_expansion_test.rb', line 109
def value_set_url_from_expand_request(request)
parameters = FHIR.from_contents(request.request_body)
url = parameters.parameter
.find { |parameter| parameter.name == 'url' }
&.valueUri
url&.split('|', 2)&.first
end
|