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_BALLOT::AllergyIntoleranceReadTest, USCoreV700_BALLOT::AverageBloodPressureReadTest, USCoreV700_BALLOT::BloodPressureReadTest, USCoreV700_BALLOT::BmiReadTest, USCoreV700_BALLOT::BodyHeightReadTest, USCoreV700_BALLOT::BodyTemperatureReadTest, USCoreV700_BALLOT::BodyWeightReadTest, USCoreV700_BALLOT::CareExperiencePreferenceReadTest, USCoreV700_BALLOT::CarePlanReadTest, USCoreV700_BALLOT::CareTeamReadTest, USCoreV700_BALLOT::ConditionEncounterDiagnosisReadTest, USCoreV700_BALLOT::ConditionProblemsHealthConcernsReadTest, USCoreV700_BALLOT::CoverageReadTest, USCoreV700_BALLOT::DeviceReadTest, USCoreV700_BALLOT::DiagnosticReportLabReadTest, USCoreV700_BALLOT::DiagnosticReportNoteReadTest, USCoreV700_BALLOT::DocumentReferenceReadTest, USCoreV700_BALLOT::EncounterReadTest, USCoreV700_BALLOT::GoalReadTest, USCoreV700_BALLOT::HeadCircumferencePercentileReadTest, USCoreV700_BALLOT::HeadCircumferenceReadTest, USCoreV700_BALLOT::HeartRateReadTest, USCoreV700_BALLOT::ImmunizationReadTest, USCoreV700_BALLOT::LocationReadTest, USCoreV700_BALLOT::MedicationDispenseReadTest, USCoreV700_BALLOT::MedicationRequestReadTest, USCoreV700_BALLOT::ObservationClinicalResultReadTest, USCoreV700_BALLOT::ObservationLabReadTest, USCoreV700_BALLOT::ObservationOccupationReadTest, USCoreV700_BALLOT::ObservationPregnancyintentReadTest, USCoreV700_BALLOT::ObservationPregnancystatusReadTest, USCoreV700_BALLOT::ObservationScreeningAssessmentReadTest, USCoreV700_BALLOT::ObservationSexualOrientationReadTest, USCoreV700_BALLOT::OrganizationReadTest, USCoreV700_BALLOT::PatientReadTest, USCoreV700_BALLOT::PediatricBmiForAgeReadTest, USCoreV700_BALLOT::PediatricWeightForHeightReadTest, USCoreV700_BALLOT::PractitionerReadTest, USCoreV700_BALLOT::PractitionerRoleReadTest, USCoreV700_BALLOT::ProcedureReadTest, USCoreV700_BALLOT::ProvenanceReadTest, USCoreV700_BALLOT::PulseOximetryReadTest, USCoreV700_BALLOT::QuestionnaireResponseReadTest, USCoreV700_BALLOT::RelatedPersonReadTest, USCoreV700_BALLOT::RespiratoryRateReadTest, USCoreV700_BALLOT::ServiceRequestReadTest, USCoreV700_BALLOT::SimpleObservationReadTest, USCoreV700_BALLOT::SmokingstatusReadTest, USCoreV700_BALLOT::SpecimenReadTest, USCoreV700_BALLOT::TreatmentInterventionPreferenceReadTest
Defined in:
lib/us_core_test_kit/read_test.rb

Instance Method Summary collapse

Instance Method Details

#all_scratch_resourcesObject



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



54
55
56
# File 'lib/us_core_test_kit/read_test.rb', line 54

def bad_resource_id_message(expected_id)
  "Expected resource to have id: `#{expected_id.inspect}`, but found `#{resource.id.inspect}`"
end

#no_resources_skip_messageObject



49
50
51
52
# File 'lib/us_core_test_kit/read_test.rb', line 49

def no_resources_skip_message
  "No #{resource_type} resources appear to be available. " \
  'Please use patients with more information.'
end

#perform_read_test(resources, reply_handler = nil) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/us_core_test_kit/read_test.rb', line 7

def perform_read_test(resources, reply_handler = nil)
  skip_if resources.blank?, no_resources_skip_message

  resources_to_read = readable_resources(resources)

  assert resources_to_read.present?, "No #{resource_type} id found."

  if config.options[:read_all_resources]
    resources_to_read.each do |resource|
      read_and_validate(resource)
    end
  else
    read_and_validate(resources_to_read.first)
  end
end

#read_and_validate(resource_to_read) ⇒ Object



31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/us_core_test_kit/read_test.rb', line 31

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, bad_resource_id_message(id)

  if resource_to_read.is_a? FHIR::Reference
    all_scratch_resources << resource
  end
end

#readable_resources(resources) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/us_core_test_kit/read_test.rb', line 23

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

#resource_classObject



58
59
60
# File 'lib/us_core_test_kit/read_test.rb', line 58

def resource_class
  FHIR.const_get(resource_type)
end

#resource_id(resource) ⇒ Object



45
46
47
# File 'lib/us_core_test_kit/read_test.rb', line 45

def resource_id(resource)
  resource.is_a?(FHIR::Reference) ? resource.reference.split('/').last : resource.id
end