Skip to content

Commit

Permalink
Merge branch '433-floats-in-obs-results' into v0.3.5.rc1
Browse files Browse the repository at this point in the history
  • Loading branch information
fredkingham committed Jul 20, 2018
2 parents b88b2fa + 6827a87 commit 3cbadc9
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 12 deletions.
17 changes: 5 additions & 12 deletions elcid/api.py
Original file line number Diff line number Diff line change
@@ -1,20 +1,18 @@
import datetime
import re
from operator import itemgetter
from collections import defaultdict
from django.conf import settings
from django.utils.text import slugify
from django.http import HttpResponseBadRequest
from django.db.models import Q
from intrahospital_api import loader
from rest_framework import viewsets
from opal.core.api import OPALRouter
from opal.core.api import patient_from_pk, LoginRequiredViewset
from opal.core.views import json_response
from opal.core import serialization
from elcid import models as emodels
from lab import models as lmodels
from elcid.utils import timing
from opal import models as omodels


_LAB_TEST_TAGS = {
Expand Down Expand Up @@ -67,16 +65,11 @@ def extract_observation_value(observation_value):
if its >12 return >12
else return None
"""
obs_result = observation_value.split("~")[0]
try:
# we return None if its not numeric
regex = r'^[0-9][0-9.]*$'
obs_result = observation_value.strip()
obs_result = obs_result.split("~")[0].strip("<").strip(">").strip()
if re.match(regex, obs_result):
return float(obs_result)
except ValueError:
try:
float(obs_result.strip("<").strip(">").strip())
return obs_result
except ValueError:
return None


def get_observation_value(observation):
Expand Down
18 changes: 18 additions & 0 deletions elcid/test/test_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,27 @@
BloodCultureResultApi, UpstreamBloodCultureApi
)
from elcid import models as emodels
from elcid import api
from django.test import override_settings


class ExtractObservationValueTestCase(OpalTestCase):
def test_extract_observation_value(self):
inputs_to_expected_results = (
("<1", float(1),),
("1>", float(1),),
(" 1 ", float(1),),
("< 1", float(1),),
(" < 1", float(1),),
(".1 ", None),
("0.1 ", 0.1),
("1E", None),
("'1'", None),
)
for input, expected in inputs_to_expected_results:
self.assertEqual(api.extract_observation_value(input), expected)


class UpstreamBloodCultureApiTestCase(OpalTestCase):
def setUp(self):
self.api = UpstreamBloodCultureApi()
Expand Down

0 comments on commit 3cbadc9

Please sign in to comment.