Skip to content

Commit

Permalink
Merge 3c6d86a into 2b3beee
Browse files Browse the repository at this point in the history
  • Loading branch information
fredkingham committed Aug 12, 2018
2 parents 2b3beee + 3c6d86a commit b866476
Show file tree
Hide file tree
Showing 7 changed files with 24 additions and 36 deletions.
2 changes: 1 addition & 1 deletion elcid/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -276,7 +276,7 @@
'propagate': True,
},
'intrahospital_api': {
'handlers': ['console_detailed'],
'handlers': ['console_detailed', 'mail_admins'],
'level': 'INFO',
'propagate': True,
},
Expand Down
2 changes: 2 additions & 0 deletions intrahospital_api/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,10 @@
Opal core intrahospital api package
"""
from opal.core import celery # NOQA
import logging
from apis import get_api

__all__ = [
"get_api"
]
logger = logging.getLogger('intrahospital_api')
4 changes: 1 addition & 3 deletions intrahospital_api/apis/prod_api.py
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import datetime
import json
import logging
from functools import wraps
import pytds
import itertools
import time
from collections import defaultdict
from pytds.tds import OperationalError
from intrahospital_api.apis import base_api
from intrahospital_api import logger
from intrahospital_api.constants import EXTERNAL_SYSTEM
from elcid.utils import timing
from lab import models as lmodels
Expand All @@ -17,8 +17,6 @@
# if we fail in a query, the amount of seconds we wait before retrying
RETRY_DELAY = 30

logger = logging.getLogger('intrahospital_api')


DEMOGRAPHICS_QUERY = "SELECT top(1) * FROM {view} WHERE Patient_Number = \
@hospital_number ORDER BY last_updated DESC;"
Expand Down
32 changes: 15 additions & 17 deletions intrahospital_api/loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,6 @@
"""

import datetime
import logging
import traceback
import json
from django.db import transaction
Expand All @@ -55,9 +54,9 @@
from intrahospital_api.constants import EXTERNAL_SYSTEM
from intrahospital_api import update_demographics
from intrahospital_api import update_lab_tests
from intrahospital_api import logger

api = get_api()
logger = logging.getLogger('intrahospital_api')


@timing
Expand Down Expand Up @@ -91,9 +90,8 @@ def _initial_load():


def log_errors(name):
email_logger = logging.getLogger('error_emailer')
email_logger.error("unable to run {}".format(name))
logger.error(traceback.format_exc())
error = "unable to run {} \n {}".format(name, traceback.format_exc())
logger.error(error)


def any_loads_running():
Expand Down Expand Up @@ -300,13 +298,13 @@ def get_batch_start_time():
def _batch_load():
started = get_batch_start_time()

logging.info("start loading batch")
logger.info("start loading batch")
# update the non reconciled
update_demographics.reconcile_all_demographics()
logging.info("reconciled demographics")
logger.info("reconciled demographics")

data_deltas = api.data_deltas(started)
logging.info("calcualted data deltas")
logger.info("calcualted data deltas")
update_from_batch(data_deltas)


Expand All @@ -319,28 +317,28 @@ def update_patient_from_batch(demographics_set, data_delta):
if not patient_demographics_set.exists():
# this patient is not in our reconcile list,
# move on, nothing to see here.
logging.info("unable to find a patient for {}".format(
logger.info("unable to find a patient for {}".format(
upstream_demographics["hospital_number"]
))
return

patient = patient_demographics_set.first().patient
logging.info("updating patient demographics for {}".format(
logger.info("updating patient demographics for {}".format(
patient.id
))
logging.info(json.dumps(upstream_demographics, indent=2))
logger.info(json.dumps(upstream_demographics, indent=2))
update_demographics.update_patient_demographics(
patient, upstream_demographics
)
logging.info("updating patient results for {}".format(
logger.info("updating patient results for {}".format(
patient.id
))
logging.info(json.dumps(data_delta["lab_tests"], indent=2))
logger.info(json.dumps(data_delta["lab_tests"], indent=2))
update_lab_tests.update_tests(
patient,
data_delta["lab_tests"],
)
logging.info("batch patient {} update complete".format(patient.id))
logger.info("batch patient {} update complete".format(patient.id))


@timing
Expand All @@ -355,7 +353,7 @@ def update_from_batch(data_deltas):
patient__initialpatientload__state=models.InitialPatientLoad.SUCCESS
)
for data_delta in data_deltas:
logging.info("batch updating with {}".format(data_delta))
logger.info("batch updating with {}".format(data_delta))
update_patient_from_batch(demographics_set, data_delta)


Expand Down Expand Up @@ -394,11 +392,11 @@ def _load_patient(patient, patient_load):
)
logger.info(json.dumps(results, indent=2))
update_lab_tests.update_tests(patient, results)
logging.info(
logger.info(
"tests updated for {} {}".format(patient.id, patient_load.id)
)
update_demographics.update_patient_demographics(patient)
logging.info(
logger.info(
"demographics updated for {} {}".format(
patient.id, patient_load.id
)
Expand Down
4 changes: 1 addition & 3 deletions intrahospital_api/tasks.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,8 @@
from __future__ import absolute_import
import logging
from intrahospital_api import logger

from celery import shared_task

logger = logging.getLogger('intrahospital_api')


@shared_task
def load(patient_id, patient_load_id):
Expand Down
13 changes: 3 additions & 10 deletions intrahospital_api/test/test_loader.py
Original file line number Diff line number Diff line change
Expand Up @@ -173,17 +173,10 @@ def test_initial_patient_load_first(self):


class LogErrorsTestCase(ApiTestCase):
@mock.patch(
"intrahospital_api.loader.logging.getLogger",
)
@mock.patch.object(loader.logger, "error")
def test_log_errors(self, err, getLogger):
loader.log_errors("blah")
getLogger.assert_called_once_with("error_emailer")
getLogger().error.assert_called_once_with(
"unable to run blah"
)
self.assertTrue(err.called)
def test_log_errors(self, err):
loader.logger.error("blah")
err.assert_called_once_with("blah")


class AnyLoadsRunningTestCase(ApiTestCase):
Expand Down
3 changes: 1 addition & 2 deletions intrahospital_api/update_demographics.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,15 @@
"""
Handles updating demographics pulled in by the loader
"""
import logging
from django.db import transaction
from opal.models import Patient
from opal.core.serialization import deserialize_date
from intrahospital_api import logger
from intrahospital_api import get_api
from intrahospital_api.constants import EXTERNAL_SYSTEM
from elcid.utils import timing

api = get_api()
logger = logging.getLogger('intrahospital_api')


def update_external_demographics(
Expand Down

0 comments on commit b866476

Please sign in to comment.