Overview

Namespaces

  • Azalea
    • Selenium
      • App
        • Charts
        • Components
        • Encounters
        • Home
        • Login
        • Main
        • Messages
        • Patients
        • Scheduler
      • Core
      • EHR
        • UI
          • Charts
          • Documents
          • Encounters
          • Home
          • Messaging
            • Folders
          • Patients
          • Payments
          • Precerts
          • Reports
          • Scheduler
          • Settings
            • General
              • Locations
              • Roles
              • Users
        • User
      • Login
        • UI
      • PHR
        • UI
        • User
      • Toolkit
        • Exception
        • Validation
    • Util
  • None
  • tests
    • integration
      • barebones
        • controllers
          • charts
          • patients
          • system
        • models
          • billing
          • encounters
          • examples
          • messaging
          • rcm
          • system
    • unit
      • barebones
        • lib
        • utilities
          • calculations

Classes

  • AddPatientTest
  • Azalea\Selenium\App\ApplicationTestCase
  • Azalea\Selenium\App\Charts\Chart
  • Azalea\Selenium\App\Charts\ChartAssessment
  • Azalea\Selenium\App\Charts\ChartDiagnosisCodes
  • Azalea\Selenium\App\Charts\ChartListControls
  • Azalea\Selenium\App\Charts\ChartObjective
  • Azalea\Selenium\App\Charts\ChartProcedureCodes
  • Azalea\Selenium\App\Charts\Charts
  • Azalea\Selenium\App\Charts\ChartSubjective
  • Azalea\Selenium\App\Components\CodeLookup
  • Azalea\Selenium\App\Components\CollectionGrid
  • Azalea\Selenium\App\Components\Popup
  • Azalea\Selenium\App\Customers
  • Azalea\Selenium\App\Encounters\Encounter
  • Azalea\Selenium\App\Encounters\EncounterDiagnosisCodes
  • Azalea\Selenium\App\Encounters\EncounterLedger
  • Azalea\Selenium\App\Encounters\EncounterProcedureCodes
  • Azalea\Selenium\App\Encounters\Encounters
  • Azalea\Selenium\App\Home\Home
  • Azalea\Selenium\App\Login\LoginPage
  • Azalea\Selenium\App\Main\MainSearch
  • Azalea\Selenium\App\Messages\Messages
  • Azalea\Selenium\App\Patients
  • Azalea\Selenium\App\Patients\Patient
  • Azalea\Selenium\App\Patients\PatientCharts
  • Azalea\Selenium\App\Patients\PatientEditDemographicsForm
  • Azalea\Selenium\App\Patients\PatientEncounters
  • Azalea\Selenium\App\Patients\PatientFaker
  • Azalea\Selenium\App\Patients\PatientList
  • Azalea\Selenium\App\Patients\PatientListFilters
  • Azalea\Selenium\App\Patients\Patients
  • Azalea\Selenium\App\Providers
  • Azalea\Selenium\App\Scheduler\AppointmentPopup
  • Azalea\Selenium\App\Scheduler\Scheduler
  • Azalea\Selenium\App\Users
  • Azalea\Selenium\Core\BaseTestCase
  • Azalea\Selenium\Core\Browser
  • Azalea\Selenium\Core\Page
  • Azalea\Selenium\Core\User
  • Azalea\Selenium\Core\View
  • Azalea\Selenium\Core\WebDriver
  • Azalea\Selenium\EHR\Application
  • Azalea\Selenium\EHR\EHR
  • Azalea\Selenium\EHR\EHRTestCase
  • Azalea\Selenium\EHR\EMR
  • Azalea\Selenium\EHR\PM
  • Azalea\Selenium\EHR\UI\Charts\ChartsList
  • Azalea\Selenium\EHR\UI\Charts\ChartsListRow
  • Azalea\Selenium\EHR\UI\Charts\ChartsListTab
  • Azalea\Selenium\EHR\UI\CheckboxGrid
  • Azalea\Selenium\EHR\UI\Documents\Documents
  • Azalea\Selenium\EHR\UI\Documents\DocumentsTab
  • Azalea\Selenium\EHR\UI\Encounters\Encounters
  • Azalea\Selenium\EHR\UI\Encounters\EncountersTab
  • Azalea\Selenium\EHR\UI\Grid
  • Azalea\Selenium\EHR\UI\GridRow
  • Azalea\Selenium\EHR\UI\Heading
  • Azalea\Selenium\EHR\UI\Home\Home
  • Azalea\Selenium\EHR\UI\Home\OfficeOverview
  • Azalea\Selenium\EHR\UI\LockScreen
  • Azalea\Selenium\EHR\UI\MainMenu
  • Azalea\Selenium\EHR\UI\MainSearch
  • Azalea\Selenium\EHR\UI\Messaging\Folders\MessagingAllMail
  • Azalea\Selenium\EHR\UI\Messaging\Folders\MessagingInbox
  • Azalea\Selenium\EHR\UI\Messaging\Folders\MessagingSentMail
  • Azalea\Selenium\EHR\UI\Messaging\Folders\MessagingStarred
  • Azalea\Selenium\EHR\UI\Messaging\Folders\MessagingTrashed
  • Azalea\Selenium\EHR\UI\Messaging\Messaging
  • Azalea\Selenium\EHR\UI\Messaging\MessagingCompose
  • Azalea\Selenium\EHR\UI\Messaging\MessagingFolder
  • Azalea\Selenium\EHR\UI\Messaging\MessagingMenu
  • Azalea\Selenium\EHR\UI\Messaging\MessagingReply
  • Azalea\Selenium\EHR\UI\Messaging\MessagingTab
  • Azalea\Selenium\EHR\UI\Messaging\MessagingViewMessage
  • Azalea\Selenium\EHR\UI\Module
  • Azalea\Selenium\EHR\UI\Notifications
  • Azalea\Selenium\EHR\UI\Patients\ChartsListRow
  • Azalea\Selenium\EHR\UI\Patients\ChartsTab
  • Azalea\Selenium\EHR\UI\Patients\PatientAllergies
  • Azalea\Selenium\EHR\UI\Patients\PatientAllergyEditPopup
  • Azalea\Selenium\EHR\UI\Patients\PatientAllergySearchPopup
  • Azalea\Selenium\EHR\UI\Patients\PatientAppointments
  • Azalea\Selenium\EHR\UI\Patients\PatientAssembly
  • Azalea\Selenium\EHR\UI\Patients\PatientCharts
  • Azalea\Selenium\EHR\UI\Patients\PatientChartsList
  • Azalea\Selenium\EHR\UI\Patients\PatientComments
  • Azalea\Selenium\EHR\UI\Patients\PatientDashboard
  • Azalea\Selenium\EHR\UI\Patients\PatientDemographics
  • Azalea\Selenium\EHR\UI\Patients\PatientDemographicsPopup
  • Azalea\Selenium\EHR\UI\Patients\PatientDocuments
  • Azalea\Selenium\EHR\UI\Patients\PatientDocumentsList
  • Azalea\Selenium\EHR\UI\Patients\PatientEncounters
  • Azalea\Selenium\EHR\UI\Patients\PatientEncountersAddPopup
  • Azalea\Selenium\EHR\UI\Patients\PatientHandouts
  • Azalea\Selenium\EHR\UI\Patients\PatientInsurance
  • Azalea\Selenium\EHR\UI\Patients\PatientLabOrders
  • Azalea\Selenium\EHR\UI\Patients\PatientLabOrdersAddView
  • Azalea\Selenium\EHR\UI\Patients\PatientMedications
  • Azalea\Selenium\EHR\UI\Patients\PatientPortal
  • Azalea\Selenium\EHR\UI\Patients\PatientRecalls
  • Azalea\Selenium\EHR\UI\Patients\Patients
  • Azalea\Selenium\EHR\UI\Patients\PatientSearchPopup
  • Azalea\Selenium\EHR\UI\Patients\PatientSection
  • Azalea\Selenium\EHR\UI\Patients\PatientSidebar
  • Azalea\Selenium\EHR\UI\Patients\PatientsList
  • Azalea\Selenium\EHR\UI\Patients\PatientsListRow
  • Azalea\Selenium\EHR\UI\Patients\PatientsListTab
  • Azalea\Selenium\EHR\UI\Patients\PatientsTab
  • Azalea\Selenium\EHR\UI\Patients\PatientTab
  • Azalea\Selenium\EHR\UI\Patients\PatientTasks
  • Azalea\Selenium\EHR\UI\Patients\PatientVitals
  • Azalea\Selenium\EHR\UI\Patients\PatientVitalsAddPopup
  • Azalea\Selenium\EHR\UI\Payments\EDIRemitsTab
  • Azalea\Selenium\EHR\UI\Payments\Payments
  • Azalea\Selenium\EHR\UI\Payments\PaymentsTab
  • Azalea\Selenium\EHR\UI\Payments\UnappliedPaymentsTab
  • Azalea\Selenium\EHR\UI\Popup
  • Azalea\Selenium\EHR\UI\PopupConfirm
  • Azalea\Selenium\EHR\UI\PopupError
  • Azalea\Selenium\EHR\UI\Precerts\Precerts
  • Azalea\Selenium\EHR\UI\Precerts\PrecertsTab
  • Azalea\Selenium\EHR\UI\Reports\AuditLogTab
  • Azalea\Selenium\EHR\UI\Reports\ClinicalQualityMeasuresTab
  • Azalea\Selenium\EHR\UI\Reports\ClinicalQualityMeasuresValueSetsTab
  • Azalea\Selenium\EHR\UI\Reports\MeaningfulUseTab
  • Azalea\Selenium\EHR\UI\Reports\PatientStatementsTab
  • Azalea\Selenium\EHR\UI\Reports\RecordsTab
  • Azalea\Selenium\EHR\UI\Reports\Reports
  • Azalea\Selenium\EHR\UI\Reports\ReportsQueueTab
  • Azalea\Selenium\EHR\UI\Reports\ReportsTab
  • Azalea\Selenium\EHR\UI\Reports\SystemStatisticsTab
  • Azalea\Selenium\EHR\UI\Scheduler\AppointmentsRequestsTab
  • Azalea\Selenium\EHR\UI\Scheduler\AppointmentsTab
  • Azalea\Selenium\EHR\UI\Scheduler\RecallsTab
  • Azalea\Selenium\EHR\UI\Scheduler\Scheduler
  • Azalea\Selenium\EHR\UI\Scheduler\SchedulerTab
  • Azalea\Selenium\EHR\UI\SelectDropdown
  • Azalea\Selenium\EHR\UI\Settings\BillingTab
  • Azalea\Selenium\EHR\UI\Settings\General\GroupsSection
  • Azalea\Selenium\EHR\UI\Settings\General\HandoutsSection
  • Azalea\Selenium\EHR\UI\Settings\General\InsurancesSection
  • Azalea\Selenium\EHR\UI\Settings\General\Locations\LocationRow
  • Azalea\Selenium\EHR\UI\Settings\General\Locations\LocationsList
  • Azalea\Selenium\EHR\UI\Settings\General\LocationsSection
  • Azalea\Selenium\EHR\UI\Settings\General\ProvidersSection
  • Azalea\Selenium\EHR\UI\Settings\General\Roles\RoleCreatePopup
  • Azalea\Selenium\EHR\UI\Settings\General\Roles\RoleRow
  • Azalea\Selenium\EHR\UI\Settings\General\Roles\RolesList
  • Azalea\Selenium\EHR\UI\Settings\General\RolesSection
  • Azalea\Selenium\EHR\UI\Settings\General\Users\UserDetails
  • Azalea\Selenium\EHR\UI\Settings\General\Users\UserRow
  • Azalea\Selenium\EHR\UI\Settings\General\Users\UsersList
  • Azalea\Selenium\EHR\UI\Settings\General\UsersSection
  • Azalea\Selenium\EHR\UI\Settings\GeneralTab
  • Azalea\Selenium\EHR\UI\Settings\InventoryTab
  • Azalea\Selenium\EHR\UI\Settings\MedicalTab
  • Azalea\Selenium\EHR\UI\Settings\PatientTab
  • Azalea\Selenium\EHR\UI\Settings\SchedulerTab
  • Azalea\Selenium\EHR\UI\Settings\Settings
  • Azalea\Selenium\EHR\UI\TabContainer
  • Azalea\Selenium\EHR\UI\TabPanel
  • Azalea\Selenium\EHR\UI\UserAccountMenu
  • Azalea\Selenium\EHR\User\EHRAdminTestingUser
  • Azalea\Selenium\EHR\User\EMRAdminTestingUser
  • Azalea\Selenium\EHR\User\PMAdminTestingUser
  • Azalea\Selenium\Login\LoginPage
  • Azalea\Selenium\Login\LoginTestCase
  • Azalea\Selenium\Login\ResetPasswordPage
  • Azalea\Selenium\Login\UI\LoginForm
  • Azalea\Selenium\Login\UI\ResetPasswordForm
  • Azalea\Selenium\PHR\Application
  • Azalea\Selenium\PHR\PHR
  • Azalea\Selenium\PHR\PHRTestCase
  • Azalea\Selenium\PHR\UI\PopupError
  • Azalea\Selenium\PHR\User\PHRTestingUser
  • Azalea\Selenium\Toolkit\Dom
  • Azalea\Selenium\Toolkit\NestedHashMap
  • Azalea\Selenium\Toolkit\ResourceLoader
  • Azalea\Selenium\Toolkit\SauceLabsTestCase
  • Azalea\Selenium\Toolkit\SeleniumTestCase
  • Azalea\Selenium\Toolkit\TestCase
  • Azalea\Selenium\Toolkit\Validation\ElementExists
  • Azalea\Selenium\Toolkit\Validation\ElementHasText
  • Azalea\Selenium\Toolkit\Validation\ElementVisible
  • Azalea\Selenium\Toolkit\Validation\PageTitle
  • Azalea\Selenium\Toolkit\Validation\ValidationRule
  • Azalea\Selenium\Toolkit\Validation\ViewExists
  • Azalea\Selenium\Toolkit\Validation\WebDriverValidator
  • Azalea\Selenium\Toolkit\View
  • Azalea\Util\Config
  • Azalea\Util\Debug
  • Azalea_Sniffs_WhiteSpace_ScopeClosingBraceSniff
  • BaseModelTestCase
  • ChartAssessmentTest
  • ChartCustomFieldBehaviorsTest
  • ChartDiagnosisTest
  • ChartEncounterDiagnosisTest
  • ChartEncounterProceduresTest
  • ChartInventoryTest
  • ChartObjectiveTest
  • ChartProblemHistoryTest
  • ChartProceduresTest
  • ChartProviderAccessTest
  • ChartSigningTest
  • ChartsListProviderAccessTest
  • ChartSmokingStatusTest
  • ChartSubjectiveTest
  • ConfigTest
  • EncounterClaimsTest
  • EncounterDemographicsTest
  • EncounterDiagnosisTest
  • EncounterGuarantorTest
  • EncounterLedgerTest
  • EncounterProceduresTest
  • ExampleTestCase
  • MessagesLabelsTest
  • PageTest
  • PatentsListTest
  • PathManagerTest
  • PatientAccountSummaryTest
  • PatientBillingActionsTest
  • PatientCommentsTest
  • PatientDashboardAlertsTest
  • PatientDashboardLinkedPatientsTest
  • PatientDemographicsEditTest
  • PatientDocumentsTest
  • PatientPopupCommentsTest
  • PatientProviderAccessTest
  • PatientsListProviderAccessTest
  • PermissionsTest
  • PopupTest
  • SchedulerBlocksTest
  • SchedulerInsuranceBlocksTest
  • SimpePage
  • SimpleView
  • SimpleViewWithArgs
  • SimpleViewWithNoHash
  • TestCase
  • tests\integration\barebones\BarebonesConstants
  • tests\integration\barebones\BarebonesTestCase
  • tests\integration\barebones\controllers\charts\ChartsControllerTest
  • tests\integration\barebones\controllers\patients\PatientsPopupAlertsControllerTest
  • tests\integration\barebones\controllers\system\ClientsControllerTest
  • tests\integration\barebones\models\billing\ClientsFeeSchedulesMapModelTest
  • tests\integration\barebones\models\encounters\AppointmentModelTest
  • tests\integration\barebones\models\encounters\CollectionTest
  • tests\integration\barebones\models\encounters\ConcurrentCollectionTest
  • tests\integration\barebones\models\encounters\EncounterModelTest
  • tests\integration\barebones\models\encounters\EncountersIncompleteReasonModelTest
  • tests\integration\barebones\models\encounters\ModelQueryBuilderTest
  • tests\integration\barebones\models\examples\ExampleModelBasicsTest
  • tests\integration\barebones\models\examples\ExamplesGenericControllerTest
  • tests\integration\barebones\models\messaging\MessageModelTest
  • tests\integration\barebones\models\rcm\RCMStatsGeneralControllerTests
  • tests\integration\barebones\models\system\ClientModelTest
  • tests\unit\barebones\lib\BarebonesTestCase
  • tests\unit\barebones\utilities\ArraysTest
  • tests\unit\barebones\utilities\calculations\PovertyLineTest
  • tests\unit\barebones\utilities\MathTest
  • UrlManagerTest
  • VariantRulesTest
  • VariantsManagerTest
  • ViewTest
  • WebDriverMock

Exceptions

  • Azalea\Selenium\Toolkit\Exception\ElementNotFoundException
  • Azalea\Selenium\Toolkit\Exception\InvalidPageException
  • Azalea\Selenium\Toolkit\Exception\TimeoutException
  • Overview
  • Namespace
  • Class
  1: <?php
  2: use Azalea\Selenium\App\ApplicationTestCase;
  3: use Azalea\Selenium\App\Customers;
  4: use Azalea\Selenium\App\Patients;
  5: use Azalea\Selenium\App\Users;
  6: 
  7: class EncounterDemographicsTest extends ApplicationTestCase
  8: {
  9:     public function supportsCustomer($cus_id)
 10:     {
 11:         // Azalea EHR, Azalea PM customers only
 12:         return (Customers::isEhrCustomer($cus_id) || Customers::isPmCustomer($cus_id));
 13:     }
 14: 
 15:     /**
 16:      * Summary:
 17:      * A patient's demographics details are displayed when a
 18:      * new encounter is created.
 19:      */
 20:     public function testPatientDemographicsDetails()
 21:     {
 22:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
 23: 
 24:         // open the patient record for Samir J. Funk (QA123)
 25:         $patientView = $app->patients->open(Patients::SAMIR_FUNK);
 26: 
 27:         // navigate to patient demographics view
 28:         $patientDemog = $patientView->demographics->navigate()->verifyAndWait();
 29: 
 30:         // close any patient popups
 31:         $this->waitForAjax();
 32:         $app->popup->closeAll();
 33: 
 34:         // get some values
 35:         $pat_mrn = $this->querySelector("#pat_mrn + td")->text();
 36:         $pat_bill_type = $this->querySelector("#pat_bill_type + td")->text();
 37:         $pat_fname = $this->querySelector("#par_fname + td")->text();
 38:         $pat_mname = $this->querySelector("#pat_mname + td")->text();
 39:         $pat_lname = $this->querySelector("#pat_lname + td")->text();
 40:         $pat_dob = $this->querySelector("#pat_dob + td")->text();
 41:         $pat_sex = $this->querySelector("#pat_sex + td")->text();
 42: 
 43:         // Open Encounters section.
 44:         $encounterView = $app->patients->get(Patients::SAMIR_FUNK)
 45:             ->encounters
 46:             ->navigate()
 47:             ->addEncounter();
 48: 
 49:         $app->popup->closeAll();
 50: 
 51:         $encounterView->verifyAndWait();
 52: 
 53:         /*
 54:          * Expected outcome:
 55:          * a. The values retrieved above are all displayed under Patient Details.
 56:          */
 57:         $encounterView->patientDetails->assertCanSee("QA123");
 58:         $encounterView->patientDetails->assertCanSee($pat_fname . " " . $pat_mname . " " . $pat_lname);
 59:         $encounterView->patientDetails->assertCanSee($pat_mrn);
 60:         $encounterView->patientDetails->assertCanSee($pat_bill_type);
 61:         $encounterView->patientDetails->assertCanSee($pat_dob);
 62:         $encounterView->patientDetails->assertCanSee($pat_sex);
 63: 
 64:         // cancel the encounter to clean up
 65:         $encounterView->cancel();
 66: 
 67:         $this->assertNoErrorPopups();
 68:     }
 69: 
 70:     /**
 71:      * Summary:
 72:      * A patient's demographics details are displayed when a
 73:      * new encounter is created.
 74:      */
 75:     public function testPatientHouseholdInfoDisplayed()
 76:     {
 77:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);      
 78:         
 79:         //Test $50000 Annual Income amount
 80:         $this->runTestPatientHouseholdInfoDisplayedByValue($app, "50000", "3", "$50,000.00", "PLP: 248.00%");
 81:         $this->runTestPatientHouseholdInfoDisplayedByValue($app, "0", "3", "$0.00", "PLP: 0.00%");
 82:         $this->runTestPatientHouseholdInfoDisplayedByValue($app, "", "3", null, null);
 83:     }
 84:     
 85:     public function runTestPatientHouseholdInfoDisplayedByValue($app, $annualIncome, $members, $expectedIncomeDisplay, $expectedPercentageDisplay){
 86:         // open the patient record for Samir J. Funk (QA123)
 87:         $patientView = $app->patients->open(Patients::SAMIR_FUNK);
 88: 
 89:         // navigate to patient demographic edit view
 90:         $patientEditDemog = $patientView->demographicsEdit->navigate()->verifyAndWait();
 91: 
 92:         // close any patient popups
 93:         $this->waitForAjax();
 94:         $app->popup->closeAll();
 95: 
 96:         $patientForm = $patientEditDemog->form;
 97: 
 98:         $pfrAnnualIncomeInput = $patientForm->selectors->pfrAnnualIncomeInput;
 99:         $pfrAnnualIncomeVerifyDate = $patientForm->selectors->pfrAnnualIncomeVerifyDate;
100:         $pfrHouseholdMembersInput = $patientForm->selectors->pfrHouseholdMembersInput;
101: 
102:         // set Annual Income to $annualIncome
103:         $patientForm->setInput($pfrAnnualIncomeInput, $annualIncome)->tab();
104: 
105:         // set Last Verified to today
106:         $patientForm->querySelector($pfrAnnualIncomeVerifyDate)
107:             ->value(date("m/d/Y"));
108: 
109:         // set Household Members to $members
110:         $patientForm->setInput($pfrHouseholdMembersInput, $members);
111: 
112:         // Save Changes
113:         $patientView->press("Save Changes");
114: 
115:         // Check for required fields warning confirmation popup
116:         $this->waitForAjax();
117:         if ($app->popup->confirmIsVisible()) {
118:             $app->popup->confirmYes();
119:         }
120: 
121:         // wait for patient demographics view to load
122:         $patientDemog = $patientView->demographics->verifyAndWait();
123: 
124:         // Open Encounters section.
125:         $encounterView = $app->patients->get(Patients::SAMIR_FUNK)
126:             ->encounters
127:             ->navigate()
128:             ->addEncounter();
129: 
130:         $app->popup->closeAll();
131: 
132:         /*
133:          * Expected outcome:
134:          * a. Encounter displays the value $expectedIncomeDisplay in Annual Income and Household Members
135:          *    data in the overview section.
136:          */
137:         $this->spinWait(function () use ($encounterView, $expectedIncomeDisplay, $expectedPercentageDisplay, $members) {
138:             if($expectedIncomeDisplay !== null){
139:                 $encounterView->filter(".enc_annual_income")->assertCanSee($expectedIncomeDisplay);
140:                 $encounterView->filter(".enc_annual_income")->assertCanSee($expectedPercentageDisplay);
141:                 $encounterView->filter(".enc_household_members")->assertCanSee($members);
142:             } else {
143:                 $encounterView->filter("#enc_pat_details")->assertCanNotSee("Annual Income");
144:             }
145:             return true;
146:         });
147: 
148:         // cancel the encounter to clean up
149:         $encounterView->cancel();
150: 
151:         $this->assertNoErrorPopups();
152:         
153:     }
154: 
155:     /**
156:      * Summary:
157:      * A self-pay patient's insurance details are not displayed when a new
158:      * encounter is created.
159:      */
160:     public function testPatientSelfPayDetails()
161:     {
162:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
163: 
164:         // open the patient record for Selenium Self Pay (QAA81)
165:         // add a new encounter
166:         $encounterView = $app->patients->open(Patients::SELENIUM_SELF_PAY)
167:             ->encounters
168:             ->navigate()
169:             ->addEncounter();
170: 
171:         $app->popup->closeAll();
172: 
173:         $encounterView->verifyAndWait();
174: 
175:         /*
176:          * Expected outcome:
177:          * a. Patient Details say "SELF PAY (PATIENT)"
178:          * b. Insurance details sections are not visible.
179:          */
180:         $encounterView->assertElementNotExists("#enc_ins1");
181:         $encounterView->assertCanNotSee("Primary Insurance");
182:         $encounterView->patientDetails->assertCanSee("SELF PAY (PATIENT)");
183: 
184:         // cancel the encounter to clean up
185:         $encounterView->cancel();
186: 
187:         $this->assertNoErrorPopups();
188:     }
189: 
190:     /**
191:      * Summary:
192:      * A patient's primary insurance details are displayed when a new
193:      * encounter is created.
194:      */
195:     public function testPatientPrimaryInsuranceDetails()
196:     {
197:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
198: 
199:         // open the patient record for Selenium Primary Insurance (QAA11)
200:         $patientView = $app->patients->open(Patients::SELENIUM_PRIMARY_INSURANCE);
201: 
202:         // navigate to patient demographics view
203:         $patientDemog = $patientView->demographics->navigate()->verifyAndWait();
204: 
205:         // close any patient popups
206:         $this->waitForAjax();
207:         $app->popup->closeAll();
208: 
209:         // get some values
210:         $name = $patientDemog->querySelector(".primary-ins-name > a")->text();
211:         $policy = $patientDemog->querySelector(".primary-ins-policy")->text();
212:         $group = $patientDemog->querySelector(".primary-ins-group")->text();
213: 
214:         // Open Encounters section.
215:         $encounterView = $app->patients->get(Patients::SELENIUM_PRIMARY_INSURANCE)
216:             ->encounters
217:             ->navigate()
218:             ->addEncounter();
219: 
220:         $app->popup->closeAll();
221: 
222:         $encounterView->verifyAndWait();
223: 
224:         /*
225:          * Expected outcome:
226:          * a. Insurance name, policy #, and group # are correct.
227:          * b. Primary insurance is selected in the Insurance Name drop down.
228:          */
229:         $encounterView->primaryInsurance->assertCanSee($name." (Policy #".$policy.")");
230:         $encounterView->primaryInsurance->assertCanSee($policy);
231:         $encounterView->primaryInsurance->assertCanSee($group);
232: 
233:         // Save the encounter
234:         $encounterView->save();
235:         $encounterView->clearCache();
236: 
237:         /*
238:          * Expected outcome:
239:          * a. Insurance name, policy #, and group # are correct for
240:          *    primary
241:          */
242:         $encounterView->waitForAjax();
243:         $encounterView->primaryInsurance->assertCanSee($name);
244:         $encounterView->primaryInsurance->assertCanSee($policy);
245:         $encounterView->primaryInsurance->assertCanSee($group);
246: 
247:         // cancel the encounter to clean up
248:         $encounterView->cancel();
249: 
250:         $this->assertNoErrorPopups();
251:     }
252: 
253:     /**
254:      * Summary:
255:      * A patient's primary and secondary insurance details are displayed
256:      * when a new encounter is created.
257:      */
258:     public function testPatientPrimarySecondaryInsuranceDetails()
259:     {
260:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
261: 
262:         // open the patient record for Selenium Secondary Insurance (QAA67A1)
263:         $patientView = $app->patients->open(Patients::SELENIUM_SECONDARY_INSURANCE);
264: 
265:         // navigate to patient demographics view
266:         $patientDemog = $patientView->demographics->navigate()->verifyAndWait();
267: 
268:         // close any patient popups
269:         $this->waitForAjax();
270:         $app->popup->closeAll();
271: 
272:         // get some values
273:         $priName = $patientDemog->querySelector(".primary-ins-name > a")->text();
274:         $priPolicy = $patientDemog->querySelector(".primary-ins-policy")->text();
275:         $priGroup = $patientDemog->querySelector(".primary-ins-group")->text();
276: 
277:         $secName = $patientDemog->querySelector(".secondary-ins-name > a")->text();
278:         $secPolicy = $patientDemog->querySelector(".secondary-ins-policy")->text();
279:         $secGroup = $patientDemog->querySelector(".secondary-ins-group")->text();
280: 
281:         // Open Encounters section.
282:         $encounterView = $app->patients->get(Patients::SELENIUM_SECONDARY_INSURANCE)
283:             ->encounters
284:             ->navigate()
285:             ->addEncounter();
286: 
287:         $app->popup->closeAll();
288: 
289:         $encounterView->verifyAndWait();
290: 
291:         /*
292:          * Expected outcome:
293:          * a. Insurance name, policy #, and group # are correct for
294:          *    both primary and secondary
295:          * b. Primary insurance is selected in the Insurance Name drop down.
296:          * c. Secondary insurance is selected in the Insurance Name drop down.
297:          */
298:         $encounterView->primaryInsurance->assertCanSee($priName." (Policy #".$priPolicy.")");
299:         $encounterView->primaryInsurance->assertCanSee($priPolicy);
300:         $encounterView->primaryInsurance->assertCanSee($priGroup);
301: 
302:         $encounterView->secondaryInsurance->assertCanSee($secName." (Policy #".$secPolicy.")");
303:         $encounterView->secondaryInsurance->assertCanSee($secPolicy);
304:         // $encounterView->secondaryInsurance->assertCanSee($secGroup); // this does not show
305: 
306:         // Save the encounter
307:         $encounterView->save();
308:         $encounterView->clearCache();
309: 
310:         /*
311:          * Expected outcome:
312:          * a. Insurance name, policy #, and group # are correct for
313:          *    both primary and secondary
314:          */
315:         $encounterView->waitForAjax();
316:         $encounterView->primaryInsurance->assertCanSee($priName);
317:         $encounterView->primaryInsurance->assertCanSee($priPolicy);
318:         $encounterView->primaryInsurance->assertCanSee($priGroup);
319: 
320:         $encounterView->secondaryInsurance->assertCanSee($secName);
321:         $encounterView->secondaryInsurance->assertCanSee($secPolicy);
322:         $encounterView->secondaryInsurance->assertCanSee($secGroup);
323: 
324:         // cancel the encounter to clean up
325:         $encounterView->cancel();
326: 
327:         $this->assertNoErrorPopups();
328:     }
329: 
330:     /**
331:      * Summary:
332:      * A patient's primary insurance can be changed after a new encounter
333:      * is created for that encounter.
334:      */
335:     public function testCanChangePatientPrimaryInsurance()
336:     {
337:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
338: 
339:         // Open Encounters section for Selenium Primary Insurance.
340:         $encounterView = $app->patients->get(Patients::SELENIUM_PRIMARY_INSURANCE)
341:             ->encounters
342:             ->navigate()
343:             ->addEncounter();
344: 
345:         $app->popup->closeAll();
346: 
347:         $encounterView->verifyAndWait();
348: 
349:         // Change the Primary Insurance to Alliant Health Plans
350:         $this->waitForAjax();
351:         $encounterView->select("enc_ins1_id", "295407");
352:         $this->waitForAjax();
353: 
354:         /*
355:          * Expected outcome:
356:          * a. Insurance name, policy #, and group # are updated.
357:          */
358:         $this->spinWait(function () use ($encounterView) {
359:             $encounterView->primaryInsurance->assertCanSee("600 TOWNPARK LANE NW");
360:             $encounterView->primaryInsurance->assertCanSee("SUITE LL-1000");
361:             $encounterView->primaryInsurance->assertCanSee("KENNESAW");
362:             $encounterView->primaryInsurance->assertCanSee("GA 30144");
363:             $encounterView->primaryInsurance->assertCanSee("648798");
364:             $encounterView->primaryInsurance->assertCanSee("987865");
365:             return true;
366:         });
367: 
368:         // Save the encounter
369:         $encounterView->save();
370:         $encounterView->clearCache();
371: 
372:         /*
373:          * Expected outcome:
374:          * a. Insurance name, address, phone, policy #, and group # are displayed.
375:          */
376:         $this->spinWait(function () use ($encounterView) {
377:             $encounterView->primaryInsurance->assertCanSee("ALLIANT HEALTH PLANS");
378:             $encounterView->primaryInsurance->assertCanSee("600 TOWNPARK LANE NW");
379:             $encounterView->primaryInsurance->assertCanSee("SUITE LL-1000");
380:             $encounterView->primaryInsurance->assertCanSee("KENNESAW");
381:             $encounterView->primaryInsurance->assertCanSee("GA 30144");
382:             $encounterView->primaryInsurance->assertCanSee("(800) 403-2785");
383:             $encounterView->primaryInsurance->assertCanSee("648798");
384:             $encounterView->primaryInsurance->assertCanSee("987865");
385:             return true;
386:         });
387: 
388:         // cancel the encounter to clean up
389:         $encounterView->cancel();
390: 
391:         $this->assertNoErrorPopups();
392:     }
393: 
394:     /**
395:      * Summary:
396:      * A patient's primary and secondary insurance can be changed after
397:      * a new encounter is created for that encounter.
398:      */
399:     public function testCanChangePatientPrimarySecondaryInsurance()
400:     {
401:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
402: 
403:         // Open Encounters section for Selenium Secondary Insurance.
404:         $encounterView = $app->patients->get(Patients::SELENIUM_SECONDARY_INSURANCE)
405:             ->encounters
406:             ->navigate()
407:             ->addEncounter();
408: 
409:         $app->popup->closeAll();
410: 
411:         $encounterView->verifyAndWait();
412: 
413:         // Change the Primary Insurance to Alliant Health Plans
414:         $this->waitForAjax();
415:         $encounterView->select("enc_ins1_id", "295408");
416:         $this->waitForAjax();
417: 
418:         /*
419:          * Expected outcome:
420:          * a. Insurance name, policy #, and group # are updated.
421:          */
422:         $this->spinWait(function () use ($encounterView) {
423:             $encounterView->primaryInsurance->assertCanSee("600 TOWNPARK LANE NW");
424:             $encounterView->primaryInsurance->assertCanSee("SUITE LL-1000");
425:             $encounterView->primaryInsurance->assertCanSee("KENNESAW");
426:             $encounterView->primaryInsurance->assertCanSee("GA 30144");
427:             $encounterView->primaryInsurance->assertCanSee("648798");
428:             $encounterView->primaryInsurance->assertCanSee("987865");
429:             return true;
430:         });
431: 
432:         // Change the Secondary Insurance to Amerigroup
433:         $this->waitForAjax();
434:         $encounterView->select("enc_ins2_id", "295409");
435:         $this->waitForAjax();
436: 
437:         /*
438:          * Expected outcome:
439:          * a. Insurance name, policy #, and group # are updated.
440:          */
441:         $this->spinWait(function () use ($encounterView) {
442:             $encounterView->secondaryInsurance->assertCanSee("PO BOX 61010");
443:             $encounterView->secondaryInsurance->assertCanSee("VIRGINIA BEACH");
444:             $encounterView->secondaryInsurance->assertCanSee("VA 23466");
445:             $encounterView->secondaryInsurance->assertCanSee("8979846");
446:             // $encounterView->secondaryInsurance->assertCanSee("8974894");
447:             return true;
448:         });
449: 
450:         // Save the encounter
451:         $encounterView->save();
452:         $encounterView->clearCache();
453: 
454:         /*
455:          * Expected outcome:
456:          * a. Insurance names, addresses, phone, policy #, and group # are displayed.
457:          */
458:         $this->spinWait(function () use ($encounterView) {
459:             $encounterView->primaryInsurance->assertCanSee("ALLIANT HEALTH PLANS");
460:             $encounterView->primaryInsurance->assertCanSee("600 TOWNPARK LANE NW");
461:             $encounterView->primaryInsurance->assertCanSee("SUITE LL-1000");
462:             $encounterView->primaryInsurance->assertCanSee("KENNESAW");
463:             $encounterView->primaryInsurance->assertCanSee("GA 30144");
464:             $encounterView->primaryInsurance->assertCanSee("(800) 403-2785");
465:             $encounterView->primaryInsurance->assertCanSee("648798");
466:             $encounterView->primaryInsurance->assertCanSee("987865");
467:             $encounterView->secondaryInsurance->assertCanSee("AMERIGROUP");
468:             $encounterView->secondaryInsurance->assertCanSee("PO BOX 61010");
469:             $encounterView->secondaryInsurance->assertCanSee("VIRGINIA BEACH");
470:             $encounterView->secondaryInsurance->assertCanSee("VA 23466");
471:             $encounterView->secondaryInsurance->assertCanSee("8979846");
472:             $encounterView->secondaryInsurance->assertCanSee("8974894");
473:         return true;
474:         });
475: 
476:         // cancel the encounter to clean up
477:         $encounterView->cancel();
478: 
479:         $this->assertNoErrorPopups();
480:     }
481: }
482: 
483: ?>
API documentation generated by ApiGen