Esempio n. 1
0
def signUp():
    data = request.get_json()
    try:
        email = data["email"]
        name = data["name"]
        password = generate_password_hash(data["password"])
        gender = data["gender"]
        phone = data["phone"]
    except:
        raise InvalidUsage("Algo deu errado na inscrição do usuário.",
                           status_code=410)

    newUser = User(email=email,
                   name=name,
                   pw_hash=password,
                   gender=gender,
                   phone=phone)

    try:
        db.session.add(newUser)
        db.session.commit()
    except:
        raise InvalidUsage("Erro na persistência dos dados no banco.",
                           status_code=410)

    return "Sucesso na inscrição do usuário."
Esempio n. 2
0
File: beds.py Progetto: zhankura/BGS
def change_bed(id):
    params_dict = {
        'patient_id': request.json.get('patient_id', None),
        'sn': request.json.get('sn', None),
        'bed_id': request.json.get('bed_id', None)
    }
    try:
        ChangeBedValidation().load(params_dict)
    except ValidationError as e:
        return jsonify({'status': 'fail', 'reason': str(e)})
    bed = Bed.query.get_or_404(id)
    if 'sn' in request.json and request.json['sn']:
        sn = request.json['sn']
        accuchek = Accuchek.query.filter(Accuchek.sn == sn).first()
        if accuchek is None:
            return jsonify({'status': 'fail', 'reason': '血糖仪不存在'})
        may_bed = bed.query.filter(Bed.sn == sn).first()
        if may_bed:
            if may_bed.bed_id != bed.bed_id:
                return jsonify({'status': 'fail', 'reason': '血糖仪已经被用在其他床位上了'})
    if 'patient_id' in request.json and request.json['patient_id']:
        patient_id = request.json['patient_id']
        may_bed = bed.query.filter(Bed.patient_id == patient_id).first()
        if may_bed and may_bed.bed_id != bed.bed_id:
            return jsonify({'status': 'fail', 'reason': '病人已经被安置在了其他床位上'})
    bed_history = BedHistory()
    for k in request.json:
        if hasattr(bed_history, k):
            setattr(bed_history, k, request.json[k])
    date = datetime.datetime.now().date()
    time = str(datetime.datetime.now().time())[0:8]
    bed_history.bed_id = id
    bed_history.date = date
    bed_history.time = time
    try:
        db.session.add(bed_history)
        db.session.add(bed)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    for k in request.json:
        if hasattr(bed, k):
            setattr(bed, k, request.json[k])
    try:
        db.session.add(bed)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    return jsonify({
        'bed': bed.to_json(),
        'status': 'success',
        'reason': '数据已经被更改了'
    })
Esempio n. 3
0
def delete_patients(id):
    patient = Patient.query.get_or_404(id)
    for data in patient.datas:
        try:
            db.session.delete(data)
            db.session.commit()
        except IntegrityError as e:
            raise InvalidUsage(message=str(e), status_code=500)
    try:
        db.session.delete(patient)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    return jsonify({'status': 'success', 'reason': '数据已经被删除了'})
Esempio n. 4
0
File: beds.py Progetto: zhankura/BGS
def delete_bed(id):
    bed = Bed.query.get_or_404(id)
    bedhistorys = bed.bed_historys.all()
    try:
        db.session.delete(bed)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    for bedhistory in bedhistorys:
        try:
            db.session.delete(bedhistory)
            db.session.commit()
        except IntegrityError as e:
            raise InvalidUsage(message=str(e), status_code=500)
    return jsonify({'status': 'success', 'reason': '数据已经被删除了'}), 200
Esempio n. 5
0
def getUser(id):
    try:
        user = User.query.filter_by(id=id).first()
    except:
        raise InvalidUsage("Erro ao procurar usuário.", status_code=410)
    userData = user.getProfile()
    return jsonify(userData)
Esempio n. 6
0
def change_history(id):
    params_dict = {
        'history_id': request.json.get('history_id', None),
        'sn': request.json.get('sn', None),
        'id_number': request.json.get('id_number', None),
        'time': request.json.get('time', None),
        'date': request.json.get('date', None),
        'bed_id': request.json.get('bed_id', None),
        'patient_id': request.json.get('patient_id', None)
    }
    try:
        ChangeBedHistoryValidation().load(params_dict)
    except ValidationError as e:
        return jsonify({'status': 'fail', 'reason': str(e)})
    bed_history = BedHistory.query.get_or_404(id)
    for k in request.json:
        if hasattr(bed_history, k):
            setattr(bed_history, k, request.json[k])
    if 'time' in request.json:
        time = request.json['time']
        if len(time) < 8:
            time = time[0:5] + ':00'
            bed_history.time = time
    try:
        db.session.add(bed_history)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    return jsonify({
        "bed_history": bed_history.to_json(),
        "status": "success",
        "reason": "数据已经被更改了"
    })
Esempio n. 7
0
def new_patient():
    params_dict = {
        'patient_id': request.json.get('patient_id', None),
        'doctor_name': request.json.get('doctor_name', None),
        'id_number': request.json.get('id_number', None),
        'tel': request.json.get('tel', None),
        'age': request.json.get('age', None),
        'sex': request.json.get('sex', None),
        'patient_name': request.json.get('patient_name', None)
    }
    try:
        PatientValidation().load(params_dict)
    except ValidationError as e:
        return jsonify({'status': 'fail', 'reason': str(e)})
    id_number = request.json['id_number']
    patient = Patient.query.filter(Patient.id_number == id_number).first()
    if patient:
        return jsonify({'status': 'fail', 'reason': '这个医疗卡号已经被使用了'})
    patient = Patient.from_json(request.json)
    try:
        db.session.add(patient)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    return jsonify({
        'patient': patient.to_json(),
        'status': 'success',
        'reason': '数据已经被添加'
    })
Esempio n. 8
0
def change_patient(id):
    params_dict = {
        'patient_id': request.json.get('patient_id', None),
        'doctor_name': request.json.get('doctor_name', None),
        'id_number': request.json.get('id_number', None),
        'tel': request.json.get('tel', None),
        'age': request.json.get('age', None),
        'sex': request.json.get('sex', None),
        'patient_name': request.json.get('patient_name', None)
    }
    try:
        ChangePatientValidation().load(params_dict)
    except ValidationError as e:
        return jsonify({'status': 'fail', 'reason': str(e)})
    patient = Patient.query.get_or_404(id)
    if 'id_number' in request.json:
        id_number = request.json['id_number']
        may_patient = Patient.query.filter(
            Patient.id_number == id_number).first()
        if may_patient and patient.id_number != id_number:
            if may_patient.patient_id != patient.patient_id:
                return jsonify({'status': 'fail', 'reason': '这个医疗卡号已经被使用了'})
    for k in request.json:
        if hasattr(patient, k):
            setattr(patient, k, request.json[k])
    try:
        db.session.add(patient)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    return jsonify({
        'patient': patient.to_json(),
        'status': 'success',
        'reason': '数据已经更改'
    })
Esempio n. 9
0
def logOut():

    try:
        logout_user()
        return "Logout feito com sucesso."
    except:
        raise InvalidUsage("Não foi possível fazer o Logout.", status_code=401)
Esempio n. 10
0
def new_history():
    params_dict = {
        'history_id': request.json.get('history_id', None),
        'sn': request.json.get('sn', None),
        'id_number': request.json.get('id_number', None),
        'time': request.json.get('time', None),
        'date': request.json.get('date', None),
        'bed_id': request.json.get('bed_id', None),
        'patient_id': request.json.get('patient_id', None)
    }
    try:
        BedHistoryValidation().load(params_dict)
    except ValidationError as e:
        return jsonify({'status': 'fail', 'reason': str(e)})
    bed_history = BedHistory()
    for k in request.json:
        if hasattr(bed_history, k):
            setattr(bed_history, k, request.json[k])
    date = datetime.datetime.now().date()
    time = str(datetime.datetime.now().time())[0:8]
    bed_history.date = date
    bed_history.time = time
    try:
        db.session.add(bed_history)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    return jsonify({
        "bed_history": bed_history.to_json(),
        "status": "success",
        "reason": "数据已经被添加"
    })
Esempio n. 11
0
def delete_history(id):
    bed_history = BedHistory.query.get_or_404(id)
    try:
        db.session.delete(bed_history)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    return jsonify({"status": "success", "reason": "数据已经被删除了"})
Esempio n. 12
0
def getSession():

    try:
        user = current_user
        data = user.getProfile()
    except:
        raise InvalidUsage("Usuário não está logado.", status_code=401)

    return jsonify(data)
Esempio n. 13
0
def getTeams():

    path = "Teams.txt"
    try:
        f = open(path, "r", encoding="utf-8")
    except:
        raise InvalidUsage("Erro na aquisição dos termos.", status_code=410)

    return jsonify(f.readlines())
Esempio n. 14
0
def delete_data(id):
    data = Data.query.get_or_404(id)
    try:
        db.session.delete(data)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    return jsonify({
        'status': 'success',
        'reason': '数据已经被删除'
    }), 200
Esempio n. 15
0
def terms():

    path = "Terms.txt"
    try:
        f = open(path, "r", encoding="utf-8")
    except:
        raise InvalidUsage("Erro na aquisição dos termos.", status_code=410)

    text = f.read()

    data = {"terms": current_user.terms, "text": text}
    return jsonify(data)
Esempio n. 16
0
def login():

    data = request.get_json()
    try:
        email = data["email"]
        password = data["password"]
    except:
        raise InvalidUsage("Informações faltando.", status_code=410)

    user = User.query.filter_by(email=email).first()
    if user is None:
        raise InvalidUsage("Usuário não encontrado.", status_code=410)

    if user.fb == True:
        raise InvalidUsage("Faça Login usando o botão do Facebook.",
                           status_code=401)

    if check_password_hash(user.pw_hash, password):
        login_user(user)
        return jsonify(user.id)

    raise InvalidUsage("Usuário ou senha incorretos.", status_code=401)
Esempio n. 17
0
File: beds.py Progetto: zhankura/BGS
def new_bed():
    params_dict = {
        'sn': request.json.get('sn', None),
        'bed_id': request.json.get('bed_id', None),
        'patient_id': request.json.get('patient_id', None)
    }
    try:
        BedValidation().load(params_dict)
    except ValidationError as e:
        return jsonify({'status': 'fail', 'reason': str(e)})
    bed = Bed()
    bedhistory = BedHistory()
    if 'sn' in request.json:
        sn = request.json['sn']
        maybed_sn = bed.query.filter(Bed.sn == sn).first()
        if maybed_sn:
            return jsonify({'status': 'fail', 'reason': '血糖仪已经被使用在了其他床位'})
    if 'patient_id' in request.json:
        patient_id = request.json['patient_id']
        mayed_id = bed.query.filter(Bed.patient_id == patient_id).first()
        if mayed_id:
            return jsonify({'status': 'fail', 'reason': '病人已经被安置在其他床位'})
        else:
            bedhistory.patient_id = patient_id
            for k in request.json:
                if hasattr(bedhistory, k):
                    setattr(bedhistory, k, request.json[k])
    for k in request.json:
        if hasattr(bed, k):
            setattr(bed, k, request.json[k])
    try:

        db.session.add(bed)
        db.session.commit()
        bedhistory.bed_id = bed.bed_id
        date = datetime.datetime.now().date()
        time = str(datetime.datetime.now().time())[0:8]
        bedhistory.date = date
        bedhistory.time = time
        db.session.add(bedhistory)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    return jsonify({
        'bed': bed.to_json(),
        'status': 'success',
        'reason': '数据已经被添加'
    })
Esempio n. 18
0
def delete_operator(id):
    operator = Operator.query.get_or_404(id)
    if current_user.tel != operator.tel:
        return jsonify({
            'status':'fail',
            'reason':'没有权限'
        }), 403
    try:
        db.session.delete(operator)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    return jsonify({
        'status': 'success',
        'reason': '数据已经被删除了'
    }), 200
Esempio n. 19
0
def setData():

    data = request.get_json()
    user = current_user
    print(data)
    for key in data:
        try:
            if user.setAttributes(key, data[key]):
                db.session.commit()
                continue
        except:
            raise InvalidUsage(
                "Erro ao alterar dados. Atributo inexistente ou inalterável.",
                status_code=410)

    userData = user.getProfile()
    return jsonify(userData)
Esempio n. 20
0
def change_password():
    operator_name  =request.json['operator_name']
    password = "".join(random.sample('1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ',8))
    operator = Operator.query.filter(Operator.operator_name == operator_name).first()
    if operator is None:
        return jsonify({
            'status':'fail',
            'reason':'用户不存在'
        })
    operator.password = password
    try:
        db.session.add(operator)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    return jsonify({
        'status':'success',
        'reason':'密码更改成功',
        'new_password':password,
        'operator':operator.to_json()
    })
Esempio n. 21
0
def fbSignUp():
    data = request.get_json()
    try:
        email = data["email"]
        name = data["name"]
    except:
        raise InvalidUsage("Informações faltando.", status_code=410)

    user = User.query.filter_by(email=email).first()
    if user is None:
        user = User(email=email,
                    name=name,
                    pw_hash="",
                    phone="",
                    gender="Não informado",
                    fb=True)
        db.session.add(user)
        db.session.commit()

    login_user(user)

    return jsonify(user.id)
Esempio n. 22
0
def change_sparedata_data(id):
    params_dict = {
        'data_id': request.json.get('data_id', None),
        'sn': request.json.get('sn', None),
        'glucose': request.json.get('glucose', None),
        'id_number': request.json.get('id_number', None),
        'time': request.json.get('time', None),
        'date': request.json.get('date', None),
        'hidden': request.json.get('hidden', None),
        'doctor_name': request.json.get('doctor_name', None),
        'sex': request.json.get('sex', None),
        'patient_name': request.json.get('patient_name', None),
        'age': request.json.get('age', None),
        'tel': request.json.get('tel', None)
    }

    try:
        ChangeSpareDataValidation().load(params_dict)
    except ValidationError as e:
        return jsonify({
            'status': 'fail',
            'reason': str(e)
        })
    data = SpareData.query.get_or_404(id)
    for k in request.json:
        if hasattr(data, k):
            setattr(data, k, request.json[k])
    try:
        db.session.add(data)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    return jsonify({
        'sparedata':data.to_full_json(),
        'status':'success',
        'reason':'备用机数据已经被修改了'
    })
Esempio n. 23
0
def change_operator(id):
    params_dict = {
        'operator_id': request.json.get('operator_id', None),
        'operator_name': request.json.get('operator_name', None),
        'password': request.json.get('password', None),
        'tel': request.json.get('tel', None),
        'hospital': request.json.get('hospital', None),
        'lesion': request.json.get('lesion', None),
        'email': request.json.get('email', None),
        'office': request.json.get('office', None)
    }
    try:
        ChangeOperatorValidation().load(params_dict)
    except ValidationError as e:
        return jsonify({
            'status': 'fail',
            'reason': str(e)
        })
    operator = Operator.query.get_or_404(id)
    for k in request.json:
        if k == 'password_hash':
            continue
        if k == 'password':
            operator.password =  request.json[k]
        if hasattr(operator, k):
            setattr(operator, k, request.json[k])
    try:
        db.session.add(operator)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    return jsonify({
        'operator': operator.to_json(),
        'status': 'success',
        'reason': '数据已经被更改了'
    }), 200
Esempio n. 24
0
def new_data_artificial():
    params_dict = {
        'data_id': request.json.get('data_id', None),
        'sn': request.json.get('sn', None),
        'glucose': request.json.get('glucose', None),
        'id_number': request.json.get('id_number', None),
        'time': request.json.get('time', None),
        'date': request.json.get('date', None),
        'hidden': request.json.get('hidden', None),
        'patient_id': request.json.get('patient_id', None),
        'patient_name': request.json.get('patient_name', None),
        'sex': request.json.get('sex', None),
        'tel': request.json.get('tel', None),
        'age': request.json.get('age', None),
        'doctor_name': request.json.get('doctor_name', None)
    }
    try:
        DataArtificialValidation().load(params_dict)
    except ValidationError as e:
        return jsonify({
            'status': 'fail',
            'reason': str(e)
        })
    accuchek = Accuchek.query.filter(Accuchek.sn == request.json.get('sn')).first()
    if accuchek is None:
        return jsonify({
            'status': 'fail',
            'reason': '血糖仪不存在'
        })
    data = Data()
    for k in request.json:
        if hasattr(data, k):
            setattr(data, k, request.json[k])

    if 'date' not in request.json:
        data.date = datetime.utcnow().date()
    if 'time' not in request.json:
        data.time = str(datetime.datetime.now().time())[0:8]
    if 'time' in request.json:
        time = request.json['time']
        if len(time)<8:
            time = time[0:5]+':00'
            data.time = time
    patient_id = request.json['patient_id']
    patient = Patient.query.filter(Patient.patient_id == patient_id).first()
    if patient is None:
        patient = Patient()
    for k in request.json:
        if hasattr(patient, k):
            setattr(patient, k, request.json[k])
    try:
        db.session.add(patient)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    try:
        db.session.add(data)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    return jsonify({
        'data': data.to_json_without_patient(),
        'status': 'success',
        'reason': '数据已经被添加了'
    })
Esempio n. 25
0
def new_operator():
    params_dict = {
        'operator_id': request.json.get('operator_id', None),
        'operator_name': request.json.get('operator_name', None),
        'password': request.json.get('password', None),
        'tel': request.json.get('tel', None),
        'hospital': request.json.get('hospital', None),
        'lesion': request.json.get('lesion', None),
        'email': request.json.get('email', None),
        'office':request.json.get('office', None)
    }
    try:
        OperatorValidation().load(params_dict)
    except ValidationError as e:
        return jsonify({
            'status':'fail',
            'reason':str(e)
        })
    if 'tel'  not in request.json or request.json['tel'] is None:
        return jsonify({
            'status':'fail',
            'reason':'需要有电话'
        })
    if 'operator_name'  not in request.json or request.json['operator_name'] is None:
        return jsonify({
            'status':'fail',
            'reason':'需要有账户名'
        })
    tel = request.json['tel']
    operator_name = request.json['operator_name']
    operator = Operator.query.filter(Operator.operator_name == operator_name).first()
    if operator:
        return jsonify({
            'status':'fail',
            'reason':'用户名已经被使用了'
        })
    operator = Operator.query.filter(Operator.tel == tel).first()
    if operator:
        return jsonify({
            'status':'fail',
            'reason':'电话或者邮箱已经被使用了'
        })
    operator = Operator.from_json(request.json)
    # req = requests.session()
    # try:
    #     res = req.get('http://www.baidu.com')
    #     if res.status_code != 200:
    #         return jsonify({
    #             'status': 'fail',
    #             'reason': 'the web does not connect to the outer net',
    #             'operators': []
    #         })
    # except:
    #     return jsonify({
    #         'status': 'fail',
    #         'reason': 'the web does not connect to the outer net',
    #         'operators': []
    #     })
    # msg = Message('Operator active', sender='*****@*****.**', recipients=['*****@*****.**'])
    # host = 'http://101.200.52.233:8080'
    # msg.body = 'the operator name is %s, the operator id is%id, the operator url is %s%s' % (
    # operator.operator_name, operator.id, host, url_for('operator_blueprint.get_operator', id=operator.id))
    # # mail.send(msg)
    # try:
    #     mail.send(msg)
    # except:
    #     return jsonify({
    #         'status': 'fail',
    #         'reason': 'the mail has been posted failed',
    #         'operators': []
    #     })
    try:
        db.session.add(operator)
        db.session.commit()
    except IntegrityError as e:
        raise InvalidUsage(message=str(e), status_code=500)
    return jsonify({
        'operator':operator.to_json(),
        'status':'success',
        'reason':'数据已经被添加'
    })
Esempio n. 26
0
def new_data_auto():
    params_dict = {
        'data_id': request.json.get('data_id', None),
        'sn': request.json.get('sn', None),
        'patient_id': request.json.get('patient_id',None),
        'glucose': request.json.get('glucose', None),
        'id_number': request.json.get('id_number', None),
        'time': request.json.get('time', None),
        'date': request.json.get('date', None),
        'hidden': request.json.get('hidden', None)
    }
    try:
        DataValidation().load(params_dict)
    except ValidationError as e:
        return jsonify({
            'status': 'fail',
            'reason': str(e)
        })
    if request.json['sn'] not in sn_numbers:
        data = Data()
        for k in request.json:
            if hasattr(data, k):
                setattr(data, k, request.json[k])
        if 'date' not in request.json:
            data.date = datetime.utcnow().date()
        if 'time' not in request.json:
            data.time = str(datetime.datetime.now().time())[0:8]
        if 'time' in request.json:
            time = request.json['time']
            if len(time) < 8:
                time = time[0:5] + ':00'
                data.time = time
        accuchek = Accuchek.query.filter(Accuchek.sn == request.json['sn']).first()
        if accuchek is None:
            return jsonify({
                'status':'fail',
                'reason':'血糖仪不存在'
            })
        bed = accuchek.bed if accuchek is not None else None
        patient = bed.patient if bed is not None else None
        id_number = patient.id_number if patient is not None else None
        patient_id = patient.patient_id if patient is not None else None
        data.id_number = id_number
        data.patient_id = patient_id
        try:
            db.session.add(data)
            db.session.commit()
        except IntegrityError as e:
            raise InvalidUsage(message=str(e), status_code=500)
        return jsonify({
            'patient':data.patient.to_json_patient(),
            'data': data.to_json_without_patient(),
            'status': 'success',
            'reason': '数据已经被添加了'
        })
    else:
        data = SpareData()
        for k in request.json:
            if hasattr(data, k):
                setattr(data, k, request.json[k])

        if 'date' not in request.json:
            data.date = datetime.utcnow().date()
        if 'time' not in request.json:
            data.time = str(datetime.datetime.now().time())[0:8]
        if 'time' in request.json:
            time = request.json['time']
            if len(time) < 8:
                time = time[0:5] + ':00'
                data.time = time
        try:
            db.session.add(data)
            db.session.commit()
        except IntegrityError as e:
            raise InvalidUsage(message=str(e), status_code=500)
        return jsonify({
            'data': data.to_full_json(),
            'status': 'success',
            'reason': '数据已经被添加了'
        })