├── README.md ├── app.py ├── config.json ├── database.db ├── package ├── __init__.py ├── appointment.py ├── common.py ├── department.py ├── doctor.py ├── medication.py ├── model.py ├── nurse.py ├── patient.py ├── prescribes.py ├── procedure.py ├── room.py └── undergoes.py ├── screenshots ├── Appointment.png ├── Creators.png ├── Dashboard.png ├── Department.png ├── Doctor.png ├── Medication.png ├── Nurse.png ├── Patient.png ├── Prescribes.png ├── Procedure.png ├── Room.png └── Undergoes.png └── static ├── about_us.html ├── app ├── css │ ├── app-rtl.css │ ├── app.css │ ├── bootstrap-rtl.css │ ├── bootstrap.css │ ├── theme-a.css │ ├── theme-b.css │ ├── theme-c.css │ ├── theme-d.css │ ├── theme-e.css │ ├── theme-f.css │ ├── theme-g.css │ └── theme-h.css └── js │ ├── app.js │ └── desktop.ini ├── appointment.html ├── department.html ├── desktop.ini ├── doctor.html ├── favicon.ico ├── images ├── dark.png ├── hospital.png ├── hospital1.png └── light.png ├── index.html ├── js ├── appointment.js ├── common.js ├── department.js ├── desktop.ini ├── doctor.js ├── home.js ├── lib │ └── desktop.ini ├── medication.js ├── nurse.js ├── patient.js ├── prescribes.js ├── procedure.js ├── room.js └── undergoes.js ├── medication.html ├── nurse.html ├── patient.html ├── prescribes.html ├── procedure.html ├── room.html ├── undergoes.html └── vendor ├── animate.css ├── animate.min.css └── desktop.ini ├── animo.js ├── animo.js └── desktop.ini ├── bootstrap ├── desktop.ini └── dist │ ├── css │ ├── bootstrap.css │ └── desktop.ini │ ├── desktop.ini │ └── js │ ├── bootstrap.js │ └── desktop.ini ├── dataTables.fontAwesome ├── desktop.ini └── index.css ├── datatables-colvis ├── css │ ├── dataTables.colVis.css │ └── desktop.ini ├── desktop.ini └── js │ ├── dataTables.colVis.js │ └── desktop.ini ├── datatables ├── desktop.ini └── media │ ├── css │ ├── dataTables.bootstrap.css │ └── desktop.ini │ ├── desktop.ini │ ├── images │ ├── Sorting icons.psd │ ├── desktop.ini │ ├── favicon.ico │ ├── sort_asc.png │ ├── sort_asc_disabled.png │ ├── sort_both.png │ ├── sort_desc.png │ └── sort_desc_disabled.png │ └── js │ ├── dataTables.bootstrap.js │ ├── desktop.ini │ └── jquery.dataTables.min.js ├── datepicker ├── build │ ├── css │ │ ├── bootstrap-datetimepicker-standalone.css │ │ ├── bootstrap-datetimepicker.css │ │ ├── bootstrap-datetimepicker.min.css │ │ └── desktop.ini │ ├── desktop.ini │ └── js │ │ ├── bootstrap-datetimepicker.min.js │ │ └── desktop.ini └── desktop.ini ├── desktop.ini ├── fontawesome ├── css │ ├── desktop.ini │ └── font-awesome.min.css ├── desktop.ini └── fonts │ ├── FontAwesome.otf │ ├── desktop.ini │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ └── fontawesome-webfont.woff2 ├── jQuery-Storage-API ├── desktop.ini └── jquery.storageapi.js ├── jquery-localize-i18n ├── desktop.ini └── dist │ ├── desktop.ini │ └── jquery.localize.js ├── jquery.easing ├── desktop.ini └── js │ ├── desktop.ini │ └── jquery.easing.js ├── jquery ├── desktop.ini └── dist │ ├── desktop.ini │ └── jquery.js ├── modernizr ├── desktop.ini └── modernizr.custom.js ├── moment ├── desktop.ini └── moment-with-locales.min.js ├── parsley ├── desktop.ini └── parsley.min.js ├── serialize ├── desktop.ini └── jquery.serializejson.js ├── simple-line-icons ├── css │ ├── desktop.ini │ └── simple-line-icons.css ├── desktop.ini └── fonts │ ├── Simple-Line-Icons.eot │ ├── Simple-Line-Icons.svg │ ├── Simple-Line-Icons.ttf │ ├── Simple-Line-Icons.woff │ ├── Simple-Line-Icons.woff2 │ └── desktop.ini ├── sweetalert ├── desktop.ini └── dist │ ├── desktop.ini │ ├── sweetalert-dev.js │ ├── sweetalert.css │ └── sweetalert.min.js └── whirl ├── desktop.ini └── dist ├── desktop.ini └── whirl.css /README.md: -------------------------------------------------------------------------------- 1 | # Hospital Management System 2 | 3 | **Team:** 4 | 5 | Adarsh Ninganur 6 | 7 | Aryan Prasad 8 | 9 | **Project Statement:** 10 | 11 | Hospital Management System is a tool which can be used to store, retrieve information about the different patients, their procedures, doctors, etc. Not only it stores information but also provides different methods to retrieve information. For e.g., getting the details of a patient(his procedures, address, appointments, phone number, etc.). This makes the retrieval of information quick, which not only saves time but also helps in smooth functioning of the hospital. 12 | 13 | **Introduction:** 14 | 15 | Hospital Management System handles the basic management of the patient and doctor database, for the smooth functioning of the hospital, helping them to retrieve information easily and adding new information to the database. 16 | 17 | **FrontEnd:** HTML, CSS, BootStrap 18 | 19 | **BackEnd:** Flask, SQLite(Database), JavaScript, Python 20 | 21 | **Functional Requirements:** 22 | 23 | * Patient's, Doctor's, Nurse’s data can be accessed in their respective tables. 24 | 25 | * Appointment id can be used to identify the patient's appointment with the doctor. 26 | 27 | * Rooms are displayed with their availability status. 28 | 29 | * Medication has the records of medicines available with their brand and description. 30 | 31 | * Departments in the hospital can be viewed with their head of department. 32 | 33 | * The Prescription that a patient is given can be viewed with medication code which the doctor gave at the time along with their appointment id. 34 | 35 | * The procedure which the patient undergoes along with the doctor, patient present at the time in the particular room can be accessed. 36 | 37 | * Searches can be made within the department, doctor, nurse, medication, room, etc. 38 | -------------------------------------------------------------------------------- /app.py: -------------------------------------------------------------------------------- 1 | from flask import Flask,send_from_directory,render_template 2 | from flask import send_from_directory 3 | 4 | from flask_restful import Resource, Api 5 | from package.patient import Patients, Patient 6 | from package.doctor import Doctors, Doctor 7 | from package.appointment import Appointments, Appointment 8 | from package.common import Common 9 | from package.medication import Medication, Medications 10 | from package.department import Departments, Department 11 | from package.nurse import Nurse, Nurses 12 | from package.room import Room, Rooms 13 | from package.procedure import Procedure, Procedures 14 | from package.prescribes import Prescribes, Prescribe 15 | from package.undergoes import Undergoess, Undergoes 16 | 17 | import json 18 | import os 19 | 20 | with open('config.json') as data_file: 21 | config = json.load(data_file) 22 | 23 | app = Flask(__name__, static_url_path='') 24 | api = Api(app) 25 | 26 | api.add_resource(Patients, '/patient') 27 | api.add_resource(Patient, '/patient/') 28 | api.add_resource(Doctors, '/doctor') 29 | api.add_resource(Doctor, '/doctor/') 30 | api.add_resource(Appointments, '/appointment') 31 | api.add_resource(Appointment, '/appointment/') 32 | api.add_resource(Common, '/common') 33 | api.add_resource(Medications, '/medication') 34 | api.add_resource(Medication, '/medication/') 35 | api.add_resource(Departments, '/department') 36 | api.add_resource(Department, '/department/') 37 | api.add_resource(Nurses, '/nurse') 38 | api.add_resource(Nurse, '/nurse/') 39 | api.add_resource(Rooms, '/room') 40 | api.add_resource(Room, '/room/') 41 | api.add_resource(Procedures, '/procedure') 42 | api.add_resource(Procedure, '/procedure/') 43 | api.add_resource(Prescribes, '/prescribes') 44 | api.add_resource(Undergoess, '/undergoes') 45 | 46 | # Routes 47 | 48 | @app.route('/favicon.ico') 49 | def favicon(): 50 | return send_from_directory(os.path.join(app.root_path, 'static'), 51 | 'favicon.ico',mimetype='image/vnd.microsoft.icon') 52 | 53 | @app.route('/') 54 | def index(): 55 | return app.send_static_file('index.html') 56 | 57 | 58 | if __name__ == '__main__': 59 | app.run(debug=True,host=config['host'],port=config['port']) -------------------------------------------------------------------------------- /config.json: -------------------------------------------------------------------------------- 1 | { 2 | "database": "database.db", 3 | "port": 5000, 4 | "host": "127.0.0.1" 5 | } -------------------------------------------------------------------------------- /database.db: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/database.db -------------------------------------------------------------------------------- /package/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/package/__init__.py -------------------------------------------------------------------------------- /package/appointment.py: -------------------------------------------------------------------------------- 1 | from flask_restful import Resource, Api, request 2 | from package.model import conn 3 | 4 | 5 | 6 | class Appointments(Resource): 7 | """This contain apis to carry out activity with all appiontments""" 8 | 9 | def get(self): 10 | """Retrive all the appointment and return in form of json""" 11 | 12 | appointment = conn.execute("SELECT p.*,d.*,a.* from appointment a LEFT JOIN patient p ON a.pat_id = p.pat_id LEFT JOIN doctor d ON a.doc_id = d.doc_id ORDER BY appointment_date DESC").fetchall() 13 | return appointment 14 | 15 | def post(self): 16 | """Create the appoitment by assiciating patient and docter with appointment date""" 17 | 18 | appointment = request.get_json(force=True) 19 | pat_id = appointment['pat_id'] 20 | doc_id = appointment['doc_id'] 21 | appointment_date = appointment['appointment_date'] 22 | appointment['app_id'] = conn.execute('''INSERT INTO appointment(pat_id,doc_id,appointment_date) 23 | VALUES(?,?,?)''', (pat_id, doc_id,appointment_date)).lastrowid 24 | conn.commit() 25 | return appointment 26 | 27 | 28 | 29 | class Appointment(Resource): 30 | """This contain all api doing activity with single appointment""" 31 | 32 | def get(self,id): 33 | """retrive a singe appointment details by its id""" 34 | 35 | appointment = conn.execute("SELECT * FROM appointment WHERE app_id=?",(id,)).fetchall() 36 | return appointment 37 | 38 | 39 | def delete(self,id): 40 | """Delete teh appointment by its id""" 41 | 42 | conn.execute("DELETE FROM appointment WHERE app_id=?",(id,)) 43 | conn.commit() 44 | return {'msg': 'sucessfully deleted'} 45 | 46 | def put(self,id): 47 | """Update the appointment details by the appointment id""" 48 | 49 | appointment = request.get_json(force=True) 50 | pat_id = appointment['pat_id'] 51 | doc_id = appointment['doc_id'] 52 | conn.execute("UPDATE appointment SET pat_id=?,doc_id=? WHERE app_id=?", 53 | (pat_id, doc_id, id)) 54 | conn.commit() 55 | return appointment -------------------------------------------------------------------------------- /package/common.py: -------------------------------------------------------------------------------- 1 | from flask_restful import Resource, Api, request 2 | from package.model import conn 3 | 4 | 5 | class Common(Resource): 6 | """This contain common api ie noe related to the specific module""" 7 | 8 | def get(self): 9 | """Retrive the patient, doctor, appointment, medication count for the dashboard page""" 10 | 11 | getPatientCount=conn.execute("SELECT COUNT(*) AS patient FROM patient").fetchone() 12 | getDoctorCount = conn.execute("SELECT COUNT(*) AS doctor FROM doctor").fetchone() 13 | getAppointmentCount = conn.execute("SELECT COUNT(*) AS appointment FROM appointment").fetchone() 14 | getMedicationCount = conn.execute("SELECT COUNT(*) AS medication from medication").fetchone() 15 | getDepartmentCount = conn.execute("SELECT COUNT(*) AS department FROM department").fetchone() 16 | getNurseCount = conn.execute("SELECT COUNT(*) AS nurse FROM nurse").fetchone() 17 | getRoomCount = conn.execute("SELECT COUNT(*) AS room FROM room").fetchone() 18 | getProcedureCount = conn.execute("SELECT COUNT(*) AS procedure FROM procedure").fetchone() 19 | getPrescribesCount = conn.execute("SELECT COUNT(*) AS prescribes FROM prescribes").fetchone() 20 | getUndergoesCount = conn.execute("SELECT COUNT(*) AS undergoes FROM undergoes").fetchone() 21 | 22 | getPatientCount.update(getDoctorCount) 23 | getPatientCount.update(getAppointmentCount) 24 | getPatientCount.update(getMedicationCount) 25 | getPatientCount.update(getDepartmentCount) 26 | getPatientCount.update(getNurseCount) 27 | getPatientCount.update(getRoomCount) 28 | getPatientCount.update(getProcedureCount) 29 | getPatientCount.update(getPrescribesCount) 30 | getPatientCount.update(getUndergoesCount) 31 | 32 | return getPatientCount -------------------------------------------------------------------------------- /package/department.py: -------------------------------------------------------------------------------- 1 | #Tushar Borole 2 | #Python 2.7 3 | 4 | from flask_restful import Resource, Api, request 5 | from package.model import conn 6 | 7 | 8 | 9 | class Departments(Resource): 10 | """This contain apis to carry out activity with all appiontments""" 11 | 12 | def get(self): 13 | """Retrive all the department and return in form of json""" 14 | 15 | # department = conn.execute("SELECT * from department").fetchall() 16 | department = conn.execute("SELECT department_id, name, head_id, doc_first_name, doc_last_name FROM department INNER JOIN doctor ON doctor.doc_id = department.head_id").fetchall() 17 | return department 18 | 19 | def post(self): 20 | """Api to add departmentf in the database""" 21 | 22 | department = request.get_json(force=True) 23 | department_id = department['department_id'] 24 | name = department['name'] 25 | head_id = department['head_id'] 26 | conn.execute('''INSERT INTO department(department_id, name, head_id) VALUES(?,?,?)''', (department_id, name, head_id)) 27 | conn.commit() 28 | return department 29 | 30 | 31 | 32 | class Department(Resource): 33 | """This contain all api doing activity with single department""" 34 | 35 | def get(self,department_id): 36 | """retrive a singe department details by its id""" 37 | 38 | department = conn.execute("SELECT * FROM department WHERE department_id=?",(department_id,)).fetchall() 39 | return department 40 | 41 | 42 | # def delete(self,code): 43 | # """Delete teh appointment by its id""" 44 | 45 | # conn.execute("DELETE FROM department WHERE department_id=?",(code,)) 46 | # conn.commit() 47 | # return {'msg': 'sucessfully deleted'} 48 | 49 | def put(self,department_id): 50 | """Update the department details by the department id""" 51 | 52 | department = request.get_json(force=True) 53 | name = department['name'] 54 | head_id = department['head_id'] 55 | conn.execute("UPDATE department SET name=?,head_id=? WHERE department_id=?", (name, head_id, department_id)) 56 | conn.commit() 57 | return department -------------------------------------------------------------------------------- /package/doctor.py: -------------------------------------------------------------------------------- 1 | from flask_restful import Resource, Api, request 2 | from package.model import conn 3 | class Doctors(Resource): 4 | """This contain apis to carry out activity with all doctors""" 5 | 6 | def get(self): 7 | """Retrive list of all the doctor""" 8 | 9 | doctors = conn.execute("SELECT * FROM doctor ORDER BY doc_date DESC").fetchall() 10 | return doctors 11 | 12 | 13 | 14 | def post(self): 15 | """Add the new doctor""" 16 | 17 | doctorInput = request.get_json(force=True) 18 | doc_first_name=doctorInput['doc_first_name'] 19 | doc_last_name = doctorInput['doc_last_name'] 20 | doc_ph_no = doctorInput['doc_ph_no'] 21 | doc_address = doctorInput['doc_address'] 22 | doctorInput['doc_id']=conn.execute('''INSERT INTO doctor(doc_first_name,doc_last_name,doc_ph_no,doc_address) 23 | VALUES(?,?,?,?)''', (doc_first_name, doc_last_name,doc_ph_no,doc_address)).lastrowid 24 | conn.commit() 25 | return doctorInput 26 | 27 | class Doctor(Resource): 28 | """It include all the apis carrying out the activity with the single doctor""" 29 | 30 | 31 | def get(self,id): 32 | """get the details of the docktor by the doctor id""" 33 | 34 | doctor = conn.execute("SELECT * FROM doctor WHERE doc_id=?",(id,)).fetchall() 35 | return doctor 36 | 37 | def delete(self, id): 38 | """Delete the doctor by its id""" 39 | 40 | conn.execute("DELETE FROM doctor WHERE doc_id=?", (id,)) 41 | conn.commit() 42 | return {'msg': 'sucessfully deleted'} 43 | 44 | def put(self,id): 45 | """Update the doctor by its id""" 46 | 47 | doctorInput = request.get_json(force=True) 48 | doc_first_name=doctorInput['doc_first_name'] 49 | doc_last_name = doctorInput['doc_last_name'] 50 | doc_ph_no = doctorInput['doc_ph_no'] 51 | doc_address = doctorInput['doc_address'] 52 | conn.execute( 53 | "UPDATE doctor SET doc_first_name=?,doc_last_name=?,doc_ph_no=?,doc_address=? WHERE doc_id=?", 54 | (doc_first_name, doc_last_name, doc_ph_no, doc_address, id)) 55 | conn.commit() 56 | return doctorInput -------------------------------------------------------------------------------- /package/medication.py: -------------------------------------------------------------------------------- 1 | #Tushar Borole 2 | #Python 2.7 3 | 4 | from flask_restful import Resource, Api, request 5 | from package.model import conn 6 | 7 | 8 | 9 | class Medications(Resource): 10 | """This contain apis to carry out activity with all medicines""" 11 | 12 | def get(self): 13 | """Retrive all the medication and return in form of json""" 14 | 15 | medication = conn.execute("SELECT * from medication").fetchall() 16 | return medication 17 | 18 | def post(self): 19 | """Api to add medication in the database""" 20 | 21 | medication = request.get_json(force=True) 22 | code = medication['code'] 23 | name = medication['name'] 24 | brand = medication['brand'] 25 | description = medication['description'] 26 | conn.execute('''INSERT INTO medication(code, name, brand, description) VALUES(?,?,?,?)''', (code, name, brand, description)) 27 | conn.commit() 28 | return medication 29 | 30 | 31 | 32 | class Medication(Resource): 33 | """This contain all api doing activity with single medication""" 34 | 35 | def get(self,code): 36 | """retrive a singe medication details by its code""" 37 | 38 | medication = conn.execute("SELECT * FROM medication WHERE code=?",(code,)).fetchall() 39 | return medication 40 | 41 | 42 | def delete(self,code): 43 | """Delete teh medication by its medication""" 44 | 45 | conn.execute("DELETE FROM medication WHERE code=?",(code,)) 46 | conn.commit() 47 | return {'msg': 'sucessfully deleted'} 48 | 49 | def put(self,code): 50 | """Update the medication details by the code""" 51 | 52 | medication = request.get_json(force=True) 53 | name = medication['name'] 54 | brand = medication['brand'] 55 | description = medication['description'] 56 | conn.execute("UPDATE medication SET name=?,brand=?,description=? WHERE code=?", (name, brand, description, code)) 57 | conn.commit() 58 | return medication -------------------------------------------------------------------------------- /package/model.py: -------------------------------------------------------------------------------- 1 | import sqlite3 2 | import json 3 | with open('config.json') as data_file: 4 | config = json.load(data_file) 5 | 6 | conn=sqlite3.connect(config['database'], check_same_thread=False) 7 | conn.execute('pragma foreign_keys=ON') 8 | 9 | 10 | 11 | def dict_factory(cursor, row): 12 | """This is a function use to format the json when retirve from the mysql database""" 13 | d = {} 14 | for idx, col in enumerate(cursor.description): 15 | d[col[0]] = row[idx] 16 | return d 17 | 18 | 19 | conn.row_factory = dict_factory 20 | 21 | conn.execute('''CREATE TABLE if not exists patient 22 | (pat_id INTEGER PRIMARY KEY AUTOINCREMENT, 23 | pat_first_name TEXT NOT NULL, 24 | pat_last_name TEXT NOT NULL, 25 | pat_insurance_no TEXT NOT NULL, 26 | pat_ph_no TEXT NOT NULL, 27 | pat_date DATE DEFAULT (datetime('now','localtime')), 28 | pat_address TEXT NOT NULL);''') 29 | 30 | conn.execute('''CREATE TABLE if not exists doctor 31 | (doc_id INTEGER PRIMARY KEY AUTOINCREMENT, 32 | doc_first_name TEXT NOT NULL, 33 | doc_last_name TEXT NOT NULL, 34 | doc_ph_no TEXT NOT NULL, 35 | doc_date DATE DEFAULT (datetime('now','localtime')), 36 | doc_address TEXT NOT NULL);''') 37 | 38 | conn.execute('''CREATE TABLE if not exists nurse 39 | (nur_id INTEGER PRIMARY KEY AUTOINCREMENT, 40 | nur_first_name TEXT NOT NULL, 41 | nur_last_name TEXT NOT NULL, 42 | nur_ph_no TEXT NOT NULL, 43 | nur_date DATE DEFAULT (datetime('now','localtime')), 44 | nur_address TEXT NOT NULL);''') 45 | 46 | conn.execute('''CREATE TABLE if not exists appointment 47 | (app_id INTEGER PRIMARY KEY AUTOINCREMENT, 48 | pat_id INTEGER NOT NULL, 49 | doc_id INTEGER NOT NULL, 50 | appointment_date DATE NOT NULL, 51 | FOREIGN KEY(pat_id) REFERENCES patient(pat_id), 52 | FOREIGN KEY(doc_id) REFERENCES doctor(doc_id));''') 53 | 54 | conn.execute('''CREATE TABLE if not exists room 55 | (room_no INTEGER PRIMARY KEY, 56 | room_type TEXT NOT NULL, 57 | available INTEGER NOT NULL);''') 58 | 59 | conn.execute('''CREATE TABLE if not exists medication 60 | (code INTEGER PRIMARY KEY, 61 | name TEXT NOT NULL, 62 | brand TEXT NOT NULL, 63 | description TEXT);''') 64 | 65 | conn.execute('''CREATE TABLE if not exists department 66 | (department_id INTEGER PRIMARY KEY, 67 | name TEXT NOT NULL, 68 | head_id INTEGER NOT NULL, 69 | FOREIGN KEY(head_id) REFERENCES doctor(doc_id));''') 70 | 71 | conn.execute('''CREATE TABLE if not exists procedure 72 | (code integer PRIMARY KEY, 73 | name TEXT NOT NULL, 74 | cost INTEGER NOT NULL);''') 75 | 76 | conn.execute('''CREATE TABLE if not exists undergoes 77 | (pat_id INTEGER NOT NULL, 78 | proc_code INTEGER NOT NULL, 79 | u_date DATE NOT NULL, 80 | doc_id INTEGER, 81 | nur_id INTEGER, 82 | room_no INTEGER, 83 | PRIMARY KEY(pat_id, proc_code, u_date), 84 | FOREIGN KEY(pat_id) REFERENCES patient(pat_id), 85 | FOREIGN KEY(proc_code) REFERENCES procedure(code), 86 | FOREIGN KEY(doc_id) REFERENCES doctor(doc_id), 87 | FOREIGN KEY(nur_id) REFERENCES nurse(nur_id), 88 | FOREIGN KEY(room_no) REFERENCES room(room_no));''') 89 | 90 | conn.execute('''CREATE TABLE if not exists prescribes 91 | (doc_id INTEGER, 92 | pat_id INTEGER, 93 | med_code INTEGER, 94 | p_date DATE NOT NULL, 95 | app_id INTEGER NOT NULL, 96 | dose INTEGER NOT NULL, 97 | PRIMARY KEY(doc_id, pat_id, med_code, p_date), 98 | FOREIGN KEY(doc_id) REFERENCES doctor(doc_id), 99 | FOREIGN KEY(pat_id) REFERENCES patient(pat_id), 100 | FOREIGN KEY(med_code) REFERENCES medication(code), 101 | FOREIGN KEY(app_id) REFERENCES appointment(app_id));''') -------------------------------------------------------------------------------- /package/nurse.py: -------------------------------------------------------------------------------- 1 | from flask_restful import Resource, Api, request 2 | from package.model import conn 3 | class Nurses(Resource): 4 | """This contain apis to carry out activity with all nurses""" 5 | 6 | def get(self): 7 | """Retrive list of all the nurse""" 8 | 9 | nurses = conn.execute("SELECT * FROM nurse ORDER BY nur_date DESC").fetchall() 10 | return nurses 11 | 12 | 13 | 14 | def post(self): 15 | """Add the new nurse""" 16 | 17 | nurseInput = request.get_json(force=True) 18 | nur_first_name=nurseInput['nur_first_name'] 19 | nur_last_name = nurseInput['nur_last_name'] 20 | nur_ph_no = nurseInput['nur_ph_no'] 21 | nur_address = nurseInput['nur_address'] 22 | nurseInput['nur_id']=conn.execute('''INSERT INTO nurse(nur_first_name,nur_last_name,nur_ph_no,nur_address) 23 | VALUES(?,?,?,?)''', (nur_first_name, nur_last_name,nur_ph_no,nur_address)).lastrowid 24 | conn.commit() 25 | return nurseInput 26 | 27 | class Nurse(Resource): 28 | """It include all the apis carrying out the activity with the single nurse""" 29 | 30 | 31 | def get(self,id): 32 | """get the details of the nurse by the nurse id""" 33 | 34 | nurse = conn.execute("SELECT * FROM nurse WHERE nur_id=?",(id,)).fetchall() 35 | return nurse 36 | 37 | def delete(self, id): 38 | """Delete the nurse by its id""" 39 | 40 | conn.execute("DELETE FROM nurse WHERE nur_id=?", (id,)) 41 | conn.commit() 42 | return {'msg': 'sucessfully deleted'} 43 | 44 | def put(self,id): 45 | """Update the nurse by its id""" 46 | 47 | nurseInput = request.get_json(force=True) 48 | nur_first_name=nurseInput['nur_first_name'] 49 | nur_last_name = nurseInput['nur_last_name'] 50 | nur_ph_no = nurseInput['nur_ph_no'] 51 | nur_address = nurseInput['nur_address'] 52 | conn.execute( 53 | "UPDATE nurse SET nur_first_name=?,nur_last_name=?,nur_ph_no=?,nur_address=? WHERE nur_id=?", 54 | (nur_first_name, nur_last_name, nur_ph_no, nur_address, id)) 55 | conn.commit() 56 | return nurseInput -------------------------------------------------------------------------------- /package/patient.py: -------------------------------------------------------------------------------- 1 | from flask_restful import Resource, Api, request 2 | from package.model import conn 3 | 4 | class Patients(Resource): 5 | """It contain all the api carryign the activity with aand specific patient""" 6 | 7 | def get(self): 8 | """Api to retive all the patient from the database""" 9 | 10 | patients = conn.execute("SELECT * FROM patient ORDER BY pat_date DESC").fetchall() 11 | return patients 12 | 13 | 14 | 15 | def post(self): 16 | """api to add the patient in the database""" 17 | 18 | patientInput = request.get_json(force=True) 19 | pat_first_name=patientInput['pat_first_name'] 20 | pat_last_name = patientInput['pat_last_name'] 21 | pat_insurance_no = patientInput['pat_insurance_no'] 22 | pat_ph_no = patientInput['pat_ph_no'] 23 | pat_address = patientInput['pat_address'] 24 | patientInput['pat_id']=conn.execute('''INSERT INTO patient(pat_first_name,pat_last_name,pat_insurance_no,pat_ph_no,pat_address) 25 | VALUES(?,?,?,?,?)''', (pat_first_name, pat_last_name, pat_insurance_no,pat_ph_no,pat_address)).lastrowid 26 | conn.commit() 27 | return patientInput 28 | 29 | class Patient(Resource): 30 | """It contains all apis doing activity with the single patient entity""" 31 | 32 | def get(self,id): 33 | """api to retrive details of the patient by it id""" 34 | 35 | patient = conn.execute("SELECT * FROM patient WHERE pat_id=?",(id,)).fetchall() 36 | return patient 37 | 38 | def delete(self,id): 39 | """api to delete the patiend by its id""" 40 | 41 | conn.execute("DELETE FROM patient WHERE pat_id=?",(id,)) 42 | conn.commit() 43 | return {'msg': 'sucessfully deleted'} 44 | 45 | def put(self,id): 46 | """api to update the patient by it id""" 47 | 48 | patientInput = request.get_json(force=True) 49 | pat_first_name = patientInput['pat_first_name'] 50 | pat_last_name = patientInput['pat_last_name'] 51 | pat_insurance_no = patientInput['pat_insurance_no'] 52 | pat_ph_no = patientInput['pat_ph_no'] 53 | pat_address = patientInput['pat_address'] 54 | conn.execute("UPDATE patient SET pat_first_name=?,pat_last_name=?,pat_insurance_no=?,pat_ph_no=?,pat_address=? WHERE pat_id=?", 55 | (pat_first_name, pat_last_name, pat_insurance_no,pat_ph_no,pat_address,id)) 56 | conn.commit() 57 | return patientInput -------------------------------------------------------------------------------- /package/prescribes.py: -------------------------------------------------------------------------------- 1 | from flask_restful import Resource, Api, request 2 | from package.model import conn 3 | 4 | 5 | 6 | class Prescribes(Resource): 7 | """This contain apis to carry out activity with all prescribess""" 8 | 9 | def get(self): 10 | """Retrive all the prescribes and return in form of json""" 11 | 12 | # prescribes = conn.execute("SELECT * from prescribes").fetchall() 13 | prescribes = conn.execute("SELECT prescribes.doc_id, doctor.doc_first_name, doctor.doc_last_name, prescribes.pat_id, patient.pat_first_name, patient.pat_last_name, prescribes.med_code, prescribes.p_date, prescribes.app_id, dose FROM prescribes INNER JOIN doctor ON prescribes.doc_id = doctor.doc_id INNER JOIN patient ON prescribes.pat_id = patient.pat_id").fetchall() 14 | return prescribes 15 | 16 | def post(self): 17 | """Api to add prescribes in the database""" 18 | 19 | prescribes = request.get_json(force=True) 20 | doc_id = prescribes['doc_id'] 21 | pat_id = prescribes['pat_id'] 22 | med_code = prescribes['med_code'] 23 | p_date = prescribes['p_date'] 24 | app_id = prescribes['app_id'] 25 | dose = prescribes['dose'] 26 | conn.execute('''INSERT INTO prescribes(doc_id, pat_id, med_code, p_date, app_id, dose) VALUES(?,?,?,?,?,?)''', (doc_id, pat_id, med_code, p_date, app_id, dose)) 27 | conn.commit() 28 | return prescribes 29 | 30 | 31 | 32 | class Prescribe(Resource): 33 | """This contain all api doing activity with single prescribes""" 34 | 35 | def get(self,doc_id): 36 | """retrive a singe prescribes details by its doc_id""" 37 | 38 | prescribes = conn.execute("SELECT * FROM prescribes WHERE doc_id=?",(doc_id,)).fetchall() 39 | return prescribes 40 | 41 | 42 | def delete(self,doc_id): 43 | """Delete the prescribes by its doc_id""" 44 | 45 | conn.execute("DELETE FROM prescribes WHERE doc_id=?",(doc_id,)) 46 | conn.commit() 47 | return {'msg': 'sucessfully deleted'} 48 | 49 | def put(self,doc_id): 50 | """Update the prescribes details by the doc_id""" 51 | 52 | prescribes = request.get_json(force=True) 53 | doc_id = prescribes['doc_id'] 54 | pat_id = prescribes['pat_id'] 55 | med_code = prescribes['med_code'] 56 | p_date = prescribes['p_date'] 57 | app_id = prescribes['app_id'] 58 | dose = prescribes['dose'] 59 | conn.execute("UPDATE prescribes SET doc_id=?,pat_id=?,med_code=?,p_date=?,app_id=?,dose=?, WHERE doc_id=?", (doc_id, pat_id, med_code, p_date, app_id, dose, doc_id)) 60 | conn.commit() 61 | return prescribes -------------------------------------------------------------------------------- /package/procedure.py: -------------------------------------------------------------------------------- 1 | from flask_restful import Resource, Api, request 2 | from package.model import conn 3 | 4 | 5 | 6 | class Procedures(Resource): 7 | """This contain apis to carry out activity with all procedures""" 8 | 9 | def get(self): 10 | """Retrive all the procedure and return in form of json""" 11 | 12 | procedure = conn.execute("SELECT * from procedure").fetchall() 13 | return procedure 14 | 15 | def post(self): 16 | """Api to add procedure in the database""" 17 | 18 | procedure = request.get_json(force=True) 19 | code = procedure['code'] 20 | name = procedure['name'] 21 | cost = procedure['cost'] 22 | conn.execute('''INSERT INTO procedure(code, name, cost) VALUES(?,?,?)''', (code, name, cost)) 23 | conn.commit() 24 | return procedure 25 | 26 | 27 | 28 | class Procedure(Resource): 29 | """This contain all api doing activity with single procedure""" 30 | 31 | def get(self,code): 32 | """retrive a singe procedure details by its code""" 33 | 34 | procedure = conn.execute("SELECT * FROM procedure WHERE code=?",(code,)).fetchall() 35 | return procedure 36 | 37 | 38 | def delete(self,code): 39 | """Delete the procedure by its code""" 40 | 41 | conn.execute("DELETE FROM procedure WHERE code=?",(code,)) 42 | conn.commit() 43 | return {'msg': 'sucessfully deleted'} 44 | 45 | def put(self,code): 46 | """Update the procedure details by the code""" 47 | 48 | procedure = request.get_json(force=True) 49 | name = procedure['name'] 50 | cost = procedure['cost'] 51 | conn.execute("UPDATE procedure SET name=?,cost=? WHERE code=?", (name, cost, code)) 52 | conn.commit() 53 | return procedure -------------------------------------------------------------------------------- /package/room.py: -------------------------------------------------------------------------------- 1 | from flask_restful import Resource, Api, request 2 | from package.model import conn 3 | 4 | 5 | 6 | class Rooms(Resource): 7 | """This contain apis to carry out activity with all rooms""" 8 | 9 | def get(self): 10 | """Retrive all the room and return in form of json""" 11 | 12 | room = conn.execute("SELECT * from room").fetchall() 13 | return room 14 | 15 | def post(self): 16 | """Api to add room in the database""" 17 | 18 | room = request.get_json(force=True) 19 | room_no = room['room_no'] 20 | room_type = room['room_type'] 21 | available = room['available'] 22 | conn.execute('''INSERT INTO room(room_no, room_type, available) VALUES(?,?,?)''', (room_no, room_type, available)) 23 | conn.commit() 24 | return room 25 | 26 | 27 | 28 | class Room(Resource): 29 | """This contain all api doing activity with single room""" 30 | 31 | def get(self,room_no): 32 | """retrive a singe room details by its room_no""" 33 | 34 | room = conn.execute("SELECT * FROM room WHERE room_no=?",(room_no,)).fetchall() 35 | return room 36 | 37 | 38 | def delete(self,room_no): 39 | """Delete the room by its room_no""" 40 | 41 | conn.execute("DELETE FROM room WHERE room_no=?",(room_no,)) 42 | conn.commit() 43 | return {'msg': 'sucessfully deleted'} 44 | 45 | def put(self,room_no): 46 | """Update the room details by the room_no""" 47 | 48 | room = request.get_json(force=True) 49 | room_type = room['room_type'] 50 | available = room['available'] 51 | conn.execute("UPDATE room SET room_type=?,available=? WHERE room_no=?", (room_type, available, room_no)) 52 | conn.commit() 53 | return room -------------------------------------------------------------------------------- /package/undergoes.py: -------------------------------------------------------------------------------- 1 | from flask_restful import Resource, Api, request 2 | from package.model import conn 3 | 4 | 5 | 6 | class Undergoess(Resource): 7 | """This contain apis to carry out activity with all undergoess""" 8 | 9 | def get(self): 10 | """Retrive all the undergoes and return in form of json""" 11 | 12 | # undergoes = conn.execute("SELECT * from undergoes").fetchall() 13 | undergoes = conn.execute("SELECT undergoes.doc_id, doctor.doc_first_name, doctor.doc_last_name, undergoes.pat_id, patient.pat_first_name, patient.pat_last_name, undergoes.proc_code, undergoes.u_date, undergoes.nur_id, nurse.nur_first_name, nurse.nur_last_name, undergoes.room_no FROM undergoes INNER JOIN doctor ON undergoes.doc_id = doctor.doc_id INNER JOIN patient ON undergoes.pat_id = patient.pat_id INNER JOIN nurse ON undergoes.nur_id = nurse.nur_id").fetchall() 14 | 15 | return undergoes 16 | 17 | def post(self): 18 | """Api to add undergoes in the database""" 19 | 20 | undergoes = request.get_json(force=True) 21 | doc_id = undergoes['doc_id'] 22 | pat_id = undergoes['pat_id'] 23 | proc_code = undergoes['proc_code'] 24 | u_date = undergoes['u_date'] 25 | nur_id = undergoes['nur_id'] 26 | room_no = undergoes['room_no'] 27 | conn.execute('''INSERT INTO undergoes(pat_id, proc_code, u_date, doc_id, nur_id, room_no) VALUES(?,?,?,?,?,?)''', (pat_id, proc_code, u_date, doc_id, nur_id, room_no)) 28 | conn.commit() 29 | return undergoes 30 | 31 | 32 | 33 | class Undergoes(Resource): 34 | """This contain all api doing activity with single undergoes""" 35 | 36 | def get(self,pat_id): 37 | """retrive a singe undergoes details by its pat_id""" 38 | 39 | undergoes = conn.execute("SELECT * FROM undergoes WHERE pat_id=?",(pat_id,)).fetchall() 40 | return undergoes 41 | 42 | 43 | def delete(self,pat_id): 44 | """Delete the undergoes by its doc_id""" 45 | 46 | conn.execute("DELETE FROM undergoes WHERE pat_id=?",(pat_id,)) 47 | conn.commit() 48 | return {'msg': 'sucessfully deleted'} 49 | 50 | def put(self,pat_id): 51 | """Update the undergoes details by the doc_id""" 52 | 53 | undergoes = request.get_json(force=True) 54 | doc_id = undergoes['doc_id'] 55 | pat_id = undergoes['pat_id'] 56 | proc_code = undergoes['proc_code'] 57 | u_date = undergoes['u_date'] 58 | app_id = undergoes['app_id'] 59 | room_no = undergoes['room_no'] 60 | conn.execute("UPDATE undergoes SET doc_id=?,pat_id=?,proc_code=?,u_date=?,app_id=?,room_no=?, WHERE pat_id=?", (doc_id, pat_id, proc_code, u_date, app_id, room_no, pat_id)) 61 | conn.commit() 62 | return undergoes -------------------------------------------------------------------------------- /screenshots/Appointment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/screenshots/Appointment.png -------------------------------------------------------------------------------- /screenshots/Creators.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/screenshots/Creators.png -------------------------------------------------------------------------------- /screenshots/Dashboard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/screenshots/Dashboard.png -------------------------------------------------------------------------------- /screenshots/Department.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/screenshots/Department.png -------------------------------------------------------------------------------- /screenshots/Doctor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/screenshots/Doctor.png -------------------------------------------------------------------------------- /screenshots/Medication.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/screenshots/Medication.png -------------------------------------------------------------------------------- /screenshots/Nurse.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/screenshots/Nurse.png -------------------------------------------------------------------------------- /screenshots/Patient.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/screenshots/Patient.png -------------------------------------------------------------------------------- /screenshots/Prescribes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/screenshots/Prescribes.png -------------------------------------------------------------------------------- /screenshots/Procedure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/screenshots/Procedure.png -------------------------------------------------------------------------------- /screenshots/Room.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/screenshots/Room.png -------------------------------------------------------------------------------- /screenshots/Undergoes.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/screenshots/Undergoes.png -------------------------------------------------------------------------------- /static/about_us.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | HospitalManagementSystem 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 75 | 76 | 77 | 78 |
79 | 80 | 93 | 94 |
95 |
96 |
97 |

Creators




98 |
99 | 100 |
101 | 102 | 103 |
104 |
105 |
106 |
   Adarsh Ninganur
107 |
108 |
109 |
110 | 111 |
112 |
113 |
114 |
   Aryan Prasad
115 |
116 |
117 |
118 | 119 | 120 | -------------------------------------------------------------------------------- /static/app/css/theme-a.css: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | Component: layout 3 | ========================================================================== */ 4 | body, 5 | .wrapper > section { 6 | background-color: #f5f7fa; 7 | } 8 | .wrapper > .aside { 9 | background-color: #ffffff; 10 | } 11 | /* ======================================================================== 12 | Component: top-navbar 13 | ========================================================================== */ 14 | .topnavbar { 15 | background-color: #fff; 16 | } 17 | .topnavbar .navbar-header { 18 | background-color: transparent; 19 | background-image: -webkit-linear-gradient(left, #23b7e5 0%, #51c6ea 100%); 20 | background-image: -o-linear-gradient(left, #23b7e5 0%, #51c6ea 100%); 21 | background-image: linear-gradient(to right, #23b7e5 0%, #51c6ea 100%); 22 | background-repeat: repeat-x; 23 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff23b7e5', endColorstr='#ff51c6ea', GradientType=1); 24 | } 25 | @media only screen and (min-width: 768px) { 26 | .topnavbar .navbar-header { 27 | background-image: none; 28 | } 29 | } 30 | .topnavbar .navbar-nav > li > .navbar-text { 31 | color: #23b7e5; 32 | } 33 | .topnavbar .navbar-nav > li > a, 34 | .topnavbar .navbar-nav > .open > a { 35 | color: #23b7e5; 36 | } 37 | .topnavbar .navbar-nav > li > a:hover, 38 | .topnavbar .navbar-nav > .open > a:hover, 39 | .topnavbar .navbar-nav > li > a:focus, 40 | .topnavbar .navbar-nav > .open > a:focus { 41 | color: #117391; 42 | } 43 | .topnavbar .navbar-nav > .active > a, 44 | .topnavbar .navbar-nav > .open > a, 45 | .topnavbar .navbar-nav > .active > a:hover, 46 | .topnavbar .navbar-nav > .open > a:hover, 47 | .topnavbar .navbar-nav > .active > a:focus, 48 | .topnavbar .navbar-nav > .open > a:focus { 49 | background-color: transparent; 50 | } 51 | .topnavbar .navbar-nav > li > [data-toggle='navbar-search'] { 52 | color: #ffffff; 53 | } 54 | .topnavbar .nav-wrapper { 55 | background-color: #23b7e5; 56 | background-image: -webkit-linear-gradient(left, #23b7e5 0%, #51c6ea 100%); 57 | background-image: -o-linear-gradient(left, #23b7e5 0%, #51c6ea 100%); 58 | background-image: linear-gradient(to right, #23b7e5 0%, #51c6ea 100%); 59 | background-repeat: repeat-x; 60 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff23b7e5', endColorstr='#ff51c6ea', GradientType=1); 61 | } 62 | @media only screen and (min-width: 768px) { 63 | .topnavbar { 64 | background-color: #23b7e5; 65 | background-image: -webkit-linear-gradient(left, #23b7e5 0%, #51c6ea 100%); 66 | background-image: -o-linear-gradient(left, #23b7e5 0%, #51c6ea 100%); 67 | background-image: linear-gradient(to right, #23b7e5 0%, #51c6ea 100%); 68 | background-repeat: repeat-x; 69 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff23b7e5', endColorstr='#ff51c6ea', GradientType=1); 70 | } 71 | .topnavbar .navbar-nav > .open > a, 72 | .topnavbar .navbar-nav > .open > a:hover, 73 | .topnavbar .navbar-nav > .open > a:focus { 74 | box-shadow: 0 -3px 0 rgba(255, 255, 255, 0.5) inset; 75 | } 76 | .topnavbar .navbar-nav > li > .navbar-text { 77 | color: #ffffff; 78 | } 79 | .topnavbar .navbar-nav > li > a, 80 | .topnavbar .navbar-nav > .open > a { 81 | color: #ffffff; 82 | } 83 | .topnavbar .navbar-nav > li > a:hover, 84 | .topnavbar .navbar-nav > .open > a:hover, 85 | .topnavbar .navbar-nav > li > a:focus, 86 | .topnavbar .navbar-nav > .open > a:focus { 87 | color: #117391; 88 | } 89 | } 90 | /* ======================================================================== 91 | Component: sidebar 92 | ========================================================================== */ 93 | .sidebar { 94 | background-color: #ffffff; 95 | } 96 | .sidebar .nav-heading { 97 | color: #919da8; 98 | } 99 | .sidebar .nav > li > a, 100 | .sidebar .nav > li > .nav-item { 101 | color: #515253; 102 | } 103 | .sidebar .nav > li > a:focus, 104 | .sidebar .nav > li > .nav-item:focus, 105 | .sidebar .nav > li > a:hover, 106 | .sidebar .nav > li > .nav-item:hover { 107 | color: #23b7e5; 108 | } 109 | .sidebar .nav > li > a > em, 110 | .sidebar .nav > li > .nav-item > em { 111 | color: inherits; 112 | } 113 | .sidebar .nav > li.active, 114 | .sidebar .nav > li.open, 115 | .sidebar .nav > li.active > a, 116 | .sidebar .nav > li.open > a, 117 | .sidebar .nav > li.active .nav, 118 | .sidebar .nav > li.open .nav { 119 | background-color: #fcfcfc; 120 | color: #23b7e5; 121 | } 122 | .sidebar .nav > li.active > a > em, 123 | .sidebar .nav > li.open > a > em { 124 | color: #23b7e5; 125 | } 126 | .sidebar .nav > li.active { 127 | border-left-color: #23b7e5; 128 | } 129 | .sidebar-subnav { 130 | background-color: #ffffff; 131 | } 132 | .sidebar-subnav > .sidebar-subnav-header { 133 | color: #515253; 134 | } 135 | .sidebar-subnav > li > a, 136 | .sidebar-subnav > li > .nav-item { 137 | color: #515253; 138 | } 139 | .sidebar-subnav > li > a:focus, 140 | .sidebar-subnav > li > .nav-item:focus, 141 | .sidebar-subnav > li > a:hover, 142 | .sidebar-subnav > li > .nav-item:hover { 143 | color: #23b7e5; 144 | } 145 | .sidebar-subnav > li.active > a, 146 | .sidebar-subnav > li.active > .nav-item { 147 | color: #23b7e5; 148 | } 149 | .sidebar-subnav > li.active > a:after, 150 | .sidebar-subnav > li.active > .nav-item:after { 151 | border-color: #23b7e5; 152 | background-color: #23b7e5; 153 | } 154 | /* ======================================================================== 155 | Component: offsidebar 156 | ========================================================================== */ 157 | .offsidebar { 158 | border-left: 1px solid #cccccc; 159 | background-color: #ffffff; 160 | color: #515253; 161 | } 162 | -------------------------------------------------------------------------------- /static/app/css/theme-b.css: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | Component: layout 3 | ========================================================================== */ 4 | body, 5 | .wrapper > section { 6 | background-color: #f5f7fa; 7 | } 8 | .wrapper > .aside { 9 | background-color: #ffffff; 10 | } 11 | /* ======================================================================== 12 | Component: top-navbar 13 | ========================================================================== */ 14 | .topnavbar { 15 | background-color: #fff; 16 | } 17 | .topnavbar .navbar-header { 18 | background-color: transparent; 19 | background-image: -webkit-linear-gradient(left, #37bc9b 0%, #58ceb1 100%); 20 | background-image: -o-linear-gradient(left, #37bc9b 0%, #58ceb1 100%); 21 | background-image: linear-gradient(to right, #37bc9b 0%, #58ceb1 100%); 22 | background-repeat: repeat-x; 23 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff37bc9b', endColorstr='#ff58ceb1', GradientType=1); 24 | } 25 | @media only screen and (min-width: 768px) { 26 | .topnavbar .navbar-header { 27 | background-image: none; 28 | } 29 | } 30 | .topnavbar .navbar-nav > li > .navbar-text { 31 | color: #37bc9b; 32 | } 33 | .topnavbar .navbar-nav > li > a, 34 | .topnavbar .navbar-nav > .open > a { 35 | color: #37bc9b; 36 | } 37 | .topnavbar .navbar-nav > li > a:hover, 38 | .topnavbar .navbar-nav > .open > a:hover, 39 | .topnavbar .navbar-nav > li > a:focus, 40 | .topnavbar .navbar-nav > .open > a:focus { 41 | color: #206d5a; 42 | } 43 | .topnavbar .navbar-nav > .active > a, 44 | .topnavbar .navbar-nav > .open > a, 45 | .topnavbar .navbar-nav > .active > a:hover, 46 | .topnavbar .navbar-nav > .open > a:hover, 47 | .topnavbar .navbar-nav > .active > a:focus, 48 | .topnavbar .navbar-nav > .open > a:focus { 49 | background-color: transparent; 50 | } 51 | .topnavbar .navbar-nav > li > [data-toggle='navbar-search'] { 52 | color: #ffffff; 53 | } 54 | .topnavbar .nav-wrapper { 55 | background-color: #37bc9b; 56 | background-image: -webkit-linear-gradient(left, #37bc9b 0%, #58ceb1 100%); 57 | background-image: -o-linear-gradient(left, #37bc9b 0%, #58ceb1 100%); 58 | background-image: linear-gradient(to right, #37bc9b 0%, #58ceb1 100%); 59 | background-repeat: repeat-x; 60 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff37bc9b', endColorstr='#ff58ceb1', GradientType=1); 61 | } 62 | @media only screen and (min-width: 768px) { 63 | .topnavbar { 64 | background-color: #37bc9b; 65 | background-image: -webkit-linear-gradient(left, #37bc9b 0%, #58ceb1 100%); 66 | background-image: -o-linear-gradient(left, #37bc9b 0%, #58ceb1 100%); 67 | background-image: linear-gradient(to right, #37bc9b 0%, #58ceb1 100%); 68 | background-repeat: repeat-x; 69 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff37bc9b', endColorstr='#ff58ceb1', GradientType=1); 70 | } 71 | .topnavbar .navbar-nav > .open > a, 72 | .topnavbar .navbar-nav > .open > a:hover, 73 | .topnavbar .navbar-nav > .open > a:focus { 74 | box-shadow: 0 -3px 0 rgba(255, 255, 255, 0.5) inset; 75 | } 76 | .topnavbar .navbar-nav > li > .navbar-text { 77 | color: #ffffff; 78 | } 79 | .topnavbar .navbar-nav > li > a, 80 | .topnavbar .navbar-nav > .open > a { 81 | color: #ffffff; 82 | } 83 | .topnavbar .navbar-nav > li > a:hover, 84 | .topnavbar .navbar-nav > .open > a:hover, 85 | .topnavbar .navbar-nav > li > a:focus, 86 | .topnavbar .navbar-nav > .open > a:focus { 87 | color: #206d5a; 88 | } 89 | } 90 | /* ======================================================================== 91 | Component: sidebar 92 | ========================================================================== */ 93 | .sidebar { 94 | background-color: #ffffff; 95 | } 96 | .sidebar .nav-heading { 97 | color: #919da8; 98 | } 99 | .sidebar .nav > li > a, 100 | .sidebar .nav > li > .nav-item { 101 | color: #515253; 102 | } 103 | .sidebar .nav > li > a:focus, 104 | .sidebar .nav > li > .nav-item:focus, 105 | .sidebar .nav > li > a:hover, 106 | .sidebar .nav > li > .nav-item:hover { 107 | color: #37bc9b; 108 | } 109 | .sidebar .nav > li > a > em, 110 | .sidebar .nav > li > .nav-item > em { 111 | color: inherits; 112 | } 113 | .sidebar .nav > li.active, 114 | .sidebar .nav > li.open, 115 | .sidebar .nav > li.active > a, 116 | .sidebar .nav > li.open > a, 117 | .sidebar .nav > li.active .nav, 118 | .sidebar .nav > li.open .nav { 119 | background-color: #fcfcfc; 120 | color: #37bc9b; 121 | } 122 | .sidebar .nav > li.active > a > em, 123 | .sidebar .nav > li.open > a > em { 124 | color: #37bc9b; 125 | } 126 | .sidebar .nav > li.active { 127 | border-left-color: #37bc9b; 128 | } 129 | .sidebar-subnav { 130 | background-color: #ffffff; 131 | } 132 | .sidebar-subnav > .sidebar-subnav-header { 133 | color: #515253; 134 | } 135 | .sidebar-subnav > li > a, 136 | .sidebar-subnav > li > .nav-item { 137 | color: #515253; 138 | } 139 | .sidebar-subnav > li > a:focus, 140 | .sidebar-subnav > li > .nav-item:focus, 141 | .sidebar-subnav > li > a:hover, 142 | .sidebar-subnav > li > .nav-item:hover { 143 | color: #37bc9b; 144 | } 145 | .sidebar-subnav > li.active > a, 146 | .sidebar-subnav > li.active > .nav-item { 147 | color: #37bc9b; 148 | } 149 | .sidebar-subnav > li.active > a:after, 150 | .sidebar-subnav > li.active > .nav-item:after { 151 | border-color: #37bc9b; 152 | background-color: #37bc9b; 153 | } 154 | /* ======================================================================== 155 | Component: offsidebar 156 | ========================================================================== */ 157 | .offsidebar { 158 | border-left: 1px solid #cccccc; 159 | background-color: #ffffff; 160 | color: #515253; 161 | } 162 | -------------------------------------------------------------------------------- /static/app/css/theme-c.css: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | Component: layout 3 | ========================================================================== */ 4 | body, 5 | .wrapper > section { 6 | background-color: #f5f7fa; 7 | } 8 | .wrapper > .aside { 9 | background-color: #ffffff; 10 | } 11 | /* ======================================================================== 12 | Component: top-navbar 13 | ========================================================================== */ 14 | .topnavbar { 15 | background-color: #fff; 16 | } 17 | .topnavbar .navbar-header { 18 | background-color: transparent; 19 | background-image: -webkit-linear-gradient(left, #7266ba 0%, #9289ca 100%); 20 | background-image: -o-linear-gradient(left, #7266ba 0%, #9289ca 100%); 21 | background-image: linear-gradient(to right, #7266ba 0%, #9289ca 100%); 22 | background-repeat: repeat-x; 23 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff7266ba', endColorstr='#ff9289ca', GradientType=1); 24 | } 25 | @media only screen and (min-width: 768px) { 26 | .topnavbar .navbar-header { 27 | background-image: none; 28 | } 29 | } 30 | .topnavbar .navbar-nav > li > .navbar-text { 31 | color: #7266ba; 32 | } 33 | .topnavbar .navbar-nav > li > a, 34 | .topnavbar .navbar-nav > .open > a { 35 | color: #7266ba; 36 | } 37 | .topnavbar .navbar-nav > li > a:hover, 38 | .topnavbar .navbar-nav > .open > a:hover, 39 | .topnavbar .navbar-nav > li > a:focus, 40 | .topnavbar .navbar-nav > .open > a:focus { 41 | color: #443a80; 42 | } 43 | .topnavbar .navbar-nav > .active > a, 44 | .topnavbar .navbar-nav > .open > a, 45 | .topnavbar .navbar-nav > .active > a:hover, 46 | .topnavbar .navbar-nav > .open > a:hover, 47 | .topnavbar .navbar-nav > .active > a:focus, 48 | .topnavbar .navbar-nav > .open > a:focus { 49 | background-color: transparent; 50 | } 51 | .topnavbar .navbar-nav > li > [data-toggle='navbar-search'] { 52 | color: #ffffff; 53 | } 54 | .topnavbar .nav-wrapper { 55 | background-color: #7266ba; 56 | background-image: -webkit-linear-gradient(left, #7266ba 0%, #9289ca 100%); 57 | background-image: -o-linear-gradient(left, #7266ba 0%, #9289ca 100%); 58 | background-image: linear-gradient(to right, #7266ba 0%, #9289ca 100%); 59 | background-repeat: repeat-x; 60 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff7266ba', endColorstr='#ff9289ca', GradientType=1); 61 | } 62 | @media only screen and (min-width: 768px) { 63 | .topnavbar { 64 | background-color: #7266ba; 65 | background-image: -webkit-linear-gradient(left, #7266ba 0%, #9289ca 100%); 66 | background-image: -o-linear-gradient(left, #7266ba 0%, #9289ca 100%); 67 | background-image: linear-gradient(to right, #7266ba 0%, #9289ca 100%); 68 | background-repeat: repeat-x; 69 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff7266ba', endColorstr='#ff9289ca', GradientType=1); 70 | } 71 | .topnavbar .navbar-nav > .open > a, 72 | .topnavbar .navbar-nav > .open > a:hover, 73 | .topnavbar .navbar-nav > .open > a:focus { 74 | box-shadow: 0 -3px 0 rgba(255, 255, 255, 0.5) inset; 75 | } 76 | .topnavbar .navbar-nav > li > .navbar-text { 77 | color: #ffffff; 78 | } 79 | .topnavbar .navbar-nav > li > a, 80 | .topnavbar .navbar-nav > .open > a { 81 | color: #ffffff; 82 | } 83 | .topnavbar .navbar-nav > li > a:hover, 84 | .topnavbar .navbar-nav > .open > a:hover, 85 | .topnavbar .navbar-nav > li > a:focus, 86 | .topnavbar .navbar-nav > .open > a:focus { 87 | color: #443a80; 88 | } 89 | } 90 | /* ======================================================================== 91 | Component: sidebar 92 | ========================================================================== */ 93 | .sidebar { 94 | background-color: #ffffff; 95 | } 96 | .sidebar .nav-heading { 97 | color: #919da8; 98 | } 99 | .sidebar .nav > li > a, 100 | .sidebar .nav > li > .nav-item { 101 | color: #515253; 102 | } 103 | .sidebar .nav > li > a:focus, 104 | .sidebar .nav > li > .nav-item:focus, 105 | .sidebar .nav > li > a:hover, 106 | .sidebar .nav > li > .nav-item:hover { 107 | color: #7266ba; 108 | } 109 | .sidebar .nav > li > a > em, 110 | .sidebar .nav > li > .nav-item > em { 111 | color: inherits; 112 | } 113 | .sidebar .nav > li.active, 114 | .sidebar .nav > li.open, 115 | .sidebar .nav > li.active > a, 116 | .sidebar .nav > li.open > a, 117 | .sidebar .nav > li.active .nav, 118 | .sidebar .nav > li.open .nav { 119 | background-color: #fcfcfc; 120 | color: #7266ba; 121 | } 122 | .sidebar .nav > li.active > a > em, 123 | .sidebar .nav > li.open > a > em { 124 | color: #7266ba; 125 | } 126 | .sidebar .nav > li.active { 127 | border-left-color: #7266ba; 128 | } 129 | .sidebar-subnav { 130 | background-color: #ffffff; 131 | } 132 | .sidebar-subnav > .sidebar-subnav-header { 133 | color: #515253; 134 | } 135 | .sidebar-subnav > li > a, 136 | .sidebar-subnav > li > .nav-item { 137 | color: #515253; 138 | } 139 | .sidebar-subnav > li > a:focus, 140 | .sidebar-subnav > li > .nav-item:focus, 141 | .sidebar-subnav > li > a:hover, 142 | .sidebar-subnav > li > .nav-item:hover { 143 | color: #7266ba; 144 | } 145 | .sidebar-subnav > li.active > a, 146 | .sidebar-subnav > li.active > .nav-item { 147 | color: #7266ba; 148 | } 149 | .sidebar-subnav > li.active > a:after, 150 | .sidebar-subnav > li.active > .nav-item:after { 151 | border-color: #7266ba; 152 | background-color: #7266ba; 153 | } 154 | /* ======================================================================== 155 | Component: offsidebar 156 | ========================================================================== */ 157 | .offsidebar { 158 | border-left: 1px solid #cccccc; 159 | background-color: #ffffff; 160 | color: #515253; 161 | } 162 | -------------------------------------------------------------------------------- /static/app/css/theme-d.css: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | Component: layout 3 | ========================================================================== */ 4 | body, 5 | .wrapper > section { 6 | background-color: #f5f7fa; 7 | } 8 | .wrapper > .aside { 9 | background-color: #ffffff; 10 | } 11 | /* ======================================================================== 12 | Component: top-navbar 13 | ========================================================================== */ 14 | .topnavbar { 15 | background-color: #fff; 16 | } 17 | .topnavbar .navbar-header { 18 | background-color: transparent; 19 | background-image: -webkit-linear-gradient(left, #f05050 0%, #f47f7f 100%); 20 | background-image: -o-linear-gradient(left, #f05050 0%, #f47f7f 100%); 21 | background-image: linear-gradient(to right, #f05050 0%, #f47f7f 100%); 22 | background-repeat: repeat-x; 23 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff05050', endColorstr='#fff47f7f', GradientType=1); 24 | } 25 | @media only screen and (min-width: 768px) { 26 | .topnavbar .navbar-header { 27 | background-image: none; 28 | } 29 | } 30 | .topnavbar .navbar-nav > li > .navbar-text { 31 | color: #f05050; 32 | } 33 | .topnavbar .navbar-nav > li > a, 34 | .topnavbar .navbar-nav > .open > a { 35 | color: #f05050; 36 | } 37 | .topnavbar .navbar-nav > li > a:hover, 38 | .topnavbar .navbar-nav > .open > a:hover, 39 | .topnavbar .navbar-nav > li > a:focus, 40 | .topnavbar .navbar-nav > .open > a:focus { 41 | color: #c91111; 42 | } 43 | .topnavbar .navbar-nav > .active > a, 44 | .topnavbar .navbar-nav > .open > a, 45 | .topnavbar .navbar-nav > .active > a:hover, 46 | .topnavbar .navbar-nav > .open > a:hover, 47 | .topnavbar .navbar-nav > .active > a:focus, 48 | .topnavbar .navbar-nav > .open > a:focus { 49 | background-color: transparent; 50 | } 51 | .topnavbar .navbar-nav > li > [data-toggle='navbar-search'] { 52 | color: #ffffff; 53 | } 54 | .topnavbar .nav-wrapper { 55 | background-color: #f05050; 56 | background-image: -webkit-linear-gradient(left, #f05050 0%, #f47f7f 100%); 57 | background-image: -o-linear-gradient(left, #f05050 0%, #f47f7f 100%); 58 | background-image: linear-gradient(to right, #f05050 0%, #f47f7f 100%); 59 | background-repeat: repeat-x; 60 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff05050', endColorstr='#fff47f7f', GradientType=1); 61 | } 62 | @media only screen and (min-width: 768px) { 63 | .topnavbar { 64 | background-color: #f05050; 65 | background-image: -webkit-linear-gradient(left, #f05050 0%, #f47f7f 100%); 66 | background-image: -o-linear-gradient(left, #f05050 0%, #f47f7f 100%); 67 | background-image: linear-gradient(to right, #f05050 0%, #f47f7f 100%); 68 | background-repeat: repeat-x; 69 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fff05050', endColorstr='#fff47f7f', GradientType=1); 70 | } 71 | .topnavbar .navbar-nav > .open > a, 72 | .topnavbar .navbar-nav > .open > a:hover, 73 | .topnavbar .navbar-nav > .open > a:focus { 74 | box-shadow: 0 -3px 0 rgba(255, 255, 255, 0.5) inset; 75 | } 76 | .topnavbar .navbar-nav > li > .navbar-text { 77 | color: #ffffff; 78 | } 79 | .topnavbar .navbar-nav > li > a, 80 | .topnavbar .navbar-nav > .open > a { 81 | color: #ffffff; 82 | } 83 | .topnavbar .navbar-nav > li > a:hover, 84 | .topnavbar .navbar-nav > .open > a:hover, 85 | .topnavbar .navbar-nav > li > a:focus, 86 | .topnavbar .navbar-nav > .open > a:focus { 87 | color: #c91111; 88 | } 89 | } 90 | /* ======================================================================== 91 | Component: sidebar 92 | ========================================================================== */ 93 | .sidebar { 94 | background-color: #ffffff; 95 | } 96 | .sidebar .nav-heading { 97 | color: #919da8; 98 | } 99 | .sidebar .nav > li > a, 100 | .sidebar .nav > li > .nav-item { 101 | color: #515253; 102 | } 103 | .sidebar .nav > li > a:focus, 104 | .sidebar .nav > li > .nav-item:focus, 105 | .sidebar .nav > li > a:hover, 106 | .sidebar .nav > li > .nav-item:hover { 107 | color: #f05050; 108 | } 109 | .sidebar .nav > li > a > em, 110 | .sidebar .nav > li > .nav-item > em { 111 | color: inherits; 112 | } 113 | .sidebar .nav > li.active, 114 | .sidebar .nav > li.open, 115 | .sidebar .nav > li.active > a, 116 | .sidebar .nav > li.open > a, 117 | .sidebar .nav > li.active .nav, 118 | .sidebar .nav > li.open .nav { 119 | background-color: #fcfcfc; 120 | color: #f05050; 121 | } 122 | .sidebar .nav > li.active > a > em, 123 | .sidebar .nav > li.open > a > em { 124 | color: #f05050; 125 | } 126 | .sidebar .nav > li.active { 127 | border-left-color: #f05050; 128 | } 129 | .sidebar-subnav { 130 | background-color: #ffffff; 131 | } 132 | .sidebar-subnav > .sidebar-subnav-header { 133 | color: #515253; 134 | } 135 | .sidebar-subnav > li > a, 136 | .sidebar-subnav > li > .nav-item { 137 | color: #515253; 138 | } 139 | .sidebar-subnav > li > a:focus, 140 | .sidebar-subnav > li > .nav-item:focus, 141 | .sidebar-subnav > li > a:hover, 142 | .sidebar-subnav > li > .nav-item:hover { 143 | color: #f05050; 144 | } 145 | .sidebar-subnav > li.active > a, 146 | .sidebar-subnav > li.active > .nav-item { 147 | color: #f05050; 148 | } 149 | .sidebar-subnav > li.active > a:after, 150 | .sidebar-subnav > li.active > .nav-item:after { 151 | border-color: #f05050; 152 | background-color: #f05050; 153 | } 154 | /* ======================================================================== 155 | Component: offsidebar 156 | ========================================================================== */ 157 | .offsidebar { 158 | border-left: 1px solid #cccccc; 159 | background-color: #ffffff; 160 | color: #515253; 161 | } 162 | -------------------------------------------------------------------------------- /static/app/css/theme-e.css: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | Component: layout 3 | ========================================================================== */ 4 | body, 5 | .wrapper > section { 6 | background-color: #f5f7fa; 7 | } 8 | .wrapper > .aside { 9 | background-color: #3a3f51; 10 | } 11 | /* ======================================================================== 12 | Component: top-navbar 13 | ========================================================================== */ 14 | .topnavbar { 15 | background-color: #fff; 16 | } 17 | .topnavbar .navbar-header { 18 | background-color: transparent; 19 | background-image: -webkit-linear-gradient(left, #1797be 0%, #23b7e5 100%); 20 | background-image: -o-linear-gradient(left, #1797be 0%, #23b7e5 100%); 21 | background-image: linear-gradient(to right, #1797be 0%, #23b7e5 100%); 22 | background-repeat: repeat-x; 23 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff1797be', endColorstr='#ff23b7e5', GradientType=1); 24 | } 25 | @media only screen and (min-width: 768px) { 26 | .topnavbar .navbar-header { 27 | background-image: none; 28 | } 29 | } 30 | .topnavbar .navbar-nav > li > .navbar-text { 31 | color: #1797be; 32 | } 33 | .topnavbar .navbar-nav > li > a, 34 | .topnavbar .navbar-nav > .open > a { 35 | color: #1797be; 36 | } 37 | .topnavbar .navbar-nav > li > a:hover, 38 | .topnavbar .navbar-nav > .open > a:hover, 39 | .topnavbar .navbar-nav > li > a:focus, 40 | .topnavbar .navbar-nav > .open > a:focus { 41 | color: #0c4f63; 42 | } 43 | .topnavbar .navbar-nav > .active > a, 44 | .topnavbar .navbar-nav > .open > a, 45 | .topnavbar .navbar-nav > .active > a:hover, 46 | .topnavbar .navbar-nav > .open > a:hover, 47 | .topnavbar .navbar-nav > .active > a:focus, 48 | .topnavbar .navbar-nav > .open > a:focus { 49 | background-color: transparent; 50 | } 51 | .topnavbar .navbar-nav > li > [data-toggle='navbar-search'] { 52 | color: #ffffff; 53 | } 54 | .topnavbar .nav-wrapper { 55 | background-color: #1797be; 56 | background-image: -webkit-linear-gradient(left, #1797be 0%, #23b7e5 100%); 57 | background-image: -o-linear-gradient(left, #1797be 0%, #23b7e5 100%); 58 | background-image: linear-gradient(to right, #1797be 0%, #23b7e5 100%); 59 | background-repeat: repeat-x; 60 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff1797be', endColorstr='#ff23b7e5', GradientType=1); 61 | } 62 | @media only screen and (min-width: 768px) { 63 | .topnavbar { 64 | background-color: #1797be; 65 | background-image: -webkit-linear-gradient(left, #1797be 0%, #23b7e5 100%); 66 | background-image: -o-linear-gradient(left, #1797be 0%, #23b7e5 100%); 67 | background-image: linear-gradient(to right, #1797be 0%, #23b7e5 100%); 68 | background-repeat: repeat-x; 69 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff1797be', endColorstr='#ff23b7e5', GradientType=1); 70 | } 71 | .topnavbar .navbar-nav > .open > a, 72 | .topnavbar .navbar-nav > .open > a:hover, 73 | .topnavbar .navbar-nav > .open > a:focus { 74 | box-shadow: 0 -3px 0 rgba(255, 255, 255, 0.5) inset; 75 | } 76 | .topnavbar .navbar-nav > li > .navbar-text { 77 | color: #ffffff; 78 | } 79 | .topnavbar .navbar-nav > li > a, 80 | .topnavbar .navbar-nav > .open > a { 81 | color: #ffffff; 82 | } 83 | .topnavbar .navbar-nav > li > a:hover, 84 | .topnavbar .navbar-nav > .open > a:hover, 85 | .topnavbar .navbar-nav > li > a:focus, 86 | .topnavbar .navbar-nav > .open > a:focus { 87 | color: #0c4f63; 88 | } 89 | } 90 | /* ======================================================================== 91 | Component: sidebar 92 | ========================================================================== */ 93 | .sidebar { 94 | background-color: #3a3f51; 95 | } 96 | .sidebar .nav-heading { 97 | color: #919da8; 98 | } 99 | .sidebar .nav > li > a, 100 | .sidebar .nav > li > .nav-item { 101 | color: #e1e2e3; 102 | } 103 | .sidebar .nav > li > a:focus, 104 | .sidebar .nav > li > .nav-item:focus, 105 | .sidebar .nav > li > a:hover, 106 | .sidebar .nav > li > .nav-item:hover { 107 | color: #1797be; 108 | } 109 | .sidebar .nav > li > a > em, 110 | .sidebar .nav > li > .nav-item > em { 111 | color: inherits; 112 | } 113 | .sidebar .nav > li.active, 114 | .sidebar .nav > li.open, 115 | .sidebar .nav > li.active > a, 116 | .sidebar .nav > li.open > a, 117 | .sidebar .nav > li.active .nav, 118 | .sidebar .nav > li.open .nav { 119 | background-color: #383d4e; 120 | color: #1797be; 121 | } 122 | .sidebar .nav > li.active > a > em, 123 | .sidebar .nav > li.open > a > em { 124 | color: #1797be; 125 | } 126 | .sidebar .nav > li.active { 127 | border-left-color: #1797be; 128 | } 129 | .sidebar-subnav { 130 | background-color: #3a3f51; 131 | } 132 | .sidebar-subnav > .sidebar-subnav-header { 133 | color: #e1e2e3; 134 | } 135 | .sidebar-subnav > li > a, 136 | .sidebar-subnav > li > .nav-item { 137 | color: #e1e2e3; 138 | } 139 | .sidebar-subnav > li > a:focus, 140 | .sidebar-subnav > li > .nav-item:focus, 141 | .sidebar-subnav > li > a:hover, 142 | .sidebar-subnav > li > .nav-item:hover { 143 | color: #1797be; 144 | } 145 | .sidebar-subnav > li.active > a, 146 | .sidebar-subnav > li.active > .nav-item { 147 | color: #1797be; 148 | } 149 | .sidebar-subnav > li.active > a:after, 150 | .sidebar-subnav > li.active > .nav-item:after { 151 | border-color: #1797be; 152 | background-color: #1797be; 153 | } 154 | /* ======================================================================== 155 | Component: offsidebar 156 | ========================================================================== */ 157 | .offsidebar { 158 | border-left: 1px solid #cccccc; 159 | background-color: #ffffff; 160 | color: #515253; 161 | } 162 | -------------------------------------------------------------------------------- /static/app/css/theme-f.css: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | Component: layout 3 | ========================================================================== */ 4 | body, 5 | .wrapper > section { 6 | background-color: #f5f7fa; 7 | } 8 | .wrapper > .aside { 9 | background-color: #3a3f51; 10 | } 11 | /* ======================================================================== 12 | Component: top-navbar 13 | ========================================================================== */ 14 | .topnavbar { 15 | background-color: #fff; 16 | } 17 | .topnavbar .navbar-header { 18 | background-color: transparent; 19 | background-image: -webkit-linear-gradient(left, #2b957a 0%, #37bc9b 100%); 20 | background-image: -o-linear-gradient(left, #2b957a 0%, #37bc9b 100%); 21 | background-image: linear-gradient(to right, #2b957a 0%, #37bc9b 100%); 22 | background-repeat: repeat-x; 23 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2b957a', endColorstr='#ff37bc9b', GradientType=1); 24 | } 25 | @media only screen and (min-width: 768px) { 26 | .topnavbar .navbar-header { 27 | background-image: none; 28 | } 29 | } 30 | .topnavbar .navbar-nav > li > .navbar-text { 31 | color: #2b957a; 32 | } 33 | .topnavbar .navbar-nav > li > a, 34 | .topnavbar .navbar-nav > .open > a { 35 | color: #2b957a; 36 | } 37 | .topnavbar .navbar-nav > li > a:hover, 38 | .topnavbar .navbar-nav > .open > a:hover, 39 | .topnavbar .navbar-nav > li > a:focus, 40 | .topnavbar .navbar-nav > .open > a:focus { 41 | color: #144639; 42 | } 43 | .topnavbar .navbar-nav > .active > a, 44 | .topnavbar .navbar-nav > .open > a, 45 | .topnavbar .navbar-nav > .active > a:hover, 46 | .topnavbar .navbar-nav > .open > a:hover, 47 | .topnavbar .navbar-nav > .active > a:focus, 48 | .topnavbar .navbar-nav > .open > a:focus { 49 | background-color: transparent; 50 | } 51 | .topnavbar .navbar-nav > li > [data-toggle='navbar-search'] { 52 | color: #ffffff; 53 | } 54 | .topnavbar .nav-wrapper { 55 | background-color: #2b957a; 56 | background-image: -webkit-linear-gradient(left, #2b957a 0%, #37bc9b 100%); 57 | background-image: -o-linear-gradient(left, #2b957a 0%, #37bc9b 100%); 58 | background-image: linear-gradient(to right, #2b957a 0%, #37bc9b 100%); 59 | background-repeat: repeat-x; 60 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2b957a', endColorstr='#ff37bc9b', GradientType=1); 61 | } 62 | @media only screen and (min-width: 768px) { 63 | .topnavbar { 64 | background-color: #2b957a; 65 | background-image: -webkit-linear-gradient(left, #2b957a 0%, #37bc9b 100%); 66 | background-image: -o-linear-gradient(left, #2b957a 0%, #37bc9b 100%); 67 | background-image: linear-gradient(to right, #2b957a 0%, #37bc9b 100%); 68 | background-repeat: repeat-x; 69 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff2b957a', endColorstr='#ff37bc9b', GradientType=1); 70 | } 71 | .topnavbar .navbar-nav > .open > a, 72 | .topnavbar .navbar-nav > .open > a:hover, 73 | .topnavbar .navbar-nav > .open > a:focus { 74 | box-shadow: 0 -3px 0 rgba(255, 255, 255, 0.5) inset; 75 | } 76 | .topnavbar .navbar-nav > li > .navbar-text { 77 | color: #ffffff; 78 | } 79 | .topnavbar .navbar-nav > li > a, 80 | .topnavbar .navbar-nav > .open > a { 81 | color: #ffffff; 82 | } 83 | .topnavbar .navbar-nav > li > a:hover, 84 | .topnavbar .navbar-nav > .open > a:hover, 85 | .topnavbar .navbar-nav > li > a:focus, 86 | .topnavbar .navbar-nav > .open > a:focus { 87 | color: #144639; 88 | } 89 | } 90 | /* ======================================================================== 91 | Component: sidebar 92 | ========================================================================== */ 93 | .sidebar { 94 | background-color: #3a3f51; 95 | } 96 | .sidebar .nav-heading { 97 | color: #919da8; 98 | } 99 | .sidebar .nav > li > a, 100 | .sidebar .nav > li > .nav-item { 101 | color: #e1e2e3; 102 | } 103 | .sidebar .nav > li > a:focus, 104 | .sidebar .nav > li > .nav-item:focus, 105 | .sidebar .nav > li > a:hover, 106 | .sidebar .nav > li > .nav-item:hover { 107 | color: #2b957a; 108 | } 109 | .sidebar .nav > li > a > em, 110 | .sidebar .nav > li > .nav-item > em { 111 | color: inherits; 112 | } 113 | .sidebar .nav > li.active, 114 | .sidebar .nav > li.open, 115 | .sidebar .nav > li.active > a, 116 | .sidebar .nav > li.open > a, 117 | .sidebar .nav > li.active .nav, 118 | .sidebar .nav > li.open .nav { 119 | background-color: #383d4e; 120 | color: #2b957a; 121 | } 122 | .sidebar .nav > li.active > a > em, 123 | .sidebar .nav > li.open > a > em { 124 | color: #2b957a; 125 | } 126 | .sidebar .nav > li.active { 127 | border-left-color: #2b957a; 128 | } 129 | .sidebar-subnav { 130 | background-color: #3a3f51; 131 | } 132 | .sidebar-subnav > .sidebar-subnav-header { 133 | color: #e1e2e3; 134 | } 135 | .sidebar-subnav > li > a, 136 | .sidebar-subnav > li > .nav-item { 137 | color: #e1e2e3; 138 | } 139 | .sidebar-subnav > li > a:focus, 140 | .sidebar-subnav > li > .nav-item:focus, 141 | .sidebar-subnav > li > a:hover, 142 | .sidebar-subnav > li > .nav-item:hover { 143 | color: #2b957a; 144 | } 145 | .sidebar-subnav > li.active > a, 146 | .sidebar-subnav > li.active > .nav-item { 147 | color: #2b957a; 148 | } 149 | .sidebar-subnav > li.active > a:after, 150 | .sidebar-subnav > li.active > .nav-item:after { 151 | border-color: #2b957a; 152 | background-color: #2b957a; 153 | } 154 | /* ======================================================================== 155 | Component: offsidebar 156 | ========================================================================== */ 157 | .offsidebar { 158 | border-left: 1px solid #cccccc; 159 | background-color: #ffffff; 160 | color: #515253; 161 | } 162 | -------------------------------------------------------------------------------- /static/app/css/theme-g.css: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | Component: layout 3 | ========================================================================== */ 4 | body, 5 | .wrapper > section { 6 | background-color: #f5f7fa; 7 | } 8 | .wrapper > .aside { 9 | background-color: #3a3f51; 10 | } 11 | /* ======================================================================== 12 | Component: top-navbar 13 | ========================================================================== */ 14 | .topnavbar { 15 | background-color: #fff; 16 | } 17 | .topnavbar .navbar-header { 18 | background-color: transparent; 19 | background-image: -webkit-linear-gradient(left, #564aa3 0%, #7266ba 100%); 20 | background-image: -o-linear-gradient(left, #564aa3 0%, #7266ba 100%); 21 | background-image: linear-gradient(to right, #564aa3 0%, #7266ba 100%); 22 | background-repeat: repeat-x; 23 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff564aa3', endColorstr='#ff7266ba', GradientType=1); 24 | } 25 | @media only screen and (min-width: 768px) { 26 | .topnavbar .navbar-header { 27 | background-image: none; 28 | } 29 | } 30 | .topnavbar .navbar-nav > li > .navbar-text { 31 | color: #564aa3; 32 | } 33 | .topnavbar .navbar-nav > li > a, 34 | .topnavbar .navbar-nav > .open > a { 35 | color: #564aa3; 36 | } 37 | .topnavbar .navbar-nav > li > a:hover, 38 | .topnavbar .navbar-nav > .open > a:hover, 39 | .topnavbar .navbar-nav > li > a:focus, 40 | .topnavbar .navbar-nav > .open > a:focus { 41 | color: #312a5d; 42 | } 43 | .topnavbar .navbar-nav > .active > a, 44 | .topnavbar .navbar-nav > .open > a, 45 | .topnavbar .navbar-nav > .active > a:hover, 46 | .topnavbar .navbar-nav > .open > a:hover, 47 | .topnavbar .navbar-nav > .active > a:focus, 48 | .topnavbar .navbar-nav > .open > a:focus { 49 | background-color: transparent; 50 | } 51 | .topnavbar .navbar-nav > li > [data-toggle='navbar-search'] { 52 | color: #ffffff; 53 | } 54 | .topnavbar .nav-wrapper { 55 | background-color: #564aa3; 56 | background-image: -webkit-linear-gradient(left, #564aa3 0%, #7266ba 100%); 57 | background-image: -o-linear-gradient(left, #564aa3 0%, #7266ba 100%); 58 | background-image: linear-gradient(to right, #564aa3 0%, #7266ba 100%); 59 | background-repeat: repeat-x; 60 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff564aa3', endColorstr='#ff7266ba', GradientType=1); 61 | } 62 | @media only screen and (min-width: 768px) { 63 | .topnavbar { 64 | background-color: #564aa3; 65 | background-image: -webkit-linear-gradient(left, #564aa3 0%, #7266ba 100%); 66 | background-image: -o-linear-gradient(left, #564aa3 0%, #7266ba 100%); 67 | background-image: linear-gradient(to right, #564aa3 0%, #7266ba 100%); 68 | background-repeat: repeat-x; 69 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ff564aa3', endColorstr='#ff7266ba', GradientType=1); 70 | } 71 | .topnavbar .navbar-nav > .open > a, 72 | .topnavbar .navbar-nav > .open > a:hover, 73 | .topnavbar .navbar-nav > .open > a:focus { 74 | box-shadow: 0 -3px 0 rgba(255, 255, 255, 0.5) inset; 75 | } 76 | .topnavbar .navbar-nav > li > .navbar-text { 77 | color: #ffffff; 78 | } 79 | .topnavbar .navbar-nav > li > a, 80 | .topnavbar .navbar-nav > .open > a { 81 | color: #ffffff; 82 | } 83 | .topnavbar .navbar-nav > li > a:hover, 84 | .topnavbar .navbar-nav > .open > a:hover, 85 | .topnavbar .navbar-nav > li > a:focus, 86 | .topnavbar .navbar-nav > .open > a:focus { 87 | color: #312a5d; 88 | } 89 | } 90 | /* ======================================================================== 91 | Component: sidebar 92 | ========================================================================== */ 93 | .sidebar { 94 | background-color: #3a3f51; 95 | } 96 | .sidebar .nav-heading { 97 | color: #919da8; 98 | } 99 | .sidebar .nav > li > a, 100 | .sidebar .nav > li > .nav-item { 101 | color: #e1e2e3; 102 | } 103 | .sidebar .nav > li > a:focus, 104 | .sidebar .nav > li > .nav-item:focus, 105 | .sidebar .nav > li > a:hover, 106 | .sidebar .nav > li > .nav-item:hover { 107 | color: #9289ca; 108 | } 109 | .sidebar .nav > li > a > em, 110 | .sidebar .nav > li > .nav-item > em { 111 | color: inherits; 112 | } 113 | .sidebar .nav > li.active, 114 | .sidebar .nav > li.open, 115 | .sidebar .nav > li.active > a, 116 | .sidebar .nav > li.open > a, 117 | .sidebar .nav > li.active .nav, 118 | .sidebar .nav > li.open .nav { 119 | background-color: #383d4e; 120 | color: #9289ca; 121 | } 122 | .sidebar .nav > li.active > a > em, 123 | .sidebar .nav > li.open > a > em { 124 | color: #9289ca; 125 | } 126 | .sidebar .nav > li.active { 127 | border-left-color: #9289ca; 128 | } 129 | .sidebar-subnav { 130 | background-color: #3a3f51; 131 | } 132 | .sidebar-subnav > .sidebar-subnav-header { 133 | color: #e1e2e3; 134 | } 135 | .sidebar-subnav > li > a, 136 | .sidebar-subnav > li > .nav-item { 137 | color: #e1e2e3; 138 | } 139 | .sidebar-subnav > li > a:focus, 140 | .sidebar-subnav > li > .nav-item:focus, 141 | .sidebar-subnav > li > a:hover, 142 | .sidebar-subnav > li > .nav-item:hover { 143 | color: #9289ca; 144 | } 145 | .sidebar-subnav > li.active > a, 146 | .sidebar-subnav > li.active > .nav-item { 147 | color: #9289ca; 148 | } 149 | .sidebar-subnav > li.active > a:after, 150 | .sidebar-subnav > li.active > .nav-item:after { 151 | border-color: #9289ca; 152 | background-color: #9289ca; 153 | } 154 | /* ======================================================================== 155 | Component: offsidebar 156 | ========================================================================== */ 157 | .offsidebar { 158 | border-left: 1px solid #cccccc; 159 | background-color: #ffffff; 160 | color: #515253; 161 | } 162 | -------------------------------------------------------------------------------- /static/app/css/theme-h.css: -------------------------------------------------------------------------------- 1 | /* ======================================================================== 2 | Component: layout 3 | ========================================================================== */ 4 | body, 5 | .wrapper > section { 6 | background-color: #f5f7fa; 7 | } 8 | .wrapper > .aside { 9 | background-color: #3a3f51; 10 | } 11 | /* ======================================================================== 12 | Component: top-navbar 13 | ========================================================================== */ 14 | .topnavbar { 15 | background-color: #fff; 16 | } 17 | .topnavbar .navbar-header { 18 | background-color: transparent; 19 | background-image: -webkit-linear-gradient(left, #ec2121 0%, #f05050 100%); 20 | background-image: -o-linear-gradient(left, #ec2121 0%, #f05050 100%); 21 | background-image: linear-gradient(to right, #ec2121 0%, #f05050 100%); 22 | background-repeat: repeat-x; 23 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffec2121', endColorstr='#fff05050', GradientType=1); 24 | } 25 | @media only screen and (min-width: 768px) { 26 | .topnavbar .navbar-header { 27 | background-image: none; 28 | } 29 | } 30 | .topnavbar .navbar-nav > li > .navbar-text { 31 | color: #ec2121; 32 | } 33 | .topnavbar .navbar-nav > li > a, 34 | .topnavbar .navbar-nav > .open > a { 35 | color: #ec2121; 36 | } 37 | .topnavbar .navbar-nav > li > a:hover, 38 | .topnavbar .navbar-nav > .open > a:hover, 39 | .topnavbar .navbar-nav > li > a:focus, 40 | .topnavbar .navbar-nav > .open > a:focus { 41 | color: #9a0d0d; 42 | } 43 | .topnavbar .navbar-nav > .active > a, 44 | .topnavbar .navbar-nav > .open > a, 45 | .topnavbar .navbar-nav > .active > a:hover, 46 | .topnavbar .navbar-nav > .open > a:hover, 47 | .topnavbar .navbar-nav > .active > a:focus, 48 | .topnavbar .navbar-nav > .open > a:focus { 49 | background-color: transparent; 50 | } 51 | .topnavbar .navbar-nav > li > [data-toggle='navbar-search'] { 52 | color: #ffffff; 53 | } 54 | .topnavbar .nav-wrapper { 55 | background-color: #ec2121; 56 | background-image: -webkit-linear-gradient(left, #ec2121 0%, #f05050 100%); 57 | background-image: -o-linear-gradient(left, #ec2121 0%, #f05050 100%); 58 | background-image: linear-gradient(to right, #ec2121 0%, #f05050 100%); 59 | background-repeat: repeat-x; 60 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffec2121', endColorstr='#fff05050', GradientType=1); 61 | } 62 | @media only screen and (min-width: 768px) { 63 | .topnavbar { 64 | background-color: #ec2121; 65 | background-image: -webkit-linear-gradient(left, #ec2121 0%, #f05050 100%); 66 | background-image: -o-linear-gradient(left, #ec2121 0%, #f05050 100%); 67 | background-image: linear-gradient(to right, #ec2121 0%, #f05050 100%); 68 | background-repeat: repeat-x; 69 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffec2121', endColorstr='#fff05050', GradientType=1); 70 | } 71 | .topnavbar .navbar-nav > .open > a, 72 | .topnavbar .navbar-nav > .open > a:hover, 73 | .topnavbar .navbar-nav > .open > a:focus { 74 | box-shadow: 0 -3px 0 rgba(255, 255, 255, 0.5) inset; 75 | } 76 | .topnavbar .navbar-nav > li > .navbar-text { 77 | color: #ffffff; 78 | } 79 | .topnavbar .navbar-nav > li > a, 80 | .topnavbar .navbar-nav > .open > a { 81 | color: #ffffff; 82 | } 83 | .topnavbar .navbar-nav > li > a:hover, 84 | .topnavbar .navbar-nav > .open > a:hover, 85 | .topnavbar .navbar-nav > li > a:focus, 86 | .topnavbar .navbar-nav > .open > a:focus { 87 | color: #9a0d0d; 88 | } 89 | } 90 | /* ======================================================================== 91 | Component: sidebar 92 | ========================================================================== */ 93 | .sidebar { 94 | background-color: #3a3f51; 95 | } 96 | .sidebar .nav-heading { 97 | color: #919da8; 98 | } 99 | .sidebar .nav > li > a, 100 | .sidebar .nav > li > .nav-item { 101 | color: #e1e2e3; 102 | } 103 | .sidebar .nav > li > a:focus, 104 | .sidebar .nav > li > .nav-item:focus, 105 | .sidebar .nav > li > a:hover, 106 | .sidebar .nav > li > .nav-item:hover { 107 | color: #f05050; 108 | } 109 | .sidebar .nav > li > a > em, 110 | .sidebar .nav > li > .nav-item > em { 111 | color: inherits; 112 | } 113 | .sidebar .nav > li.active, 114 | .sidebar .nav > li.open, 115 | .sidebar .nav > li.active > a, 116 | .sidebar .nav > li.open > a, 117 | .sidebar .nav > li.active .nav, 118 | .sidebar .nav > li.open .nav { 119 | background-color: #383d4e; 120 | color: #f05050; 121 | } 122 | .sidebar .nav > li.active > a > em, 123 | .sidebar .nav > li.open > a > em { 124 | color: #f05050; 125 | } 126 | .sidebar .nav > li.active { 127 | border-left-color: #f05050; 128 | } 129 | .sidebar-subnav { 130 | background-color: #3a3f51; 131 | } 132 | .sidebar-subnav > .sidebar-subnav-header { 133 | color: #e1e2e3; 134 | } 135 | .sidebar-subnav > li > a, 136 | .sidebar-subnav > li > .nav-item { 137 | color: #e1e2e3; 138 | } 139 | .sidebar-subnav > li > a:focus, 140 | .sidebar-subnav > li > .nav-item:focus, 141 | .sidebar-subnav > li > a:hover, 142 | .sidebar-subnav > li > .nav-item:hover { 143 | color: #f05050; 144 | } 145 | .sidebar-subnav > li.active > a, 146 | .sidebar-subnav > li.active > .nav-item { 147 | color: #f05050; 148 | } 149 | .sidebar-subnav > li.active > a:after, 150 | .sidebar-subnav > li.active > .nav-item:after { 151 | border-color: #f05050; 152 | background-color: #f05050; 153 | } 154 | /* ======================================================================== 155 | Component: offsidebar 156 | ========================================================================== */ 157 | .offsidebar { 158 | border-left: 1px solid #cccccc; 159 | background-color: #ffffff; 160 | color: #515253; 161 | } 162 | -------------------------------------------------------------------------------- /static/app/js/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/favicon.ico -------------------------------------------------------------------------------- /static/images/dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/images/dark.png -------------------------------------------------------------------------------- /static/images/hospital.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/images/hospital.png -------------------------------------------------------------------------------- /static/images/hospital1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/images/hospital1.png -------------------------------------------------------------------------------- /static/images/light.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/images/light.png -------------------------------------------------------------------------------- /static/js/appointment.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | 3 | var table 4 | 5 | 6 | function addAppointment(data) { 7 | 8 | var settings = { 9 | "async": true, 10 | "crossDomain": true, 11 | "url": "appointment", 12 | "method": "POST", 13 | "headers": { 14 | "content-type": "application/json", 15 | "cache-control": "no-cache", 16 | "postman-token": "2612534b-9ccd-ab7e-1f73-659029967199" 17 | }, 18 | "processData": false, 19 | "data": JSON.stringify(data) 20 | } 21 | 22 | $.ajax(settings).done(function (response) { 23 | $.notify("Appointment Added Successfully", {"status":"success"}); 24 | 25 | $('.modal.in').modal('hide') 26 | table.destroy(); 27 | $('#datatable4 tbody').empty(); // empty in case the columns change 28 | getAppointment() 29 | }); 30 | 31 | } 32 | 33 | function deleteAppointment(id) { 34 | var settings = { 35 | "async": true, 36 | "crossDomain": true, 37 | "url": "appointment/" + id, 38 | "method": "DELETE", 39 | "headers": { 40 | "cache-control": "no-cache", 41 | "postman-token": "28ea8360-5af0-1d11-e595-485a109760f2" 42 | } 43 | } 44 | 45 | swal({ 46 | title: "Are you sure?", 47 | text: "You will not be able to recover this data", 48 | type: "warning", 49 | showCancelButton: true, 50 | confirmButtonColor: "#DD6B55", 51 | confirmButtonText: "Yes, delete it!", 52 | closeOnConfirm: false 53 | }, function() { 54 | $.ajax(settings).done(function (response) { 55 | swal("Deleted!", "Appointment has been deleted.", "success"); 56 | table.destroy(); 57 | $('#datatable4 tbody').empty(); // empty in case the columns change 58 | getAppointment() 59 | }); 60 | 61 | 62 | }); 63 | 64 | } 65 | 66 | 67 | 68 | function getAppointment() { 69 | 70 | var settings = { 71 | "async": true, 72 | "crossDomain": true, 73 | "url": "appointment", 74 | "method": "GET", 75 | "headers": { 76 | "cache-control": "no-cache" 77 | } 78 | } 79 | 80 | $.ajax(settings).done(function (response) { 81 | 82 | for(i=0;iDelete'; 109 | } 110 | } 111 | ] 112 | }); 113 | $('#datatable4 tbody').on('click', '.delete-btn', function () { 114 | var data = table.row($(this).parents('tr')).data(); 115 | console.log(data) 116 | deleteAppointment(data.app_id) 117 | 118 | }); 119 | 120 | 121 | }); 122 | 123 | 124 | } 125 | 126 | 127 | 128 | 129 | $("#addpatient").click(function () { 130 | $('#detailform input,textarea').val("") 131 | $('#myModal').modal().one('shown.bs.modal', function (e) { 132 | 133 | $("#doctor_select").html(doctorSelect) 134 | $("#patient_select").html(patientSelect) 135 | 136 | $(".form_datetime").datetimepicker({ 137 | format: 'yyyy-mm-dd hh:ii:ss', 138 | startDate:new Date(), 139 | initialDate: new Date() 140 | }); 141 | console.log("innn") 142 | $("#savethepatient").off("click").on("click", function(e) { 143 | console.log("inn") 144 | var instance = $('#detailform').parsley(); 145 | instance.validate() 146 | if(instance.isValid()){ 147 | jsondata = $('#detailform').serializeJSON(); 148 | addAppointment(jsondata) 149 | } 150 | 151 | }) 152 | 153 | }) 154 | 155 | 156 | 157 | }) 158 | 159 | 160 | var doctorSelect="" 161 | function getDoctor() { 162 | 163 | var settings = { 164 | "async": true, 165 | "crossDomain": true, 166 | "url": "doctor", 167 | "method": "GET", 168 | "headers": { 169 | "cache-control": "no-cache" 170 | } 171 | } 172 | 173 | $.ajax(settings).done(function (response) { 174 | 175 | for(i=0;i"+response[i].doc_fullname+"" 179 | } 180 | 181 | 182 | }) 183 | } 184 | var patientSelect="" 185 | function getPatient() { 186 | 187 | var settings = { 188 | "async": true, 189 | "crossDomain": true, 190 | "url": "patient", 191 | "method": "GET", 192 | "headers": { 193 | "cache-control": "no-cache" 194 | } 195 | } 196 | 197 | $.ajax(settings).done(function (response) { 198 | for(i=0;i"+response[i].pat_fullname+"" 201 | } 202 | 203 | }) 204 | } 205 | 206 | getDoctor() 207 | getPatient() 208 | getAppointment() 209 | }) -------------------------------------------------------------------------------- /static/js/common.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/js/common.js -------------------------------------------------------------------------------- /static/js/department.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | 3 | var table 4 | 5 | 6 | function adddepartment(data) { 7 | 8 | var settings = { 9 | "async": true, 10 | "crossDomain": true, 11 | "url": "department", 12 | "method": "POST", 13 | "headers": { 14 | "content-type": "application/json", 15 | "cache-control": "no-cache", 16 | "postman-token": "2612534b-9ccd-ab7e-1f73-659029967199" 17 | }, 18 | "processData": false, 19 | "data": JSON.stringify(data) 20 | } 21 | 22 | $.ajax(settings).done(function (response) { 23 | $('.modal.in').modal('hide') 24 | $.notify("Department Added Successfully", { "status": "success" }); 25 | table.destroy(); 26 | $('#datatable4 tbody').empty(); // empty in case the columns change 27 | getdepartment() 28 | }); 29 | 30 | } 31 | 32 | function updatedepartment(data, department_id) { 33 | var settings = { 34 | "async": true, 35 | "crossDomain": true, 36 | "url": "department/" + department_id, 37 | "method": "PUT", 38 | "headers": { 39 | "content-type": "application/json", 40 | "cache-control": "no-cache" 41 | }, 42 | "processData": false, 43 | "data": JSON.stringify(data) 44 | } 45 | 46 | $.ajax(settings).done(function (response) { 47 | $('.modal.in').modal('hide') 48 | $.notify("Department Updated Successfully", { "status": "success" }); 49 | table.destroy(); 50 | $('#datatable4 tbody').empty(); // empty in case the columns change 51 | getdepartment() 52 | }); 53 | 54 | 55 | } 56 | 57 | function getdepartment() { 58 | 59 | var settings = { 60 | "async": true, 61 | "crossDomain": true, 62 | "url": "department", 63 | "method": "GET", 64 | "headers": { 65 | "cache-control": "no-cache" 66 | } 67 | } 68 | 69 | $.ajax(settings).done(function (response) { 70 | 71 | 72 | 73 | table = $('#datatable4').DataTable({ 74 | "bDestroy": true, 75 | 'paging': true, // Table pagination 76 | 'ordering': true, // Column ordering 77 | 'info': true, // Bottom left status text 78 | aaData: response, 79 | "aaSorting": [], 80 | aoColumns: [ 81 | { 82 | mData: 'department_id' 83 | }, 84 | { 85 | mData: 'name' 86 | }, 87 | { 88 | mData: 'head_id' 89 | }, 90 | { 91 | mData: 'doc_first_name' 92 | }, 93 | { 94 | mData: 'doc_last_name' 95 | }, 96 | { 97 | mRender: function (o) { 98 | return ''; 99 | } 100 | } 101 | ] 102 | }); 103 | $('.btn-edit').one("click", function (e) { 104 | var data = table.row($(this).parents('tr')).data(); 105 | $('#myModal').modal().one('shown.bs.modal', function (e) { 106 | for (var key in data) { 107 | $("[name=" + key + "]").val(data[key]) 108 | } 109 | $("#savethedepartment").off("click").on("click", function (e) { 110 | var instance = $('#detailform').parsley(); 111 | instance.validate() 112 | console.log(instance.isValid()) 113 | if (instance.isValid()) { 114 | jsondata = $('#detailform').serializeJSON(); 115 | updatedepartment(jsondata, data.department_id) 116 | } 117 | 118 | }) 119 | }) 120 | 121 | 122 | 123 | }); 124 | 125 | }); 126 | 127 | 128 | } 129 | 130 | $("#adddepartment").click(function () { 131 | $('#detailform input,textarea').val("") 132 | $('#myModal').modal().one('shown.bs.modal', function (e) { 133 | 134 | console.log('innn') 135 | $("#savethedepartment").off("click").on("click", function (e) { 136 | console.log("inn") 137 | var instance = $('#detailform').parsley(); 138 | instance.validate() 139 | if (instance.isValid()) { 140 | jsondata = $('#detailform').serializeJSON(); 141 | adddepartment(jsondata) 142 | } 143 | 144 | }) 145 | 146 | }) 147 | 148 | 149 | 150 | }) 151 | 152 | 153 | getdepartment() 154 | }) 155 | -------------------------------------------------------------------------------- /static/js/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/js/doctor.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | 3 | var table 4 | 5 | 6 | function addDoctor(data) { 7 | 8 | var settings = { 9 | "async": true, 10 | "crossDomain": true, 11 | "url": "doctor", 12 | "method": "POST", 13 | "headers": { 14 | "content-type": "application/json", 15 | "cache-control": "no-cache", 16 | "postman-token": "2612534b-9ccd-ab7e-1f73-659029967199" 17 | }, 18 | "processData": false, 19 | "data": JSON.stringify(data) 20 | } 21 | 22 | $.ajax(settings).done(function (response) { 23 | $('.modal.in').modal('hide') 24 | $.notify("Doctor Added Successfully", { "status": "success" }); 25 | table.destroy(); 26 | $('#datatable4 tbody').empty(); // empty in case the columns change 27 | getDoctor() 28 | }); 29 | 30 | } 31 | 32 | function deleteDoctor(id) { 33 | var settings = { 34 | "async": true, 35 | "crossDomain": true, 36 | "url": "doctor/" + id, 37 | "method": "DELETE", 38 | "headers": { 39 | "cache-control": "no-cache", 40 | "postman-token": "28ea8360-5af0-1d11-e595-485a109760f2" 41 | } 42 | } 43 | 44 | swal({ 45 | title: "Are you sure?", 46 | text: "You will not be able to recover this data", 47 | type: "warning", 48 | showCancelButton: true, 49 | confirmButtonColor: "#DD6B55", 50 | confirmButtonText: "Yes, delete it!", 51 | closeOnConfirm: false 52 | }, function () { 53 | $.ajax(settings).done(function (response) { 54 | swal("Deleted!", "Doctor has been deleted.", "success"); 55 | table.destroy(); 56 | $('#datatable4 tbody').empty(); // empty in case the columns change 57 | getDoctor() 58 | }); 59 | 60 | 61 | }); 62 | 63 | } 64 | 65 | function updateDoctor(data, id) { 66 | var settings = { 67 | "async": true, 68 | "crossDomain": true, 69 | "url": "doctor/" + id, 70 | "method": "PUT", 71 | "headers": { 72 | "content-type": "application/json", 73 | "cache-control": "no-cache" 74 | }, 75 | "processData": false, 76 | "data": JSON.stringify(data) 77 | } 78 | 79 | $.ajax(settings).done(function (response) { 80 | $.notify("Doctor Updated Successfully", { "status": "success" }); 81 | $('.modal.in').modal('hide') 82 | table.destroy(); 83 | $('#datatable4 tbody').empty(); // empty in case the columns change 84 | getDoctor() 85 | }); 86 | 87 | 88 | } 89 | 90 | function getDoctor() { 91 | 92 | var settings = { 93 | "async": true, 94 | "crossDomain": true, 95 | "url": "doctor", 96 | "method": "GET", 97 | "headers": { 98 | "cache-control": "no-cache" 99 | } 100 | } 101 | 102 | $.ajax(settings).done(function (response) { 103 | 104 | 105 | 106 | table = $('#datatable4').DataTable({ 107 | "bDestroy": true, 108 | 'paging': true, // Table pagination 109 | 'ordering': true, // Column ordering 110 | 'info': true, // Bottom left status text 111 | aaData: response, 112 | "aaSorting": [], 113 | aoColumns: [ 114 | { 115 | mData: 'doc_id' 116 | }, 117 | { 118 | mData: 'doc_first_name' 119 | }, 120 | { 121 | mData: 'doc_last_name' 122 | }, 123 | { 124 | mData: 'doc_address' 125 | }, 126 | { 127 | mData: 'doc_ph_no' 128 | }, 129 | { 130 | mRender: function (o) { 131 | return ''; 132 | } 133 | }, 134 | { 135 | mRender: function (o) { 136 | return ''; 137 | } 138 | } 139 | ] 140 | }); 141 | $('#datatable4 tbody').on('click', '.delete-btn', function () { 142 | var data = table.row($(this).parents('tr')).data(); 143 | console.log(data) 144 | deleteDoctor(data.doc_id) 145 | 146 | }); 147 | $('.btn-edit').one("click", function (e) { 148 | var data = table.row($(this).parents('tr')).data(); 149 | $('#myModal').modal().one('shown.bs.modal', function (e) { 150 | for (var key in data) { 151 | $("[name=" + key + "]").val(data[key]) 152 | } 153 | $("#savethepatient").off("click").on("click", function (e) { 154 | var instance = $('#detailform').parsley(); 155 | instance.validate() 156 | console.log(instance.isValid()) 157 | if (instance.isValid()) { 158 | jsondata = $('#detailform').serializeJSON(); 159 | updateDoctor(jsondata, data.doc_id) 160 | } 161 | 162 | }) 163 | }) 164 | 165 | 166 | 167 | }); 168 | 169 | }); 170 | 171 | 172 | } 173 | 174 | 175 | 176 | 177 | $("#addpatient").click(function () { 178 | $('#detailform input,textarea').val("") 179 | $('#myModal').modal().one('shown.bs.modal', function (e) { 180 | 181 | console.log("innn") 182 | $("#savethepatient").off("click").on("click", function (e) { 183 | console.log("inn") 184 | var instance = $('#detailform').parsley(); 185 | instance.validate() 186 | if (instance.isValid()) { 187 | jsondata = $('#detailform').serializeJSON(); 188 | addDoctor(jsondata) 189 | } 190 | 191 | }) 192 | 193 | }) 194 | 195 | 196 | 197 | }) 198 | 199 | 200 | getDoctor() 201 | }) 202 | -------------------------------------------------------------------------------- /static/js/home.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | 3 | var settings = { 4 | "async": true, 5 | "crossDomain": true, 6 | "url": "common", 7 | "method": "GET", 8 | "headers": { 9 | "cache-control": "no-cache" 10 | } 11 | } 12 | 13 | $.ajax(settings).done(function (response) { 14 | console.log(response); 15 | $('#patientcount').text(response.patient) 16 | $('#doctorcount').text(response.doctor) 17 | $('#appointmentcount').text(response.appointment) 18 | $('#medicationcount').text(response.medication) 19 | $('#departmentcount').text(response.department) 20 | $('#nursecount').text(response.nurse) 21 | $('#roomcount').text(response.room) 22 | $('#proccount').text(response.procedure) 23 | $('#prescribescount').text(response.prescribes) 24 | $('#undergoescount').text(response.undergoes) 25 | }); 26 | 27 | 28 | }) 29 | -------------------------------------------------------------------------------- /static/js/lib/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/js/medication.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | 3 | var table 4 | 5 | 6 | function addMedication(data) { 7 | 8 | var settings = { 9 | "async": true, 10 | "crossDomain": true, 11 | "url": "medication", 12 | "method": "POST", 13 | "headers": { 14 | "content-type": "application/json", 15 | "cache-control": "no-cache", 16 | "postman-token": "2612534b-9ccd-ab7e-1f73-659029967199" 17 | }, 18 | "processData": false, 19 | "data": JSON.stringify(data) 20 | } 21 | 22 | $.ajax(settings).done(function (response) { 23 | $('.modal.in').modal('hide') 24 | $.notify("Medication Added Successfully", {"status":"success"}); 25 | table.destroy(); 26 | $('#datatable4 tbody').empty(); // empty in case the columns change 27 | getMedication() 28 | }); 29 | 30 | } 31 | 32 | function deleteMedication(code) { 33 | var settings = { 34 | "async": true, 35 | "crossDomain": true, 36 | "url": "medication/" + code, 37 | "method": "DELETE", 38 | "headers": { 39 | "cache-control": "no-cache", 40 | "postman-token": "28ea8360-5af0-1d11-e595-485a109760f2" 41 | } 42 | } 43 | 44 | swal({ 45 | title: "Are you sure?", 46 | text: "You will not be able to recover this data", 47 | type: "warning", 48 | showCancelButton: true, 49 | confirmButtonColor: "#DD6B55", 50 | confirmButtonText: "Yes, delete it!", 51 | closeOnConfirm: false 52 | }, function() { 53 | $.ajax(settings).done(function (response) { 54 | swal("Deleted!", "Medicince has been deleted.", "success"); 55 | table.destroy(); 56 | $('#datatable4 tbody').empty(); // empty in case the columns change 57 | getMedication() 58 | }); 59 | 60 | 61 | }); 62 | 63 | } 64 | 65 | function updateMedication(data, code) { 66 | var settings = { 67 | "async": true, 68 | "crossDomain": true, 69 | "url": "medication/" + code, 70 | "method": "PUT", 71 | "headers": { 72 | "content-type": "application/json", 73 | "cache-control": "no-cache" 74 | }, 75 | "processData": false, 76 | "data": JSON.stringify(data) 77 | } 78 | 79 | $.ajax(settings).done(function (response) { 80 | $('.modal.in').modal('hide') 81 | $.notify("Medicine Updated Successfully", {"status":"success"}); 82 | table.destroy(); 83 | $('#datatable4 tbody').empty(); // empty in case the columns change 84 | getMedication() 85 | }); 86 | 87 | 88 | } 89 | 90 | function getMedication() { 91 | 92 | var settings = { 93 | "async": true, 94 | "crossDomain": true, 95 | "url": "medication", 96 | "method": "GET", 97 | "headers": { 98 | "cache-control": "no-cache" 99 | } 100 | } 101 | 102 | $.ajax(settings).done(function (response) { 103 | 104 | 105 | 106 | table = $('#datatable4').DataTable({ 107 | "bDestroy": true, 108 | 'paging': true, // Table pagination 109 | 'ordering': true, // Column ordering 110 | 'info': true, // Bottom left status text 111 | aaData: response, 112 | "aaSorting": [], 113 | aoColumns: [ 114 | { 115 | mData: 'code' 116 | }, 117 | { 118 | mData: 'name' 119 | }, 120 | { 121 | mData: 'brand' 122 | }, 123 | { 124 | mData: 'description' 125 | }, 126 | { 127 | mRender: function (o) { 128 | return ''; 129 | } 130 | }, 131 | { 132 | mRender: function (o) { 133 | return ''; 134 | } 135 | } 136 | ] 137 | }); 138 | $('#datatable4 tbody').on('click', '.delete-btn', function () { 139 | var data = table.row($(this).parents('tr')).data(); 140 | console.log(data) 141 | deleteMedication(data.code) 142 | 143 | }); 144 | $('.btn-edit').one("click", function(e) { 145 | var data = table.row($(this).parents('tr')).data(); 146 | $('#myModal').modal().one('shown.bs.modal', function (e) { 147 | for (var key in data) { 148 | $("[name=" + key + "]").val(data[key]) 149 | } 150 | $("#savethemedication").off("click").on("click", function(e) { 151 | var instance = $('#detailform').parsley(); 152 | instance.validate() 153 | console.log(instance.isValid()) 154 | if(instance.isValid()){ 155 | jsondata = $('#detailform').serializeJSON(); 156 | updateMedication(jsondata, data.code) 157 | } 158 | 159 | }) 160 | }) 161 | 162 | 163 | 164 | }); 165 | 166 | }); 167 | 168 | 169 | } 170 | 171 | 172 | 173 | 174 | $("#addMedication").click(function () { 175 | $('#detailform input,textarea').val("") 176 | $('#myModal').modal().one('shown.bs.modal', function (e) { 177 | 178 | console.log('innn') 179 | $("#savethemedication").off("click").on("click", function(e) { 180 | console.log("inn") 181 | var instance = $('#detailform').parsley(); 182 | instance.validate() 183 | if(instance.isValid()){ 184 | jsondata = $('#detailform').serializeJSON(); 185 | addMedication(jsondata) 186 | } 187 | 188 | }) 189 | 190 | }) 191 | 192 | 193 | 194 | }) 195 | 196 | 197 | getMedication() 198 | }) 199 | -------------------------------------------------------------------------------- /static/js/nurse.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | 3 | var table 4 | 5 | 6 | function addNurse(data) { 7 | 8 | var settings = { 9 | "async": true, 10 | "crossDomain": true, 11 | "url": "nurse", 12 | "method": "POST", 13 | "headers": { 14 | "content-type": "application/json", 15 | "cache-control": "no-cache", 16 | "postman-token": "2612534b-9ccd-ab7e-1f73-659029967199" 17 | }, 18 | "processData": false, 19 | "data": JSON.stringify(data) 20 | } 21 | 22 | $.ajax(settings).done(function (response) { 23 | $('.modal.in').modal('hide') 24 | $.notify("Nurse Added Successfully", { "status": "success" }); 25 | table.destroy(); 26 | $('#datatable4 tbody').empty(); // empty in case the columns change 27 | getNurse() 28 | }); 29 | 30 | } 31 | 32 | function deleteNurse(id) { 33 | var settings = { 34 | "async": true, 35 | "crossDomain": true, 36 | "url": "nurse/" + id, 37 | "method": "DELETE", 38 | "headers": { 39 | "cache-control": "no-cache", 40 | "postman-token": "28ea8360-5af0-1d11-e595-485a109760f2" 41 | } 42 | } 43 | 44 | swal({ 45 | title: "Are you sure?", 46 | text: "You will not be able to recover this data", 47 | type: "warning", 48 | showCancelButton: true, 49 | confirmButtonColor: "#DD6B55", 50 | confirmButtonText: "Yes, delete it!", 51 | closeOnConfirm: false 52 | }, function () { 53 | $.ajax(settings).done(function (response) { 54 | swal("Deleted!", "Nurse has been deleted.", "success"); 55 | table.destroy(); 56 | $('#datatable4 tbody').empty(); // empty in case the columns change 57 | getNurse() 58 | }); 59 | 60 | 61 | }); 62 | 63 | } 64 | 65 | function updateNurse(data, id) { 66 | var settings = { 67 | "async": true, 68 | "crossDomain": true, 69 | "url": "nurse/" + id, 70 | "method": "PUT", 71 | "headers": { 72 | "content-type": "application/json", 73 | "cache-control": "no-cache" 74 | }, 75 | "processData": false, 76 | "data": JSON.stringify(data) 77 | } 78 | 79 | $.ajax(settings).done(function (response) { 80 | $.notify("Nurse Updated Successfully", { "status": "success" }); 81 | $('.modal.in').modal('hide') 82 | table.destroy(); 83 | $('#datatable4 tbody').empty(); // empty in case the columns change 84 | getNurse() 85 | }); 86 | 87 | 88 | } 89 | 90 | function getNurse() { 91 | 92 | var settings = { 93 | "async": true, 94 | "crossDomain": true, 95 | "url": "nurse", 96 | "method": "GET", 97 | "headers": { 98 | "cache-control": "no-cache" 99 | } 100 | } 101 | 102 | $.ajax(settings).done(function (response) { 103 | 104 | 105 | 106 | table = $('#datatable4').DataTable({ 107 | "bDestroy": true, 108 | 'paging': true, // Table pagination 109 | 'ordering': true, // Column ordering 110 | 'info': true, // Bottom left status text 111 | aaData: response, 112 | "aaSorting": [], 113 | aoColumns: [ 114 | { 115 | mData: 'nur_id' 116 | }, 117 | { 118 | mData: 'nur_first_name' 119 | }, 120 | { 121 | mData: 'nur_last_name' 122 | }, 123 | { 124 | mData: 'nur_address' 125 | }, 126 | { 127 | mData: 'nur_ph_no' 128 | }, 129 | { 130 | mRender: function (o) { 131 | return ''; 132 | } 133 | }, 134 | { 135 | mRender: function (o) { 136 | return ''; 137 | } 138 | } 139 | ] 140 | }); 141 | $('#datatable4 tbody').on('click', '.delete-btn', function () { 142 | var data = table.row($(this).parents('tr')).data(); 143 | console.log(data) 144 | deleteNurse(data.nur_id) 145 | 146 | }); 147 | $('.btn-edit').one("click", function (e) { 148 | var data = table.row($(this).parents('tr')).data(); 149 | $('#myModal').modal().one('shown.bs.modal', function (e) { 150 | for (var key in data) { 151 | $("[name=" + key + "]").val(data[key]) 152 | } 153 | $("#savethenurse").off("click").on("click", function (e) { 154 | var instance = $('#detailform').parsley(); 155 | instance.validate() 156 | console.log(instance.isValid()) 157 | if (instance.isValid()) { 158 | jsondata = $('#detailform').serializeJSON(); 159 | updateNurse(jsondata, data.nur_id) 160 | } 161 | 162 | }) 163 | }) 164 | 165 | 166 | 167 | }); 168 | 169 | }); 170 | 171 | 172 | } 173 | 174 | 175 | 176 | 177 | $("#addNurse").click(function () { 178 | $('#detailform input,textarea').val("") 179 | $('#myModal').modal().one('shown.bs.modal', function (e) { 180 | 181 | // console.log('innn') 182 | $("#savethenurse").off("click").on("click", function (e) { 183 | console.log("inn") 184 | var instance = $('#detailform').parsley(); 185 | instance.validate() 186 | if (instance.isValid()) { 187 | jsondata = $('#detailform').serializeJSON(); 188 | addNurse(jsondata) 189 | } 190 | 191 | }) 192 | 193 | }) 194 | 195 | 196 | 197 | }) 198 | 199 | 200 | getNurse() 201 | }) -------------------------------------------------------------------------------- /static/js/patient.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | 3 | var table 4 | 5 | 6 | function addPatient(data) { 7 | 8 | var settings = { 9 | "async": true, 10 | "crossDomain": true, 11 | "url": "patient", 12 | "method": "POST", 13 | "headers": { 14 | "content-type": "application/json", 15 | "cache-control": "no-cache", 16 | "postman-token": "2612534b-9ccd-ab7e-1f73-659029967199" 17 | }, 18 | "processData": false, 19 | "data": JSON.stringify(data) 20 | } 21 | 22 | $.ajax(settings).done(function (response) { 23 | $('.modal.in').modal('hide') 24 | $.notify("Patient Added Successfully", { "status": "success" }); 25 | table.destroy(); 26 | $('#datatable4 tbody').empty(); // empty in case the columns change 27 | getPatient() 28 | }); 29 | 30 | } 31 | 32 | function deletePatient(id) { 33 | var settings = { 34 | "async": true, 35 | "crossDomain": true, 36 | "url": "patient/" + id, 37 | "method": "DELETE", 38 | "headers": { 39 | "cache-control": "no-cache", 40 | "postman-token": "28ea8360-5af0-1d11-e595-485a109760f2" 41 | } 42 | } 43 | 44 | swal({ 45 | title: "Are you sure?", 46 | text: "You will not be able to recover this data", 47 | type: "warning", 48 | showCancelButton: true, 49 | confirmButtonColor: "#DD6B55", 50 | confirmButtonText: "Yes, delete it!", 51 | closeOnConfirm: false 52 | }, function () { 53 | $.ajax(settings).done(function (response) { 54 | swal("Deleted!", "Patient has been deleted.", "success"); 55 | table.destroy(); 56 | $('#datatable4 tbody').empty(); // empty in case the columns change 57 | getPatient() 58 | }); 59 | 60 | 61 | }); 62 | 63 | } 64 | 65 | function updatePatient(data, id) { 66 | var settings = { 67 | "async": true, 68 | "crossDomain": true, 69 | "url": "patient/" + id, 70 | "method": "PUT", 71 | "headers": { 72 | "content-type": "application/json", 73 | "cache-control": "no-cache" 74 | }, 75 | "processData": false, 76 | "data": JSON.stringify(data) 77 | } 78 | 79 | $.ajax(settings).done(function (response) { 80 | $('.modal.in').modal('hide') 81 | $.notify("Patient Updated Successfully", { "status": "success" }); 82 | table.destroy(); 83 | $('#datatable4 tbody').empty(); // empty in case the columns change 84 | getPatient() 85 | }); 86 | 87 | 88 | } 89 | 90 | function getPatient() { 91 | 92 | var settings = { 93 | "async": true, 94 | "crossDomain": true, 95 | "url": "patient", 96 | "method": "GET", 97 | "headers": { 98 | "cache-control": "no-cache" 99 | } 100 | } 101 | 102 | $.ajax(settings).done(function (response) { 103 | 104 | 105 | 106 | table = $('#datatable4').DataTable({ 107 | "bDestroy": true, 108 | 'paging': true, // Table pagination 109 | 'ordering': true, // Column ordering 110 | 'info': true, // Bottom left status text 111 | aaData: response, 112 | "aaSorting": [], 113 | aoColumns: [ 114 | { 115 | mData: 'pat_id' 116 | }, 117 | { 118 | mData: 'pat_first_name' 119 | }, 120 | { 121 | mData: 'pat_last_name' 122 | }, 123 | { 124 | mData: 'pat_insurance_no' 125 | }, 126 | { 127 | mData: 'pat_address' 128 | }, 129 | { 130 | mData: 'pat_ph_no' 131 | }, 132 | { 133 | mRender: function (o) { 134 | return ''; 135 | } 136 | }, 137 | { 138 | mRender: function (o) { 139 | return ''; 140 | } 141 | } 142 | ] 143 | }); 144 | $('#datatable4 tbody').on('click', '.delete-btn', function () { 145 | var data = table.row($(this).parents('tr')).data(); 146 | console.log(data) 147 | deletePatient(data.pat_id) 148 | 149 | }); 150 | $('.btn-edit').one("click", function (e) { 151 | var data = table.row($(this).parents('tr')).data(); 152 | $('#myModal').modal().one('shown.bs.modal', function (e) { 153 | for (var key in data) { 154 | $("[name=" + key + "]").val(data[key]) 155 | } 156 | $("#savethepatient").off("click").on("click", function (e) { 157 | var instance = $('#detailform').parsley(); 158 | instance.validate() 159 | console.log(instance.isValid()) 160 | if (instance.isValid()) { 161 | jsondata = $('#detailform').serializeJSON(); 162 | updatePatient(jsondata, data.pat_id) 163 | } 164 | 165 | }) 166 | }) 167 | 168 | 169 | 170 | }); 171 | 172 | }); 173 | 174 | 175 | } 176 | 177 | 178 | 179 | 180 | $("#addpatient").click(function () { 181 | $('#detailform input,textarea').val("") 182 | $('#myModal').modal().one('shown.bs.modal', function (e) { 183 | 184 | console.log('innn') 185 | $("#savethepatient").off("click").on("click", function (e) { 186 | console.log("inn") 187 | var instance = $('#detailform').parsley(); 188 | instance.validate() 189 | if (instance.isValid()) { 190 | jsondata = $('#detailform').serializeJSON(); 191 | addPatient(jsondata) 192 | } 193 | 194 | }) 195 | 196 | }) 197 | 198 | 199 | 200 | }) 201 | 202 | 203 | getPatient() 204 | }) 205 | -------------------------------------------------------------------------------- /static/js/prescribes.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | 3 | var table 4 | 5 | function addPrescribes(data) { 6 | 7 | var settings = { 8 | "async": true, 9 | "crossDomain": true, 10 | "url": "prescribes", 11 | "method": "POST", 12 | "headers": { 13 | "content-type": "application/json", 14 | "cache-control": "no-cache", 15 | "postman-token": "2612534b-9ccd-ab7e-1f73-659029967199" 16 | }, 17 | "processData": false, 18 | "data": JSON.stringify(data) 19 | } 20 | 21 | $.ajax(settings).done(function (response) { 22 | $('.modal.in').modal('hide') 23 | $.notify("Prescribes Added Successfully", {"status":"success"}); 24 | table.destroy(); 25 | $('#datatable4 tbody').empty(); // empty in case the columns change 26 | getPrescribes() 27 | }); 28 | 29 | } 30 | 31 | function getPrescribes() { 32 | 33 | var settings = { 34 | "async": true, 35 | "crossDomain": true, 36 | "url": "prescribes", 37 | "method": "GET", 38 | "headers": { 39 | "cache-control": "no-cache" 40 | } 41 | } 42 | 43 | $.ajax(settings).done(function (response) { 44 | 45 | 46 | 47 | table = $('#datatable4').DataTable({ 48 | "bDestroy": true, 49 | 'paging': true, // Table pagination 50 | 'ordering': true, // Column ordering 51 | 'info': true, // Bottom left status text 52 | aaData: response, 53 | "aaSorting": [], 54 | aoColumns: [ 55 | { 56 | mData: 'doc_id' 57 | }, 58 | { 59 | mData: 'doc_first_name' 60 | }, 61 | { 62 | mData: 'doc_last_name' 63 | }, 64 | { 65 | mData: 'pat_id' 66 | }, 67 | { 68 | mData: 'pat_first_name' 69 | }, 70 | { 71 | mData: 'pat_last_name' 72 | }, 73 | { 74 | mData: 'med_code' 75 | }, 76 | { 77 | mData: 'p_date' 78 | }, 79 | { 80 | mData: 'app_id' 81 | }, 82 | { 83 | mData: 'dose' 84 | } 85 | ] 86 | }); 87 | $('#datatable4 tbody').on('click', '.delete-btn', function () { 88 | var data = table.row($(this).parents('tr')).data(); 89 | console.log(data) 90 | deletePrescribes(data.doc_id) 91 | 92 | }); 93 | $('.btn-edit').one("click", function(e) { 94 | var data = table.row($(this).parents('tr')).data(); 95 | $('#myModal').modal().one('shown.bs.modal', function (e) { 96 | for (var key in data) { 97 | $("[name=" + key + "]").val(data[key]) 98 | } 99 | $("#savetheprescribes").off("click").on("click", function(e) { 100 | var instance = $('#detailform').parsley(); 101 | instance.validate() 102 | console.log(instance.isValid()) 103 | if(instance.isValid()){ 104 | jsondata = $('#detailform').serializeJSON(); 105 | updatePrescribes(jsondata, data.doc_id) 106 | } 107 | 108 | }) 109 | }) 110 | 111 | 112 | 113 | }); 114 | 115 | }); 116 | 117 | 118 | } 119 | 120 | 121 | 122 | 123 | $("#addPrescribes").click(function () { 124 | $('#detailform input,textarea').val("") 125 | $('#myModal').modal().one('shown.bs.modal', function (e) { 126 | 127 | $(".form_datetime").datetimepicker({ 128 | format: 'yyyy-mm-dd hh:ii:ss', 129 | startDate:new Date(), 130 | initialDate: new Date() 131 | }); 132 | console.log("innn") 133 | $("#savetheprescribes").off("click").on("click", function(e) { 134 | console.log("inn") 135 | var instance = $('#detailform').parsley(); 136 | instance.validate() 137 | if(instance.isValid()){ 138 | jsondata = $('#detailform').serializeJSON(); 139 | addPrescribes(jsondata) 140 | } 141 | 142 | }) 143 | 144 | }) 145 | 146 | }) 147 | 148 | 149 | getPrescribes() 150 | }) 151 | -------------------------------------------------------------------------------- /static/js/procedure.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | 3 | var table 4 | 5 | function addProcedure(data) { 6 | 7 | var settings = { 8 | "async": true, 9 | "crossDomain": true, 10 | "url": "procedure", 11 | "method": "POST", 12 | "headers": { 13 | "content-type": "application/json", 14 | "cache-control": "no-cache", 15 | "postman-token": "2612534b-9ccd-ab7e-1f73-659029967199" 16 | }, 17 | "processData": false, 18 | "data": JSON.stringify(data) 19 | } 20 | 21 | $.ajax(settings).done(function (response) { 22 | $('.modal.in').modal('hide') 23 | $.notify("Procedure Added Successfully", { "status": "success" }); 24 | table.destroy(); 25 | $('#datatable4 tbody').empty(); // empty in case the columns change 26 | getProcedure() 27 | }); 28 | 29 | } 30 | 31 | function deleteProcedure(code) { 32 | var settings = { 33 | "async": true, 34 | "crossDomain": true, 35 | "url": "procedure/" + code, 36 | "method": "DELETE", 37 | "headers": { 38 | "cache-control": "no-cache", 39 | "postman-token": "28ea8360-5af0-1d11-e595-485a109760f2" 40 | } 41 | } 42 | 43 | swal({ 44 | title: "Are you sure?", 45 | text: "You will not be able to recover this data", 46 | type: "warning", 47 | showCancelButton: true, 48 | confirmButtonColor: "#DD6B55", 49 | confirmButtonText: "Yes, delete it!", 50 | closeOnConfirm: false 51 | }, function () { 52 | $.ajax(settings).done(function (response) { 53 | swal("Deleted!", "Medicince has been deleted.", "success"); 54 | table.destroy(); 55 | $('#datatable4 tbody').empty(); // empty in case the columns change 56 | getProcedure() 57 | }); 58 | 59 | 60 | }); 61 | 62 | } 63 | 64 | function updateProcedure(data, code) { 65 | var settings = { 66 | "async": true, 67 | "crossDomain": true, 68 | "url": "procedure/" + code, 69 | "method": "PUT", 70 | "headers": { 71 | "content-type": "application/json", 72 | "cache-control": "no-cache" 73 | }, 74 | "processData": false, 75 | "data": JSON.stringify(data) 76 | } 77 | 78 | $.ajax(settings).done(function (response) { 79 | $('.modal.in').modal('hide') 80 | $.notify("Procedure Updated Successfully", { "status": "success" }); 81 | table.destroy(); 82 | $('#datatable4 tbody').empty(); // empty in case the columns change 83 | getProcedure() 84 | }); 85 | 86 | 87 | } 88 | 89 | function getProcedure() { 90 | 91 | var settings = { 92 | "async": true, 93 | "crossDomain": true, 94 | "url": "procedure", 95 | "method": "GET", 96 | "headers": { 97 | "cache-control": "no-cache" 98 | } 99 | } 100 | 101 | $.ajax(settings).done(function (response) { 102 | 103 | 104 | 105 | table = $('#datatable4').DataTable({ 106 | "bDestroy": true, 107 | 'paging': true, // Table pagination 108 | 'ordering': true, // Column ordering 109 | 'info': true, // Bottom left status text 110 | aaData: response, 111 | "aaSorting": [], 112 | aoColumns: [ 113 | { 114 | mData: 'code' 115 | }, 116 | { 117 | mData: 'name' 118 | }, 119 | { 120 | mData: 'cost' 121 | }, 122 | { 123 | mRender: function (o) { 124 | return ''; 125 | } 126 | }, 127 | { 128 | mRender: function (o) { 129 | return ''; 130 | } 131 | } 132 | ] 133 | }); 134 | $('#datatable4 tbody').on('click', '.delete-btn', function () { 135 | var data = table.row($(this).parents('tr')).data(); 136 | console.log(data) 137 | deleteProcedure(data.code) 138 | 139 | }); 140 | $('.btn-edit').one("click", function (e) { 141 | var data = table.row($(this).parents('tr')).data(); 142 | $('#myModal').modal().one('shown.bs.modal', function (e) { 143 | for (var key in data) { 144 | $("[name=" + key + "]").val(data[key]) 145 | } 146 | $("#savetheprocedure").off("click").on("click", function (e) { 147 | var instance = $('#detailform').parsley(); 148 | instance.validate() 149 | console.log(instance.isValid()) 150 | if (instance.isValid()) { 151 | jsondata = $('#detailform').serializeJSON(); 152 | updateProcedure(jsondata, data.code) 153 | } 154 | 155 | }) 156 | }) 157 | 158 | 159 | 160 | }); 161 | 162 | }); 163 | 164 | 165 | } 166 | 167 | 168 | 169 | 170 | $("#addProcedure").click(function () { 171 | $('#detailform input,textarea').val("") 172 | $('#myModal').modal().one('shown.bs.modal', function (e) { 173 | 174 | console.log('innn') 175 | $("#savetheprocedure").off("click").on("click", function (e) { 176 | console.log("inn") 177 | var instance = $('#detailform').parsley(); 178 | instance.validate() 179 | if (instance.isValid()) { 180 | jsondata = $('#detailform').serializeJSON(); 181 | addProcedure(jsondata) 182 | } 183 | 184 | }) 185 | 186 | }) 187 | 188 | 189 | 190 | }) 191 | 192 | 193 | getProcedure() 194 | }) 195 | -------------------------------------------------------------------------------- /static/js/room.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | 3 | var table 4 | 5 | 6 | function addRoom(data) { 7 | 8 | var settings = { 9 | "async": true, 10 | "crossDomain": true, 11 | "url": "room", 12 | "method": "POST", 13 | "headers": { 14 | "content-type": "application/json", 15 | "cache-control": "no-cache", 16 | "postman-token": "2612534b-9ccd-ab7e-1f73-659029967199" 17 | }, 18 | "processData": false, 19 | "data": JSON.stringify(data) 20 | } 21 | 22 | $.ajax(settings).done(function (response) { 23 | $('.modal.in').modal('hide') 24 | $.notify("Room Added Successfully", {"status":"success"}); 25 | table.destroy(); 26 | $('#datatable4 tbody').empty(); // empty in case the columns change 27 | getRoom() 28 | }); 29 | 30 | } 31 | 32 | function deleteRoom(room_no) { 33 | var settings = { 34 | "async": true, 35 | "crossDomain": true, 36 | "url": "room/" + room_no, 37 | "method": "DELETE", 38 | "headers": { 39 | "cache-control": "no-cache", 40 | "postman-token": "28ea8360-5af0-1d11-e595-485a109760f2" 41 | } 42 | } 43 | 44 | swal({ 45 | title: "Are you sure?", 46 | text: "You will not be able to recover this data", 47 | type: "warning", 48 | showCancelButton: true, 49 | confirmButtonColor: "#DD6B55", 50 | confirmButtonText: "Yes, delete it!", 51 | closeOnConfirm: false 52 | }, function() { 53 | $.ajax(settings).done(function (response) { 54 | swal("Deleted!", "Medicince has been deleted.", "success"); 55 | table.destroy(); 56 | $('#datatable4 tbody').empty(); // empty in case the columns change 57 | getRoom() 58 | }); 59 | 60 | 61 | }); 62 | 63 | } 64 | 65 | function updateRoom(data, room_no) { 66 | var settings = { 67 | "async": true, 68 | "crossDomain": true, 69 | "url": "room/" + room_no, 70 | "method": "PUT", 71 | "headers": { 72 | "content-type": "application/json", 73 | "cache-control": "no-cache" 74 | }, 75 | "processData": false, 76 | "data": JSON.stringify(data) 77 | } 78 | 79 | $.ajax(settings).done(function (response) { 80 | $('.modal.in').modal('hide') 81 | $.notify("Room Updated Successfully", {"status":"success"}); 82 | table.destroy(); 83 | $('#datatable4 tbody').empty(); // empty in case the columns change 84 | getRoom() 85 | }); 86 | 87 | 88 | } 89 | 90 | function getRoom() { 91 | 92 | var settings = { 93 | "async": true, 94 | "crossDomain": true, 95 | "url": "room", 96 | "method": "GET", 97 | "headers": { 98 | "cache-control": "no-cache" 99 | } 100 | } 101 | 102 | $.ajax(settings).done(function (response) { 103 | 104 | 105 | 106 | table = $('#datatable4').DataTable({ 107 | "bDestroy": true, 108 | 'paging': true, // Table pagination 109 | 'ordering': true, // Column ordering 110 | 'info': true, // Bottom left status text 111 | aaData: response, 112 | "aaSorting": [], 113 | aoColumns: [ 114 | { 115 | mData: 'room_no' 116 | }, 117 | { 118 | mData: 'room_type' 119 | }, 120 | { 121 | mData: 'available' 122 | }, 123 | { 124 | mRender: function (o) { 125 | return ''; 126 | } 127 | }, 128 | { 129 | mRender: function (o) { 130 | return ''; 131 | } 132 | } 133 | ] 134 | }); 135 | $('#datatable4 tbody').on('click', '.delete-btn', function () { 136 | var data = table.row($(this).parents('tr')).data(); 137 | console.log(data) 138 | deleteRoom(data.room_no) 139 | 140 | }); 141 | $('.btn-edit').one("click", function(e) { 142 | var data = table.row($(this).parents('tr')).data(); 143 | $('#myModal').modal().one('shown.bs.modal', function (e) { 144 | for (var key in data) { 145 | $("[name=" + key + "]").val(data[key]) 146 | } 147 | $("#savetheroom").off("click").on("click", function(e) { 148 | var instance = $('#detailform').parsley(); 149 | instance.validate() 150 | console.log(instance.isValid()) 151 | if(instance.isValid()){ 152 | jsondata = $('#detailform').serializeJSON(); 153 | updateRoom(jsondata, data.room_no) 154 | } 155 | 156 | }) 157 | }) 158 | 159 | 160 | 161 | }); 162 | 163 | }); 164 | 165 | 166 | } 167 | 168 | 169 | 170 | 171 | $("#addRoom").click(function () { 172 | $('#detailform input,textarea').val("") 173 | $('#myModal').modal().one('shown.bs.modal', function (e) { 174 | 175 | console.log('innn') 176 | $("#savetheroom").off("click").on("click", function(e) { 177 | console.log("inn") 178 | var instance = $('#detailform').parsley(); 179 | instance.validate() 180 | if(instance.isValid()){ 181 | jsondata = $('#detailform').serializeJSON(); 182 | addRoom(jsondata) 183 | } 184 | 185 | }) 186 | 187 | }) 188 | 189 | 190 | 191 | }) 192 | 193 | 194 | getRoom() 195 | }) 196 | -------------------------------------------------------------------------------- /static/js/undergoes.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function () { 2 | 3 | var table 4 | 5 | function addUndergoes(data) { 6 | 7 | var settings = { 8 | "async": true, 9 | "crossDomain": true, 10 | "url": "undergoes", 11 | "method": "POST", 12 | "headers": { 13 | "content-type": "application/json", 14 | "cache-control": "no-cache", 15 | "postman-token": "2612534b-9ccd-ab7e-1f73-659029967199" 16 | }, 17 | "processData": false, 18 | "data": JSON.stringify(data) 19 | } 20 | 21 | $.ajax(settings).done(function (response) { 22 | $('.modal.in').modal('hide') 23 | $.notify("Undergoes Added Successfully", { "status": "success" }); 24 | table.destroy(); 25 | $('#datatable4 tbody').empty(); // empty in case the columns change 26 | getUndergoes() 27 | }); 28 | 29 | } 30 | 31 | function getUndergoes() { 32 | 33 | var settings = { 34 | "async": true, 35 | "crossDomain": true, 36 | "url": "undergoes", 37 | "method": "GET", 38 | "headers": { 39 | "cache-control": "no-cache" 40 | } 41 | } 42 | 43 | $.ajax(settings).done(function (response) { 44 | 45 | 46 | 47 | table = $('#datatable4').DataTable({ 48 | "bDestroy": true, 49 | 'paging': true, // Table pagination 50 | 'ordering': true, // Column ordering 51 | 'info': true, // Bottom left status text 52 | aaData: response, 53 | "aaSorting": [], 54 | aoColumns: [ 55 | { 56 | mData: 'doc_id' 57 | }, 58 | { 59 | mData: 'doc_first_name' 60 | }, 61 | { 62 | mData: 'doc_last_name' 63 | }, 64 | { 65 | mData: 'pat_id' 66 | }, 67 | { 68 | mData: 'pat_first_name' 69 | }, 70 | { 71 | mData: 'pat_last_name' 72 | }, 73 | { 74 | mData: 'proc_code' 75 | }, 76 | { 77 | mData: 'u_date' 78 | }, 79 | { 80 | mData: 'nur_id' 81 | }, 82 | { 83 | mData: 'nur_first_name' 84 | }, 85 | { 86 | mData: 'nur_last_name' 87 | }, 88 | { 89 | mData: 'room_no' 90 | } 91 | ] 92 | }); 93 | $('#datatable4 tbody').on('click', '.delete-btn', function () { 94 | var data = table.row($(this).parents('tr')).data(); 95 | console.log(data) 96 | deleteUndergoes(data.pat_id) 97 | 98 | }); 99 | $('.btn-edit').one("click", function (e) { 100 | var data = table.row($(this).parents('tr')).data(); 101 | $('#myModal').modal().one('shown.bs.modal', function (e) { 102 | for (var key in data) { 103 | $("[name=" + key + "]").val(data[key]) 104 | } 105 | $("#savetheundergoes").off("click").on("click", function (e) { 106 | var instance = $('#detailform').parsley(); 107 | instance.validate() 108 | console.log(instance.isValid()) 109 | if (instance.isValid()) { 110 | jsondata = $('#detailform').serializeJSON(); 111 | updateUndergoes(jsondata, data.pat_id) 112 | } 113 | 114 | }) 115 | }) 116 | 117 | 118 | 119 | }); 120 | 121 | }); 122 | 123 | 124 | } 125 | 126 | 127 | 128 | 129 | $("#addUndergoes").click(function () { 130 | $('#detailform input,textarea').val("") 131 | $('#myModal').modal().one('shown.bs.modal', function (e) { 132 | 133 | $(".form_datetime").datetimepicker({ 134 | format: 'yyyy-mm-dd hh:ii:ss', 135 | startDate: new Date(), 136 | initialDate: new Date() 137 | }); 138 | console.log("innn") 139 | $("#savetheundergoes").off("click").on("click", function (e) { 140 | console.log("inn") 141 | var instance = $('#detailform').parsley(); 142 | instance.validate() 143 | if (instance.isValid()) { 144 | jsondata = $('#detailform').serializeJSON(); 145 | addUndergoes(jsondata) 146 | } 147 | 148 | }) 149 | 150 | }) 151 | 152 | }) 153 | 154 | 155 | getUndergoes() 156 | }) 157 | -------------------------------------------------------------------------------- /static/vendor/animate.css/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/animo.js/animo.js: -------------------------------------------------------------------------------- 1 | ;(function ( $, window, document, undefined ) { 2 | 3 | /** 4 | * animo is a powerful little tool that makes managing CSS animations extremely easy. Stack animations, set callbacks, make magic. 5 | * Modern browsers and almost all mobile browsers support CSS animations (http://caniuse.com/css-animation). 6 | * 7 | * @author Daniel Raftery : twitter/ThrivingKings 8 | * @version 1.0.2 9 | */ 10 | function animo( element, options, callback, other_cb ) { 11 | 12 | // Default configuration 13 | var defaults = { 14 | duration: 1, 15 | animation: null, 16 | iterate: 1, 17 | timing: "linear", 18 | keep: false 19 | }; 20 | 21 | // Browser prefixes for CSS 22 | this.prefixes = ["", "-moz-", "-o-animation-", "-webkit-"]; 23 | 24 | // Cache the element 25 | this.element = $(element); 26 | 27 | this.bare = element; 28 | 29 | // For stacking of animations 30 | this.queue = []; 31 | 32 | // Hacky 33 | this.listening = false; 34 | 35 | // Figure out where the callback is 36 | var cb = (typeof callback == "function" ? callback : other_cb); 37 | 38 | // Options can sometimes be a command 39 | switch(options) { 40 | 41 | case "blur": 42 | 43 | defaults = { 44 | amount: 3, 45 | duration: 0.5, 46 | focusAfter: null 47 | }; 48 | 49 | this.options = $.extend( defaults, callback ); 50 | 51 | this._blur(cb); 52 | 53 | break; 54 | 55 | case "focus": 56 | 57 | this._focus(); 58 | 59 | break; 60 | 61 | case "rotate": 62 | 63 | defaults = { 64 | degrees: 15, 65 | duration: 0.5 66 | }; 67 | 68 | this.options = $.extend( defaults, callback ); 69 | 70 | this._rotate(cb); 71 | 72 | break; 73 | 74 | case "cleanse": 75 | 76 | this.cleanse(); 77 | 78 | break; 79 | 80 | default: 81 | 82 | this.options = $.extend( defaults, options ); 83 | 84 | this.init(cb); 85 | 86 | break; 87 | } 88 | } 89 | 90 | animo.prototype = { 91 | 92 | // A standard CSS animation 93 | init: function(callback) { 94 | 95 | var $me = this; 96 | 97 | // Are we stacking animations? 98 | if(Object.prototype.toString.call( $me.options.animation ) === '[object Array]') { 99 | $.merge($me.queue, $me.options.animation); 100 | } else { 101 | $me.queue.push($me.options.animation); 102 | } 103 | 104 | $me.cleanse(); 105 | 106 | $me.animate(callback); 107 | 108 | }, 109 | 110 | // The actual adding of the class and listening for completion 111 | animate: function(callback) { 112 | 113 | this.element.addClass('animated'); 114 | 115 | this.element.addClass(this.queue[0]); 116 | 117 | this.element.data("animo", this.queue[0]); 118 | 119 | var ai = this.prefixes.length; 120 | 121 | // Add the options for each prefix 122 | while(ai--) { 123 | 124 | this.element.css(this.prefixes[ai]+"animation-duration", this.options.duration+"s"); 125 | 126 | this.element.css(this.prefixes[ai]+"animation-iteration-count", this.options.iterate); 127 | 128 | this.element.css(this.prefixes[ai]+"animation-timing-function", this.options.timing); 129 | 130 | } 131 | 132 | var $me = this, _cb = callback; 133 | 134 | if($me.queue.length>1) { 135 | _cb = null; 136 | } 137 | 138 | // Listen for the end of the animation 139 | this._end("AnimationEnd", function() { 140 | 141 | // If there are more, clean it up and move on 142 | if($me.element.hasClass($me.queue[0])) { 143 | 144 | if(!$me.options.keep) { 145 | $me.cleanse(); 146 | } 147 | 148 | $me.queue.shift(); 149 | 150 | if($me.queue.length) { 151 | 152 | $me.animate(callback); 153 | } 154 | } 155 | }, _cb); 156 | }, 157 | 158 | cleanse: function() { 159 | 160 | this.element.removeClass('animated'); 161 | 162 | this.element.removeClass(this.queue[0]); 163 | 164 | this.element.removeClass(this.element.data("animo")); 165 | 166 | var ai = this.prefixes.length; 167 | 168 | while(ai--) { 169 | 170 | this.element.css(this.prefixes[ai]+"animation-duration", ""); 171 | 172 | this.element.css(this.prefixes[ai]+"animation-iteration-count", ""); 173 | 174 | this.element.css(this.prefixes[ai]+"animation-timing-function", ""); 175 | 176 | this.element.css(this.prefixes[ai]+"transition", ""); 177 | 178 | this.element.css(this.prefixes[ai]+"transform", ""); 179 | 180 | this.element.css(this.prefixes[ai]+"filter", ""); 181 | 182 | } 183 | }, 184 | 185 | _blur: function(callback) { 186 | 187 | if(this.element.is("img")) { 188 | 189 | var svg_id = "svg_" + (((1 + Math.random()) * 0x1000000) | 0).toString(16).substring(1); 190 | var filter_id = "filter_" + (((1 + Math.random()) * 0x1000000) | 0).toString(16).substring(1); 191 | 192 | $('body').append(''); 193 | 194 | var ai = this.prefixes.length; 195 | 196 | while(ai--) { 197 | 198 | this.element.css(this.prefixes[ai]+"filter", "blur("+this.options.amount+"px)"); 199 | 200 | this.element.css(this.prefixes[ai]+"transition", this.options.duration+"s all linear"); 201 | 202 | } 203 | 204 | this.element.css("filter", "url(#"+filter_id+")"); 205 | 206 | this.element.data("svgid", svg_id); 207 | 208 | } else { 209 | 210 | var color = this.element.css('color'); 211 | 212 | var ai = this.prefixes.length; 213 | 214 | // Add the options for each prefix 215 | while(ai--) { 216 | 217 | this.element.css(this.prefixes[ai]+"transition", "all "+this.options.duration+"s linear"); 218 | 219 | } 220 | 221 | this.element.css("text-shadow", "0 0 "+this.options.amount+"px "+color); 222 | this.element.css("color", "transparent"); 223 | } 224 | 225 | this._end("TransitionEnd", null, callback); 226 | 227 | var $me = this; 228 | 229 | if(this.options.focusAfter) { 230 | 231 | var focus_wait = window.setTimeout(function() { 232 | 233 | $me._focus(); 234 | 235 | focus_wait = window.clearTimeout(focus_wait); 236 | 237 | }, (this.options.focusAfter*1000)); 238 | } 239 | 240 | }, 241 | 242 | _focus: function() { 243 | 244 | var ai = this.prefixes.length; 245 | 246 | if(this.element.is("img")) { 247 | 248 | while(ai--) { 249 | 250 | this.element.css(this.prefixes[ai]+"filter", ""); 251 | 252 | this.element.css(this.prefixes[ai]+"transition", ""); 253 | 254 | } 255 | 256 | var $svg = $('#'+this.element.data('svgid')); 257 | 258 | $svg.remove(); 259 | } else { 260 | 261 | while(ai--) { 262 | 263 | this.element.css(this.prefixes[ai]+"transition", ""); 264 | 265 | } 266 | 267 | this.element.css("text-shadow", ""); 268 | this.element.css("color", ""); 269 | } 270 | }, 271 | 272 | _rotate: function(callback) { 273 | 274 | var ai = this.prefixes.length; 275 | 276 | // Add the options for each prefix 277 | while(ai--) { 278 | 279 | this.element.css(this.prefixes[ai]+"transition", "all "+this.options.duration+"s linear"); 280 | 281 | this.element.css(this.prefixes[ai]+"transform", "rotate("+this.options.degrees+"deg)"); 282 | 283 | } 284 | 285 | this._end("TransitionEnd", null, callback); 286 | 287 | }, 288 | 289 | _end: function(type, todo, callback) { 290 | 291 | var $me = this; 292 | 293 | var binding = type.toLowerCase()+" webkit"+type+" o"+type+" MS"+type; 294 | 295 | this.element.bind(binding, function() { 296 | 297 | $me.element.unbind(binding); 298 | 299 | if(typeof todo == "function") { 300 | 301 | todo(); 302 | } 303 | 304 | if(typeof callback == "function") { 305 | 306 | callback($me); 307 | } 308 | }); 309 | 310 | } 311 | }; 312 | 313 | $.fn.animo = function ( options, callback, other_cb ) { 314 | 315 | return this.each(function() { 316 | 317 | new animo( this, options, callback, other_cb ); 318 | 319 | }); 320 | 321 | }; 322 | 323 | })( jQuery, window, document ); 324 | -------------------------------------------------------------------------------- /static/vendor/animo.js/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/bootstrap/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/bootstrap/dist/css/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/bootstrap/dist/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/bootstrap/dist/js/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/dataTables.fontAwesome/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/dataTables.fontAwesome/index.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * DataTables + Font Awesome integration 3 | * License: MIT - http://datatables.net/license 4 | */ 5 | 6 | /* 7 | * Sort styling 8 | */ 9 | table.dataTable thead th { 10 | position: relative; 11 | background-image: none !important; /* Remove the DataTables bootstrap integration styling */ 12 | } 13 | 14 | table.dataTable thead th.sorting:after, 15 | table.dataTable thead th.sorting_asc:after, 16 | table.dataTable thead th.sorting_desc:after { 17 | position: absolute; 18 | top: 12px; 19 | right: 8px; 20 | display: block; 21 | font-family: FontAwesome; 22 | } 23 | 24 | table.dataTable thead th.sorting:after { 25 | content: "\f0dc"; 26 | color: #ddd; 27 | font-size: 0.8em; 28 | padding-top: 0.12em; 29 | } 30 | table.dataTable thead th.sorting_asc:after { 31 | content: "\f0de"; 32 | } 33 | table.dataTable thead th.sorting_desc:after { 34 | content: "\f0dd"; 35 | } 36 | 37 | div.dataTables_scrollBody table.dataTable thead th.sorting:after, 38 | div.dataTables_scrollBody table.dataTable thead th.sorting_asc:after, 39 | div.dataTables_scrollBody table.dataTable thead th.sorting_desc:after { 40 | content: ""; 41 | } 42 | 43 | /* In Bootstrap and Foundation the padding top is a little different from the DataTables stylesheet */ 44 | table.table thead th.sorting:after, 45 | table.table thead th.sorting_asc:after, 46 | table.table thead th.sorting_desc:after { 47 | top: 8px; 48 | } 49 | 50 | 51 | /* 52 | * DataTables style pagination controls 53 | */ 54 | div.dataTables_paginate a.paginate_button.first, 55 | div.dataTables_paginate a.paginate_button.previous { 56 | position: relative; 57 | padding-left: 24px; 58 | } 59 | 60 | div.dataTables_paginate a.paginate_button.next, 61 | div.dataTables_paginate a.paginate_button.last { 62 | position: relative; 63 | padding-right: 24px; 64 | } 65 | 66 | div.dataTables_paginate a.first:before, 67 | div.dataTables_paginate a.previous:before { 68 | position: absolute; 69 | top: 8px; 70 | left: 10px; 71 | display: block; 72 | font-family: FontAwesome; 73 | } 74 | 75 | div.dataTables_paginate a.next:after, 76 | div.dataTables_paginate a.last:after { 77 | position: absolute; 78 | top: 8px; 79 | right: 10px; 80 | display: block; 81 | font-family: FontAwesome; 82 | } 83 | 84 | div.dataTables_paginate a.first:before { 85 | content: "\f100"; 86 | } 87 | 88 | div.dataTables_paginate a.previous:before { 89 | content: "\f104"; 90 | } 91 | 92 | div.dataTables_paginate a.next:after { 93 | content: "\f105"; 94 | } 95 | 96 | div.dataTables_paginate a.last:after { 97 | content: "\f101"; 98 | } 99 | 100 | 101 | /* 102 | * Bootstrap and foundation style pagination controls 103 | */ 104 | div.dataTables_paginate li.first > a, 105 | div.dataTables_paginate li.previous > a { 106 | position: relative; 107 | padding-left: 24px; 108 | } 109 | 110 | div.dataTables_paginate li.next > a, 111 | div.dataTables_paginate li.last > a { 112 | position: relative; 113 | padding-right: 24px; 114 | } 115 | 116 | div.dataTables_paginate li.first a:before, 117 | div.dataTables_paginate li.previous a:before { 118 | position: absolute; 119 | top: 6px; 120 | left: 10px; 121 | display: block; 122 | font-family: FontAwesome; 123 | } 124 | 125 | div.dataTables_paginate li.next a:after, 126 | div.dataTables_paginate li.last a:after { 127 | position: absolute; 128 | top: 6px; 129 | right: 10px; 130 | display: block; 131 | font-family: FontAwesome; 132 | } 133 | 134 | div.dataTables_paginate li.first a:before { 135 | content: "\f100"; 136 | } 137 | 138 | div.dataTables_paginate li.previous a:before { 139 | content: "\f104"; 140 | } 141 | 142 | div.dataTables_paginate li.next a:after { 143 | content: "\f105"; 144 | } 145 | 146 | div.dataTables_paginate li.last a:after { 147 | content: "\f101"; 148 | } 149 | 150 | /* In Foundation we don't want the padding like in bootstrap */ 151 | div.columns div.dataTables_paginate li.first a:before, 152 | div.columns div.dataTables_paginate li.previous a:before, 153 | div.columns div.dataTables_paginate li.next a:after, 154 | div.columns div.dataTables_paginate li.last a:after { 155 | top: 0; 156 | } 157 | -------------------------------------------------------------------------------- /static/vendor/datatables-colvis/css/dataTables.colVis.css: -------------------------------------------------------------------------------- 1 | 2 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 3 | * ColVis styles 4 | */ 5 | div.ColVis { 6 | float: right; 7 | margin-bottom: 1em; 8 | } 9 | 10 | button.ColVis_Button, 11 | ul.ColVis_collection li { 12 | position: relative; 13 | float: left; 14 | margin-right: 3px; 15 | padding: 5px 8px; 16 | border: 1px solid #999; 17 | cursor: pointer; 18 | *cursor: hand; 19 | font-size: 0.88em; 20 | color: black !important; 21 | white-space: nowrap; 22 | 23 | -webkit-border-radius: 2px; 24 | -moz-border-radius: 2px; 25 | -ms-border-radius: 2px; 26 | -o-border-radius: 2px; 27 | border-radius: 2px; 28 | 29 | -webkit-box-shadow: 1px 1px 3px #ccc; 30 | -moz-box-shadow: 1px 1px 3px #ccc; 31 | -ms-box-shadow: 1px 1px 3px #ccc; 32 | -o-box-shadow: 1px 1px 3px #ccc; 33 | box-shadow: 1px 1px 3px #ccc; 34 | 35 | /* Generated by http://www.colorzilla.com/gradient-editor/ */ 36 | background: #ffffff; /* Old browsers */ 37 | background: -webkit-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Chrome10+,Safari5.1+ */ 38 | background: -moz-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* FF3.6+ */ 39 | background: -ms-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* IE10+ */ 40 | background: -o-linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* Opera 11.10+ */ 41 | background: linear-gradient(top, #ffffff 0%,#f3f3f3 89%,#f9f9f9 100%); /* W3C */ 42 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ffffff', endColorstr='#f9f9f9',GradientType=0 ); /* IE6-9 */ 43 | } 44 | 45 | .ColVis_Button:hover, 46 | ul.ColVis_collection li:hover { 47 | border: 1px solid #666; 48 | text-decoration: none !important; 49 | 50 | -webkit-box-shadow: 1px 1px 3px #999; 51 | -moz-box-shadow: 1px 1px 3px #999; 52 | -ms-box-shadow: 1px 1px 3px #999; 53 | -o-box-shadow: 1px 1px 3px #999; 54 | box-shadow: 1px 1px 3px #999; 55 | 56 | background: #f3f3f3; /* Old browsers */ 57 | background: -webkit-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Chrome10+,Safari5.1+ */ 58 | background: -moz-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* FF3.6+ */ 59 | background: -ms-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* IE10+ */ 60 | background: -o-linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* Opera 11.10+ */ 61 | background: linear-gradient(top, #f3f3f3 0%,#e2e2e2 89%,#f4f4f4 100%); /* W3C */ 62 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f3f3f3', endColorstr='#f4f4f4',GradientType=0 ); /* IE6-9 */ 63 | } 64 | 65 | button.ColVis_Button { 66 | height: 30px; 67 | padding: 3px 8px; 68 | } 69 | 70 | button.ColVis_Button::-moz-focus-inner { 71 | border: none !important; 72 | padding: 0; 73 | } 74 | 75 | button.ColVis_Button:active { 76 | outline: none; 77 | } 78 | 79 | 80 | div.ColVis_collectionBackground { 81 | position: fixed; 82 | top: 0; 83 | left: 0; 84 | height: 100%; 85 | width: 100%; 86 | background-color: black; 87 | z-index: 1100; 88 | } 89 | 90 | ul.ColVis_collection { 91 | list-style: none; 92 | width: 150px; 93 | padding: 8px 8px 4px 8px; 94 | margin: 0; 95 | border: 1px solid #ccc; 96 | border: 1px solid rgba( 0, 0, 0, 0.4 ); 97 | background-color: #f3f3f3; 98 | background-color: rgba( 255, 255, 255, 0.3 ); 99 | overflow: hidden; 100 | z-index: 2002; 101 | 102 | -webkit-border-radius: 5px; 103 | -moz-border-radius: 5px; 104 | -ms-border-radius: 5px; 105 | -o-border-radius: 5px; 106 | border-radius: 5px; 107 | 108 | -webkit-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); 109 | -moz-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); 110 | -ms-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); 111 | -o-box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); 112 | box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3); 113 | } 114 | 115 | ul.ColVis_collection li { 116 | position: relative; 117 | height: auto; 118 | left: 0; 119 | right: 0; 120 | padding: 0.5em; 121 | 122 | display: block; 123 | float: none; 124 | margin-bottom: 4px; 125 | 126 | -webkit-box-shadow: 1px 1px 3px #999; 127 | -moz-box-shadow: 1px 1px 3px #999; 128 | -ms-box-shadow: 1px 1px 3px #999; 129 | -o-box-shadow: 1px 1px 3px #999; 130 | box-shadow: 1px 1px 3px #999; 131 | } 132 | 133 | ul.ColVis_collection li { 134 | text-align: left; 135 | } 136 | 137 | ul.ColVis_collection li.ColVis_Button:hover { 138 | border: 1px solid #999; 139 | background-color: #f0f0f0; 140 | } 141 | 142 | ul.ColVis_collection li span { 143 | display: inline-block; 144 | padding-left: 0.5em; 145 | cursor: pointer; 146 | } 147 | 148 | 149 | ul.ColVis_collection li.ColVis_Special { 150 | border-color: #555; 151 | background: rgb(237,237,237); /* Old browsers */ 152 | background: -webkit-linear-gradient(top, rgba(237,237,237,1) 0%,rgba(214,214,214,1) 77%,rgba(232,232,232,1) 100%); /* Chrome10+,Safari5.1+ */ 153 | background: -moz-linear-gradient(top, rgba(237,237,237,1) 0%, rgba(214,214,214,1) 77%, rgba(232,232,232,1) 100%); /* FF3.6+ */ 154 | background: -ms-linear-gradient(top, rgba(237,237,237,1) 0%,rgba(214,214,214,1) 77%,rgba(232,232,232,1) 100%); /* IE10+ */ 155 | background: -o-linear-gradient(top, rgba(237,237,237,1) 0%,rgba(214,214,214,1) 77%,rgba(232,232,232,1) 100%); /* Opera 11.10+ */ 156 | background: linear-gradient(to bottom, rgba(237,237,237,1) 0%,rgba(214,214,214,1) 77%,rgba(232,232,232,1) 100%); /* W3C */ 157 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#ededed', endColorstr='#e8e8e8',GradientType=0 ); /* IE6-9 */ 158 | } 159 | 160 | ul.ColVis_collection li.ColVis_Special:hover { 161 | background: #e2e2e2; /* Old browsers */ 162 | background: -webkit-linear-gradient(top, #d0d0d0 0%,#d5d5d5 89%,#e2e2e2 100%); /* Chrome10+,Safari5.1+ */ 163 | background: -moz-linear-gradient(top, #d0d0d0 0%,#d5d5d5 89%,#e2e2e2 100%); /* FF3.6+ */ 164 | background: -ms-linear-gradient(top, #d0d0d0 0%,#d5d5d5 89%,#e2e2e2 100%); /* IE10+ */ 165 | background: -o-linear-gradient(top, #d0d0d0 0%,#d5d5d5 89%,#e2e2e2 100%); /* Opera 11.10+ */ 166 | background: linear-gradient(top, #d0d0d0 0%,#d5d5d5 89%,#e2e2e2 100%); /* W3C */ 167 | filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f3f3f3', endColorstr='#e2e2e2',GradientType=0 ); /* IE6-9 */ 168 | } 169 | 170 | 171 | span.ColVis_radio { 172 | display: inline-block; 173 | width: 20px; 174 | } 175 | 176 | div.ColVis_catcher { 177 | position: absolute; 178 | z-index: 1101; 179 | } 180 | 181 | .disabled { 182 | color: #999; 183 | } 184 | 185 | 186 | -------------------------------------------------------------------------------- /static/vendor/datatables-colvis/css/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/datatables-colvis/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/datatables-colvis/js/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/datatables/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/datatables/media/css/dataTables.bootstrap.css: -------------------------------------------------------------------------------- 1 | table.dataTable { 2 | clear: both; 3 | margin-top: 6px !important; 4 | margin-bottom: 6px !important; 5 | max-width: none !important; 6 | } 7 | table.dataTable td, 8 | table.dataTable th { 9 | -webkit-box-sizing: content-box; 10 | -moz-box-sizing: content-box; 11 | box-sizing: content-box; 12 | } 13 | table.dataTable td.dataTables_empty, 14 | table.dataTable th.dataTables_empty { 15 | text-align: center; 16 | } 17 | table.dataTable.nowrap th, 18 | table.dataTable.nowrap td { 19 | white-space: nowrap; 20 | } 21 | 22 | div.dataTables_wrapper div.dataTables_length label { 23 | font-weight: normal; 24 | text-align: left; 25 | white-space: nowrap; 26 | } 27 | div.dataTables_wrapper div.dataTables_length select { 28 | width: 75px; 29 | display: inline-block; 30 | } 31 | div.dataTables_wrapper div.dataTables_filter { 32 | text-align: right; 33 | } 34 | div.dataTables_wrapper div.dataTables_filter label { 35 | font-weight: normal; 36 | white-space: nowrap; 37 | text-align: left; 38 | } 39 | div.dataTables_wrapper div.dataTables_filter input { 40 | margin-left: 0.5em; 41 | display: inline-block; 42 | width: auto; 43 | } 44 | div.dataTables_wrapper div.dataTables_info { 45 | padding-top: 8px; 46 | white-space: nowrap; 47 | } 48 | div.dataTables_wrapper div.dataTables_paginate { 49 | margin: 0; 50 | white-space: nowrap; 51 | text-align: right; 52 | } 53 | div.dataTables_wrapper div.dataTables_paginate ul.pagination { 54 | margin: 2px 0; 55 | white-space: nowrap; 56 | } 57 | div.dataTables_wrapper div.dataTables_processing { 58 | position: absolute; 59 | top: 50%; 60 | left: 50%; 61 | width: 200px; 62 | margin-left: -100px; 63 | margin-top: -26px; 64 | text-align: center; 65 | padding: 1em 0; 66 | } 67 | 68 | table.dataTable thead > tr > th.sorting_asc, table.dataTable thead > tr > th.sorting_desc, table.dataTable thead > tr > th.sorting, 69 | table.dataTable thead > tr > td.sorting_asc, 70 | table.dataTable thead > tr > td.sorting_desc, 71 | table.dataTable thead > tr > td.sorting { 72 | padding-right: 30px; 73 | } 74 | table.dataTable thead > tr > th:active, 75 | table.dataTable thead > tr > td:active { 76 | outline: none; 77 | } 78 | table.dataTable thead .sorting, 79 | table.dataTable thead .sorting_asc, 80 | table.dataTable thead .sorting_desc, 81 | table.dataTable thead .sorting_asc_disabled, 82 | table.dataTable thead .sorting_desc_disabled { 83 | cursor: pointer; 84 | position: relative; 85 | } 86 | table.dataTable thead .sorting:after, 87 | table.dataTable thead .sorting_asc:after, 88 | table.dataTable thead .sorting_desc:after, 89 | table.dataTable thead .sorting_asc_disabled:after, 90 | table.dataTable thead .sorting_desc_disabled:after { 91 | position: absolute; 92 | bottom: 8px; 93 | right: 8px; 94 | display: block; 95 | font-family: 'Glyphicons Halflings'; 96 | opacity: 0.5; 97 | } 98 | table.dataTable thead .sorting:after { 99 | opacity: 0.2; 100 | content: "\e150"; 101 | /* sort */ 102 | } 103 | table.dataTable thead .sorting_asc:after { 104 | content: "\e155"; 105 | /* sort-by-attributes */ 106 | } 107 | table.dataTable thead .sorting_desc:after { 108 | content: "\e156"; 109 | /* sort-by-attributes-alt */ 110 | } 111 | table.dataTable thead .sorting_asc_disabled:after, 112 | table.dataTable thead .sorting_desc_disabled:after { 113 | color: #eee; 114 | } 115 | 116 | div.dataTables_scrollHead table.dataTable { 117 | margin-bottom: 0 !important; 118 | } 119 | 120 | div.dataTables_scrollBody table { 121 | border-top: none; 122 | margin-top: 0 !important; 123 | margin-bottom: 0 !important; 124 | } 125 | div.dataTables_scrollBody table thead .sorting:after, 126 | div.dataTables_scrollBody table thead .sorting_asc:after, 127 | div.dataTables_scrollBody table thead .sorting_desc:after { 128 | display: none; 129 | } 130 | div.dataTables_scrollBody table tbody tr:first-child th, 131 | div.dataTables_scrollBody table tbody tr:first-child td { 132 | border-top: none; 133 | } 134 | 135 | div.dataTables_scrollFoot table { 136 | margin-top: 0 !important; 137 | border-top: none; 138 | } 139 | 140 | @media screen and (max-width: 767px) { 141 | div.dataTables_wrapper div.dataTables_length, 142 | div.dataTables_wrapper div.dataTables_filter, 143 | div.dataTables_wrapper div.dataTables_info, 144 | div.dataTables_wrapper div.dataTables_paginate { 145 | text-align: center; 146 | } 147 | } 148 | table.dataTable.table-condensed > thead > tr > th { 149 | padding-right: 20px; 150 | } 151 | table.dataTable.table-condensed .sorting:after, 152 | table.dataTable.table-condensed .sorting_asc:after, 153 | table.dataTable.table-condensed .sorting_desc:after { 154 | top: 6px; 155 | right: 6px; 156 | } 157 | 158 | table.table-bordered.dataTable { 159 | border-collapse: separate !important; 160 | } 161 | table.table-bordered.dataTable th, 162 | table.table-bordered.dataTable td { 163 | border-left-width: 0; 164 | } 165 | table.table-bordered.dataTable th:last-child, table.table-bordered.dataTable th:last-child, 166 | table.table-bordered.dataTable td:last-child, 167 | table.table-bordered.dataTable td:last-child { 168 | border-right-width: 0; 169 | } 170 | table.table-bordered.dataTable tbody th, 171 | table.table-bordered.dataTable tbody td { 172 | border-bottom-width: 0; 173 | } 174 | 175 | div.dataTables_scrollHead table.table-bordered { 176 | border-bottom-width: 0; 177 | } 178 | 179 | div.table-responsive > div.dataTables_wrapper > div.row { 180 | margin: 0; 181 | } 182 | div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:first-child { 183 | padding-left: 0; 184 | } 185 | div.table-responsive > div.dataTables_wrapper > div.row > div[class^="col-"]:last-child { 186 | padding-right: 0; 187 | } 188 | -------------------------------------------------------------------------------- /static/vendor/datatables/media/css/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/datatables/media/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/datatables/media/images/Sorting icons.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/vendor/datatables/media/images/Sorting icons.psd -------------------------------------------------------------------------------- /static/vendor/datatables/media/images/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/datatables/media/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/vendor/datatables/media/images/favicon.ico -------------------------------------------------------------------------------- /static/vendor/datatables/media/images/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/vendor/datatables/media/images/sort_asc.png -------------------------------------------------------------------------------- /static/vendor/datatables/media/images/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/vendor/datatables/media/images/sort_asc_disabled.png -------------------------------------------------------------------------------- /static/vendor/datatables/media/images/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/vendor/datatables/media/images/sort_both.png -------------------------------------------------------------------------------- /static/vendor/datatables/media/images/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/vendor/datatables/media/images/sort_desc.png -------------------------------------------------------------------------------- /static/vendor/datatables/media/images/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/vendor/datatables/media/images/sort_desc_disabled.png -------------------------------------------------------------------------------- /static/vendor/datatables/media/js/dataTables.bootstrap.js: -------------------------------------------------------------------------------- 1 | /*! DataTables Bootstrap 3 integration 2 | * ©2011-2015 SpryMedia Ltd - datatables.net/license 3 | */ 4 | 5 | /** 6 | * DataTables integration for Bootstrap 3. This requires Bootstrap 3 and 7 | * DataTables 1.10 or newer. 8 | * 9 | * This file sets the defaults and adds options to DataTables to style its 10 | * controls using Bootstrap. See http://datatables.net/manual/styling/bootstrap 11 | * for further information. 12 | */ 13 | (function( factory ){ 14 | if ( typeof define === 'function' && define.amd ) { 15 | // AMD 16 | define( ['jquery', 'datatables.net'], function ( $ ) { 17 | return factory( $, window, document ); 18 | } ); 19 | } 20 | else if ( typeof exports === 'object' ) { 21 | // CommonJS 22 | module.exports = function (root, $) { 23 | if ( ! root ) { 24 | root = window; 25 | } 26 | 27 | if ( ! $ || ! $.fn.dataTable ) { 28 | // Require DataTables, which attaches to jQuery, including 29 | // jQuery if needed and have a $ property so we can access the 30 | // jQuery object that is used 31 | $ = require('datatables.net')(root, $).$; 32 | } 33 | 34 | return factory( $, root, root.document ); 35 | }; 36 | } 37 | else { 38 | // Browser 39 | factory( jQuery, window, document ); 40 | } 41 | }(function( $, window, document, undefined ) { 42 | 'use strict'; 43 | var DataTable = $.fn.dataTable; 44 | 45 | 46 | /* Set the defaults for DataTables initialisation */ 47 | $.extend( true, DataTable.defaults, { 48 | dom: 49 | "<'row'<'col-sm-6'l><'col-sm-6'f>>" + 50 | "<'row'<'col-sm-12'tr>>" + 51 | "<'row'<'col-sm-5'i><'col-sm-7'p>>", 52 | renderer: 'bootstrap' 53 | } ); 54 | 55 | 56 | /* Default class modification */ 57 | $.extend( DataTable.ext.classes, { 58 | sWrapper: "dataTables_wrapper form-inline dt-bootstrap", 59 | sFilterInput: "form-control input-sm", 60 | sLengthSelect: "form-control input-sm", 61 | sProcessing: "dataTables_processing panel panel-default" 62 | } ); 63 | 64 | 65 | /* Bootstrap paging button renderer */ 66 | DataTable.ext.renderer.pageButton.bootstrap = function ( settings, host, idx, buttons, page, pages ) { 67 | var api = new DataTable.Api( settings ); 68 | var classes = settings.oClasses; 69 | var lang = settings.oLanguage.oPaginate; 70 | var aria = settings.oLanguage.oAria.paginate || {}; 71 | var btnDisplay, btnClass, counter=0; 72 | 73 | var attach = function( container, buttons ) { 74 | var i, ien, node, button; 75 | var clickHandler = function ( e ) { 76 | e.preventDefault(); 77 | if ( !$(e.currentTarget).hasClass('disabled') && api.page() != e.data.action ) { 78 | api.page( e.data.action ).draw( 'page' ); 79 | } 80 | }; 81 | 82 | for ( i=0, ien=buttons.length ; i 0 ? 101 | '' : ' disabled'); 102 | break; 103 | 104 | case 'previous': 105 | btnDisplay = lang.sPrevious; 106 | btnClass = button + (page > 0 ? 107 | '' : ' disabled'); 108 | break; 109 | 110 | case 'next': 111 | btnDisplay = lang.sNext; 112 | btnClass = button + (page < pages-1 ? 113 | '' : ' disabled'); 114 | break; 115 | 116 | case 'last': 117 | btnDisplay = lang.sLast; 118 | btnClass = button + (page < pages-1 ? 119 | '' : ' disabled'); 120 | break; 121 | 122 | default: 123 | btnDisplay = button + 1; 124 | btnClass = page === button ? 125 | 'active' : ''; 126 | break; 127 | } 128 | 129 | if ( btnDisplay ) { 130 | node = $('
  • ', { 131 | 'class': classes.sPageButton+' '+btnClass, 132 | 'id': idx === 0 && typeof button === 'string' ? 133 | settings.sTableId +'_'+ button : 134 | null 135 | } ) 136 | .append( $('', { 137 | 'href': '#', 138 | 'aria-controls': settings.sTableId, 139 | 'aria-label': aria[ button ], 140 | 'data-dt-idx': counter, 141 | 'tabindex': settings.iTabIndex 142 | } ) 143 | .html( btnDisplay ) 144 | ) 145 | .appendTo( container ); 146 | 147 | settings.oApi._fnBindAction( 148 | node, {action: button}, clickHandler 149 | ); 150 | 151 | counter++; 152 | } 153 | } 154 | } 155 | }; 156 | 157 | // IE9 throws an 'unknown error' if document.activeElement is used 158 | // inside an iframe or frame. 159 | var activeEl; 160 | 161 | try { 162 | // Because this approach is destroying and recreating the paging 163 | // elements, focus is lost on the select button which is bad for 164 | // accessibility. So we want to restore focus once the draw has 165 | // completed 166 | activeEl = $(host).find(document.activeElement).data('dt-idx'); 167 | } 168 | catch (e) {} 169 | 170 | attach( 171 | $(host).empty().html('
      ').children('ul'), 172 | buttons 173 | ); 174 | 175 | if ( activeEl ) { 176 | $(host).find( '[data-dt-idx='+activeEl+']' ).focus(); 177 | } 178 | }; 179 | 180 | 181 | /* 182 | * TableTools Bootstrap compatibility 183 | * Required TableTools 2.1+ 184 | */ 185 | if ( DataTable.TableTools ) { 186 | // Set the classes that TableTools uses to something suitable for Bootstrap 187 | $.extend( true, DataTable.TableTools.classes, { 188 | "container": "DTTT btn-group", 189 | "buttons": { 190 | "normal": "btn btn-default", 191 | "disabled": "disabled" 192 | }, 193 | "collection": { 194 | "container": "DTTT_dropdown dropdown-menu", 195 | "buttons": { 196 | "normal": "", 197 | "disabled": "disabled" 198 | } 199 | }, 200 | "print": { 201 | "info": "DTTT_print_info" 202 | }, 203 | "select": { 204 | "row": "active" 205 | } 206 | } ); 207 | 208 | // Have the collection use a bootstrap compatible drop down 209 | $.extend( true, DataTable.TableTools.DEFAULTS.oTags, { 210 | "collection": { 211 | "container": "ul", 212 | "button": "li", 213 | "liner": "a" 214 | } 215 | } ); 216 | } 217 | 218 | 219 | return DataTable; 220 | })); -------------------------------------------------------------------------------- /static/vendor/datatables/media/js/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/datepicker/build/css/bootstrap-datetimepicker-standalone.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Datetimepicker for Bootstrap 3 3 | * version : 4.17.37 4 | * https://github.com/Eonasdan/bootstrap-datetimepicker/ 5 | */ 6 | @font-face { 7 | font-family: 'Glyphicons Halflings'; 8 | src: url('../fonts/glyphicons-halflings-regular.eot'); 9 | src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg'); 10 | } 11 | 12 | .glyphicon { 13 | position: relative; 14 | top: 1px; 15 | display: inline-block; 16 | font-family: 'Glyphicons Halflings'; 17 | font-style: normal; 18 | font-weight: normal; 19 | line-height: 1; 20 | -webkit-font-smoothing: antialiased; 21 | -moz-osx-font-smoothing: grayscale; 22 | } 23 | 24 | .glyphicon-time:before { 25 | content: "\e023"; 26 | } 27 | 28 | .glyphicon-chevron-left:before { 29 | content: "\e079"; 30 | } 31 | 32 | .glyphicon-chevron-right:before { 33 | content: "\e080"; 34 | } 35 | 36 | .glyphicon-chevron-up:before { 37 | content: "\e113"; 38 | } 39 | 40 | .glyphicon-chevron-down:before { 41 | content: "\e114"; 42 | } 43 | 44 | .glyphicon-calendar:before { 45 | content: "\e109"; 46 | } 47 | 48 | .btn { 49 | display: inline-block; 50 | padding: 6px 12px; 51 | margin-bottom: 0; 52 | font-size: 14px; 53 | font-weight: normal; 54 | line-height: 1.42857143; 55 | text-align: center; 56 | white-space: nowrap; 57 | vertical-align: middle; 58 | -ms-touch-action: manipulation; 59 | touch-action: manipulation; 60 | cursor: pointer; 61 | -webkit-user-select: none; 62 | -moz-user-select: none; 63 | -ms-user-select: none; 64 | user-select: none; 65 | background-image: none; 66 | border: 1px solid transparent; 67 | border-radius: 4px; 68 | } 69 | 70 | .collapse { 71 | display: none; 72 | } 73 | 74 | .collapse.in { 75 | display: block; 76 | } 77 | 78 | .dropdown-menu { 79 | position: absolute; 80 | left: 0; 81 | z-index: 1000; 82 | display: none; 83 | float: left; 84 | min-width: 160px; 85 | padding: 5px 0; 86 | margin: 2px 0 0; 87 | font-size: 14px; 88 | text-align: left; 89 | list-style: none; 90 | background-color: #fff; 91 | -webkit-background-clip: padding-box; 92 | background-clip: padding-box; 93 | border: 1px solid #ccc; 94 | border: 1px solid rgba(0, 0, 0, .15); 95 | border-radius: 4px; 96 | -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, .175); 97 | box-shadow: 0 6px 12px rgba(0, 0, 0, .175); 98 | } 99 | 100 | .list-unstyled { 101 | padding-left: 0; 102 | list-style: none; 103 | } -------------------------------------------------------------------------------- /static/vendor/datepicker/build/css/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/datepicker/build/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/datepicker/build/js/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/datepicker/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/fontawesome/css/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/fontawesome/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/fontawesome/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/vendor/fontawesome/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /static/vendor/fontawesome/fonts/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/fontawesome/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/vendor/fontawesome/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /static/vendor/fontawesome/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/vendor/fontawesome/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /static/vendor/fontawesome/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/vendor/fontawesome/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /static/vendor/fontawesome/fonts/fontawesome-webfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/adarshnin/Hospital_Management_System/7063bd267e4d11ac630f189a3693a2afa97ceddc/static/vendor/fontawesome/fonts/fontawesome-webfont.woff2 -------------------------------------------------------------------------------- /static/vendor/jQuery-Storage-API/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/jquery-localize-i18n/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/jquery-localize-i18n/dist/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/jquery-localize-i18n/dist/jquery.localize.js: -------------------------------------------------------------------------------- 1 | 2 | /* 3 | Copyright (c) Jim Garvin (http://github.com/coderifous), 2008. 4 | Dual licensed under the GPL (http://dev.jquery.com/browser/trunk/jquery/GPL-LICENSE.txt) and MIT (http://dev.jquery.com/browser/trunk/jquery/MIT-LICENSE.txt) licenses. 5 | Written by Jim Garvin (@coderifous) for use on LMGTFY.com. 6 | http://github.com/coderifous/jquery-localize 7 | Based off of Keith Wood's Localisation jQuery plugin. 8 | http://keith-wood.name/localisation.html 9 | */ 10 | (function($) { 11 | var normaliseLang; 12 | normaliseLang = function(lang) { 13 | lang = lang.replace(/_/, '-').toLowerCase(); 14 | if (lang.length > 3) { 15 | lang = lang.substring(0, 3) + lang.substring(3).toUpperCase(); 16 | } 17 | return lang; 18 | }; 19 | $.defaultLanguage = normaliseLang(navigator.languages ? navigator.languages[0] : navigator.language || navigator.userLanguage); 20 | $.localize = function(pkg, options) { 21 | var defaultCallback, fileExtension, intermediateLangData, jsonCall, lang, loadLanguage, localizeElement, localizeForSpecialKeys, localizeImageElement, localizeInputElement, localizeOptgroupElement, notifyDelegateLanguageLoaded, regexify, setAttrFromValueForKey, setTextFromValueForKey, valueForKey, wrappedSet; 22 | if (options == null) { 23 | options = {}; 24 | } 25 | wrappedSet = this; 26 | intermediateLangData = {}; 27 | fileExtension = options.fileExtension || "json"; 28 | loadLanguage = function(pkg, lang, level) { 29 | var file; 30 | if (level == null) { 31 | level = 1; 32 | } 33 | switch (level) { 34 | case 1: 35 | intermediateLangData = {}; 36 | if (options.loadBase) { 37 | file = pkg + ("." + fileExtension); 38 | return jsonCall(file, pkg, lang, level); 39 | } else { 40 | return loadLanguage(pkg, lang, 2); 41 | } 42 | break; 43 | case 2: 44 | if (lang.length >= 2) { 45 | file = "" + pkg + "-" + (lang.substring(0, 2)) + "." + fileExtension; 46 | return jsonCall(file, pkg, lang, level); 47 | } 48 | break; 49 | case 3: 50 | if (lang.length >= 5) { 51 | file = "" + pkg + "-" + (lang.substring(0, 5)) + "." + fileExtension; 52 | return jsonCall(file, pkg, lang, level); 53 | } 54 | } 55 | }; 56 | jsonCall = function(file, pkg, lang, level) { 57 | var ajaxOptions, errorFunc, successFunc; 58 | if (options.pathPrefix != null) { 59 | file = "" + options.pathPrefix + "/" + file; 60 | } 61 | successFunc = function(d) { 62 | $.extend(intermediateLangData, d); 63 | notifyDelegateLanguageLoaded(intermediateLangData); 64 | return loadLanguage(pkg, lang, level + 1); 65 | }; 66 | errorFunc = function() { 67 | if (options.fallback && options.fallback !== lang) { 68 | return loadLanguage(pkg, options.fallback); 69 | } 70 | }; 71 | ajaxOptions = { 72 | url: file, 73 | dataType: "json", 74 | async: false, 75 | timeout: options.timeout != null ? options.timeout : 500, 76 | success: successFunc, 77 | error: errorFunc 78 | }; 79 | if (window.location.protocol === "file:") { 80 | ajaxOptions.error = function(xhr) { 81 | return successFunc($.parseJSON(xhr.responseText)); 82 | }; 83 | } 84 | return $.ajax(ajaxOptions); 85 | }; 86 | notifyDelegateLanguageLoaded = function(data) { 87 | if (options.callback != null) { 88 | return options.callback(data, defaultCallback); 89 | } else { 90 | return defaultCallback(data); 91 | } 92 | }; 93 | defaultCallback = function(data) { 94 | $.localize.data[pkg] = data; 95 | return wrappedSet.each(function() { 96 | var elem, key, value; 97 | elem = $(this); 98 | key = elem.data("localize"); 99 | key || (key = elem.attr("rel").match(/localize\[(.*?)\]/)[1]); 100 | value = valueForKey(key, data); 101 | if (value != null) { 102 | return localizeElement(elem, key, value); 103 | } 104 | }); 105 | }; 106 | localizeElement = function(elem, key, value) { 107 | if (elem.is('input')) { 108 | localizeInputElement(elem, key, value); 109 | } else if (elem.is('textarea')) { 110 | localizeInputElement(elem, key, value); 111 | } else if (elem.is('img')) { 112 | localizeImageElement(elem, key, value); 113 | } else if (elem.is('optgroup')) { 114 | localizeOptgroupElement(elem, key, value); 115 | } else if (!$.isPlainObject(value)) { 116 | elem.html(value); 117 | } 118 | if ($.isPlainObject(value)) { 119 | return localizeForSpecialKeys(elem, value); 120 | } 121 | }; 122 | localizeInputElement = function(elem, key, value) { 123 | var val; 124 | val = $.isPlainObject(value) ? value.value : value; 125 | if (elem.is("[placeholder]")) { 126 | return elem.attr("placeholder", val); 127 | } else { 128 | return elem.val(val); 129 | } 130 | }; 131 | localizeForSpecialKeys = function(elem, value) { 132 | setAttrFromValueForKey(elem, "title", value); 133 | setAttrFromValueForKey(elem, "href", value); 134 | return setTextFromValueForKey(elem, "text", value); 135 | }; 136 | localizeOptgroupElement = function(elem, key, value) { 137 | return elem.attr("label", value); 138 | }; 139 | localizeImageElement = function(elem, key, value) { 140 | setAttrFromValueForKey(elem, "alt", value); 141 | return setAttrFromValueForKey(elem, "src", value); 142 | }; 143 | valueForKey = function(key, data) { 144 | var keys, value, _i, _len; 145 | keys = key.split(/\./); 146 | value = data; 147 | for (_i = 0, _len = keys.length; _i < _len; _i++) { 148 | key = keys[_i]; 149 | value = value != null ? value[key] : null; 150 | } 151 | return value; 152 | }; 153 | setAttrFromValueForKey = function(elem, key, value) { 154 | value = valueForKey(key, value); 155 | if (value != null) { 156 | return elem.attr(key, value); 157 | } 158 | }; 159 | setTextFromValueForKey = function(elem, key, value) { 160 | value = valueForKey(key, value); 161 | if (value != null) { 162 | return elem.text(value); 163 | } 164 | }; 165 | regexify = function(string_or_regex_or_array) { 166 | var thing; 167 | if (typeof string_or_regex_or_array === "string") { 168 | return "^" + string_or_regex_or_array + "$"; 169 | } else if (string_or_regex_or_array.length != null) { 170 | return ((function() { 171 | var _i, _len, _results; 172 | _results = []; 173 | for (_i = 0, _len = string_or_regex_or_array.length; _i < _len; _i++) { 174 | thing = string_or_regex_or_array[_i]; 175 | _results.push(regexify(thing)); 176 | } 177 | return _results; 178 | })()).join("|"); 179 | } else { 180 | return string_or_regex_or_array; 181 | } 182 | }; 183 | lang = normaliseLang(options.language ? options.language : $.defaultLanguage); 184 | if (!(options.skipLanguage && lang.match(regexify(options.skipLanguage)))) { 185 | loadLanguage(pkg, lang, 1); 186 | } 187 | return wrappedSet; 188 | }; 189 | $.fn.localize = $.localize; 190 | return $.localize.data = {}; 191 | })(jQuery); 192 | -------------------------------------------------------------------------------- /static/vendor/jquery.easing/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/jquery.easing/js/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/jquery/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/jquery/dist/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/modernizr/desktop.ini: -------------------------------------------------------------------------------- 1 | [.ShellClassInfo] 2 | InfoTip=This folder is shared online. 3 | IconFile=C:\Program Files (x86)\Google\Drive\googledrivesync.exe 4 | IconIndex=16 5 | -------------------------------------------------------------------------------- /static/vendor/modernizr/modernizr.custom.js: -------------------------------------------------------------------------------- 1 | /*! modernizr 3.2.0 (Custom Build) | MIT * 2 | * http://modernizr.com/download/?-backgroundsize-bgpositionshorthand-bgpositionxy-bgrepeatspace_bgrepeatround-bgsizecover-borderradius-cssanimations-csscalc-csstransforms-csstransforms3d-csstransitions-flexboxtweener-fontface-inlinesvg-localstorage-multiplebgs-preserve3d-sessionstorage-smil-svgclippaths-svgfilters-svgforeignobject-todataurljpeg_todataurlpng_todataurlwebp !*/ 3 | !function(e,t,n){function r(e,t){return typeof e===t}function s(){var e,t,n,s,a,o,i;for(var d in w)if(w.hasOwnProperty(d)){if(e=[],t=w[d],t.name&&(e.push(t.name.toLowerCase()),t.options&&t.options.aliases&&t.options.aliases.length))for(n=0;np;p++)if(m=e[p],v=_.style[m],o(m,"-")&&(m=f(m)),_.style[m]!==n){if(a||r(s,"undefined"))return d(),"pfx"==t?m:!0;try{_.style[m]=s}catch(w){}if(_.style[m]!=v)return d(),"pfx"==t?m:!0}return d(),!1}function g(e,t){return function(){return e.apply(t,arguments)}}function m(e,t,n){var s;for(var a in e)if(e[a]in t)return n===!1?e[a]:(s=t[e[a]],r(s,"function")?g(s,n||t):s);return!1}function v(e,t,n,s,a){var o=e.charAt(0).toUpperCase()+e.slice(1),i=(e+" "+C.join(o+" ")+o).split(" ");return r(t,"string")||r(t,"undefined")?p(i,t,s,a):(i=(e+" "+k.join(o+" ")+o).split(" "),m(i,t,n))}function h(e,t,r){return v(e,n,n,t,r)}var w=[],y={_version:"3.2.0",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,t){var n=this;setTimeout(function(){t(n[e])},0)},addTest:function(e,t,n){w.push({name:e,fn:t,options:n})},addAsyncTest:function(e){w.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=y,Modernizr=new Modernizr;var b=[],x=t.documentElement,S="svg"===x.nodeName.toLowerCase(),T="Moz O ms Webkit",C=y._config.usePrefixes?T.split(" "):[];y._cssomPrefixes=C;var E={elem:i("modernizr")};Modernizr._q.push(function(){delete E.elem});var _={style:E.elem.style};Modernizr._q.unshift(function(){delete _.style});var k=y._config.usePrefixes?T.toLowerCase().split(" "):[];y._domPrefixes=k,y.testAllProps=v,y.testAllProps=h,Modernizr.addTest("backgroundsize",h("backgroundSize","100%",!0)),Modernizr.addTest("bgpositionshorthand",function(){var e=i("a"),t=e.style,n="right 10px bottom 10px";return t.cssText="background-position: "+n+";",t.backgroundPosition===n}),Modernizr.addTest("bgpositionxy",function(){return h("backgroundPositionX","3px",!0)&&h("backgroundPositionY","5px",!0)}),Modernizr.addTest("bgrepeatround",h("backgroundRepeat","round")),Modernizr.addTest("bgrepeatspace",h("backgroundRepeat","space")),Modernizr.addTest("bgsizecover",h("backgroundSize","cover")),Modernizr.addTest("borderradius",h("borderRadius","0px",!0)),Modernizr.addTest("cssanimations",h("animationName","a",!0));var z=y._config.usePrefixes?" -webkit- -moz- -o- -ms- ".split(" "):[];y._prefixes=z,Modernizr.addTest("csscalc",function(){var e="width:",t="calc(10px);",n=i("a");return n.style.cssText=e+z.join(t+e),!!n.style.length}),Modernizr.addTest("csstransforms",function(){return-1===navigator.userAgent.indexOf("Android 2.")&&h("transform","scale(1)",!0)});var P=y.testStyles=l,R="CSS"in e&&"supports"in e.CSS,N="supportsCSS"in e;Modernizr.addTest("supports",R||N),Modernizr.addTest("csstransforms3d",function(){var e=!!h("perspective","1px",!0),t=Modernizr._config.usePrefixes;if(e&&(!t||"webkitPerspective"in x.style)){var n,r="#modernizr{width:0;height:0}";Modernizr.supports?n="@supports (perspective: 1px)":(n="@media (transform-3d)",t&&(n+=",(-webkit-transform-3d)")),n+="{#modernizr{width:7px;height:18px;margin:0;padding:0;border:0}}",P(r+n,function(t){e=7===t.offsetWidth&&18===t.offsetHeight})}return e}),Modernizr.addTest("csstransitions",h("transition","all",!0)),Modernizr.addTest("flexboxtweener",h("flexAlign","end",!0));var j=function(){var e=navigator.userAgent,t=e.match(/applewebkit\/([0-9]+)/gi)&&parseFloat(RegExp.$1),n=e.match(/w(eb)?osbrowser/gi),r=e.match(/windows phone/gi)&&e.match(/iemobile\/([0-9])+/gi)&&parseFloat(RegExp.$1)>=9,s=533>t&&e.match(/android/gi);return n||s||r}();j?Modernizr.addTest("fontface",!1):P('@font-face {font-family:"font";src:url("https://")}',function(e,n){var r=t.getElementById("smodernizr"),s=r.sheet||r.styleSheet,a=s?s.cssRules&&s.cssRules[0]?s.cssRules[0].cssText:s.cssText||"":"",o=/src/i.test(a)&&0===a.indexOf(n.split(" ")[0]);Modernizr.addTest("fontface",o)}),Modernizr.addTest("inlinesvg",function(){var e=i("div");return e.innerHTML="","http://www.w3.org/2000/svg"==("undefined"!=typeof SVGRect&&e.firstChild&&e.firstChild.namespaceURI)}),Modernizr.addTest("localstorage",function(){var e="modernizr";try{return localStorage.setItem(e,e),localStorage.removeItem(e),!0}catch(t){return!1}}),Modernizr.addTest("multiplebgs",function(){var e=i("a").style;return e.cssText="background:url(https://),url(https://),red url(https://)",/(url\s*\(.*?){3}/.test(e.background)}),Modernizr.addTest("preserve3d",h("transformStyle","preserve-3d")),Modernizr.addTest("sessionstorage",function(){var e="modernizr";try{return sessionStorage.setItem(e,e),sessionStorage.removeItem(e),!0}catch(t){return!1}});var A={}.toString;Modernizr.addTest("smil",function(){return!!t.createElementNS&&/SVGAnimate/.test(A.call(t.createElementNS("http://www.w3.org/2000/svg","animate")))}),Modernizr.addTest("svgclippaths",function(){return!!t.createElementNS&&/SVGClipPath/.test(A.call(t.createElementNS("http://www.w3.org/2000/svg","clipPath")))}),Modernizr.addTest("svgfilters",function(){var t=!1;try{t="SVGFEColorMatrixElement"in e&&2==SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE}catch(n){}return t}),Modernizr.addTest("svgforeignobject",function(){return!!t.createElementNS&&/SVGForeignObject/.test(A.call(t.createElementNS("http://www.w3.org/2000/svg","foreignObject")))}),Modernizr.addTest("canvas",function(){var e=i("canvas");return!(!e.getContext||!e.getContext("2d"))});var O=i("canvas");Modernizr.addTest("todataurljpeg",function(){return!!Modernizr.canvas&&0===O.toDataURL("image/jpeg").indexOf("data:image/jpeg")}),Modernizr.addTest("todataurlpng",function(){return!!Modernizr.canvas&&0===O.toDataURL("image/png").indexOf("data:image/png")}),Modernizr.addTest("todataurlwebp",function(){var e=!1;try{e=!!Modernizr.canvas&&0===O.toDataURL("image/webp").indexOf("data:image/webp")}catch(t){}return e}),s(),a(b),delete y.addTest,delete y.addAsyncTest;for(var L=0;L