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\Users;
  4: 
  5: class AddPatientTest extends ApplicationTestCase
  6: {
  7:     /**
  8:      * Summary:
  9:      * Basic add patient workflow. Checks that most of the entered fields
 10:      * are present in the newly created patient's demographics.
 11:      *
 12:      * @author jtracy
 13:      */
 14:     public function testAddPatientSimple()
 15:     {
 16:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
 17: 
 18:         // launch the add patient popup and randomly fill
 19:         $patientPopup = $app->home->addPatient();
 20:         $patient = $patientPopup->form->fillRandom();
 21: 
 22:         // set gaurantor as self
 23:         $patientPopup->form->select("pat_guarantor_relation", "SELF");
 24: 
 25:         $this->wait(1);
 26:         $patientPopup->form->assertInputHasValue("pat_pid");
 27:         $patientPopup->press("Save & View");
 28: 
 29:         // Check for required fields warning confirmation popup
 30:         $this->waitForAjax();
 31:         if ($app->popup->confirmIsVisible()) {
 32:             $app->popup->confirmYes();
 33:         }
 34: 
 35:         // extract the new patient id from the hash
 36:         $pat_id = $app->patients->getIdFromHash();
 37: 
 38:         // open the new patient record
 39:         $patientView = $app->patients->open($pat_id);
 40: 
 41:         // navigate to patient demographic view
 42:         $patientDemog = $patientView->demographics->navigate()->verifyAndWait();
 43: 
 44:         $this->assertElementHasText("#pat_mrn + td", $patient->pat_mrn);
 45:         $this->assertElementHasText("#pat_xray_num + td", $patient->pat_xray_num);
 46:         $this->assertElementHasText("#pat_bill_type + td", "SELF PAY (PATIENT)");
 47:         $this->assertElementHasTextNoCase("#pat_phy_id_rendering + td > a", $patient->pat_phy_name);
 48:         $this->assertElementHasTextNoCase("#pat_phy_id_requested + td > a", $patient->pat_phy_requested_name);
 49:         $this->assertElementHasTextNoCase("#pat_phy_id_referring + td > a", $patient->pat_phy_referring_name);
 50:         $this->assertElementHasTextNoCase("#par_fname + td", $patient->pat_fname);
 51:         $this->assertElementHasTextNoCase("#pat_mname + td", $patient->pat_mname);
 52:         $this->assertElementHasTextNoCase("#pat_lname + td", $patient->pat_lname);
 53:         $patientDemog->assertCanSee(substr($patient->pat_dob, 4, 2)."/".substr($patient->pat_dob, 6, 2)."/".substr($patient->pat_dob, 0, 4));
 54:         $patientDemog->assertCanSee(strtoupper($patient->pat_sex));
 55:         $this->assertElementHasTextNoCase("#pat_martial_status + td", $patient->pat_maritial_status);
 56:         $this->assertElementHasTextNoCase("#pat_ethnicity + td", $patient->pat_ethnicity);
 57:         $this->assertElementHasTextNoCase("#pat_email + td", $patient->pat_email);
 58:         $this->assertElementHasTextNoCase("#pat_address1 + td", $patient->pat_address1);
 59:         $this->assertElementHasTextNoCase("#pat_address1 + td", $patient->pat_city);
 60:         $this->assertElementHasTextNoCase("#pat_address1 + td", $patient->pat_state);
 61:         $this->assertElementHasText("#pat_address1 + td", $patient->pat_zip);
 62:     }
 63: 
 64:     /**
 65:      * Summary:
 66:      * Test add and remove of Patient Guarantor from the
 67:      * add patient screen.
 68:      */
 69:     public function testAddGuarantorInfo()
 70:     {
 71:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
 72: 
 73:         $patientPopupForm = $app->home->addPatient()->form;
 74: 
 75:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_pid");
 76:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_relation");
 77:         $patientPopupForm->assertNotInputHasValue("pat_guarantor");
 78:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_dob");
 79:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_address1");
 80:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_address2");
 81:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_city");
 82:         $patientPopupForm->assertInputDisabled("pat_guarantor_city");
 83:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_state");
 84:         $patientPopupForm->assertInputDisabled("pat_guarantor_state");
 85:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_zip");
 86:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_zip_plus4");
 87:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_employer");
 88: 
 89:         // now add a gaurantor
 90:         $patientPopupForm->setInput("pat_guarantor_pid", "QA17")->tab();
 91:         $patientPopupForm->focusInput("pat_guarantor_relation");
 92: 
 93:         // allow it to auto-populate the fields
 94:         $this->wait(2);
 95: 
 96:         $patientPopupForm->assertInputHasValue("pat_guarantor_pid");
 97:         $patientPopupForm->assertInputHasValue("pat_guarantor_relation");
 98:         $patientPopupForm->assertInputHasValue("pat_guarantor");
 99:         $patientPopupForm->assertInputDisabled("pat_guarantor");
100:         $patientPopupForm->assertInputHasValue("pat_guarantor_dob");
101:         $patientPopupForm->assertInputDisabled("pat_guarantor_dob");
102:         $patientPopupForm->assertInputHasValue("pat_guarantor_address1");
103:         $patientPopupForm->assertInputDisabled("pat_guarantor_address1");
104:         $patientPopupForm->assertInputDisabled("pat_guarantor_address2");
105:         $patientPopupForm->assertInputHasValue("pat_guarantor_city");
106:         $patientPopupForm->assertInputDisabled("pat_guarantor_city");
107:         $patientPopupForm->assertInputHasValue("pat_guarantor_state");
108:         $patientPopupForm->assertInputDisabled("pat_guarantor_state");
109:         $patientPopupForm->assertInputHasValue("pat_guarantor_zip");
110:         $patientPopupForm->assertInputDisabled("pat_guarantor_zip");
111:         $patientPopupForm->assertInputDisabled("pat_guarantor_zip_plus4");
112:         $patientPopupForm->assertInputDisabled("pat_guarantor_employer");
113: 
114:         // now clear the guarantor pid field
115:         $patientPopupForm->clearInput("pat_guarantor_pid")->tab();
116: 
117:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_pid");
118:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_relation");
119:         $patientPopupForm->assertNotInputHasValue("pat_guarantor");
120:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_dob");
121:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_address1");
122:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_address2");
123:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_city");
124:         $patientPopupForm->assertInputDisabled("pat_guarantor_city");
125:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_state");
126:         $patientPopupForm->assertInputDisabled("pat_guarantor_state");
127:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_zip");
128:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_zip_plus4");
129:         $patientPopupForm->assertNotInputHasValue("pat_guarantor_employer");
130:     }
131: 
132:     /**
133:      * Summary:
134:      * Test the addition of primary, secondary, and tertiary insurances from the
135:      * add patient screen.
136:      */
137:     public function testAddInsurancePatient()
138:     {
139:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
140: 
141:         $patientPopupForm = $app->home->addPatient()->form;
142:         $patientPopupForm->fillRandom();
143:         $patientPopupForm->setAsInsurancePay();
144: 
145:         $patientPopupForm->assertNotInputHasValue("pat_linked_ins1_pid")
146:             ->assertNotInputHasValue("pat_ins1_irep_id")
147:             ->assertCanSee("Primary Ins.");
148:         $patientPopupForm->assertNotInputHasValue("pat_linked_ins2_pid")
149:             ->assertNotInputHasValue("pat_ins2_irep_id")
150:             ->assertCanSee("Secondary Ins.");
151:         $patientPopupForm->assertNotInputHasValue("pat_linked_ins3_pid")
152:             ->assertNotInputHasValue("pat_ins3_irep_id")
153:             ->assertCanSee("Tertiary Ins.");
154: 
155:         // ***** Primary Insurance
156:         $patientPopupForm->addPrimaryInsurance();
157: 
158:         $this->within("#pat_ins_search_popup", function ($driver) {
159:             $driver->waitFor('[data-grid-row="0"]')->click();
160:             $driver->wait(1);
161:         });
162:         $app->popup->last()->press("Add");
163: 
164:         // fill out the add insurance popup
165:         $form = $this->getView("patients/add-insurance-popup-form.json")->verifyAndWait();
166:         $form->setInput(array(
167:             "pat_ins_policy_num" => $this->faker->numerify("##########"),
168:             "pat_ins_group_num" => $this->faker->numerify("##########"),
169:             "dd_pat_ins_insured_relation" => "SELF"
170:         ))->tab();
171: 
172:         $form->assertInputValueEquals("dd_insurance_type", "1");
173: 
174:         // save the add insurance information
175:         $app->popup->last()->press("Save");
176: 
177:         $this->waitForElementText('[data-model-attribute-display="pat_ins1_insured_relation"]', "SELF", 10);
178:         $patientPopupForm->assertInputHasValue("pat_ins1_irep_id");
179:         $patientPopupForm->assertNotElementEmpty('[data-model-attribute-display="pat_ins1_policy_num"]')
180:             ->assertNotElementEmpty('[data-model-attribute-display="pat_ins1_group_num"]')
181:             ->assertNotElementEmpty('[data-model-attribute-display="pat_ins1_insured"]')
182:             ->assertNotElementEmpty('[data-model-attribute-display="pat_ins1_insured_dob"]')
183:             ->assertNotElementEmpty('[data-model-attribute-display="pat_ins1_insured_sex"]');
184: 
185:         // ***** Secondary Insurance
186:         $patientPopupForm->addSecondaryInsurance();
187: 
188:         $this->within("#pat_ins_search_popup", function ($driver) {
189:             // for some reason, the extra 1 second delay is needed here
190:             $driver->wait(1)->waitFor('[data-grid-row="0"]')->click();
191:             $driver->wait(1);
192:         });
193:         $app->popup->last()->press("Add");
194: 
195:         // fill out the add insurance popup
196:         $form = $this->getView("patients/add-insurance-popup-form.json")->verifyAndWait();
197:         $form->setInput(array(
198:             "pat_ins_policy_num" => $this->faker->numerify("##########"),
199:             "pat_ins_group_num" => $this->faker->numerify("##########"),
200:             "dd_pat_ins_insured_relation" => "SELF"
201:         ))->tab();
202: 
203:         $form->assertInputValueEquals("dd_insurance_type", "2");
204: 
205:         // save the add insurance information
206:         $app->popup->last()->press("Save");
207: 
208:         $this->waitForElementText('[data-model-attribute-display="pat_ins2_insured_relation"]', "SELF", 10);
209:         $patientPopupForm->assertInputHasValue("pat_ins2_irep_id");
210:         $patientPopupForm->assertNotElementEmpty('[data-model-attribute-display="pat_ins2_policy_num"]')
211:             ->assertNotElementEmpty('[data-model-attribute-display="pat_ins2_group_num"]')
212:             ->assertNotElementEmpty('[data-model-attribute-display="pat_ins2_insured"]')
213:             ->assertNotElementEmpty('[data-model-attribute-display="pat_ins2_insured_dob"]')
214:             ->assertNotElementEmpty('[data-model-attribute-display="pat_ins2_insured_sex"]');
215: 
216:         // ***** Tertiary Insurance
217:         $patientPopupForm->addTertiaryInsurance();
218: 
219:         $this->within("#pat_ins_search_popup", function ($driver) {
220:             // for some reason, the extra 1 second delay is needed here
221:             $driver->wait(1)->waitFor('[data-grid-row="0"]')->click();
222:             $driver->wait(1);
223:         });
224:         $app->popup->last()->press("Add");
225: 
226:         // fill out the add insurance popup
227:         $form = $this->getView("patients/add-insurance-popup-form.json")->verifyAndWait();
228:         $form->setInput(array(
229:             "pat_ins_policy_num" => $this->faker->numerify("##########"),
230:             "pat_ins_group_num" => $this->faker->numerify("##########"),
231:             "dd_pat_ins_insured_relation" => "SELF"
232:         ))->tab();
233: 
234:         $form->assertInputValueEquals("dd_insurance_type", "4");
235: 
236:         // save the add insurance information
237:         $app->popup->last()->press("Save");
238: 
239:         $this->waitForElementText('[data-model-attribute-display="pat_ins3_insured_relation"]', "SELF", 10);
240:         $patientPopupForm->assertInputHasValue("pat_ins3_irep_id");
241:         $patientPopupForm->assertNotElementEmpty('[data-model-attribute-display="pat_ins3_policy_num"]')
242:             ->assertNotElementEmpty('[data-model-attribute-display="pat_ins3_group_num"]')
243:             ->assertNotElementEmpty('[data-model-attribute-display="pat_ins3_insured"]')
244:             ->assertNotElementEmpty('[data-model-attribute-display="pat_ins3_insured_dob"]')
245:             ->assertNotElementEmpty('[data-model-attribute-display="pat_ins3_insured_sex"]');
246: 
247:         $this->assertNoErrorPopups();
248:     }
249: 
250:     /**
251:      * Summary:
252:      * Test the add, edit, and removal of a patient power of attorney from the
253:      * add patient screen.
254:      */
255:     public function testAddPatientPowerAttorney()
256:     {
257:         $app = $this->login(Users::FELIX_MILLER, Users::PASSWORD);
258: 
259:         $patientPopupForm = $app->home->addPatient()->form;
260: 
261:         // click the + Power of Attorney button
262:         $this->waitFor("#btn_add_pat_poa")->click();
263: 
264:         // fill out the add power of attorney popup
265:         $form = $this->getView("patients/add-power-of-attorney-popup-form.json")->verifyAndWait();
266: 
267:         $gender = (rand(1, 2) == 1 ? 'male' : 'female');
268:         $form->setInput(array(
269:             "npat_fname" => $this->faker->firstName($gender),
270:             "npat_lname" => $this->faker->lastName($gender),
271:             "poa_relation" => "SPOUSE"
272:         ))->tab();
273: 
274:         // save the add power of attorney information
275:         $app->popup->last()->press("Submit");
276: 
277:         $this->waitForElementText('#poa_relation', "SPOUSE", 10);
278:         $patientPopupForm->assertTrue($patientPopupForm->querySelector("#pat_poa_select")->value() > 0);
279:         $patientPopupForm->assertInputHasValue("npat_fname")
280:             ->assertInputHasValue("npat_lname");
281:         $patientPopupForm->assertNotElementEmpty("#poa_relation");
282: 
283: 
284:         // edit the power of attorney
285:         $this->waitFor("#btn_edit_pat_poa")->click();
286: 
287:         $form = $this->getView("patients/add-power-of-attorney-popup-form.json")->verifyAndWait();
288:         $form->assertInputHasValue("npat_fname")
289:             ->assertInputHasValue("npat_lname")
290:             ->assertInputHasValue("poa_relation");
291: 
292:         $app->popup->last()->press("Cancel");
293:         $this->wait(1);
294: 
295:         // remove the power of attorney
296:         $this->waitFor("#btn_remove_pat_poa")->click();
297:         $app->popup->confirmYes();
298: 
299:         $this->waitForElementText('#poa_relation', "", 10);
300:         $patientPopupForm->assertFalse($patientPopupForm->querySelector("#pat_poa_select")->value() > 0);
301:         $patientPopupForm->assertNotInputHasValue("npat_fname")
302:             ->assertNotInputHasValue("npat_lname");
303:         $patientPopupForm->assertElementEmpty("#poa_relation");
304:     }
305: }
306: 
307: ?>
API documentation generated by ApiGen