us_core_test_kit 0.6.5 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/lib/us_core_test_kit/custom_groups/base_smart_granular_scopes_group.rb +44 -12
  3. data/lib/us_core_test_kit/custom_groups/granted_granular_scopes_test.rb +61 -0
  4. data/lib/us_core_test_kit/custom_groups/screening_assessment_category_test.rb +75 -0
  5. data/lib/us_core_test_kit/custom_groups/smart_scopes_constants.rb +5 -8
  6. data/lib/us_core_test_kit/custom_groups/v6.1.0/screening_assessment_group.rb +45 -0
  7. data/lib/us_core_test_kit/custom_groups/v6.1.0/smart_granular_scopes_group.rb +94 -41
  8. data/lib/us_core_test_kit/custom_groups/v7.0.0-ballot/screening_assessment_group.rb +48 -0
  9. data/lib/us_core_test_kit/custom_groups/v7.0.0-ballot/smart_granular_scopes_group.rb +6 -0
  10. data/lib/us_core_test_kit/fhir_resource_navigation.rb +16 -1
  11. data/lib/us_core_test_kit/generated/v3.1.1/metadata.yml +3 -0
  12. data/lib/us_core_test_kit/generated/v3.1.1/patient/metadata.yml +3 -0
  13. data/lib/us_core_test_kit/generated/v3.1.1/us_core_test_suite.rb +5 -4
  14. data/lib/us_core_test_kit/generated/v4.0.0/metadata.yml +3 -0
  15. data/lib/us_core_test_kit/generated/v4.0.0/patient/metadata.yml +3 -0
  16. data/lib/us_core_test_kit/generated/v4.0.0/us_core_test_suite.rb +5 -4
  17. data/lib/us_core_test_kit/generated/v5.0.1/condition_encounter_diagnosis/metadata.yml +1 -0
  18. data/lib/us_core_test_kit/generated/v5.0.1/condition_problems_health_concerns/metadata.yml +1 -0
  19. data/lib/us_core_test_kit/generated/v5.0.1/metadata.yml +8 -0
  20. data/lib/us_core_test_kit/generated/v5.0.1/patient/metadata.yml +4 -0
  21. data/lib/us_core_test_kit/generated/v5.0.1/questionnaire_response/metadata.yml +2 -0
  22. data/lib/us_core_test_kit/generated/v5.0.1/us_core_test_suite.rb +5 -4
  23. data/lib/us_core_test_kit/generated/v6.1.0/condition_encounter_diagnosis/metadata.yml +23 -20
  24. data/lib/us_core_test_kit/generated/v6.1.0/condition_granular_scope1_group.rb +24 -20
  25. data/lib/us_core_test_kit/generated/v6.1.0/condition_problems_health_concerns/metadata.yml +1 -0
  26. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_granular_scope_read_test.rb +32 -0
  27. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/{condition_patient_abatement_date_granular_scope_test.rb → condition_patient_abatement_date_granular_scope_search_test.rb} +5 -5
  28. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/{condition_patient_asserted_date_granular_scope_test.rb → condition_patient_asserted_date_granular_scope_search_test.rb} +5 -5
  29. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/{condition_patient_category_clinical_status_granular_scope_test.rb → condition_patient_category_clinical_status_granular_scope_search_test.rb} +5 -5
  30. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/{condition_patient_category_encounter_granular_scope_test.rb → condition_patient_category_encounter_granular_scope_search_test.rb} +5 -5
  31. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/{condition_patient_category_granular_scope_test.rb → condition_patient_category_granular_scope_search_test.rb} +5 -5
  32. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/{condition_patient_clinical_status_granular_scope_test.rb → condition_patient_clinical_status_granular_scope_search_test.rb} +5 -5
  33. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/{condition_patient_code_granular_scope_test.rb → condition_patient_code_granular_scope_search_test.rb} +5 -5
  34. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/{condition_patient_granular_scope_test.rb → condition_patient_granular_scope_search_test.rb} +5 -5
  35. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/{condition_patient_onset_date_granular_scope_test.rb → condition_patient_onset_date_granular_scope_search_test.rb} +5 -5
  36. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/{condition_patient_recorded_date_granular_scope_test.rb → condition_patient_recorded_date_granular_scope_search_test.rb} +5 -5
  37. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/metadata.yml +25 -22
  38. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/metadata.yml +14 -12
  39. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/observation_granular_scope_read_test.rb +32 -0
  40. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/{observation_patient_category_date_granular_scope_test.rb → observation_patient_category_date_granular_scope_search_test.rb} +5 -5
  41. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/{observation_patient_category_granular_scope_test.rb → observation_patient_category_granular_scope_search_test.rb} +5 -5
  42. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/{observation_patient_category_status_granular_scope_test.rb → observation_patient_category_status_granular_scope_search_test.rb} +5 -5
  43. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/{observation_patient_code_date_granular_scope_test.rb → observation_patient_code_date_granular_scope_search_test.rb} +5 -5
  44. data/lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/{observation_patient_code_granular_scope_test.rb → observation_patient_code_granular_scope_search_test.rb} +5 -5
  45. data/lib/us_core_test_kit/generated/v6.1.0/granular_scopes1_group.rb +5 -1
  46. data/lib/us_core_test_kit/generated/v6.1.0/metadata.yml +43 -36
  47. data/lib/us_core_test_kit/generated/v6.1.0/observation_granular_scope1_group.rb +15 -11
  48. data/lib/us_core_test_kit/generated/v6.1.0/observation_lab/metadata.yml +12 -10
  49. data/lib/us_core_test_kit/generated/v6.1.0/patient/metadata.yml +5 -0
  50. data/lib/us_core_test_kit/generated/v6.1.0/questionnaire_response/metadata.yml +2 -0
  51. data/lib/us_core_test_kit/generated/v6.1.0/us_core_test_suite.rb +9 -6
  52. data/lib/us_core_test_kit/generated/v7.0.0-ballot/condition_encounter_diagnosis/metadata.yml +23 -20
  53. data/lib/us_core_test_kit/generated/v7.0.0-ballot/condition_granular_scope1_group.rb +22 -20
  54. data/lib/us_core_test_kit/generated/v7.0.0-ballot/condition_granular_scope2_group.rb +22 -20
  55. data/lib/us_core_test_kit/generated/v7.0.0-ballot/condition_problems_health_concerns/metadata.yml +1 -0
  56. data/lib/us_core_test_kit/generated/v7.0.0-ballot/diagnostic_report_granular_scope1_group.rb +14 -12
  57. data/lib/us_core_test_kit/generated/v7.0.0-ballot/diagnostic_report_granular_scope2_group.rb +14 -12
  58. data/lib/us_core_test_kit/generated/v7.0.0-ballot/diagnostic_report_note/metadata.yml +14 -12
  59. data/lib/us_core_test_kit/generated/v7.0.0-ballot/document_reference/metadata.yml +16 -14
  60. data/lib/us_core_test_kit/generated/v7.0.0-ballot/document_reference_granular_scope1_group.rb +16 -14
  61. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_granular_scope_read_test.rb +32 -0
  62. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/{condition_patient_abatement_date_granular_scope_test.rb → condition_patient_abatement_date_granular_scope_search_test.rb} +5 -5
  63. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/{condition_patient_asserted_date_granular_scope_test.rb → condition_patient_asserted_date_granular_scope_search_test.rb} +5 -5
  64. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/{condition_patient_category_clinical_status_granular_scope_test.rb → condition_patient_category_clinical_status_granular_scope_search_test.rb} +5 -5
  65. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/{condition_patient_category_encounter_granular_scope_test.rb → condition_patient_category_encounter_granular_scope_search_test.rb} +5 -5
  66. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/{condition_patient_category_granular_scope_test.rb → condition_patient_category_granular_scope_search_test.rb} +5 -5
  67. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/{condition_patient_clinical_status_granular_scope_test.rb → condition_patient_clinical_status_granular_scope_search_test.rb} +5 -5
  68. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/{condition_patient_code_granular_scope_test.rb → condition_patient_code_granular_scope_search_test.rb} +5 -5
  69. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/{condition_patient_granular_scope_test.rb → condition_patient_granular_scope_search_test.rb} +5 -5
  70. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/{condition_patient_onset_date_granular_scope_test.rb → condition_patient_onset_date_granular_scope_search_test.rb} +5 -5
  71. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/{condition_patient_recorded_date_granular_scope_test.rb → condition_patient_recorded_date_granular_scope_search_test.rb} +5 -5
  72. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/metadata.yml +23 -20
  73. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/diagnostic_report_granular_scope_read_test.rb +32 -0
  74. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/{diagnostic_report_patient_category_date_granular_scope_test.rb → diagnostic_report_patient_category_date_granular_scope_search_test.rb} +5 -5
  75. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/{diagnostic_report_patient_category_granular_scope_test.rb → diagnostic_report_patient_category_granular_scope_search_test.rb} +5 -5
  76. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/{diagnostic_report_patient_code_date_granular_scope_test.rb → diagnostic_report_patient_code_date_granular_scope_search_test.rb} +5 -5
  77. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/{diagnostic_report_patient_code_granular_scope_test.rb → diagnostic_report_patient_code_granular_scope_search_test.rb} +5 -5
  78. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/{diagnostic_report_patient_granular_scope_test.rb → diagnostic_report_patient_granular_scope_search_test.rb} +5 -5
  79. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/{diagnostic_report_patient_status_granular_scope_test.rb → diagnostic_report_patient_status_granular_scope_search_test.rb} +5 -5
  80. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/metadata.yml +14 -12
  81. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/document_reference_granular_scope_read_test.rb +32 -0
  82. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/{document_reference_id_granular_scope_test.rb → document_reference_id_granular_scope_search_test.rb} +5 -5
  83. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/{document_reference_patient_category_date_granular_scope_test.rb → document_reference_patient_category_date_granular_scope_search_test.rb} +5 -5
  84. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/{document_reference_patient_category_granular_scope_test.rb → document_reference_patient_category_granular_scope_search_test.rb} +5 -5
  85. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/{document_reference_patient_granular_scope_test.rb → document_reference_patient_granular_scope_search_test.rb} +5 -5
  86. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/{document_reference_patient_status_granular_scope_test.rb → document_reference_patient_status_granular_scope_search_test.rb} +5 -5
  87. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/{document_reference_patient_type_granular_scope_test.rb → document_reference_patient_type_granular_scope_search_test.rb} +5 -5
  88. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/{document_reference_patient_type_period_granular_scope_test.rb → document_reference_patient_type_period_granular_scope_search_test.rb} +5 -5
  89. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/metadata.yml +16 -14
  90. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/metadata.yml +12 -10
  91. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/observation_granular_scope_read_test.rb +32 -0
  92. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/{observation_patient_category_date_granular_scope_test.rb → observation_patient_category_date_granular_scope_search_test.rb} +5 -5
  93. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/{observation_patient_category_granular_scope_test.rb → observation_patient_category_granular_scope_search_test.rb} +5 -5
  94. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/{observation_patient_category_status_granular_scope_test.rb → observation_patient_category_status_granular_scope_search_test.rb} +5 -5
  95. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/{observation_patient_code_date_granular_scope_test.rb → observation_patient_code_date_granular_scope_search_test.rb} +5 -5
  96. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/{observation_patient_code_granular_scope_test.rb → observation_patient_code_granular_scope_search_test.rb} +5 -5
  97. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/metadata.yml +16 -14
  98. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/service_request_granular_scope_read_test.rb +32 -0
  99. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/{service_request_id_granular_scope_test.rb → service_request_id_granular_scope_search_test.rb} +5 -5
  100. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/{service_request_patient_category_authored_granular_scope_test.rb → service_request_patient_category_authored_granular_scope_search_test.rb} +5 -5
  101. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/{service_request_patient_category_granular_scope_test.rb → service_request_patient_category_granular_scope_search_test.rb} +5 -5
  102. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/{service_request_patient_code_authored_granular_scope_test.rb → service_request_patient_code_authored_granular_scope_search_test.rb} +5 -5
  103. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/{service_request_patient_code_granular_scope_test.rb → service_request_patient_code_granular_scope_search_test.rb} +5 -5
  104. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/{service_request_patient_granular_scope_test.rb → service_request_patient_granular_scope_search_test.rb} +5 -5
  105. data/lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/{service_request_patient_status_granular_scope_test.rb → service_request_patient_status_granular_scope_search_test.rb} +5 -5
  106. data/lib/us_core_test_kit/generated/v7.0.0-ballot/medication_request/metadata.yml +1 -0
  107. data/lib/us_core_test_kit/generated/v7.0.0-ballot/metadata.yml +90 -70
  108. data/lib/us_core_test_kit/generated/v7.0.0-ballot/observation_granular_scope1_group.rb +12 -10
  109. data/lib/us_core_test_kit/generated/v7.0.0-ballot/observation_granular_scope2_group.rb +12 -10
  110. data/lib/us_core_test_kit/generated/v7.0.0-ballot/observation_lab/metadata.yml +12 -10
  111. data/lib/us_core_test_kit/generated/v7.0.0-ballot/patient/metadata.yml +5 -0
  112. data/lib/us_core_test_kit/generated/v7.0.0-ballot/questionnaire_response/metadata.yml +2 -0
  113. data/lib/us_core_test_kit/generated/v7.0.0-ballot/service_request/metadata.yml +16 -14
  114. data/lib/us_core_test_kit/generated/v7.0.0-ballot/service_request_granular_scope1_group.rb +16 -14
  115. data/lib/us_core_test_kit/generated/v7.0.0-ballot/service_request_granular_scope2_group.rb +16 -14
  116. data/lib/us_core_test_kit/generated/v7.0.0-ballot/us_core_test_suite.rb +8 -5
  117. data/lib/us_core_test_kit/generator/granular_scope_group_generator.rb +7 -0
  118. data/lib/us_core_test_kit/generator/granular_scope_read_test_generator.rb +102 -0
  119. data/lib/us_core_test_kit/generator/granular_scope_resource_type_group_generator.rb +1 -1
  120. data/lib/us_core_test_kit/generator/granular_scope_test_generator.rb +4 -4
  121. data/lib/us_core_test_kit/generator/group_metadata.rb +1 -1
  122. data/lib/us_core_test_kit/generator/must_support_metadata_extractor.rb +1 -0
  123. data/lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_4.rb +3 -0
  124. data/lib/us_core_test_kit/generator/must_support_metadata_extractor_us_core_5.rb +1 -0
  125. data/lib/us_core_test_kit/generator/special_cases.rb +3 -5
  126. data/lib/us_core_test_kit/generator/suite_generator.rb +14 -3
  127. data/lib/us_core_test_kit/generator.rb +2 -0
  128. data/lib/us_core_test_kit/granular_scope.rb +63 -0
  129. data/lib/us_core_test_kit/granular_scope_read_test.rb +71 -0
  130. data/lib/us_core_test_kit/{granular_scope_checker.rb → granular_scope_search_test.rb} +8 -47
  131. data/lib/us_core_test_kit/must_support_test.rb +27 -7
  132. data/lib/us_core_test_kit/primitive_type.rb +5 -0
  133. data/lib/us_core_test_kit/provenance_validator.rb +3 -4
  134. data/lib/us_core_test_kit/reference_resolution_test.rb +2 -1
  135. data/lib/us_core_test_kit/resource_search_param_checker.rb +139 -0
  136. data/lib/us_core_test_kit/search_test.rb +6 -0
  137. data/lib/us_core_test_kit/version.rb +1 -1
  138. metadata +72 -59
  139. data/lib/us_core_test_kit/generated/v6.1.0/condition_granular_scope2_group.rb +0 -43
  140. data/lib/us_core_test_kit/generated/v6.1.0/granular_scopes2_group.rb +0 -52
  141. data/lib/us_core_test_kit/generated/v6.1.0/observation_granular_scope2_group.rb +0 -32
@@ -0,0 +1,139 @@
1
+ require_relative 'fhir_resource_navigation'
2
+
3
+ module USCoreTestKit
4
+ module ResourceSearchParamChecker
5
+ include FHIRResourceNavigation
6
+
7
+ def search_param_paths(name)
8
+ paths = metadata.search_definitions[name.to_sym][:paths]
9
+ if paths.first =='class'
10
+ paths[0] = 'local_class'
11
+ end
12
+
13
+ paths
14
+ end
15
+
16
+ def element_has_valid_value?(element, include_system)
17
+ case element
18
+ when FHIR::Reference
19
+ element.reference.present?
20
+ when FHIR::CodeableConcept
21
+ if include_system
22
+ coding =
23
+ find_a_value_at(element, 'coding') { |coding| coding.code.present? && coding.system.present? }
24
+ coding.present?
25
+ else
26
+ find_a_value_at(element, 'coding.code').present?
27
+ end
28
+ when FHIR::Identifier
29
+ include_system ? element.value.present? && element.system.present? : element.value.present?
30
+ when FHIR::Coding
31
+ include_system ? element.code.present? && element.system.present? : element.code.present?
32
+ when FHIR::HumanName
33
+ (element.family || element.given&.first || element.text).present?
34
+ when FHIR::Address
35
+ (element.text || element.city || element.state || element.postalCode || element.country).present?
36
+ when FHIR::Element
37
+ false
38
+ else
39
+ true
40
+ end
41
+ end
42
+
43
+ def resource_matches_param?(resource, search_param_name, escaped_search_value, values_found = [])
44
+ search_value = unescape_search_value(escaped_search_value)
45
+ paths = search_param_paths(search_param_name)
46
+
47
+ match_found = false
48
+
49
+ paths.each do |path|
50
+ type = metadata.search_definitions[search_param_name.to_sym][:type]
51
+ values_found =
52
+ resolve_path(resource, path)
53
+ .map do |value|
54
+ if value.is_a? FHIR::Reference
55
+ value.reference
56
+ else
57
+ value
58
+ end
59
+ end
60
+
61
+ match_found =
62
+ case type
63
+ when 'Period', 'date', 'instant', 'dateTime'
64
+ values_found.any? { |date| validate_date_search(search_value, date) }
65
+ when 'HumanName'
66
+ # When a string search parameter refers to the types HumanName and Address,
67
+ # the search covers the elements of type string, and does not cover elements such as use and period
68
+ # https://www.hl7.org/fhir/search.html#string
69
+ search_value_downcase = search_value.downcase
70
+ values_found.any? do |name|
71
+ name&.text&.downcase&.start_with?(search_value_downcase) ||
72
+ name&.family&.downcase&.start_with?(search_value_downcase) ||
73
+ name&.given&.any? { |given| given.downcase.start_with?(search_value_downcase) } ||
74
+ name&.prefix&.any? { |prefix| prefix.downcase.start_with?(search_value_downcase) } ||
75
+ name&.suffix&.any? { |suffix| suffix.downcase.start_with?(search_value_downcase) }
76
+ end
77
+ when 'Address'
78
+ search_value_downcase = search_value.downcase
79
+ values_found.any? do |address|
80
+ address&.text&.downcase&.start_with?(search_value_downcase) ||
81
+ address&.city&.downcase&.start_with?(search_value_downcase) ||
82
+ address&.state&.downcase&.start_with?(search_value_downcase) ||
83
+ address&.postalCode&.downcase&.start_with?(search_value_downcase) ||
84
+ address&.country&.downcase&.start_with?(search_value_downcase)
85
+ end
86
+ when 'CodeableConcept'
87
+ # FHIR token search (https://www.hl7.org/fhir/search.html#token): "When in doubt, servers SHOULD
88
+ # treat tokens in a case-insensitive manner, on the grounds that including undesired data has
89
+ # less safety implications than excluding desired behavior".
90
+ codings = values_found.flat_map(&:coding)
91
+ if search_value.include? '|'
92
+ system = search_value.split('|').first
93
+ code = search_value.split('|').last
94
+ codings&.any? { |coding| coding.system == system && coding.code&.casecmp?(code) }
95
+ else
96
+ codings&.any? { |coding| coding.code&.casecmp?(search_value) }
97
+ end
98
+ when 'Coding'
99
+ if search_value.include? '|'
100
+ system = search_value.split('|').first
101
+ code = search_value.split('|').last
102
+ values_found.any? { |coding| coding.system == system && coding.code&.casecmp?(code) }
103
+ else
104
+ values_found.any? { |coding| coding.code&.casecmp?(search_value) }
105
+ end
106
+ when 'Identifier'
107
+ if search_value.include? '|'
108
+ values_found.any? { |identifier| "#{identifier.system}|#{identifier.value}" == search_value }
109
+ else
110
+ values_found.any? { |identifier| identifier.value == search_value }
111
+ end
112
+ when 'string'
113
+ searched_values = search_value.downcase.split(/(?<!\\\\),/).map{ |string| string.gsub('\\,', ',') }
114
+ values_found.any? do |value_found|
115
+ searched_values.any? { |searched_value| value_found.downcase.starts_with? searched_value }
116
+ end
117
+ else
118
+ # searching by patient requires special case because we are searching by a resource identifier
119
+ # references can also be URLs, so we may need to resolve those URLs
120
+ if ['subject', 'patient'].include? search_param_name.to_s
121
+ id = search_value.split('Patient/').last
122
+ possible_values = [id, "Patient/#{id}", "#{url}/Patient/#{id}"]
123
+ values_found.any? do |reference|
124
+ possible_values.include? reference
125
+ end
126
+ else
127
+ search_values = search_value.split(/(?<!\\\\),/).map { |string| string.gsub('\\,', ',') }
128
+ values_found.any? { |value_found| search_values.include? value_found }
129
+ end
130
+ end
131
+
132
+ break if match_found
133
+ end
134
+
135
+ match_found
136
+ end
137
+
138
+ end
139
+ end
@@ -1,5 +1,6 @@
1
1
  require_relative 'date_search_validation'
2
2
  require_relative 'fhir_resource_navigation'
3
+ require_relative 'resource_search_param_checker'
3
4
  require_relative 'search_test_properties'
4
5
 
5
6
  module USCoreTestKit
@@ -7,6 +8,7 @@ module USCoreTestKit
7
8
  extend Forwardable
8
9
  include DateSearchValidation
9
10
  include FHIRResourceNavigation
11
+ include ResourceSearchParamChecker
10
12
 
11
13
  def_delegators 'self.class', :metadata, :provenance_metadata, :properties
12
14
  def_delegators 'properties',
@@ -629,6 +631,8 @@ module USCoreTestKit
629
631
  element.family || element.given&.first || element.text
630
632
  when FHIR::Address
631
633
  element.text || element.city || element.state || element.postalCode || element.country
634
+ when USCoreTestKit::PrimitiveType
635
+ element.value
632
636
  else
633
637
  if metadata.version != 'v3.1.1' &&
634
638
  metadata.search_definitions[name.to_sym][:type] == 'date' &&
@@ -676,6 +680,8 @@ module USCoreTestKit
676
680
  (element.family || element.given&.first || element.text).present?
677
681
  when FHIR::Address
678
682
  (element.text || element.city || element.state || element.postalCode || element.country).present?
683
+ when USCoreTestKit::PrimitiveType
684
+ element.value.present?
679
685
  else
680
686
  true
681
687
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module USCoreTestKit
4
- VERSION = '0.6.5'
4
+ VERSION = '0.7.1'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: us_core_test_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.5
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stephen MacVicar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-04-05 00:00:00.000000000 Z
11
+ date: 2024-06-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: inferno_core
@@ -16,14 +16,14 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 0.4.2
19
+ version: 0.4.37
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 0.4.2
26
+ version: 0.4.37
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: smart_app_launch_test_kit
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -126,6 +126,8 @@ files:
126
126
  - lib/us_core_test_kit/custom_groups/clinical_note_attachment_test.rb
127
127
  - lib/us_core_test_kit/custom_groups/clinical_note_type_test.rb
128
128
  - lib/us_core_test_kit/custom_groups/data_absent_reason_group.rb
129
+ - lib/us_core_test_kit/custom_groups/granted_granular_scopes_test.rb
130
+ - lib/us_core_test_kit/custom_groups/screening_assessment_category_test.rb
129
131
  - lib/us_core_test_kit/custom_groups/smart_app_launch_group.rb
130
132
  - lib/us_core_test_kit/custom_groups/smart_ehr_launch_stu1.rb
131
133
  - lib/us_core_test_kit/custom_groups/smart_ehr_launch_stu2.rb
@@ -140,8 +142,10 @@ files:
140
142
  - lib/us_core_test_kit/custom_groups/v4.0.0/document_reference_custodian_test.rb
141
143
  - lib/us_core_test_kit/custom_groups/v5.0.1/capability_statement_group.rb
142
144
  - lib/us_core_test_kit/custom_groups/v6.1.0/capability_statement_group.rb
145
+ - lib/us_core_test_kit/custom_groups/v6.1.0/screening_assessment_group.rb
143
146
  - lib/us_core_test_kit/custom_groups/v6.1.0/smart_granular_scopes_group.rb
144
147
  - lib/us_core_test_kit/custom_groups/v7.0.0-ballot/capability_statement_group.rb
148
+ - lib/us_core_test_kit/custom_groups/v7.0.0-ballot/screening_assessment_group.rb
145
149
  - lib/us_core_test_kit/custom_groups/v7.0.0-ballot/smart_granular_scopes_group.rb
146
150
  - lib/us_core_test_kit/date_search_validation.rb
147
151
  - lib/us_core_test_kit/fhir_resource_navigation.rb
@@ -1407,7 +1411,6 @@ files:
1407
1411
  - lib/us_core_test_kit/generated/v6.1.0/condition_encounter_diagnosis/metadata.yml
1408
1412
  - lib/us_core_test_kit/generated/v6.1.0/condition_encounter_diagnosis_group.rb
1409
1413
  - lib/us_core_test_kit/generated/v6.1.0/condition_granular_scope1_group.rb
1410
- - lib/us_core_test_kit/generated/v6.1.0/condition_granular_scope2_group.rb
1411
1414
  - lib/us_core_test_kit/generated/v6.1.0/condition_problems_health_concerns/condition_problems_health_concerns_must_support_test.rb
1412
1415
  - lib/us_core_test_kit/generated/v6.1.0/condition_problems_health_concerns/condition_problems_health_concerns_patient_abatement_date_search_test.rb
1413
1416
  - lib/us_core_test_kit/generated/v6.1.0/condition_problems_health_concerns/condition_problems_health_concerns_patient_asserted_date_search_test.rb
@@ -1510,25 +1513,26 @@ files:
1510
1513
  - lib/us_core_test_kit/generated/v6.1.0/goal/goal_validation_test.rb
1511
1514
  - lib/us_core_test_kit/generated/v6.1.0/goal/metadata.yml
1512
1515
  - lib/us_core_test_kit/generated/v6.1.0/goal_group.rb
1513
- - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_abatement_date_granular_scope_test.rb
1514
- - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_asserted_date_granular_scope_test.rb
1515
- - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_category_clinical_status_granular_scope_test.rb
1516
- - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_category_encounter_granular_scope_test.rb
1517
- - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_category_granular_scope_test.rb
1518
- - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_clinical_status_granular_scope_test.rb
1519
- - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_code_granular_scope_test.rb
1520
- - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_granular_scope_test.rb
1521
- - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_onset_date_granular_scope_test.rb
1522
- - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_recorded_date_granular_scope_test.rb
1516
+ - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_granular_scope_read_test.rb
1517
+ - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_abatement_date_granular_scope_search_test.rb
1518
+ - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_asserted_date_granular_scope_search_test.rb
1519
+ - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_category_clinical_status_granular_scope_search_test.rb
1520
+ - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_category_encounter_granular_scope_search_test.rb
1521
+ - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_category_granular_scope_search_test.rb
1522
+ - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_clinical_status_granular_scope_search_test.rb
1523
+ - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_code_granular_scope_search_test.rb
1524
+ - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_granular_scope_search_test.rb
1525
+ - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_onset_date_granular_scope_search_test.rb
1526
+ - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/condition_patient_recorded_date_granular_scope_search_test.rb
1523
1527
  - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/condition/metadata.yml
1524
1528
  - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/metadata.yml
1525
- - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/observation_patient_category_date_granular_scope_test.rb
1526
- - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/observation_patient_category_granular_scope_test.rb
1527
- - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/observation_patient_category_status_granular_scope_test.rb
1528
- - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/observation_patient_code_date_granular_scope_test.rb
1529
- - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/observation_patient_code_granular_scope_test.rb
1529
+ - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/observation_granular_scope_read_test.rb
1530
+ - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/observation_patient_category_date_granular_scope_search_test.rb
1531
+ - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/observation_patient_category_granular_scope_search_test.rb
1532
+ - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/observation_patient_category_status_granular_scope_search_test.rb
1533
+ - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/observation_patient_code_date_granular_scope_search_test.rb
1534
+ - lib/us_core_test_kit/generated/v6.1.0/granular_scope_tests/observation/observation_patient_code_granular_scope_search_test.rb
1530
1535
  - lib/us_core_test_kit/generated/v6.1.0/granular_scopes1_group.rb
1531
- - lib/us_core_test_kit/generated/v6.1.0/granular_scopes2_group.rb
1532
1536
  - lib/us_core_test_kit/generated/v6.1.0/head_circumference/head_circumference_must_support_test.rb
1533
1537
  - lib/us_core_test_kit/generated/v6.1.0/head_circumference/head_circumference_patient_category_date_search_test.rb
1534
1538
  - lib/us_core_test_kit/generated/v6.1.0/head_circumference/head_circumference_patient_category_search_test.rb
@@ -1611,7 +1615,6 @@ files:
1611
1615
  - lib/us_core_test_kit/generated/v6.1.0/observation_clinical_result/observation_clinical_result_validation_test.rb
1612
1616
  - lib/us_core_test_kit/generated/v6.1.0/observation_clinical_result_group.rb
1613
1617
  - lib/us_core_test_kit/generated/v6.1.0/observation_granular_scope1_group.rb
1614
- - lib/us_core_test_kit/generated/v6.1.0/observation_granular_scope2_group.rb
1615
1618
  - lib/us_core_test_kit/generated/v6.1.0/observation_lab/metadata.yml
1616
1619
  - lib/us_core_test_kit/generated/v6.1.0/observation_lab/observation_lab_must_support_test.rb
1617
1620
  - lib/us_core_test_kit/generated/v6.1.0/observation_lab/observation_lab_patient_category_date_search_test.rb
@@ -2094,46 +2097,51 @@ files:
2094
2097
  - lib/us_core_test_kit/generated/v7.0.0-ballot/goal/goal_validation_test.rb
2095
2098
  - lib/us_core_test_kit/generated/v7.0.0-ballot/goal/metadata.yml
2096
2099
  - lib/us_core_test_kit/generated/v7.0.0-ballot/goal_group.rb
2097
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_abatement_date_granular_scope_test.rb
2098
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_asserted_date_granular_scope_test.rb
2099
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_category_clinical_status_granular_scope_test.rb
2100
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_category_encounter_granular_scope_test.rb
2101
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_category_granular_scope_test.rb
2102
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_clinical_status_granular_scope_test.rb
2103
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_code_granular_scope_test.rb
2104
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_granular_scope_test.rb
2105
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_onset_date_granular_scope_test.rb
2106
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_recorded_date_granular_scope_test.rb
2100
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_granular_scope_read_test.rb
2101
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_abatement_date_granular_scope_search_test.rb
2102
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_asserted_date_granular_scope_search_test.rb
2103
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_category_clinical_status_granular_scope_search_test.rb
2104
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_category_encounter_granular_scope_search_test.rb
2105
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_category_granular_scope_search_test.rb
2106
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_clinical_status_granular_scope_search_test.rb
2107
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_code_granular_scope_search_test.rb
2108
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_granular_scope_search_test.rb
2109
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_onset_date_granular_scope_search_test.rb
2110
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/condition_patient_recorded_date_granular_scope_search_test.rb
2107
2111
  - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/condition/metadata.yml
2108
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/diagnostic_report_patient_category_date_granular_scope_test.rb
2109
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/diagnostic_report_patient_category_granular_scope_test.rb
2110
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/diagnostic_report_patient_code_date_granular_scope_test.rb
2111
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/diagnostic_report_patient_code_granular_scope_test.rb
2112
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/diagnostic_report_patient_granular_scope_test.rb
2113
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/diagnostic_report_patient_status_granular_scope_test.rb
2112
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/diagnostic_report_granular_scope_read_test.rb
2113
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/diagnostic_report_patient_category_date_granular_scope_search_test.rb
2114
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/diagnostic_report_patient_category_granular_scope_search_test.rb
2115
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/diagnostic_report_patient_code_date_granular_scope_search_test.rb
2116
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/diagnostic_report_patient_code_granular_scope_search_test.rb
2117
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/diagnostic_report_patient_granular_scope_search_test.rb
2118
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/diagnostic_report_patient_status_granular_scope_search_test.rb
2114
2119
  - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/diagnostic_report/metadata.yml
2115
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/document_reference_id_granular_scope_test.rb
2116
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/document_reference_patient_category_date_granular_scope_test.rb
2117
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/document_reference_patient_category_granular_scope_test.rb
2118
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/document_reference_patient_granular_scope_test.rb
2119
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/document_reference_patient_status_granular_scope_test.rb
2120
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/document_reference_patient_type_granular_scope_test.rb
2121
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/document_reference_patient_type_period_granular_scope_test.rb
2120
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/document_reference_granular_scope_read_test.rb
2121
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/document_reference_id_granular_scope_search_test.rb
2122
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/document_reference_patient_category_date_granular_scope_search_test.rb
2123
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/document_reference_patient_category_granular_scope_search_test.rb
2124
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/document_reference_patient_granular_scope_search_test.rb
2125
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/document_reference_patient_status_granular_scope_search_test.rb
2126
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/document_reference_patient_type_granular_scope_search_test.rb
2127
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/document_reference_patient_type_period_granular_scope_search_test.rb
2122
2128
  - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/document_reference/metadata.yml
2123
2129
  - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/metadata.yml
2124
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/observation_patient_category_date_granular_scope_test.rb
2125
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/observation_patient_category_granular_scope_test.rb
2126
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/observation_patient_category_status_granular_scope_test.rb
2127
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/observation_patient_code_date_granular_scope_test.rb
2128
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/observation_patient_code_granular_scope_test.rb
2130
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/observation_granular_scope_read_test.rb
2131
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/observation_patient_category_date_granular_scope_search_test.rb
2132
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/observation_patient_category_granular_scope_search_test.rb
2133
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/observation_patient_category_status_granular_scope_search_test.rb
2134
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/observation_patient_code_date_granular_scope_search_test.rb
2135
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/observation/observation_patient_code_granular_scope_search_test.rb
2129
2136
  - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/metadata.yml
2130
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/service_request_id_granular_scope_test.rb
2131
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/service_request_patient_category_authored_granular_scope_test.rb
2132
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/service_request_patient_category_granular_scope_test.rb
2133
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/service_request_patient_code_authored_granular_scope_test.rb
2134
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/service_request_patient_code_granular_scope_test.rb
2135
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/service_request_patient_granular_scope_test.rb
2136
- - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/service_request_patient_status_granular_scope_test.rb
2137
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/service_request_granular_scope_read_test.rb
2138
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/service_request_id_granular_scope_search_test.rb
2139
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/service_request_patient_category_authored_granular_scope_search_test.rb
2140
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/service_request_patient_category_granular_scope_search_test.rb
2141
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/service_request_patient_code_authored_granular_scope_search_test.rb
2142
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/service_request_patient_code_granular_scope_search_test.rb
2143
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/service_request_patient_granular_scope_search_test.rb
2144
+ - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scope_tests/service_request/service_request_patient_status_granular_scope_search_test.rb
2137
2145
  - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scopes1_group.rb
2138
2146
  - lib/us_core_test_kit/generated/v7.0.0-ballot/granular_scopes2_group.rb
2139
2147
  - lib/us_core_test_kit/generated/v7.0.0-ballot/head_circumference/head_circumference_must_support_test.rb
@@ -2490,6 +2498,7 @@ files:
2490
2498
  - lib/us_core_test_kit/generated/v7.0.0-ballot/us_core_test_suite.rb
2491
2499
  - lib/us_core_test_kit/generator.rb
2492
2500
  - lib/us_core_test_kit/generator/granular_scope_group_generator.rb
2501
+ - lib/us_core_test_kit/generator/granular_scope_read_test_generator.rb
2493
2502
  - lib/us_core_test_kit/generator/granular_scope_resource_type_group_generator.rb
2494
2503
  - lib/us_core_test_kit/generator/granular_scope_test_generator.rb
2495
2504
  - lib/us_core_test_kit/generator/group_generator.rb
@@ -2518,7 +2527,9 @@ files:
2518
2527
  - lib/us_core_test_kit/generator/terminology_binding_metadata_extractor.rb
2519
2528
  - lib/us_core_test_kit/generator/validation_test_generator.rb
2520
2529
  - lib/us_core_test_kit/generator/value_extractor.rb
2521
- - lib/us_core_test_kit/granular_scope_checker.rb
2530
+ - lib/us_core_test_kit/granular_scope.rb
2531
+ - lib/us_core_test_kit/granular_scope_read_test.rb
2532
+ - lib/us_core_test_kit/granular_scope_search_test.rb
2522
2533
  - lib/us_core_test_kit/igs/us_core_311.tgz
2523
2534
  - lib/us_core_test_kit/igs/us_core_311/StructureDefinition-bodyheight.json
2524
2535
  - lib/us_core_test_kit/igs/us_core_311/StructureDefinition-bodytemp.json
@@ -2539,10 +2550,12 @@ files:
2539
2550
  - lib/us_core_test_kit/igs/us_core_700_ballot/StructureDefinition-condition-assertedDate.json
2540
2551
  - lib/us_core_test_kit/igs/us_core_700_ballot/ValueSet-servicerequest-category.json
2541
2552
  - lib/us_core_test_kit/must_support_test.rb
2553
+ - lib/us_core_test_kit/primitive_type.rb
2542
2554
  - lib/us_core_test_kit/provenance_validator.rb
2543
2555
  - lib/us_core_test_kit/read_test.rb
2544
2556
  - lib/us_core_test_kit/reference_resolution_test.rb
2545
2557
  - lib/us_core_test_kit/request_logger.rb
2558
+ - lib/us_core_test_kit/resource_search_param_checker.rb
2546
2559
  - lib/us_core_test_kit/search_test.rb
2547
2560
  - lib/us_core_test_kit/search_test_properties.rb
2548
2561
  - lib/us_core_test_kit/us_core_options.rb
@@ -2569,7 +2582,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
2569
2582
  - !ruby/object:Gem::Version
2570
2583
  version: '0'
2571
2584
  requirements: []
2572
- rubygems_version: 3.3.7
2585
+ rubygems_version: 3.5.9
2573
2586
  signing_key:
2574
2587
  specification_version: 4
2575
2588
  summary: US Core Inferno tests
@@ -1,43 +0,0 @@
1
- require_relative './granular_scope_tests/condition/condition_patient_category_granular_scope_test'
2
- require_relative './granular_scope_tests/condition/condition_patient_granular_scope_test'
3
- require_relative './granular_scope_tests/condition/condition_patient_recorded_date_granular_scope_test'
4
- require_relative './granular_scope_tests/condition/condition_patient_asserted_date_granular_scope_test'
5
- require_relative './granular_scope_tests/condition/condition_patient_category_clinical_status_granular_scope_test'
6
- require_relative './granular_scope_tests/condition/condition_patient_onset_date_granular_scope_test'
7
- require_relative './granular_scope_tests/condition/condition_patient_abatement_date_granular_scope_test'
8
- require_relative './granular_scope_tests/condition/condition_patient_clinical_status_granular_scope_test'
9
- require_relative './granular_scope_tests/condition/condition_patient_category_encounter_granular_scope_test'
10
- require_relative './granular_scope_tests/condition/condition_patient_code_granular_scope_test'
11
-
12
- module USCoreTestKit
13
- module USCoreV610
14
- class ConditionGranularScope2Group < Inferno::TestGroup
15
- title 'Condition Granular Scope Tests Tests'
16
- short_description 'Verify support for the server capabilities required by the US Core Condition Encounter Diagnosis Profile.'
17
- description %(
18
- The tests in this group repeat all of the searches from the US Core
19
- FHIR API tests, and verify that the resources returned are filtered
20
- based on the following granular scopes:
21
-
22
- * `Condition.rs?category=http://hl7.org/fhir/us/core/CodeSystem/condition-category|health-concern`
23
- * `Condition.rs?category=http://terminology.hl7.org/CodeSystem/condition-category|problem-list-item`
24
-
25
- )
26
-
27
- id :us_core_v610_condition_granular_scope_2_group
28
- run_as_group
29
-
30
-
31
- test from: :us_core_v610_Condition_patient_category_granular_scope_test
32
- test from: :us_core_v610_Condition_patient_granular_scope_test
33
- test from: :us_core_v610_Condition_patient_recorded_date_granular_scope_test
34
- test from: :us_core_v610_Condition_patient_asserted_date_granular_scope_test
35
- test from: :us_core_v610_Condition_patient_category_clinical_status_granular_scope_test
36
- test from: :us_core_v610_Condition_patient_onset_date_granular_scope_test
37
- test from: :us_core_v610_Condition_patient_abatement_date_granular_scope_test
38
- test from: :us_core_v610_Condition_patient_clinical_status_granular_scope_test
39
- test from: :us_core_v610_Condition_patient_category_encounter_granular_scope_test
40
- test from: :us_core_v610_Condition_patient_code_granular_scope_test
41
- end
42
- end
43
- end
@@ -1,52 +0,0 @@
1
- require_relative './condition_granular_scope2_group'
2
- require_relative './observation_granular_scope2_group'
3
-
4
- module USCoreTestKit
5
- module USCoreV610
6
- class SmartGranularScopes2Group < Inferno::TestGroup
7
- id :us_core_v610_smart_granular_scopes_2
8
- title 'US Core FHIR API w/Granular Scopes 2'
9
-
10
- description %(
11
- The tests in this group repeat all of the searches from the US Core
12
- FHIR API tests, and verify that the resources returned are filtered
13
- based on the following granular scopes:
14
-
15
- * `Condition.rs?category=http://hl7.org/fhir/us/core/CodeSystem/condition-category|health-concern`
16
- * `Condition.rs?category=http://terminology.hl7.org/CodeSystem/condition-category|problem-list-item`
17
- * `Observation.rs?category=http://terminology.hl7.org/CodeSystem/observation-category|vital-signs`
18
- * `patient.Observation.rs?category=http://terminology.hl7.org/CodeSystem/observation-category|survey`
19
- * `patient.Observation.rs?category=http://hl7.org/fhir/us/core/CodeSystem/us-core-category|sdoh`
20
-
21
- )
22
-
23
- input :granular_scopes_2_credentials,
24
- title: 'SMART Credentials for Granular Scopes 2',
25
- type: :oauth_credentials,
26
- locked: true
27
-
28
- config(
29
- inputs: {
30
- patient_ids: {
31
- locked: true
32
- },
33
- received_scopes: {
34
- title: 'Received Scopes',
35
- locked: true
36
- },
37
- url: {
38
- locked: true
39
- }
40
- }
41
- )
42
-
43
- fhir_client do
44
- oauth_credentials :granular_scopes_2_credentials
45
- url :url
46
- end
47
-
48
- group from: :us_core_v610_condition_granular_scope_2_group
49
- group from: :us_core_v610_observation_granular_scope_2_group
50
- end
51
- end
52
- end
@@ -1,32 +0,0 @@
1
- require_relative './granular_scope_tests/observation/observation_patient_category_granular_scope_test'
2
- require_relative './granular_scope_tests/observation/observation_patient_code_date_granular_scope_test'
3
- require_relative './granular_scope_tests/observation/observation_patient_category_status_granular_scope_test'
4
- require_relative './granular_scope_tests/observation/observation_patient_category_date_granular_scope_test'
5
- require_relative './granular_scope_tests/observation/observation_patient_code_granular_scope_test'
6
-
7
- module USCoreTestKit
8
- module USCoreV610
9
- class ObservationGranularScope2Group < Inferno::TestGroup
10
- title 'Observation Granular Scope Tests Tests'
11
- short_description 'Verify support for the server capabilities required by the US Core Laboratory Result Observation Profile.'
12
- description %(
13
- The tests in this group repeat all of the searches from the US Core
14
- FHIR API tests, and verify that the resources returned are filtered
15
- based on the following granular scopes:
16
-
17
- * `Observation.rs?category=http://terminology.hl7.org/CodeSystem/observation-category|vital-signs`
18
-
19
- )
20
-
21
- id :us_core_v610_observation_granular_scope_2_group
22
- run_as_group
23
-
24
-
25
- test from: :us_core_v610_Observation_patient_category_granular_scope_test
26
- test from: :us_core_v610_Observation_patient_code_date_granular_scope_test
27
- test from: :us_core_v610_Observation_patient_category_status_granular_scope_test
28
- test from: :us_core_v610_Observation_patient_category_date_granular_scope_test
29
- test from: :us_core_v610_Observation_patient_code_granular_scope_test
30
- end
31
- end
32
- end