Module: CarinForBlueButtonTestKit::CarinSearchTest

Extended by:
Forwardable
Includes:
DateSearchValidation, FHIRResourceNavigation
Included in:
CarinForBlueButtonTestKit::CARIN4BBV110::EobExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobInpatientInstitutionalExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobInpatientInstitutionalExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobInpatientInstitutionalExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobInpatientInstitutionalExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobInpatientInstitutionalExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobInpatientInstitutionalExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobInpatientInstitutionalIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobInpatientInstitutionalIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobInpatientInstitutionalLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobInpatientInstitutionalPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobInpatientInstitutionalServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobInpatientInstitutionalTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobOutpatientInstitutionalExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobOutpatientInstitutionalExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobOutpatientInstitutionalExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobOutpatientInstitutionalExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobOutpatientInstitutionalExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobOutpatientInstitutionalExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobOutpatientInstitutionalIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobOutpatientInstitutionalIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobOutpatientInstitutionalLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobOutpatientInstitutionalPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobOutpatientInstitutionalServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobOutpatientInstitutionalTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobPharmacyExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobPharmacyExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobPharmacyExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobPharmacyExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobPharmacyExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobPharmacyExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobPharmacyIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobPharmacyIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobPharmacyLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobPharmacyPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobPharmacyServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobPharmacyTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobProfessionalNonClinicianExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobProfessionalNonClinicianExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobProfessionalNonClinicianExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobProfessionalNonClinicianExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobProfessionalNonClinicianExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobProfessionalNonClinicianExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobProfessionalNonClinicianIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobProfessionalNonClinicianIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobProfessionalNonClinicianLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobProfessionalNonClinicianPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobProfessionalNonClinicianServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobProfessionalNonClinicianTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV110::EobTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::CoverageCoverage_payorSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::CoverageIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::CoverageLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobBillablePeriodStartSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobExplanationOfBenefit_payeeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobInpatientInstitutionalBillablePeriodStartSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobInpatientInstitutionalExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobInpatientInstitutionalExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobInpatientInstitutionalExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobInpatientInstitutionalExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobInpatientInstitutionalExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobInpatientInstitutionalExplanationOfBenefit_payeeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobInpatientInstitutionalExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobInpatientInstitutionalIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobInpatientInstitutionalIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobInpatientInstitutionalLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobInpatientInstitutionalPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobInpatientInstitutionalServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobInpatientInstitutionalServiceStartDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobInpatientInstitutionalTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOralBillablePeriodStartSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOralExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOralExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOralExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOralExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOralExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOralExplanationOfBenefit_payeeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOralExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOralIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOralIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOralLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOralPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOralServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOralServiceStartDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOralTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOutpatientInstitutionalBillablePeriodStartSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOutpatientInstitutionalExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOutpatientInstitutionalExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOutpatientInstitutionalExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOutpatientInstitutionalExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOutpatientInstitutionalExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOutpatientInstitutionalExplanationOfBenefit_payeeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOutpatientInstitutionalExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOutpatientInstitutionalIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOutpatientInstitutionalIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOutpatientInstitutionalLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOutpatientInstitutionalPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOutpatientInstitutionalServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOutpatientInstitutionalServiceStartDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobOutpatientInstitutionalTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobPharmacyBillablePeriodStartSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobPharmacyExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobPharmacyExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobPharmacyExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobPharmacyExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobPharmacyExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobPharmacyExplanationOfBenefit_payeeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobPharmacyExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobPharmacyIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobPharmacyIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobPharmacyLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobPharmacyPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobPharmacyServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobPharmacyServiceStartDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobPharmacyTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobProfessionalNonClinicianBillablePeriodStartSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobProfessionalNonClinicianExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobProfessionalNonClinicianExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobProfessionalNonClinicianExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobProfessionalNonClinicianExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobProfessionalNonClinicianExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobProfessionalNonClinicianExplanationOfBenefit_payeeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobProfessionalNonClinicianExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobProfessionalNonClinicianIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobProfessionalNonClinicianIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobProfessionalNonClinicianLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobProfessionalNonClinicianPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobProfessionalNonClinicianServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobProfessionalNonClinicianServiceStartDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobProfessionalNonClinicianTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobServiceStartDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::EobTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::OrganizationIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::OrganizationLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::PatientIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::PatientLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::PractitionerIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::PractitionerLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::RelatedPersonIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200::RelatedPersonLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::CoverageCoverage_payorSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::CoverageIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::CoverageLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobBillablePeriodStartSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobExplanationOfBenefit_payeeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalBillablePeriodStartSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalExplanationOfBenefit_payeeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalNonFinancialBillablePeriodStartSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalNonFinancialExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalNonFinancialExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalNonFinancialExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalNonFinancialExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalNonFinancialExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalNonFinancialExplanationOfBenefit_payeeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalNonFinancialExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalNonFinancialIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalNonFinancialIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalNonFinancialLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalNonFinancialPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalNonFinancialServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalNonFinancialServiceStartDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalNonFinancialTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalServiceStartDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobInpatientInstitutionalTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralBillablePeriodStartSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralExplanationOfBenefit_payeeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralNonFinancialBillablePeriodStartSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralNonFinancialExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralNonFinancialExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralNonFinancialExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralNonFinancialExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralNonFinancialExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralNonFinancialExplanationOfBenefit_payeeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralNonFinancialExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralNonFinancialIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralNonFinancialIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralNonFinancialLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralNonFinancialPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralNonFinancialServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralNonFinancialServiceStartDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralNonFinancialTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralServiceStartDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOralTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalBillablePeriodStartSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalExplanationOfBenefit_payeeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalNonFinancialBillablePeriodStartSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalNonFinancialExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalNonFinancialExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalNonFinancialExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalNonFinancialExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalNonFinancialExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalNonFinancialExplanationOfBenefit_payeeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalNonFinancialExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalNonFinancialIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalNonFinancialIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalNonFinancialLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalNonFinancialPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalNonFinancialServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalNonFinancialServiceStartDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalNonFinancialTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalServiceStartDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobOutpatientInstitutionalTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyBillablePeriodStartSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyExplanationOfBenefit_payeeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyNonFinancialBillablePeriodStartSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyNonFinancialExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyNonFinancialExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyNonFinancialExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyNonFinancialExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyNonFinancialExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyNonFinancialExplanationOfBenefit_payeeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyNonFinancialExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyNonFinancialIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyNonFinancialIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyNonFinancialLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyNonFinancialPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyNonFinancialServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyNonFinancialServiceStartDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyNonFinancialTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyServiceStartDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobPharmacyTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianBillablePeriodStartSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianExplanationOfBenefit_payeeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianNonFinancialBillablePeriodStartSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianNonFinancialExplanationOfBenefit_AllSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianNonFinancialExplanationOfBenefit_careteamSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianNonFinancialExplanationOfBenefit_coverageSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianNonFinancialExplanationOfBenefit_insurerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianNonFinancialExplanationOfBenefit_patientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianNonFinancialExplanationOfBenefit_payeeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianNonFinancialExplanationOfBenefit_providerSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianNonFinancialIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianNonFinancialIdentifierSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianNonFinancialLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianNonFinancialPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianNonFinancialServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianNonFinancialServiceStartDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianNonFinancialTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianPatientSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianServiceStartDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobProfessionalNonClinicianTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobServiceDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobServiceStartDateSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::EobTypeSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::OrganizationIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::OrganizationLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::PatientIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::PatientLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::PractitionerIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::PractitionerLastupdatedSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::RelatedPersonIdSearchTest, CarinForBlueButtonTestKit::CARIN4BBV200DEVNONFINANCIAL::RelatedPersonLastupdatedSearchTest
Defined in:
lib/carin_for_blue_button_test_kit/carin_search_test.rb

Constant Summary

Constants included from FHIRResourceNavigation

FHIRResourceNavigation::DAR_EXTENSION_URL

Instance Method Summary collapse

Methods included from FHIRResourceNavigation

#find_a_value_at, #get_next_value, #resolve_path

Methods included from DateSearchValidation

#fhir_date_comparer, #get_fhir_datetime_range, #get_fhir_period_range, #is_date?, #validate_date_search, #validate_datetime_search, #validate_period_search

Instance Method Details

#all_scratch_resourcesObject



27
28
29
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 27

def all_scratch_resources
  scratch_resources[:all] ||= []
end

#build_search_params(param_value = nil) ⇒ Object



66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 66

def build_search_params(param_value = nil)
  search_params = {}
  param_name = search_param_names[0]

  if patient_id_param?(param_name)
    search_params[param_name] = patient_id_list.join(',')
  else
    param_value = find_param_value(param_value, param_name) if param_value.blank?
    skip_if param_value.blank?, no_resources_skip_message
    search_params[param_name] = param_value
  end

  search_params
end

#check_explanation_of_benefit_include(resource, _param_value, returned_resources) ⇒ Object

Processes the base resource for the ‘ExplanationOfBenefit:*’ case.



396
397
398
399
400
401
402
403
404
405
406
407
408
409
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 396

def check_explanation_of_benefit_include(resource, _param_value, returned_resources)
  values_found = []
  base_resource_matches = []

  include_parameters.each do |include_param|
    paths_found = resolve_path(resource, include_param[:path])
    values_found.concat(paths_found)
    base_resource_matches.concat(matched_base_resources(resource, include_param[:target], returned_resources,
                                                        values_found))
  end

  match_found = (values_found.length >= 5)
  [match_found, base_resource_matches]
end

#check_for_include_match(resource, param_value, returned_resources) ⇒ Object



375
376
377
378
379
380
381
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 375

def check_for_include_match(resource, param_value, returned_resources)
  if param_value != 'ExplanationOfBenefit:*'
    check_normal_include(resource, param_value, returned_resources)
  else
    check_explanation_of_benefit_include(resource, param_value, returned_resources)
  end
end

#check_normal_include(resource, _param_value, returned_resources) ⇒ Object

Processes the base resource for the normal include case.



384
385
386
387
388
389
390
391
392
393
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 384

def check_normal_include(resource, _param_value, returned_resources)
  base_resource_matches = []
  match_found = include_parameters.any? do |include_param|
    values_found = resolve_path(resource, include_param[:path])
    base_resource_matches.concat(matched_base_resources(resource, include_param[:target], returned_resources,
                                                        values_found))
    values_found.length.positive?
  end
  [match_found, base_resource_matches]
end

#check_paths_for_match(resource, paths, type, param_value) ⇒ Object

Checks if any of the paths have a matching value



225
226
227
228
229
230
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 225

def check_paths_for_match(resource, paths, type, param_value)
  paths.any? do |path|
    values_found = extract_values(resource, path, type)
    match_found?(values_found, type, param_value)
  end
end

#check_resource_against_params(resource, search_params) ⇒ Object



191
192
193
194
195
196
197
198
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 191

def check_resource_against_params(resource, search_params)
  search_params.each do |name, param_value|
    paths = determine_paths(name)
    type = determine_type(name)
    assert check_paths_for_match(resource, paths, type, param_value),
           'Returned resource did not match the search parameter'
  end
end

#determine_paths(name) ⇒ Object

Determines the path based on the param name



201
202
203
204
205
206
207
208
209
210
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 201

def determine_paths(name)
  case name
  when '_id'
    ['id']
  when '_lastUpdated'
    ['meta.lastUpdated']
  else
    search_param_paths(name)
  end
end

#determine_type(name) ⇒ Object

Determines the param type based on the param name



213
214
215
216
217
218
219
220
221
222
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 213

def determine_type(name)
  case name
  when '_id'
    'http://hl7.org/fhirpath/System.String'
  when '_lastUpdated'
    'date'
  else
    .search_definitions[name.to_sym][:type]
  end
end

#element_has_valid_value?(element, include_system) ⇒ Boolean

Returns:

  • (Boolean)


291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 291

def element_has_valid_value?(element, include_system)
  case element
  when FHIR::Reference
    element.reference.present?
  when FHIR::CodeableConcept
    if include_system
      coding =
        find_a_value_at(element, 'coding') { |koding| koding.code.present? && koding.system.present? }
      coding.present?
    else
      find_a_value_at(element, 'coding.code').present?
    end
  when FHIR::Identifier
    include_system ? element.value.present? && element.system.present? : element.value.present?
  when FHIR::Coding
    include_system ? element.code.present? && element.system.present? : element.code.present?
  when FHIR::HumanName
    (element.family || element.given&.first || element.text).present?
  when FHIR::Address
    (element.text || element.city || element.state || element.postalCode || element.country).present?
  else
    true
  end
end

#execute_search(search_params) ⇒ Object



40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 40

def execute_search(search_params)
  if patient_id_param?(search_param_names[0])
    patient_id_list.inject([]) do |resources, id|
      search = { search_param_names[0] => id }
      perform_search_and_validate(search)
      resources.concat(extract_relevant_resources)
    end
  else
    perform_search_and_validate(search_params)
    extract_relevant_resources
  end
end

#extract_included_resource_typesObject



363
364
365
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 363

def extract_included_resource_types
  include_parameters.map { |param| param[:target] }.flatten.uniq
end

#extract_relevant_resourcesObject



60
61
62
63
64
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 60

def extract_relevant_resources
  extract_resources_from_bundle(bundle: resource, response:).select do |item|
    item.resourceType == resource_type
  end
end

#extract_resources_from_bundle(bundle: nil, response: nil, reply_handler: nil, max_pages: 20) ⇒ Object



269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 269

def extract_resources_from_bundle(
  bundle: nil,
  response: nil,
  reply_handler: nil,
  max_pages: 20
)
  page_count = 1
  resources = []

  until bundle.nil? || page_count == max_pages
    resources += bundle&.entry&.map { |entry| entry&.resource }
    next_bundle_link = bundle&.link&.find { |link| link.relation == 'next' }&.url
    reply_handler&.call(response)

    break if next_bundle_link.blank?

    page_count += 1
  end

  resources
end

#extract_values(resource, path, type) ⇒ Object

Extracts values from the resource based on the path and type



233
234
235
236
237
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 233

def extract_values(resource, path, type)
  resolve_path(resource, path).map do |value|
    type == 'Reference' ? value.try(:reference) : value
  end
end

#filter_base_resources(returned_resources) ⇒ Object



359
360
361
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 359

def filter_base_resources(returned_resources)
  returned_resources.select { |item| item.resourceType == resource_type }
end

#find_param_value(param_value, param_name) ⇒ Object



81
82
83
84
85
86
87
88
89
90
91
92
93
94
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 81

def find_param_value(param_value, param_name)
  all_scratch_resources.each do |resource|
    break if param_value.present?

    param_value = search_param_value(param_name, resource)
  end

  if param_value.nil? && param_name == '_id' && resource_type != 'ExplanationOfBenefit'
    resources = readable_resources(scratch.dig(:references, resource_type))
    param_value = resource_id(resources.first)
  end

  param_value
end

#included_refs(returned_resources, referenced_resource_types) ⇒ Object



437
438
439
440
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 437

def included_refs(returned_resources, referenced_resource_types)
  included_resources(returned_resources, referenced_resource_types)
    .map { |resource| "#{resource.resourceType}/#{resource.id}" }
end

#included_resources(returned_resources, referenced_resource_types) ⇒ Object



433
434
435
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 433

def included_resources(returned_resources, referenced_resource_types)
  returned_resources.select { |item| referenced_resource_types.include?(item.resourceType) }
end

#initialize_include_search_params(param_value) ⇒ Object

Initializes seach param for include search



341
342
343
344
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 341

def initialize_include_search_params(param_value)
  resource_id = all_scratch_resources.first&.id
  { _id: resource_id, '_include': param_value }
end

#match_found?(values_found, type, param_value) ⇒ Boolean

Determines if a match is found based on the type and value

Returns:

  • (Boolean)


240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 240

def match_found?(values_found, type, param_value)
  case type
  when 'Reference'
    values_found.any? { |val| param_value.split(',').any? { |item| val.include?(item) } }
  when 'CodeableConcept'
    codings = values_found.flat_map { |val| val.coding || nil }.compact
    if param_value.include? '|'
      system, code = param_value.split('|', 2)
      codings.any? { |coding| coding.system == system && coding.code&.casecmp?(code) }
    else
      codings.any? { |coding| coding.code&.casecmp?(param_value) }
    end
  when 'Identifier'
    if param_value.include? '|'
      values_found.any? do |identifier|
        "#{identifier.system}|#{identifier.value}" == param_value
      end
    else
      values_found.any? { |identifier| identifier.value == param_value }
    end
  when 'Period', 'date', 'instant', 'dateTime'
    values_found.any? { |date| validate_date_search(param_value, date) }
  when 'http://hl7.org/fhirpath/System.String'
    values_found.any? { |str| param_value.split(',').include?(str) }
  else
    false
  end
end

#matched_base_resources(_resource, referenced_resource_types, returned_resources_all, values_found) ⇒ Object



423
424
425
426
427
428
429
430
431
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 423

def matched_base_resources(_resource, referenced_resource_types, returned_resources_all, values_found)
  included_refs = included_refs(returned_resources_all, referenced_resource_types)

  values_found.select do |base_resource_references|
    included_refs.any? do |referenced_resource|
      reference_match?(base_resource_references.reference, referenced_resource)
    end
  end
end

#no_resources_skip_message(resource_type = self.resource_type) ⇒ Object



327
328
329
330
331
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 327

def no_resources_skip_message(resource_type = self.resource_type)
  msg = "No #{resource_type} resources appear to be available"

  "#{msg}. Please use patients with more information"
end

#patient_id_listObject



451
452
453
454
455
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 451

def patient_id_list
  return [nil] unless respond_to? :patient_ids

  patient_ids.split(',').map(&:strip)
end

#patient_id_param?(name) ⇒ Boolean

Returns:

  • (Boolean)


447
448
449
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 447

def patient_id_param?(name)
  (name == '_id' && resource_type == 'Patient') || name == 'patient'
end

#perform_response_validation(returned_resources, search_params) ⇒ Object



183
184
185
186
187
188
189
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 183

def perform_response_validation(returned_resources, search_params)
  skip_if returned_resources.blank?, no_resources_skip_message

  returned_resources.each do |resource|
    check_resource_against_params(resource, search_params)
  end
end

#perform_search_and_validate(search_params) ⇒ Object



53
54
55
56
57
58
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 53

def perform_search_and_validate(search_params)
  fhir_search(resource_type, params: search_params)

  assert_response_status(200)
  assert_resource_type(:bundle)
end

#process_codeable_concept_element(element, include_system) ⇒ Object

Handles logic for processing FHIR::CodeableConcept elements.



139
140
141
142
143
144
145
146
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 139

def process_codeable_concept_element(element, include_system)
  if include_system
    coding = find_a_value_at(element, 'coding') { |c| c.code.present? && c.system.present? }
    "#{coding.system}|#{coding.code}"
  else
    find_a_value_at(element, 'coding.code')
  end
end

#process_date_element(element) ⇒ Object



158
159
160
161
162
163
164
165
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 158

def process_date_element(element)
  if /^\d{4}(-\d{2})?$/.match?(element) || # YYYY or YYYY-MM
     (/^\d{4}-\d{2}-\d{2}$/.match?(element) && resource_type != 'Goal') # YYYY-MM-DD AND Resource is NOT Goal
    "gt#{(DateTime.xmlschema(element) - 1).xmlschema}"
  else
    element
  end
end

#process_each_base_resource(resource, param_value, returned_resources, included_refs) ⇒ Object

Handles the processing for each base resource of an include search



369
370
371
372
373
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 369

def process_each_base_resource(resource, param_value, returned_resources, included_refs)
  match_found, base_resource_matches = check_for_include_match(resource, param_value, returned_resources)
  assert match_found, 'Returned resource did not match the search parameter'
  validate_included_resources(base_resource_matches, included_refs)
end

#process_element(name, element, include_system, resource) ⇒ Object

Handles the processing logic for each resource element type.



107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 107

def process_element(name, element, include_system, resource)
  case element
  when FHIR::Period
    process_period_element(element)
  when FHIR::Reference
    element.reference
  when FHIR::CodeableConcept
    process_codeable_concept_element(element, include_system)
  when FHIR::Identifier
    include_system ? "#{element.system}|#{element.value}" : element.value
  when FHIR::Coding
    include_system ? "#{element.system}|#{element.code}" : element.code
  when FHIR::HumanName
    element.family || element.given&.first || element.text
  when FHIR::Address
    element.text || element.city || element.state || element.postalCode || element.country
  else
    process_other_element_types(name, element, resource)
  end
end

#process_other_element_types(name, element, resource) ⇒ Object

Handles the remaining types, including date types



149
150
151
152
153
154
155
156
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 149

def process_other_element_types(name, element, resource)
  type = .search_definitions[name.to_sym][:type]
  if type == 'date' && params_with_comparators&.include?(name)
    process_date_element(name, element, resource)
  else
    element
  end
end

#process_period_element(element) ⇒ Object

Handles logic for processing FHIR::Period elements.



129
130
131
132
133
134
135
136
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 129

def process_period_element(element)
  if element.start.present?
    "gt#{(DateTime.xmlschema(element.start) - 1).xmlschema}"
  else
    end_datetime = get_fhir_datetime_range(element.end)[:end]
    "lt#{(end_datetime + 1).xmlschema}"
  end
end

#process_resources(returned_resources, param_value) ⇒ Object

Processes the base resources and included resources for include searches



347
348
349
350
351
352
353
354
355
356
357
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 347

def process_resources(returned_resources, param_value)
  base_resources = filter_base_resources(returned_resources)
  all_included_resource_types = extract_included_resource_types
  included_refs = included_refs(returned_resources, all_included_resource_types)

  skip_if base_resources.blank?, no_resources_skip_message

  base_resources.each do |resource|
    process_each_base_resource(resource, param_value, returned_resources, included_refs)
  end
end

#readable_resources(resources) ⇒ Object



167
168
169
170
171
172
173
174
175
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 167

def readable_resources(resources)
  return [] if resources.nil?

  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

#reference_match?(reference, local_reference) ⇒ Boolean

Returns:

  • (Boolean)


442
443
444
445
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 442

def reference_match?(reference, local_reference)
  regex_pattern = %r{^(#{Regexp.escape(local_reference)}|\S+/#{Regexp.escape(local_reference)}(?:[/|]\S+)*)$}
  reference.match?(regex_pattern)
end

#references_to_saveObject



457
458
459
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 457

def references_to_save
  .delayed_references
end

#resource_classObject



323
324
325
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 323

def resource_class
  FHIR.const_get(resource_type)
end

#resource_id(resource) ⇒ Object



177
178
179
180
181
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 177

def resource_id(resource)
  return if resource.blank?

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

#run_include_search(param_value) ⇒ Object



333
334
335
336
337
338
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 333

def run_include_search(param_value)
  search_params = initialize_include_search_params(param_value)
  perform_search_and_validate(search_params)
  returned_resources = extract_resources_from_bundle(bundle: resource, response:)
  process_resources(returned_resources, param_value)
end

#run_search_test(param_value = nil) ⇒ Object



31
32
33
34
35
36
37
38
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 31

def run_search_test(param_value = nil)
  search_params = build_search_params(param_value)
  returned_resources = execute_search(search_params)

  all_scratch_resources.concat(returned_resources).uniq! if first_search?
  save_delayed_references(returned_resources) if saves_delayed_references?
  perform_response_validation(returned_resources, search_params)
end

#save_delayed_references(resources) ⇒ Object



467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 467

def save_delayed_references(resources)
  resources.each do |resource|
    references_to_save.each do |reference_to_save|
      resolve_path(resource, reference_to_save[:path])
        .select { |reference| reference.is_a?(FHIR::Reference) && !reference.contained? }
        .each do |reference|
          resource_type = reference.resource_class.name.demodulize
          need_to_save = reference_to_save[:resources].include?(resource_type)
          next unless need_to_save

          save_resource_reference(resource_type, reference)
        end
    end
  end
end

#save_resource_reference(resource_type, reference) ⇒ Object



461
462
463
464
465
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 461

def save_resource_reference(resource_type, reference)
  scratch[:references] ||= {}
  scratch[:references][resource_type] ||= Set.new
  scratch[:references][resource_type] << reference
end

#search_param_paths(name) ⇒ Object



316
317
318
319
320
321
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 316

def search_param_paths(name)
  paths = .search_definitions[name.to_sym][:paths]
  paths[0] = 'local_class' if paths.first == 'class'

  paths
end

#search_param_value(name, resource, include_system = false) ⇒ Object



96
97
98
99
100
101
102
103
104
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 96

def search_param_value(name, resource, include_system = false)
  paths = determine_paths(name)
  paths.each do |path|
    element = find_a_value_at(resource, path) { |el| element_has_valid_value?(el, include_system) }
    search_value = process_element(name, element, include_system, resource)
    return search_value.gsub(',', '\\,') if search_value.present?
  end
  nil
end

#validate_included_resources(base_resource_matches, included_refs) ⇒ Object

Validates that the included resources match the search criteria.



412
413
414
415
416
417
418
419
420
421
# File 'lib/carin_for_blue_button_test_kit/carin_search_test.rb', line 412

def validate_included_resources(base_resource_matches, included_refs)
  not_matched_included_resources = included_refs.select do |resource_reference|
    base_resource_matches.none? do |base_resource_reference|
      reference_match?(base_resource_reference.reference, resource_reference)
    end
  end
  not_matched_included_resources_string = not_matched_included_resources.join(',')
  assert not_matched_included_resources.empty?,
         "No #{resource_type} references #{not_matched_included_resources_string} in the search result."
end