# Coverage summary: carewell (generated by harness/coverage/report.py)

Exit check: **PASS**

| Module | Triggers | Program units | Covered | Unreachable | Blocked | Unclassified |
| --- | ---: | ---: | ---: | ---: | ---: | ---: |
| CW_APPOINTMENTS | 9 | 3 | 12 | 0 | 0 | 0 |
| CW_BILLING | 10 | 4 | 13 | 1 | 0 | 0 |
| CW_LOGIN | 1 | 0 | 1 | 0 | 0 | 0 |
| CW_MAIN | 5 | 2 | 7 | 0 | 0 | 0 |
| CW_PATIENTS | 5 | 1 | 5 | 1 | 0 | 0 |
| CW_APP | 12 | 0 | 12 | 0 | 0 | 0 |
| CW_LIB | 13 | 0 | 8 | 5 | 0 | 0 |
| **total** | 55 | 10 | 58 | 7 | 0 | 0 |

| Database object | Type | Blocks | Covered | Class |
| --- | --- | ---: | ---: | --- |
| CW_API | PACKAGE BODY | None | 0 | unreachable |
| CW_FEE_API | PACKAGE BODY | None | 0 | unreachable |

| Item | Class | Scenarios / reason |
| --- | --- | --- |
| `CW_APPOINTMENTS/APPOINTMENTS.DEPT_ID/WHEN-LIST-CHANGED` | covered | appointments-book, appointments-department, appointments-double-booking, appointments-invalid-duration |
| `CW_APPOINTMENTS/APPOINTMENTS.STATUS/WHEN-LIST-CHANGED` | covered | appointments-cancel |
| `CW_APPOINTMENTS/APPOINTMENTS/POST-QUERY` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-return, billing-patient, navigation |
| `CW_APPOINTMENTS/APPOINTMENTS/WHEN-VALIDATE-RECORD` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-return, billing-patient, navigation |
| `CW_APPOINTMENTS/APPOINTMENTS/PRE-INSERT` | covered | appointments-book, appointments-invalid-duration |
| `CW_APPOINTMENTS/APPOINTMENTS/PRE-UPDATE` | covered | appointments-book, appointments-cancel, appointments-invalid-duration |
| `CW_APPOINTMENTS/unit:SET_REASON_REQUIRED` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-return, billing-patient, navigation |
| `CW_APPOINTMENTS/unit:CHECK_DOUBLE_BOOKING` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-return, billing-patient, navigation |
| `CW_APPOINTMENTS/unit:LOAD_PATIENT` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-no-patient, appointments-return, billing-patient, navigation |
| `CW_APPOINTMENTS/WHEN-NEW-FORM-INSTANCE` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-no-patient, appointments-return, billing-patient, navigation |
| `CW_APPOINTMENTS/ON-ERROR` | covered | appointments-cancel, appointments-delete-refused, appointments-invalid-duration |
| `CW_APPOINTMENTS/WHEN-FORM-NAVIGATE` | covered | appointments-return, navigation |
| `CW_BILLING/INVOICES/ON-POPULATE-DETAILS` | covered | billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved |
| `CW_BILLING/INVOICES/ON-CHECK-DELETE-MASTER` | unreachable | INVOICES has Delete Allowed No, so Forms refuses Records > Delete with FRM-41049 before the master-detail delete check runs. |
| `CW_BILLING/INVOICES/POST-QUERY` | covered | billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved |
| `CW_BILLING/PAYMENTS/PRE-INSERT` | covered | billing-pay |
| `CW_BILLING/PAYMENTS/POST-INSERT` | covered | billing-pay |
| `CW_BILLING/unit:CHECK_PACKAGE_FAILURE` | covered | billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved |
| `CW_BILLING/unit:QUERY_MASTER_DETAILS` | covered | billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved |
| `CW_BILLING/unit:CLEAR_ALL_MASTER_DETAILS` | covered | billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved |
| `CW_BILLING/unit:LOAD_INVOICES` | covered | billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved |
| `CW_BILLING/WHEN-NEW-FORM-INSTANCE` | covered | billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved |
| `CW_BILLING/ON-CLEAR-DETAILS` | covered | billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved |
| `CW_BILLING/KEY-COMMIT` | covered | billing-pay |
| `CW_BILLING/ON-ERROR` | covered | billing-delete-refused |
| `CW_BILLING/WHEN-FORM-NAVIGATE` | covered | billing-return |
| `CW_LOGIN/CTL.SIGN_IN/WHEN-BUTTON-PRESSED` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-no-patient, appointments-return, billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved, login-billing, login-lov, login-ok, main-about, main-print-schedule, navigation, patients-find, patients-query |
| `CW_MAIN/HOME.SCHEDULE/WHEN-BUTTON-PRESSED` | covered | main-print-schedule |
| `CW_MAIN/HOME.PATIENTS/WHEN-BUTTON-PRESSED` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-return, billing-patient, login-billing, login-lov, navigation, patients-find, patients-query |
| `CW_MAIN/HOME.INVOICES/WHEN-BUTTON-PRESSED` | covered | billing-delete-refused, billing-pay, billing-unsaved |
| `CW_MAIN/unit:REFRESH_HOME` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-no-patient, appointments-return, billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved, login-billing, login-lov, login-ok, main-about, main-print-schedule, navigation, patients-find, patients-query |
| `CW_MAIN/unit:PRINT_SCHEDULE` | covered | main-print-schedule |
| `CW_MAIN/WHEN-NEW-FORM-INSTANCE` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-no-patient, appointments-return, billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved, login-billing, login-lov, login-ok, main-about, main-print-schedule, navigation, patients-find, patients-query |
| `CW_MAIN/WHEN-FORM-NAVIGATE` | covered | billing-patient, billing-return, navigation, patients-query |
| `CW_PATIENTS/CTL.FIND/WHEN-BUTTON-PRESSED` | covered | patients-find |
| `CW_PATIENTS/CTL.APPTS/WHEN-BUTTON-PRESSED` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-return, billing-patient, navigation |
| `CW_PATIENTS/CTL.BILLS/WHEN-BUTTON-PRESSED` | unreachable | WHEN-NEW-FORM-INSTANCE disables Invoices... unless CW_SEC.HAS_ROLE('ADMIN,BILLING'). CW_PATIENTS is opened with OPEN_FORM, and its CW_NAV.START_FORM finds CW_SEC.USERNAME empty, so it signs in the P_USER default, Front Desk One (RECEPTION), and the button is always disabled. A defect of the original (the sign-in does not reach the forms CW_MAIN opens) or a retirement candidate. |
| `CW_PATIENTS/PATIENTS/WHEN-NEW-RECORD-INSTANCE` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-return, billing-patient, login-billing, login-lov, navigation, patients-find, patients-query |
| `CW_PATIENTS/unit:FIND_PATIENTS` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-return, billing-patient, login-billing, login-lov, navigation, patients-find, patients-query |
| `CW_PATIENTS/WHEN-NEW-FORM-INSTANCE` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-return, billing-patient, login-billing, login-lov, navigation, patients-find, patients-query |
| `CW_APP/menu:FILE.SAVE` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-double-booking, appointments-invalid-duration, billing-pay |
| `CW_APP/menu:FILE.CLEAR` | covered | appointments-department |
| `CW_APP/menu:FILE.EXIT` | covered | patients-query |
| `CW_APP/menu:RECORDS.QUERY` | covered | patients-query |
| `CW_APP/menu:RECORDS.EXECUTE` | covered | patients-query |
| `CW_APP/menu:RECORDS.INSERT` | covered | appointments-book, appointments-double-booking, appointments-invalid-duration |
| `CW_APP/menu:RECORDS.DELETE` | covered | appointments-delete-refused, billing-delete-refused |
| `CW_APP/menu:CLINIC.HOME` | covered | billing-patient, billing-return, navigation |
| `CW_APP/menu:CLINIC.PATIENTS` | covered | appointments-return, navigation |
| `CW_APP/menu:CLINIC.APPOINTMENTS` | covered | appointments-no-patient |
| `CW_APP/menu:CLINIC.INVOICES` | covered | billing-patient, billing-return |
| `CW_APP/menu:HELP.ABOUT` | covered | main-about |
| `CW_LIB/unit:CW_ERR.CONSTRAINT_OF` | covered | appointments-cancel, appointments-delete-refused, appointments-invalid-duration, billing-delete-refused |
| `CW_LIB/unit:CW_ERR.ON_ERROR` | covered | appointments-cancel, appointments-delete-refused, appointments-invalid-duration, billing-delete-refused |
| `CW_LIB/unit:CW_MSG.ASK` | unreachable | No module calls it; only CW_MSG.INFORM and CW_MSG.FAIL do, and neither runs. |
| `CW_LIB/unit:CW_MSG.INFORM` | unreachable | No module or library unit calls it. |
| `CW_LIB/unit:CW_MSG.FAIL` | unreachable | Only CW_SEC.LOGIN calls it, on NO_DATA_FOUND. CTL.USERNAME validates from LOV_USERS (active users only), so Sign in never passes an unknown or inactive name, and START_FORM's P_USER default exists. |
| `CW_LIB/unit:CW_NAV.START_FORM` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-no-patient, appointments-return, billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved, login-billing, login-lov, login-ok, main-about, main-print-schedule, navigation, patients-find, patients-query |
| `CW_LIB/unit:CW_NAV.OPEN_MODULE` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-return, billing-delete-refused, billing-patient, billing-pay, billing-unsaved, login-billing, login-lov, navigation, patients-find, patients-query |
| `CW_LIB/unit:CW_SEC.LOGIN` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-no-patient, appointments-return, billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved, login-billing, login-lov, login-ok, main-about, main-print-schedule, navigation, patients-find, patients-query |
| `CW_LIB/unit:CW_SEC.HAS_ROLE` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-no-patient, appointments-return, billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved, login-billing, login-lov, navigation, patients-find, patients-query |
| `CW_LIB/unit:CW_SEC.APPLY_MENU` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-no-patient, appointments-return, billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved, login-billing, login-lov, navigation, patients-find, patients-query |
| `CW_LIB/unit:CW_SEC.ALLOW` | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-no-patient, appointments-return, billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved, login-billing, login-lov, navigation, patients-find, patients-query |
| `CW_LIB/unit:SET_BLOCK_READ_ONLY` | unreachable | Library procedure of Chapter 23; no CareWell module calls it. |
| `CW_LIB/unit:STAMP_CITY` | unreachable | Library procedure of Chapter 23; no CareWell module calls it. |

| Trigger | Branch | Class | Scenarios / reason |
| --- | --- | --- | --- |
| `CW_LIB/unit:CW_SEC.ALLOW` | role may not use the item - disabled | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-no-patient, appointments-return, billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved, login-billing, login-lov, navigation, patients-find, patients-query |
| `CW_LIB/unit:CW_SEC.ALLOW` | role may use the item - left enabled | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-no-patient, appointments-return, billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved, login-billing, login-lov, navigation, patients-find, patients-query |
| `CW_LIB/unit:CW_SEC.LOGIN` | known user - signed in | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-no-patient, appointments-return, billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved, login-billing, login-lov, login-ok, main-about, main-print-schedule, navigation, patients-find, patients-query |
| `CW_LIB/unit:CW_SEC.LOGIN` | unknown or inactive user - stop alert | unreachable | see CW_LIB/unit:CW_MSG.FAIL |
| `CW_LIB/unit:CW_NAV.OPEN_MODULE` | form not open - OPEN_FORM | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-return, billing-delete-refused, billing-patient, billing-pay, billing-unsaved, login-billing, login-lov, navigation, patients-find, patients-query |
| `CW_LIB/unit:CW_NAV.OPEN_MODULE` | form open - GO_FORM | covered | navigation |
| `CW_LIB/unit:CW_ERR.ON_ERROR` | check constraint APPOINTMENTS_DUR_CK - translated | covered | appointments-invalid-duration |
| `CW_LIB/unit:CW_ERR.ON_ERROR` | child records (ORA-02292) - translated | covered | appointments-delete-refused |
| `CW_LIB/unit:CW_ERR.ON_ERROR` | other error - Forms' own message | covered | billing-delete-refused |
| `CW_LIB/unit:CW_ERR.ON_ERROR` | duplicate key (ORA-00001) - translated | unreachable | Every key the forms insert comes from a sequence in PRE-INSERT (APPOINTMENTS_SEQ, PAYMENTS_SEQ). |
| `CW_LIB/unit:CW_ERR.ON_ERROR` | NOT NULL column (ORA-01400) - translated | unreachable | Every NOT NULL column the forms insert is a Required item (FRM-40202 first), has an initial value or is set in PRE-INSERT. |
| `CW_LIB/unit:CW_ERR.ON_ERROR` | APPOINTMENTS_PATIENT_FK or APPOINTMENTS_DOCTOR_FK - translated | unreachable | PATIENT_ID comes from CTL.PATIENT_ID (a queried patient) and DOCTOR_ID from LOV_DOCTORS; neither is typed, and the forms delete no patient or doctor. |
| `CW_APPOINTMENTS/unit:CHECK_DOUBLE_BOOKING` | overlap - refused | covered | appointments-double-booking, navigation |
| `CW_APPOINTMENTS/unit:CHECK_DOUBLE_BOOKING` | no overlap or cancelled - accepted | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-return, billing-patient, navigation |
| `CW_APPOINTMENTS/unit:LOAD_PATIENT` | no patient chosen - message | covered | appointments-no-patient |
| `CW_APPOINTMENTS/unit:LOAD_PATIENT` | another patient - query | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-return, billing-patient, navigation |
| `CW_APPOINTMENTS/unit:LOAD_PATIENT` | same patient - nothing | covered | appointments-return |
| `CW_BILLING/unit:LOAD_INVOICES` | no patient - invoices to be paid | covered | billing-delete-refused, billing-pay, billing-return, billing-unsaved |
| `CW_BILLING/unit:LOAD_INVOICES` | already showing - nothing | covered | billing-return |
| `CW_BILLING/unit:LOAD_INVOICES` | a patient - that patient's invoices | covered | billing-patient |
| `CW_BILLING/KEY-COMMIT` | saved - requery and message | covered | billing-pay |
| `CW_BILLING/KEY-COMMIT` | not saved - no message | covered | billing-pay |
| `CW_MAIN/unit:PRINT_SCHEDULE` | report finished | blocked | Needs Oracle Reports: the PoC host runs Forms without a Reports server, so RUN_REPORT_OBJECT fails (FRM-41214) and the job never finishes. Missing resource, not a harness limit. |
| `CW_MAIN/unit:PRINT_SCHEDULE` | report not finished | covered | main-print-schedule |
| `CW_BILLING/unit:QUERY_MASTER_DETAILS` | immediate relation - detail queried | covered | billing-delete-refused, billing-patient, billing-pay, billing-return, billing-unsaved |
| `CW_BILLING/unit:QUERY_MASTER_DETAILS` | deferred relation | unreachable | Both relations of INVOICES (INVOICES_LINES, INVOICES_PAYMENTS) have Deferred No. |
| `CW_BILLING/unit:CLEAR_ALL_MASTER_DETAILS` | unchanged details - CLEAR_BLOCK(NO_VALIDATE) | covered | billing-delete-refused, billing-pay, billing-unsaved |
| `CW_BILLING/unit:CLEAR_ALL_MASTER_DETAILS` | changed details - CLEAR_BLOCK(ASK_COMMIT) | covered | billing-unsaved |
| `CW_PATIENTS/unit:FIND_PATIENTS` | no search fields - every patient | covered | appointments-book, appointments-cancel, appointments-delete-refused, appointments-department, appointments-double-booking, appointments-invalid-duration, appointments-return, billing-patient, login-billing, login-lov, navigation, patients-find, patients-query |
| `CW_PATIENTS/unit:FIND_PATIENTS` | search fields filled - filtered | covered | patients-find |

| Scenario | Form | Named pass | FRD pass | 3 runs identical | 3 runs pass | Golden sha256 | Bytes | Items fired |
| --- | --- | --- | --- | --- | --- | --- | ---: | ---: |
| appointments-book | cw_login | True | True | True | True/True/True | `379ed5f674021d01` | 39636 | 25 |
| appointments-cancel | cw_login | True | True | True | True/True/True | `489cdf4fe35c5c1d` | 39073 | 26 |
| appointments-delete-refused | cw_login | True | True | True | True/True/True | `8863fb6f9b37594e` | 24274 | 25 |
| appointments-department | cw_login | True | True | True | True/True/True | `7f25a8bd2a57da1b` | 29132 | 22 |
| appointments-double-booking | cw_login | True | True | True | True/True/True | `9b4cbcbd21b1f8c7` | 38920 | 23 |
| appointments-invalid-duration | cw_login | True | True | True | True/True/True | `e66627bb8005f8f1` | 39039 | 28 |
| appointments-no-patient | cw_login | True | True | True | True/True/True | `17c6aa55fabdbc01` | 4322 | 11 |
| appointments-return | cw_login | True | True | True | True/True/True | `ca58414a5614bb09` | 19417 | 22 |
| billing-delete-refused | cw_login | True | True | True | True/True/True | `06b5b220d321a562` | 11335 | 22 |
| billing-patient | cw_login | True | True | True | True/True/True | `3a79c9cbf385799d` | 21700 | 31 |
| billing-pay | cw_login | True | True | True | True/True/True | `c69db0d3481b9629` | 30806 | 22 |
| billing-return | cw_login | True | True | True | True/True/True | `e299e5fd0d4dcabc` | 11251 | 20 |
| billing-unsaved | cw_login | True | True | True | True/True/True | `f511913b79bedede` | 17920 | 18 |
| login-billing | cw_login | True | True | True | True/True/True | `6056cb2a17570c58` | 5184 | 13 |
| login-fail | cw_login | True | True | True | True/True/True | `177b24a071fb35e8` | 3769 | 0 |
| login-lov | cw_login | True | True | True | True/True/True | `e35fcf0babd7f5f5` | 6380 | 13 |
| login-ok | cw_login | True | True | True | True/True/True | `29b7a32c525ef8e1` | 2290 | 5 |
| main-about | cw_login | True | True | True | True/True/True | `f1c03b04454a04d3` | 2806 | 6 |
| main-print-schedule | cw_login | True | True | True | True/True/True | `c9d452b1938d5487` | 3047 | 7 |
| navigation | cw_login | True | True | True | True/True/True | `023e98307c0fad22` | 38919 | 24 |
| patients-find | cw_login | True | True | True | True/True/True | `d186619f551c5f39` | 24616 | 14 |
| patients-query | cw_login | True | True | True | True/True/True | `c78517e580e01acb` | 13855 | 17 |
