Module: USCoreTestKit::ReadTest
- Included in:
- USCoreV311::AllergyIntoleranceReadTest, USCoreV311::BodyheightReadTest, USCoreV311::BodytempReadTest, USCoreV311::BodyweightReadTest, USCoreV311::BpReadTest, USCoreV311::CarePlanReadTest, USCoreV311::CareTeamReadTest, USCoreV311::ConditionReadTest, USCoreV311::DeviceReadTest, USCoreV311::DiagnosticReportLabReadTest, USCoreV311::DiagnosticReportNoteReadTest, USCoreV311::DocumentReferenceReadTest, USCoreV311::EncounterReadTest, USCoreV311::GoalReadTest, USCoreV311::HeadCircumferenceReadTest, USCoreV311::HeartrateReadTest, USCoreV311::ImmunizationReadTest, USCoreV311::MedicationRequestReadTest, USCoreV311::ObservationLabReadTest, USCoreV311::OrganizationReadTest, USCoreV311::PatientReadTest, USCoreV311::PediatricBmiForAgeReadTest, USCoreV311::PediatricWeightForHeightReadTest, USCoreV311::PractitionerReadTest, USCoreV311::ProcedureReadTest, USCoreV311::ProvenanceReadTest, USCoreV311::PulseOximetryReadTest, USCoreV311::ResprateReadTest, USCoreV311::SmokingstatusReadTest, USCoreV400::AllergyIntoleranceReadTest, USCoreV400::BloodPressureReadTest, USCoreV400::BmiReadTest, USCoreV400::BodyHeightReadTest, USCoreV400::BodyTemperatureReadTest, USCoreV400::BodyWeightReadTest, USCoreV400::CarePlanReadTest, USCoreV400::CareTeamReadTest, USCoreV400::ConditionReadTest, USCoreV400::DeviceReadTest, USCoreV400::DiagnosticReportLabReadTest, USCoreV400::DiagnosticReportNoteReadTest, USCoreV400::DocumentReferenceReadTest, USCoreV400::EncounterReadTest, USCoreV400::GoalReadTest, USCoreV400::HeadCircumferencePercentileReadTest, USCoreV400::HeadCircumferenceReadTest, USCoreV400::HeartRateReadTest, USCoreV400::ImmunizationReadTest, USCoreV400::MedicationRequestReadTest, USCoreV400::ObservationLabReadTest, USCoreV400::OrganizationReadTest, USCoreV400::PatientReadTest, USCoreV400::PediatricBmiForAgeReadTest, USCoreV400::PediatricWeightForHeightReadTest, USCoreV400::PractitionerReadTest, USCoreV400::ProcedureReadTest, USCoreV400::ProvenanceReadTest, USCoreV400::PulseOximetryReadTest, USCoreV400::RespiratoryRateReadTest, USCoreV400::SmokingstatusReadTest, USCoreV501::AllergyIntoleranceReadTest, USCoreV501::BloodPressureReadTest, USCoreV501::BmiReadTest, USCoreV501::BodyHeightReadTest, USCoreV501::BodyTemperatureReadTest, USCoreV501::BodyWeightReadTest, USCoreV501::CarePlanReadTest, USCoreV501::CareTeamReadTest, USCoreV501::ConditionEncounterDiagnosisReadTest, USCoreV501::ConditionProblemsHealthConcernsReadTest, USCoreV501::DeviceReadTest, USCoreV501::DiagnosticReportLabReadTest, USCoreV501::DiagnosticReportNoteReadTest, USCoreV501::DocumentReferenceReadTest, USCoreV501::EncounterReadTest, USCoreV501::GoalReadTest, USCoreV501::HeadCircumferencePercentileReadTest, USCoreV501::HeadCircumferenceReadTest, USCoreV501::HeartRateReadTest, USCoreV501::ImmunizationReadTest, USCoreV501::MedicationRequestReadTest, USCoreV501::ObservationClinicalTestReadTest, USCoreV501::ObservationImagingReadTest, USCoreV501::ObservationLabReadTest, USCoreV501::ObservationSdohAssessmentReadTest, USCoreV501::ObservationSexualOrientationReadTest, USCoreV501::ObservationSocialHistoryReadTest, USCoreV501::OrganizationReadTest, USCoreV501::PatientReadTest, USCoreV501::PediatricBmiForAgeReadTest, USCoreV501::PediatricWeightForHeightReadTest, USCoreV501::PractitionerReadTest, USCoreV501::PractitionerRoleReadTest, USCoreV501::ProcedureReadTest, USCoreV501::ProvenanceReadTest, USCoreV501::PulseOximetryReadTest, USCoreV501::QuestionnaireResponseReadTest, USCoreV501::RelatedPersonReadTest, USCoreV501::RespiratoryRateReadTest, USCoreV501::ServiceRequestReadTest, USCoreV501::SmokingstatusReadTest, USCoreV610::AllergyIntoleranceReadTest, USCoreV610::BloodPressureReadTest, USCoreV610::BmiReadTest, USCoreV610::BodyHeightReadTest, USCoreV610::BodyTemperatureReadTest, USCoreV610::BodyWeightReadTest, USCoreV610::CarePlanReadTest, USCoreV610::CareTeamReadTest, USCoreV610::ConditionEncounterDiagnosisReadTest, USCoreV610::ConditionProblemsHealthConcernsReadTest, USCoreV610::CoverageReadTest, USCoreV610::DeviceReadTest, USCoreV610::DiagnosticReportLabReadTest, USCoreV610::DiagnosticReportNoteReadTest, USCoreV610::DocumentReferenceReadTest, USCoreV610::EncounterReadTest, USCoreV610::GoalReadTest, USCoreV610::HeadCircumferencePercentileReadTest, USCoreV610::HeadCircumferenceReadTest, USCoreV610::HeartRateReadTest, USCoreV610::ImmunizationReadTest, USCoreV610::MedicationDispenseReadTest, USCoreV610::MedicationRequestReadTest, USCoreV610::ObservationClinicalResultReadTest, USCoreV610::ObservationLabReadTest, USCoreV610::ObservationOccupationReadTest, USCoreV610::ObservationPregnancyintentReadTest, USCoreV610::ObservationPregnancystatusReadTest, USCoreV610::ObservationScreeningAssessmentReadTest, USCoreV610::ObservationSexualOrientationReadTest, USCoreV610::OrganizationReadTest, USCoreV610::PatientReadTest, USCoreV610::PediatricBmiForAgeReadTest, USCoreV610::PediatricWeightForHeightReadTest, USCoreV610::PractitionerReadTest, USCoreV610::PractitionerRoleReadTest, USCoreV610::ProcedureReadTest, USCoreV610::ProvenanceReadTest, USCoreV610::PulseOximetryReadTest, USCoreV610::QuestionnaireResponseReadTest, USCoreV610::RelatedPersonReadTest, USCoreV610::RespiratoryRateReadTest, USCoreV610::ServiceRequestReadTest, USCoreV610::SimpleObservationReadTest, USCoreV610::SmokingstatusReadTest, USCoreV610::SpecimenReadTest, USCoreV700::AllergyIntoleranceReadTest, USCoreV700::AverageBloodPressureReadTest, USCoreV700::BloodPressureReadTest, USCoreV700::BmiReadTest, USCoreV700::BodyHeightReadTest, USCoreV700::BodyTemperatureReadTest, USCoreV700::BodyWeightReadTest, USCoreV700::CareExperiencePreferenceReadTest, USCoreV700::CarePlanReadTest, USCoreV700::CareTeamReadTest, USCoreV700::ConditionEncounterDiagnosisReadTest, USCoreV700::ConditionProblemsHealthConcernsReadTest, USCoreV700::CoverageReadTest, USCoreV700::DeviceReadTest, USCoreV700::DiagnosticReportLabReadTest, USCoreV700::DiagnosticReportNoteReadTest, USCoreV700::DocumentReferenceReadTest, USCoreV700::EncounterReadTest, USCoreV700::GoalReadTest, USCoreV700::HeadCircumferencePercentileReadTest, USCoreV700::HeadCircumferenceReadTest, USCoreV700::HeartRateReadTest, USCoreV700::ImmunizationReadTest, USCoreV700::LocationReadTest, USCoreV700::MedicationDispenseReadTest, USCoreV700::MedicationRequestReadTest, USCoreV700::ObservationClinicalResultReadTest, USCoreV700::ObservationLabReadTest, USCoreV700::ObservationOccupationReadTest, USCoreV700::ObservationPregnancyintentReadTest, USCoreV700::ObservationPregnancystatusReadTest, USCoreV700::ObservationScreeningAssessmentReadTest, USCoreV700::ObservationSexualOrientationReadTest, USCoreV700::OrganizationReadTest, USCoreV700::PatientReadTest, USCoreV700::PediatricBmiForAgeReadTest, USCoreV700::PediatricWeightForHeightReadTest, USCoreV700::PractitionerReadTest, USCoreV700::PractitionerRoleReadTest, USCoreV700::ProcedureReadTest, USCoreV700::ProvenanceReadTest, USCoreV700::PulseOximetryReadTest, USCoreV700::QuestionnaireResponseReadTest, USCoreV700::RelatedPersonReadTest, USCoreV700::RespiratoryRateReadTest, USCoreV700::ServiceRequestReadTest, USCoreV700::SimpleObservationReadTest, USCoreV700::SmokingstatusReadTest, USCoreV700::SpecimenReadTest, USCoreV700::TreatmentInterventionPreferenceReadTest, USCoreV800::AdiDocumentReferenceReadTest, USCoreV800::AllergyIntoleranceReadTest, USCoreV800::AverageBloodPressureReadTest, USCoreV800::BloodPressureReadTest, USCoreV800::BmiReadTest, USCoreV800::BodyHeightReadTest, USCoreV800::BodyTemperatureReadTest, USCoreV800::BodyWeightReadTest, USCoreV800::CareExperiencePreferenceReadTest, USCoreV800::CarePlanReadTest, USCoreV800::CareTeamReadTest, USCoreV800::ConditionEncounterDiagnosisReadTest, USCoreV800::ConditionProblemsHealthConcernsReadTest, USCoreV800::CoverageReadTest, USCoreV800::DeviceReadTest, USCoreV800::DiagnosticReportLabReadTest, USCoreV800::DiagnosticReportNoteReadTest, USCoreV800::DocumentReferenceReadTest, USCoreV800::EncounterReadTest, USCoreV800::GoalReadTest, USCoreV800::HeadCircumferencePercentileReadTest, USCoreV800::HeadCircumferenceReadTest, USCoreV800::HeartRateReadTest, USCoreV800::ImmunizationReadTest, USCoreV800::LocationReadTest, USCoreV800::MedicationDispenseReadTest, USCoreV800::MedicationRequestReadTest, USCoreV800::ObservationAdiDocumentationReadTest, USCoreV800::ObservationClinicalResultReadTest, USCoreV800::ObservationLabReadTest, USCoreV800::ObservationOccupationReadTest, USCoreV800::ObservationPregnancyintentReadTest, USCoreV800::ObservationPregnancystatusReadTest, USCoreV800::ObservationScreeningAssessmentReadTest, USCoreV800::ObservationSexualOrientationReadTest, USCoreV800::OrganizationReadTest, USCoreV800::PatientReadTest, USCoreV800::PediatricBmiForAgeReadTest, USCoreV800::PediatricWeightForHeightReadTest, USCoreV800::PractitionerReadTest, USCoreV800::PractitionerRoleReadTest, USCoreV800::ProcedureReadTest, USCoreV800::ProvenanceReadTest, USCoreV800::PulseOximetryReadTest, USCoreV800::QuestionnaireResponseReadTest, USCoreV800::RelatedPersonReadTest, USCoreV800::RespiratoryRateReadTest, USCoreV800::ServiceRequestReadTest, USCoreV800::SimpleObservationReadTest, USCoreV800::SmokingstatusReadTest, USCoreV800::SpecimenReadTest, USCoreV800::TreatmentInterventionPreferenceReadTest
- Defined in:
- lib/us_core_test_kit/read_test.rb
Instance Method Summary collapse
- #all_scratch_resources ⇒ Object
- #bad_resource_id_message(expected_id) ⇒ Object
- #no_resources_skip_message ⇒ Object
- #perform_read_test(resources, reply_handler = nil, delayed_reference: false) ⇒ Object
- #read_and_validate(resource_to_read) ⇒ Object
- #readable_references(resources) ⇒ Object
- #readable_resources(resources) ⇒ Object
- #referencing_resources(readable_resources) ⇒ Object
- #resource_class ⇒ Object
- #resource_id(resource) ⇒ Object
Instance Method Details
#all_scratch_resources ⇒ Object
3 4 5 |
# File 'lib/us_core_test_kit/read_test.rb', line 3 def all_scratch_resources scratch_resources[:all] ||= [] end |
#bad_resource_id_message(expected_id) ⇒ Object
95 96 97 |
# File 'lib/us_core_test_kit/read_test.rb', line 95 def (expected_id) "Expected resource to have id: `#{expected_id.inspect}`, but found `#{resource.id.inspect}`" end |
#no_resources_skip_message ⇒ Object
90 91 92 93 |
# File 'lib/us_core_test_kit/read_test.rb', line 90 def "No #{resource_type} resources appear to be available. " \ 'Please use patients with more information.' end |
#perform_read_test(resources, reply_handler = nil, delayed_reference: false) ⇒ Object
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/us_core_test_kit/read_test.rb', line 7 def perform_read_test(resources, reply_handler = nil, delayed_reference: false) skip_if resources.blank?, resources_to_read = if delayed_reference readable_references(resources) else readable_resources(resources) end assert resources_to_read.present?, "No #{resource_type} id found." if config.[:read_all_resources] if delayed_reference all_referencing_resources = referencing_resources(resources_to_read) info %( The #{resource_type} references used for this test were pulled from the following resources: #{all_referencing_resources} ) resources_to_read.map! { |resource| resource[:reference] } end resources_to_read.each do |resource| read_and_validate(resource) end else first_resource = resources_to_read.first if delayed_reference.present? info %( The #{resource_type} reference used for this test was pulled from resource #{first_resource[:referencing_resource]} ) first_resource = first_resource[:reference] end read_and_validate(first_resource) end end |
#read_and_validate(resource_to_read) ⇒ Object
72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/us_core_test_kit/read_test.rb', line 72 def read_and_validate(resource_to_read) id = resource_id(resource_to_read) fhir_read resource_type, id assert_response_status(200) assert_resource_type(resource_type) assert resource.id.present? && resource.id == id, (id) return unless resource_to_read.is_a? FHIR::Reference all_scratch_resources << resource end |
#readable_references(resources) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/us_core_test_kit/read_test.rb', line 51 def readable_references(resources) resources .filter_map do |resource| next unless resource[:reference].present? && resource[:reference].is_a?(FHIR::Reference) reference_id = resource[:reference].reference&.split('/')&.last next unless reference_id&.present? resource end .uniq { |resource| resource[:reference].reference.split('/').last } end |
#readable_resources(resources) ⇒ Object
64 65 66 67 68 69 70 |
# File 'lib/us_core_test_kit/read_test.rb', line 64 def readable_resources(resources) resources .select { |resource| resource.is_a?(resource_class) || resource.is_a?(FHIR::Reference) } .select { |resource| (resource.is_a?(FHIR::Reference) ? resource.reference.split('/').last : resource.id).present? } .compact .uniq { |resource| resource.is_a?(FHIR::Reference) ? resource.reference.split('/').last : resource.id } end |
#referencing_resources(readable_resources) ⇒ Object
45 46 47 48 49 |
# File 'lib/us_core_test_kit/read_test.rb', line 45 def referencing_resources(readable_resources) readable_resources .map { |resource| resource[:referencing_resource] } .join(', ') end |
#resource_class ⇒ Object
99 100 101 |
# File 'lib/us_core_test_kit/read_test.rb', line 99 def resource_class FHIR.const_get(resource_type) end |
#resource_id(resource) ⇒ Object
86 87 88 |
# File 'lib/us_core_test_kit/read_test.rb', line 86 def resource_id(resource) resource.is_a?(FHIR::Reference) ? resource.reference.split('/').last : resource.id end |