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 PatientAccountSummaryTest 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 self pay patient with one Encounter with a balance in NEW status.
 18:      * Balance should not appear in the Account Summary screen.
 19:      *
 20:      * @author jtracy
 21:      */
 22:     public function testPatientBalanceTest1()
 23:     {
 24:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
 25: 
 26:         // open the patient record for Patient Balance Test 1
 27:         $patientView = $app->patients->open(Patients::PATIENT_BALANCE_TEST1);
 28: 
 29:         // navigate to the patient's dashboard
 30:         $patientAcctSummary = $patientView->accountSummary->navigate()->verifyAndWait();
 31:         $this->waitForAjax();
 32: 
 33:         /**
 34:          * Expected outcome:
 35:          * a. Account Summary shows a patient balance of $0.00
 36:          */
 37:         $this->waitForAjax();
 38:         $this->spinWait(function () use ($patientAcctSummary) {
 39:             $patientAcctSummary->filter(
 40:                 $patientAcctSummary->selectors->patientIncurredPatientBalance
 41:             )->assertCanSee("$0.00");
 42:             return true;
 43:         });
 44:     }
 45: 
 46:     /**
 47:      * Summary:
 48:      * A self pay patient with one Encounter with a balance in READY status.
 49:      * Balance should appear in the Account Summary screen.
 50:      *
 51:      * @author jtracy
 52:      */
 53:     public function testPatientBalanceTest2()
 54:     {
 55:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
 56: 
 57:         // open the patient record for Patient Balance Test 2
 58:         $patientView = $app->patients->open(Patients::PATIENT_BALANCE_TEST2);
 59:         $this->waitForAjax();
 60: 
 61:         // navigate to the patient's dashboard
 62:         $patientAcctSummary = $patientView->accountSummary->navigate()->verifyAndWait();
 63: 
 64:         /**
 65:          * Expected outcome:
 66:          * a. Account Summary shows a patient balance of $151.83
 67:          */
 68:         $this->waitForAjax();
 69:         $this->spinWait(function () use ($patientAcctSummary) {
 70:             $patientAcctSummary->filter(
 71:                 $patientAcctSummary->selectors->patientIncurredPatientBalance
 72:             )->assertCanSee("$151.83");
 73:             return true;
 74:         });
 75:     }
 76: 
 77:     /**
 78:      * Summary:
 79:      * A self pay patient with one Encounter with a balance from multiple
 80:      * procedure codes in READY status. Correct balance should appear in
 81:      * the Account Summary screen.
 82:      *
 83:      * @author jtracy
 84:      */
 85:     public function testPatientBalanceTest3()
 86:     {
 87:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
 88: 
 89:         // open the patient record for Patient Balance Test 3
 90:         $patientView = $app->patients->open(Patients::PATIENT_BALANCE_TEST3);
 91:         $this->waitForAjax();
 92: 
 93:         // navigate to the patient's dashboard
 94:         $patientAcctSummary = $patientView->accountSummary->navigate()->verifyAndWait();
 95: 
 96:         /**
 97:          * Expected outcome:
 98:          * a. Account Summary shows a patient balance of $1,277.89
 99:          */
100:         $this->waitForAjax();
101:         $this->spinWait(function () use ($patientAcctSummary) {
102:             $patientAcctSummary->filter(
103:                 $patientAcctSummary->selectors->patientIncurredPatientBalance
104:             )->assertCanSee("$1,277.89");
105:             return true;
106:         });
107:     }
108: 
109:     /**
110:      * Summary:
111:      * A self pay patient with multiple Encounters with a balance and in READY status.
112:      * Correct balance should appear in the Account Summary screen.
113:      *
114:      * @author jtracy
115:      */
116:     public function testPatientBalanceTest4()
117:     {
118:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
119: 
120:         // open the patient record for Patient Balance Test 4
121:         $patientView = $app->patients->open(Patients::PATIENT_BALANCE_TEST4);
122:         $this->waitForAjax();
123: 
124:         // navigate to the patient's dashboard
125:         $patientAcctSummary = $patientView->accountSummary->navigate()->verifyAndWait();
126: 
127:         /**
128:          * Expected outcome:
129:          * a. Account Summary shows a patient balance of $1,398.28
130:          */
131:         $this->waitForAjax();
132:         $this->spinWait(function () use ($patientAcctSummary) {
133:             $patientAcctSummary->filter(
134:                 $patientAcctSummary->selectors->patientIncurredPatientBalance
135:             )->assertCanSee("$1,398.28");
136:             return true;
137:         });
138:     }
139: 
140:     /**
141:      * Summary:
142:      * A self pay patient with an Encounter with both charges and payments in
143:      * READY status. Correct balance should appear in the Account Summary
144:      * screen.
145:      *
146:      * @author jtracy
147:      */
148:     public function testPatientBalanceTest5()
149:     {
150:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
151: 
152:         // open the patient record for Patient Balance Test 5
153:         $patientView = $app->patients->open(Patients::PATIENT_BALANCE_TEST5);
154:         $this->waitForAjax();
155: 
156:         // navigate to the patient's dashboard
157:         $patientAcctSummary = $patientView->accountSummary->navigate()->verifyAndWait();
158: 
159:         /**
160:          * Expected outcome:
161:          * a. Account Summary shows a patient balance of $977.39
162:          * b. Last Payment Date shows 07/05/2016
163:          */
164:         $this->waitForAjax();
165:         $this->spinWait(function () use ($patientAcctSummary) {
166:             $patientAcctSummary->filter(
167:                 $patientAcctSummary->selectors->lastPaymentDate
168:             )->assertCanSee("07/05/2016");
169:             $patientAcctSummary->filter(
170:                 $patientAcctSummary->selectors->patientIncurredPatientBalance
171:             )->assertCanSee("$977.39");
172:             return true;
173:         });
174:     }
175: 
176:     /**
177:      * Summary:
178:      * An insurance pay patient with Encounters in READY status with charges
179:      * and primary insurance payments + patient balance. Correct balance
180:      * should appear in the Account Summary screen.
181:      *
182:      * @author jtracy
183:      */
184:     public function testPatientBalanceTest6()
185:     {
186:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
187: 
188:         // open the patient record for Patient Balance Test 6
189:         $patientView = $app->patients->open(Patients::PATIENT_BALANCE_TEST6);
190:         $this->waitForAjax();
191: 
192:         // navigate to the patient's dashboard
193:         $patientAcctSummary = $patientView->accountSummary->navigate()->verifyAndWait();
194: 
195:         /**
196:          * Expected outcome:
197:          * a. Account Summary shows a patient balance of $977.39
198:          * b. Last Insurance Payment Date shows 07/07/2016
199:          */
200:         $this->waitForAjax();
201:         $this->spinWait(function () use ($patientAcctSummary) {
202:             $patientAcctSummary->filter(
203:                 $patientAcctSummary->selectors->lastInsurancePaymentDate
204:             )->assertCanSee("07/07/2016");
205:             $patientAcctSummary->filter(
206:                 $patientAcctSummary->selectors->patientIncurredPatientBalance
207:             )->assertCanSee("$586.99");
208:             $patientAcctSummary->filter(
209:                 $patientAcctSummary->selectors->patientIncurredPriInsBalance
210:             )->assertCanSee("$0.00");
211:             $patientAcctSummary->filter(
212:                 $patientAcctSummary->selectors->patientIncurredBalance
213:             )->assertCanSee("$586.99");
214:             $patientAcctSummary->filter(
215:                 $patientAcctSummary->selectors->patientIncurredInsuranceBalance
216:             )->assertCanSee("$0.00");
217:             $patientAcctSummary->filter(
218:                 $patientAcctSummary->selectors->patientRespPatientBalance
219:             )->assertCanSee("$586.99");
220:             $patientAcctSummary->filter(
221:                 $patientAcctSummary->selectors->patientRespPriInsBalance
222:             )->assertCanSee("$0.00");
223:             $patientAcctSummary->filter(
224:                 $patientAcctSummary->selectors->patientRespBalance
225:             )->assertCanSee("$586.99");
226:             $patientAcctSummary->filter(
227:                 $patientAcctSummary->selectors->patientRespInsuranceBalance
228:             )->assertCanSee("$0.00");
229:             return true;
230:         });
231:     }
232: 
233:     /**
234:      * Summary:
235:      * Patient Multiple Balance Test 1:
236:      * 1. Encounter with a Charge, Primary Insurance Payment, Insurance Adjustment, Zero Balance.
237:      * 2. Encounter with a Charge, Primary Insurance Payment, Balance, Next Payer Secondary Insurance.
238:      * 3. Encounter with a Charge, Primary Insurance Payment, Secondary Insurance Payment, Zero Balance.
239:      * 4. Encounter with a Charge, Primary Insurance Payment, Secondary Insurance Payment, Patient Balance.
240:      *
241:      * @author jtracy
242:      */
243:     public function testPatientMultipleBalanceTest1()
244:     {
245:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
246: 
247:         // open the patient record for Patient Multiple Balance Test 1
248:         $patientView = $app->patients->open(Patients::PATIENT_MULTI_BALANCE_TEST1);
249:         $this->waitForAjax();
250: 
251:         // navigate to the patient's dashboard
252:         $patientAcctSummary = $patientView->accountSummary->navigate()->verifyAndWait();
253: 
254:         /**
255:          * Expected outcome:
256:          * a. Account Summary shows a patient balance of  $120.72
257:          * b. Last Insurance Payment Date shows 07/08/2016
258:          * c. Account Summary shows a 1st Insurance Balance of $0.00
259:          * d. Account Summary shows a 2nd Insurance Balance of $48.56
260:          * e. Account Summary shows a Total Insurance Balance of $48.56
261:          */
262:         $this->waitForAjax();
263:         $this->spinWait(function () use ($patientAcctSummary) {
264:             $patientAcctSummary->filter(
265:                 $patientAcctSummary->selectors->lastInsurancePaymentDate
266:             )->assertCanSee("07/08/2016");
267:             $patientAcctSummary->filter(
268:                 $patientAcctSummary->selectors->patientIncurredPatientBalance
269:             )->assertCanSee("$120.72");
270:             $patientAcctSummary->filter(
271:                 $patientAcctSummary->selectors->patientIncurredPriInsBalance
272:             )->assertCanSee("$0.00");
273:             $patientAcctSummary->filter(
274:                 $patientAcctSummary->selectors->patientIncurredSecInsBalance
275:             )->assertCanSee("$48.56");
276:             $patientAcctSummary->filter(
277:                 $patientAcctSummary->selectors->patientIncurredBalance
278:             )->assertCanSee("$169.28");
279:             $patientAcctSummary->filter(
280:                 $patientAcctSummary->selectors->patientIncurredInsuranceBalance
281:             )->assertCanSee("$48.56");
282:             $patientAcctSummary->filter(
283:                 $patientAcctSummary->selectors->patientRespPatientBalance
284:             )->assertCanSee("$120.72");
285:             $patientAcctSummary->filter(
286:                 $patientAcctSummary->selectors->patientRespPriInsBalance
287:             )->assertCanSee("$0.00");
288:             $patientAcctSummary->filter(
289:                 $patientAcctSummary->selectors->patientRespSecInsBalance
290:             )->assertCanSee("$48.56");
291:             $patientAcctSummary->filter(
292:                 $patientAcctSummary->selectors->patientRespBalance
293:             )->assertCanSee("$169.28");
294:             $patientAcctSummary->filter(
295:                 $patientAcctSummary->selectors->patientRespInsuranceBalance
296:             )->assertCanSee("$48.56");
297:             return true;
298:         });
299:     }
300: 
301:     /**
302:      * Summary:
303:      * An insurance pay patient with an Encounter with a primary insurance
304:      * balance in NEW status. No insurance balance should appear in the
305:      * Account Summary screen.
306:      *
307:      * @author jtracy
308:      */
309:     public function testPrimaryInsuranceBalanceTest1()
310:     {
311:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
312: 
313:         // open the patient record for Primary Insurance Balance Test 1
314:         $patientView = $app->patients->open(Patients::PRI_INS_BALANCE_TEST1);
315:         $this->waitForAjax();
316: 
317:         // navigate to the patient's dashboard
318:         $patientAcctSummary = $patientView->accountSummary->navigate()->verifyAndWait();
319: 
320:         /**
321:          * Expected outcome:
322:          * a. Account Summary shows a patient incurred primary insurance
323:          *    balance of $0.00 and a total insurance balance of $0.00.
324:          */
325:         $this->waitForAjax();
326:         $this->spinWait(function () use ($patientAcctSummary) {
327:             $patientAcctSummary->filter(
328:                 $patientAcctSummary->selectors->patientIncurredPriInsBalance
329:             )->assertCanSee("$0.00");
330:             $patientAcctSummary->filter(
331:                 $patientAcctSummary->selectors->patientIncurredInsuranceBalance
332:             )->assertCanSee("$0.00");
333:             return true;
334:         });
335:     }
336: 
337:     /**
338:      * Summary:
339:      * An insurance pay patient with an Encounter with a primary insurance
340:      * balance in READY status. Correct insurance balance should appear in the
341:      * Account Summary screen.
342:      *
343:      * @author jtracy
344:      */
345:     public function testPrimaryInsuranceBalanceTest2()
346:     {
347:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
348: 
349:         // open the patient record for Primary Insurance Balance Test 2
350:         $patientView = $app->patients->open(Patients::PRI_INS_BALANCE_TEST2);
351:         $this->waitForAjax();
352: 
353:         // navigate to the patient's dashboard
354:         $patientAcctSummary = $patientView->accountSummary->navigate()->verifyAndWait();
355: 
356:         /**
357:          * Expected outcome:
358:          * a. Account Summary shows a patient incurred primary insurance
359:          *    balance of $148.56 and a total insurance balance of $148.56.
360:          */
361:         $this->waitForAjax();
362:         $this->spinWait(function () use ($patientAcctSummary) {
363:             $patientAcctSummary->filter(
364:                 $patientAcctSummary->selectors->patientIncurredPriInsBalance
365:             )->assertCanSee("$148.56");
366:             $patientAcctSummary->filter(
367:                 $patientAcctSummary->selectors->patientIncurredInsuranceBalance
368:             )->assertCanSee("$148.56");
369:             $patientAcctSummary->filter(
370:                 $patientAcctSummary->selectors->patientIncurredBalance
371:             )->assertCanSee("$148.56");
372:             $patientAcctSummary->filter(
373:                 $patientAcctSummary->selectors->patientRespPriInsBalance
374:             )->assertCanSee("$148.56");
375:             $patientAcctSummary->filter(
376:                 $patientAcctSummary->selectors->patientRespInsuranceBalance
377:             )->assertCanSee("$148.56");
378:             $patientAcctSummary->filter(
379:                 $patientAcctSummary->selectors->patientRespBalance
380:             )->assertCanSee("$148.56");
381:             return true;
382:         });
383:     }
384: 
385:     /**
386:      * Summary:
387:      * An insurance pay patient with multiple Encounters with a primary
388:      * insurance balance in READY status. Correct insurance balance should
389:      * appear in the Account Summary screen.
390:      *
391:      * @author jtracy
392:      */
393:     public function testPrimaryInsuranceBalanceTest3()
394:     {
395:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
396: 
397:         // open the patient record for Primary Insurance Balance Test 3
398:         $patientView = $app->patients->open(Patients::PRI_INS_BALANCE_TEST3);
399:         $this->waitForAjax();
400: 
401:         // navigate to the patient's dashboard
402:         $patientAcctSummary = $patientView->accountSummary->navigate()->verifyAndWait();
403: 
404:         /**
405:          * Expected outcome:
406:          * a. Account Summary shows a patient incurred primary insurance
407:          *    balance of $1,367.64 and a total insurance balance of $1,367.64.
408:          */
409:         $this->waitForAjax();
410:         $this->spinWait(function () use ($patientAcctSummary) {
411:             $patientAcctSummary->filter(
412:                 $patientAcctSummary->selectors->patientIncurredPriInsBalance
413:             )->assertCanSee("$1,367.64");
414:             $patientAcctSummary->filter(
415:                 $patientAcctSummary->selectors->patientIncurredInsuranceBalance
416:             )->assertCanSee("$1,367.64");
417:             $patientAcctSummary->filter(
418:                 $patientAcctSummary->selectors->patientIncurredBalance
419:             )->assertCanSee("$1,367.64");
420:             $patientAcctSummary->filter(
421:                 $patientAcctSummary->selectors->patientRespPriInsBalance
422:             )->assertCanSee("$1,367.64");
423:             $patientAcctSummary->filter(
424:                 $patientAcctSummary->selectors->patientRespInsuranceBalance
425:             )->assertCanSee("$1,367.64");
426:             $patientAcctSummary->filter(
427:                 $patientAcctSummary->selectors->patientRespBalance
428:             )->assertCanSee("$1,367.64");
429:             return true;
430:         });
431:     }
432: 
433:     /**
434:      * Summary:
435:      * A guarantor patient has a linked dependent patient with an insurance
436:      * and a patient balance. The patient balance shows on the guarantor's
437:      * account summary and as a guarantor balance on the dependent's summary.
438:      * The insurance balance shows only on the dependent's summary.
439:      *
440:      * @author jtracy
441:      */
442:     public function testPatientGuarantorBalanceTest1()
443:     {
444:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
445: 
446:         // open the patient record for Phyllis Armstrong
447:         $patientView = $app->patients->open(Patients::PHYLLIS_ARMSTRONG);
448:         $this->waitForAjax();
449: 
450:         // navigate to the patient's dashboard
451:         $patientAcctSummary = $patientView->accountSummary->navigate()->verifyAndWait();
452: 
453:         /**
454:          * Expected outcome:
455:          * a. Account Summary shows a patient incurred balance of $0.00
456:          *    and a patient responsible account balance of $70.72.
457:          */
458:         $this->waitForAjax();
459:         $this->spinWait(function () use ($patientAcctSummary) {
460:             $patientAcctSummary->filter(
461:                 $patientAcctSummary->selectors->patientIncurredPriInsBalance
462:             )->assertCanSee("$0.00");
463:             $patientAcctSummary->filter(
464:                 $patientAcctSummary->selectors->patientIncurredInsuranceBalance
465:             )->assertCanSee("$0.00");
466:             $patientAcctSummary->filter(
467:                 $patientAcctSummary->selectors->patientIncurredBalance
468:             )->assertCanSee("$0.00");
469:             $patientAcctSummary->filter(
470:                 $patientAcctSummary->selectors->patientRespPatientBalance
471:             )->assertCanSee("$70.72");
472:             $patientAcctSummary->filter(
473:                 $patientAcctSummary->selectors->patientRespPriInsBalance
474:             )->assertCanSee("$0.00");
475:             $patientAcctSummary->filter(
476:                 $patientAcctSummary->selectors->patientRespInsuranceBalance
477:             )->assertCanSee("$0.00");
478:             $patientAcctSummary->filter(
479:                 $patientAcctSummary->selectors->patientRespBalance
480:             )->assertCanSee("$70.72");
481:             return true;
482:         });
483: 
484:         // open the patient record for April Armstrong
485:         $patientView = $app->patients->open(Patients::APRIL_ARMSTRONG);
486:         $this->waitForAjax();
487: 
488:         // navigate to the patient's dashboard
489:         $patientAcctSummary = $patientView->accountSummary->navigate()->verifyAndWait();
490: 
491:         /**
492:          * Expected outcome:
493:          * a. Account Summary shows a patient incurred balance of $869.08
494:          *    and a patient responsible account balance of $798.36.
495:          */
496:         $this->waitForAjax();
497:         $this->spinWait(function () use ($patientAcctSummary) {
498:             $patientAcctSummary->filter(
499:                 $patientAcctSummary->selectors->patientIncurredPatientBalance
500:             )->assertCanSee("$70.72");
501:             $patientAcctSummary->filter(
502:                 $patientAcctSummary->selectors->patientIncurredPriInsBalance
503:             )->assertCanSee("$798.36");
504:             $patientAcctSummary->filter(
505:                 $patientAcctSummary->selectors->patientIncurredInsuranceBalance
506:             )->assertCanSee("$798.36");
507:             $patientAcctSummary->filter(
508:                 $patientAcctSummary->selectors->patientIncurredBalance
509:             )->assertCanSee("$869.08");
510:             $patientAcctSummary->filter(
511:                 $patientAcctSummary->selectors->patientRespPatientBalance
512:             )->assertCanSee("$0.00");
513:             $patientAcctSummary->filter(
514:                 $patientAcctSummary->selectors->patientRespPriInsBalance
515:             )->assertCanSee("$798.36");
516:             $patientAcctSummary->filter(
517:                 $patientAcctSummary->selectors->patientRespInsuranceBalance
518:             )->assertCanSee("$798.36");
519:             $patientAcctSummary->filter(
520:                 $patientAcctSummary->selectors->patientRespBalance
521:             )->assertCanSee("$798.36");
522:             return true;
523:         });
524:     }
525: }
526: 
527: ?>
API documentation generated by ApiGen