1. Product: Billing and back office

Billings and payments are the two functions that have the greatest influence on cash flow. In healthcare, like in any other business, ‘cash is king’. Every healthcare enterprise wants to make more revenue, collect all of that revenue, minimize purchasing spend and pay suppliers at the last ‘polite’ moment.

1.1. Theme: Registration and visits

This is the entry point for all clinical and administrative processes.

1.1.1. Epic: Patient registration

Instead of providing separate registration experiences e.g quick registration for emergency rooms and ‘normal’ registration for other settings, this design will target a streamlined patient registration function that can be used in all settings.

The important fields should be clustered at the top of the page - so that a time pressed department can opt to fill in the important ones first and add the rest later.

Note

The assigned patient numbers should be unique network-wide. One suggestion is for them to be namespaced alphanumerics that have at least 16 characters, a mix of letters and numbers. The designers of this numbering scheme should however be humane; the numbers should be easy to “chunk” into working memory.

Note

The Master Patient Index should provide a way in which related patients ( e.g mother and baby or siblings ) are cross-referenced.

The MPI should support merging of patient records.

Note

The complete history of a patient record’s changes should be maintained.

1.1.1.1. Story: Find existing patient record

The focus here should be on providing search that is of sufficiently high quality - high enough that the users almost never have to rely on the ‘Advanced Search’.

The search should tolerate common errors ( transpositions, translations, ommissions ) etc, tolerate alternate spellings ( British vs. American ) and support transliterated Arabic names ( e.g Mohammed vs Mohamad vs Muhamed ).

The available search fields include:

  • patient names ( surname, first name, middle name )
  • date of birth / age
  • gender
  • unique patient identifier / medical record number
  • alias
  • father’s or mother’s name - useful for neonates
  • identification document number
  • phone number
  • location e.g room or bed
  • visit number
  • visit date
  • admission date
  • admitting physician
  • discharge date
  • family linkage e.g son of

Many of these are more suited to the ‘Advanced Search’ function. We should strive to implement default search so that it is good enough to obviate the need for these most of the time.

The patients list should be sorted in reverse chronological order by default.

Listing 1.1 Find an existing patient via full text search
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
Feature: Find existing patient record 
    The system should support multiple patient search criteria, including: 
    names, partial names, historical names e.g maiden names, identification 
    numbers e.g National ID or passport number, medical record / patient 
    numbers, visit / encounter numbers e.g IP / OP number and insurance
    numbers e.g NHIF or private insurance member numbers.

    The search should be tolerant of simple spelling mistakes e.g 
    translocations, transpositions, translations, alternate spellings 
    ( American vs British spellings ), common abbreviations ( e.g. 'Bill' for 
    'William' ) etc. A partial name should work as well as a full name, even if
    the order of the names is reversed.

    The multi-location nature of the enterprise ( e.g a multi-branch healthcare
    chain ) should not matter - a patient registered in one branch should have
    their record available in any other branch.

    Scenario: Search for a patient record from a patient list 
        Given that I am logged in as "a <POS> user>" 
        And I navigate to the "<POS>" home page 
        And I navigate to the "Patients" listing
        And I click on the search box 
        When I type at least three characters of the "<field>" of a patient 
            that exists 
        Then I should see records that match the "<field>" on the patient 
        listing, with each listing entry showing the name, patient number,
        identification number, date of birth, gender and current patient queue,
        a patient photo, visit status, preauthorization status and copay status
        And I should get fewer and better matches as I type more
        And the patient list should be sorted in reverse chronological order by
            default

        Examples:
            | POS       | field                                     |
            | Triage    | name                                      |
            | Triage    | historical name e.g maiden name           |
            | Triage    | patient record number                     |
            | Triage    | identification number e.g national ID     |
            | Triage    | insurance number e.g NHIF or member number|
            | Triage    | visit number ( IP or OP )                 |
            | Pharmacy  | name                                      |
            | Pharmacy  | historical name e.g maiden name           |
            | Pharmacy  | patient record number                     |
            | Pharmacy  | identification number e.g national ID     |
            | Pharmacy  | insurance number e.g NHIF or member number|
            | Pharmacy  | visit number ( IP or OP )                 |
            | Lab       | name                                      |
            | Lab       | historical name e.g maiden name           |
            | Lab       | patient record number                     |
            | Lab       | identification number e.g national ID     |
            | Lab       | insurance number e.g NHIF or member number|
            | Lab       | visit number ( IP or OP )                 |
            | Radiology | name                                      |
            | Radiology | historical name e.g maiden name           |
            | Radiology | patient record number                     |
            | Radiology | identification number e.g national ID     |
            | Radiology | insurance number e.g NHIF or member number|
            | Radiology | visit number ( IP or OP )                 |
            | Blood bank| name                                      |
            | Blood bank| historical name e.g maiden name           |
            | Blood bank| patient record number                     |
            | Blood bank| identification number e.g national ID     |
            | Blood bank| insurance number e.g NHIF or member number|
            | Blood bank| visit number ( IP or OP )                 |

        And I should be able to open an editing view to edit patient 
            registration details
        And I should see a start visit button for patients with no ongoing
            visit
        And I should see a link / button to the current visit for patients with
            and ongoing visit

    Scenario: Advanced patient search 
        If ordinary search returns too many hits, the user may resort to 
        filtering the search results.

        Given that I am logged in as "a <POS> user>" 
        And I navigate to the "<POS>" home page 
        And I navigate to the "Patients" listing
        And I click on the search box 
        When I type at least three characters of the "<field>" of a patient 
            that exists 
        And I click on the filter area of the list view
        And I constrain my search results by entering values into these field:
            | Field                 |
            | Gender                |
            | Age or date of birth  |
            | Phone number          |
            | Email address         |
            | Postal address        |
            | Last visit date       |
        Then I should see records that match the "<field>" on the patient 
        listing and the constraining filter, with each listing entry showing
        the name, patient number, identification number, date of birth, gender
        and current patient queue, a patient photo, visit status,
        pre-authorization status and copay status
        And I should get fewer and better matches as I type more

        Examples:
            | POS       | field                                     |
            | Triage    | name                                      |
            | Triage    | historical name e.g maiden name           |
            | Triage    | patient record number                     |
            | Triage    | identification number e.g national ID     |
            | Triage    | insurance number e.g NHIF or member number|
            | Triage    | visit number ( IP or OP )                 |
            | Pharmacy  | name                                      |
            | Pharmacy  | historical name e.g maiden name           |
            | Pharmacy  | patient record number                     |
            | Pharmacy  | identification number e.g national ID     |
            | Pharmacy  | insurance number e.g NHIF or member number|
            | Pharmacy  | visit number ( IP or OP )                 |
            | Lab       | name                                      |
            | Lab       | historical name e.g maiden name           |
            | Lab       | patient record number                     |
            | Lab       | identification number e.g national ID     |
            | Lab       | insurance number e.g NHIF or member number|
            | Lab       | visit number ( IP or OP )                 |
            | Radiology | name                                      |
            | Radiology | historical name e.g maiden name           |
            | Radiology | patient record number                     |
            | Radiology | identification number e.g national ID     |
            | Radiology | insurance number e.g NHIF or member number|
            | Radiology | visit number ( IP or OP )                 |
            | Blood bank| name                                      |
            | Blood bank| historical name e.g maiden name           |
            | Blood bank| patient record number                     |
            | Blood bank| identification number e.g national ID     |
            | Blood bank| insurance number e.g NHIF or member number|
            | Blood bank| visit number ( IP or OP )                 |

        And I should be able to open an editing view to edit patient 
            registration details
        And I should see a start visit button for patients with no ongoing
            visit
        And I should see a link / button to the current visit for patients with
            and ongoing visit

1.1.1.2. Story: Full patient registration

Listing 1.2 Full / standard patient registration at the front desk
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
Feature: Full' patient registration
    This will be the patient registration path that will be followed in 
    settings that are not severely time constrained e.g at a registration desk
    for regular outpatients.

    Background:
        Given that I am logged in as a 'registration desk' user
        And I click on the 'Front Desk' main navigation link

    Scenario: Register a patient with no prior system record ( first timer )
        If the patient is a new born baby that has not been named yet, they 
        will initially be registered under by prefixing their mother's name 
        with 'Baby '. These records will be edited later.

        This form will also serve as a quick registration form. In a quick 
        registration scenario, the optional fields will be left unfilled. It 
        should be possible to fill in the form in 'quick registration mode'
        in 15 seconds ( verified by user testing ).

        Given that I have logged in and navigated to the front desk
        And I navigate to the "Patients" listing
        And I click on "Add New Patient"
        When I fill in the following unique data
          | field           | explanation                                   |
          | title           | Title of address e.g Mr, Dr ( optional ).     |
          | name            | Name: family, give and middle components      |
          | photo           | A photograph of the patient ( optional )      | 
          | aliases         | e.g maiden names, old names ( optional )      |
          | father's name   | ( optional )                                  |
          | mother's name   | ( optional ) might include her maiden name    |
          | gender          | Administrative gender                         |
          | sex             | Birth sex ( optional, hidden by default )     |
          | birth date      | Date of birth, **can be estimated**           | 
          | ID documents    | e.g ID or passport; can be more than one      |
          | Guardian's ID   | For minors                                    |
          | nationality     |                                               |
          | marital status  | Civil / marital status ( optional )           |
          | religion        |                                               |
          | telephone no(s) | Current phone contacts ( optional )           |
          | email(s)        | Current email contacts ( optional )           |
          | addresses       | Postal and physical addresses ( optional )    |
          | residence       | Country -> street and door ( optional )       |
          | next of kin     | Names, relationship, phone, residence         | 
          | payment method  | Default payment method ( optional )           |
          | payment details | e.g NHIF, insurance details ( optional )      |
          | occupation      | ( optional )                                  |
          | employer        | ( optional )                                  |
          | notes           | ( optional ) free text                        |
          | guarantors      | Full name, address, phone number ( optional ) |
          | referred by     | Doctor or institution; name and contacts      |
        And click on "Save Patient"
        Then I should see a "Patient added" success message
        And a patient record number should be assigned automatically
        And I should be redirected to the patient listing
            with the new patient's record showing on top

    Scenario: Trigger validation errors when registering a patient
        Validation errors should display as soon as the field is 'blurred'. 
        They should also inactivate the "Save Patient" button. The user should
        not have to wait for a failed server side "save" to be informed of
        validation errors.

        It should not be possible to save a patient record without any of the 
        mandatory fields.

        Given that I have logged in and navigated to the front desk
        And I navigate to the "Patients" listing
        And I click on "Add New Patient"
        When I fill in wrong / non-existent values for each of these fields: 
          | field           | explanation                                   |
          | title           | Title of address e.g Mr, Dr, Prof.            |
          | name            | Name: family, give and middle components      |
          | gender          | Administrative gender                         |
          | sex             | Birth sex                                     |
          | birth date      | Date of birth, **can be estimated**           | 
          | ID documents    | e.g ID or passport; can be more than one      |
          | photo           | A photograph of the patient                   | 
          | telecom(s)      | Current phone and email contacts              |
          | addresses       | Postal and physical addresses                 |
          | marital status  | Civil / marital status                        |
          | contacts        | Family or emergency contacts e.g guardians    |
          | payment method  | Default payment method e.g insurance          |
          | payment details | e.g NHIF number, insurance details            |
        Then I should see a field-specific validation message for each value
        And the "Save Patient" button should be inactive


    Scenario: Attempt registration of a patient who already **has** a record
        The government issued ID documents are used to identify 'true
        duplicates'.  

        This de-duplication should work across an entire organization e.g every
        branch in a multi-branch hospital.

        Given that I have logged in and navigated to the front desk
        And I navigate to the "Patients" listing
        And I click on "Add New Patient"
        When I fill in the following data, with an existing ID type & number
          | field           | explanation                                   |
          | title           | Title of address e.g Mr, Dr, Prof.            |
          | name            | Name: family, give and middle components      |
          | gender          | Administrative gender                         |
          | sex             | Birth sex                                     |
          | birth date      | Date of birth, **can be estimated**           | 
          | ID documents    | e.g ID or passport; can be more than one      |
          | photo           | A photograph of the patient                   | 
          | telecom(s)      | Current phone and email contacts              |
          | addresses       | Postal and physical addresses                 |
          | marital status  | Civil / marital status                        |
          | contacts        | Family or emergency contacts e.g guardians    |
          | payment method  | Default payment method e.g insurance          |
          | payment details | e.g NHIF number, insurance details            |
        And click on "Save Patient"
        Then I should see a "Patient already exists" error message 
        And I should be prompted to click through to the existing record 
        And I should be able to edit the existing patient record

    Scenario: Attempt registration of a patient who **might** have an existing
        record. The combination of name, gender, sex and birth date
        is used to provide a 'potential duplicate' warning.

        This de-duplication should work across an entire organization e.g every
        branch in a multi-branch hospital.

        Given that I have logged in and navigated to the front desk
        And I navigate to the "Patients" listing
        And I click on "Add New Patient"
        When I fill in the following data, with an existing ID type & number
          | field           | explanation                                   |
          | title           | Title of address e.g Mr, Dr, Prof.            |
          | name            | Name: family, give and middle components      |
          | gender          | Administrative gender                         |
          | sex             | Birth sex                                     |
          | birth date      | Date of birth, **can be estimated**           | 
          | ID documents    | e.g ID or passport; can be more than one      |
          | photo           | A photograph of the patient                   | 
          | telecom(s)      | Current phone and email contacts              |
          | addresses       | Postal and physical addresses                 |
          | marital status  | Civil / marital status                        |
          | contacts        | Family or emergency contacts e.g guardians    |
          | payment method  | Default payment method e.g insurance          |
          | payment details | e.g NHIF number, insurance details            |
        And click on "Save Patient"
        Then I should see a "Did you mean to update ..." warning message 
        And I should be prompted to navigate to the existing record OR save
        And I should be able to navigate to editing the existing record
        And I should be able to click "Save" and get a success message

    Scenario: Cancel a patient registration
        It should be possible to abort a patient registration at any time

        Given that I have logged in and navigated to the front desk
        And I navigate to the "Patients" listing
        And I click on "Add New Patient"
        When I click on the "Cancel" button
        Then I should be navigated back to the patient list

    Scenario: Register a John Doe in the emergency room
        A 'John Doe' or 'Jane Doe' is a patient - usually an unconscious 
        emergency - about whom little or nothing is known. They still need to 
        have a patient record created in order for treatment to proceed.

        Given that I have logged in and navigated to the front desk
        And I navigate to the "Patients" listing
        And I click on "Register Emergency Patient ( John Doe )"
        Then I should be prompted to enter as plain text descriptive and 
            context information e.g scars, eye color or other unique descriptions
        And I should be able to click "OK" and get a confirmation message 
        And I should be navigated back to the patient listing, with the new
            record appearing near the top

1.1.1.3. Story: Edit patient record

Listing 1.3 Edit patient record
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
Feature: Find existing patient record 
    Patient details e.g contacts change, and they need to be kept up to date.

    Scenario: Open but do not edit a patient record 
        When navigating away from a patient record that is not "dirty", the
        user should not be presented with any prompts.

        Given that I am logged in as "a front desk user>" 
        And I navigate to the patient listing
        And I 'Search for a patient record from a patient list'
        And I select a single patient record by clicking "Edit Details"
        And I see an editing form with the patient's details shown
        When I click on "Cancel Editing" 
        Then I should be navigated back to the patients listing

    Scenario: Edit an existing patient record
        Any patient record that is retrieved can be updated. This includes
        John/Jane doe patients and infants initially registered under a 
        'placeholder' name.

        Given that I am logged in as "a front desk user>" 
        And I navigate to the patient listing
        And I 'Search for a patient record from a patient list'
        And I select a single patient record by clicking
        And I see an editing form with the patient's details shown
        When I change any value on the form
        Then I should see a visual indication that the form is 'dirty'
        When I click "Update Patient Details"
        Then I should see a "Patient details updated" success message
        And I should be navigated back to the patient listing


    Scenario: Navigating away from a "dirty" record and discarding
        When attempting to navigate away from a "dirty" record, a user should
        be prompted to save or discard. If they choose to discard, they should
        be navigated back to the patient listing with no further prompting.

        Given that I am logged in as "a front desk user>" 
        And I navigate to the patient listing
        And I 'Search for a patient record from a patient list'
        And I select a single patient record by clicking "Edit Details"
        And I see an editing form with the patient's details shown
        And I make some changes to the patient record
        When I click on "Cancel Editing" 
        Then I should be prompted to "Save" or "Discard" the changes
        And I click on "Discard"
        Then I should be navigated back to the patients listing

    Scenario: Navigating away from a "dirty" record and saving 
        When attempting to navigate away from a "dirty" record, a user should
        be prompted to save or discard. If they choose to save, the changes
        should be saved.

        Given that I am logged in as "a front desk user>" 
        And I navigate to the patient listing
        And I 'Search for a patient record from a patient list'
        And I select a single patient record by clicking "Edit Details"
        And I see an editing form with the patient's details shown
        And I make some changes to the patient record
        When I click on "Cancel Editing" 
        Then I should be prompted to "Save" or "Discard" the changes
        And I click on "Save"
        Then I should see a success confirmation message
        And I should be navigated back to the patients listing

    Scenario: Trigger validation errors with invalid edits
        When an invalid edit is made, the error should be fed back in a field
        specific manner right away. The "Update Patient Details" button should 
        also be disabled.

        Given that I am logged in as "a front desk user>" 
        And I navigate to the patient listing
        And I 'Search for a patient record from a patient list'
        And I select a single patient record by clicking
        And I see an editing form with the patient's details shown
        And I make some invalid change to any of these fields:
          | field           | explanation                                   |
          | title           | Title of address e.g Mr, Dr, Prof.            |
          | name            | Name: family, give and middle components      |
          | gender          | Administrative gender                         |
          | sex             | Birth sex                                     |
          | birth date      | Date of birth, **can be estimated**           | 
          | ID documents    | e.g ID or passport; can be more than one      |
          | photo           | A photograph of the patient                   | 
          | telecom(s)      | Current phone and email contacts              |
          | addresses       | Postal and physical addresses                 |
          | marital status  | Civil / marital status                        |
          | contacts        | Family or emergency contacts e.g guardians    |
          | payment method  | Default payment method e.g insurance          |
          | payment details | e.g NHIF number, insurance details            |
        Then I should see a field-specific error message next to the field
        And the "Update Patient Details" button should be disabled

1.1.2. Epic: Visit start

Every billing and clinical action is tied to a visit.

1.1.2.1. Story: Start out-patient cash visit

Listing 1.4 Starting cash visits
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
Feature: Start a visit for a cash patient
    For cash patient, a deposit or consultation fee is often ( but not always )
    needed up-front.

    This story depends upon the patient registration and patient search stories
    i.e. you must have found or registered a patient and clicked on their record

    Scenario: Start an outpatient visit for a cash patient, payment received
        Given that I am viewing a single patient's record
        And I have selected the type of visit e.g emergency, routine, ambulance
        And I have selected the 'Queue' where the patient will go next
        And I have selected 'Cash' as the visit payment method
        And I select the initial service e.g consultation, a lab test
        And I receive the amount that the system indicates as due
        When I click on "Start Visit"
        Then a receipt should be sent to the printer automatically
        And I should see a "Visit Started" confirmation message
        And I should be navigated back to the active visits list
        And the visit should get a visit number auto-assigned

    Scenario: Start an outpatient visit for a cash patient, payment not received
        The system will not stop visits from being started with no payment, 
        because that can become a blocker in emergency scenarios. The design
        should however make payment information very easy to spot, so that the 
        staff member operating the front-desk always has enough information to 
        make a good judgement.

        Given that I am viewing a single patient's record
        And I have selected the type of visit e.g emergency, routine, ambulance
        And I have selected the 'Queue' where the patient will go next
        And I have selected 'Cash' as the visit payment method
        And I select the initial service e.g consultation, a lab test
        When I click on "Start Visit"
        Then I should see a "Visit Started" confirmation message
        And I should be navigated back to the active visits list
        And the visit should get a visit number auto-assigned
        And the balance / amount owed should show on the visits listing

    Scenario: Receive non-service cash payment e.g copay or deposit
        This scenario **does not supersede the dedicated billing scenarios**.

        Given that I am viewing a single patient's billing record
        And I have selected the type of visit e.g emergency, routine, ambulance
        And I have selected the 'Queue' where the patient will go next
        And I click on 'Receive Payment' to open a payment form
        When I enter the amount to be received
        And indicate what it is received for e.g deposit, copay
        And click on 'Record Payment'
        Then the system should print a receipt
        And the payment status shown on the patient banner should update

1.1.2.2. Story: Start out-patient insurance visit

Listing 1.5 Starting insurance visits
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
Feature: Start Insurance Visit
    Scenario: Start a visit for an insurance patient ,first time to use insurance
        In order for this story to stay this 'simple', we will have to develop
        a mechanism by which all insurance customers - EDI and non EDI - are 
        pre-registered. Non EDI customers can be pre-registered by uploading of
        Excel files. This particular scenario will need to be a little permissive
        i.e it should not prevent a user from starting a visit merely because 
        there is no eligibility information. This edge case will typically arise
        in two circumstances: customers of foreign insurance companies and 
        beneficiaries added since the last 'update' of beneficiary information.
        
        Given that I am viewing a single patient's record
        And I have selected 'Insurance' as the visit payment method
        And I have entered insurance details - company, scheme, member number
        And I have clicked on "Check Eligibility"
        And I have examined the eligibility breakdown that shows
        And the patient has valid insurance
        And I have selected the type of visit e.g emergency, routine, ambulance
        And I have selected the 'Queue' where the patient will go next
        And I can see an "Eligibility checked" message
        When I click on "Start Visit"
        Then I should see a "Visit Started" confirmation message
        And I should be navigated back to the active visits list
        And the visit should get a visit number auto-assigned

    Scenario: Should not look up insurance eligibility, for cash patients   
        Given that I am viewing a single cash patient's billing record
        When I examine the patient 'banner' on top
        Then I should not see a "View Eligibility" button

    Scenario: Should not start a visit for a patient with invalid insurance
        Given that I am viewing a single patient's record
        And I have selected 'Insurance' as the visit payment method
        And I have entered insurance details - company, scheme, member number
        And I have clicked on "Check Eligibility"
        And I have examined the eligibility breakdown that shows
        And the patient **does not** have valid insurance
        Then the "Start Visit" button should be inactivated
        And I should see a message "Please select another payment method. 
            The indicated insurance is not valid."

1.1.2.3. Story: Start out-patient credit visit

Listing 1.6 Starting credit visits
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Feature: Start a visit for a credit patient
    The tricky part of this implementation will be determining that a 
    patient is a valid scheme member AND the scheme is valid AND they
    are eligible for care under the visit type indicated.

    The 'credit schemes' envisioned by this are things like employer managed
    medical schemes.

    This story depends upon the patient registration and patient search stories
    i.e. you must have found or registered a patient and clicked on their record

    Scenario: Start an outpatient visit for a credit patient successfully
        Given that I am viewing a single patient's record
        And I have selected 'Credit' as the visit payment method
        And I have selected the type of visit e.g emergency, routine, ambulance
        And I have selected the credit scheme to use from a shortlist
        And I can see a "Credit Eligibility Confirmed" message on the screen
        And I have selected the 'Queue' where the patient will go next
        When I click on "Start Visit"
        Then I should see a "Visit Started" confirmation message
        And I should be navigated back to the active visits list
        And the visit should get a visit number auto-assigned

    Scenario: Fail to start a visit for an ineligible credit patient 
        Given that I am viewing a single patient's record
        And I have selected 'Credit' as the visit payment method
        And I have selected the type of visit e.g emergency, routine, ambulance
        And the patient is not pre-registered for credit
        Then I should not see a credit scheme shortlist to pick from
        And the "Start Visit" button should be disabled
        And I should see a "Patient not found in credit scheme" message
 

1.1.2.4. Story: Start capitation credit visit

Listing 1.7 Starting capitation visits
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Feature: Start a visit for a capitation patient
    The tricky part of this implementation will be determining that a 
    patient is a valid capitation member AND the scheme is valid AND they
    are eligible for care under the visit type indicated.

    This story depends upon the patient registration and patient search stories
    i.e. you must have found or registered a patient and clicked on their record

    Scenario: Start an outpatient visit for a capitation patient successfully
        Given that I am viewing a single patient's record
        And I have selected 'Capitation' as the visit payment method
        And I have selected the type of visit e.g emergency, routine, ambulance
        And I have selected the 'Queue' where the patient will go next
        And I have selected the capitation scheme to use from a shortlist
        And I can see a "Capitation Eligibility Confirmed" message on the screen
        When I click on "Start Visit"
        Then I should see a "Visit Started" confirmation message
        And I should be navigated back to the active visits list
        And the visit should get a visit number auto-assigned

    Scenario: Fail to start a visit for an ineligible capitation patient 
        Given that I am viewing a single patient's record
        And I have selected 'Capitation' as the visit payment method
        And I have selected the type of visit e.g emergency, routine, ambulance
        And I have selected the 'Queue' where the patient will go next
        And the patient is not pre-registered for capitation
        Then I should not see a capitation scheme shortlist to pick from
        And the "Start Visit" button should be disabled
        And I should see a "Patient not found in capitation scheme" message
        

1.1.2.5. Story: Access the visits listing and individual visit pages

Listing 1.8 Visits listing and individual visits pages
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
Feature: Visits listing and visit detail page
    All clinical and billing activities are tied in to a visit. It follows then
    that this listing should be available from all clinical and billing points 
    of service. Key status information ( e.g preauth status, copay status and
    visit status ) should be shown as highly visible 'badges'.

    Scenario: Navigate to the visits listing 
        The visits listing will show "Active Visits" by default, but allow the 
        user to navigate to visits in other statuses via a tab mechanism.

        Given that I am logged in as a <Role> worker 
        When I click on <Role> in the main navigation 
        And I click on "Visits" in the secondary navigation
        Then I should see a listing of visits for my location and department

        Examples:
            |Role                                                           |
            |Registration                                                   |
            |Triage                                                         |
            |Pharmacy                                                       |
            |Radiology                                                      |
            |Lab                                                            |

    Scenario: View the patient's billing information by opening the visit 
        Given that I am logged in as a <Role> worker 
        And I click on <Role> in the main navigation 
        And I click on "Visits" in the secondary navigation
        Then I should see a listing of visits for my location and department
        When I click on a visit to open it
        Then I should see a page relevant patient billing information
            | Type              | Explanation                               |
            | Copays            | Amount or percentage due per visit        |
            | Insurers          | One or more insurers                      |
            | Eligibility       | An always accessible eligibility lookup   |
            | Capitation m.ship | Membership in capitation scheme(s)        |
            | Credit scheme     | Membership in capitation scheme(s)        |
            | Preauthorizations | All visit-linked preauths and their status|
            | Preauth status    | A status badge with current preauth status|
            | Charges           | A summary of amount owing and breakdown   |
            | Statements        | A detailed entry of every charge, by visit|
            | Adjustments       | e.g account credits, writedowns           |
            | Payments          | By invoice and visit                      |
            | Prepayments       | e.g pre-paid delivery packages            |
            | Deposits          | e.g cash deposits                         |
        And I should see a note recommending the next logical action e.g to 
            pay a deposit or to seek eligibility
        And I should see a clear indication of the need or lack of need for a
            copay

        Examples:
            |Role                                                           |
            |Registration                                                   |
            |Triage                                                         |
            |Pharmacy                                                       |
            |Radiology                                                      |
            |Lab                                                            |

    Scenario: Cannot start a visit for a patient with an ongoing visit
        Inpatient visits will be closed upon discharge or transfer. Out-patient
        visits will be closed after a **configured** time period. A sensible
        default for this time period is 48 hours. After due consideration, it
        is the author's opinion that a "Close Visit" function would add 
        complexity without a significant gain in utility.

        Given that I am logged in as a <Role> worker 
        And I click on <Role> in the main navigation 
        And I click on "Visits" in the secondary navigation
        Then I should see a listing of visits for my location and department
        When I click on a visit to open it
        Then I should see a page relevant patient billing information
        And there should be no "Start Visit" button

1.1.2.6. Story: Receive payments

Listing 1.9 Payments receipts in visit
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Feature: Patient billing and payments

    Scenario: Determine that a copay is due and not paid
        Given that I am logged in as a <Role> worker 
        And I click on <Role> in the main navigation 
        And I click on "Visits" in the secondary navigation
        And Isee a listing of visits for my location and department
        And I click on a visit to open it
        Given that I am viewing a single insurance patient's billing record
        And the patient's plan needs a copay
        And the patient has not paid the copay
        Then I should see a "COPAY NOT RECEIVED" badge
        And the "Start Visit" button should be disabled 

        Examples:
            |Role                                                           |
            |Registration                                                   |
            |Triage                                                         |
            |Pharmacy                                                       |
            |Radiology                                                      |
            |Lab                                                            |

    Scenario: Determine that a copay is due and paid
        Given that I am logged in as a <Role> worker 
        And I click on <Role> in the main navigation 
        And I click on "Visits" in the secondary navigation
        And Isee a listing of visits for my location and department
        And I click on a visit to open it
        And I see a page with relevant patient billing information
        And the patient's plan needs a copay
        And the patient has paid it 
        When I look at the patient 'banner' on top
        Then I should see a muted 'COPAY RECEIVED' badge 
        And I should be able to click on the 'Start Visit' button

        Examples:
            |Role                                                           |
            |Registration                                                   |
            |Triage                                                         |
            |Pharmacy                                                       |
            |Radiology                                                      |
            |Lab                                                            |

    Scenario: Print and reprint patient's receipt
        Given that I am logged in as a <Role> worker 
        And I click on <Role> in the main navigation 
        And I click on "Visits" in the secondary navigation
        And Isee a listing of visits for my location and department
        And I click on a visit to open it
        And I see a page with relevant patient billing information
        And I see a listing of the patient's most recent payments
        And I click on any paymen
        Then I should see the payment details
        And I should see a "Print Receipt" button
        When I click on the "Print Receipt" button
        Then the receipt should be sent to the printer

        Examples:
            |Role                                                           |
            |Registration                                                   |
            |Triage                                                         |
            |Pharmacy                                                       |
            |Radiology                                                      |
            |Lab                                                            |
 

1.1.2.7. Story: Pre-authorizations

Listing 1.10 Preauthorization
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
Feature: Preauthorizations 
    Pre-authorization requests are needed for some classes of visits ( e.g all 
    inpatient ) and on the basis of payer specific business rules ( e.g all
    visits with an expected charge above KES 10,000 ). The design goal here is 
    to get the system to do most of the heavy lifting in answering the question
    "Do we need a pre-authorization for this patient?"

    Scenario: Show pre-authorization status when it is relevant 
        In this scenario, the user opens a 'visit sheet'. The need for a 
        pre-auth request should be communicated in a prominent 'badge' on a 
        'banner' that brings together all relevant visit information.

        Given that I am logged in as a <Role> worker 
        When I click on <Role> in the main navigation 
        And I click on "Visits" in the secondary navigation
        And I click on a visit that should require preauthorization e.g inpatient 
        Then I should see a page that summarizes that visit's information
        And I should be see a "Pre-authorization Status" section in its banner
        And I should see a "Pre-authorization needed" badge in that section
        And I should see a "Request pre-authorization" button next to that badge

        Examples:
            |Role                                                           |
            |Registration                                                   |
            |Triage                                                         |
            |Pharmacy                                                       |
            |Radiology                                                      |
            |Lab                                                            |

    Scenario: Do not show a pre-authorization section when it is not needed 
        Given that I am logged in as a <Role> worker 
        When I click on <Role> in the main navigation 
        And I click on "Visits" in the secondary navigation
        And I click on a visit that should NOT require preauthorization
        Then I should see a page that summarizes that visit's information
        And I should NOT be see a "Pre-authorization Status" section 

        Examples:
            |Role                                                           |
            |Registration                                                   |
            |Triage                                                         |
            |Pharmacy                                                       |
            |Radiology                                                      |
            |Lab                                                            |

    Scenario: View preauth status from the patient listing
        Given that I am logged in as a <Role> worker 
        When I click on <Role> in the main navigation 
        And I click on "Patients"
        And I find the patients of interest by typing into the search box
        Then I should see a pre-authorization status badge for each patient 
            that has or needs pre-authorization

        Examples:
            |Role                                                           |
            |Registration                                                   |
            |Triage                                                         |
            |Pharmacy                                                       |
            |Radiology                                                      |
            |Lab                                                            |

    Scenario: View preauth status from the visit listing 
        Given that I am logged in as a <Role> worker 
        When I click on <Role> in the main navigation 
        And I click on "Visits" in the secondary navigation
        And I find a specific visit by typing into the search box
        Then I should see a pre-authorization status badge in each visit 
            that has or needs pre-authorization

        Examples:
            |Role                                                           |
            |Registration                                                   |
            |Triage                                                         |
            |Pharmacy                                                       |
            |Radiology                                                      |
            |Lab                                                            |

    Scenario: Request pre-authorization, for insurance patients
        Given that I am logged in as a <Role> worker 
        When I click on <Role> in the main navigation 
        And I click on "Visits" in the secondary navigation
        And I click on a visit that should require preauthorization e.g inpatient 
        Then I should see a page that summarizes that visit's information
        And I should be see a "Pre-authorization Status" section in its banner
        And I should see a "Pre-authorization needed" badge in that section
        And I should see a "Request pre-authorization" button next to that badge
        When I click on "Request Pre-authorization"
        Then I should see a pre-authorization request form
        And the form should have pre-filled with all details already present in
            the visit
        And I should edit and fill out the rest of the form
        And I should press "Submit"
        And I should see a "Pre-authorization request sent" message
        And I should be navigated back to the visits listing 

        Examples:
            |Role                                                           |
            |Registration                                                   |
            |Triage                                                         |
            |Pharmacy                                                       |
            |Radiology                                                      |
            |Lab                                                            |

    Scenario: Receive notification of pre-authorization approval
        Given that I am logged in
        And I had previously entered a request for pre-authorization
        When a pre-authorization is approved
        Then I should get a notification in the application notification area
        And I should also get a native notification on my device
        And I should be able to click on the notification to view the preauth

    Scenario: Receive notification of pre-authorization rejection 
        Given that I am logged in
        And I had previously entered a request for pre-authorization
        When a pre-authorization is rejected 
        Then I should get a notification in the application notification area
        And I should also get a native notification on my device
        And I should be able to click on the notification to view the preauth

    Scenario: Receive notification of pre-authorization clarification request 
        Given that I am logged in
        And I had previously entered a request for pre-authorization
        When a pre-authorization clarification is requested 
        Then I should get a notification in the application notification area
        And I should also get a native notification on my device
        And I should be able to click on the notification to respond to the request 

    Scenario: View preauth status from the patient listing
        Given that I am logged in as a front-/ corporate- / admissions- worker
        When I access the patient listing 
        Then I should see pre-authorization status badges for every patient
        And patients with recent activity should appear at the top of the list

    Scenario: View preauth status from the visits listing
        Given that I am logged in as a front-/ corporate- / admissions- worker
        When I access the patient listing 
        Then I should see pre-authorization status badges for every patient
        And patients with recent activity should appear at the top of the list

    Scenario: Determine a patient's preauth status 
        Given that I am viewing a single insurance patient's billing record
        And the patient has a pre-authorization request(s) 
        When I look at the patient 'banner' on top
        Then I should see a summary of the status of the pre-auth requests
        And I should be able to click on each request to view it in full

1.2. Theme: Purchasing

This covers routine purchasing and acquisition of assets.

1.2.1. Epic: Purchasing

This is focused on ‘routine purchasing’ i.e purchasing of supplies that are re-sold or used as direct inputs in service delivery. Purchasing may be centralized ( in a purchasing department ) or decentralized ( with each service delivery department carrying out part or all of the process ).

All purchasing documents go through a maker-checker ( issuer / approver ) cycle.

Note

As a:
  • purchasing or stores employee
I need to:
  • set up vendors
  • set up payment terms
  • set up product information. In healthcare, product information might include specialized data fields e.g for Pharmacy, it includes: generic names, stock codes, strengths, units of issue e.g tablet or vial, unit pack sizes, manufacturer information, storage requirements, supplier, product categories, notes, category, storage instructions, dosing information etc
  • product status - active, obsolete, phased out, expired
  • define maximum and minimum reorder levels and critical stock levels
  • define minimum and maximum stock cover days
  • checking of back-orders, with deactivation after a time threshold
  • automatic rounding off the the nearest pack size during reorder
  • issue purchase orders, which derive from requisitions / requests
  • split orders between different suppliers
  • receive goods deliveries - noting batch numbers and expiries at this stage
  • note delivery details e.g vehicle number and driver when receiving goods
  • check the goods deliveries before accepting them into the store(s) and issuing a goods receipt note
  • receiving donations
  • accepting promotional stocks and prizes
  • return goods that are not accepted - before or after they are stocked
  • transfer goods to other stores, at cost
  • enter invoices. While entering invoices, I expect discounts and due dates to be computed automatically, on the basis of payment terms. When accessing invoice listings, I should be able to sort or filter invoices by vendor, date etc. Potentially duplicated invoices should be flagged. An invoice may be assigned to a future accounting date.
  • set up recurring invoices, for recurring vendor payments
  • enter credit and debit memos
  • make payments against purchase invoices, with the ability to: apply account credits to future purchases, pay in full or in part and add or remove vendor invoices from payment schedules. Potentially duplicated payments should be flagged as should payments to vendors who owe us money ( from credits or as customers ).
  • generate vendor statements that can be used to reconcile their accounts
  • access a dashboard that has: listings of invoices that are due for payment, aging analyses, cash requirements projections
  • access the following reports: inventory by store, low inventory, slow moving inventory, batch and expiry tracking, purchases by vendor
  • alert / flag when ordering items that are already in stock
  • highlight the last supplier of an item and the price paid
  • support requisitions with: current stock, stock cover days, lead time, forecasts
  • requests for quotation

1.3. Theme: Billing

This write-up is to be read in conjunction with the positive ID specifications.

1.3.1. Epic: Billing dashboard

The billing dashboard should focus on the most important and actionable bits of summary information.

Note

As a:
  • billing manager
I need to:
  • quickly analyze receivables - aging, days in accounts receivable by insurance group / provider / visit type / diagnosis etc, aggregate days in accounts receivable
  • quicly analyze denials, by reason, payer, condition, procedure etc
  • access top n lists - service / procedure, payer etc
  • quickly analyze revenue - by procedure, by payer, by diagnosis
  • have access to a dashboard that tracks all my claims by status e.g paid, pending, late, returned, re-submitted
  • view the audit trail of all transactions
  • view current cash availability
  • forecast cash sources against cash users
  • track follow-up conversations e.g in collections

1.3.2. Epic: Preauthorizations

As an employee at any point of service that needs pre-authorization e.g the admissions desk, I need to be able to requests and track pre-authorizations.

Note

As a:
  • point of service staff member
I need to:
  • be able to request pre-authorization - both elective and emergency preauths
  • be notified when a pre-authorization changes status e.g is approved or rejected, so that I can inform waiting patients and move the process along
  • be able to respond to clarification requests on pre-authorizations
  • be able to check on the status of any pre-authorization and have a simple dashboard that gives visibility into the status of all preauthorizations that are in flight

1.3.3. Epic: Cashiering

This feature covers both cash and credit invoices - what we’d conventionally call ‘tills’ or ‘pay points’.

Note

As a:
  • cashier
I need to:
  • be able to log in to my own cashiering ‘site’, with its own cash drawer, receipt etc
  • have my own shift, with a ‘day book report’ that is produced at the end
  • post payments singly and in batch
  • access cash balancing reports, within and at the end of a shift
  • accept MPESA payments
  • accept card and other electronic payments
  • show a warning if a customer payment will put the customer account into credit

1.3.4. Epic: Billing back-office

As a billing clerk, I need to quickly distinguish tasks that need special attention. For each patient, the operating analogy is that of a ‘cockpit’ that is focused on a single patient’s billing. The activities described here should be designed for ‘a world with EDI’ and ‘a world without EDI’.

Financial ‘class codes’ on patient accounts are things like ‘ensuite’, ‘private’ etc.

Note

As a:
  • billing clerk
I need to:
  • have quick access to a worklist ( alternative names: task list, queue )

  • be able to hold ( suspend processing of ) bills that need some special action e.g a consultation with my boss, a confirmation etc

  • be able to access a listing of held bills and a simple summary of the status of held / pending / processed bills for a particular day

  • easily send out payment reminders for both individuals and corporate payers

  • be able to look up a patient’s insurance eligibility - for those from EDI linked payers - at any moment

  • have access to patient summary clinical information ( discharge summary, problem list )

  • be able to view all the billings and payments on a patient’s account. This includes deposits, charges, adjustments, corrections and refunds.

  • have quick and obvious access to patients’ deductibles / copayment obligations and whether they have been met or not

  • be able to see a patient’s insurance details and look up eligibility on demand ( a patient may be on multiple insurance schemes )

  • be able to generate an interim invoice for a patient with an active inpatient or outpatient visit on demand

  • access a queue of requests for interim bills from insurance care managers ( from the payer portal ) then review and respond ( accept / reject ) those requests; for the ones that I accept, an interim bill is automatically sent to the requester

  • be able to consolidate bills at the end of a patient’s stay to produce a ‘super bill’; this consolidated bill may be grouped by department

  • make adjustments on patient bill

  • support multiple prices e.g by patient type, insurance

  • support percentage discounts and allowances for third party contracts e.g volume and prompt payment discounts

  • get alerts when patient cover is about to be depleted

  • enter price and description for miscellaneous charges

  • entry of late charges - with different cut off periods

  • produce daily and monthly later charge reports

  • be able to generate a final bill for a patient whose visit has been completed e.g a discharged patient; the patient’s bill may be printed in summary or detailed form

  • be able to reprint any final bill on demand

  • be able to process a cash refund for a patient who is billed less than their deposit

  • be able to split a bill between the patient and their insurer / employer / sponsor

  • be able to generate a split bill for a second payer

  • be able to support rebilling for late charges and changes in financial class after billing

  • be able to retroactively change financial class and rebil

  • be able to post a supplementary bill to a patient e.g posting charges to the patient post-discharge, even after the late charge threshold

  • be able to generate and print or send a patient statement

  • be able to bill guarantors or family

  • be able to view prominent flags / warnings for patients who may present collection problems

  • be able to submit claims via EDI

  • be able to group invoices destined for a specific payer, generate cover sheets and dispatch them in bulk , batch and dispach them ( dispatch paper claims )

  • be able to track the status of all claims, including denials, those that need additional information, low pay claims etc

  • be able to respond to requests for clarification on claims and effect the necessary claims edits

  • be notified via the claims section of my message inbox when a claim changes status e.g is paid, there is an incoming remittance advice etc

  • be able to enter non EDI remittance advices manually

  • billing for non-patient accounts e.g guest beds

  • batch printing of bills

  • print free format text messages on all bills in a financial class

  • each bill has the following:
    • header: patient name, guarantor name and address, date and type of bill ( interim or final ), hospital service, physician(s), financial class, admit and discharge diagnosis, visit diagnosis for outpatients ( including ICD 10 code )
    • lines: service code, date, description, quantity, amount, total
  • a bill may have a summary ( grouping ) of charges

  • a bill may have comments

  • collections - standard form letters on demand e.g for 30 day old accounts, 60 day old accounts etc
  • aging of undispatched claims
  • generate reminder letters for overdue invoices
  • write off small remaining balances based on user defined tolerance

The ‘conveyor belt’ analogy is a good one, for billing clerks. Keep the belt movin’.

1.3.5. Epic: Aged trial balance

Note

As an:
  • accounting user
I need to:
  • print an aged trial balance, with account number, name, dates of service and last statement
  • include number of statements, last payment date and amount, current credits
  • print separate aged trial balance for inpatient and outpatient
  • sort the aged trial balance by patient last name, descending order of account balance, financial class, bill date, guarantor, age,
  • compare aging trial balance in summary or at the detail level
  • print aged trial balance summary with multiple aging categories, showing amounts and percentages
  • user definable aging
  • generate aging by activity date, due date, effective date etc
  • manage dispute items
  • generate guarantor aged trial balance
  • generate doctor aged trial balance

1.3.6. Epic: Hospital administered schemes

This includes the like of internally managed staff schemes and employer credit schemes.

Note

As a:
  • billing administrator
I need to:
  • set up the following details for principal members:
    • name
    • gender
    • age
    • ID no / passport number
    • contact details - address, telephone, email
    • photo
    • date of employment ( optional )
    • payroll number
    • division
    • department
    • cover limit
    • entitlement
    • exclusions
    • auto-generated hospital patient number ( pre-registration )
  • set up the following details for dependants:
    • name
    • gender
    • age
    • contact details i.e address, telephone number, email
    • ID no / passport number
    • photo
    • auto-generated hospital patient number ( pre-registration )
  • add dependants

  • remove dependants

  • control validity / expiry

  • set cover limits, entitlements and exclusions

1.3.7. Epic: Corporate Schemes

Note

As a:
  • billing administrator
I need to:
  • open and close corporate accounts: each with a code, start date, end date
  • auto-suspend corporate accounts on end date
  • activate or inactivate corporate accounts
  • define if an account uses a medical benefit management system e.g biometrics
  • define the scope of cover: outpatient vs inpatient, maternity, optical, dental
  • define max. credit limit
  • warn the user if the credit limit is reached
  • maintain exclusions
  • manage services that need pre-authorization
  • manage copay details: may be linked to specific benefits, and be amount or percentage
  • manage contact persons
  • attach reference documents
  • list exclusions ( coded )
  • define active, suspended, terminated entitlements, with dates
  • define panel of doctors
  • real time beneficiary database
  • corporate basic details: name, addresses, email, contact person, internal account manager
  • status management: active, inactive, pending, merged, unavailable
  • define the scope of the contract: open ended or specified
  • indicate bank guarantee and deposit status
  • manage deposits

1.3.8. Epic: Billing setup

This includes price-list setup along with setup of prepaid schemes and capitation.

Note

As a:
  • billing administrator
I need to:
  • be able to set up a ‘charge master’ with all billable items
  • be able to associate a single item with multiple codes e.g a billing code, a LOINC code for lab services, a drug code for a medication
  • be able to package multiple items and services together as a single billing item ( package billing )
  • be able to set up multiple prices with different effective times for each billable item
  • create prepaid schemes - including setting up limits, members and dependants. Prepaid scheme beneficiaries are registered as patients.
  • create capitation schemes - with limits, members and dependants Capitation scheme members are registered as patients.

Scheme and capitation setup will need to be a maker-checker process.

1.3.9. Epic: Managing consultants and locums

External doctors ( specialist and non specialist ) present special payment allocation challenges for hospitals.

Locum doctors need to be paid on a regular ( e.g monthly ) basis for service rendered and hours worked. External specialists often ‘pass their bills through’ the hospital.

Note

As a:
  • clinic or hospital manager
I need to:
  • enroll specialists into our panel
  • enroll locum doctors ( who are paid by the hour and a fee for select services ) into our panel
  • allocate payments to specialists - with those that derive from insurance being paid when the claims are paid and those that derive from cash billings being paid on a schedule
  • compute and pay locum doctors dues on a schedule
  • deduct the appropriate withholding taxes from all payments
  • link specialists, locums and full-time resources to queues, workflows, rooms etc
Because:
  • the hospitals service delivery is influenced by the quality of the relationship with our doctors - both internal and external

These external doctors should also be ‘schedulable resources’.

1.3.10. Epic: Printing

It should be easy to print pixel perfect output e.g lab reports, even from tablets or phones. It should not involve the usual ‘download PDF, open PDF, print’ cycle, or the poor precision of in-browser printing. The implementers should evaluate Google Cloud Printing and similar solutions. The ‘printers’ in question might be very varied - from a departmental copy printer to a little label printer.

Note

As a:
  • user ( any user )
I need to:
  • be able to click ‘Print’ and print any transaction or output document that I have access to e.g a patient invoice or a patient’s visit summary
  • be able to easily choose from a selection of printers

1.3.10.1. Scenario: Send a patient bill to the printer

Patient bills are some of the most frequently printed documents in a hospital setting.

Note

Given:
  • that I am logged in to the system
And:
  • I want to print a patient bill
When:
  • I click on an easy to locate print button / icon / control
And:
  • Select the printer from the pop over / pop up dialog that results
Then:
  • The document should be sent to the selected printer
And:
  • Print with the precision I expect / as it looks on the screen / with proper headers, page numbers etc

The ‘big deal’ here is the combination of pixel-perfect printing, mobility and simplicity. Stock browser printing does not cut it.