diff --git a/clarkproc/clarkproc/blueprint_fhir.py b/clarkproc/clarkproc/blueprint_fhir.py index 259cb25..a8a9017 100644 --- a/clarkproc/clarkproc/blueprint_fhir.py +++ b/clarkproc/clarkproc/blueprint_fhir.py @@ -2,6 +2,7 @@ from collections import defaultdict from functools import wraps import logging +from urllib.parse import unquote from flask import Blueprint, jsonify, request @@ -372,7 +373,7 @@ def get_patient_details(state, patient_id, detail_type, *args, **kwargs): return jsonify(d) -@bp_fhir.route('/patient//note/', methods=['GET']) +@bp_fhir.route('/patient//note/', methods=['GET']) @require_fhir def get_patient_note(state, patient_id, note_id, *args, **kwargs): """ @@ -424,7 +425,8 @@ def get_patient_note(state, patient_id, note_id, *args, **kwargs): {'Content-Type': 'text/plain'} ) - n = p.notes.get(note_id) + decoded_note_id = unquote(note_id) + n = p.notes.get(decoded_note_id) if n is None: return ( diff --git a/clarkproc/clarkproc/server_app.py b/clarkproc/clarkproc/server_app.py index 7b93c89..8ce41e4 100644 --- a/clarkproc/clarkproc/server_app.py +++ b/clarkproc/clarkproc/server_app.py @@ -1,25 +1,13 @@ """Entry file for python server.""" import logging -import os import sys -from appdirs import user_data_dir from flask import request import werkzeug from clarkproc import state from clarkproc.server_setup import app - -APPDIR = user_data_dir('clark', appauthor=False, roaming=True) -if not os.path.exists(APPDIR): - os.makedirs(APPDIR) -logging.basicConfig( - filename=os.path.join(APPDIR, 'clark-server.log'), - format="[%(asctime)s: %(levelname)s/%(name)s(%(processName)s)]: %(message)s", - level=logging.DEBUG, -) - LOGGER = logging.getLogger(__name__) diff --git a/clarkproc/clarkproc/server_setup.py b/clarkproc/clarkproc/server_setup.py index 97a8431..ad18040 100644 --- a/clarkproc/clarkproc/server_setup.py +++ b/clarkproc/clarkproc/server_setup.py @@ -1,10 +1,23 @@ +"""Clark server setup.""" from flask import Flask from flasgger import Swagger +from appdirs import user_data_dir +import os +import logging # from flask_cors import CORS from clarkproc.blueprint_fhir import TEST_DATA_INDICATOR, bp_fhir from clarkproc.blueprint_ml import bp_ml +APPDIR = user_data_dir('clark', appauthor=False, roaming=True) +if not os.path.exists(APPDIR): + os.makedirs(APPDIR) +logging.basicConfig( + filename=os.path.join(APPDIR, 'clark-server.log'), + format="[%(asctime)s: %(levelname)s/%(name)s(%(processName)s)]: %(message)s", + level=logging.DEBUG, +) + app = Flask("clark_server") app.register_blueprint(bp_fhir, url_prefix='/fhir') app.register_blueprint(bp_fhir, url_prefix='/test', diff --git a/ui/API.js b/ui/API.js index c9fdea2..182a58b 100644 --- a/ui/API.js +++ b/ui/API.js @@ -70,7 +70,8 @@ const API = { }); }), getPatientNote: (patientId, noteId, type) => new Promise((resolve, reject) => { - axios.get(url(`${type}/patient/${patientId}/note/${noteId}`)) + const encodedNoteId = encodeURIComponent(noteId); + axios.get(url(`${type}/patient/${patientId}/note/${encodedNoteId}`)) .then((res) => { resolve(res.data); })