Exemple #1
0
def liveSearchInvoices(practice_uuid, patient_name):
    sql = """SELECT
    any_value(patients.practice_uuid) AS practice_uuid,
    any_value(patients.patient_name) AS patient_name,
    any_value(patients.patient_id) AS patient_id,
    any_value(invoices.invoice_id) AS invoice_id,
    any_value(invoices.credit_cent) AS credit_cent,
    any_value(invoices.submitted_on) AS submitted_on,
    any_value(invoices.date_created) AS date_created,
    any_value(invoices.date_invoice) AS date_invoice,
    any_value(invoices.status) AS status,
    group_concat(invoice_items.item) AS item_numbers,
    group_concat(invoice_items.units) AS item_units,
    group_concat(invoice_items.description) AS item_descriptions,
    group_concat(invoice_items.value_cent) AS item_values,
    group_concat(invoice_items.post_value_cent) AS item_post_values,
    group_concat(invoice_items.date) AS item_dates,
    group_concat(invoice_items.status) AS item_status
    FROM patients
    LEFT JOIN invoices
    ON invoices.patient_id = patients.patient_id
    LEFT JOIN invoice_items
    ON invoice_items.invoice_id = invoices.invoice_id
    WHERE patients.practice_uuid = '{}' AND patients.patient_name LIKE '{}%'
    GROUP BY invoices.invoice_id""".format(practice_uuid, patient_name)
    conn = pool.connection()
    cursor = conn.cursor()
    cursor.execute(sql)
    patient_invoices = cursor.fetchall()
    cursor.close()
    conn.close()
    return patient_invoices
Exemple #2
0
def updateInvoice(practice_uuid, phone, fax, hospital, diagnosis):
    if phone and fax and hospital and diagnosis:
        layout_code = 9
    elif phone and fax and hospital:
        layout_code = 6
    elif phone and fax and diagnosis:
        layout_code = 12
    elif phone and hospital and diagnosis:
        layout_code = 8
    elif phone and fax:
        layout_code = 3
    elif phone and hospital:
        layout_code = 5
    elif phone and diagnosis:
        layout_code = 11
    elif hospital and diagnosis:
        layout_code = 7
    elif phone:
        layout_code = 2
    elif hospital:
        layout_code = 4
    elif diagnosis:
        layout_code = 10
    else:
        layout_code = 1
    sql = """UPDATE practices SET invoice_layout = '{}' WHERE
    practice_uuid = '{}'""".format(layout_code, practice_uuid)
    conn = pool.connection()
    cursor = conn.cursor()
    cursor.execute(sql)
    cursor.close()
    conn.close()
    status = True
    return status
Exemple #3
0
def addPractice(email, practice_form):
    conn = pool.connection()
    cursor = conn.cursor()
    cursor.execute(
        """INSERT INTO practices (uuid_bin, practice_admin,
        practice_email, phone,
        cell, fax, pob, city, country,
        bank_holder, bank_account, bank,
        bank_branch, practice_number, practice_name,
        hpcna_number, qualification, specialisation,
        namaf_profession)
        VALUES(unhex(replace(uuid(),'-','')),%s,%s,%s,%s,
        %s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
        """,
        (email, practice_form.get('practice_email'),
         practice_form.get('phone'), practice_form.get('cell'),
         practice_form.get('fax'), practice_form.get('pob'),
         practice_form.get('city'), practice_form.get('country'),
         practice_form.get('bank_holder'), practice_form.get('bank_account'),
         practice_form.get('bank'), practice_form.get('bank_branch'),
         practice_form.get('practice_number'),
         practice_form.get('practice_name'), practice_form.get('hpcna_number'),
         practice_form.get('qualification'),
         practice_form.get('specialisation'),
         practice_form.get('namaf_profession')))
    status = True
    cursor.close()
    conn.close()
    return status
Exemple #4
0
def mergeUserPractice(practice_uuid, practice_name, user_uuid, user_email,
                      user_name, role):
    try:
        conn = pool.connection()
        cursor = conn.cursor()
        sql = """UPDATE users SET current_practice_uuid = '{}', current_practice_role = '{}' WHERE uuid_text = '{}'""".format(
            practice_uuid, role, user_uuid)
        cursor.execute(sql)
        cursor.execute(
            """SELECT * FROM practice_connections WHERE practice_uuid = %s AND user_uuid = %s""",
            (practice_uuid, user_uuid))
        row = cursor.fetchone()
        if not row:
            cursor.execute(
                """INSERT INTO practice_connections
            (practice_uuid, practice_name,
            user_uuid, user_email, user_name, practice_role)
            VALUES(%s,%s,%s,%s,%s,%s)""",
                (practice_uuid, practice_name, user_uuid, user_email,
                 user_name, role))
        cursor.close()
        conn.close()
    except Exception as e:
        app.logger.info(str(e))
        return False
    return True
Exemple #5
0
def checkUser(email):
    conn = pool.connection()
    cursor = conn.cursor()
    cursor.execute("""SELECT * FROM users WHERE email =  %s""", (email))
    data = cursor.fetchone()
    cursor.close()
    conn.close()
    return data
Exemple #6
0
def getInvoiceFileId(invoice_file_url):
    sql = """SELECT fileid from oc_filecache WHERE path like '%{}%'""".format(invoice_file_url)
    conn = pool.connection()
    cursor = conn.cursor()
    cursor.execute(sql)
    invoice_file_id = cursor.fetchone()
    cursor.close()
    conn.close()
    return invoice_file_id['fileid']
Exemple #7
0
def removeEntry(_sIdentifier, _sColumn, _sTable):
    try:
        conn = pool.connection()
        cursor = conn.cursor()
        cursor.execute("""DELETE FROM %s WHERE %s = %s""",
                       (_sTable, _sColumn, _sTable))
    except:
        return False
    return True
Exemple #8
0
def insertInvoice(practice_uuid, user_name, invoice_form):
    conn = pool.connection()
    cursor = conn.cursor()
    status = {}
    cursor.execute("""INSERT INTO invoices (practice_uuid, last_edited_by,
        patient_id, date_invoice, medical_aid, invoice_id, invoice_file_url, tariff,
        invoice_layout, po_number, hospital_name, admission_date,
        discharge_date, `procedure`, procedure_date, diagnosis,
        diagnosis_date, implants, intra_op, post_op)
        VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)
        """,(practice_uuid,
        user_name,
        invoice_form['patient_id'],
        invoice_form['date_invoice'],
        invoice_form['medical_aid'],
        invoice_form['invoice_id'],
        invoice_form['invoice_file_url'],
        invoice_form['tariff'],
        invoice_form['invoice_layout'],
        invoice_form.get('po_number') or None,
        invoice_form.get('hospital_name') or None,
        invoice_form.get('admission_date') or None,
        invoice_form.get('discharge_date') or None,
        invoice_form.get('procedure') or None,
        invoice_form.get('procedure_date') or None,
        invoice_form.get('diagnosis') or None,
        invoice_form.get('diagnosis_date') or None,
        invoice_form.get('implants') or None,
        invoice_form.get('intra_op') or None,
        invoice_form.get('post_op') or None))

    list = []
    for i in range(len(invoice_form.getlist('treatments'))):
        list_item = []
        list_item.extend((practice_uuid,
            invoice_form['invoice_id'],
            invoice_form.getlist('treatments')[i],
            float(invoice_form.getlist('units')[i]) * 100,
            invoice_form.getlist('description')[i],
            float(invoice_form.getlist('value')[i]) * 100,
            float(invoice_form.getlist('post_value')[i]) * 100,
            invoice_form.getlist('date')[i],
            invoice_form.getlist('modifier')[i]))
        list_item = tuple(list_item)
        list.append(list_item)
    sql_individual_item = """INSERT INTO invoice_items (practice_uuid,
        invoice_id, item, units, description, value_cent, post_value_cent,
        date, modifier) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)"""
    cursor.executemany(sql_individual_item, list)

    status['db_status'] = 'Success'
    status['db_description'] = 'New invoice created ' + invoice_form['invoice_id']
    status['invoice_id'] = invoice_form['invoice_id']
    cursor.close()
    conn.close()
    return status
Exemple #9
0
def updateInvoice(practice_uuid, user_name, invoice_form):
    conn = pool.connection()
    cursor = conn.cursor()
    status = {}
    sql = """UPDATE invoices SET po_number = %s, hospital_name = %s,
        admission_date = %s, discharge_date = %s,  `procedure` = %s,
        procedure_date = %s, diagnosis = %s, diagnosis_date = %s, implants = %s,
        intra_op = %s, post_op = %s, last_edited = NOW(), last_edited_by = %s WHERE practice_uuid =
        %s AND invoice_id = %s
        """
    invoice_form_tuple = (invoice_form.get('po_number') or None,
        invoice_form.get('hospital_name') or None,
        invoice_form.get('admission_date') or None,
        invoice_form.get('discharge_date') or None,
        invoice_form.get('procedure') or None,
        invoice_form.get('procedure_date') or None,
        invoice_form.get('diagnosis') or None,
        invoice_form.get('diagnosis_date') or None,
        invoice_form.get('implants') or None,
        invoice_form.get('intra_op') or None,
        invoice_form.get('post_op') or None,
        user_name,
        practice_uuid,
        invoice_form['invoice_id'])

    cursor.execute(sql, invoice_form_tuple)

    sql_rm_invoice_items = """DELETE FROM invoice_items WHERE practice_uuid = '{}'
    AND invoice_id = '{}'""".format(practice_uuid,
                invoice_form['invoice_id'])
    cursor.execute(sql_rm_invoice_items)
    list = []
    for i in range(len(invoice_form.getlist('treatments'))):
        list_item = []
        list_item.extend((practice_uuid,
            invoice_form['invoice_id'],
            invoice_form.getlist('treatments')[i],
            float(invoice_form.getlist('units')[i]) * 100,
            invoice_form.getlist('description')[i],
            float(invoice_form.getlist('value')[i]) * 100,
            float(invoice_form.getlist('post_value')[i]) * 100,
            invoice_form.getlist('date')[i],
            invoice_form.getlist('modifier')[i]))
        list_item = tuple(list_item)
        list.append(list_item)
    sql_individual_item = """INSERT INTO invoice_items (practice_uuid,
        invoice_id, item, units, description, value_cent, post_value_cent,
        date, modifier) VALUES (%s, %s, %s, %s, %s, %s, %s, %s, %s)"""
    cursor.executemany(sql_individual_item, list)

    status['db_status'] =  'Success'
    status['db_description'] = 'Updated invoice'
    status['invoice_id'] = invoice_form['invoice_id']
    cursor.close()
    conn.close()
    return status
Exemple #10
0
def getValueTreatments(item, tariff):
    sql = """SELECT * FROM namaf_tariffs WHERE item = {} AND tariff = '{}'""".format(
        item, tariff)
    conn = pool.connection()
    cursor = conn.cursor()
    cursor.execute(sql)
    filtered_result = cursor.fetchone()
    cursor.close()
    conn.close()
    return filtered_result
Exemple #11
0
def queryR(practice_uuid, c_option):
    sql = """SELECT DISTINCT {} FROM invoices WHERE practice_uuid = '{}'
        """.format(c_option, practice_uuid)
    conn = pool.connection()
    cursor = conn.cursor()
    cursor.execute(sql)
    r_option = cursor.fetchall()
    cursor.close()
    conn.close()
    return r_option
Exemple #12
0
def removePatient(practice_uuid, patient_id):
    conn = pool.connection()
    cursor = conn.cursor()
    sql = """ DELETE FROM patients WHERE practice_uuid = '{}' AND
    patient_id = '{}'""".format(practice_uuid, patient_id)
    cursor.execute(sql)
    cursor.close()
    conn.close()
    status = True
    return status
Exemple #13
0
def getItems(practice_uuid, invoice_id):
    sql = """SELECT * FROM invoice_items WHERE practice_uuid = '{}' AND invoice_id
    = '{}'""".format(practice_uuid, invoice_id)
    conn = pool.connection()
    cursor = conn.cursor()
    cursor.execute(sql)
    items = cursor.fetchall()
    cursor.close()
    conn.close()
    return items
Exemple #14
0
def updateSubmitted(practice_uuid, invoice_id):
    sql= """UPDATE invoices SET submitted_on = NOW(), status = 'due' WHERE practice_uuid = '{}' and
    invoice_id = '{}'""".format(practice_uuid, invoice_id)
    conn = pool.connection()
    cursor = conn.cursor()
    cursor.execute(sql)
    cursor.close()
    conn.close()
    status = True
    return status
Exemple #15
0
def getTariffs(namaf_profession):
    sql = """ SELECT tariff FROM namaf_tariffs WHERE tariff LIKE '%{}%' GROUP BY
    tariff""".format(namaf_profession)
    conn = pool.connection()
    cursor = conn.cursor()
    cursor.execute(sql)
    tariffs = cursor.fetchall()
    cursor.close()
    conn.close()
    return tariffs
Exemple #16
0
def getInvoiceURL(practice_uuid, name_patient, date):
    sql = """SELECT invoice_file_url FROM invoices WHERE practice_uuid = '{}' AND name_patient = '{}'
    AND date_created = '{}'""".format(practice_uuid, name_patient, date)
    conn = pool.connection()
    cursor = conn.cursor()
    cursor.execute(sql)
    invoice_file_url = cursor.fetchone()
    cursor.close()
    conn.close()
    return invoice_file_url
Exemple #17
0
def getAssistants(practice_uuid):
    conn = pool.connection()
    cursor = conn.cursor()
    sql = """SELECT * FROM practice_connections WHERE practice_uuid =
    '{}' AND practice_role = 'assistant'""".format(practice_uuid)
    cursor.execute(sql)
    assistants = cursor.fetchall()
    cursor.close()
    conn.close()
    return assistants
Exemple #18
0
def checkConnections(user_uuid):
    conn = pool.connection()
    cursor = conn.cursor()
    sql = """SELECT * FROM practice_connections WHERE user_uuid =
    '{}'""".format(user_uuid)
    cursor.execute(sql)
    practices = cursor.fetchall()
    cursor.close()
    conn.close()
    return practices
Exemple #19
0
def addUser(first_name, second_name, email):
    conn = pool.connection()
    cursor = conn.cursor()
    cursor.execute(
        """INSERT INTO users (uuid_bin, first_name, second_name, email)
    VALUES(unhex(replace(uuid(),'-','')),%s,%s,%s)
    """, (first_name, second_name, email))
    status = True
    cursor.close()
    conn.close()
    return status
Exemple #20
0
def lastFive(uuid_text, practice_uuid, work_type):
    conn = pool.connection()
    cursor = conn.cursor()
    sql = """SELECT work_quality FROM user_workbench WHERE uuid_text = '{0}'
    AND practice_uuid = '{1}' AND work_type = '{2}' ORDER BY created_on DESC LIMIT
    5""".format(uuid_text, practice_uuid, work_type)
    cursor.execute(sql)
    last_five = cursor.fetchall()
    cursor.close()
    conn.close()
    return last_five
Exemple #21
0
def updateCredit(practice_uuid, invoice_id, credit_cent):
    sql = """UPDATE invoices
    SET credit_cent = credit_cent + '{}'
    WHERE practice_uuid = '{}' AND invoice_id =
    '{}'""".format(credit_cent, practice_uuid, invoice_id)
    conn = pool.connection()
    cursor = conn.cursor()
    cursor.execute(sql)
    cursor.close()
    conn.close()
    status = True
    return status
Exemple #22
0
def getTreatmentByGroup(items, tariff):
    treatment_list = []
    connection = pool.connection()
    cursor = connection.cursor()
    for i in items.split(","):
        sql = """SELECT description FROM namaf_tariffs WHERE item = {} AND tariff = '{}'""".format(
            i, tariff)
        cursor.execute(sql)
        q = cursor.fetchone()
        treatment_list.append(q)
    cursor.close()
    connection.close()
    return treatment_list
Exemple #23
0
def get_index(practice_uuid, medical_aid):
    today = date.today()
    month = today.month
    year = today.year
    sql = """SELECT COUNT(*) FROM invoices WHERE practice_uuid = '{}' AND  medical_aid = '{}' AND YEAR
    (date_created) = '{}' AND MONTH(date_created) = '{}'""".format(practice_uuid, medical_aid, year, month)
    conn = pool.connection()
    cursor = conn.cursor()
    cursor.execute(sql)
    index = cursor.fetchone()
    cursor.close()
    conn.close()
    return index['COUNT(*)'] + 1
Exemple #24
0
def getMultipleValues(items, tariff):
    value_list = []
    connection = pool.connection()
    cursor = connection.cursor()
    for i in items.split(","):
        sql = """SELECT description, value_cent FROM namaf_tariffs WHERE item = {} AND tariff = '{}'""".format(
            i, tariff)
        cursor.execute(sql)
        q = cursor.fetchone()
        value_list.append(q)
    cursor.close()
    connection.close()
    return value_list
Exemple #25
0
def getTreatmentByItem(treatments, tariff):
    treatment_list = []
    connection = pool.connection()
    cursor = connection.cursor()
    for i in treatments:
        sql = """SELECT description, units, value_cent FROM namaf_tariffs WHERE item = {} AND tariff = '{}'""".format(
            i, tariff)
        cursor.execute(sql)
        q = cursor.fetchone()
        treatment_list.append(q)
    cursor.close()
    connection.close()
    return treatment_list
Exemple #26
0
def updateScalar(_sVal, _sCol, _sIdentifier, _sLkpCol, _sLkpTbl):
    try:
        conn = pool.connection()
        cursor = conn.cursor()
        sql = 'UPDATE ' + _sLkpTbl
        sql += ' SET ' + _sCol + '=%s WHERE ' + _sLkpCol + '= %s'
        cursor.execute(sql, (_sVal, _sIdentifier))
        cursor.close()
        conn.close()
    except Exception as e:
        print(str(e))
        return False
    return True
Exemple #27
0
def checkDuplicate(practice_uuid, patient):
    sql = """SELECT * FROM patients WHERE practice_uuid = '{}' AND
    (medical_number = '{}' OR case_number = '{}' OR medical_number = '{}' OR case_number = '{}')
    """.format(practice_uuid, patient.get('medical_number'),
               patient.get('case_number'), patient.get('case_number'),
               patient.get('medical_number'))
    conn = pool.connection()
    cursor = conn.cursor()
    cursor.execute(sql)
    row = cursor.fetchone()
    cursor.close()
    conn.close()
    return row
Exemple #28
0
def getSingleInvoice(practice_uuid, invoice_id):
    sql = """SELECT invoices.*, patients.*
        FROM invoices
        LEFT JOIN patients ON patients.patient_id = invoices.patient_id
        AND patients.practice_uuid = '{}' WHERE invoices.practice_uuid = '{}' AND
        invoices.invoice_id = '{}'
        """.format(practice_uuid, practice_uuid, invoice_id)
    conn = pool.connection()
    cursor = conn.cursor()
    cursor.execute(sql)
    invoice = cursor.fetchone()
    cursor.close()
    conn.close()
    return invoice
Exemple #29
0
def getTreatments(tariff, featured=None):
    if (featured is None):
        sql = """SELECT * FROM
        namaf_tariffs WHERE tariff = '{}' ORDER BY id""".format(tariff)
        connection = pool.connection()
        cursor = connection.cursor()
        cursor.execute(sql)
        filtered_result = cursor.fetchall()
        cursor.close()
        connection.close()
        return filtered_result

    elif (featured is not None):
        featured = tuple(featured)
        sql = """SELECT LPAD(item, 3, 0) AS item, description FROM
        namaf_tariffs WHERE item IN {} AND tariff = '{}' ORDER BY id""".format(
            featured, tariff)
        connection = pool.connection()
        cursor = connection.cursor()
        cursor.execute(sql)
        featured_result = cursor.fetchall()
        cursor.close()
        connection.close()
        return featured_result
Exemple #30
0
def getScalar(_sIdentifier, _sLkpVal, _sLkpCol, _sLkpTbl, _sOrderBy=None):
    try:
        conn = pool.connection()
        cursor = conn.cursor()
        sql = 'SELECT ' + _sIdentifier + ' FROM ' + _sLkpTbl
        sql += ' WHERE ' + _sLkpCol + ' = %s '
        if _sOrderBy:
            sql += ' ORDER BY ' + _sOrderBy + ' DESC '
        cursor.execute(sql, (_sLkpVal))
        _sScalar = cursor.fetchone()
        cursor.close()
        conn.close()
    except Exception as e:
        return str(e)
    return _sScalar