Skip to content

Commit 3fa3d5e

Browse files
committed
updating the version number in settings
2 parents 1d0fa89 + 2e3af8b commit 3fa3d5e

File tree

7 files changed

+334
-16
lines changed

7 files changed

+334
-16
lines changed

CHANGELOG.md

+16
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,19 @@
1+
## 0.6.2.2 Release
2+
3+
Adds back in date of admission into the add episode modal
4+
5+
6+
## 0.6.2.1 Release
7+
8+
Adds an additional session logger that logs session information.
9+
10+
11+
## 0.6.2 Release
12+
13+
Updates to the email logger providing system information.
14+
15+
The Weekend patient list, allowing the doctors covering weekends to have a patient list covering patients from multiple departments.
16+
117
## 0.6.1 Release
218
We now use the field='modelName.field' api for all our forms, this lets us infer attributes such as max length
319

data/lookuplists/lookuplists.json

+43-7
Original file line numberDiff line numberDiff line change
@@ -1746,6 +1746,10 @@
17461746
"name": "Aspiration Pneumonia",
17471747
"synonyms": []
17481748
},
1749+
{
1750+
"name": "Atypical Pneumonia",
1751+
"synonyms": []
1752+
},
17491753
{
17501754
"name": "Aseptic Meningitis",
17511755
"synonyms": []
@@ -2445,6 +2449,10 @@
24452449
"Hospital Acquired Pneumonia"
24462450
]
24472451
},
2452+
{
2453+
"name": "Heart failure",
2454+
"synonyms": []
2455+
},
24482456
{
24492457
"name": "Henoch-Sch\u00f6nlein purpura",
24502458
"synonyms": []
@@ -2588,6 +2596,10 @@
25882596
"name": "Hypokalaemia",
25892597
"synonyms": []
25902598
},
2599+
{
2600+
"name": "Hyponatraemia",
2601+
"synonyms": []
2602+
},
25912603
{
25922604
"name": "Hypoparathyroidism",
25932605
"synonyms": []
@@ -2931,11 +2943,15 @@
29312943
]
29322944
},
29332945
{
2934-
"name": "Neutropenic sepsis",
2946+
"name": "Sepsis (neutropaenic)",
29352947
"synonyms": [
29362948
"Neutropaenic sepsis"
29372949
]
29382950
},
2951+
{
2952+
"name": "Sepsis (non-neutropaenic)",
2953+
"synonyms": []
2954+
},
29392955
{
29402956
"name": "Non-Hodgkins Lymphoma",
29412957
"synonyms": []
@@ -3014,7 +3030,7 @@
30143030
},
30153031
{
30163032
"name": "Osteoarthritis",
3017-
"synonyms": []
3033+
"synonyms": ["OA"]
30183034
},
30193035
{
30203036
"name": "Osteomyelitis",
@@ -3217,6 +3233,10 @@
32173233
"name": "Psoriasis",
32183234
"synonyms": []
32193235
},
3236+
{
3237+
"name": "Psoriatic arthritis",
3238+
"synonyms": []
3239+
},
32203240
{
32213241
"name": "Pulmonary Fibrosis",
32223242
"synonyms": []
@@ -3267,6 +3287,10 @@
32673287
"name": "Rabies",
32683288
"synonyms": []
32693289
},
3290+
{
3291+
"name": "Rash of Unknown Aetiology",
3292+
"synonyms": []
3293+
},
32703294
{
32713295
"name": "Rat-bite fever",
32723296
"synonyms": []
@@ -3307,10 +3331,6 @@
33073331
"RA"
33083332
]
33093333
},
3310-
{
3311-
"name": "Rheumatoid Arthtitis",
3312-
"synonyms": []
3313-
},
33143334
{
33153335
"name": "Rickettsialpox",
33163336
"synonyms": []
@@ -3395,6 +3415,10 @@
33953415
"name": "Secondary Syphilis",
33963416
"synonyms": []
33973417
},
3418+
{
3419+
"name": "Sepsis",
3420+
"synonyms": []
3421+
},
33983422
{
33993423
"name": "Septicaemia",
34003424
"synonyms": []
@@ -3409,6 +3433,10 @@
34093433
"Infected Bursitis"
34103434
]
34113435
},
3436+
{
3437+
"name": "Seronegative inflammatory arthritis",
3438+
"synonyms": []
3439+
},
34123440
{
34133441
"name": "Severe falciparum malaria",
34143442
"synonyms": []
@@ -3437,6 +3465,10 @@
34373465
"name": "Sickle-cell trait",
34383466
"synonyms": []
34393467
},
3468+
{
3469+
"name": "Sinusitis",
3470+
"synonyms": []
3471+
},
34403472
{
34413473
"name": "Sj\u00f6gren's syndrome",
34423474
"synonyms": []
@@ -4101,6 +4133,10 @@
41014133
{
41024134
"name": "Erythema Nodosum",
41034135
"synonyms": []
4136+
},
4137+
{
4138+
"name": "Uterine fibroid",
4139+
"synonyms": []
41044140
}
41054141
],
41064142
"consultant": [
@@ -4165,7 +4201,7 @@
41654201
"synonyms": []
41664202
},
41674203
{
4168-
"name": "Victoria Johnson",
4204+
"name": "Victoria Johnston",
41694205
"synonyms": []
41704206
}
41714207
],

elcid/middleware.py

+62-6
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,69 @@
1-
from django.conf import settings
2-
from django.db import connection
3-
from datetime import datetime
41
import logging
52
import time
3+
import random
4+
from datetime import datetime
65

7-
logger = logging.getLogger('elcid.requestLogger')
6+
from django.conf import settings
7+
from django.db import connection
8+
9+
10+
class SessionMiddleware(object):
11+
logger = logging.getLogger('elcid.sessionLogger')
12+
13+
def process_request(self, request):
14+
username = 'anonymous'
15+
path = request.path
16+
# add an empty line seprator per request
17+
self.logger.info('')
18+
19+
if request.user.is_authenticated():
20+
username = request.user.username
21+
self.logger.info('{0} received a request with user {1} for {2}'.format(
22+
datetime.now().strftime('%d/%m/%Y %H:%M:%S'), username, path
23+
))
24+
self.logger.info('cookies')
25+
self.logger.info(request.COOKIES)
26+
self.logger.info('session')
27+
self.logger.info(request.session.items())
28+
expiry = request.session.get_expiry_date().isoformat()
29+
self.logger.info('expiry {}'.format(expiry))
30+
31+
def process_response(self, request, response):
32+
username = 'anonymous'
33+
path = request.path
34+
35+
if request.user.is_authenticated():
36+
username = request.user.username
37+
38+
self.logger.info('responding to a request with user {0} for {1}'.format(
39+
username, path
40+
))
41+
42+
if request.user.is_authenticated():
43+
if 'expired_token' in request.session:
44+
self.logger.info(
45+
'now logged in, clearing {}'.format(
46+
request.session['expired_token']
47+
)
48+
)
49+
del request.session['expired_token']
50+
51+
if not request.user.is_authenticated():
52+
if "expired_token" not in request.session:
53+
expiration_id = random.randint(1, 1000000000)
54+
self.logger.info(
55+
'no session token found, setting expiry to {}'.format(
56+
expiration_id
57+
)
58+
)
59+
request.session["expired_token"] = expiration_id
60+
61+
return response
862

963

1064
class LoggingMiddleware(object):
65+
logger = logging.getLogger('elcid.requestLogger')
66+
1167
def process_request(self, request):
1268
self.start_time = time.time()
1369

@@ -23,11 +79,11 @@ def process_response(self, request, response):
2379
sql_time = sum(float(q['time']) for q in connection.queries) * 1000
2480
extra_log += " (%s SQL queries, %s ms)" % (len(connection.queries), sql_time)
2581

26-
logger.info("%s %s %s %s %s (%.02f seconds)%s" % (
82+
self.logger.info("%s %s %s %s %s (%.02f seconds)%s" % (
2783
datetime.now(), username, request.method, request.get_full_path(),
2884
response.status_code, req_time, extra_log)
2985
)
3086
except Exception, e:
3187
logging.error("LoggingMiddleware Error: %s" % e)
32-
88+
3389
return response

elcid/settings.py

+21-2
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,7 @@
122122
'opal.middleware.DjangoReversionWorkaround',
123123
'reversion.middleware.RevisionMiddleware',
124124
'axes.middleware.FailedLoginMiddleware',
125+
'elcid.middleware.SessionMiddleware',
125126
'elcid.middleware.LoggingMiddleware',
126127
# Uncomment the next line for simple clickjacking protection:
127128
# 'django.middleware.clickjacking.XFrameOptionsMiddleware',
@@ -216,7 +217,7 @@
216217
'level': 'ERROR',
217218
'filters': ['require_debug_false'],
218219
'class': 'elcid.log.ConfidentialEmailer'
219-
}
220+
},
220221
},
221222
'loggers': {
222223
'django.request': {
@@ -229,9 +230,27 @@
229230
'level': 'INFO',
230231
'propagate': True,
231232
},
233+
'elcid.sessionLogger': {
234+
'handlers': ['console'],
235+
'level': 'INFO',
236+
'propagate': False,
237+
}
232238
}
233239
}
234240

241+
if 'test' not in sys.argv:
242+
# lets not log to files on travis
243+
LOGGING["handlers"]["session"] = {
244+
'level': 'DEBUG',
245+
'class': 'logging.FileHandler',
246+
'filename': os.path.join(
247+
PROJECT_PATH, "..", "..", "log", "session.log"
248+
)
249+
}
250+
LOGGING["loggers"]["elcid.sessionLogger"]["handlers"] = ['session']
251+
252+
253+
235254
# Honor the 'X-Forwarded-Proto' header for request.is_secure()
236255
# (Heroku requirement)
237256
SECURE_PROXY_SSL_HEADER = ('HTTP_X_FORWARDED_PROTO', 'https')
@@ -278,8 +297,8 @@
278297
EMAIL_HOST = 'localhost'
279298

280299

281-
VERSION_NUMBER = '0.6.2'
282300

301+
VERSION_NUMBER = '0.6.2.2'
283302
#TEST_RUNNER = 'django_nose.NoseTestSuiteRunner'
284303
#TEST_RUNNER = 'django_test_coverage.runner.CoverageTestSuiteRunner'
285304

elcid/templates/add_episode_modal.html

+6
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,12 @@
55
{% block modal_body %}
66
<form class="form-horizontal" name="form">
77
{% include 'partials/_core_demographics.html' %}
8+
<div ng-show="!editing.demographics.external_system">
9+
{% datepicker label="Date of admission" model="editing.date_of_admission" %}
10+
{% select label="Hospital" model="editing.location.hospital" lookuplist="hospital_list" %}
11+
{% select label="Ward" model="editing.location.ward" lookuplist="ward_list" %}
12+
{% input label="Bed" model="editing.location.bed" %}
13+
</div>
814
{% if teams %}
915
{% include 'partials/_teams_select.html' %}
1016
{% endif %}

0 commit comments

Comments
 (0)