Example #1
0
def test_change_updated_only_after_real_update(conn):
    import_patients(conn, [
        {
            'firstName': 'Pris',
            'lastName': 'Stratton',
            'dateOfBirth': '2093-12-20',
            'externalId': '4'
        },
    ])
    initial_patient = conn.execute(patients.select()).fetchone()

    import_patients(conn, [
        {
            'firstName': 'Pris',
            'lastName': 'Stratton',
            'dateOfBirth': '2093-12-20',
            'externalId': '4'
        },
    ])
    not_updated_patient = conn.execute(patients.select()).fetchone()

    import_patients(conn, [
        {
            'firstName': 'Pray',
            'lastName': 'Stratton',
            'dateOfBirth': '2093-12-20',
            'externalId': '4'
        },
    ])
    updated_patient = conn.execute(patients.select()).fetchone()

    assert initial_patient['updated'] == not_updated_patient['updated']
    assert initial_patient['updated'] != updated_patient['updated']
Example #2
0
def test_return_deleted_payment(conn):
    import_patients(conn, [
        {
            'firstName': 'Pris',
            'lastName': 'Stratton',
            'dateOfBirth': '2093-12-20',
            'externalId': '4'
        },
    ])
    import_patients(conn, [
        {
            'firstName': 'Pris',
            'dateOfBirth': '2093-12-20',
            'externalId': '4'
        },
    ])
    import_patients(conn, [
        {
            'firstName': 'Pris',
            'lastName': 'Stratton',
            'dateOfBirth': '2093-12-20',
            'externalId': '4'
        },
    ])

    patient = conn.execute(
        patients.select().where(patients.c.external_id == '4')).fetchone()

    assert patient['deleted'] is False
    assert patient['last_name'] == 'Stratton'
Example #3
0
def test_delete_patients_which_exist_in_db_but_not_exist_in_data(conn):
    import_patients(conn, [
        {
            'firstName': 'Pris',
            'lastName': 'Stratton',
            'dateOfBirth': '2093-12-20',
            'externalId': '4'
        },
        {
            'firstName': 'Rick',
            'lastName': 'Deckard',
            'dateOfBirth': '2094-02-01',
            'externalId': '5'
        },
    ])
    import_patients(conn, [
        {
            'firstName': 'Rick',
            'lastName': 'Deckard',
            'dateOfBirth': '2094-02-01',
            'externalId': '5'
        },
    ])

    pris = conn.execute(
        patients.select().where(patients.c.external_id == '4')).fetchone()

    assert pris['deleted'] is True
Example #4
0
def test_delete_corrupted_patients(conn):
    import_patients(conn, [
        {
            'firstName': 'Pris',
            'lastName': 'Stratton',
            'dateOfBirth': '2093-12-20',
            'externalId': '4'
        },
        {
            'firstName': 'Rick',
            'lastName': 'Deckard',
            'dateOfBirth': '2094-02-01',
            'externalId': '5'
        },
    ])
    import_patients(conn, [
        {
            'lastName': 'Deckard',
            'dateOfBirth': '2094-02-01',
            'externalId': '5'
        },
        {
            'lastName': 'Unknown',
            'dateOfBirth': '2099-12-18',
            'externalId': '10'
        },
    ])

    deleted_patient = conn.execute(
        patients.select().where(patients.c.external_id == '5')).fetchone()
    total_count = conn.execute(func.count(patients)).scalar()

    assert deleted_patient['deleted'] is True
    assert total_count == 2
Example #5
0
def test_add_new_patients_into_db(conn):
    import_patients(conn, [
        {
            'firstName': 'Rick',
            'lastName': 'Deckard',
            'dateOfBirth': '2094-02-01',
            'externalId': '5'
        },
    ])

    res = conn.execute(
        patients.select().where(patients.c.external_id == 5)).fetchone()

    assert res['first_name'] == 'Rick'
    assert res['last_name'] == 'Deckard'
    assert res['external_id'] == '5'
    assert res['date_of_birth'] == datetime.date(year=2094, month=2, day=1)
Example #6
0
def get_patients(conn, min_amount=None, max_amount=None):
    query = patients.select().where(patients.c.deleted.is_(False))

    if min_amount or max_amount:
        total_amount = func.sum(payments.c.amount).label('total_amount')

        sub_query = (select([payments.c.patient_id]).where(
            payments.c.deleted.is_(False)).group_by(payments.c.patient_id))

        if min_amount:
            sub_query = sub_query.having(total_amount >= float(min_amount))

        if max_amount:
            sub_query = sub_query.having(total_amount <= float(max_amount))

        query = patients.join(
            sub_query, patients.c.id == sub_query.c.patient_id).select()

    return conn.execute(query).fetchall()
Example #7
0
def test_update_existed_patient(conn):
    import_patients(conn, [
        {
            'firstName': 'Pris',
            'lastName': 'Stratton',
            'dateOfBirth': '2093-12-20',
            'externalId': '4'
        },
    ])
    import_patients(conn, [
        {
            'firstName': 'Pris',
            'lastName': 'Stratton',
            'dateOfBirth': '2093-12-21',
            'externalId': '4'
        },
    ])

    res = conn.execute(
        patients.select().where(patients.c.external_id == 4)).fetchone()
    count = conn.execute(func.count(patients)).scalar()

    assert res['date_of_birth'].day == 21
    assert count == 1