2020-09-26 22:01:23 +00:00
|
|
|
from flask import Flask, request,render_template, send_from_directory
|
|
|
|
from healthcareio.params import SYS_ARGS
|
|
|
|
import healthcareio.analytics
|
|
|
|
import os
|
|
|
|
import json
|
|
|
|
app = Flask(__name__)
|
|
|
|
@app.route("/favicon.ico")
|
|
|
|
def _icon():
|
|
|
|
return send_from_directory(os.path.join([app.root_path, 'static','img','logo.svg']),
|
|
|
|
'favicon.ico', mimetype='image/vnd.microsoft.icon')
|
|
|
|
@app.route("/")
|
|
|
|
def init():
|
|
|
|
e = SYS_ARGS['engine']
|
|
|
|
sections = {"remits":e.info['835'],"claims":e.info['837']}
|
2020-12-11 12:55:34 +00:00
|
|
|
_args = {"sections":sections,"store":SYS_ARGS['config']['store']}
|
|
|
|
print (SYS_ARGS['config']['store'])
|
|
|
|
return render_template("setup.html",**_args)
|
2020-09-26 22:01:23 +00:00
|
|
|
@app.route("/format/<id>/<index>",methods=['POST'])
|
|
|
|
def _format(id,index):
|
|
|
|
|
|
|
|
e = SYS_ARGS['engine']
|
|
|
|
key = '837' if id == 'claims' else '835'
|
|
|
|
index = int(index)
|
|
|
|
# p = e.info[key][index]
|
|
|
|
p = e.apply(type=id,index=index)
|
|
|
|
|
|
|
|
#
|
|
|
|
r = []
|
|
|
|
for item in p[0]['pipeline'] :
|
|
|
|
_item= dict(item)
|
|
|
|
del _item['sql']
|
|
|
|
del _item ['data']
|
|
|
|
|
|
|
|
_item = dict(_item,**healthcareio.analytics.Apex.apply(item))
|
|
|
|
if 'apex' in _item or 'html' in _item:
|
|
|
|
r.append(_item)
|
|
|
|
|
|
|
|
r = {"id":p[0]['id'],"pipeline":r}
|
|
|
|
return json.dumps(r),200
|
|
|
|
@app.route("/get/<id>/<index>",methods=['GET'])
|
|
|
|
def get(id,index):
|
|
|
|
e = SYS_ARGS['engine']
|
|
|
|
key = '837' if id == 'claims' else '835'
|
|
|
|
index = int(index)
|
|
|
|
# p = e.info[key][index]
|
|
|
|
p = e.apply(type=id,index=index)
|
|
|
|
r = {}
|
|
|
|
for item in p[0]['pipeline'] :
|
|
|
|
|
|
|
|
_item= [dict(item)]
|
|
|
|
|
|
|
|
r[item['label']] = item['data'].to_dict(orient='record')
|
|
|
|
# del _item['sql']
|
|
|
|
# del _item ['data']
|
|
|
|
# print (item['label'])
|
|
|
|
# _item['apex'] = healthcareio.analytics.Apex.apply(item)
|
|
|
|
# if _item['apex']:
|
|
|
|
# r.append(_item)
|
|
|
|
|
|
|
|
# r = {"id":p[0]['id'],"pipeline":r}
|
|
|
|
return json.dumps(r),200
|
|
|
|
@app.route("/reload",methods=['POST'])
|
|
|
|
def reload():
|
|
|
|
# e = SYS_ARGS['engine']
|
|
|
|
# e.apply()
|
|
|
|
PATH= SYS_ARGS['config'] if 'config' in SYS_ARGS else os.sep.join([os.environ['HOME'],'.healthcareio','config.json'])
|
|
|
|
e = healthcareio.analytics.engine(PATH)
|
|
|
|
# e.apply()
|
|
|
|
SYS_ARGS['engine'] = e
|
|
|
|
|
|
|
|
return "1",200
|
|
|
|
|
|
|
|
|
|
|
|
if __name__ == '__main__' :
|
|
|
|
PORT = int(SYS_ARGS['port']) if 'port' in SYS_ARGS else 5500
|
|
|
|
DEBUG= int(SYS_ARGS['debug']) if 'debug' in SYS_ARGS else 0
|
|
|
|
SYS_ARGS['context'] = SYS_ARGS['context'] if 'context' in SYS_ARGS else ''
|
|
|
|
#
|
|
|
|
#
|
|
|
|
PATH= SYS_ARGS['config'] if 'config' in SYS_ARGS else os.sep.join([os.environ['HOME'],'.healthcareio','config.json'])
|
|
|
|
|
|
|
|
e = healthcareio.analytics.engine(PATH)
|
|
|
|
# e.apply(type='claims',serialize=True)
|
|
|
|
SYS_ARGS['engine'] = e
|
|
|
|
app.run(host='0.0.0.0',port=PORT,debug=DEBUG,threaded=True)
|