cancer_registry_reporting_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 (262) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +201 -0
  3. data/config/presets/hdea_report_preset.json +14 -0
  4. data/config/presets/inferno_reference_server_preset.json.erb +84 -0
  5. data/lib/cancer_registry_reporting_test_kit/bundle_parse.rb +161 -0
  6. data/lib/cancer_registry_reporting_test_kit/docs/ehr_suite_description.md +134 -0
  7. data/lib/cancer_registry_reporting_test_kit/docs/hdea_suite_description.md +108 -0
  8. data/lib/cancer_registry_reporting_test_kit/ehr_suite/ehr_capability_statement/mcode_capability_statement_profile_support.rb +40 -0
  9. data/lib/cancer_registry_reporting_test_kit/ehr_suite/ehr_data_access_group.rb +131 -0
  10. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/medication_administration/medication_administration_must_support_test.rb +43 -0
  11. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/medication_administration/medication_administration_search_test.rb +51 -0
  12. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/medication_administration/medication_administration_validation_test.rb +41 -0
  13. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/medication_administration/metadata.yml +72 -0
  14. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/medication_administration_group.rb +72 -0
  15. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/medication_request/medication_request_must_support_test.rb +55 -0
  16. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/medication_request/medication_request_search_test.rb +55 -0
  17. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/medication_request/medication_request_validation_test.rb +38 -0
  18. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/medication_request/metadata.yml +94 -0
  19. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/medication_request_group.rb +73 -0
  20. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/primary_cancer_condition_group.rb +73 -0
  21. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/primary_condition/metadata.yml +100 -0
  22. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/primary_condition/primary_cancer_condition_must_support_test.rb +50 -0
  23. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/primary_condition/primary_cancer_condition_search_test.rb +70 -0
  24. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/primary_condition/primary_cancer_condition_validation_test.rb +39 -0
  25. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/radiotherapy_procedure/metadata.yml +99 -0
  26. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/radiotherapy_procedure/radiotherapy_procedure_must_support_test.rb +46 -0
  27. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/radiotherapy_procedure/radiotherapy_procedure_search_test.rb +51 -0
  28. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/radiotherapy_procedure/radiotherapy_procedure_validation_test.rb +37 -0
  29. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/radiotherapy_procedure_group.rb +83 -0
  30. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/secondary_cancer_condition_group.rb +68 -0
  31. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/secondary_condition/metadata.yml +102 -0
  32. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/secondary_condition/secondary_cancer_condition_must_support_test.rb +50 -0
  33. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/secondary_condition/secondary_cancer_condition_search_test.rb +70 -0
  34. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/secondary_condition/secondary_cancer_condition_validation_test.rb +39 -0
  35. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_distant_metastases_category/metadata.yml +65 -0
  36. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_distant_metastases_category/tnm_distant_metastases_category_must_support_test.rb +44 -0
  37. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_distant_metastases_category/tnm_distant_metastases_category_search_test.rb +69 -0
  38. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_distant_metastases_category/tnm_distant_metastases_category_validation_test.rb +39 -0
  39. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_distant_metastases_category_group.rb +74 -0
  40. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_primary_tumor_category/metadata.yml +64 -0
  41. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_primary_tumor_category/tnm_primary_tumor_category_must_support_test.rb +44 -0
  42. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_primary_tumor_category/tnm_primary_tumor_category_search_test.rb +69 -0
  43. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_primary_tumor_category/tnm_primary_tumor_category_validation_test.rb +39 -0
  44. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_primary_tumor_category_group.rb +73 -0
  45. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_regional_nodes_category/metadata.yml +64 -0
  46. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_regional_nodes_category/tnm_regional_nodes_category_must_support_test.rb +44 -0
  47. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_regional_nodes_category/tnm_regional_nodes_category_search_test.rb +69 -0
  48. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_regional_nodes_category/tnm_regional_nodes_category_validation_test.rb +39 -0
  49. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_regional_nodes_category_group.rb +73 -0
  50. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_stage_group/metadata.yml +68 -0
  51. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_stage_group/tnm_stage_group_must_support_test.rb +45 -0
  52. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_stage_group/tnm_stage_group_search_test.rb +69 -0
  53. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_stage_group/tnm_stage_group_validation_test.rb +39 -0
  54. data/lib/cancer_registry_reporting_test_kit/ehr_suite/mcode_data_access_resources/tnm_stage_group_group.rb +72 -0
  55. data/lib/cancer_registry_reporting_test_kit/ehr_suite.rb +69 -0
  56. data/lib/cancer_registry_reporting_test_kit/fhir_resource_navigation.rb +174 -0
  57. data/lib/cancer_registry_reporting_test_kit/hdea_generator/group_generator.rb +47 -0
  58. data/lib/cancer_registry_reporting_test_kit/hdea_generator/group_metadata.rb +86 -0
  59. data/lib/cancer_registry_reporting_test_kit/hdea_generator/group_metadata_extractor.rb +205 -0
  60. data/lib/cancer_registry_reporting_test_kit/hdea_generator/ig_loader.rb +78 -0
  61. data/lib/cancer_registry_reporting_test_kit/hdea_generator/ig_metadata.rb +26 -0
  62. data/lib/cancer_registry_reporting_test_kit/hdea_generator/ig_metadata_extractor.rb +78 -0
  63. data/lib/cancer_registry_reporting_test_kit/hdea_generator/ig_resources.rb +56 -0
  64. data/lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_metadata_extractor.rb +399 -0
  65. data/lib/cancer_registry_reporting_test_kit/hdea_generator/must_support_test_generator.rb +134 -0
  66. data/lib/cancer_registry_reporting_test_kit/hdea_generator/naming.rb +168 -0
  67. data/lib/cancer_registry_reporting_test_kit/hdea_generator/special_cases.rb +43 -0
  68. data/lib/cancer_registry_reporting_test_kit/hdea_generator/templates/must_support.rb.erb +41 -0
  69. data/lib/cancer_registry_reporting_test_kit/hdea_generator/templates/validation.rb.erb +35 -0
  70. data/lib/cancer_registry_reporting_test_kit/hdea_generator/terminology_binding_metadata_extractor.rb +118 -0
  71. data/lib/cancer_registry_reporting_test_kit/hdea_generator/validation_test_generator.rb +125 -0
  72. data/lib/cancer_registry_reporting_test_kit/hdea_generator/value_extractor.rb +134 -0
  73. data/lib/cancer_registry_reporting_test_kit/hdea_generator.rb +66 -0
  74. data/lib/cancer_registry_reporting_test_kit/hdea_suite/author/author_validation_test.rb +61 -0
  75. data/lib/cancer_registry_reporting_test_kit/hdea_suite/author/organization_metadata.yml +47 -0
  76. data/lib/cancer_registry_reporting_test_kit/hdea_suite/author/organization_must_support_test.rb +73 -0
  77. data/lib/cancer_registry_reporting_test_kit/hdea_suite/author/practitioner_metadata.yml +51 -0
  78. data/lib/cancer_registry_reporting_test_kit/hdea_suite/author/practitioner_must_support_test.rb +73 -0
  79. data/lib/cancer_registry_reporting_test_kit/hdea_suite/author/practitioner_role_metadata.yml +48 -0
  80. data/lib/cancer_registry_reporting_test_kit/hdea_suite/author/practitioner_role_must_support_test.rb +66 -0
  81. data/lib/cancer_registry_reporting_test_kit/hdea_suite/bundle_resources_group.rb +213 -0
  82. data/lib/cancer_registry_reporting_test_kit/hdea_suite/ccrr_content_bundle_parse_and_validation_test.rb +67 -0
  83. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/allergy_intolerance/allergy_intolerance_must_support_test.rb +46 -0
  84. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/allergy_intolerance/allergy_intolerance_validation_test.rb +35 -0
  85. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/allergy_intolerance/metadata.yml +36 -0
  86. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/care_plan/care_plan_must_support_test.rb +48 -0
  87. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/care_plan/care_plan_validation_test.rb +35 -0
  88. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/care_plan/metadata.yml +50 -0
  89. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/ccrr_content_bundle/ccrr_content_bundle_must_support_test.rb +43 -0
  90. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/ccrr_content_bundle/metadata.yml +36 -0
  91. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/central_cancer_registry_primary_cancer_condition/central_cancer_registry_primary_cancer_condition_must_support_test.rb +59 -0
  92. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/central_cancer_registry_primary_cancer_condition/central_cancer_registry_primary_cancer_condition_validation_test.rb +35 -0
  93. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/central_cancer_registry_primary_cancer_condition/metadata.yml +86 -0
  94. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/composition/composition_must_support_test.rb +109 -0
  95. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/composition/composition_validation_test.rb +35 -0
  96. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/composition/metadata.yml +272 -0
  97. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/condition/condition_must_support_test.rb +45 -0
  98. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/condition/condition_validation_test.rb +35 -0
  99. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/condition/metadata.yml +33 -0
  100. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/diagnostic_report_lab/diagnostic_report_lab_must_support_test.rb +49 -0
  101. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/diagnostic_report_lab/diagnostic_report_lab_validation_test.rb +35 -0
  102. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/diagnostic_report_lab/metadata.yml +57 -0
  103. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/diagnostic_report_note/diagnostic_report_note_must_support_test.rb +53 -0
  104. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/diagnostic_report_note/diagnostic_report_note_validation_test.rb +35 -0
  105. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/diagnostic_report_note/metadata.yml +75 -0
  106. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/document_reference/document_reference_must_support_test.rb +57 -0
  107. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/document_reference/document_reference_validation_test.rb +35 -0
  108. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/document_reference/metadata.yml +68 -0
  109. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/encounter/encounter_must_support_test.rb +59 -0
  110. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/encounter/encounter_validation_test.rb +35 -0
  111. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/encounter/metadata.yml +73 -0
  112. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/mcode_radiotherapy_course_summary/mcode_radiotherapy_course_summary_must_support_test.rb +52 -0
  113. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/mcode_radiotherapy_course_summary/mcode_radiotherapy_course_summary_validation_test.rb +35 -0
  114. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/mcode_radiotherapy_course_summary/metadata.yml +59 -0
  115. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/mcode_secondary_cancer_condition/mcode_secondary_cancer_condition_must_support_test.rb +56 -0
  116. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/mcode_secondary_cancer_condition/mcode_secondary_cancer_condition_validation_test.rb +35 -0
  117. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/mcode_secondary_cancer_condition/metadata.yml +77 -0
  118. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/mcode_tnm_stage_group/mcode_tnm_stage_group_must_support_test.rb +48 -0
  119. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/mcode_tnm_stage_group/mcode_tnm_stage_group_validation_test.rb +35 -0
  120. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/mcode_tnm_stage_group/metadata.yml +46 -0
  121. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/medication/medication_must_support_test.rb +41 -0
  122. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/medication/medication_validation_test.rb +35 -0
  123. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/medication/metadata.yml +26 -0
  124. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/medication_administration/medication_administration_must_support_test.rb +48 -0
  125. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/medication_administration/medication_administration_validation_test.rb +35 -0
  126. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/medication_administration/metadata.yml +48 -0
  127. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/medication_request/medication_request_must_support_test.rb +57 -0
  128. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/medication_request/medication_request_validation_test.rb +35 -0
  129. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/medication_request/metadata.yml +86 -0
  130. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/medication_statement/medication_statement_must_support_test.rb +41 -0
  131. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/medication_statement/medication_statement_validation_test.rb +35 -0
  132. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/medication_statement/metadata.yml +26 -0
  133. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/observation/metadata.yml +26 -0
  134. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/observation/observation_must_support_test.rb +41 -0
  135. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/observation/observation_validation_test.rb +35 -0
  136. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/observation_lab/metadata.yml +53 -0
  137. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/observation_lab/observation_lab_must_support_test.rb +50 -0
  138. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/observation_lab/observation_lab_validation_test.rb +35 -0
  139. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/odh_usual_work/metadata.yml +81 -0
  140. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/odh_usual_work/odh_usual_work_must_support_test.rb +49 -0
  141. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/odh_usual_work/odh_usual_work_validation_test.rb +35 -0
  142. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/organization/metadata.yml +46 -0
  143. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/organization/organization_must_support_test.rb +55 -0
  144. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/organization/organization_validation_test.rb +35 -0
  145. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/patient/metadata.yml +51 -0
  146. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/patient/patient_must_support_test.rb +58 -0
  147. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/patient/patient_validation_test.rb +35 -0
  148. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/practitioner/metadata.yml +50 -0
  149. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/practitioner/practitioner_must_support_test.rb +55 -0
  150. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/practitioner/practitioner_validation_test.rb +35 -0
  151. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/practitioner_role/metadata.yml +47 -0
  152. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/practitioner_role/practitioner_role_must_support_test.rb +49 -0
  153. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/practitioner_role/practitioner_role_validation_test.rb +35 -0
  154. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/procedure/metadata.yml +37 -0
  155. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/procedure/procedure_must_support_test.rb +44 -0
  156. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/procedure/procedure_validation_test.rb +35 -0
  157. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/service_request/metadata.yml +26 -0
  158. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/service_request/service_request_must_support_test.rb +41 -0
  159. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/service_request/service_request_validation_test.rb +35 -0
  160. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/smokingstatus/metadata.yml +58 -0
  161. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/smokingstatus/smokingstatus_must_support_test.rb +47 -0
  162. data/lib/cancer_registry_reporting_test_kit/hdea_suite/generated/v1.0.0/smokingstatus/smokingstatus_validation_test.rb +35 -0
  163. data/lib/cancer_registry_reporting_test_kit/hdea_suite.rb +80 -0
  164. data/lib/cancer_registry_reporting_test_kit/igs/README.md +21 -0
  165. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-mcode-cancer-related-medication-administration.json +1905 -0
  166. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-mcode-cancer-related-medication-request.json +3611 -0
  167. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-mcode-primary-cancer-condition.json +2246 -0
  168. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-mcode-radiotherapy-course-summary.json +2700 -0
  169. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-mcode-secondary-cancer-condition.json +2419 -0
  170. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-mcode-tnm-distant-metastases-category.json +2320 -0
  171. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-mcode-tnm-primary-tumor-category.json +2320 -0
  172. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-mcode-tnm-regional-nodes-category.json +2320 -0
  173. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-mcode-tnm-stage-group.json +2414 -0
  174. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-medicationstatement.profile.json +1578 -0
  175. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-observation.profile.json +3510 -0
  176. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-odh-UsualWork.json +7248 -0
  177. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-servicerequest.profile.json +3048 -0
  178. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-us-core-allergyintolerance.json +1842 -0
  179. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-us-core-careplan.json +1 -0
  180. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-us-core-condition.json +2154 -0
  181. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-us-core-diagnosticreport-lab.json +2002 -0
  182. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-us-core-diagnosticreport-note.json +2049 -0
  183. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-us-core-documentreference.json +1 -0
  184. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-us-core-encounter.json +1 -0
  185. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-us-core-medication.json +1 -0
  186. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-us-core-observation-lab.json +3153 -0
  187. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-us-core-organization.json +1 -0
  188. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-us-core-patient.json +1 -0
  189. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-us-core-practitioner.json +1 -0
  190. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-us-core-practitionerrole.json +1 -0
  191. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-us-core-procedure.json +1 -0
  192. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100/StructureDefinition-us-core-smokingstatus.json +1 -0
  193. data/lib/cancer_registry_reporting_test_kit/igs/ccrr_v100.tgz +0 -0
  194. data/lib/cancer_registry_reporting_test_kit/igs/package/.index.db +0 -0
  195. data/lib/cancer_registry_reporting_test_kit/igs/package/.index.json +4 -0
  196. data/lib/cancer_registry_reporting_test_kit/igs/package/CapabilityStatement-central-cancer-registry-reporting-ehr.json +1 -0
  197. data/lib/cancer_registry_reporting_test_kit/igs/package/ImplementationGuide-hl7.fhir.us.central-cancer-registry-reporting.json +1 -0
  198. data/lib/cancer_registry_reporting_test_kit/igs/package/StructureDefinition-cancer-encounter.json +1 -0
  199. data/lib/cancer_registry_reporting_test_kit/igs/package/StructureDefinition-cancer-patient.json +1 -0
  200. data/lib/cancer_registry_reporting_test_kit/igs/package/StructureDefinition-ccrr-composition.json +1 -0
  201. data/lib/cancer_registry_reporting_test_kit/igs/package/StructureDefinition-ccrr-content-bundle.json +1 -0
  202. data/lib/cancer_registry_reporting_test_kit/igs/package/StructureDefinition-ccrr-plandefinition.json +1 -0
  203. data/lib/cancer_registry_reporting_test_kit/igs/package/StructureDefinition-ccrr-reporting-bundle.json +1 -0
  204. data/lib/cancer_registry_reporting_test_kit/igs/package/StructureDefinition-central-cancer-registry-primary-cancer-condition.json +1 -0
  205. data/lib/cancer_registry_reporting_test_kit/igs/package/StructureDefinition-central-cancer-registry-reporting-messageheader.json +1 -0
  206. data/lib/cancer_registry_reporting_test_kit/igs/package/StructureDefinition-us-ph-patient.json +1 -0
  207. data/lib/cancer_registry_reporting_test_kit/igs/package/StructureDefinition-us-ph-tribal-affiliation-extension.json +1 -0
  208. data/lib/cancer_registry_reporting_test_kit/igs/package/ValueSet-cancer-core-reportability-codes.json +1 -0
  209. data/lib/cancer_registry_reporting_test_kit/igs/package/example/AllergyIntolerance-example.json +1 -0
  210. data/lib/cancer_registry_reporting_test_kit/igs/package/example/BodyStructure-jenny-m-chest-wall-lymph-nodes-treatment-volume.json +1 -0
  211. data/lib/cancer_registry_reporting_test_kit/igs/package/example/BodyStructure-jenny-m-chest-wall-treatment-volume.json +1 -0
  212. data/lib/cancer_registry_reporting_test_kit/igs/package/example/Bundle-ccrr-content-bundle-example.json +1 -0
  213. data/lib/cancer_registry_reporting_test_kit/igs/package/example/Bundle-central-cancer-registry-reporting-specification-bundle-example.json +1 -0
  214. data/lib/cancer_registry_reporting_test_kit/igs/package/example/Bundle-reporting-bundle-example.json +1 -0
  215. data/lib/cancer_registry_reporting_test_kit/igs/package/example/Composition-ccrr-composition-example.json +1 -0
  216. data/lib/cancer_registry_reporting_test_kit/igs/package/example/Condition-primary-cancer-condition-breast.json +1 -0
  217. data/lib/cancer_registry_reporting_test_kit/igs/package/example/Encounter-encounter-cancer-example.json +1 -0
  218. data/lib/cancer_registry_reporting_test_kit/igs/package/example/Endpoint-example-healthcare-endpoint.json +1 -0
  219. data/lib/cancer_registry_reporting_test_kit/igs/package/example/Endpoint-example-ph-endpoint.json +1 -0
  220. data/lib/cancer_registry_reporting_test_kit/igs/package/example/MedicationAdministration-cancer-related-medication-administration-example.json +1 -0
  221. data/lib/cancer_registry_reporting_test_kit/igs/package/example/MessageHeader-messageheader-example-reportheader.json +1 -0
  222. data/lib/cancer_registry_reporting_test_kit/igs/package/example/Observation-cancer-stage-group-example.json +1 -0
  223. data/lib/cancer_registry_reporting_test_kit/igs/package/example/Observation-tnm-clinical-distant-metastases-category-cM0.json +1 -0
  224. data/lib/cancer_registry_reporting_test_kit/igs/package/example/Observation-tnm-clinical-primary-tumor-category-cT3.json +1 -0
  225. data/lib/cancer_registry_reporting_test_kit/igs/package/example/Observation-tnm-clinical-regional-nodes-category-cN3.json +1 -0
  226. data/lib/cancer_registry_reporting_test_kit/igs/package/example/Organization-example-healthcare-org.json +1 -0
  227. data/lib/cancer_registry_reporting_test_kit/igs/package/example/Organization-example-pha-org.json +1 -0
  228. data/lib/cancer_registry_reporting_test_kit/igs/package/example/Patient-example.json +1 -0
  229. data/lib/cancer_registry_reporting_test_kit/igs/package/example/PlanDefinition-plandefinition-central-cancer-registry-reporting-example.json +1 -0
  230. data/lib/cancer_registry_reporting_test_kit/igs/package/example/Practitioner-1.json +1 -0
  231. data/lib/cancer_registry_reporting_test_kit/igs/package/example/Procedure-radiotherapy-example.json +1 -0
  232. data/lib/cancer_registry_reporting_test_kit/igs/package/openapi/central-cancer-registry-reporting-ehr.openapi.json +364 -0
  233. data/lib/cancer_registry_reporting_test_kit/igs/package/other/ig-r4.jsonX +1 -0
  234. data/lib/cancer_registry_reporting_test_kit/igs/package/other/spec.internals +293 -0
  235. data/lib/cancer_registry_reporting_test_kit/igs/package/other/validation-oo.json +1 -0
  236. data/lib/cancer_registry_reporting_test_kit/igs/package/other/validation-summary.json +1 -0
  237. data/lib/cancer_registry_reporting_test_kit/igs/package/package.json +30 -0
  238. data/lib/cancer_registry_reporting_test_kit/igs/package/xml/StructureDefinition-cancer-encounter.sch +19 -0
  239. data/lib/cancer_registry_reporting_test_kit/igs/package/xml/StructureDefinition-cancer-patient.sch +175 -0
  240. data/lib/cancer_registry_reporting_test_kit/igs/package/xml/StructureDefinition-ccrr-composition.sch +61 -0
  241. data/lib/cancer_registry_reporting_test_kit/igs/package/xml/StructureDefinition-ccrr-content-bundle.sch +12 -0
  242. data/lib/cancer_registry_reporting_test_kit/igs/package/xml/StructureDefinition-ccrr-plandefinition.sch +331 -0
  243. data/lib/cancer_registry_reporting_test_kit/igs/package/xml/StructureDefinition-ccrr-reporting-bundle.sch +12 -0
  244. data/lib/cancer_registry_reporting_test_kit/igs/package/xml/StructureDefinition-central-cancer-registry-primary-cancer-condition.sch +31 -0
  245. data/lib/cancer_registry_reporting_test_kit/igs/package/xml/StructureDefinition-central-cancer-registry-reporting-messageheader.sch +27 -0
  246. data/lib/cancer_registry_reporting_test_kit/igs/package/xml/StructureDefinition-us-ph-patient.sch +217 -0
  247. data/lib/cancer_registry_reporting_test_kit/igs/package/xml/StructureDefinition-us-ph-tribal-affiliation-extension.sch +36 -0
  248. data/lib/cancer_registry_reporting_test_kit/metadata.rb +71 -0
  249. data/lib/cancer_registry_reporting_test_kit/must_support_test.rb +263 -0
  250. data/lib/cancer_registry_reporting_test_kit/primitive_type.rb +7 -0
  251. data/lib/cancer_registry_reporting_test_kit/requirements/cancer-registry-reporting-test-kit_out_of_scope_requirements.csv +77 -0
  252. data/lib/cancer_registry_reporting_test_kit/requirements/cancer-registry-reporting-test-kit_requirements.csv +162 -0
  253. data/lib/cancer_registry_reporting_test_kit/requirements/generated/cancer-registry-reporting-test-kit_requirements_coverage.csv +161 -0
  254. data/lib/cancer_registry_reporting_test_kit/search_test.rb +897 -0
  255. data/lib/cancer_registry_reporting_test_kit/search_test_properties.rb +58 -0
  256. data/lib/cancer_registry_reporting_test_kit/validation_test.rb +68 -0
  257. data/lib/cancer_registry_reporting_test_kit/version.rb +6 -0
  258. data/lib/cancer_registry_reporting_test_kit.rb +6 -0
  259. data/lib/inferno_requirements_tools/ext/inferno_core/runnable.rb +22 -0
  260. data/lib/inferno_requirements_tools/tasks/requirements_coverage.rb +284 -0
  261. data/lib/requirements_config.yaml +22 -0
  262. metadata +341 -0
@@ -0,0 +1,51 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../search_test'
4
+ require_relative '../../../search_test_properties'
5
+ require_relative '../../../hdea_generator/group_metadata'
6
+
7
+ module CancerRegistryReportingTestKit
8
+ class MedicationAdministrationSearchTest < Inferno::Test
9
+ include CancerRegistryReportingTestKit::SearchTest
10
+
11
+ title 'Server returns valid results for MedicationAdministration search by patient'
12
+ description %(
13
+ A server SHALL support searching by the
14
+ patient search parameter on the MedicationAdministration resource. This test
15
+ will pass if resources are returned and match the search criteria. If
16
+ none are returned, the test is skipped.
17
+
18
+ Because this is the first search of the sequence, resources in the
19
+ response will be used for subsequent tests.
20
+
21
+ Additionally, this test will check that GET and POST search methods
22
+ return the same number of results.
23
+ )
24
+
25
+ id :ccrr_medication_administration_search_test
26
+ input :patient_ids,
27
+ title: 'Patient IDs',
28
+ description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements.'
29
+
30
+ def self.properties
31
+ @properties ||= SearchTestProperties.new(
32
+ first_search: true,
33
+ resource_type: 'MedicationAdministration',
34
+ search_param_names: %w[patient],
35
+ test_post_search: false
36
+ )
37
+ end
38
+
39
+ def self.metadata
40
+ @metadata ||= HdeaGenerator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
41
+ end
42
+
43
+ def scratch_resources
44
+ scratch[:medication_administration_resources] ||= {}
45
+ end
46
+
47
+ run do
48
+ run_search_test
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../validation_test'
4
+
5
+ module CancerRegistryReportingTestKit
6
+ class MedicationAdministrationValidationTest < Inferno::Test
7
+ include CancerRegistryReportingTestKit::ValidationTest
8
+
9
+ id :ccrr_medication_administration_validation_test
10
+ title 'MedicationAdministration resources returned during previous tests conform to the mCODE Cancer-Related Medication Administration Profile'
11
+ description %(
12
+ This test verifies resources returned from the first search conform to
13
+ the [mCODE Cancer-Related Medication Administration Profile](https://hl7.org/fhir/us/mcode/STU3/StructureDefinition-mcode-cancer-related-medication-administration.html).
14
+ Systems must demonstrate at least one valid example in order to pass this test.
15
+
16
+ It verifies the presence of mandatory elements and that elements with
17
+ required bindings contain appropriate values. CodeableConcept element
18
+ bindings will fail if none of their codings have a code/system belonging
19
+ to the bound ValueSet. Quantity, Coding, and code element bindings will
20
+ fail if their code/system are not found in the valueset.
21
+
22
+ )
23
+
24
+ verifies_requirements 'hl7.fhir.us.mcode_3.0.0@83'
25
+
26
+ def resource_type
27
+ 'MedicationAdministration'
28
+ end
29
+
30
+ def scratch_resources
31
+ scratch[:medication_administration_resources] ||= {}
32
+ end
33
+
34
+ run do
35
+ perform_validation_test(scratch_resources[:all] || [],
36
+ 'http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-cancer-related-medication-administration',
37
+ '3.0.0',
38
+ skip_if_empty: true)
39
+ end
40
+ end
41
+ end
@@ -0,0 +1,72 @@
1
+ ---
2
+ :name: mcode_cancer_related_medication_administration
3
+ :class_name: McodeCancerRelatedMedicationAdministrationSequence
4
+ :version: v1.0.0
5
+ :reformatted_version: v100
6
+ :resource: MedicationAdministration
7
+ :profile_url: http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-cancer-related-medication-administration
8
+ :profile_name: Cancer-Related Medication Administration Profile
9
+ :profile_version: 3.0.0
10
+ :title: Cancer-Related Medication Administration
11
+ :short_description: Verify support for the server capabilities required by the Cancer-Related
12
+ Medication Administration Profile.
13
+ :must_supports:
14
+ :extensions:
15
+ - :id: MedicationAdministration.extension
16
+ :path: extension
17
+ :url:
18
+ - :id: MedicationAdministration.extension:treatmentIntent
19
+ :path: extension
20
+ :url: http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-procedure-intent
21
+ :slices: []
22
+ :elements:
23
+ - :path: status
24
+ - :path: statusReason
25
+ - :path: medication[x]
26
+ :types:
27
+ - Reference
28
+ - :path: subject
29
+ :types:
30
+ - Reference
31
+ :target_profiles:
32
+ - http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-cancer-patient
33
+ - :path: effective[x]
34
+ - :path: reasonCode
35
+ - :path: reasonReference
36
+ :types:
37
+ - Reference
38
+ :target_profiles:
39
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition-problems-health-concerns
40
+ :mandatory_elements:
41
+ - MedicationAdministration.status
42
+ - MedicationAdministration.medication[x]
43
+ - MedicationAdministration.subject
44
+ - MedicationAdministration.effective[x]
45
+ - MedicationAdministration.performer.actor
46
+ :tests: []
47
+ :id: ccrr_v100_medication_administration
48
+ :file_name: medication_administration_group.rb
49
+ :searches:
50
+ - :expectation: SHALL
51
+ :names:
52
+ - patient
53
+ - effective
54
+ :search_definitions:
55
+ :patient:
56
+ :paths:
57
+ - subject
58
+ :full_paths:
59
+ - Condition.subject
60
+ :comparators: {}
61
+ :values: []
62
+ :type: Reference
63
+ :contains_multiple: false
64
+ :multiple_or: MAY
65
+ :effective-time:
66
+ :paths:
67
+ - effective
68
+ :full_paths:
69
+ - MedicationAdministration.effective[x]
70
+ :comparators: {}
71
+ :contains_multiple: false
72
+ :multiple_or: MAY
@@ -0,0 +1,72 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'medication_administration/medication_administration_search_test'
4
+ require_relative 'medication_administration/medication_administration_must_support_test'
5
+ require_relative 'medication_administration/medication_administration_validation_test'
6
+
7
+ module CancerRegistryReportingTestKit
8
+ class EHRMedicationAdministrationTests < Inferno::TestGroup
9
+ title 'mCODE Cancer-Related Medication Administration'
10
+ description %(
11
+ # Background
12
+ The mCODE Cancer-Related Medication Administration group verifies that the system under test is
13
+ able to provide correct responses for Cancer-Related MedicationAdministration queries. These queries
14
+ return resources conforming to the [mCODE Cancer-Related Medication Administration Profile](https://hl7.org/fhir/us/mcode/STU3/StructureDefinition-mcode-cancer-related-medication-administration.html)
15
+ as specified in the mCODE v3.0.0 Implementation Guide.
16
+
17
+ # Testing Methodology
18
+ ## Searching
19
+ This test sequence will first perform each required search associated
20
+ with this resource. This sequence will perform searches with the
21
+ following parameters:
22
+
23
+ * patient
24
+
25
+ ### Search Parameters
26
+ The first search uses values from the **Patient IDs** input as provided by the tester.
27
+ Any subsequent searches will look for its parameter values
28
+ from the results of the first search. For example, the `identifier`
29
+ search in the patient sequence is performed by looking for an existing
30
+ `Patient.identifier` from any of the resources returned in the first
31
+ search. If a value cannot be found this way, the search is skipped.
32
+
33
+ ### Search Validation
34
+ Inferno will retrieve up to the first 20 bundle pages of the reply for
35
+ Medication Administration resources and save them for subsequent tests. Each of
36
+ these resources is then checked to see if it matches the searched
37
+ parameters in accordance with [FHIR search
38
+ guidelines](https://www.hl7.org/fhir/search.html). The test will fail,
39
+ for example, if a Patient search for `gender=male` returns a `female`
40
+ patient.
41
+
42
+ ## Must Support
43
+ Each profile contains elements marked as "must support". This test
44
+ sequence expects to see each of these elements at least once. If at
45
+ least one cannot be found, the test will fail. The test will look
46
+ through the Medication Administration resources found in the first test for these
47
+ elements.
48
+
49
+ ## Profile Validation
50
+ Each resource returned from the first search is expected to conform to
51
+ the [mCODE Cancer-Related Medication Administration Profile](http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-cancer-related-medication-administration).
52
+ Each element is checked against terminology binding and cardinality requirements.
53
+
54
+ Elements with a required binding are validated against their bound
55
+ ValueSet. If the code/system in the element is not part of the ValueSet,
56
+ then the test will fail.
57
+ )
58
+
59
+ id :ccrr_ehr_medication_administration
60
+ run_as_group
61
+
62
+ def self.metadata
63
+ @metadata ||= HdeaGenerator::GroupMetadata.new(YAML.load_file(
64
+ File.join(__dir__, 'medication_administration',
65
+ 'metadata.yml'), aliases: true
66
+ ))
67
+ end
68
+ test from: :ccrr_medication_administration_search_test
69
+ test from: :ccrr_medication_administration_validation_test
70
+ test from: :ccrr_medication_administration_must_support_test
71
+ end
72
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../must_support_test'
4
+
5
+ module CancerRegistryReportingTestKit
6
+ class MedicationRequestMustSupportTest < Inferno::Test
7
+ include CancerRegistryReportingTestKit::MustSupportTest
8
+
9
+ title 'All must support elements are provided in the mCODE Cancer-Related MedicationRequest resources returned'
10
+ description %(
11
+ CCRR EHRs SHALL be capable of populating all data elements as
12
+ part of the query results. This test will look through the MedicationRequest resources
13
+ found previously for the following must support elements:
14
+
15
+ * MedicationRequest.authoredOn
16
+ * MedicationRequest.category
17
+ * MedicationRequest.dispenseRequest
18
+ * MedicationRequest.dispenseRequest.numberOfRepeatsAllowed
19
+ * MedicationRequest.dispenseRequest.quantity
20
+ * MedicationRequest.dosageInstruction
21
+ * MedicationRequest.dosageInstruction.doseAndRate
22
+ * MedicationRequest.dosageInstruction.doseAndRate.dose[x]
23
+ * MedicationRequest.dosageInstruction.text
24
+ * MedicationRequest.dosageInstruction.timing
25
+ * MedicationRequest.encounter
26
+ * MedicationRequest.extension:treatmentIntent
27
+ * MedicationRequest.medication[x]
28
+ * MedicationRequest.reasonCode
29
+ * MedicationRequest.reasonReference
30
+ * MedicationRequest.reported[x]
31
+ * MedicationRequest.requester
32
+ * MedicationRequest.status
33
+ * MedicationRequest.statusReason
34
+ * MedicationRequest.subject
35
+ )
36
+
37
+ id :ccrr_medication_request_must_support_test
38
+
39
+ def resource_type
40
+ 'MedicationRequest'
41
+ end
42
+
43
+ def self.metadata
44
+ @metadata ||= HdeaGenerator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
45
+ end
46
+
47
+ def scratch_resources
48
+ scratch[:medication_request_resources] ||= {}
49
+ end
50
+
51
+ run do
52
+ perform_must_support_test(all_scratch_resources)
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../search_test'
4
+ require_relative '../../../hdea_generator/group_metadata'
5
+
6
+ module CancerRegistryReportingTestKit
7
+ class MedicationRequestSearchTest < Inferno::Test
8
+ include CancerRegistryReportingTestKit::SearchTest
9
+
10
+ title 'Server returns valid results for MedicationRequest search by patient + intent (order)'
11
+ description %(
12
+ A server SHALL support searching by
13
+ patient + intent search parameters on on the MedicationRequest resource. This test
14
+ will pass if resources are returned and match the search criteria. If
15
+ none are returned, the test is skipped.
16
+
17
+ Because this is the first search of the sequence, resources in the
18
+ response will be used for subsequent tests.
19
+
20
+ Additionally, this test will check that GET and POST search methods
21
+ return the same number of results.
22
+ )
23
+
24
+ id :ccrr_medication_request_search_test
25
+ input :patient_ids,
26
+ title: 'Patient IDs',
27
+ description: 'Comma separated list of patient IDs that in sum contain all MUST SUPPORT elements.'
28
+
29
+ def self.properties
30
+ @properties ||= USCoreTestKit::SearchTestProperties.new(
31
+ first_search: true,
32
+ fixed_value_search: true,
33
+ resource_type: 'MedicationRequest',
34
+ search_param_names: %w[patient intent],
35
+ possible_status_search: true,
36
+ test_medication_inclusion: true,
37
+ test_reference_variants: true,
38
+ multiple_or_search_params: ['intent'],
39
+ test_post_search: false
40
+ )
41
+ end
42
+
43
+ def self.metadata
44
+ @metadata ||= HdeaGenerator::GroupMetadata.new(YAML.load_file(File.join(__dir__, 'metadata.yml'), aliases: true))
45
+ end
46
+
47
+ def scratch_resources
48
+ scratch[:medication_request_resources] ||= {}
49
+ end
50
+
51
+ run do
52
+ run_search_test
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,38 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative '../../../validation_test'
4
+
5
+ module CancerRegistryReportingTestKit
6
+ class MedicationRequestValidationTest < Inferno::Test
7
+ include CancerRegistryReportingTestKit::ValidationTest
8
+
9
+ id :ccrr_medication_request_validation_test
10
+ title 'MedicationRequest resources returned during previous tests conform to the mCODE Cancer-Related Medication Request Profile'
11
+ description %(
12
+ This test verifies resources returned from the first search conform to
13
+ the [mCODE Cancer-Related Medication Request Profile](http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-cancer-related-medication-request).
14
+ Systems must demonstrate at least one valid example in order to pass this test.
15
+
16
+ It verifies the presence of mandatory elements and that elements with
17
+ required bindings contain appropriate values. CodeableConcept element
18
+ bindings will fail if none of their codings have a code/system belonging
19
+ to the bound ValueSet. Quantity, Coding, and code element bindings will
20
+ fail if their code/system are not found in the valueset.
21
+ )
22
+
23
+ def resource_type
24
+ 'MedicationRequest'
25
+ end
26
+
27
+ def scratch_resources
28
+ scratch[:medication_request_resources] ||= {}
29
+ end
30
+
31
+ run do
32
+ perform_validation_test(scratch_resources[:all] || [],
33
+ 'http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-cancer-related-medication-request',
34
+ '3.0.0',
35
+ skip_if_empty: true)
36
+ end
37
+ end
38
+ end
@@ -0,0 +1,94 @@
1
+ ---
2
+ :name: mcode_cancer_related_medication_request
3
+ :class_name: McodeCancerRelatedMedicationRequestSequence
4
+ :version: v1.0.0
5
+ :reformatted_version: v100
6
+ :resource: MedicationRequest
7
+ :profile_url: http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-cancer-related-medication-request
8
+ :profile_name: Cancer-Related Medication Request Profile
9
+ :profile_version: 3.0.0
10
+ :title: Cancer-Related Medication Request
11
+ :short_description: Verify support for the server capabilities required by the Cancer-Related
12
+ Medication Request Profile.
13
+ :must_supports:
14
+ :extensions:
15
+ - :id: MedicationRequest.extension:treatmentIntent
16
+ :path: extension
17
+ :url: http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-procedure-intent
18
+ :slices:
19
+ - :slice_id: MedicationRequest.category:us-core
20
+ :slice_name: us-core
21
+ :path: category
22
+ :discriminator:
23
+ :type: requiredBinding
24
+ :path: ''
25
+ :values:
26
+ - :system: http://terminology.hl7.org/CodeSystem/medicationrequest-category
27
+ :code: inpatient
28
+ - :system: http://terminology.hl7.org/CodeSystem/medicationrequest-category
29
+ :code: outpatient
30
+ - :system: http://terminology.hl7.org/CodeSystem/medicationrequest-category
31
+ :code: community
32
+ - :system: http://terminology.hl7.org/CodeSystem/medicationrequest-category
33
+ :code: discharge
34
+ :elements:
35
+ - :path: status
36
+ - :path: statusReason
37
+ - :path: intent
38
+ - :path: category
39
+ - :path: medication[x]
40
+ :types:
41
+ - Reference
42
+ - :path: subject
43
+ :types:
44
+ - Reference
45
+ :target_profiles:
46
+ - http://hl7.org/fhir/us/mcode/StructureDefinition/mcode-cancer-patient
47
+ - :path: requester
48
+ :types:
49
+ - Reference
50
+ :target_profiles:
51
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-practitioner
52
+ - :path: reasonCode
53
+ - :path: reasonReference
54
+ :types:
55
+ - Reference
56
+ :target_profiles:
57
+ - http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition-problems-health-concerns
58
+ :mandatory_elements:
59
+ - MedicationRequest.status
60
+ - MedicationRequest.intent
61
+ - MedicationRequest.medication[x]
62
+ - MedicationRequest.subject
63
+ - MedicationRequest.requester
64
+ - MedicationRequest.substitution.allowed[x]
65
+ :tests: []
66
+ :id: ccrr_v100_medication_request
67
+ :file_name: medication_request_group.rb
68
+ :searches:
69
+ - :expectation: SHALL
70
+ :names:
71
+ - patient
72
+ - intent
73
+ :search_definitions:
74
+ :patient:
75
+ :paths:
76
+ - subject
77
+ :full_paths:
78
+ - MedicationRequest.subject
79
+ :comparators: {}
80
+ :values: []
81
+ :type: Reference
82
+ :contains_multiple: false
83
+ :multiple_or: MAY
84
+ :intent:
85
+ :paths:
86
+ - intent
87
+ :full_paths:
88
+ - MedicationRequest.intent
89
+ :comparators: {}
90
+ :values:
91
+ - order
92
+ :type: code
93
+ :contains_multiple: false
94
+ :multiple_or: SHALL
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'medication_request/medication_request_search_test'
4
+ require_relative 'medication_request/medication_request_must_support_test'
5
+ require_relative 'medication_request/medication_request_validation_test'
6
+
7
+ module CancerRegistryReportingTestKit
8
+ class EHRMedicationRequestTests < Inferno::TestGroup
9
+ title 'mCODE Cancer-Related Medication Request'
10
+ description %(
11
+ # Background
12
+ The mCODE Cancer-Related Medication Request group verifies that the system under test is
13
+ able to provide correct responses for Cancer-Related MedicationRequest queries. These queries
14
+ return resources conforming to the [mCODE Cancer-Related Medication Request Profile](https://hl7.org/fhir/us/mcode/STU3/StructureDefinition-mcode-cancer-related-medication-request.html)
15
+ as specified in the mCODE v3.0.0 Implementation Guide.
16
+
17
+ # Testing Methodology
18
+ ## Searching
19
+ This test sequence will first perform each required search associated
20
+ with this resource. This sequence will perform searches with the
21
+ following parameters:
22
+
23
+ * patient + intent (order)
24
+
25
+ ### Search Parameters
26
+ The first search uses values from the **Patient IDs** input
27
+ and a fixed value of `order` for the intent.
28
+ Any subsequent searches will look for its parameter values
29
+ from the results of the first search. For example, the `identifier`
30
+ search in the patient sequence is performed by looking for an existing
31
+ `Patient.identifier` from any of the resources returned in the first
32
+ search. If a value cannot be found this way, the search is skipped.
33
+
34
+ ### Search Validation
35
+ Inferno will retrieve up to the first 20 bundle pages of the reply for
36
+ Condition resources and save them for subsequent tests. Each of
37
+ these resources is then checked to see if it matches the searched
38
+ parameters in accordance with [FHIR search
39
+ guidelines](https://www.hl7.org/fhir/search.html). The test will fail,
40
+ for example, if a Patient search for `gender=male` returns a `female`
41
+ patient.
42
+
43
+
44
+ ## Must Support
45
+ Each profile contains elements marked as "must support". This test
46
+ sequence expects to see each of these elements at least once. If at
47
+ least one cannot be found, the test will fail. The test will look
48
+ through the Condition resources found in the first test for these
49
+ elements.
50
+
51
+ ## Profile Validation
52
+ Each resource returned from the first search is expected to conform to
53
+ the [mCODE Cancer-Related Medication Request Profile](http://hl7.org/fhir/us/mcode/STU3/StructureDefinition-mcode-cancer-related-medication-request.html).
54
+ Each element is checked against terminology binding and cardinality requirements.
55
+
56
+ Elements with a required binding are validated against their bound
57
+ ValueSet. If the code/system in the element is not part of the ValueSet,
58
+ then the test will fail.
59
+ )
60
+ id :ccrr_ehr_medication_request
61
+ run_as_group
62
+
63
+ def self.metadata
64
+ @metadata ||= HdeaGenerator::GroupMetadata.new(YAML.load_file(
65
+ File.join(__dir__, 'medication_request',
66
+ 'metadata.yml'), aliases: true
67
+ ))
68
+ end
69
+ test from: :ccrr_medication_request_search_test
70
+ test from: :ccrr_medication_request_validation_test
71
+ test from: :ccrr_medication_request_must_support_test
72
+ end
73
+ end
@@ -0,0 +1,73 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative 'primary_condition/primary_cancer_condition_search_test'
4
+ require_relative 'primary_condition/primary_cancer_condition_must_support_test'
5
+ require_relative 'primary_condition/primary_cancer_condition_validation_test'
6
+
7
+ module CancerRegistryReportingTestKit
8
+ class EHRPrimaryConditionTests < Inferno::TestGroup
9
+ title 'mCODE Primary Cancer Condition'
10
+ description %(
11
+ # Background
12
+ The mCODE Primary Cancer Condition group verifies that the system under test is
13
+ able to provide correct responses for Primary Cancer Condition queries. These queries
14
+ return resources conforming to the [mCODE Primary Cancer Condition Profile](https://hl7.org/fhir/us/mcode/STU3/StructureDefinition-mcode-primary-cancer-condition.html)
15
+ as specified in the mCODE v3.0.0 Implementation Guide.
16
+
17
+ # Testing Methodology
18
+ ## Searching
19
+ This test sequence will first perform each required search associated
20
+ with this resource. This sequence will perform searches with the
21
+ following parameters:
22
+
23
+ * patient + category
24
+
25
+ ### Search Parameters
26
+ The first search uses values from the **Patient IDs** and
27
+ **Primary Cancer Condition category** inputs as provided by the tester.
28
+ Any subsequent searches will look for its parameter values
29
+ from the results of the first search. For example, the `identifier`
30
+ search in the patient sequence is performed by looking for an existing
31
+ `Patient.identifier` from any of the resources returned in the first
32
+ search. If a value cannot be found this way, the search is skipped.
33
+
34
+ ### Search Validation
35
+ Inferno will retrieve up to the first 20 bundle pages of the reply for
36
+ Condition resources and save them for subsequent tests. Each of
37
+ these resources is then checked to see if it matches the searched
38
+ parameters in accordance with [FHIR search
39
+ guidelines](https://www.hl7.org/fhir/search.html). The test will fail,
40
+ for example, if a Patient search for `gender=male` returns a `female`
41
+ patient.
42
+
43
+
44
+ ## Must Support
45
+ Each profile contains elements marked as "must support". This test
46
+ sequence expects to see each of these elements at least once. If at
47
+ least one cannot be found, the test will fail. The test will look
48
+ through the Condition resources found in the first test for these
49
+ elements.
50
+
51
+ ## Profile Validation
52
+ Each resource returned from the first search is expected to conform to
53
+ the [mCODE Primary Cancer Condition Profile](http://hl7.org/fhir/us/mcode/STU3/StructureDefinition-mcode-primary-cancer-condition.html).
54
+ Each element is checked against terminology binding and cardinality requirements.
55
+
56
+ Elements with a required binding are validated against their bound
57
+ ValueSet. If the code/system in the element is not part of the ValueSet,
58
+ then the test will fail.
59
+ )
60
+ id :ccrr_ehr_primary_cancer_condition
61
+ run_as_group
62
+
63
+ def self.metadata
64
+ @metadata ||= HdeaGenerator::GroupMetadata.new(YAML.load_file(
65
+ File.join(__dir__, 'primary_condition',
66
+ 'metadata.yml'), aliases: true
67
+ ))
68
+ end
69
+ test from: :ccrr_primary_cancer_condition_search_test
70
+ test from: :ccrr_primary_cancer_condition_validation_test
71
+ test from: :ccrr_primary_cancer_condition_must_support_test
72
+ end
73
+ end