carin_for_blue_button_test_kit 0.9.0

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 (278) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +201 -0
  3. data/lib/carin_for_blue_button_test_kit/capability_statement/capability_statement_group.rb +45 -0
  4. data/lib/carin_for_blue_button_test_kit/capability_statement/tests/conformance_support_test.rb +41 -0
  5. data/lib/carin_for_blue_button_test_kit/capability_statement/tests/fhir_version_test.rb +15 -0
  6. data/lib/carin_for_blue_button_test_kit/capability_statement/tests/instantiates_test.rb +32 -0
  7. data/lib/carin_for_blue_button_test_kit/capability_statement/tests/json_support_test.rb +39 -0
  8. data/lib/carin_for_blue_button_test_kit/capability_statement/tests/profile_support_test.rb +32 -0
  9. data/lib/carin_for_blue_button_test_kit/carin_search_test.rb +227 -0
  10. data/lib/carin_for_blue_button_test_kit/date_search_validator.rb +109 -0
  11. data/lib/carin_for_blue_button_test_kit/fhir_resource_navigation.rb +73 -0
  12. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/c4bb_test_suite.rb +106 -0
  13. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/coverage/coverage_must_support_test.rb +53 -0
  14. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/coverage/coverage_read_test.rb +39 -0
  15. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/coverage/coverage_validation_test.rb +43 -0
  16. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/coverage_group.rb +58 -0
  17. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_all_search_test.rb +38 -0
  18. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_careteam_search_test.rb +38 -0
  19. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_coverage_search_test.rb +38 -0
  20. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_insurer_search_test.rb +38 -0
  21. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_patient_search_test.rb +38 -0
  22. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_provider_search_test.rb +38 -0
  23. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_id_search_test.rb +59 -0
  24. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_identifier_search_test.rb +49 -0
  25. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_lastupdated_search_test.rb +48 -0
  26. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_must_support_test.rb +72 -0
  27. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_patient_search_test.rb +48 -0
  28. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_read_test.rb +39 -0
  29. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_service_date_search_test.rb +48 -0
  30. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_type_search_test.rb +49 -0
  31. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit/explanation_of_benefit_validation_test.rb +43 -0
  32. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_group.rb +110 -0
  33. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_all_search_test.rb +38 -0
  34. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_careteam_search_test.rb +38 -0
  35. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_coverage_search_test.rb +38 -0
  36. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_insurer_search_test.rb +38 -0
  37. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_patient_search_test.rb +38 -0
  38. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_provider_search_test.rb +38 -0
  39. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_id_search_test.rb +59 -0
  40. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_identifier_search_test.rb +49 -0
  41. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_lastupdated_search_test.rb +48 -0
  42. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_must_support_test.rb +120 -0
  43. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_patient_search_test.rb +48 -0
  44. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_read_test.rb +39 -0
  45. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_service_date_search_test.rb +48 -0
  46. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_type_search_test.rb +49 -0
  47. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_validation_test.rb +43 -0
  48. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_inpatient_institutional_group.rb +58 -0
  49. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_all_search_test.rb +38 -0
  50. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_careteam_search_test.rb +38 -0
  51. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_coverage_search_test.rb +38 -0
  52. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_insurer_search_test.rb +38 -0
  53. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_patient_search_test.rb +38 -0
  54. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_provider_search_test.rb +38 -0
  55. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_id_search_test.rb +59 -0
  56. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_identifier_search_test.rb +49 -0
  57. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_lastupdated_search_test.rb +48 -0
  58. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_must_support_test.rb +112 -0
  59. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_patient_search_test.rb +48 -0
  60. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_read_test.rb +39 -0
  61. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_service_date_search_test.rb +48 -0
  62. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_type_search_test.rb +49 -0
  63. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_validation_test.rb +43 -0
  64. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_outpatient_institutional_group.rb +58 -0
  65. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_all_search_test.rb +38 -0
  66. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_careteam_search_test.rb +38 -0
  67. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_coverage_search_test.rb +38 -0
  68. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_insurer_search_test.rb +38 -0
  69. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_patient_search_test.rb +38 -0
  70. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_provider_search_test.rb +38 -0
  71. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_id_search_test.rb +59 -0
  72. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_identifier_search_test.rb +49 -0
  73. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_lastupdated_search_test.rb +48 -0
  74. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_must_support_test.rb +103 -0
  75. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_patient_search_test.rb +48 -0
  76. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_read_test.rb +39 -0
  77. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_service_date_search_test.rb +48 -0
  78. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_type_search_test.rb +49 -0
  79. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_validation_test.rb +43 -0
  80. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_pharmacy_group.rb +58 -0
  81. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_all_search_test.rb +38 -0
  82. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_careteam_search_test.rb +38 -0
  83. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_coverage_search_test.rb +38 -0
  84. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_insurer_search_test.rb +38 -0
  85. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_patient_search_test.rb +38 -0
  86. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_provider_search_test.rb +38 -0
  87. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_id_search_test.rb +59 -0
  88. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_identifier_search_test.rb +49 -0
  89. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_lastupdated_search_test.rb +48 -0
  90. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_must_support_test.rb +97 -0
  91. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_patient_search_test.rb +48 -0
  92. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_read_test.rb +39 -0
  93. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_service_date_search_test.rb +48 -0
  94. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_type_search_test.rb +49 -0
  95. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_validation_test.rb +43 -0
  96. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/explanation_of_benefit_professional_non_clinician_group.rb +58 -0
  97. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/organization/organization_must_support_test.rb +55 -0
  98. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/organization/organization_read_test.rb +39 -0
  99. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/organization/organization_validation_test.rb +43 -0
  100. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/organization_group.rb +58 -0
  101. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/patient/patient_must_support_test.rb +69 -0
  102. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/patient/patient_read_test.rb +39 -0
  103. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/patient/patient_validation_test.rb +43 -0
  104. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/patient_group.rb +58 -0
  105. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/practitioner/practitioner_must_support_test.rb +46 -0
  106. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/practitioner/practitioner_read_test.rb +39 -0
  107. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/practitioner/practitioner_validation_test.rb +43 -0
  108. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/practitioner_group.rb +58 -0
  109. data/lib/carin_for_blue_button_test_kit/generated/v1.1.0/resource_list.rb +17 -0
  110. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/c4bb_test_suite.rb +110 -0
  111. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/coverage/coverage_coverage_payor_search_test.rb +38 -0
  112. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/coverage/coverage_id_search_test.rb +59 -0
  113. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/coverage/coverage_lastupdated_search_test.rb +48 -0
  114. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/coverage/coverage_must_support_test.rb +53 -0
  115. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/coverage/coverage_read_test.rb +39 -0
  116. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/coverage/coverage_validation_test.rb +43 -0
  117. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/coverage_group.rb +87 -0
  118. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_billable_period_start_search_test.rb +48 -0
  119. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_all_search_test.rb +38 -0
  120. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_careteam_search_test.rb +38 -0
  121. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_coverage_search_test.rb +38 -0
  122. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_insurer_search_test.rb +38 -0
  123. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_patient_search_test.rb +38 -0
  124. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_payee_search_test.rb +38 -0
  125. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_explanation_of_benefit_provider_search_test.rb +38 -0
  126. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_id_search_test.rb +59 -0
  127. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_identifier_search_test.rb +49 -0
  128. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_lastupdated_search_test.rb +48 -0
  129. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_must_support_test.rb +73 -0
  130. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_patient_search_test.rb +48 -0
  131. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_read_test.rb +39 -0
  132. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_service_date_search_test.rb +48 -0
  133. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_service_start_date_search_test.rb +48 -0
  134. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_type_search_test.rb +49 -0
  135. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit/explanation_of_benefit_validation_test.rb +43 -0
  136. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_group.rb +118 -0
  137. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_billable_period_start_search_test.rb +48 -0
  138. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_all_search_test.rb +38 -0
  139. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_careteam_search_test.rb +38 -0
  140. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_coverage_search_test.rb +38 -0
  141. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_insurer_search_test.rb +38 -0
  142. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_patient_search_test.rb +38 -0
  143. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_payee_search_test.rb +38 -0
  144. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_explanation_of_benefit_provider_search_test.rb +38 -0
  145. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_id_search_test.rb +59 -0
  146. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_identifier_search_test.rb +49 -0
  147. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_lastupdated_search_test.rb +48 -0
  148. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_must_support_test.rb +121 -0
  149. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_patient_search_test.rb +48 -0
  150. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_read_test.rb +39 -0
  151. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_service_date_search_test.rb +48 -0
  152. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_service_start_date_search_test.rb +48 -0
  153. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_type_search_test.rb +49 -0
  154. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional/explanation_of_benefit_inpatient_institutional_validation_test.rb +43 -0
  155. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_inpatient_institutional_group.rb +58 -0
  156. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_billable_period_start_search_test.rb +48 -0
  157. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_explanation_of_benefit_all_search_test.rb +38 -0
  158. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_explanation_of_benefit_careteam_search_test.rb +38 -0
  159. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_explanation_of_benefit_coverage_search_test.rb +38 -0
  160. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_explanation_of_benefit_insurer_search_test.rb +38 -0
  161. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_explanation_of_benefit_patient_search_test.rb +38 -0
  162. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_explanation_of_benefit_payee_search_test.rb +38 -0
  163. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_explanation_of_benefit_provider_search_test.rb +38 -0
  164. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_id_search_test.rb +59 -0
  165. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_identifier_search_test.rb +49 -0
  166. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_lastupdated_search_test.rb +48 -0
  167. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_must_support_test.rb +112 -0
  168. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_patient_search_test.rb +48 -0
  169. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_read_test.rb +39 -0
  170. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_service_date_search_test.rb +48 -0
  171. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_service_start_date_search_test.rb +48 -0
  172. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_type_search_test.rb +49 -0
  173. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral/explanation_of_benefit_oral_validation_test.rb +43 -0
  174. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_oral_group.rb +58 -0
  175. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_billable_period_start_search_test.rb +48 -0
  176. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_all_search_test.rb +38 -0
  177. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_careteam_search_test.rb +38 -0
  178. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_coverage_search_test.rb +38 -0
  179. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_insurer_search_test.rb +38 -0
  180. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_patient_search_test.rb +38 -0
  181. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_payee_search_test.rb +38 -0
  182. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_explanation_of_benefit_provider_search_test.rb +38 -0
  183. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_id_search_test.rb +59 -0
  184. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_identifier_search_test.rb +49 -0
  185. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_lastupdated_search_test.rb +48 -0
  186. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_must_support_test.rb +114 -0
  187. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_patient_search_test.rb +48 -0
  188. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_read_test.rb +39 -0
  189. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_service_date_search_test.rb +48 -0
  190. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_service_start_date_search_test.rb +48 -0
  191. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_type_search_test.rb +49 -0
  192. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional/explanation_of_benefit_outpatient_institutional_validation_test.rb +43 -0
  193. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_outpatient_institutional_group.rb +58 -0
  194. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_billable_period_start_search_test.rb +48 -0
  195. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_all_search_test.rb +38 -0
  196. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_careteam_search_test.rb +38 -0
  197. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_coverage_search_test.rb +38 -0
  198. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_insurer_search_test.rb +38 -0
  199. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_patient_search_test.rb +38 -0
  200. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_payee_search_test.rb +38 -0
  201. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_explanation_of_benefit_provider_search_test.rb +38 -0
  202. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_id_search_test.rb +59 -0
  203. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_identifier_search_test.rb +49 -0
  204. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_lastupdated_search_test.rb +48 -0
  205. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_must_support_test.rb +109 -0
  206. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_patient_search_test.rb +48 -0
  207. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_read_test.rb +39 -0
  208. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_service_date_search_test.rb +48 -0
  209. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_service_start_date_search_test.rb +48 -0
  210. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_type_search_test.rb +49 -0
  211. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy/explanation_of_benefit_pharmacy_validation_test.rb +43 -0
  212. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_pharmacy_group.rb +58 -0
  213. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_billable_period_start_search_test.rb +48 -0
  214. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_all_search_test.rb +38 -0
  215. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_careteam_search_test.rb +38 -0
  216. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_coverage_search_test.rb +38 -0
  217. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_insurer_search_test.rb +38 -0
  218. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_patient_search_test.rb +38 -0
  219. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_payee_search_test.rb +38 -0
  220. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_explanation_of_benefit_provider_search_test.rb +38 -0
  221. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_id_search_test.rb +59 -0
  222. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_identifier_search_test.rb +49 -0
  223. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_lastupdated_search_test.rb +48 -0
  224. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_must_support_test.rb +108 -0
  225. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_patient_search_test.rb +48 -0
  226. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_read_test.rb +39 -0
  227. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_service_date_search_test.rb +48 -0
  228. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_service_start_date_search_test.rb +48 -0
  229. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_type_search_test.rb +49 -0
  230. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician/explanation_of_benefit_professional_non_clinician_validation_test.rb +43 -0
  231. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/explanation_of_benefit_professional_non_clinician_group.rb +58 -0
  232. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/organization/organization_must_support_test.rb +55 -0
  233. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/organization/organization_read_test.rb +39 -0
  234. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/organization/organization_validation_test.rb +43 -0
  235. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/organization_group.rb +81 -0
  236. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/patient/patient_must_support_test.rb +68 -0
  237. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/patient/patient_read_test.rb +39 -0
  238. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/patient/patient_validation_test.rb +43 -0
  239. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/patient_group.rb +81 -0
  240. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/practitioner/practitioner_must_support_test.rb +46 -0
  241. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/practitioner/practitioner_read_test.rb +39 -0
  242. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/practitioner/practitioner_validation_test.rb +43 -0
  243. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/practitioner_group.rb +81 -0
  244. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/related_person/related_person_must_support_test.rb +47 -0
  245. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/related_person/related_person_read_test.rb +39 -0
  246. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/related_person/related_person_validation_test.rb +43 -0
  247. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/related_person_group.rb +81 -0
  248. data/lib/carin_for_blue_button_test_kit/generated/v2.0.0/resource_list.rb +19 -0
  249. data/lib/carin_for_blue_button_test_kit/generator/group_generator.rb +210 -0
  250. data/lib/carin_for_blue_button_test_kit/generator/group_metadata.rb +87 -0
  251. data/lib/carin_for_blue_button_test_kit/generator/group_metadata_extractor.rb +240 -0
  252. data/lib/carin_for_blue_button_test_kit/generator/ig_loader.rb +76 -0
  253. data/lib/carin_for_blue_button_test_kit/generator/ig_metadata.rb +50 -0
  254. data/lib/carin_for_blue_button_test_kit/generator/ig_metadata_extractor.rb +40 -0
  255. data/lib/carin_for_blue_button_test_kit/generator/ig_resources.rb +50 -0
  256. data/lib/carin_for_blue_button_test_kit/generator/include_search_test_generator.rb +105 -0
  257. data/lib/carin_for_blue_button_test_kit/generator/must_support_metadata_extractor.rb +326 -0
  258. data/lib/carin_for_blue_button_test_kit/generator/must_support_test_generator.rb +131 -0
  259. data/lib/carin_for_blue_button_test_kit/generator/naming.rb +36 -0
  260. data/lib/carin_for_blue_button_test_kit/generator/read_test_generator.rb +109 -0
  261. data/lib/carin_for_blue_button_test_kit/generator/resource_list_generator.rb +43 -0
  262. data/lib/carin_for_blue_button_test_kit/generator/search_definition_metadata_extractor.rb +207 -0
  263. data/lib/carin_for_blue_button_test_kit/generator/search_metadata_extractor.rb +74 -0
  264. data/lib/carin_for_blue_button_test_kit/generator/search_test_generator.rb +299 -0
  265. data/lib/carin_for_blue_button_test_kit/generator/special_cases.rb +21 -0
  266. data/lib/carin_for_blue_button_test_kit/generator/suite_generator.rb +94 -0
  267. data/lib/carin_for_blue_button_test_kit/generator/terminology_binding_metadata_extractor.rb +109 -0
  268. data/lib/carin_for_blue_button_test_kit/generator/validation_test_generator.rb +137 -0
  269. data/lib/carin_for_blue_button_test_kit/generator/value_extractor.rb +50 -0
  270. data/lib/carin_for_blue_button_test_kit/generator.rb +90 -0
  271. data/lib/carin_for_blue_button_test_kit/must_support_test.rb +211 -0
  272. data/lib/carin_for_blue_button_test_kit/read_test.rb +51 -0
  273. data/lib/carin_for_blue_button_test_kit/search_test.rb +781 -0
  274. data/lib/carin_for_blue_button_test_kit/search_test_properties.rb +57 -0
  275. data/lib/carin_for_blue_button_test_kit/validation_test.rb +57 -0
  276. data/lib/carin_for_blue_button_test_kit/version.rb +5 -0
  277. data/lib/carin_for_blue_button_test_kit.rb +2 -0
  278. metadata +405 -0
@@ -0,0 +1,109 @@
1
+ # frozen_string_literal: true
2
+
3
+ module CarinForBlueButtonTestKit
4
+ module DateSearchValidation
5
+ def get_fhir_datetime_range(datetime)
6
+ range = { start: DateTime.xmlschema(datetime), end: nil }
7
+ range[:end] =
8
+ if /^\d{4}$/.match?(datetime) # YYYY
9
+ range[:start].next_year - 1.seconds
10
+ elsif /^\d{4}-\d{2}$/.match?(datetime) # YYYY-MM
11
+ range[:start].next_month - 1.seconds
12
+ elsif /^\d{4}-\d{2}-\d{2}$/.match?(datetime) # YYYY-MM-DD
13
+ range[:start].next_day - 1.seconds
14
+ else # YYYY-MM-DDThh:mm:ss+zz:zz
15
+ range[:start]
16
+ end
17
+ range
18
+ end
19
+
20
+ def get_fhir_period_range(period)
21
+ range = { start: nil, end: nil }
22
+ range[:start] = DateTime.xmlschema(period[:start]) unless period[:start].nil?
23
+ return range if period[:end].nil?
24
+
25
+ period_end_beginning = DateTime.xmlschema(period[:end])
26
+ range[:end] =
27
+ if /^\d{4}$/.match?(period[:end]) # YYYY
28
+ period_end_beginning.next_year - 1.seconds
29
+ elsif /^\d{4}-\d{2}$/.match?(period[:end]) # YYYY-MM
30
+ period_end_beginning.next_month - 1.seconds
31
+ elsif /^\d{4}-\d{2}-\d{2}$/.match?(period[:end]) # YYYY-MM-DD
32
+ period_end_beginning.next_day - 1.seconds
33
+ else # YYYY-MM-DDThh:mm:ss+zz:zz
34
+ period_end_beginning
35
+ end
36
+ range
37
+ end
38
+
39
+ def fhir_date_comparer(search_range, target_range, comparator, extend_start = false, extend_end = false)
40
+ # Implicitly, a missing lower boundary is "less than" any actual date. A missing upper boundary is "greater than" any actual date.
41
+ case comparator
42
+ when 'eq' # the range of the search value fully contains the range of the target value
43
+ !target_range[:start].nil? && !target_range[:end].nil? && search_range[:start] <= target_range[:start] && search_range[:end] >= target_range[:end]
44
+ when 'ne' # the range of the search value does not fully contain the range of the target value
45
+ target_range[:start].nil? || target_range[:end].nil? || search_range[:start] > target_range[:start] || search_range[:end] < target_range[:end]
46
+ when 'gt' # the range above the search value intersects (i.e. overlaps) with the range of the target value
47
+ target_range[:end].nil? || search_range[:end] < target_range[:end] || (search_range[:end] < (target_range[:end] + 1) && extend_end)
48
+ when 'lt' # the range below the search value intersects (i.e. overlaps) with the range of the target value
49
+ target_range[:start].nil? || search_range[:start] > target_range[:start] || (search_range[:start] > (target_range[:start] - 1) && extend_start)
50
+ when 'ge'
51
+ fhir_date_comparer(search_range, target_range, 'gt', extend_start, extend_end) || fhir_date_comparer(search_range, target_range, 'eq')
52
+ when 'le'
53
+ fhir_date_comparer(search_range, target_range, 'lt', extend_start, extend_end) || fhir_date_comparer(search_range, target_range, 'eq')
54
+ when 'sa' # the range above the search value contains the range of the target value
55
+ !target_range[:start].nil? && search_range[:end] < target_range[:start]
56
+ when 'eb' # the range below the search value contains the range of the target value
57
+ !target_range[:end].nil? && search_range[:start] > target_range[:end]
58
+ when 'ap' # the range of the search value overlaps with the range of the target value
59
+ if target_range[:start].nil? || target_range[:end].nil?
60
+ (target_range[:start].nil? && search_range[:start] < target_range[:end]) ||
61
+ (target_range[:end].nil? && search_range[:end] > target_range[:start])
62
+ else
63
+ (search_range[:start] >= target_range[:start] && search_range[:start] <= target_range[:end]) ||
64
+ (search_range[:end] >= target_range[:start] && search_range[:end] <= target_range[:end])
65
+ end
66
+ end
67
+ end
68
+
69
+ def validate_date_search(search_value, target_value)
70
+ if target_value.class == Hash
71
+ validate_period_search(search_value, target_value)
72
+ else
73
+ validate_datetime_search(search_value, target_value)
74
+ end
75
+ end
76
+
77
+ def validate_datetime_search(search_value, target_value)
78
+ comparator = search_value[0..1]
79
+ if ['eq', 'ge', 'gt', 'le', 'lt', 'ne', 'sa', 'eb', 'ap'].include? comparator
80
+ search_value = search_value[2..-1]
81
+ else
82
+ comparator = 'eq'
83
+ end
84
+ search_is_date = is_date?(search_value)
85
+ target_is_date = is_date?(target_value)
86
+ search_range = get_fhir_datetime_range(search_value)
87
+ target_range = get_fhir_datetime_range(target_value)
88
+ fhir_date_comparer(search_range, target_range, comparator, !search_is_date && target_is_date, !search_is_date && target_is_date)
89
+ end
90
+
91
+ def validate_period_search(search_value, target_value)
92
+ comparator = search_value[0..1]
93
+ if ['eq', 'ge', 'gt', 'le', 'lt', 'ne', 'sa', 'eb', 'ap'].include? comparator
94
+ search_value = search_value[2..-1]
95
+ else
96
+ comparator = 'eq'
97
+ end
98
+ search_is_date = is_date?(search_value)
99
+ search_range = get_fhir_datetime_range(search_value)
100
+ target_range = get_fhir_period_range(target_value)
101
+ fhir_date_comparer(search_range, target_range, comparator, !search_is_date && is_date?(target_value.start), !search_is_date && is_date?(target_value.end))
102
+ end
103
+
104
+ def is_date?(value)
105
+ /^\d{4}(-\d{2})?(-\d{2})?$/.match?(value) # YYYY or YYYY-MM or YYYY-MM-DD
106
+ end
107
+ end
108
+ end
109
+
@@ -0,0 +1,73 @@
1
+ require 'json'
2
+
3
+ module CarinForBlueButtonTestKit
4
+ module FHIRResourceNavigation
5
+ DAR_EXTENSION_URL = 'http://hl7.org/fhir/StructureDefinition/data-absent-reason'.freeze
6
+
7
+ def resolve_path(elements, path)
8
+ elements = Array.wrap(elements)
9
+ return elements if path.blank?
10
+
11
+ paths = path.split('.')
12
+ segment = paths.first
13
+ remaining_path = paths.drop(1).join('.')
14
+
15
+ elements.flat_map do |element|
16
+ child = get_next_value(element, segment)
17
+ resolve_path(child, remaining_path)
18
+ end.compact
19
+
20
+ end
21
+
22
+ def find_a_value_at(element, path, include_dar: false)
23
+ return nil if element.nil?
24
+
25
+ elements = Array.wrap(element)
26
+
27
+ if path.empty?
28
+ unless include_dar
29
+ elements = elements.reject do |el|
30
+ el.respond_to?(:extension) && el.extension.any? { |ext| ext.url == DAR_EXTENSION_URL}
31
+ end
32
+ end
33
+
34
+ return elements.find { |el| yield(el) } if block_given?
35
+
36
+ return elements.first
37
+ end
38
+
39
+ path_segments = path.split('.')
40
+ segment = path_segments.shift.delete_suffix('[x]').to_sym
41
+
42
+ no_elements_present =
43
+ elements.none? do |element|
44
+ child = get_next_value(element, segment)
45
+ child.present? || child == false
46
+ end
47
+
48
+ return nil if no_elements_present
49
+
50
+ remaining_path = path_segments.join('.')
51
+ elements.each do |element|
52
+ child = get_next_value(element, segment)
53
+ element_found =
54
+ if block_given?
55
+ find_a_value_at(child, remaining_path, include_dar: include_dar) { |value_found| yield(value_found) }
56
+ else
57
+ find_a_value_at(child, remaining_path, include_dar: include_dar)
58
+ end
59
+
60
+ return element_found if element_found.present? || element_found == false
61
+ end
62
+
63
+ nil
64
+ end
65
+
66
+ def get_next_value(element, property)
67
+ element[property.to_s.strip]
68
+ rescue NoMethodError
69
+ nil
70
+ end
71
+ end
72
+ end
73
+
@@ -0,0 +1,106 @@
1
+ require 'inferno/dsl/oauth_credentials'
2
+ require 'smart_app_launch_test_kit'
3
+ require_relative '../../version'
4
+
5
+ require_relative '../../capability_statement/capability_statement_group'
6
+
7
+ require_relative 'patient_group'
8
+ require_relative 'coverage_group'
9
+ require_relative 'explanation_of_benefit_group'
10
+ require_relative 'explanation_of_benefit_inpatient_institutional_group'
11
+ require_relative 'explanation_of_benefit_outpatient_institutional_group'
12
+ require_relative 'explanation_of_benefit_pharmacy_group'
13
+ require_relative 'explanation_of_benefit_professional_non_clinician_group'
14
+ require_relative 'organization_group'
15
+ require_relative 'practitioner_group'
16
+
17
+ module CarinForBlueButtonTestKit
18
+ module CARIN4BBV110
19
+ class C4BBTestKit < Inferno::TestSuite
20
+ title 'CARIN IG for Blue Button® v1.1.0'
21
+ version VERSION
22
+ links [
23
+ {
24
+ label: 'Open Source',
25
+ url: 'https://github.com/inferno-framework/carin-for-blue-button-test-kit'
26
+ },
27
+ {
28
+ label: 'Implementation Guide',
29
+ url: 'http://hl7.org/fhir/us/carin-bb/STU1.1'
30
+ }
31
+ ]
32
+
33
+ def self.metadata
34
+ @metadata ||= YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true)[:groups].map do |raw_metadata|
35
+ Generator::GroupMetadata.new(raw_metadata)
36
+ end
37
+ end
38
+
39
+ validator do
40
+ url ENV.fetch('V110_VALIDATOR_URL', 'http://validator_service:4567')
41
+ end
42
+
43
+ id :c4bb_v110
44
+
45
+ input :url,
46
+ title: 'FHIR Endpoint',
47
+ description: 'URL of the FHIR endpoint'
48
+ input :smart_credentials,
49
+ title: 'OAuth Credentials',
50
+ type: :oauth_credentials,
51
+ optional: true
52
+
53
+ # SMART Test Suite requirement
54
+ group from: :smart_discovery,
55
+ run_as_group: true
56
+ group from: :smart_standalone_launch,
57
+ run_as_group: true,
58
+ config: {
59
+ outputs: {
60
+ patient_id: { name: :patient_ids },
61
+ smart_credentials: { name: :smart_credentials }
62
+ }
63
+ },
64
+ description: %(
65
+ # Background
66
+
67
+ The [Standalone
68
+ Launch Sequence](https://www.hl7.org/fhir/smart-app-launch/1.0.0/index.html#standalone-launch-sequence)
69
+ allows an app, like Inferno, to be launched independent of an
70
+ existing EHR session. It is one of the two launch methods described in
71
+ the SMART App Launch Framework alongside EHR Launch. The app will
72
+ request authorization for the provided scope from the authorization
73
+ endpoint, ultimately receiving an authorization token which can be used
74
+ to gain access to resources on the FHIR server.
75
+
76
+ # Test Methodology
77
+
78
+ Inferno will redirect the user to the authorization endpoint so that
79
+ they can provide any required credentials and authorize the application.
80
+ Upon successful authorization, Inferno will exchange the authorization
81
+ code provided for an access token.
82
+
83
+ For more information on the #{title}:
84
+
85
+ * [Standalone Launch Sequence](https://www.hl7.org/fhir/smart-app-launch/1.0.0/index.html#standalone-launch-sequence)
86
+ )
87
+
88
+ fhir_client do
89
+ url :url
90
+ oauth_credentials :smart_credentials
91
+ end
92
+
93
+ group from: :capability_statement_group
94
+
95
+ group from: :c4bb_v110_patient
96
+ group from: :c4bb_v110_coverage
97
+ group from: :c4bb_v110_explanation_of_benefit
98
+ group from: :c4bb_v110_explanation_of_benefit_inpatient_institutional
99
+ group from: :c4bb_v110_explanation_of_benefit_outpatient_institutional
100
+ group from: :c4bb_v110_explanation_of_benefit_pharmacy
101
+ group from: :c4bb_v110_explanation_of_benefit_professional_non_clinician
102
+ group from: :c4bb_v110_organization
103
+ group from: :c4bb_v110_practitioner
104
+ end
105
+ end
106
+ end
@@ -0,0 +1,53 @@
1
+ require_relative '../../../must_support_test'
2
+ require_relative './coverage_read_test'
3
+ require_relative '../../../generator/group_metadata'
4
+
5
+ module CarinForBlueButtonTestKit
6
+ module CARIN4BBV110
7
+ class CoverageMustSupportTest < Inferno::Test
8
+ include CarinForBlueButtonTestKit::MustSupportTest
9
+ include CarinForBlueButtonTestKit::CARIN4BBV110
10
+
11
+ title 'All must support elements are provided in the Coverage resources returned'
12
+ description %(
13
+ CARIN for Blue Button Responders SHALL be capable of populating all data elements as
14
+ part of the query results as specified by the CARIN for Blue Button Capability
15
+ Statement. This test will look through the Coverage resources
16
+ found previously for the following must support elements:
17
+
18
+ * Coverage.beneficiary
19
+ * Coverage.class
20
+ * Coverage.class.name
21
+ * Coverage.class.value
22
+ * Coverage.class:group
23
+ * Coverage.class:plan
24
+ * Coverage.identifier
25
+ * Coverage.meta
26
+ * Coverage.meta.lastUpdated
27
+ * Coverage.payor
28
+ * Coverage.period
29
+ * Coverage.relationship
30
+ * Coverage.status
31
+ * Coverage.subscriberId
32
+ )
33
+
34
+ id :c4bb_v110_coverage_must_support_test
35
+
36
+ def resource_type
37
+ 'Coverage'
38
+ end
39
+
40
+ def self.metadata
41
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
42
+ end
43
+
44
+ def scratch_resources
45
+ scratch[:coverage_resources] ||= {}
46
+ end
47
+
48
+ run do
49
+ perform_must_support_test(all_scratch_resources)
50
+ end
51
+ end
52
+ end
53
+ end
@@ -0,0 +1,39 @@
1
+ require_relative '../../../read_test'
2
+ require 'json'
3
+
4
+ module CarinForBlueButtonTestKit
5
+ module CARIN4BBV110
6
+ class CoverageReadTest < Inferno::Test
7
+ include CarinForBlueButtonTestKit::ReadTest
8
+
9
+ title 'Server returns correct Coverage resource from Coverage read interaction'
10
+ description 'A server SHALL support the Coverage read interaction.'
11
+
12
+ id :c4bb_v110_coverage_read_test
13
+
14
+ input :coverage_ids,
15
+ title: "coverage IDs",
16
+ type: 'text',
17
+ description: "coverage Resource ID"
18
+
19
+ input_order :url, :smart_credentials, :coverage_ids
20
+
21
+ def resource_type
22
+ 'Coverage'
23
+ end
24
+
25
+ def scratch_resources
26
+ scratch[:coverage_resources] ||= {}
27
+ end
28
+
29
+ def coverage_id_list
30
+ return [nil] unless respond_to? :coverage_ids
31
+ coverage_ids.split(',').map(&:strip)
32
+ end
33
+
34
+ run do
35
+ perform_read_test(coverage_id_list)
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,43 @@
1
+ require_relative '../../../validation_test'
2
+ require_relative './coverage_read_test'
3
+
4
+ module CarinForBlueButtonTestKit
5
+ module CARIN4BBV110
6
+ class CoverageValidationTest < Inferno::Test
7
+ include CarinForBlueButtonTestKit::ValidationTest
8
+ include CarinForBlueButtonTestKit::CARIN4BBV110
9
+
10
+ id :c4bb_v110_coverage_validation_test
11
+ title 'Coverage resources returned during previous tests conform to the C4BB Coverage'
12
+ description %(
13
+ This test verifies resources returned from the first search conform to
14
+ the [C4BB Coverage](http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Coverage).
15
+ Systems must demonstrate at least one valid example in order to pass this test.
16
+
17
+ It verifies the presence of mandatory elements and that elements with
18
+ required bindings contain appropriate values. CodeableConcept element
19
+ bindings will fail if none of their codings have a code/system belonging
20
+ to the bound ValueSet. Quantity, Coding, and code element bindings will
21
+ fail if their code/system are not found in the valueset.
22
+
23
+ )
24
+
25
+ output :dar_code_found, :dar_extension_found
26
+
27
+ def resource_type
28
+ 'Coverage'
29
+ end
30
+
31
+ def scratch_resources
32
+ scratch[:coverage_resources] ||= {}
33
+ end
34
+
35
+ run do
36
+ perform_validation_test(scratch_resources[:all] || [],
37
+ 'http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Coverage',
38
+ '1.1.0',
39
+ skip_if_empty: true)
40
+ end
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,58 @@
1
+ require_relative 'coverage/coverage_read_test'
2
+ require_relative 'coverage/coverage_validation_test'
3
+ require_relative 'coverage/coverage_must_support_test'
4
+
5
+ module CarinForBlueButtonTestKit
6
+ module CARIN4BBV110
7
+ class CoverageGroup < Inferno::TestGroup
8
+ title 'Coverage Tests'
9
+ short_description 'Verify support for the server capabilities required by the C4BB Coverage.'
10
+ description %(
11
+ # Background
12
+
13
+ The CARIN for Blue Button Coverage sequence verifies that the system under test is
14
+ able to provide correct responses for Coverage queries. These queries
15
+ must contain resources conforming to the C4BB Coverage as
16
+ specified in the CARIN for Blue Button v1.1.0 Implementation Guide.
17
+
18
+ # Testing Methodology
19
+
20
+
21
+ ## Must Support
22
+ Each profile contains elements marked as "must support". This test
23
+ sequence expects to see each of these elements at least once. If at
24
+ least one cannot be found, the test will fail. The test will look
25
+ through the Coverage resources found in the first test for these
26
+ elements.
27
+
28
+ ## Profile Validation
29
+ Each resource returned from the first search is expected to conform to
30
+ the [C4BB Coverage](http://hl7.org/fhir/us/carin-bb/StructureDefinition/C4BB-Coverage). Each element is checked against
31
+ terminology binding and cardinality requirements.
32
+
33
+ Elements with a required binding are validated against their bound
34
+ ValueSet. If the code/system in the element is not part of the ValueSet,
35
+ then the test will fail.
36
+
37
+ ## Reference Validation
38
+ At least one instance of each external reference in elements marked as
39
+ "must support" within the resources provided by the system must resolve.
40
+ The test will attempt to read each reference found and will fail if no
41
+ read succeeds.
42
+
43
+ )
44
+
45
+ id :c4bb_v110_coverage
46
+ run_as_group
47
+
48
+ def self.metadata
49
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'coverage', 'metadata.yml'), aliases: true))
50
+ end
51
+
52
+ test from: :c4bb_v110_coverage_read_test
53
+ test from: :c4bb_v110_coverage_validation_test
54
+ test from: :c4bb_v110_coverage_must_support_test
55
+ end
56
+ end
57
+ end
58
+
@@ -0,0 +1,38 @@
1
+ require_relative '../../../carin_search_test'
2
+ require_relative '../../../generator/group_metadata'
3
+
4
+ module CarinForBlueButtonTestKit
5
+ module CARIN4BBV110
6
+ class ExplanationOfBenefitExplanationOfBenefit_AllSearchTest < Inferno::Test
7
+ include CarinForBlueButtonTestKit::CarinSearchTest
8
+
9
+ title 'Server returns valid results for ExplanationOfBenefit search by id + _include=ExplanationOfBenefit:*'
10
+ description %(
11
+ Tests that the server responds correctly when using _include="ExplanationOfBenefit:*" as a search parameter
12
+
13
+ )
14
+
15
+ def self.properties
16
+ @properties ||= SearchTestProperties.new(
17
+ resource_type: 'ExplanationOfBenefit',
18
+ search_param_names: ['_include']
19
+ )
20
+ end
21
+
22
+ id :c4bb_v110_explanation_of_benefit_include_ExplanationOfBenefit_All_search_test
23
+
24
+ input :c4bb_v110_explanation_of_benefit__id_search_test_param,
25
+ title: 'ExplanationOfBenefit search parameter for _id',
26
+ type: 'text',
27
+ description: 'ExplanationOfBenefit search parameter: _id'
28
+
29
+ def self.metadata
30
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
31
+ end
32
+
33
+ run do
34
+ run_search_test('ExplanationOfBenefit:*', include_search: true, resource_id: c4bb_v110_explanation_of_benefit__id_search_test_param)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,38 @@
1
+ require_relative '../../../carin_search_test'
2
+ require_relative '../../../generator/group_metadata'
3
+
4
+ module CarinForBlueButtonTestKit
5
+ module CARIN4BBV110
6
+ class ExplanationOfBenefitExplanationOfBenefit_careteamSearchTest < Inferno::Test
7
+ include CarinForBlueButtonTestKit::CarinSearchTest
8
+
9
+ title 'Server returns valid results for ExplanationOfBenefit search by id + _include=ExplanationOfBenefit:care-team'
10
+ description %(
11
+ Tests that the server responds correctly when using _include="ExplanationOfBenefit:care-team" as a search parameter
12
+
13
+ )
14
+
15
+ def self.properties
16
+ @properties ||= SearchTestProperties.new(
17
+ resource_type: 'ExplanationOfBenefit',
18
+ search_param_names: ['_include']
19
+ )
20
+ end
21
+
22
+ id :c4bb_v110_explanation_of_benefit_include_ExplanationOfBenefit_careteam_search_test
23
+
24
+ input :c4bb_v110_explanation_of_benefit__id_search_test_param,
25
+ title: 'ExplanationOfBenefit search parameter for _id',
26
+ type: 'text',
27
+ description: 'ExplanationOfBenefit search parameter: _id'
28
+
29
+ def self.metadata
30
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
31
+ end
32
+
33
+ run do
34
+ run_search_test('ExplanationOfBenefit:care-team', include_search: true, resource_id: c4bb_v110_explanation_of_benefit__id_search_test_param)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,38 @@
1
+ require_relative '../../../carin_search_test'
2
+ require_relative '../../../generator/group_metadata'
3
+
4
+ module CarinForBlueButtonTestKit
5
+ module CARIN4BBV110
6
+ class ExplanationOfBenefitExplanationOfBenefit_coverageSearchTest < Inferno::Test
7
+ include CarinForBlueButtonTestKit::CarinSearchTest
8
+
9
+ title 'Server returns valid results for ExplanationOfBenefit search by id + _include=ExplanationOfBenefit:coverage'
10
+ description %(
11
+ Tests that the server responds correctly when using _include="ExplanationOfBenefit:coverage" as a search parameter
12
+
13
+ )
14
+
15
+ def self.properties
16
+ @properties ||= SearchTestProperties.new(
17
+ resource_type: 'ExplanationOfBenefit',
18
+ search_param_names: ['_include']
19
+ )
20
+ end
21
+
22
+ id :c4bb_v110_explanation_of_benefit_include_ExplanationOfBenefit_coverage_search_test
23
+
24
+ input :c4bb_v110_explanation_of_benefit__id_search_test_param,
25
+ title: 'ExplanationOfBenefit search parameter for _id',
26
+ type: 'text',
27
+ description: 'ExplanationOfBenefit search parameter: _id'
28
+
29
+ def self.metadata
30
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
31
+ end
32
+
33
+ run do
34
+ run_search_test('ExplanationOfBenefit:coverage', include_search: true, resource_id: c4bb_v110_explanation_of_benefit__id_search_test_param)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,38 @@
1
+ require_relative '../../../carin_search_test'
2
+ require_relative '../../../generator/group_metadata'
3
+
4
+ module CarinForBlueButtonTestKit
5
+ module CARIN4BBV110
6
+ class ExplanationOfBenefitExplanationOfBenefit_insurerSearchTest < Inferno::Test
7
+ include CarinForBlueButtonTestKit::CarinSearchTest
8
+
9
+ title 'Server returns valid results for ExplanationOfBenefit search by id + _include=ExplanationOfBenefit:insurer'
10
+ description %(
11
+ Tests that the server responds correctly when using _include="ExplanationOfBenefit:insurer" as a search parameter
12
+
13
+ )
14
+
15
+ def self.properties
16
+ @properties ||= SearchTestProperties.new(
17
+ resource_type: 'ExplanationOfBenefit',
18
+ search_param_names: ['_include']
19
+ )
20
+ end
21
+
22
+ id :c4bb_v110_explanation_of_benefit_include_ExplanationOfBenefit_insurer_search_test
23
+
24
+ input :c4bb_v110_explanation_of_benefit__id_search_test_param,
25
+ title: 'ExplanationOfBenefit search parameter for _id',
26
+ type: 'text',
27
+ description: 'ExplanationOfBenefit search parameter: _id'
28
+
29
+ def self.metadata
30
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
31
+ end
32
+
33
+ run do
34
+ run_search_test('ExplanationOfBenefit:insurer', include_search: true, resource_id: c4bb_v110_explanation_of_benefit__id_search_test_param)
35
+ end
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,38 @@
1
+ require_relative '../../../carin_search_test'
2
+ require_relative '../../../generator/group_metadata'
3
+
4
+ module CarinForBlueButtonTestKit
5
+ module CARIN4BBV110
6
+ class ExplanationOfBenefitExplanationOfBenefit_patientSearchTest < Inferno::Test
7
+ include CarinForBlueButtonTestKit::CarinSearchTest
8
+
9
+ title 'Server returns valid results for ExplanationOfBenefit search by id + _include=ExplanationOfBenefit:patient'
10
+ description %(
11
+ Tests that the server responds correctly when using _include="ExplanationOfBenefit:patient" as a search parameter
12
+
13
+ )
14
+
15
+ def self.properties
16
+ @properties ||= SearchTestProperties.new(
17
+ resource_type: 'ExplanationOfBenefit',
18
+ search_param_names: ['_include']
19
+ )
20
+ end
21
+
22
+ id :c4bb_v110_explanation_of_benefit_include_ExplanationOfBenefit_patient_search_test
23
+
24
+ input :c4bb_v110_explanation_of_benefit__id_search_test_param,
25
+ title: 'ExplanationOfBenefit search parameter for _id',
26
+ type: 'text',
27
+ description: 'ExplanationOfBenefit search parameter: _id'
28
+
29
+ def self.metadata
30
+ @metadata ||= Generator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
31
+ end
32
+
33
+ run do
34
+ run_search_test('ExplanationOfBenefit:patient', include_search: true, resource_id: c4bb_v110_explanation_of_benefit__id_search_test_param)
35
+ end
36
+ end
37
+ end
38
+ end