Skip to content

Commit e4259ee

Browse files
committed
changed scans_info query
1 parent ca56c3e commit e4259ee

File tree

2 files changed

+20
-16
lines changed

2 files changed

+20
-16
lines changed

microsetta_private_api/admin/tests/test_admin_repo.py

+15-11
Original file line numberDiff line numberDiff line change
@@ -325,9 +325,8 @@ def make_tz_datetime(y, m, d):
325325
"scan_timestamp": make_tz_datetime(2017, 7, 16),
326326
"sample_status": 'no-registered-account',
327327
"technician_notes": "huh?",
328-
"observation_id": None,
329-
"observations": None,
330-
"category": None
328+
"observations": [{'observation_id': None, 'observation': None,
329+
'category': None}]
331330
}
332331

333332
second_scan = {
@@ -336,9 +335,8 @@ def make_tz_datetime(y, m, d):
336335
"scan_timestamp": make_tz_datetime(2020, 12, 4),
337336
"sample_status": 'sample-is-valid',
338337
"technician_notes": None,
339-
"observation_id": None,
340-
"observations": None,
341-
"category": None
338+
"observations": [{'observation_id': None, 'observation': None,
339+
'category': None}]
342340
}
343341
try:
344342
add_dummy_scan(first_scan)
@@ -814,10 +812,12 @@ def test_scan_barcode_success(self):
814812
diag = admin_repo.retrieve_diagnostics_by_barcode(TEST_BARCODE)
815813
self.assertEqual(len(diag['scans_info']), 1)
816814
first_scan = diag['scans_info'][0]
815+
first_observation = first_scan['observations'][0]
816+
scan_observation_id = first_observation['observation_id']
817+
817818
self.assertEqual(first_scan['technician_notes'], TEST_NOTES)
818819
self.assertEqual(first_scan['sample_status'], TEST_STATUS)
819-
self.assertEqual(first_scan['observation_id'],
820-
observation_id[0])
820+
self.assertEqual(scan_observation_id, observation_id[0])
821821

822822
def test_scan_with_no_observations(self):
823823
with Transaction() as t:
@@ -841,7 +841,9 @@ def test_scan_with_no_observations(self):
841841
)
842842
diag = admin_repo.retrieve_diagnostics_by_barcode(TEST_BARCODE)
843843
first_scan = diag['scans_info'][0]
844-
self.assertEqual(first_scan['observations'], None)
844+
first_observation = first_scan['observations'][0]
845+
scan_observation = first_observation['observation']
846+
self.assertEqual(scan_observation, None)
845847

846848
def test_scan_with_multiple_observations(self):
847849
with Transaction() as t:
@@ -873,9 +875,11 @@ def test_scan_with_multiple_observations(self):
873875
}
874876
)
875877
diag = admin_repo.retrieve_diagnostics_by_barcode(TEST_BARCODE)
876-
scans = [scan['observation_id'] for scan in diag['scans_info']]
878+
scans = [scan['observations'] for scan in diag['scans_info']]
879+
scans_observation_ids = [obs['observation_id'] for scan in
880+
scans for obs in scan]
877881

878-
self.assertCountEqual(scans, observation_ids)
882+
self.assertEqual(scans_observation_ids, observation_ids)
879883

880884
def test_scan_with_wrong_observation(self):
881885
with Transaction() as t:

microsetta_private_api/repo/admin_repo.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -397,9 +397,10 @@ def _rows_to_dicts_list(rows):
397397
bs.scan_timestamp,
398398
bs.sample_status,
399399
bs.technician_notes,
400-
so.observation_id,
401-
so.observation AS observations,
402-
so.category
400+
json_agg(json_build_object('observation_id',
401+
so.observation_id, 'observation',
402+
so.observation, 'category', so.category))
403+
AS observations
403404
FROM
404405
barcodes.barcode_scans bs
405406
LEFT JOIN
@@ -415,8 +416,7 @@ def _rows_to_dicts_list(rows):
415416
bs.barcode = %s
416417
GROUP BY
417418
bs.barcode_scan_id, bs.barcode, bs.scan_timestamp,
418-
bs.sample_status, bs.technician_notes, so.observation_id,
419-
so.category
419+
bs.sample_status, bs.technician_notes
420420
ORDER BY
421421
bs.scan_timestamp ASC
422422
""", (sample_barcode,))

0 commit comments

Comments
 (0)