us_core_test_kit 0.6.5 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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