Ejemplo n.º 1
0
def get_diagnoses_by_sapi():
    try:
        headers = request.args
        sapi_id = headers['sapi']
        responses = response()
        diagnoses = mongo.db.diagnoses.aggregate([{
            '$match': {
                'sapiId': ObjectId(sapi_id)
            }
        }, {
            '$group': {
                '_id': '$diagnose',
                'total': {
                    '$sum': 1
                }
            }
        }])
        output = []
        for s in diagnoses:
            output.append({'diagnose': s['_id'], 'total': s['total']})
        responses.setData(output)
        return jsonify(responses.getResponse())
    except:
        responses = response()
        responses.setStatus(False)
        responses.setMessage("Something wrong :(")
        return jsonify(responses.getResponse())
Ejemplo n.º 2
0
def get_gejala_by_sapi():
    try:
        headers = request.args
        sapi_id = headers['sapi']
        responses = response()
        diagnoses = mongo.db.diagnoses.aggregate([{
            '$match': {
                'sapiId': ObjectId(sapi_id)
            }
        }, {
            '$unwind': {
                'path': '$gejala'
            }
        }, {
            '$group': {
                '_id': '$gejala.namaAttributes',
                'total': {
                    '$sum': {
                        '$multiply': ['$gejala.nilai']
                    }
                }
            }
        }])
        output = []
        for s in diagnoses:
            output.append({'gejala': s['_id'], 'total': s['total']})
        responses.setData(output)
        return jsonify(responses.getResponse())
    except:
        responses = response()
        responses.setStatus(False)
        responses.setMessage("Something wrong :(")
        return jsonify(responses.getResponse())
Ejemplo n.º 3
0
def upload_file():
    try:
        file = request.files['file']
        if file and allowed_file(file.filename):
            filename = secure_filename(file.filename)
            file.save(os.path.join(app.config['UPLOAD_FOLDER'], filename))
            data = pd.read_csv("././static/datacobacoba.csv", header=None)
            # GET HEADER
            colls_name = get_header(data)
            # GET ATTRIBUTE
            feature_cols = save_features(colls_name)
            # PRE PROCESSING
            data_training = pre_processing(data, colls_name)
            # TRAINING
            model = training(data_training, feature_cols)
            # SAVE MODEL`
            save_model(model)
            #  create_tree(data_training,feature_cols,model)
            responses = response()
            responses.setStatus(True)
            responses.setMessage("Succesfully save model")
            return jsonify(responses.getResponse())

    except:
        responses = response()
        responses.setStatus(False)
        responses.setMessage("Something wrong :(")
        return jsonify(responses.getResponse())
Ejemplo n.º 4
0
def get_all_gejala_limit():
    try:
        responses = response()
        diagnoses = mongo.db.diagnoses.aggregate([{
            '$unwind': {
                'path': '$gejala'
            }
        }, {
            '$group': {
                '_id': '$gejala.namaAttributes',
                'total': {
                    '$sum': {
                        '$multiply': ['$gejala.nilai']
                    }
                }
            }
        }, {
            '$sort': {
                'total': -1
            }
        }, {
            '$limit': 5
        }])
        output = []
        for s in diagnoses:
            output.append({'gejala': s['_id'], 'total': s['total']})
        responses.setData(output)
        return jsonify(responses.getResponse())
    except:
        responses = response()
        responses.setStatus(False)
        responses.setMessage("Something wrong :(")
        return jsonify(responses.getResponse())
Ejemplo n.º 5
0
def get_gejala_by_sapi_in_time_limit():
    try:
        headers = request.args
        sapi_id = headers['sapi']
        start = headers['start']
        end = headers['end']
        start_arr = start.split("-")
        end_arr = end.split("-")
        start_year = int(start_arr[0])
        start_month = int(start_arr[1])
        start_day = int(start_arr[2])
        end_year = int(end_arr[0])
        end_month = int(end_arr[1])
        end_day = int(end_arr[2])
        responses = response()
        diagnoses = mongo.db.diagnoses.aggregate([{
            '$match': {
                '$and': [{
                    'sapiId': ObjectId(sapi_id)
                }, {
                    'tanggal': {
                        '$gte':
                        datetime(start_year, start_month, start_day, 0, 0, 0),
                        '$lte':
                        datetime(end_year, end_month, end_day, 0, 0, 0)
                    }
                }]
            }
        }, {
            '$unwind': {
                'path': '$gejala'
            }
        }, {
            '$group': {
                '_id': '$gejala.namaAttributes',
                'total': {
                    '$sum': {
                        '$multiply': ['$gejala.nilai']
                    }
                }
            }
        }, {
            '$sort': {
                'total': -1
            }
        }, {
            '$limit': 5
        }])
        output = []
        for s in diagnoses:
            output.append({'gejala': s['_id'], 'total': s['total']})
        responses.setData(output)
        return jsonify(responses.getResponse())
    except:
        responses = response()
        responses.setStatus(False)
        responses.setMessage("Something wrong :(")
        return jsonify(responses.getResponse())
Ejemplo n.º 6
0
def add_solution():
    try:
        d = request.get_json()
        mongo.db.solutions.insert_one(d)
        responses = response()
        responses.setStatus(True)
        responses.setData(d)
        return jsonify(responses.getResponse())

    except:
        responses = response()
        responses.setStatus(False)
        responses.setMessage("Something wrong :(")
        return jsonify(responses.getResponse())
Ejemplo n.º 7
0
def testing_data():
    try:
        model_testing = {}
        model_for_saving = {}
        attributes = get_features()
        labels = get_label()
        d = request.get_json()
        headers = request.args
        sapi_id = headers['sapi']

        for i in range(len(attributes)):
            model_testing.update({attributes[i]: [d.get(attributes[i])]})
            model_for_saving.update({attributes[i]: d.get(attributes[i])})

        Z_test = pd.DataFrame(data=model_testing)
        with open("pickle_model.pkl", 'rb') as file:
            pickle_model = pickle.load(file)

        result = pickle_model.predict(Z_test)
        responses = response()
        responses.setStatus(True)
        # responses.setData(labels[result[0]])
        # Save
        attributes2 = []
        for i in model_for_saving:
            attributes2.append({
                "namaAttributes": i,
                "nilai": model_for_saving[i]
            })
        res = labels[result[0]]
        solu = get_solutions(int(result[0]))
        diagnose_insert = {
            "sapiId": ObjectId(sapi_id),
            "diagnose": res,
            "gejala": attributes2,
            "tanggal": datetime.now(),
            "treatment": solu[0]["treatment"],
            "prevention": solu[0]["prevention"]
        }
        mongo.db.diagnoses.insert_one(diagnose_insert)
        responses.setData(diagnose_insert)
        return jsonify(responses.getResponse())

    except:
        responses = response()
        responses.setStatus(False)
        responses.setMessage("Something wrong :(")
        return jsonify(responses.getResponse())
Ejemplo n.º 8
0
def get_all_diseases():
    try:
        responses = response()
        label = mongo.db.labels
        output = []
        for s in label.find():
            output.append({
                'namaLabel': s['namaLabel'],
                'labelIdentity': s['labelIdentity']
            })
        responses.setData(output)
        return jsonify(responses.getResponse())
    except:
        responses = response()
        responses.setStatus(False)
        responses.setMessage("Something wrong :(")
        return jsonify(responses.getResponse())
Ejemplo n.º 9
0
def get_all_attributes():
    try:
        responses = response()
        attribut = mongo.db.attributes
        output = []
        for s in attribut.find():
            output.append({
                'namaAttribute': s['namaAttribute'],
                'attributeIdentitiy': s['attributeIdentitiy']
            })
        responses.setData(output)
        return jsonify(responses.getResponse())
    except:
        responses = response()
        responses.setStatus(False)
        responses.setMessage("Something wrong :(")
        return jsonify(responses.getResponse())
Ejemplo n.º 10
0
def get_all_solutions():
    try:
        responses = response()
        attribut = mongo.db.solutions
        output = []
        for s in attribut.find():
            output.append({
                'labelIdentity': s['labelIdentity'],
                'treatment': s['treatment'],
                'prevention': s['prevention']
            })
        responses.setData(output)
        return jsonify(responses.getResponse())
    except:
        responses = response()
        responses.setStatus(False)
        responses.setMessage("Something wrong :(")
        return jsonify(responses.getResponse())
Ejemplo n.º 11
0
def get_all_diagnoses():
    try:
        responses = response()
        diagnoses = mongo.db.diagnoses.aggregate([{
            '$group': {
                '_id': '$diagnose',
                'total': {
                    '$sum': 1
                }
            }
        }])
        output = []
        for s in diagnoses:
            output.append({'diagnose': s['_id'], 'total': s['total']})
        responses.setData(output)
        return jsonify(responses.getResponse())
    except:
        responses = response()
        responses.setStatus(False)
        responses.setMessage("Something wrong :(")
        return jsonify(responses.getResponse())
Ejemplo n.º 12
0
def get_all_diagnoses_in_time():
    try:
        responses = response()
        headers = request.args
        start = headers['start']
        end = headers['end']
        start_arr = start.split("-")
        end_arr = end.split("-")
        start_year = int(start_arr[0])
        start_month = int(start_arr[1])
        start_day = int(start_arr[2])
        end_year = int(end_arr[0])
        end_month = int(end_arr[1])
        end_day = int(end_arr[2])
        diagnoses = mongo.db.diagnoses.aggregate([{
            '$match': {
                'tanggal': {
                    '$gte': datetime(start_year, start_month, start_day, 0, 0,
                                     0),
                    '$lte': datetime(end_year, end_month, end_day, 0, 0, 0)
                }
            }
        }, {
            '$group': {
                '_id': '$diagnose',
                'total': {
                    '$sum': 1
                }
            }
        }])
        output = []
        for s in diagnoses:
            output.append({'diagnose': s['_id'], 'total': s['total']})
        responses.setData(output)
        return jsonify(responses.getResponse())
    except:
        responses = response()
        responses.setStatus(False)
        responses.setMessage("Something wrong :(")
        return jsonify(responses.getResponse())