From 82256653c061df50be5a623841d3e12d5e1bd219 Mon Sep 17 00:00:00 2001 From: Rob Dyke Date: Wed, 6 Mar 2019 13:39:59 +0000 Subject: [PATCH 1/5] remove BTUH module - ref #52 --- nh_eobs_btuh/__init__.py | 1 - nh_eobs_btuh/__init__.pyc | Bin 165 -> 0 bytes nh_eobs_btuh/__openerp__.py | 20 - nh_eobs_btuh/basildon logo.txt | 1 - nh_eobs_btuh/btuh_location_data.xml | 13108 ----------------- nh_eobs_btuh/btuh_master_data.xml | 70 - nh_eobs_btuh/btuh_user_data.xml | 594 - nh_eobs_btuh/btuh_view.xml | 48 - nh_eobs_btuh/nh_eobs_btuh.py | 270 - nh_eobs_btuh/nh_eobs_btuh.pyc | Bin 11556 -> 0 bytes nh_eobs_btuh/static/src/css/nh_eobs_btuh.css | 3 - nh_eobs_btuh/static/src/img/btuh_logo.png | Bin 26387 -> 0 bytes nh_eobs_btuh/static/src/xml/nh_eobs_btuh.xml | 14 - nh_eobs_btuh/tests/__init__.py | 1 - nh_eobs_btuh/tests/test_btuh_policy.py | 266 - 15 files changed, 14396 deletions(-) delete mode 100644 nh_eobs_btuh/__init__.py delete mode 100644 nh_eobs_btuh/__init__.pyc delete mode 100644 nh_eobs_btuh/__openerp__.py delete mode 100644 nh_eobs_btuh/basildon logo.txt delete mode 100644 nh_eobs_btuh/btuh_location_data.xml delete mode 100644 nh_eobs_btuh/btuh_master_data.xml delete mode 100644 nh_eobs_btuh/btuh_user_data.xml delete mode 100644 nh_eobs_btuh/btuh_view.xml delete mode 100644 nh_eobs_btuh/nh_eobs_btuh.py delete mode 100644 nh_eobs_btuh/nh_eobs_btuh.pyc delete mode 100644 nh_eobs_btuh/static/src/css/nh_eobs_btuh.css delete mode 100644 nh_eobs_btuh/static/src/img/btuh_logo.png delete mode 100644 nh_eobs_btuh/static/src/xml/nh_eobs_btuh.xml delete mode 100644 nh_eobs_btuh/tests/__init__.py delete mode 100644 nh_eobs_btuh/tests/test_btuh_policy.py diff --git a/nh_eobs_btuh/__init__.py b/nh_eobs_btuh/__init__.py deleted file mode 100644 index 5c6ce329..00000000 --- a/nh_eobs_btuh/__init__.py +++ /dev/null @@ -1 +0,0 @@ -import nh_eobs_btuh \ No newline at end of file diff --git a/nh_eobs_btuh/__init__.pyc b/nh_eobs_btuh/__init__.pyc deleted file mode 100644 index fd5af8466350a45e42b83f5d5202559ef7ce4602..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 zcmZSn%*%CQ!Mey~1}Itm8B;W diff --git a/nh_eobs_btuh/__openerp__.py b/nh_eobs_btuh/__openerp__.py deleted file mode 100644 index d8134ead..00000000 --- a/nh_eobs_btuh/__openerp__.py +++ /dev/null @@ -1,20 +0,0 @@ -# -*- encoding: utf-8 -*- -{ - 'name': 'Open e-Obs BTUH Configuration', - 'version': '0.1', - 'category': 'Clinical', - 'license': 'AGPL-3', - 'summary': '', - 'description': """ """, - 'author': 'Neova Health', - 'website': 'http://www.neovahealth.co.uk/', - 'depends': ['nh_eobs_mobile'], - 'data': ['btuh_master_data.xml', - 'btuh_location_data.xml', - 'btuh_user_data.xml', - 'btuh_view.xml'], - 'qweb': ['static/src/xml/nh_eobs_btuh.xml'], - 'application': True, - 'installable': True, - 'active': False, -} \ No newline at end of file diff --git a/nh_eobs_btuh/basildon logo.txt b/nh_eobs_btuh/basildon logo.txt deleted file mode 100644 index 44a5c389..00000000 --- a/nh_eobs_btuh/basildon logo.txt +++ /dev/null @@ -1 +0,0 @@ -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 diff --git a/nh_eobs_btuh/btuh_location_data.xml b/nh_eobs_btuh/btuh_location_data.xml deleted file mode 100644 index ab2dedaf..00000000 --- a/nh_eobs_btuh/btuh_location_data.xml +++ /dev/null @@ -1,13108 +0,0 @@ - - - - Elizabeth Fry Virtual Ward - EFVW - - ward - poc - - - - Bed 01 - - bed - poc - - EFVW1 - - - Bed 02 - - bed - poc - - EFVW2 - - - Bed 03 - - bed - poc - - EFVW3 - - - Bed 04 - - bed - poc - - EFVW4 - - - Bed 05 - - bed - poc - - EFVW5 - - - Bed 06 - - bed - poc - - EFVW6 - - - Bed 07 - - bed - poc - - EFVW7 - - - Bed 08 - - bed - poc - - EFVW8 - - - Bed 09 - - bed - poc - - EFVW9 - - - Bed 10 - - bed - poc - - EFVW10 - - - Bed 11 - - bed - poc - - EFVW11 - - - Bed 12 - - bed - poc - - EFVW12 - - - Bed 13 - - bed - poc - - EFVW13 - - - Bed 14 - - bed - poc - - EFVW14 - - - Bed 15 - - bed - poc - - EFVW15 - - - Bed 16 - - bed - poc - - EFVW16 - - - Bed 17 - - bed - poc - - EFVW17 - - - Bed 18 - - bed - poc - - EFVW18 - - - Bed 19 - - bed - poc - - EFVW19 - - - Bed 20 - - bed - poc - - EFVW20 - - - Bed 21 - - bed - poc - - EFVW21 - - - Bed 22 - - bed - poc - - EFVW22 - - - Bed 23 - - bed - poc - - EFVW23 - - - Bed 24 - - bed - poc - - EFVW24 - - - Bed 25 - - bed - poc - - EFVW25 - - - Endoscopy Suite Step Down Area - Endo Step - - ward - poc - - - - Bed 01 - - bed - poc - - EndoStep1 - - - Bed 02 - - bed - poc - - EndoStep2 - - - Bed 03 - - bed - poc - - EndoStep3 - - - Bed 04 - - bed - poc - - EndoStep4 - - - Ramsey Orwell Outsourcing - ROOS - - ward - poc - - - - Bed 01 - - bed - poc - - ROOS1 - - - Bed 02 - - bed - poc - - ROOS2 - - - Bed 03 - - bed - poc - - ROOS3 - - - Bed 04 - - bed - poc - - ROOS4 - - - Bed 05 - - bed - poc - - ROOS5 - - - Bed 06 - - bed - poc - - ROOS6 - - - Bed 07 - - bed - poc - - ROOS7 - - - Bed 08 - - bed - poc - - ROOS8 - - - Kingswood - KISB - - ward - poc - - - - Bed 01 - - bed - poc - - KISB1 - - - Bed 02 - - bed - poc - - KISB2 - - - Bed 03 - - bed - poc - - KISB3 - - - Bed 04 - - bed - poc - - KISB4 - - - Bed 05 - - bed - poc - - KISB5 - - - Bed 06 - - bed - poc - - KISB6 - - - Bed 07 - - bed - poc - - KISB7 - - - Bed 08 - - bed - poc - - KISB8 - - - Bed 09 - - bed - poc - - KISB9 - - - Bed 10 - - bed - poc - - KISB10 - - - Bed 11 - - bed - poc - - KISB11 - - - Bed 12 - - bed - poc - - KISB12 - - - Bed 13 - - bed - poc - - KISB13 - - - Bed 14 - - bed - poc - - KISB14 - - - Bed 15 - - bed - poc - - KISB15 - - - Bed 16 - - bed - poc - - KISB16 - - - Bed 17 - - bed - poc - - KISB17 - - - Bed 18 - - bed - poc - - KISB18 - - - Bed 19 - - bed - poc - - KISB19 - - - Bed 20 - - bed - poc - - KISB20 - - - Bed 21 - - bed - poc - - KISB21 - - - Bed 22 - - bed - poc - - KISB22 - - - Bed 23 - - bed - poc - - KISB23 - - - Bed 24 - - bed - poc - - KISB24 - - - Bed 25 - - bed - poc - - KISB25 - - - Bed 26 - - bed - poc - - KISB26 - - - Bed 27 - - bed - poc - - KISB27 - - - Bed 28 - - bed - poc - - KISB28 - - - Bed 29 - - bed - poc - - KISB29 - - - Bed 30 - - bed - poc - - KISB30 - - - Bed 31 - - bed - poc - - KISB31 - - - Bed 32 - - bed - poc - - KISB32 - - - Bed 33 - - bed - poc - - KISB33 - - - Bed 34 - - bed - poc - - KISB34 - - - Bed 35 - - bed - poc - - KISB35 - - - Bed 36 - - bed - poc - - KISB36 - - - Bed 37 - - bed - poc - - KISB37 - - - Bed 38 - - bed - poc - - KISB38 - - - Bed 39 - - bed - poc - - KISB39 - - - Bed 40 - - bed - poc - - KISB40 - - - Bed 41 - - bed - poc - - KISB41 - - - Bed 42 - - bed - poc - - KISB42 - - - Bed 43 - - bed - poc - - KISB43 - - - Bed 44 - - bed - poc - - KISB44 - - - Bed 45 - - bed - poc - - KISB45 - - - Bed 46 - - bed - poc - - KISB46 - - - Bed 47 - - bed - poc - - KISB47 - - - Bed 48 - - bed - poc - - KISB48 - - - Bed 49 - - bed - poc - - KISB49 - - - Bed 50 - - bed - poc - - KISB50 - - - Bed 51 - - bed - poc - - KISB51 - - - Bed 52 - - bed - poc - - KISB52 - - - Bed 53 - - bed - poc - - KISB53 - - - Bed 54 - - bed - poc - - KISB54 - - - Bed 55 - - bed - poc - - KISB55 - - - Bed 56 - - bed - poc - - KISB56 - - - Marjory Warren Ward - MWEB - - ward - poc - - - - Bed 01 - - bed - poc - - MWEB1 - - - Bed 02 - - bed - poc - - MWEB2 - - - Bed 03 - - bed - poc - - MWEB3 - - - Bed 04 - - bed - poc - - MWEB4 - - - Bed 05 - - bed - poc - - MWEB5 - - - Bed 06 - - bed - poc - - MWEB6 - - - Bed 07 - - bed - poc - - MWEB7 - - - Bed 08 - - bed - poc - - MWEB8 - - - Bed 09 - - bed - poc - - MWEB9 - - - Bed 10 - - bed - poc - - MWEB10 - - - Bed 11 - - bed - poc - - MWEB11 - - - Bed 12 - - bed - poc - - MWEB12 - - - Bed 13 - - bed - poc - - MWEB13 - - - Bed 14 - - bed - poc - - MWEB14 - - - Bed 15 - - bed - poc - - MWEB15 - - - Bed 16 - - bed - poc - - MWEB16 - - - Bed 17 - - bed - poc - - MWEB17 - - - Bed 18 - - bed - poc - - MWEB18 - - - Bed 19 - - bed - poc - - MWEB19 - - - Bed 20 - - bed - poc - - MWEB20 - - - Bed 21 - - bed - poc - - MWEB21 - - - Bed 22 - - bed - poc - - MWEB22 - - - Bed 23 - - bed - poc - - MWEB23 - - - Bed 24 - - bed - poc - - MWEB24 - - - Bed 25 - - bed - poc - - MWEB25 - - - Bed 26 - - bed - poc - - MWEB26 - - - Bed 27 - - bed - poc - - MWEB27 - - - Bed 28 - - bed - poc - - MWEB28 - - - Horndon Ward - HOOB - - ward - poc - - - - Bed 01 - - bed - poc - - HOOB1 - - - Bed 02 - - bed - poc - - HOOB2 - - - Bed 03 - - bed - poc - - HOOB3 - - - Bed 04 - - bed - poc - - HOOB4 - - - Bed 05 - - bed - poc - - HOOB5 - - - Bed 06 - - bed - poc - - HOOB6 - - - Bed 07 - - bed - poc - - HOOB7 - - - Bed 08 - - bed - poc - - HOOB8 - - - Bed 09 - - bed - poc - - HOOB9 - - - Bed 10 - - bed - poc - - HOOB10 - - - Bed 11 - - bed - poc - - HOOB11 - - - Bed 12 - - bed - poc - - HOOB12 - - - Bed 13 - - bed - poc - - HOOB13 - - - Bed 14 - - bed - poc - - HOOB14 - - - Bed 15 - - bed - poc - - HOOB15 - - - Bed 16 - - bed - poc - - HOOB16 - - - Bed 17 - - bed - poc - - HOOB17 - - - Bed 18 - - bed - poc - - HOOB18 - - - Bed 19 - - bed - poc - - HOOB19 - - - Bed 20 - - bed - poc - - HOOB20 - - - Bed 21 - - bed - poc - - HOOB21 - - - Bed 22 - - bed - poc - - HOOB22 - - - Bed 23 - - bed - poc - - HOOB23 - - - Bed 24 - - bed - poc - - HOOB24 - - - Bed 25 - - bed - poc - - HOOB25 - - - Bed 26 - - bed - poc - - HOOB26 - - - Bed 27 - - bed - poc - - HOOB27 - - - Bed 28 - - bed - poc - - HOOB28 - - - Bed 29 - - bed - poc - - HOOB29 - - - Bed 30 - - bed - poc - - HOOB30 - - - Bed 31 - - bed - poc - - HOOB31 - - - Bed 32 - - bed - poc - - HOOB32 - - - Bed 33 - - bed - poc - - HOOB33 - - - Bed 34 - - bed - poc - - HOOB34 - - - Bed 35 - - bed - poc - - HOOB35 - - - Bed 36 - - bed - poc - - HOOB36 - - - Bed 37 - - bed - poc - - HOOB37 - - - Bed 38 - - bed - poc - - HOOB38 - - - Bed 39 - - bed - poc - - HOOB39 - - - Bed 40 - - bed - poc - - HOOB40 - - - Bed 41 - - bed - poc - - HOOB41 - - - Bed 42 - - bed - poc - - HOOB42 - - - Bed 43 - - bed - poc - - HOOB43 - - - Bed 44 - - bed - poc - - HOOB44 - - - Mulberry Maternity - MUMB - - ward - poc - - - - Bed 01 - - bed - poc - - MUMB1 - - - Bed 02 - - bed - poc - - MUMB2 - - - Bed 03 - - bed - poc - - MUMB3 - - - Bed 04 - - bed - poc - - MUMB4 - - - Bed 05 - - bed - poc - - MUMB5 - - - Bed 06 - - bed - poc - - MUMB6 - - - Bed 07 - - bed - poc - - MUMB7 - - - Bed 08 - - bed - poc - - MUMB8 - - - Bed 09 - - bed - poc - - MUMB9 - - - Bed 10 - - bed - poc - - MUMB10 - - - Bed 11 - - bed - poc - - MUMB11 - - - Bed 12 - - bed - poc - - MUMB12 - - - Alistair Farquharson (AFC) - AFUT - - ward - poc - - - - Bed 01 - - bed - poc - - AFUT1 - - - Bed 02 - - bed - poc - - AFUT2 - - - Bed 03 - - bed - poc - - AFUT3 - - - Bed 04 - - bed - poc - - AFUT4 - - - Bed 05 - - bed - poc - - AFUT5 - - - Bed 06 - - bed - poc - - AFUT6 - - - Bed 07 - - bed - poc - - AFUT7 - - - Bed 08 - - bed - poc - - AFUT8 - - - Bed 09 - - bed - poc - - AFUT9 - - - Bed 10 - - bed - poc - - AFUT10 - - - Bed 11 - - bed - poc - - AFUT11 - - - Bed 12 - - bed - poc - - AFUT12 - - - Bed 13 - - bed - poc - - AFUT13 - - - Bed 14 - - bed - poc - - AFUT14 - - - Bed 15 - - bed - poc - - AFUT15 - - - Bed 16 - - bed - poc - - AFUT16 - - - Bed 17 - - bed - poc - - AFUT17 - - - Bed 18 - - bed - poc - - AFUT18 - - - Bed 19 - - bed - poc - - AFUT19 - - - Bed 20 - - bed - poc - - AFUT20 - - - Bed 21 - - bed - poc - - AFUT21 - - - Bed 22 - - bed - poc - - AFUT22 - - - Bed 23 - - bed - poc - - AFUT23 - - - Bed 24 - - bed - poc - - AFUT24 - - - Bed 25 - - bed - poc - - AFUT25 - - - Bed 26 - - bed - poc - - AFUT26 - - - Bed 27 - - bed - poc - - AFUT27 - - - Bed 28 - - bed - poc - - AFUT28 - - - Bed 29 - - bed - poc - - AFUT29 - - - Bed 30 - - bed - poc - - AFUT30 - - - Bed 31 - - bed - poc - - AFUT31 - - - Bed 32 - - bed - poc - - AFUT32 - - - Surgical Referrals Unit Bas - SRUB - - ward - poc - - - - Bed 01 - - bed - poc - - SRUB1 - - - Bed 02 - - bed - poc - - SRUB2 - - - Bed 03 - - bed - poc - - SRUB3 - - - Bed 04 - - bed - poc - - SRUB4 - - - Bed 05 - - bed - poc - - SRUB5 - - - Bed 06 - - bed - poc - - SRUB6 - - - Bed 07 - - bed - poc - - SRUB7 - - - Bed 08 - - bed - poc - - SRUB8 - - - Bed 09 - - bed - poc - - SRUB9 - - - Bed 10 - - bed - poc - - SRUB10 - - - Bed 11 - - bed - poc - - SRUB11 - - - Bed 12 - - bed - poc - - SRUB12 - - - Bed 13 - - bed - poc - - SRUB13 - - - Bed 14 - - bed - poc - - SRUB14 - - - Bed 15 - - bed - poc - - SRUB15 - - - Bed 16 - - bed - poc - - SRUB16 - - - Bed 17 - - bed - poc - - SRUB17 - - - Bed 18 - - bed - poc - - SRUB18 - - - Bed 19 - - bed - poc - - SRUB19 - - - Bed 20 - - bed - poc - - SRUB20 - - - Bed 21 - - bed - poc - - SRUB21 - - - Bed 22 - - bed - poc - - SRUB22 - - - Bed 23 - - bed - poc - - SRUB23 - - - Bed 24 - - bed - poc - - SRUB24 - - - Bed 25 - - bed - poc - - SRUB25 - - - Bed 26 - - bed - poc - - SRUB26 - - - Bed 27 - - bed - poc - - SRUB27 - - - Bed 28 - - bed - poc - - SRUB28 - - - Basildon Day Surgery Unit - BDU - - ward - poc - - - - Bed 01 - - bed - poc - - BDU1 - - - Bed 02 - - bed - poc - - BDU2 - - - Bed 03 - - bed - poc - - BDU3 - - - Bed 04 - - bed - poc - - BDU4 - - - Bed 05 - - bed - poc - - BDU5 - - - Bed 06 - - bed - poc - - BDU6 - - - Bed 07 - - bed - poc - - BDU7 - - - Bed 08 - - bed - poc - - BDU8 - - - Bed 09 - - bed - poc - - BDU9 - - - Bed 10 - - bed - poc - - BDU10 - - - Bed 11 - - bed - poc - - BDU11 - - - Bed 12 - - bed - poc - - BDU12 - - - Bed 13 - - bed - poc - - BDU13 - - - Bed 14 - - bed - poc - - BDU14 - - - Bed 15 - - bed - poc - - BDU15 - - - Bed 16 - - bed - poc - - BDU16 - - - Bed 17 - - bed - poc - - BDU17 - - - Bed 18 - - bed - poc - - BDU18 - - - Bed 19 - - bed - poc - - BDU19 - - - Bed 20 - - bed - poc - - BDU20 - - - Bed 21 - - bed - poc - - BDU21 - - - Bed 22 - - bed - poc - - BDU22 - - - Orsett Ward - OREB - - ward - poc - - - - Bed 01 - - bed - poc - - OREB1 - - - Bed 02 - - bed - poc - - OREB2 - - - Bed 03 - - bed - poc - - OREB3 - - - Bed 04 - - bed - poc - - OREB4 - - - Bed 05 - - bed - poc - - OREB5 - - - Bed 06 - - bed - poc - - OREB6 - - - Bed 07 - - bed - poc - - OREB7 - - - Bed 08 - - bed - poc - - OREB8 - - - Bed 09 - - bed - poc - - OREB9 - - - Bed 10 - - bed - poc - - OREB10 - - - Bed 11 - - bed - poc - - OREB11 - - - Bed 12 - - bed - poc - - OREB12 - - - Bed 13 - - bed - poc - - OREB13 - - - Bed 14 - - bed - poc - - OREB14 - - - Bed 15 - - bed - poc - - OREB15 - - - Bed 16 - - bed - poc - - OREB16 - - - Bed 17 - - bed - poc - - OREB17 - - - Bed 18 - - bed - poc - - OREB18 - - - Bed 19 - - bed - poc - - OREB19 - - - Bed 20 - - bed - poc - - OREB20 - - - Bed 21 - - bed - poc - - OREB21 - - - Bed 22 - - bed - poc - - OREB22 - - - Bed 23 - - bed - poc - - OREB23 - - - Bed 24 - - bed - poc - - OREB24 - - - Bed 25 - - bed - poc - - OREB25 - - - Bed 26 - - bed - poc - - OREB26 - - - Bed 27 - - bed - poc - - OREB27 - - - Bed 28 - - bed - poc - - OREB28 - - - Bed 29 - - bed - poc - - OREB29 - - - Bed 30 - - bed - poc - - OREB30 - - - Bed 31 - - bed - poc - - OREB31 - - - Bed 32 - - bed - poc - - OREB32 - - - Maternity Assessment Centre - MACB - - ward - poc - - - - Bed 01 - - bed - poc - - MACB1 - - - Bed 02 - - bed - poc - - MACB2 - - - Bed 03 - - bed - poc - - MACB3 - - - Bed 04 - - bed - poc - - MACB4 - - - Bed 05 - - bed - poc - - MACB5 - - - Bed 06 - - bed - poc - - MACB6 - - - Bed 07 - - bed - poc - - MACB7 - - - X-Ray Department Basildon Hosp - XRBA - - ward - poc - - - - Bed 01 - - bed - poc - - XRBA1 - - - Thorndon - TH - - ward - poc - - - - Bed 01 - - bed - poc - - TH1 - - - Bed 02 - - bed - poc - - TH2 - - - Bed 03 - - bed - poc - - TH3 - - - Bed 04 - - bed - poc - - TH4 - - - Bed 05 - - bed - poc - - TH5 - - - Bed 06 - - bed - poc - - TH6 - - - Bed 07 - - bed - poc - - TH7 - - - Bed 08 - - bed - poc - - TH8 - - - Bed 09 - - bed - poc - - TH9 - - - Bed 10 - - bed - poc - - TH10 - - - Bed 11 - - bed - poc - - TH11 - - - Bed 12 - - bed - poc - - TH12 - - - Bed 13 - - bed - poc - - TH13 - - - Bed 14 - - bed - poc - - TH14 - - - Bed 15 - - bed - poc - - TH15 - - - Bed 16 - - bed - poc - - TH16 - - - Bed 17 - - bed - poc - - TH17 - - - Bed 18 - - bed - poc - - TH18 - - - Bed 19 - - bed - poc - - TH19 - - - Bed 20 - - bed - poc - - TH20 - - - Bed 21 - - bed - poc - - TH21 - - - Bed 22 - - bed - poc - - TH22 - - - Bed 23 - - bed - poc - - TH23 - - - Bed 24 - - bed - poc - - TH24 - - - Bed 25 - - bed - poc - - TH25 - - - Hollyhouse Outsourcing Ward - HHOS - - ward - poc - - - - Bed 01 - - bed - poc - - HHOS1 - - - Bed 02 - - bed - poc - - HHOS2 - - - Bed 03 - - bed - poc - - HHOS3 - - - Bed 04 - - bed - poc - - HHOS4 - - - Bed 05 - - bed - poc - - HHOS5 - - - Bed 06 - - bed - poc - - HHOS6 - - - Bed 07 - - bed - poc - - HHOS7 - - - Bed 08 - - bed - poc - - HHOS8 - - - Bed 09 - - bed - poc - - HHOS9 - - - Bed 10 - - bed - poc - - HHOS10 - - - Orsett Haemodialysis Unit - ORHU - - ward - poc - - - - Bed 01 - - bed - poc - - ORHU1 - - - Bed 02 - - bed - poc - - ORHU2 - - - Bed 03 - - bed - poc - - ORHU3 - - - Bed 04 - - bed - poc - - ORHU4 - - - Bed 05 - - bed - poc - - ORHU5 - - - Bed 06 - - bed - poc - - ORHU6 - - - Bed 07 - - bed - poc - - ORHU7 - - - Bed 08 - - bed - poc - - ORHU8 - - - Bed 09 - - bed - poc - - ORHU9 - - - Thames Ward Day Unit - THDU - - ward - poc - - - - Bed 01 - - bed - poc - - THDU1 - - - Bed 02 - - bed - poc - - THDU2 - - - Bed 03 - - bed - poc - - THDU3 - - - Bed 04 - - bed - poc - - THDU4 - - - Bed 05 - - bed - poc - - THDU5 - - - Bed 06 - - bed - poc - - THDU6 - - - Bed 07 - - bed - poc - - THDU7 - - - Bed 08 - - bed - poc - - THDU8 - - - Bed 09 - - bed - poc - - THDU9 - - - Bed 10 - - bed - poc - - THDU10 - - - Bed 11 - - bed - poc - - THDU11 - - - Bed 12 - - bed - poc - - THDU12 - - - Home Birth Baby - HBBY - - ward - poc - - - - Bed 01 - - bed - poc - - HBBY1 - - - Bed 02 - - bed - poc - - HBBY2 - - - Bed 03 - - bed - poc - - HBBY3 - - - Bed 04 - - bed - poc - - HBBY4 - - - Wagtail - WAPB - - ward - poc - - - - Bed 01 - - bed - poc - - WAPB1 - - - Bed 02 - - bed - poc - - WAPB2 - - - Bed 03 - - bed - poc - - WAPB3 - - - Bed 04 - - bed - poc - - WAPB4 - - - Bed 05 - - bed - poc - - WAPB5 - - - Bed 06 - - bed - poc - - WAPB6 - - - Bed 07 - - bed - poc - - WAPB7 - - - Bed 08 - - bed - poc - - WAPB8 - - - Bed 09 - - bed - poc - - WAPB9 - - - Bed 10 - - bed - poc - - WAPB10 - - - Bed 11 - - bed - poc - - WAPB11 - - - Bed 12 - - bed - poc - - WAPB12 - - - Bed 13 - - bed - poc - - WAPB13 - - - Bed 14 - - bed - poc - - WAPB14 - - - Bed 15 - - bed - poc - - WAPB15 - - - Bed 16 - - bed - poc - - WAPB16 - - - Bed 17 - - bed - poc - - WAPB17 - - - Bed 18 - - bed - poc - - WAPB18 - - - Bed 19 - - bed - poc - - WAPB19 - - - Bed 20 - - bed - poc - - WAPB20 - - - Bed 21 - - bed - poc - - WAPB21 - - - Osler Ward - OSEB - - ward - poc - - - - Bed 01 - - bed - poc - - OSEB1 - - - Bed 02 - - bed - poc - - OSEB2 - - - Bed 03 - - bed - poc - - OSEB3 - - - Bed 04 - - bed - poc - - OSEB4 - - - Bed 05 - - bed - poc - - OSEB5 - - - Bed 06 - - bed - poc - - OSEB6 - - - Bed 07 - - bed - poc - - OSEB7 - - - Bed 08 - - bed - poc - - OSEB8 - - - Bed 09 - - bed - poc - - OSEB9 - - - Bed 10 - - bed - poc - - OSEB10 - - - Bed 11 - - bed - poc - - OSEB11 - - - Bed 12 - - bed - poc - - OSEB12 - - - Bed 13 - - bed - poc - - OSEB13 - - - Bed 14 - - bed - poc - - OSEB14 - - - Bed 15 - - bed - poc - - OSEB15 - - - Bed 16 - - bed - poc - - OSEB16 - - - Bed 17 - - bed - poc - - OSEB17 - - - Bed 18 - - bed - poc - - OSEB18 - - - Bed 19 - - bed - poc - - OSEB19 - - - Bed 20 - - bed - poc - - OSEB20 - - - Bed 21 - - bed - poc - - OSEB21 - - - Bed 22 - - bed - poc - - OSEB22 - - - Bed 23 - - bed - poc - - OSEB23 - - - Bed 24 - - bed - poc - - OSEB24 - - - Bed 25 - - bed - poc - - OSEB25 - - - Bed 26 - - bed - poc - - OSEB26 - - - Bed 27 - - bed - poc - - OSEB27 - - - Bed 28 - - bed - poc - - OSEB28 - - - Spire Hartswood Outsourcing - SHOS - - ward - poc - - - - Bed 01 - - bed - poc - - SHOS1 - - - Bed 02 - - bed - poc - - SHOS2 - - - Bed 03 - - bed - poc - - SHOS3 - - - Bed 04 - - bed - poc - - SHOS4 - - - Bed 05 - - bed - poc - - SHOS5 - - - Bed 06 - - bed - poc - - SHOS6 - - - Neo Natal Intensive Care (NICU) - NICU - - ward - poc - - - - Bed 01 - - bed - poc - - NICU1 - - - Bed 02 - - bed - poc - - NICU2 - - - Bed 03 - - bed - poc - - NICU3 - - - Bed 04 - - bed - poc - - NICU4 - - - Bed 05 - - bed - poc - - NICU5 - - - Bed 06 - - bed - poc - - NICU6 - - - Bed 07 - - bed - poc - - NICU7 - - - Bed 08 - - bed - poc - - NICU8 - - - Bed 09 - - bed - poc - - NICU9 - - - Bed 10 - - bed - poc - - NICU10 - - - Bed 11 - - bed - poc - - NICU11 - - - Bed 12 - - bed - poc - - NICU12 - - - Bed 13 - - bed - poc - - NICU13 - - - Bed 14 - - bed - poc - - NICU14 - - - Bed 15 - - bed - poc - - NICU15 - - - Bed 16 - - bed - poc - - NICU16 - - - Bed 17 - - bed - poc - - NICU17 - - - Bed 18 - - bed - poc - - NICU18 - - - Bed 19 - - bed - poc - - NICU19 - - - Bed 20 - - bed - poc - - NICU20 - - - Bed 21 - - bed - poc - - NICU21 - - - Bed 22 - - bed - poc - - NICU22 - - - Bed 23 - - bed - poc - - NICU23 - - - Bed 24 - - bed - poc - - NICU24 - - - Bed 25 - - bed - poc - - NICU25 - - - Bed 26 - - bed - poc - - NICU26 - - - Bed 27 - - bed - poc - - NICU27 - - - Bed 28 - - bed - poc - - NICU28 - - - Surgical Admission Unit - SAUB - - ward - poc - - - - Bed 01 - - bed - poc - - SAUB1 - - - Bed 02 - - bed - poc - - SAUB2 - - - Bed 03 - - bed - poc - - SAUB3 - - - Bed 04 - - bed - poc - - SAUB4 - - - Bed 05 - - bed - poc - - SAUB5 - - - Bed 06 - - bed - poc - - SAUB6 - - - Bed 07 - - bed - poc - - SAUB7 - - - Bed 08 - - bed - poc - - SAUB8 - - - Bed 09 - - bed - poc - - SAUB9 - - - Bed 10 - - bed - poc - - SAUB10 - - - Dedicated Day Unit - DDU - - ward - poc - - - - Bed 01 - - bed - poc - - DDU1 - - - Bed 02 - - bed - poc - - DDU2 - - - Bed 03 - - bed - poc - - DDU3 - - - Bed 04 - - bed - poc - - DDU4 - - - Bed 05 - - bed - poc - - DDU5 - - - Bed 06 - - bed - poc - - DDU6 - - - Bed 07 - - bed - poc - - DDU7 - - - Bed 08 - - bed - poc - - DDU8 - - - Bed 09 - - bed - poc - - DDU9 - - - Bed 10 - - bed - poc - - DDU10 - - - Bed 11 - - bed - poc - - DDU11 - - - Bed 12 - - bed - poc - - DDU12 - - - Bed 13 - - bed - poc - - DDU13 - - - Bed 14 - - bed - poc - - DDU14 - - - Bed 15 - - bed - poc - - DDU15 - - - Bed 16 - - bed - poc - - DDU16 - - - Bed 17 - - bed - poc - - DDU17 - - - Bed 18 - - bed - poc - - DDU18 - - - Bed 19 - - bed - poc - - DDU19 - - - Bed 20 - - bed - poc - - DDU20 - - - Bed 21 - - bed - poc - - DDU21 - - - Bed 22 - - bed - poc - - DDU22 - - - Florence Nightingale - FNMB - - ward - poc - - - - Bed 01 - - bed - poc - - FNMB1 - - - Bed 02 - - bed - poc - - FNMB2 - - - Bed 03 - - bed - poc - - FNMB3 - - - Bed 04 - - bed - poc - - FNMB4 - - - Bed 05 - - bed - poc - - FNMB5 - - - Bed 06 - - bed - poc - - FNMB6 - - - Bed 07 - - bed - poc - - FNMB7 - - - Bed 08 - - bed - poc - - FNMB8 - - - Bed 09 - - bed - poc - - FNMB9 - - - Bed 10 - - bed - poc - - FNMB10 - - - Bed 11 - - bed - poc - - FNMB11 - - - Bed 12 - - bed - poc - - FNMB12 - - - Bed 13 - - bed - poc - - FNMB13 - - - Bed 14 - - bed - poc - - FNMB14 - - - Bed 15 - - bed - poc - - FNMB15 - - - Bed 16 - - bed - poc - - FNMB16 - - - Bed 17 - - bed - poc - - FNMB17 - - - Bed 18 - - bed - poc - - FNMB18 - - - Bed 19 - - bed - poc - - FNMB19 - - - Bed 20 - - bed - poc - - FNMB20 - - - Bed 21 - - bed - poc - - FNMB21 - - - Bed 22 - - bed - poc - - FNMB22 - - - Bed 23 - - bed - poc - - FNMB23 - - - Bed 24 - - bed - poc - - FNMB24 - - - Bed 25 - - bed - poc - - FNMB25 - - - Bed 26 - - bed - poc - - FNMB26 - - - Bed 27 - - bed - poc - - FNMB27 - - - Bed 28 - - bed - poc - - FNMB28 - - - Swap Location - - bed - poc - - FNMB29 - - - Cots Willow 1 - WCT1 - - ward - poc - - - - Bed 01 - - bed - poc - - WCT11 - - - Bed 02 - - bed - poc - - WCT12 - - - Bed 03 - - bed - poc - - WCT13 - - - Bed 04 - - bed - poc - - WCT14 - - - Bed 05 - - bed - poc - - WCT15 - - - Bed 06 - - bed - poc - - WCT16 - - - Bed 07 - - bed - poc - - WCT17 - - - Bed 08 - - bed - poc - - WCT18 - - - Bed 09 - - bed - poc - - WCT19 - - - Bed 10 - - bed - poc - - WCT110 - - - Bed 11 - - bed - poc - - WCT111 - - - Bed 12 - - bed - poc - - WCT112 - - - Bed 13 - - bed - poc - - WCT113 - - - Bed 14 - - bed - poc - - WCT114 - - - Bed 15 - - bed - poc - - WCT115 - - - Bed 16 - - bed - poc - - WCT116 - - - Bed 17 - - bed - poc - - WCT117 - - - Bed 18 - - bed - poc - - WCT118 - - - Bed 19 - - bed - poc - - WCT119 - - - Bed 20 - - bed - poc - - WCT120 - - - Bed 21 - - bed - poc - - WCT121 - - - Bed 22 - - bed - poc - - WCT122 - - - Day Unit Rheumatology - DURH - - ward - poc - - - - Bed 01 - - bed - poc - - DURH1 - - - Bed 02 - - bed - poc - - DURH2 - - - Bed 03 - - bed - poc - - DURH3 - - - Bed 04 - - bed - poc - - DURH4 - - - Bed 05 - - bed - poc - - DURH5 - - - Bed 06 - - bed - poc - - DURH6 - - - Bed 07 - - bed - poc - - DURH7 - - - Springfield Outsourcing Ward - SFOS - - ward - poc - - - - Bed 01 - - bed - poc - - SFOS1 - - - Bed 02 - - bed - poc - - SFOS2 - - - Bed 03 - - bed - poc - - SFOS3 - - - Bed 04 - - bed - poc - - SFOS4 - - - Bed 05 - - bed - poc - - SFOS5 - - - Bed 06 - - bed - poc - - SFOS6 - - - Bed 07 - - bed - poc - - SFOS7 - - - Bed 08 - - bed - poc - - SFOS8 - - - Bed 09 - - bed - poc - - SFOS9 - - - Bed 10 - - bed - poc - - SFOS10 - - - Bed 11 - - bed - poc - - SFOS11 - - - Bed 12 - - bed - poc - - SFOS12 - - - Elsdon - ELGB - - ward - poc - - - - Bed 01 - - bed - poc - - ELGB1 - - - Bed 02 - - bed - poc - - ELGB2 - - - Bed 03 - - bed - poc - - ELGB3 - - - Bed 04 - - bed - poc - - ELGB4 - - - Bed 05 - - bed - poc - - ELGB5 - - - Bed 06 - - bed - poc - - ELGB6 - - - Bed 07 - - bed - poc - - ELGB7 - - - Bed 08 - - bed - poc - - ELGB8 - - - Bed 09 - - bed - poc - - ELGB9 - - - Bed 10 - - bed - poc - - ELGB10 - - - Bed 11 - - bed - poc - - ELGB11 - - - Bed 12 - - bed - poc - - ELGB12 - - - Bed 13 - - bed - poc - - ELGB13 - - - Bed 14 - - bed - poc - - ELGB14 - - - Bed 15 - - bed - poc - - ELGB15 - - - Chelmer Ward - CHSC - - ward - poc - - - - Bed 01 - - bed - poc - - CHSC1 - - - Bed 02 - - bed - poc - - CHSC2 - - - Bed 03 - - bed - poc - - CHSC3 - - - Bed 04 - - bed - poc - - CHSC4 - - - Bed 05 - - bed - poc - - CHSC5 - - - Bed 06 - - bed - poc - - CHSC6 - - - Bed 07 - - bed - poc - - CHSC7 - - - Bed 08 - - bed - poc - - CHSC8 - - - Bed 09 - - bed - poc - - CHSC9 - - - Bed 10 - - bed - poc - - CHSC10 - - - Bed 11 - - bed - poc - - CHSC11 - - - Bed 12 - - bed - poc - - CHSC12 - - - Bed 13 - - bed - poc - - CHSC13 - - - Bed 14 - - bed - poc - - CHSC14 - - - Bed 15 - - bed - poc - - CHSC15 - - - Bed 16 - - bed - poc - - CHSC16 - - - Bed 17 - - bed - poc - - CHSC17 - - - Bed 18 - - bed - poc - - CHSC18 - - - Bed 19 - - bed - poc - - CHSC19 - - - Bed 20 - - bed - poc - - CHSC20 - - - Bed 21 - - bed - poc - - CHSC21 - - - Bed 22 - - bed - poc - - CHSC22 - - - Bed 23 - - bed - poc - - CHSC23 - - - Bed 24 - - bed - poc - - CHSC24 - - - Bed 25 - - bed - poc - - CHSC25 - - - Bed 26 - - bed - poc - - CHSC26 - - - Bed 27 - - bed - poc - - CHSC27 - - - Bed 28 - - bed - poc - - CHSC28 - - - Bed 29 - - bed - poc - - CHSC29 - - - Bed 30 - - bed - poc - - CHSC30 - - - Bed 31 - - bed - poc - - CHSC31 - - - Bed 32 - - bed - poc - - CHSC32 - - - Bed 33 - - bed - poc - - CHSC33 - - - Bed 34 - - bed - poc - - CHSC34 - - - Bed 35 - - bed - poc - - CHSC35 - - - Bed 36 - - bed - poc - - CHSC36 - - - Bed 37 - - bed - poc - - CHSC37 - - - Bed 38 - - bed - poc - - CHSC38 - - - Bed 39 - - bed - poc - - CHSC39 - - - Bed 40 - - bed - poc - - CHSC40 - - - Bed 41 - - bed - poc - - CHSC41 - - - Bed 42 - - bed - poc - - CHSC42 - - - Bed 43 - - bed - poc - - CHSC43 - - - Bed 44 - - bed - poc - - CHSC44 - - - Bed 45 - - bed - poc - - CHSC45 - - - Bed 46 - - bed - poc - - CHSC46 - - - Bed 47 - - bed - poc - - CHSC47 - - - Bed 48 - - bed - poc - - CHSC48 - - - Bed 49 - - bed - poc - - CHSC49 - - - Bed 50 - - bed - poc - - CHSC50 - - - Bed 51 - - bed - poc - - CHSC51 - - - Bed 52 - - bed - poc - - CHSC52 - - - Bed 53 - - bed - poc - - CHSC53 - - - Bed 54 - - bed - poc - - CHSC54 - - - Bed 55 - - bed - poc - - CHSC55 - - - Bed 56 - - bed - poc - - CHSC56 - - - Bed 57 - - bed - poc - - CHSC57 - - - Bed 58 - - bed - poc - - CHSC58 - - - Bed 59 - - bed - poc - - CHSC59 - - - Bed 60 - - bed - poc - - CHSC60 - - - Bed 61 - - bed - poc - - CHSC61 - - - Bed 62 - - bed - poc - - CHSC62 - - - Bed 63 - - bed - poc - - CHSC63 - - - Bed 64 - - bed - poc - - CHSC64 - - - Bed 65 - - bed - poc - - CHSC65 - - - Bed 66 - - bed - poc - - CHSC66 - - - Bed 67 - - bed - poc - - CHSC67 - - - Bed 68 - - bed - poc - - CHSC68 - - - Bed 69 - - bed - poc - - CHSC69 - - - Bed 70 - - bed - poc - - CHSC70 - - - Bed 71 - - bed - poc - - CHSC71 - - - Bed 72 - - bed - poc - - CHSC72 - - - Bed 73 - - bed - poc - - CHSC73 - - - Bed 74 - - bed - poc - - CHSC74 - - - Bed 75 - - bed - poc - - CHSC75 - - - Bed 76 - - bed - poc - - CHSC76 - - - Bed 77 - - bed - poc - - CHSC77 - - - Bed 78 - - bed - poc - - CHSC78 - - - Bed 79 - - bed - poc - - CHSC79 - - - Bed 80 - - bed - poc - - CHSC80 - - - Bed 81 - - bed - poc - - CHSC81 - - - Bed 82 - - bed - poc - - CHSC82 - - - Bed 83 - - bed - poc - - CHSC83 - - - Bed 84 - - bed - poc - - CHSC84 - - - Bed 85 - - bed - poc - - CHSC85 - - - Bed 86 - - bed - poc - - CHSC86 - - - Bed 87 - - bed - poc - - CHSC87 - - - Bed 88 - - bed - poc - - CHSC88 - - - Bed 89 - - bed - poc - - CHSC89 - - - Bed 90 - - bed - poc - - CHSC90 - - - Bed 91 - - bed - poc - - CHSC91 - - - Bed 92 - - bed - poc - - CHSC92 - - - Bed 93 - - bed - poc - - CHSC93 - - - Bed 94 - - bed - poc - - CHSC94 - - - Bed 95 - - bed - poc - - CHSC95 - - - Bed 96 - - bed - poc - - CHSC96 - - - Bed 97 - - bed - poc - - CHSC97 - - - Katherine Monk - KMMB - - ward - poc - - - - Bed 01 - - bed - poc - - KMMB1 - - - Bed 02 - - bed - poc - - KMMB2 - - - Bed 03 - - bed - poc - - KMMB3 - - - Bed 04 - - bed - poc - - KMMB4 - - - Bed 05 - - bed - poc - - KMMB5 - - - Bed 06 - - bed - poc - - KMMB6 - - - Bed 07 - - bed - poc - - KMMB7 - - - Bed 08 - - bed - poc - - KMMB8 - - - Bed 09 - - bed - poc - - KMMB9 - - - Bed 10 - - bed - poc - - KMMB10 - - - Bed 11 - - bed - poc - - KMMB11 - - - Bed 12 - - bed - poc - - KMMB12 - - - Bed 13 - - bed - poc - - KMMB13 - - - Bed 14 - - bed - poc - - KMMB14 - - - Bed 15 - - bed - poc - - KMMB15 - - - Bed 16 - - bed - poc - - KMMB16 - - - Bed 17 - - bed - poc - - KMMB17 - - - Bed 18 - - bed - poc - - KMMB18 - - - Bed 19 - - bed - poc - - KMMB19 - - - Bed 20 - - bed - poc - - KMMB20 - - - Bed 21 - - bed - poc - - KMMB21 - - - Bed 22 - - bed - poc - - KMMB22 - - - Bed 23 - - bed - poc - - KMMB23 - - - Bed 24 - - bed - poc - - KMMB24 - - - Bed 25 - - bed - poc - - KMMB25 - - - Bed 26 - - bed - poc - - KMMB26 - - - Bed 27 - - bed - poc - - KMMB27 - - - Bed 28 - - bed - poc - - KMMB28 - - - Bed 29 - - bed - poc - - KMMB29 - - - Bed 30 - - bed - poc - - KMMB30 - - - Bed 31 - - bed - poc - - KMMB31 - - - Bed 32 - - bed - poc - - KMMB32 - - - Bed 33 - - bed - poc - - KMMB33 - - - Bed 34 - - bed - poc - - KMMB34 - - - Bed 35 - - bed - poc - - KMMB35 - - - Bed 36 - - bed - poc - - KMMB36 - - - Bed 37 - - bed - poc - - KMMB37 - - - Bed 38 - - bed - poc - - KMMB38 - - - Bed 39 - - bed - poc - - KMMB39 - - - Bed 40 - - bed - poc - - KMMB40 - - - Bed 41 - - bed - poc - - KMMB41 - - - Bed 42 - - bed - poc - - KMMB42 - - - Bed 43 - - bed - poc - - KMMB43 - - - Bed 44 - - bed - poc - - KMMB44 - - - Bed 45 - - bed - poc - - KMMB45 - - - Bed 46 - - bed - poc - - KMMB46 - - - Bed 47 - - bed - poc - - KMMB47 - - - Bed 48 - - bed - poc - - KMMB48 - - - Bed 49 - - bed - poc - - KMMB49 - - - Bed 50 - - bed - poc - - KMMB50 - - - Bed 51 - - bed - poc - - KMMB51 - - - Bed 52 - - bed - poc - - KMMB52 - - - Bed 53 - - bed - poc - - KMMB53 - - - Bed 54 - - bed - poc - - KMMB54 - - - Bed 55 - - bed - poc - - KMMB55 - - - Bed 56 - - bed - poc - - KMMB56 - - - Bed 57 - - bed - poc - - KMMB57 - - - Bed 58 - - bed - poc - - KMMB58 - - - Bed 59 - - bed - poc - - KMMB59 - - - Bed 60 - - bed - poc - - KMMB60 - - - Bed 61 - - bed - poc - - KMMB61 - - - Bed 62 - - bed - poc - - KMMB62 - - - Bed 63 - - bed - poc - - KMMB63 - - - Bed 64 - - bed - poc - - KMMB64 - - - Bed 65 - - bed - poc - - KMMB65 - - - Bed 66 - - bed - poc - - KMMB66 - - - Bed 67 - - bed - poc - - KMMB67 - - - Bed 68 - - bed - poc - - KMMB68 - - - Bed 69 - - bed - poc - - KMMB69 - - - Bed 70 - - bed - poc - - KMMB70 - - - Bed 71 - - bed - poc - - KMMB71 - - - Bed 72 - - bed - poc - - KMMB72 - - - Bed 73 - - bed - poc - - KMMB73 - - - Bed 74 - - bed - poc - - KMMB74 - - - Endoscopy Suite & Escalation - ENDO - - ward - poc - - - - Bed 01 - - bed - poc - - ENDO1 - - - Bed 02 - - bed - poc - - ENDO2 - - - Bed 03 - - bed - poc - - ENDO3 - - - Bed 04 - - bed - poc - - ENDO4 - - - Bed 05 - - bed - poc - - ENDO5 - - - Bed 06 - - bed - poc - - ENDO6 - - - Bed 07 - - bed - poc - - ENDO7 - - - Bed 08 - - bed - poc - - ENDO8 - - - Bed 09 - - bed - poc - - ENDO9 - - - Bed 10 - - bed - poc - - ENDO10 - - - Bed 11 - - bed - poc - - ENDO11 - - - Bed 12 - - bed - poc - - ENDO12 - - - Bed 13 - - bed - poc - - ENDO13 - - - Bed 14 - - bed - poc - - ENDO14 - - - Bed 15 - - bed - poc - - ENDO15 - - - Bed 16 - - bed - poc - - ENDO16 - - - Bed 17 - - bed - poc - - ENDO17 - - - Bed 18 - - bed - poc - - ENDO18 - - - Bed 19 - - bed - poc - - ENDO19 - - - Bed 20 - - bed - poc - - ENDO20 - - - Bed 21 - - bed - poc - - ENDO21 - - - Bed 22 - - bed - poc - - ENDO22 - - - Bed 23 - - bed - poc - - ENDO23 - - - Intermediate Care Beds - ICBM - - ward - poc - - - - Bed 01 - - bed - poc - - ICBM1 - - - Bed 02 - - bed - poc - - ICBM2 - - - Bed 03 - - bed - poc - - ICBM3 - - - Bed 04 - - bed - poc - - ICBM4 - - - Bed 05 - - bed - poc - - ICBM5 - - - Bed 06 - - bed - poc - - ICBM6 - - - Bed 07 - - bed - poc - - ICBM7 - - - Bed 08 - - bed - poc - - ICBM8 - - - Bed 09 - - bed - poc - - ICBM9 - - - Bed 10 - - bed - poc - - ICBM10 - - - Bed 11 - - bed - poc - - ICBM11 - - - Bed 12 - - bed - poc - - ICBM12 - - - Bed 13 - - bed - poc - - ICBM13 - - - Bed 14 - - bed - poc - - ICBM14 - - - Bed 15 - - bed - poc - - ICBM15 - - - Bed 16 - - bed - poc - - ICBM16 - - - Bed 17 - - bed - poc - - ICBM17 - - - Bed 18 - - bed - poc - - ICBM18 - - - Bed 19 - - bed - poc - - ICBM19 - - - Bed 20 - - bed - poc - - ICBM20 - - - Bed 21 - - bed - poc - - ICBM21 - - - Bed 22 - - bed - poc - - ICBM22 - - - Bed 23 - - bed - poc - - ICBM23 - - - Bed 24 - - bed - poc - - ICBM24 - - - Bed 25 - - bed - poc - - ICBM25 - - - Bed 26 - - bed - poc - - ICBM26 - - - Bed 27 - - bed - poc - - ICBM27 - - - Bed 28 - - bed - poc - - ICBM28 - - - Bed 29 - - bed - poc - - ICBM29 - - - Bed 30 - - bed - poc - - ICBM30 - - - Bed 31 - - bed - poc - - ICBM31 - - - Bed 32 - - bed - poc - - ICBM32 - - - Bed 33 - - bed - poc - - ICBM33 - - - Cedar Suite - CED1 - - ward - poc - - - - Bed 01 - - bed - poc - - CED11 - - - Bed 02 - - bed - poc - - CED12 - - - Bed 03 - - bed - poc - - CED13 - - - Bed 04 - - bed - poc - - CED14 - - - Bed 05 - - bed - poc - - CED15 - - - Bed 06 - - bed - poc - - CED16 - - - Bed 07 - - bed - poc - - CED17 - - - Bed 08 - - bed - poc - - CED18 - - - Bed 09 - - bed - poc - - CED19 - - - Bed 10 - - bed - poc - - CED110 - - - Bed 11 - - bed - poc - - CED111 - - - Bed 12 - - bed - poc - - CED112 - - - Bed 13 - - bed - poc - - CED113 - - - Bed 14 - - bed - poc - - CED114 - - - Bed 15 - - bed - poc - - CED115 - - - Bed 16 - - bed - poc - - CED116 - - - Bed 17 - - bed - poc - - CED117 - - - Bed 18 - - bed - poc - - CED118 - - - Bed 19 - - bed - poc - - CED119 - - - Bed 20 - - bed - poc - - CED120 - - - Bed 21 - - bed - poc - - CED121 - - - Bed 22 - - bed - poc - - CED122 - - - Bed 23 - - bed - poc - - CED123 - - - Bed 24 - - bed - poc - - CED124 - - - Bed 25 - - bed - poc - - CED125 - - - Bed 26 - - bed - poc - - CED126 - - - Bed 27 - - bed - poc - - CED127 - - - Bed 28 - - bed - poc - - CED128 - - - Bed 29 - - bed - poc - - CED129 - - - Mary Wright Unit - MWAB - - ward - poc - - - - Bed 01 - - bed - poc - - MWAB1 - - - Bed 02 - - bed - poc - - MWAB2 - - - Bed 03 - - bed - poc - - MWAB3 - - - Bed 04 - - bed - poc - - MWAB4 - - - Bed 05 - - bed - poc - - MWAB5 - - - Bed 06 - - bed - poc - - MWAB6 - - - Bed 07 - - bed - poc - - MWAB7 - - - Bed 08 - - bed - poc - - MWAB8 - - - Bed 09 - - bed - poc - - MWAB9 - - - Bed 10 - - bed - poc - - MWAB10 - - - Bed 11 - - bed - poc - - MWAB11 - - - Bed 12 - - bed - poc - - MWAB12 - - - Bed 13 - - bed - poc - - MWAB13 - - - Bed 14 - - bed - poc - - MWAB14 - - - Bed 15 - - bed - poc - - MWAB15 - - - Bed 16 - - bed - poc - - MWAB16 - - - Bed 17 - - bed - poc - - MWAB17 - - - Bed 18 - - bed - poc - - MWAB18 - - - Bed 19 - - bed - poc - - MWAB19 - - - Cardiac Day Unit Basildon - CDUB - - ward - poc - - - - Bed 01 - - bed - poc - - CDUB1 - - - Bed 02 - - bed - poc - - CDUB2 - - - Bed 03 - - bed - poc - - CDUB3 - - - Bed 04 - - bed - poc - - CDUB4 - - - Bed 05 - - bed - poc - - CDUB5 - - - Bed 06 - - bed - poc - - CDUB6 - - - Bed 07 - - bed - poc - - CDUB7 - - - Bed 08 - - bed - poc - - CDUB8 - - - Bed 09 - - bed - poc - - CDUB9 - - - Bed 10 - - bed - poc - - CDUB10 - - - Bed 11 - - bed - poc - - CDUB11 - - - Bed 12 - - bed - poc - - CDUB12 - - - Bed 13 - - bed - poc - - CDUB13 - - - Bed 14 - - bed - poc - - CDUB14 - - - Bed 15 - - bed - poc - - CDUB15 - - - Bed 16 - - bed - poc - - CDUB16 - - - Bed 17 - - bed - poc - - CDUB17 - - - Bed 18 - - bed - poc - - CDUB18 - - - Bed 19 - - bed - poc - - CDUB19 - - - Bed 20 - - bed - poc - - CDUB20 - - - Bed 21 - - bed - poc - - CDUB21 - - - Bed 22 - - bed - poc - - CDUB22 - - - Bed 23 - - bed - poc - - CDUB23 - - - Bed 24 - - bed - poc - - CDUB24 - - - Bed 25 - - bed - poc - - CDUB25 - - - Bed 26 - - bed - poc - - CDUB26 - - - Delivery Suite (Labour Ward) - LAB - - ward - poc - - - - Bed 01 - - bed - poc - - LAB1 - - - Bed 02 - - bed - poc - - LAB2 - - - Bed 03 - - bed - poc - - LAB3 - - - Bed 04 - - bed - poc - - LAB4 - - - Bed 05 - - bed - poc - - LAB5 - - - Bed 06 - - bed - poc - - LAB6 - - - Bed 07 - - bed - poc - - LAB7 - - - Bed 08 - - bed - poc - - LAB8 - - - Bed 09 - - bed - poc - - LAB9 - - - Bed 10 - - bed - poc - - LAB10 - - - Bed 11 - - bed - poc - - LAB11 - - - Bed 12 - - bed - poc - - LAB12 - - - Bed 13 - - bed - poc - - LAB13 - - - Bed 14 - - bed - poc - - LAB14 - - - Bed 15 - - bed - poc - - LAB15 - - - Bed 16 - - bed - poc - - LAB16 - - - Bed 17 - - bed - poc - - LAB17 - - - Bed 18 - - bed - poc - - LAB18 - - - Bed 19 - - bed - poc - - LAB19 - - - Bed 20 - - bed - poc - - LAB20 - - - Bed 21 - - bed - poc - - LAB21 - - - Bed 22 - - bed - poc - - LAB22 - - - Pasteur Ward - PAEB - - ward - poc - - - - Bed 01 - - bed - poc - - PAEB1 - - - Bed 02 - - bed - poc - - PAEB2 - - - Bed 03 - - bed - poc - - PAEB3 - - - Bed 04 - - bed - poc - - PAEB4 - - - Bed 05 - - bed - poc - - PAEB5 - - - Bed 06 - - bed - poc - - PAEB6 - - - Bed 07 - - bed - poc - - PAEB7 - - - Bed 08 - - bed - poc - - PAEB8 - - - Bed 09 - - bed - poc - - PAEB9 - - - Bed 10 - - bed - poc - - PAEB10 - - - Bed 11 - - bed - poc - - PAEB11 - - - Bed 12 - - bed - poc - - PAEB12 - - - Bed 13 - - bed - poc - - PAEB13 - - - Bed 14 - - bed - poc - - PAEB14 - - - Bed 15 - - bed - poc - - PAEB15 - - - Bed 16 - - bed - poc - - PAEB16 - - - Bed 17 - - bed - poc - - PAEB17 - - - Bed 18 - - bed - poc - - PAEB18 - - - Bed 19 - - bed - poc - - PAEB19 - - - Bed 20 - - bed - poc - - PAEB20 - - - Bed 21 - - bed - poc - - PAEB21 - - - Bed 22 - - bed - poc - - PAEB22 - - - Bed 23 - - bed - poc - - PAEB23 - - - Bed 24 - - bed - poc - - PAEB24 - - - Bed 25 - - bed - poc - - PAEB25 - - - Bed 26 - - bed - poc - - PAEB26 - - - Bed 27 - - bed - poc - - PAEB27 - - - Puffin - PUPB - - ward - poc - - - - Bed 01 - - bed - poc - - PUPB1 - - - Bed 02 - - bed - poc - - PUPB2 - - - Bed 03 - - bed - poc - - PUPB3 - - - Bed 04 - - bed - poc - - PUPB4 - - - Bed 05 - - bed - poc - - PUPB5 - - - Bed 06 - - bed - poc - - PUPB6 - - - Bed 07 - - bed - poc - - PUPB7 - - - Bed 08 - - bed - poc - - PUPB8 - - - Bed 09 - - bed - poc - - PUPB9 - - - Bed 10 - - bed - poc - - PUPB10 - - - Bed 11 - - bed - poc - - PUPB11 - - - Bed 12 - - bed - poc - - PUPB12 - - - Bed 13 - - bed - poc - - PUPB13 - - - Bed 14 - - bed - poc - - PUPB14 - - - Bed 15 - - bed - poc - - PUPB15 - - - Edith Cavell - ECMB - - ward - poc - - - - Bed 01 - - bed - poc - - ECMB1 - - - Bed 02 - - bed - poc - - ECMB2 - - - Bed 03 - - bed - poc - - ECMB3 - - - Bed 04 - - bed - poc - - ECMB4 - - - Bed 05 - - bed - poc - - ECMB5 - - - Bed 06 - - bed - poc - - ECMB6 - - - Bed 07 - - bed - poc - - ECMB7 - - - Bed 08 - - bed - poc - - ECMB8 - - - Bed 09 - - bed - poc - - ECMB9 - - - Bed 10 - - bed - poc - - ECMB10 - - - Bed 11 - - bed - poc - - ECMB11 - - - Bed 12 - - bed - poc - - ECMB12 - - - Bed 13 - - bed - poc - - ECMB13 - - - Bed 14 - - bed - poc - - ECMB14 - - - Bed 15 - - bed - poc - - ECMB15 - - - Bed 16 - - bed - poc - - ECMB16 - - - Bed 17 - - bed - poc - - ECMB17 - - - Bed 18 - - bed - poc - - ECMB18 - - - Bed 19 - - bed - poc - - ECMB19 - - - Bed 20 - - bed - poc - - ECMB20 - - - Bed 21 - - bed - poc - - ECMB21 - - - Bed 22 - - bed - poc - - ECMB22 - - - Bed 23 - - bed - poc - - ECMB23 - - - Bed 24 - - bed - poc - - ECMB24 - - - Bed 25 - - bed - poc - - ECMB25 - - - Bed 26 - - bed - poc - - ECMB26 - - - Bed 27 - - bed - poc - - ECMB27 - - - Bed 28 - - bed - poc - - ECMB28 - - - Bed 29 - - bed - poc - - ECMB29 - - - Bed 30 - - bed - poc - - ECMB30 - - - Bed 31 - - bed - poc - - ECMB31 - - - Bed 32 - - bed - poc - - ECMB32 - - - Bed 33 - - bed - poc - - ECMB33 - - - Bed 34 - - bed - poc - - ECMB34 - - - Bed 35 - - bed - poc - - ECMB35 - - - Bed 36 - - bed - poc - - ECMB36 - - - Bed 37 - - bed - poc - - ECMB37 - - - Bed 38 - - bed - poc - - ECMB38 - - - Bed 39 - - bed - poc - - ECMB39 - - - Bed 40 - - bed - poc - - ECMB40 - - - Bed 41 - - bed - poc - - ECMB41 - - - Bed 42 - - bed - poc - - ECMB42 - - - Bed 43 - - bed - poc - - ECMB43 - - - Bed 44 - - bed - poc - - ECMB44 - - - Bed 45 - - bed - poc - - ECMB45 - - - Bed 46 - - bed - poc - - ECMB46 - - - Bed 47 - - bed - poc - - ECMB47 - - - Bed 48 - - bed - poc - - ECMB48 - - - Bed 49 - - bed - poc - - ECMB49 - - - Bed 50 - - bed - poc - - ECMB50 - - - Bed 51 - - bed - poc - - ECMB51 - - - Bed 52 - - bed - poc - - ECMB52 - - - Bed 53 - - bed - poc - - ECMB53 - - - Bed 54 - - bed - poc - - ECMB54 - - - Bed 55 - - bed - poc - - ECMB55 - - - Bed 56 - - bed - poc - - ECMB56 - - - Elizabeth Fry - EFMB - - ward - poc - - - - Bed 01 - - bed - poc - - EFMB1 - - - Bed 02 - - bed - poc - - EFMB2 - - - Bed 03 - - bed - poc - - EFMB3 - - - Bed 04 - - bed - poc - - EFMB4 - - - Bed 05 - - bed - poc - - EFMB5 - - - Bed 06 - - bed - poc - - EFMB6 - - - Bed 07 - - bed - poc - - EFMB7 - - - Bed 08 - - bed - poc - - EFMB8 - - - Bed 09 - - bed - poc - - EFMB9 - - - Bed 10 - - bed - poc - - EFMB10 - - - Bed 11 - - bed - poc - - EFMB11 - - - Bed 12 - - bed - poc - - EFMB12 - - - Bed 13 - - bed - poc - - EFMB13 - - - Bed 14 - - bed - poc - - EFMB14 - - - Bed 15 - - bed - poc - - EFMB15 - - - Bed 16 - - bed - poc - - EFMB16 - - - Bed 17 - - bed - poc - - EFMB17 - - - Bed 18 - - bed - poc - - EFMB18 - - - Bed 19 - - bed - poc - - EFMB19 - - - Bed 20 - - bed - poc - - EFMB20 - - - Bed 21 - - bed - poc - - EFMB21 - - - Bed 22 - - bed - poc - - EFMB22 - - - Bed 23 - - bed - poc - - EFMB23 - - - Bed 24 - - bed - poc - - EFMB24 - - - Bed 25 - - bed - poc - - EFMB25 - - - Bed 26 - - bed - poc - - EFMB26 - - - Bed 27 - - bed - poc - - EFMB27 - - - Bed 28 - - bed - poc - - EFMB28 - - - Bed 29 - - bed - poc - - EFMB29 - - - Bed 30 - - bed - poc - - EFMB30 - - - Bed 31 - - bed - poc - - EFMB31 - - - Waiting Area 01 - - bed - poc - - EFMB32 - - - Waiting Area 02 - - bed - poc - - EFMB33 - - - Waiting Area 03 - - bed - poc - - EFMB34 - - - Waiting Area 04 - - bed - poc - - EFMB35 - - - Waiting Area 05 - - bed - poc - - EFMB36 - - - Swap Location - - bed - poc - - EFMB37 - - - Renal Dialysis Unit - RDUB - - ward - poc - - - - Bed 01 - - bed - poc - - RDUB1 - - - Bed 02 - - bed - poc - - RDUB2 - - - Bed 03 - - bed - poc - - RDUB3 - - - Bed 04 - - bed - poc - - RDUB4 - - - Bed 05 - - bed - poc - - RDUB5 - - - Bed 06 - - bed - poc - - RDUB6 - - - Bed 07 - - bed - poc - - RDUB7 - - - Bed 08 - - bed - poc - - RDUB8 - - - Bed 09 - - bed - poc - - RDUB9 - - - Bed 10 - - bed - poc - - RDUB10 - - - Bed 11 - - bed - poc - - RDUB11 - - - Bed 12 - - bed - poc - - RDUB12 - - - Bed 13 - - bed - poc - - RDUB13 - - - Bed 14 - - bed - poc - - RDUB14 - - - Bed 15 - - bed - poc - - RDUB15 - - - Bed 16 - - bed - poc - - RDUB16 - - - Bed 17 - - bed - poc - - RDUB17 - - - Bed 18 - - bed - poc - - RDUB18 - - - Bed 19 - - bed - poc - - RDUB19 - - - Bed 20 - - bed - poc - - RDUB20 - - - Bed 21 - - bed - poc - - RDUB21 - - - Bed 22 - - bed - poc - - RDUB22 - - - Bed 23 - - bed - poc - - RDUB23 - - - Bed 24 - - bed - poc - - RDUB24 - - - Bed 25 - - bed - poc - - RDUB25 - - - Bed 26 - - bed - poc - - RDUB26 - - - Medical Short Stay - SSMB - - ward - poc - - - - Bed 01 - - bed - poc - - SSMB1 - - - Bed 02 - - bed - poc - - SSMB2 - - - Bed 03 - - bed - poc - - SSMB3 - - - Bed 04 - - bed - poc - - SSMB4 - - - Bed 05 - - bed - poc - - SSMB5 - - - Bed 06 - - bed - poc - - SSMB6 - - - Bed 07 - - bed - poc - - SSMB7 - - - Bed 08 - - bed - poc - - SSMB8 - - - Bed 09 - - bed - poc - - SSMB9 - - - Bed 10 - - bed - poc - - SSMB10 - - - Bed 11 - - bed - poc - - SSMB11 - - - Bed 12 - - bed - poc - - SSMB12 - - - Cedar 1 Cots - CCT1 - - ward - poc - - - - Bed 01 - - bed - poc - - CCT11 - - - Bed 02 - - bed - poc - - CCT12 - - - Bed 03 - - bed - poc - - CCT13 - - - Bed 04 - - bed - poc - - CCT14 - - - Bed 05 - - bed - poc - - CCT15 - - - Bed 06 - - bed - poc - - CCT16 - - - Bed 07 - - bed - poc - - CCT17 - - - Bed 08 - - bed - poc - - CCT18 - - - Bed 09 - - bed - poc - - CCT19 - - - Bed 10 - - bed - poc - - CCT110 - - - Bed 11 - - bed - poc - - CCT111 - - - Bed 12 - - bed - poc - - CCT112 - - - Bed 13 - - bed - poc - - CCT113 - - - Bed 14 - - bed - poc - - CCT114 - - - Bed 15 - - bed - poc - - CCT115 - - - Bed 16 - - bed - poc - - CCT116 - - - Bed 17 - - bed - poc - - CCT117 - - - Bed 18 - - bed - poc - - CCT118 - - - Bed 19 - - bed - poc - - CCT119 - - - Bed 20 - - bed - poc - - CCT120 - - - Bed 21 - - bed - poc - - CCT121 - - - Bed 22 - - bed - poc - - CCT122 - - - Willow 1 - WIL1 - - ward - poc - - - - Bed 01 - - bed - poc - - WIL11 - - - Bed 02 - - bed - poc - - WIL12 - - - Bed 03 - - bed - poc - - WIL13 - - - Bed 04 - - bed - poc - - WIL14 - - - Bed 05 - - bed - poc - - WIL15 - - - Bed 06 - - bed - poc - - WIL16 - - - Bed 07 - - bed - poc - - WIL17 - - - Bed 08 - - bed - poc - - WIL18 - - - Bed 09 - - bed - poc - - WIL19 - - - Bed 10 - - bed - poc - - WIL110 - - - Laindon - LASB - - ward - poc - - - - Bed 01 - - bed - poc - - LASB1 - - - Bed 02 - - bed - poc - - LASB2 - - - Bed 03 - - bed - poc - - LASB3 - - - Bed 04 - - bed - poc - - LASB4 - - - Bed 05 - - bed - poc - - LASB5 - - - Bed 06 - - bed - poc - - LASB6 - - - Lionel Cosins Ward - LCOB - - ward - poc - - - - Bed 01 - - bed - poc - - LCOB1 - - - Bed 02 - - bed - poc - - LCOB2 - - - Bed 03 - - bed - poc - - LCOB3 - - - Bed 04 - - bed - poc - - LCOB4 - - - Bed 05 - - bed - poc - - LCOB5 - - - Bed 06 - - bed - poc - - LCOB6 - - - Bed 07 - - bed - poc - - LCOB7 - - - Bed 08 - - bed - poc - - LCOB8 - - - Bed 09 - - bed - poc - - LCOB9 - - - Bed 10 - - bed - poc - - LCOB10 - - - Bed 11 - - bed - poc - - LCOB11 - - - Bed 12 - - bed - poc - - LCOB12 - - - Bed 13 - - bed - poc - - LCOB13 - - - Bed 14 - - bed - poc - - LCOB14 - - - Bed 15 - - bed - poc - - LCOB15 - - - Bed 16 - - bed - poc - - LCOB16 - - - Bed 17 - - bed - poc - - LCOB17 - - - Bed 18 - - bed - poc - - LCOB18 - - - Bed 19 - - bed - poc - - LCOB19 - - - Bed 20 - - bed - poc - - LCOB20 - - - Bed 21 - - bed - poc - - LCOB21 - - - Bed 22 - - bed - poc - - LCOB22 - - - Bed 23 - - bed - poc - - LCOB23 - - - Bed 24 - - bed - poc - - LCOB24 - - - Bed 25 - - bed - poc - - LCOB25 - - - Bed 26 - - bed - poc - - LCOB26 - - - Bed 27 - - bed - poc - - LCOB27 - - - Bed 28 - - bed - poc - - LCOB28 - - - Gynae.Ref & Assessment Unit - GRAB - - ward - poc - - - - Bed 01 - - bed - poc - - GRAB1 - - - Bed 02 - - bed - poc - - GRAB2 - - - Bed 03 - - bed - poc - - GRAB3 - - - Bed 04 - - bed - poc - - GRAB4 - - - Haematology Day Unit - HUMB - - ward - poc - - - - Bed 01 - - bed - poc - - HUMB1 - - - Bed 02 - - bed - poc - - HUMB2 - - - Bed 03 - - bed - poc - - HUMB3 - - - Bed 04 - - bed - poc - - HUMB4 - - - Bed 05 - - bed - poc - - HUMB5 - - - Nuffield Hospital Outsourcing - NHOS - - ward - poc - - - - Bed 01 - - bed - poc - - NHOS1 - - - Bed 02 - - bed - poc - - NHOS2 - - - Bed 03 - - bed - poc - - NHOS3 - - - Bed 04 - - bed - poc - - NHOS4 - - - Bed 05 - - bed - poc - - NHOS5 - - - Bed 06 - - bed - poc - - NHOS6 - - - Haematology Infusion Suite - HIMB - - ward - poc - - - - Bed 01 - - bed - poc - - HIMB1 - - - Bed 02 - - bed - poc - - HIMB2 - - - Bed 03 - - bed - poc - - HIMB3 - - - Bed 04 - - bed - poc - - HIMB4 - - - Acute Respiratory Unit - ARUB - - ward - poc - - - - Bed 01 - - bed - poc - - ARUB1 - - - Bed 02 - - bed - poc - - ARUB2 - - - Bed 03 - - bed - poc - - ARUB3 - - - Bed 04 - - bed - poc - - ARUB4 - - - Bed 05 - - bed - poc - - ARUB5 - - - Bed 06 - - bed - poc - - ARUB6 - - - Bed 07 - - bed - poc - - ARUB7 - - - Bed 08 - - bed - poc - - ARUB8 - - - James Mackenzie Ward - JMCB - - ward - poc - - - - Bed 01 - - bed - poc - - JMCB1 - - - Bed 02 - - bed - poc - - JMCB2 - - - Bed 03 - - bed - poc - - JMCB3 - - - Bed 04 - - bed - poc - - JMCB4 - - - Bed 05 - - bed - poc - - JMCB5 - - - Bed 06 - - bed - poc - - JMCB6 - - - Bed 07 - - bed - poc - - JMCB7 - - - Bed 08 - - bed - poc - - JMCB8 - - - Bed 09 - - bed - poc - - JMCB9 - - - Bed 10 - - bed - poc - - JMCB10 - - - Bed 11 - - bed - poc - - JMCB11 - - - Bed 12 - - bed - poc - - JMCB12 - - - Bed 13 - - bed - poc - - JMCB13 - - - Bed 14 - - bed - poc - - JMCB14 - - - Bed 15 - - bed - poc - - JMCB15 - - - Bed 16 - - bed - poc - - JMCB16 - - - Bed 17 - - bed - poc - - JMCB17 - - - Bed 18 - - bed - poc - - JMCB18 - - - Bed 19 - - bed - poc - - JMCB19 - - - Bed 20 - - bed - poc - - JMCB20 - - - Bed 21 - - bed - poc - - JMCB21 - - - Bed 22 - - bed - poc - - JMCB22 - - - Bed 23 - - bed - poc - - JMCB23 - - - Bed 24 - - bed - poc - - JMCB24 - - - Bed 25 - - bed - poc - - JMCB25 - - - Bed 26 - - bed - poc - - JMCB26 - - - Bed 27 - - bed - poc - - JMCB27 - - - Bed 28 - - bed - poc - - JMCB28 - - - Bed 29 - - bed - poc - - JMCB29 - - - Bed 30 - - bed - poc - - JMCB30 - - - Bed 31 - - bed - poc - - JMCB31 - - - Bed 32 - - bed - poc - - JMCB32 - - - Bed 33 - - bed - poc - - JMCB33 - - - Bed 34 - - bed - poc - - JMCB34 - - - Bed 35 - - bed - poc - - JMCB35 - - - Bed 36 - - bed - poc - - JMCB36 - - - Bed 37 - - bed - poc - - JMCB37 - - - Bed 38 - - bed - poc - - JMCB38 - - - Bed 39 - - bed - poc - - JMCB39 - - - Bed 40 - - bed - poc - - JMCB40 - - - Bed 41 - - bed - poc - - JMCB41 - - - Bed 42 - - bed - poc - - JMCB42 - - - Bed 43 - - bed - poc - - JMCB43 - - - Bed 44 - - bed - poc - - JMCB44 - - - Bed 45 - - bed - poc - - JMCB45 - - - Bed 46 - - bed - poc - - JMCB46 - - - Bayman Ward - BMBR - - ward - poc - - - - Bed 01 - - bed - poc - - BMBR1 - - - Bed 02 - - bed - poc - - BMBR2 - - - Bed 03 - - bed - poc - - BMBR3 - - - Bed 04 - - bed - poc - - BMBR4 - - - Bed 05 - - bed - poc - - BMBR5 - - - Bed 06 - - bed - poc - - BMBR6 - - - Bed 07 - - bed - poc - - BMBR7 - - - Bed 08 - - bed - poc - - BMBR8 - - - Bed 09 - - bed - poc - - BMBR9 - - - Bed 10 - - bed - poc - - BMBR10 - - - Bed 11 - - bed - poc - - BMBR11 - - - Bed 12 - - bed - poc - - BMBR12 - - - Bed 13 - - bed - poc - - BMBR13 - - - Bed 14 - - bed - poc - - BMBR14 - - - Bed 15 - - bed - poc - - BMBR15 - - - Bed 16 - - bed - poc - - BMBR16 - - - Bed 17 - - bed - poc - - BMBR17 - - - Bed 18 - - bed - poc - - BMBR18 - - - Bed 19 - - bed - poc - - BMBR19 - - - Bed 20 - - bed - poc - - BMBR20 - - - Bed 21 - - bed - poc - - BMBR21 - - - Bed 22 - - bed - poc - - BMBR22 - - - Bed 23 - - bed - poc - - BMBR23 - - - Bed 24 - - bed - poc - - BMBR24 - - - Bed 25 - - bed - poc - - BMBR25 - - - Urology Intravesical Clinic - KUOB - - ward - poc - - - - Bed 01 - - bed - poc - - KUOB1 - - - Cots Labour Ward - LACT - - ward - poc - - - - Bed 01 - - bed - poc - - LACT1 - - - Bed 02 - - bed - poc - - LACT2 - - - Bed 03 - - bed - poc - - LACT3 - - - Bed 04 - - bed - poc - - LACT4 - - - Bed 05 - - bed - poc - - LACT5 - - - Bed 06 - - bed - poc - - LACT6 - - - Bed 07 - - bed - poc - - LACT7 - - - Bed 08 - - bed - poc - - LACT8 - - - Bed 09 - - bed - poc - - LACT9 - - - Bed 10 - - bed - poc - - LACT10 - - - Bulphan Ward - BUOB - - ward - poc - - - - Bed 01 - - bed - poc - - BUOB1 - - - Bed 02 - - bed - poc - - BUOB2 - - - Bed 03 - - bed - poc - - BUOB3 - - - Bed 04 - - bed - poc - - BUOB4 - - - Bed 05 - - bed - poc - - BUOB5 - - - Bed 06 - - bed - poc - - BUOB6 - - - Bed 07 - - bed - poc - - BUOB7 - - - Bed 08 - - bed - poc - - BUOB8 - - - Bed 09 - - bed - poc - - BUOB9 - - - Bed 10 - - bed - poc - - BUOB10 - - - Bed 11 - - bed - poc - - BUOB11 - - - Bed 12 - - bed - poc - - BUOB12 - - - Bed 13 - - bed - poc - - BUOB13 - - - Bed 14 - - bed - poc - - BUOB14 - - - Bed 15 - - bed - poc - - BUOB15 - - - Bed 16 - - bed - poc - - BUOB16 - - - Bed 17 - - bed - poc - - BUOB17 - - - Bed 18 - - bed - poc - - BUOB18 - - - Bed 19 - - bed - poc - - BUOB19 - - - Bed 20 - - bed - poc - - BUOB20 - - - Bed 21 - - bed - poc - - BUOB21 - - - Bed 22 - - bed - poc - - BUOB22 - - - Bed 23 - - bed - poc - - BUOB23 - - - Bed 24 - - bed - poc - - BUOB24 - - - Bed 25 - - bed - poc - - BUOB25 - - - Bed 26 - - bed - poc - - BUOB26 - - - Bed 27 - - bed - poc - - BUOB27 - - - Bed 28 - - bed - poc - - BUOB28 - - - Home Birth Mother - HBMR - - ward - poc - - - - Bed 01 - - bed - poc - - HBMR1 - - - Bed 02 - - bed - poc - - HBMR2 - - - Bed 03 - - bed - poc - - HBMR3 - - - Bed 04 - - bed - poc - - HBMR4 - - - Lister Ward (Stroke Unit) Bas - LISB - - ward - poc - - - - Bed 01 - - bed - poc - - LISB1 - - - Bed 02 - - bed - poc - - LISB2 - - - Bed 03 - - bed - poc - - LISB3 - - - Bed 04 - - bed - poc - - LISB4 - - - Bed 05 - - bed - poc - - LISB5 - - - Bed 06 - - bed - poc - - LISB6 - - - Bed 07 - - bed - poc - - LISB7 - - - Bed 08 - - bed - poc - - LISB8 - - - Bed 09 - - bed - poc - - LISB9 - - - Bed 10 - - bed - poc - - LISB10 - - - Bed 11 - - bed - poc - - LISB11 - - - Bed 12 - - bed - poc - - LISB12 - - - Bed 13 - - bed - poc - - LISB13 - - - Bed 14 - - bed - poc - - LISB14 - - - Bed 15 - - bed - poc - - LISB15 - - - Bed 16 - - bed - poc - - LISB16 - - - Bed 17 - - bed - poc - - LISB17 - - - Bed 18 - - bed - poc - - LISB18 - - - Bed 19 - - bed - poc - - LISB19 - - - Bed 20 - - bed - poc - - LISB20 - - - Bed 21 - - bed - poc - - LISB21 - - - Bed 22 - - bed - poc - - LISB22 - - - Bed 23 - - bed - poc - - LISB23 - - - Bed 24 - - bed - poc - - LISB24 - - - Critical Care Department Bas - CCDB - - ward - poc - - - - Bed 01 - - bed - poc - - CCDB1 - - - Bed 02 - - bed - poc - - CCDB2 - - - Bed 03 - - bed - poc - - CCDB3 - - - Bed 04 - - bed - poc - - CCDB4 - - - Bed 05 - - bed - poc - - CCDB5 - - - Bed 06 - - bed - poc - - CCDB6 - - - Bed 07 - - bed - poc - - CCDB7 - - - Bed 08 - - bed - poc - - CCDB8 - - - Bed 09 - - bed - poc - - CCDB9 - - - Bed 10 - - bed - poc - - CCDB10 - - - Bed 11 - - bed - poc - - CCDB11 - - - Bed 12 - - bed - poc - - CCDB12 - - - Bed 13 - - bed - poc - - CCDB13 - - - Bed 14 - - bed - poc - - CCDB14 - - - Bed 15 - - bed - poc - - CCDB15 - - - William Harvey - WHMB - - ward - poc - - - - Bed 01 - - bed - poc - - WHMB1 - - - Bed 02 - - bed - poc - - WHMB2 - - - Bed 03 - - bed - poc - - WHMB3 - - - Bed 04 - - bed - poc - - WHMB4 - - - Bed 05 - - bed - poc - - WHMB5 - - - Bed 06 - - bed - poc - - WHMB6 - - - Bed 07 - - bed - poc - - WHMB7 - - - Bed 08 - - bed - poc - - WHMB8 - - - Bed 09 - - bed - poc - - WHMB9 - - - Bed 10 - - bed - poc - - WHMB10 - - - Bed 11 - - bed - poc - - WHMB11 - - - Bed 12 - - bed - poc - - WHMB12 - - - Bed 13 - - bed - poc - - WHMB13 - - - Bed 14 - - bed - poc - - WHMB14 - - - Bed 15 - - bed - poc - - WHMB15 - - - Bed 16 - - bed - poc - - WHMB16 - - - Bed 17 - - bed - poc - - WHMB17 - - - Bed 18 - - bed - poc - - WHMB18 - - - Bed 19 - - bed - poc - - WHMB19 - - - Bed 20 - - bed - poc - - WHMB20 - - - Bed 21 - - bed - poc - - WHMB21 - - - Bed 22 - - bed - poc - - WHMB22 - - - Bed 23 - - bed - poc - - WHMB23 - - - Bed 24 - - bed - poc - - WHMB24 - - - Bed 25 - - bed - poc - - WHMB25 - - - Bed 26 - - bed - poc - - WHMB26 - - - Bed 27 - - bed - poc - - WHMB27 - - - Bed 28 - - bed - poc - - WHMB28 - - - Cath Lab Escalation Area - CLMB - - ward - poc - - - - Bed 01 - - bed - poc - - CLMB1 - - - Bed 02 - - bed - poc - - CLMB2 - - - Bed 03 - - bed - poc - - CLMB3 - - - Bed 04 - - bed - poc - - CLMB4 - - - Bed 05 - - bed - poc - - CLMB5 - - - Bed 06 - - bed - poc - - CLMB6 - - - Bed 07 - - bed - poc - - CLMB7 - - - Bed 08 - - bed - poc - - CLMB8 - - - Bed 09 - - bed - poc - - CLMB9 - - - Critical Care, Colne Ward, Ctc - CCCO - - ward - poc - - - - Bed 01 - - bed - poc - - CCCO1 - - - Bed 02 - - bed - poc - - CCCO2 - - - Bed 03 - - bed - poc - - CCCO3 - - - Bed 04 - - bed - poc - - CCCO4 - - - Bed 05 - - bed - poc - - CCCO5 - - - Bed 06 - - bed - poc - - CCCO6 - - - Bed 07 - - bed - poc - - CCCO7 - - - Bed 08 - - bed - poc - - CCCO8 - - - Bed 09 - - bed - poc - - CCCO9 - - - Bed 10 - - bed - poc - - CCCO10 - - - Bed 11 - - bed - poc - - CCCO11 - - - Bed 12 - - bed - poc - - CCCO12 - - - Bed 13 - - bed - poc - - CCCO13 - - - Bed 14 - - bed - poc - - CCCO14 - - - Bed 15 - - bed - poc - - CCCO15 - - - Bed 16 - - bed - poc - - CCCO16 - - - Bed 17 - - bed - poc - - CCCO17 - - - Bed 18 - - bed - poc - - CCCO18 - - - Bed 19 - - bed - poc - - CCCO19 - - - Bed 20 - - bed - poc - - CCCO20 - - - Bed 21 - - bed - poc - - CCCO21 - - - Bed 22 - - bed - poc - - CCCO22 - - - Bed 23 - - bed - poc - - CCCO23 - - - Bed 24 - - bed - poc - - CCCO24 - - - Bed 25 - - bed - poc - - CCCO25 - - - Bed 26 - - bed - poc - - CCCO26 - - - Bed 27 - - bed - poc - - CCCO27 - - - Bed 28 - - bed - poc - - CCCO28 - - - Bed 29 - - bed - poc - - CCCO29 - - - Bed 30 - - bed - poc - - CCCO30 - - - Bed 31 - - bed - poc - - CCCO31 - - - Bed 32 - - bed - poc - - CCCO32 - - - Bed 33 - - bed - poc - - CCCO33 - - - Bed 34 - - bed - poc - - CCCO34 - - - Bed 35 - - bed - poc - - CCCO35 - - - Bed 36 - - bed - poc - - CCCO36 - - - Bed 37 - - bed - poc - - CCCO37 - - - Bed 38 - - bed - poc - - CCCO38 - - - Bed 39 - - bed - poc - - CCCO39 - - - Bed 40 - - bed - poc - - CCCO40 - - - Bed 41 - - bed - poc - - CCCO41 - - - Bed 42 - - bed - poc - - CCCO42 - - - Bed 43 - - bed - poc - - CCCO43 - - - Bed 44 - - bed - poc - - CCCO44 - - - Bed 45 - - bed - poc - - CCCO45 - - - Bed 46 - - bed - poc - - CCCO46 - - - Bed 47 - - bed - poc - - CCCO47 - - - Bed 48 - - bed - poc - - CCCO48 - - - Bed 49 - - bed - poc - - CCCO49 - - - Roding Ward - ROMC - - ward - poc - - - - Bed 01 - - bed - poc - - ROMC1 - - - Bed 02 - - bed - poc - - ROMC2 - - - Bed 03 - - bed - poc - - ROMC3 - - - Bed 04 - - bed - poc - - ROMC4 - - - Bed 05 - - bed - poc - - ROMC5 - - - Bed 06 - - bed - poc - - ROMC6 - - - Bed 07 - - bed - poc - - ROMC7 - - - Bed 08 - - bed - poc - - ROMC8 - - - Bed 09 - - bed - poc - - ROMC9 - - - Bed 10 - - bed - poc - - ROMC10 - - - Bed 11 - - bed - poc - - ROMC11 - - - Bed 12 - - bed - poc - - ROMC12 - - - Bed 13 - - bed - poc - - ROMC13 - - - Bed 14 - - bed - poc - - ROMC14 - - - Bed 15 - - bed - poc - - ROMC15 - - - Bed 16 - - bed - poc - - ROMC16 - - - Bed 17 - - bed - poc - - ROMC17 - - - Bed 18 - - bed - poc - - ROMC18 - - - Bed 19 - - bed - poc - - ROMC19 - - - Bed 20 - - bed - poc - - ROMC20 - - - Bed 21 - - bed - poc - - ROMC21 - - - Bed 22 - - bed - poc - - ROMC22 - - - Bed 23 - - bed - poc - - ROMC23 - - - Bed 24 - - bed - poc - - ROMC24 - - - Bed 25 - - bed - poc - - ROMC25 - - - Bed 26 - - bed - poc - - ROMC26 - - - Bed 27 - - bed - poc - - ROMC27 - - - Bed 28 - - bed - poc - - ROMC28 - - - Bed 29 - - bed - poc - - ROMC29 - - - Bed 30 - - bed - poc - - ROMC30 - - - Bed 31 - - bed - poc - - ROMC31 - - - Bed 32 - - bed - poc - - ROMC32 - - - Bed 33 - - bed - poc - - ROMC33 - - - Bed 34 - - bed - poc - - ROMC34 - - - Bed 35 - - bed - poc - - ROMC35 - - - Bed 36 - - bed - poc - - ROMC36 - - - Bed 37 - - bed - poc - - ROMC37 - - - Bed 38 - - bed - poc - - ROMC38 - - - Bed 39 - - bed - poc - - ROMC39 - - - Bed 40 - - bed - poc - - ROMC40 - - - Bed 41 - - bed - poc - - ROMC41 - - - Bed 42 - - bed - poc - - ROMC42 - - - Bed 43 - - bed - poc - - ROMC43 - - - Bed 44 - - bed - poc - - ROMC44 - - - Bed 45 - - bed - poc - - ROMC45 - - - Bed 46 - - bed - poc - - ROMC46 - - - Bed 47 - - bed - poc - - ROMC47 - - - Bed 48 - - bed - poc - - ROMC48 - - - Bed 49 - - bed - poc - - ROMC49 - - - Bed 50 - - bed - poc - - ROMC50 - - - Bed 51 - - bed - poc - - ROMC51 - - - Bed 52 - - bed - poc - - ROMC52 - - - Bed 53 - - bed - poc - - ROMC53 - - - Bed 54 - - bed - poc - - ROMC54 - - - Bed 55 - - bed - poc - - ROMC55 - - - Bed 56 - - bed - poc - - ROMC56 - - - Bed 57 - - bed - poc - - ROMC57 - - - Bed 58 - - bed - poc - - ROMC58 - - - Bed 59 - - bed - poc - - ROMC59 - - - Bed 60 - - bed - poc - - ROMC60 - - - Bed 61 - - bed - poc - - ROMC61 - - - Bed 62 - - bed - poc - - ROMC62 - - - Bed 63 - - bed - poc - - ROMC63 - - - Bed 64 - - bed - poc - - ROMC64 - - - Acute Medical Unit East (AMU East) - AMEB - - ward - poc - - - - Bed 01 - - bed - poc - - AMEB1 - - - Bed 02 - - bed - poc - - AMEB2 - - - Bed 03 - - bed - poc - - AMEB3 - - - Bed 04 - - bed - poc - - AMEB4 - - - Bed 05 - - bed - poc - - AMEB5 - - - Bed 06 - - bed - poc - - AMEB6 - - - Bed 07 - - bed - poc - - AMEB7 - - - Bed 08 - - bed - poc - - AMEB8 - - - Bed 09 - - bed - poc - - AMEB9 - - - Bed 10 - - bed - poc - - AMEB10 - - - Bed 11 - - bed - poc - - AMEB11 - - - Bed 12 - - bed - poc - - AMEB12 - - - Bed 13 - - bed - poc - - AMEB13 - - - Bed 14 - - bed - poc - - AMEB14 - - - Bed 15 - - bed - poc - - AMEB15 - - - Bed 16 - - bed - poc - - AMEB16 - - - Bed 17 - - bed - poc - - AMEB17 - - - Bed 18 - - bed - poc - - AMEB18 - - - Bed 19 - - bed - poc - - AMEB19 - - - Bed 20 - - bed - poc - - AMEB20 - - - Bed 21 - - bed - poc - - AMEB21 - - - Bed 22 - - bed - poc - - AMEB22 - - - Bed 23 - - bed - poc - - AMEB23 - - - Bed 24 - - bed - poc - - AMEB24 - - - Bed 25 - - bed - poc - - AMEB25 - - - Bed 26 - - bed - poc - - AMEB26 - - - Bed 27 - - bed - poc - - AMEB27 - - - Linford - LIOB - - ward - poc - - - - Bed 01 - - bed - poc - - LIOB1 - - - Bed 02 - - bed - poc - - LIOB2 - - - Bed 03 - - bed - poc - - LIOB3 - - - Bed 04 - - bed - poc - - LIOB4 - - - Bed 05 - - bed - poc - - LIOB5 - - - Bed 06 - - bed - poc - - LIOB6 - - - Bed 07 - - bed - poc - - LIOB7 - - - Bed 08 - - bed - poc - - LIOB8 - - - Bed 09 - - bed - poc - - LIOB9 - - - Bed 10 - - bed - poc - - LIOB10 - - - Bed 11 - - bed - poc - - LIOB11 - - - Bed 12 - - bed - poc - - LIOB12 - - - Bed 13 - - bed - poc - - LIOB13 - - - Bed 14 - - bed - poc - - LIOB14 - - - Bed 15 - - bed - poc - - LIOB15 - - - Bed 16 - - bed - poc - - LIOB16 - - - Bed 17 - - bed - poc - - LIOB17 - - - Bed 18 - - bed - poc - - LIOB18 - - - Bed 19 - - bed - poc - - LIOB19 - - - Bed 20 - - bed - poc - - LIOB20 - - - Bed 21 - - bed - poc - - LIOB21 - - - Bed 22 - - bed - poc - - LIOB22 - - - Bed 23 - - bed - poc - - LIOB23 - - - Bed 24 - - bed - poc - - LIOB24 - - - Bed 25 - - bed - poc - - LIOB25 - - - Bed 26 - - bed - poc - - LIOB26 - - - Bed 27 - - bed - poc - - LIOB27 - - - Bed 28 - - bed - poc - - LIOB28 - - - Acute Medical Unit West (AMU West) - AMWB - - ward - poc - - - - Bed 01 - - bed - poc - - AMWB1 - - - Bed 02 - - bed - poc - - AMWB2 - - - Bed 03 - - bed - poc - - AMWB3 - - - Bed 04 - - bed - poc - - AMWB4 - - - Bed 05 - - bed - poc - - AMWB5 - - - Bed 06 - - bed - poc - - AMWB6 - - - Bed 07 - - bed - poc - - AMWB7 - - - Bed 08 - - bed - poc - - AMWB8 - - - Bed 09 - - bed - poc - - AMWB9 - - - Bed 10 - - bed - poc - - AMWB10 - - - Bed 11 - - bed - poc - - AMWB11 - - - Bed 12 - - bed - poc - - AMWB12 - - - Bed 13 - - bed - poc - - AMWB13 - - - Bed 14 - - bed - poc - - AMWB14 - - - Bed 15 - - bed - poc - - AMWB15 - - - Bed 16 - - bed - poc - - AMWB16 - - - Bed 17 - - bed - poc - - AMWB17 - - - Bed 18 - - bed - poc - - AMWB18 - - - Bed 19 - - bed - poc - - AMWB19 - - - Bed 20 - - bed - poc - - AMWB20 - - - Bed 21 - - bed - poc - - AMWB21 - - - Bed 22 - - bed - poc - - AMWB22 - - - Bed 23 - - bed - poc - - AMWB23 - - - Bed 24 - - bed - poc - - AMWB24 - - - Bed 25 - - bed - poc - - AMWB25 - - - Bed 26 - - bed - poc - - AMWB26 - - - Elective Admissions Lounge - EALB - - ward - poc - - - - Bed 01 - - bed - poc - - EALB1 - - - Bed 02 - - bed - poc - - EALB2 - - - Bed 03 - - bed - poc - - EALB3 - - - Bed 04 - - bed - poc - - EALB4 - - - Bed 05 - - bed - poc - - EALB5 - - - Bed 06 - - bed - poc - - EALB6 - - - Bed 07 - - bed - poc - - EALB7 - - - Bed 08 - - bed - poc - - EALB8 - - - Bed 09 - - bed - poc - - EALB9 - - - Bed 10 - - bed - poc - - EALB10 - - - Bed 11 - - bed - poc - - EALB11 - - - Bed 12 - - bed - poc - - EALB12 - - - Bed 13 - - bed - poc - - EALB13 - - - Bed 14 - - bed - poc - - EALB14 - - - Bed 15 - - bed - poc - - EALB15 - - - Bed 16 - - bed - poc - - EALB16 - - - Bed 17 - - bed - poc - - EALB17 - - - Bed 18 - - bed - poc - - EALB18 - - - Virtual Ward Medihome Basildon - VWMB - - ward - poc - - - - Bed 01 - - bed - poc - - VWMB1 - - - Bed 02 - - bed - poc - - VWMB2 - - - Bed 03 - - bed - poc - - VWMB3 - - - Bed 04 - - bed - poc - - VWMB4 - - - Bed 05 - - bed - poc - - VWMB5 - - - Bed 06 - - bed - poc - - VWMB6 - - - Bed 07 - - bed - poc - - VWMB7 - - - Bed 08 - - bed - poc - - VWMB8 - - - Bed 09 - - bed - poc - - VWMB9 - - - Bed 10 - - bed - poc - - VWMB10 - - - Discharge Lounge - DISB - - ward - poc - - - - Bed 01 - - bed - poc - - DISB1 - - - Bed 02 - - bed - poc - - DISB2 - - - Bed 03 - - bed - poc - - DISB3 - - - Clinical Decision Unit - CLDU - - ward - poc - - - - Bed 01 - - bed - poc - - CLDU1 - - - Bed 02 - - bed - poc - - CLDU2 - - - Bed 03 - - bed - poc - - CLDU3 - - - Bed 04 - - bed - poc - - CLDU4 - - - \ No newline at end of file diff --git a/nh_eobs_btuh/btuh_master_data.xml b/nh_eobs_btuh/btuh_master_data.xml deleted file mode 100644 index 2a45f362..00000000 --- a/nh_eobs_btuh/btuh_master_data.xml +++ /dev/null @@ -1,70 +0,0 @@ - - - - - - Basildon and Thurrock University Hospitals - - - Basildon and Thurrock University Hospitals - http://www.basildonandthurrock.nhs.uk/ - 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 - - - - - BTUH POS Location - BTUH - pos - hospital - - - - - Basildon and Thurrock University Hospital - - - - - Admission Location - ADML-BTUH - structural - room - - - - Discharge Location - DISL-BTUH - structural - room - - - - - - Basildon and Thurrock University Hospital - - - - - - - - - 94-98 - 94 - 98 - - - 88-92 - 88 - 92 - - - 85-92 - 85 - 92 - - - - diff --git a/nh_eobs_btuh/btuh_user_data.xml b/nh_eobs_btuh/btuh_user_data.xml deleted file mode 100644 index c1ec8bed..00000000 --- a/nh_eobs_btuh/btuh_user_data.xml +++ /dev/null @@ -1,594 +0,0 @@ - - - - - - BTUH-ADT - adt - adt - - - - - - Hudson Butler - hudson - hudson - Europe/London - - - - - - Heather Walder - heather - heather - Europe/London - - - - - - Harold Bishop - harold - harold - Europe/London - - - - - - Henry Higgins - henry - henry - Europe/London - - - - - - Hannah Mitchell - hannah - hannah - Europe/London - - - - - - Harper Ransom - harper - harper - Europe/London - - - - - - Harriet Kendall - harriet - harriet - Europe/London - - - - - - Hugo Burlatsky - hugo - hugo - Europe/London - - - - - - Natalia Gonzalez - natalia - natalia - Europe/London - - - - - - Noemi Simpson - noemi - noemi - Europe/London - - - - - - Noah Connolly - noah - noah - Europe/London - - - - - - Neil Hawking - neil - neil - Europe/London - - - - - - Norah Miller - norah - norah - Europe/London - - - - - - Nadine Bullock - nadine - nadine - Europe/London - - - - - - Nathan Lewis - nathan - nathan - Europe/London - - - - - - Nicolas Stockly - nicolas - nicolas - Europe/London - - - - - - Ned Muzio - ned - ned - Europe/London - - - - - - Natasha Goldner - natasha - natasha - Europe/London - - - - - - Nichole Smith - nichole - nichole - Europe/London - - - - - - Nasir Patel - nasir - nasir - Europe/London - - - - - - Winifred Kirrin - winifred - winifred - Europe/London - - - - - - Walter Smith - efmblter - efmblter - Europe/London - - - - - - Whitney Williams - whitney - whitney - Europe/London - - - - - - William Roberts - william - william - Europe/London - - - - - - Dave Chas - dave - dave - Europe/London - - - - - - Davina McCall - davina - davina - Europe/London - - - - - - Don Jones - don - don - Europe/London - - - - - - Dakota Fox - dakota - dakota - Europe/London - - - - - - Damien Jenkins - damien - damien - Europe/London - - - - - - Delilah Fletcher - delilah - delilah - Europe/London - - - - - - Dawson West - dawson - dawson - Europe/London - - - - - - Dana Wallace - dana - dana - Europe/London - - - - - - Diego Garcia - diego - diego - Europe/London - - - - - - Daniella Rossi - daniella - daniella - Europe/London - - - - - - Denzel Davies - denzel - denzel - Europe/London - - - - - - Diana Fowler - diana - diana - Europe/London - - - - - - Olga Chapman - olga - olga - Europe/London - - - - - - Europe/London - - - - - \ No newline at end of file diff --git a/nh_eobs_btuh/btuh_view.xml b/nh_eobs_btuh/btuh_view.xml deleted file mode 100644 index 365826f6..00000000 --- a/nh_eobs_btuh/btuh_view.xml +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - Wardboard Patients Form View (BTUH) - nh.clinical.wardboard - - - - - - - - - - - - - - - - - - - - Wardboard Discharged Patients Form View (BTUH) - nh.clinical.wardboard - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/nh_eobs_btuh/nh_eobs_btuh.py b/nh_eobs_btuh/nh_eobs_btuh.py deleted file mode 100644 index 9d990195..00000000 --- a/nh_eobs_btuh/nh_eobs_btuh.py +++ /dev/null @@ -1,270 +0,0 @@ -from openerp.osv import orm, fields, osv -import bisect -from openerp import SUPERUSER_ID -import logging - -_logger = logging.getLogger(__name__) - - -class nh_clinical_patient_observation_btuh_ews(orm.Model): - _name = 'nh.clinical.patient.observation.ews' - _inherit = 'nh.clinical.patient.observation.ews' - - _RR_RANGES = {'ranges': [8, 11, 20, 24], 'scores': '31023'} - _O2_RANGES = {'ranges': [91, 93, 95], 'scores': '3210'} - _BT_RANGES = {'ranges': [35.0, 35.999, 37.999, 38.999], 'scores': '31012'} - _BP_RANGES = {'ranges': [79, 89, 109, 219], 'scores': '32103'} - _PR_RANGES = {'ranges': [39, 89, 109, 129], 'scores': '30123'} - """ - BTUH EWS policy has 4 different scenarios: - case 0: no clinical risk - case 1: low clinical risk - case 2: medium clinical risk - case 3: high clinical risk - """ - _POLICY = {'ranges': [0, 4, 6], 'case': '0123', 'frequencies': [720, 240, 60, 30], - 'notifications': [ - [{'model': 'frequency', 'groups': ['nurse', 'hca']}], - [{'model': 'assessment', 'groups': ['nurse', 'hca']}, - {'model': 'hca', 'summary': 'Inform registered nurse', 'groups': ['hca']}, - {'model': 'nurse', 'summary': 'Informed about patient status (NEWS)', 'groups': ['hca']}], - [{'model': 'medical_team', 'summary': 'Urgently inform medical team', 'groups': ['nurse', 'hca']}, - {'model': 'frequency', 'groups': ['nurse', 'hca']}, - {'model': 'nurse', 'summary': 'Consider assessment by CCOT beep 6427', 'groups': ['nurse', 'hca']}, - {'model': 'hca', 'summary': 'Inform registered nurse', 'groups': ['hca']}, - {'model': 'nurse', 'summary': 'Informed about patient status (NEWS)', 'groups': ['hca']}], - [{'model': 'medical_team', 'summary': 'Immediately inform medical team', 'groups': ['nurse', 'hca']}, - {'model': 'frequency', 'groups': ['nurse', 'hca']}, - {'model': 'nurse', 'summary': 'Urgent assessment by CCOT beep 6427', 'groups': ['nurse', 'hca']}, - {'model': 'hca', 'summary': 'Inform registered nurse', 'groups': ['hca']}, - {'model': 'nurse', 'summary': 'Informed about patient status (NEWS)', 'groups': ['hca']}] - ], - 'risk': ['None', 'Low', 'Medium', 'High']} - - def _get_score(self, cr, uid, ids, field_names, arg, context=None): - res = {} - for ews in self.browse(cr, uid, ids, context): - activity_pool = self.pool['nh.activity'] - domain = [('data_model', '=', 'nh.clinical.patient.o2target'), ('state', '=', 'completed')] - o2target_ids = activity_pool.search(cr, uid, domain, order='date_terminated desc', context=context) - o2target = activity_pool.browse(cr, uid, o2target_ids[0], context=context) if o2target_ids else False - - score = 0 - three_in_one = False - - aux = int(self._RR_RANGES['scores'][bisect.bisect_left(self._RR_RANGES['ranges'], ews.respiration_rate)]) - three_in_one = three_in_one or aux == 3 - score += aux - - if o2target and (o2target.data_ref.level_id.min <= ews.indirect_oxymetry_spo2 <= o2target.data_ref.level_id.max): - aux = 0 - else: - aux = int(self._O2_RANGES['scores'][bisect.bisect_left(self._O2_RANGES['ranges'], ews.indirect_oxymetry_spo2)]) - three_in_one = three_in_one or aux == 3 - score += aux - - aux = int(self._BT_RANGES['scores'][bisect.bisect_left(self._BT_RANGES['ranges'], ews.body_temperature)]) - three_in_one = three_in_one or aux == 3 - score += aux - - aux = int(self._BP_RANGES['scores'][bisect.bisect_left(self._BP_RANGES['ranges'], ews.blood_pressure_systolic)]) - three_in_one = three_in_one or aux == 3 - score += aux - - aux = int(self._PR_RANGES['scores'][bisect.bisect_left(self._PR_RANGES['ranges'], ews.pulse_rate)]) - three_in_one = three_in_one or aux == 3 - score += aux - - score += 2 if ews.oxygen_administration_flag else 0 - - score += 3 if ews.avpu_text in ['V', 'P', 'U'] else 0 - three_in_one = True if ews.avpu_text in ['V', 'P', 'U'] else three_in_one - - case = int(self._POLICY['case'][bisect.bisect_left(self._POLICY['ranges'], score)]) - case = 2 if three_in_one and case < 3 else case - clinical_risk = self._POLICY['risk'][case] - - res[ews.id] = {'score': score, 'three_in_one': three_in_one, 'clinical_risk': clinical_risk} - _logger.debug("Observation EWS activity_id=%s ews_id=%s score: %s" % (ews.activity_id.id, ews.id, res[ews.id])) - return res - - _columns = { - 'score': fields.function(_get_score, type='integer', multi='score', string='Score', store={ - 'nh.clinical.patient.observation.ews': (lambda self, cr, uid, ids, ctx: ids, [], 10) # all fields of self - }), - 'three_in_one': fields.function(_get_score, type='boolean', multi='score', string='3 in 1 flag', store={ - 'nh.clinical.patient.observation.ews': (lambda self, cr, uid, ids, ctx: ids, [], 10) # all fields of self - }), - 'clinical_risk': fields.function(_get_score, type='char', multi='score', string='Clinical Risk', store={ - 'nh.clinical.patient.observation.ews': (lambda self, cr, uid, ids, ctx: ids, [], 10) - }), - } - - def complete(self, cr, uid, activity_id, context=None): - """ - Implementation of the BTUH EWS policy - """ - activity_pool = self.pool['nh.activity'] - hca_pool = self.pool['nh.clinical.notification.hca'] - nurse_pool = self.pool['nh.clinical.notification.nurse'] - groups_pool = self.pool['res.groups'] - api_pool = self.pool['nh.clinical.api'] - activity = activity_pool.browse(cr, uid, activity_id, context=context) - case = int(self._POLICY['case'][bisect.bisect_left(self._POLICY['ranges'], activity.data_ref.score)]) - case = 2 if activity.data_ref.three_in_one and case < 3 else case - hcagroup_ids = groups_pool.search(cr, uid, [('users', 'in', [uid]), ('name', '=', 'NH Clinical HCA Group')]) - nursegroup_ids = groups_pool.search(cr, uid, [('users', 'in', [uid]), ('name', '=', 'NH Clinical Nurse Group')]) - group = nursegroup_ids and 'nurse' or hcagroup_ids and 'hca' or False - spell_activity_id = activity.parent_id.id - notifications = list(self._POLICY['notifications'][case]) - - # CHECK O2TARGET - domain = [('data_model', '=', 'nh.clinical.patient.o2target'), ('state', '=', 'completed')] - o2target_ids = activity_pool.search(cr, uid, domain, order='date_terminated desc', context=context) - o2target = activity_pool.browse(cr, uid, o2target_ids[0], context=context) if o2target_ids else False - if o2target: - o2 = activity.data_ref.indirect_oxymetry_spo2 - if o2target.data_ref.level_id.min > o2 or o2 > o2target.data_ref.level_id.max: - domain = [('parent_id', '=', spell_activity_id), - ('summary', '=', 'Review Oxygen Regime'), - ('state', 'not in', ['completed', 'cancelled'])] - oxygen_activity_ids = activity_pool.search(cr, SUPERUSER_ID, domain, context=context) - [activity_pool.cancel(cr, SUPERUSER_ID, id) for id in oxygen_activity_ids] - notifications.append({'model': 'nurse', 'summary': 'Review Oxygen Regime', 'groups': ['nurse', 'hca']}) - - api_pool.trigger_notifications(cr, uid, { - 'notifications': notifications, - 'parent_id': spell_activity_id, - 'creator_id': activity_id, - 'patient_id': activity.data_ref.patient_id.id, - 'model': self._name, - 'group': group - }, context=context) - - res = self.pool['nh.clinical.patient.observation'].complete(cr, SUPERUSER_ID, activity_id, context=context) - - # create next EWS - next_activity_id = self.create_activity(cr, SUPERUSER_ID, - {'creator_id': activity_id, 'parent_id': spell_activity_id}, - {'patient_id': activity.data_ref.patient_id.id}) - api_pool.change_activity_frequency(cr, SUPERUSER_ID, - activity.data_ref.patient_id.id, - self._name, - self._POLICY['frequencies'][case], context=context) - return res - - -class nh_clinical_api_btuh(orm.AbstractModel): - _name = 'nh.clinical.api' - _inherit = 'nh.clinical.api' - - def update_bed(self, cr, uid, spell_activity_id, vals, context=None): - if not vals: - vals = {} - activity_pool = self.pool['nh.activity'] - location_pool = self.pool['nh.clinical.location'] - bed_ids = location_pool.search(cr, uid, [ - ('parent_id', '=', vals['ward_id']), - ('name', '=', vals['bed']) - ], context=context) - if len(bed_ids) > 1: - _logger.warn("There is more than one bed %s in the same Ward" % vals['bed']) - if not bed_ids: - bed_ids = [location_pool.create(cr, uid, { - 'name': vals['bed'], - 'parent_id': vals['ward_id'], - 'type': 'poc', - 'usage': 'bed' - })] - bed = location_pool.browse(cr, uid, bed_ids[0], context=context) - if not bed.is_available: - raise osv.except_osv("Error!", "The bed is already being used:%s" % vals['bed']) - domain = [ - ('data_model', '=', 'nh.clinical.patient.placement'), - ('state', 'not in', ['completed', 'cancelled']), - ('parent_id', '=', spell_activity_id)] - placement_ids = activity_pool.search(cr, uid, domain, context=context) - if placement_ids: - activity_pool.submit(cr, uid, placement_ids[0], {'location_id': bed_ids[0]}, context=context) - activity_pool.complete(cr, uid, placement_ids[0], context=context) - else: - self.create_complete(cr, SUPERUSER_ID, 'nh.clinical.patient.move', { - 'parent_id': spell_activity_id, - 'creator_id': vals.get('activity_id') - }, { - 'patient_id': vals.get('patient_id'), - 'location_id': bed_ids[0] - }, context=context) - activity_pool.submit(cr, SUPERUSER_ID, spell_activity_id, {'location_id': bed_ids[0]}) - - -class nh_clinical_adt_patient_admit_btuh(orm.Model): - _name = 'nh.clinical.adt.patient.admit' - _inherit = 'nh.clinical.adt.patient.admit' - - _columns = { - 'bed': fields.char('Bed', size=50) - } - - def complete(self, cr, uid, activity_id, context=None): - res = {} - res[self._name] = super(nh_clinical_adt_patient_admit_btuh, self).complete(cr, uid, activity_id, context=context) - api_pool = self.pool['nh.clinical.api'] - admit_activity = api_pool.get_activity(cr, uid, activity_id) - spell_activity_id = api_pool.get_patient_spell_activity_id(cr, SUPERUSER_ID, admit_activity.data_ref.patient_id.id, context=context) - if admit_activity.data_ref.bed: - api_pool.update_bed(cr, uid, spell_activity_id, { - 'ward_id': admit_activity.suggested_location_id.id, - 'bed': admit_activity.bed, - 'activity_id': admit_activity.id, - 'patient_id': admit_activity.data_ref.patient_id.id, - }, context=context) - return res - - -class nh_clinical_adt_spell_update_btuh(orm.Model): - _name = 'nh.clinical.adt.spell.update' - _inherit = 'nh.clinical.adt.spell.update' - - _columns = { - 'bed': fields.char('Bed', size=50) - } - - def complete(self, cr, uid, activity_id, context=None): - res = {} - res[self._name] = super(nh_clinical_adt_spell_update_btuh, self).complete(cr, uid, activity_id, context=context) - api_pool = self.pool['nh.clinical.api'] - update_activity = api_pool.get_activity(cr, uid, activity_id) - spell_activity_id = api_pool.get_patient_spell_activity_id(cr, SUPERUSER_ID, update_activity.data_ref.patient_id.id, context=context) - if update_activity.data_ref.bed: - api_pool.update_bed(cr, uid, spell_activity_id, { - 'ward_id': update_activity.suggested_location_id.id, - 'bed': update_activity.bed, - 'activity_id': update_activity.id, - 'patient_id': update_activity.data_ref.patient_id.id, - }, context=context) - return res - - -class nh_clinical_adt_patient_transfer_btuh(orm.Model): - _name = 'nh.clinical.adt.patient.transfer' - _inherit = 'nh.clinical.adt.patient.transfer' - - _columns = { - 'bed': fields.char('Bed', size=50) - } - - def complete(self, cr, uid, activity_id, context=None): - res = {} - res[self._name] = super(nh_clinical_adt_patient_transfer_btuh, self).complete(cr, uid, activity_id, context=context) - api_pool = self.pool['nh.clinical.api'] - transfer_activity = api_pool.get_activity(cr, uid, activity_id) - spell_activity_id = api_pool.get_patient_spell_activity_id(cr, SUPERUSER_ID, transfer_activity.data_ref.patient_id.id, context=context) - if transfer_activity.data_ref.bed: - api_pool.update_bed(cr, uid, spell_activity_id, { - 'ward_id': transfer_activity.suggested_location_id.id, - 'bed': transfer_activity.bed, - 'activity_id': transfer_activity.id, - 'patient_id': transfer_activity.data_ref.patient_id.id, - }, context=context) - return res \ No newline at end of file diff --git a/nh_eobs_btuh/nh_eobs_btuh.pyc b/nh_eobs_btuh/nh_eobs_btuh.pyc deleted file mode 100644 index 6069bee83771cefa184d34a93123c1d34d33e873..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11556 zcmeHN-E$P#b-#B;U+4pU01_kd(clHN%OXImg|lWifM6FKEJzEowQ_CRt?8E3Vy1hx zZ;wEZ6yvbZF57XEN~Ka2SNX}Q%Kwo!=c6jA%0nuTc}P{N@{}j%_dB<{H4<9v07?15 zh&j{u>)dnCz2}_YJw4U`8tVV~U;WLeb(R0C;`=&2<{v=<{MV|XR8y-Zt(q0JR8h^U zTB<6|wu)+WsiiLIS5=K})$CDAJ!M<3TIy9{uUhX@;Q{p=Jo;78r9!RN2h@sILAUxs zspm?4x-_VQ9%&eohTgK_pb9X$9C4s*7*;`lN5eqbFrtFNj)tMKVUz+dP9Ma=qF>bWAS4uIHZEZW&07^-Yf0n zMf*hAe$=-2si<28H5E*%V5*$_m3ct!@(=q zWWg5f$Z~NXw)^X(LzYYX40=^rcz7;DWwR={qJsBS@KxEHIh+NYpKqw(s`>)9I6$Gp zLA5@lLL8;9so=L%@V*MZu7YbS_&^08stDWg+q9om82fd#0*REGd#=0CX>Qlh8y!P$ z7DMOv9eQie(AynDKPrZPyzkIESOShXmT*^=Fs$6g>EEGMeFY?5n<;E^Cb!9%4x5~T zIYxcx7Y&dcCOHZsmY@3ZYG|@#N6?g0KJUFUp6TdChm{uNMq2&qnvrIr@~ON%AiswiT?dMCVxdy|V7o<=HC{N-E-P z5q*=)%X)dJ`zDNjUP0S`vcol!6YRyct)$`S?J%xKSkZxw@}^AKOoFf>PjNdnp?JHs zx-TnUO_O%ZWc?WA8xtDSgkv)kDBg`%;3b_jT#ZZ?reWaN(YeS=xzrgoc88%fupOH?E$ql zpwcg-Tge;N-LGm09@0t2RYtvSM2vp5JtWTudAvAhw?bH{VO8tBMR`!ww)z;upI1~3 zL412yZ5>ptzgJrb!9(gX#5$<9hFH7`c3XogJ*h$0A!$D&Jx33!uIgj0lF^P9jMXZx zsEWn_$}+6t3xyys^Id|VoC`9zN04vn{RPQa1R-}ZLOEwNvWL-6U(N^-bQdF(b4Fu( z82!h~86gPoVuW(e=M^yT#f|!pDh5AJKwgJI>Qa$cbX;#4wbu?oT z+NPxK2bFAsZP-j~V6H8kw6V_pN13t>m4c11fBMgrEuaf*pyIO?0X5rb#Ua9=Ll`uI z!#m0#gW-T3a~K#L!50)ajxQWAh*MM7vPrc*rGg15A7hnmD0|cpc*b$^^yeqlC#YSV zJ_ci2F!XhB`hGo&Hll1(+*aUczGqz=(c1^&TK0_$vzZT%lZhv!dkV!@){|zd5oTc^ z^+^hUV;CyHH}v56no*3WzzITA&uHKEB+kO8nRsiL6)uAaRt*CGtTKx6dqN)wedN-u zxLksrn^8twVz!osp%=v-9Sl1a;mo5qF|(+-zk@LyxKgKByB7r?oG}hUT>d1n>wV{p z5tM7_(RWniGF1Fh&DfD#ji|>CqAM$PBt2YuQC6RW7H=6T}=wwN{ce zq|StXT3-`geB?Lsh!n+{?5F3to_k~A{hfv*$QVYNF z6=sa}vgQrc+E9Tf z3z$R^QXwpQegJt9dGqzHH2hULuKq@=jme*8qSA+HJCsA|J-C1G?);}24ga^y_#75o)3v-Jsb&o!&hxDL6rO#J-bWi1i z9@G7mtNK9xWXqkjRynDsD(~nMdbDy{&uCF!w%M|~fJKId%A4&*7RjpYna|QFUX{&Q z6#KVk22W7u6F>AD^Y|DV3-H0BTt^q|>e<2lh~#6EJ0y2OMD_LT>FesK54^55{N{4t ze@N(S@KF)ZryQnb*ly^@;(@OKusN3<9?92}-CY9v*A(0(SpPOYBCtI`)L(tgPYqq_ ze120DPm010Y~g0AY7g03O@!DGF5-EM|k(>q5bT zNEEtJ0QT!9qAbxSQVUyMfQ%ZL61GnEKoPx&{ar+XdASc^92idEU;+OC=xkM=N`FSU z31CSa@H2uC;)wx87>d}ANd>0@?f^vq<>Fe;JLEZH+2;a5U)F89=mtJfwKb;F zAL?BSL+)e}5V}wrmdU9PsjWjQjVif90HhAHhWZ*->i|QC)#EN@{z2nmr+$=`7zG># z+p+v-4=EVhw*G&bJH5``F^Eo3`_=7l>>>G|%=-*7&bi$0-AXUhT;0=CT^MVm`V z;IfxX1oy&1%PdPC#$8^%U5Dfp`+pg57O*V%rRAqgokoF6DP@2gZbab|=e__R$3?;c zID;7wXbqvpqI5s5hmA%UxI|#?ArQe*^)&ReBqhcZEQS5F>?P7#-BQNR%_tYK1FcI%twBy%K)Ul#t?W#0q=`K?wM2N|~=ScuTn>og1F z25jNc7NjZYu()_+G!NP9&@1p|#*m3Hk33#k=M|Z-&1tso1x&YDN8su%fXEE6R!@K` z_eLz!772Up@v&vbX4qs$A-{x*feN+-D;Xi!mIq4Ml~rzts*F}s zbND*};5<;>#p0Y4UES$!UZ8g_Sy8 z>mWYV$viuq0%Kr9bcUba?o#nC^ohuALpsqX04HAW6|mC2yTVXHPJ$Y|zCv0NW#CHU z8At?F+AXlNPhcmqib!(;KmrkcpSPEF^hTD`j*+Afr|$!ZlBs}91yUj}p7+5dbNQ5* zU*3uh;tP4vA;20;3jEh6Yk;H>UWS7qpjT~28sI?yie6=oY8(zASG-3H0N@HaD(a7r ztAxA8doOv3hD;U!o5gAQx~m0dgZw~%g;s!HcIL79*}vB8fNoY8z+(tQsFRB|fdyDa zbpf-WD~5G;E&1sNVb1zItkW|P< zEREM}yW|4;;;Y}qX##>5Qg9N$JA-Q@v6*ulDdY_WBhwQ<4H)#ljc2*CE+dqmMgf!I z1k$h{!p1`JY0u%dvS4q)Os7~w8+ zenyL8<@C;UMf>q;CL5tEQHVw@5%0^9!7mkPno-e4^7D8Sl{CWGrBO?KhSp<=y*6}8 zyq8cF8PDJFqlUlS2whme1ykYEde}l<%xu_{MSHmkr%P|y8GnnIY=b<#3{or8bSQhn zZJQ(MBR7!c>xjF&mY3R+;L9U|jh4Xn49_lOp=6Uv?XzviX}^-cmH^XkNoE(b{RDHE zTOdpX9gz4os7LfTp2rZOdi1a!z+bOEgrv^_eY{dd{TTdsk3O%R${1Qk5b;LzK|C!? z)2+IjB;O%n^m6}zMB>s9@U$cTYs8#C1f##iM-HNmIT;OUSL6t?@<$3xBxbwgNH@CQ zBn!sQ7vl&_GL)PEqKW;1!gH%HVv8V^vxY}!MC*nN}Cm!xgo5`Js9%ad+{c%)`EOaVzJ~iKJl0eL^o|9biDWtkVdv1 z9R@hfo!V>VA}ddzpi%d8aySTL4_+aZOJ}fS0Iy`fvhcqHAHzgBt@b>u_6YFkAnbBT zkme!K1uN%%w#aDXenzrQBBn`o?nw3;rpe9uTYThhZ%wnRYt`%&>h_wa-IKx@b)r04 z#2d8EV>0>94<%@wGWm?1-2D+cxPJ`t8>{?ZS*819D(=rob{nMoC#?HZl9$?<`)BC# zE1MK!eSTctxJ~^#c>kK(6!rUW6p#1w4x2iI;$E97{2gAJ#byQhgo1_<{}H<zS=4#-^6- z*Kze$@0*_Ie(w7_KI`{JX{agQz@^4T5afo^L%Bx?g31iPzlV(pKie<1%)&1?&JXq6 z5Co6(`X3Y|BZ~_DBbK|8syx;V$}N0K<13cild}{9W%-Ij-S9>vYoSwBoZXG47|H&2Mcr(3e$*f8z)8KRzFAl#V1B(QRQ)DUozWDnn#Z7>9ll@DY)jmLX*!X(TF1XV!=! zz8wCyu3uQ4$O6JTfvKj9XtxNRV%h}%&yV9-EYw9&-VoJ?`~*k~KLH8K99Qr=^oQtt zO59k%A_?D+8C+UiB1O}07W0D^k`Xedb5ze|QC(=LMD&Uh=$}8QZ~et~hXW6v=5Yws z^F@1H93}!e5)sztE$#0~^kj(a7gOwU6Ixtc4e%wfN%)AogY_IX4G<3N%upi~TaAa* zZ&3dCk4v6l^e|uc9}>EF&#i^#2eGr{5HxRI3vFE&zFJi60o)|-V5EaN*qW#%-|wBc z05t(k_iMtAw{6S|kD6!|iX-3Ad!gH;B*@T@Q@8(1Ah3K=X4aTUyx5vdPVzXU3l)dv ztAbCf;`d2>X8MOTp<2uqsTnSJYf0ur5k@kaH$>=izQzA+J`rfnu=95O5cqvt)N+*V z(??7!%utK(-zE47tX{pzn?TJ^5oBZjzYp}vx`q9zDXBCk?avQ0jEeldd^-`vY$X&9 zpKnGA^`a41DPwpx{vc}zDb-qaeU5UWUC7Ay15H{w8X{8zzGoA2XOxWTn=0@5g(Zqr1(mYs;m z@zjn&@f;)_lfn3Zw_p+%hoS57b8Mbv$><{QH%9NUyyIF#I1mmhq(h_%$L(1-@9bUS zlvaEBFKSU4E!tQjnFir`?3t5_AvE^5NK%-#?3O9_TAF-YxFK4`i$7&nx{s^yhkvnA z5TY3j_cAEgWZa-g`o9%><%x!U!SdTk$uWv(dGm#cN$pw9sPq7y_(;!FW*o$c|1YG~Jc>m<-#-q8N-c;q~Xoe+sc{SfQx4;Mp)R{Ze8;GfCW zj(kih$MQqd_anvzF~jDQaPvr+va-Jq%A{J*I>w;NftD3|#ylaps}PxgZt zdAr8EP@J>6Xl8$>ypkztBU@h94rs1Pg zhi~0f=tYTodw%hwp`ZgxeEsAXLzzx<#fv^7K83imSzQsM?4v(PBe7%3gSck??YzF_ zjgc4MD?oMxMhMEnjpaY8g|T$h#C8z*jxx-$PNH5t@-@+6E-!utma zF)>4bI{%$*6Mw-uH6^K<{4#V@m78^52*W*ceSNnNd-Oc!UL&PdwK9+d>`%*jfe{>f)xO)fIu zo@sn`yfd%E$jCTMcl>Q1@!M{Bj`n9Lzq8qF=Ap83+sWRlon*boIz@C`-21ENl2^53 z63onD%PT9teg<5gtd1Ye2ARy#y1lCp8mC&SHkI_PsdDx`W-Z64O{-> z2qs4c_0p$lP3sSPkPf1)f?+>9bmA7te&!ry6qi8itft2VI1=^L%9xf*)aVW^E52~<>y^k%L(q$nX7M5_g#N8al(XY~uV&5qn)$nh{z zsUv4?s9dEu%;7=*iF!F~6Z5dQxa~07tJUt6sc8c9*@3ByY0Uh;PCDz@Tfzjtn*zkS zjlK#{1!Ewcd;WoeftTAM^bcodW=0W>M~_hH=yLrG-qSuh?z#2itJn5`QN1Tuk!A1e zkGI7=v#euoqM@Ri2|3M3FiT2GX04tOA{Nt5?L>*};^JrNi=FYphlhtV_;a<*b@N*X z^-`?f%|ct>dAq}juB_ARHx=qfzl!kl^J|mI4?M+>+dM|RQG>_d25DX{E;ncV&R0ri zoo39_gD;2O-Q8C)d_jmj_o)>jUuko@^ZH}gKPY4SPyhZNx~DWgKHm7TxVV|;?%n63 zwih%llZ3pK1~ZHuWkFY$g?i2#?wAjSC7}Nw$(Zkbz9*@RuRJnEXTF% zT%(&x%F4d7Z#8t|=%kJ5vD;>X%x>#S3S5<0ZjDaz^GY>Z>Z_)Z~lrNSx z9_o+JN>r5v5y$>&aC37rfA;Jdy39zPd~~6_Ca03Bs$@S^{aylAp5Gx0cF4-sbp7H$ zuJr7;{{Bsx;O-j}5qP?n_sURt4W^k}@QKDrvWW?+GlO;MsyXKMZ^$t0%~5-QO_v^6 z)o$U`L+M~rDGbxs8~dAR^6Yuh@Jno-f>FhMUU3d);g=sZ>;=$bo-#mMKW?Ri(fvj^k)*z`7~8&6>BRF@L63@W~bR=OLKAEkbAcQT^L*s zH3Sc-4t35F5f#h+EWpL(;4CXE`xr41zst;>p1`a$oWh}VY*6bcnVg(lxxgTN6sj+B z`MJzv*|we%?W$foTz|Q^xR}uRt9y}4KwoEP=bae78ZsGCVq$ZZd(^SUn4!-}(OcKH zwv2oB8bTtwOnI?~hK7VA|D4vjt?Iu{Nx8e7Z#d78w%Pbf-1>a#KkSQ2Z7R=PAspn< zwV3Y+!=F|e`I!+ zPUo|sDB+vYSu%gZkG#^6mN9j2j`Ww+vPAyz6VJm?w?qPON(V|%a2x7I4`c{C4M4le z5sKtuy(Kh3IOH|M=&?-@5u?G=s@Keav5H51ACzcIW4zgL+KI!uJ=v~%tYKuND)+7V zY^(kPCS}w8{Gl`s4vt)O=R)Yijka*S>eHD9AAU?iS`|XOIxRM`g@g668z(0xjfl69 z4eb$w%t{x!hzxU>H~WvS($7zs^S_xAxa+v+TRJ5FN|2lV=;b;4Geo3A<`0eL(TnI- z#(Do76b;{IyF?Y1dR1fBjZ zbb(7G&&kQD^4y&0fF3X9>(J*QdpV!45bKN6(uBn;DE*dK)`>o3X4s! zZBlv%wL<9AHota+vJodSL&rMPblwz=TcmrfO?ybTi`=Qik{ti(b?>C`6)~d0o|5XF zLn*JhWK=y_@LwwD_C{!cTWDmANde(2z z4DMN4Rq7GS;I%l@$!^(lBQo;x@(pT*(YUy{AAkOJm+y?beRjy;(oUQ3tBCgduIzDe zucWHnn7O$*IeZDDn9jF_e{r4{!D)`YFUfAucaX&QWduTq>D`uCFbpa?{u=i`c{T zOXGdo{ZXqJ6aSWwy^FuUe~O`8`(DF+)_t*qqwQG}>tyAmZ~r7pFwHn66*%_(jz4ol1srw|MP#HMvm^`_gymATyaqC z19!L#YF;^wS1gagZ|tWlEPHDN?S5_Wu(62{BCV~hFL;`c7j|GXcsarcI-63*VwV!oE*BH3z7_n0}{}tnWZT zEAi#mHmouPNlH#$|L)@L?Hxez(l@+=e^8=5>l5L3M@L5tq|9?uKh@mR%gcHofVbn` zdcFgemB~{9>b={&s<~2)zr+U9_}Z7#ZcpAIBrM$;E1mr?l&=`SHCelz#%JEa>9S?F zHC0#LA@Z~>Ow27RCdL9uE52}^Z^KBH!$n|Lm+*IIi+knK&dVb^YsICgh}6~j-WYAb z{?L$lN6bl|@tY4H9ztQaxxvCSVN2L${fA|2Y-4h=$61 z#bvSMqQUoI&H9dNhJYnN!1Tiqm^TvuQ)0y2R{H)#Mn>wRV8b7_@-&~jN^{&qWQs?X z0W8%VYrLaBsvd&^^Z#WyDewK-k^y|4n zs!BZ?ea!W>pC$JUTL8I2g(hERtK?dNv%U^qjzwJE^Qws9gh`- zui;8^i;AA$O?7g%-CTP$A3-;9c{u6h5cQ#5 zQjNB2V8HRHolv@Jrryix7UN5_V0eJMbzCNlw*Sc`7HgM~AT6f6?(uPPP3(mAC5_ok zigD+bukTTP^}o6}${zb{G&yQpUBkpE0Z-7xjYfyh=Es}2hputL^pR}GJt-VU+Mf-_ z9j`7g;0+~-@1o3=chZJFkam%UVw*(=e~BvR~H)Vr!hl~Q)p^!_7aHgY}19h+M-3p!kAj|=t_^>BFoWj z-`%C|osf_aUPfGu;9n&MWBVS;rNN=m52^0R<=e`0+0k7P@VJcrezwfKlRZw~Nf zh9KZKHCgs4+bNkhD zrKSU?zj|x}u9|G3)hCN&ON^vOX-Vg|Zh+BOublMrb5)hVFQx8^F`PSj-x?YkuHhMV z;o(A!(`-(ed1oA}+|S?XE8A0b`6VAd*!(Bgy6Z;BsQkOyPNx@uI+oa0XR%Ic#}!mk zY;SLGCQ)LC%k0w95;Kvex2C411oE!1u%1}cELSRE217$6;B>!6j!Z$WoRY^F{|pc@ z8Yjhn=8VH%i2UtaLojHFF|P4h_rJwX(K{10rJ9kS9$JxTngyI$^`-GWWlvd?tF-E; z$dL;8s=#hPQPoYXE?ZPo#Blv;HH)aoM73R~g|8cDF@0Xy_0<`0zSdyebzfj;+Rb2F znneL_SX+DBw(!}V<%BzV2;(kh@MNu%ACabtkB`rXM@3UaR8+^6hQh&-W=>OI=C?G) zOp@Ns?eFi;!4nvzzFO)|-n4x6_`S+amXY13$noF8T$(eT-iB5wh0UO(duCX&=h(;( z>*azlA(LDd6;V0wZQl85X`A5zd{>MM9pm?DgX+W8j1RKCK*)(|^h$d|M_XX~-}Kj_ z6RohjSVb4Yl>2#d82da(sNTCfzl>NL0@8M7h;1v6QL_h&?~!VL5B)hCRQZn6bL%dL z-!}IAG*ehngoB9pc3G^mye7K23QDkEiFOKU`_qflgFWO8I~P|!nllYApuy|0)yEsnPICuq|ET`t8bn#~PJ4y`V9gffvGqABmdi)&@ zk9EK2N_% zN=j-4JcC*ANJ&ac%Kz+ebCqNWwk#th)hX8&&tio+AB)p#@}!UtZJQRFBMA1blAyoQxx*Y&8zjB zQ4v`pTx9NKHMbM^zPj8y$LX&J>t0(^&z_d+zR_U&^5e%3!<A#o^}F0$ z5ii&gXp2~i@=}vXYbJ+!RCV>i z9{57FZp}zeUOXE9k0*c)yDgrDg{5B1YwO$+rdQRt{c8d08>`F9)%-j>PDT19O>hCy z^WArH!wGkM*f!Q7w6BAQW+H|@W1^0{Jz30_kx~@$|0Rb}G>WM&lpOU;h zvp)cJn&|kgRK8x&4>$UG@v*X6#SYoH-(ej7>wXIR4L@DTAtR3OH6{Ys_9f7~!|7Tl z69M8zVf)`@o!49}5LiXcAdK`lBVD*mRls3?Y=koVZL9T*hiqnk+6dG$1Yx=#tc~K# z23=i*`2fMiaQ1-SF!DXxY6SSwg(`CfrQ2szZWbOI?{%SH(_8M#l^-NO##`>H8VGN68REpR5#isMWC~dAxjh$$*e>&JvGIQboKSg zJ$VAN-1+AR&0h%#34#jwnrOj4Z3V+$yr8{S6LezA^MDSUEp;V+f$qb@#wHT;SlidN zvRYBx4b&+fU5f?sjE6kw_OoClKG-`tq6=L6S+oIYXW6%L#w3YZsYDwO7N0t4VhZ2u z?A+Y=H*e_W6cw@1e*f9p3Va?p18kh{#x0?ZzkoI+t;%&nqNAgUiHOQxulfvv{!j`< zJV>ddt*y|w+rvRdOw2cE${VIzq8-JD>EyJ%1`R6J?EP<{K8`OuiFwquNcvM9C#tdY0@O2MPd6KVGIok znfOvy=QAnj$2yt4*(V|`of{cRchBPCERn z`H5YSjh=@;vP9k9a~jla6v0TX=hCnGGV}HUmKvFSZ`^HhF)K^Uer^s9QpEpkA)04G z^<_Ei#qDbMzr$NA*(*GQc|=`zBoS}es%Y8;8fYucDA6Pt39~HZ%_(%`T3K3dwP8HytZdh z09y?@`(`F|m>*+Ux%)m8bQ!XMUDtdEM+vRLju42M+Xde8pp>FEG< ze}9QW4K~wqU6GvCV*P4cat!)0si6EJ8{|!`0ekbwN~WINJ2Ah*jhFBY?Lx5#-;;A_ z&lRK^yK0~B(zdue{9Hfq;AF$V!0-t=|EFjnCl~e^@Y;V|6ur~18;g|-l8hR>hYYo} z1j_-v#Hz54(5EO{rW~b_$iOlyd0ae7+n*s=pAG{g_w{Qb;Al91<@PbmKTSQy^0up< zXu=Gg|J9v*rxt3aCM%K=MzjQ%pr9b9l+@*ZZqTKVLh6*As@_;B1O1d`e*rT1f#Y zar~sjFfmceIGA!^VMYT&qK*g;zpbRALM9sbz}T2JH8JsDpsubi9;0tMpEfpvf`W3t z)VPsW9C#s>iOKAAcXu~?qcP7PcQJFQjxiwj#Y>XIC^EOg?-T!ntu;9M*Zl-at@e{P zN4@Lv%PPO4tymZdYIpLU#gwn_PE{ile!jk^C~0ncE2@>XwO-}Q1!9S;!o>ZI}&+6~V2Gh&f(BK~LXNG?)>+aL0i9r0k) z*nX0hXlxUv_i7_Gfq^fCS;>ZU>A8%$B1;f)cB+ zXZ`SDSF0ke&r)$X9%a)4+m9N@X=+~Ufh>gxLb|vQpFhV{>6d5%>3I&-kckm&?6+AR zFMaxlN%k;Ws(;TP6KMx%Cn>KP(+$*de=%OVBS*}Gy=~|eC;0Sm)342xml;h4_MNh! zq2Y_lUaRjf$<;v;c~@UocOm4u)a406BcGO*7N24qjZ&Iaz$q^B?oko$<42Ejs>k%| zTrHmfSS5rDAiu-H659Zh*@sqB8#y`I(nG$l|0fFoMVGm@xyi+z((@7~hiXMNOH4c+;STaCK{+^6m=Z-JR9BY^8->{6)1mrTz3K&LBsM;>7OIlRahYzuZ z@p&d^Av|{0(b+kOXj}u`YbAO-GIA>Fp)ijY56KXCmLv`=Z(i^Kt_#gKP%>sSR()Q^#$I^0zqn!R zW1J(mln%4SW3l4~&v?Z@G6dwiv;MgJmX?<9)Uj5IgJ3Wa5xYGSp(!=Iw*BrNxs4Mg z>HrvS^7I_ff}(g-IC6pW<_kQDV$c?-nc_8%0Dztpjjq*-##O?Oo*KGw3q80>-+_Wy zFmW2Q+_u^`NJgdw!WlG-92SCGDAoD_1t4b7ktE_GK;+5VU9vm?_~)jkq?}CLGOl&Z zj?c}Vr3|6p5cfN@kD;-C|M$n+c0Ys}@bN4O3CRnhL`FfuQN=h#A9*75wcq87iWMAf z*^v@pjc(WapX_FEtif*GAP5HQWb7sad-8mEc(?%w#38OZ=UGYZ%u80r1Atf!uepsr zvNF!TSIu-pGrgY2og|49Ll|#IZKKI>zb_C>s3Yld-IDMg`qN#ypKg}y%i3vc zuk-@ha|6FVFFX6G;P4@y6m5>?9NPW|GZ+b7|j*(N0^AKP?1GQZ7yGAO3jS;4OK z$~KjfC6DXb_poj(?8k(p*Id2vflzI4eGm~V9YZZ)+@l4Z!e@O>!hfuk1c`~2xKEAU z8RM(y=@%}mGh(yZ!H(I0=t2<-bPaCFNhsbZQ!Rj8Ex?!W`)8vMGL4#O=BE^VvpmX_M~& zE!*8O(Y#UH{#(M1=l(-^^5FntCxc)=hXD}e(JCHwasU<11(^TAV|7W(hOu*bO)?Z4 zGc&W9p59)(sQCEYa#-Thn~Mo0{vM85M2UZ8U&|yh5BYFCVNYRJN*ac>6$GC{Do51K zs-rJG$ftG2f3F`65GCn#>#w)o?Z$f1AmlJ%C?0g_4_9^i5fyP4yB*ne2Uzd>QQL#P zot=ltPU>Ox_4TDYJ3DE6{lc^UTYxakRee^{t(C3%GY&fawi|^t2Lez;b&b(mK%}S! z-92;ZfE^_m@DY(F**tvzjW@6OtY)`U?lrd9R*QYbQ6i|~?&`tXFE+&qSZhsV0Y zpaUBzZPI3dj48Q+ zhc`0*&uLW)d^vV-Doa0n&_FAjXuMWM`+9qen;#Wr9kt={^yNtSxF(thAHKM8OX?<{ zS=jvAXfcmTqpydhzyEp3!h#tOjN(P0sZ_x^eA>MsROIC0eSLiyP5F6wp4W7A1a^Mr zqDA?*bl~|hA^gjkVDRU-#gxv$7x*_BQP{F!7f}xG;mQ(GA<As%kOlXZrbAv(R7vIk7w@KmCq~b0fOE?|%wq5%=&3>f~N9pWdHaAO1YUIq&UB zel9?>aK644h>15pn8iL-XMn**E>y^J$4(VBo?cx(o1aN^i6%lDBS*B@ zLPqkj1V7ac|BL@v;LP!4AR!tu7qLZ zxe3i@jYLRDNE|*)ddJSqy#@Ayg>^9U#v(>fF@`D;uuBv+;A7Jm1|gwC0Nstx1gQT4 zWkpA#qM}H-DE?aorQaxB;MpS-4L83q6d5o=UJ;UXoq9c89muXu$_qFgw>FfK2}TVD z_~sy3E2_epJdLLF-;b$52aD3h`T6qu1alq@Z%@|? zH-QsJ7)%GAmzj9rC+*^-#V=XEfBz=T77tvE6&9+iuQvgnHr59piI6okP`fWp#~7b8u)LEF3$A#_iO0ue-#uF z@&1*-@IdPJJ&UeFG)(+sP8OEsN>J(tq2T;AiNcEW*nSx%9)l1&%|(F+z`|L(a3tk7 zp|PiKg@w`yQ@n(0hgtdYCzIwGGz7%r0Dc&PmH;AjK$lQoqMxS5`w4|^J7frtaS-&- z!hyHE5)$VhKW%u>=XrOE4JfCM+pla0*zi)>8n3yFDf$b6x1b{j{O=GrC`JoQ2bG*A z6qEJY@1yEsL27Z&jej5jO@q|xEyT#U;KBHkk^|NVbEi-_e~4_&{cCRwAG|RmS}+1I($Lrl@CF|tV@+0CRetj#ENm`(k8)eg9qDxOeDUk2?6VI~;|`Aoh+7VD zFgvIKnHQ$2A9y%(>5$Xh+=dc6yA|7!I%?}ty;l#;_j5k0O=x0ja}^T}4H=}&X;vyK z61uN2Aw_R0UUmk==pwMv2l%M)clP%7syey3Oq#MR6t+Kw@%nH!-kGeE2kSA|g{xF0R-bX_FfJ^rlarV$_wD*-gM> zLqQ<0riSzkWQkTf&b2%*1TK3?BjLSM^c)S!R!K>;+O##Kzk+ed*zUb*#y-A-I;L@va})TpJ8K80 z9iVCFsK_ZZ;=+zuqotvdFdzz>T{7MDTfv_9$w4sn{Cqs3 zUt?bfc^tEt`)|KM-t>%^Sdfu%7BG%zX(mEB%XCY?MnlRRAFfC7CL|!BRh9cEx76e~EwqMGI!huU_ zK7udz-!~_v?zAM@H@@%ToIbkct{p|DgNy%^$XnphD?41OxGw}X6unD9sUqMTCOvU~ z=oG`3uE-9Arg!LphVw&$f2cQ^TNo!8ZCFI3agzV`S;!kEe4UBM(AHxiLN_oI5odCv ze-sx7Yx{9p!nUWYt80C{vhXd4x32IcX^?Ln9a5Ru*%wa%wCdD68(FCb!7&f2 zU@HKe<&3}XVnd&4y6#YdX)+F0-T5j2{{HDNF8PDd^6$a=u={S{)Oa8eY_C|E*KKhR zm3K78K>Ojww!G%23Io-^ivyi}e&XUM?A^B2+NcTWvSpcpT%)6-m>p@bc55Da^8Z-w zO}%8)IGFEtDvUvyir zqnXz551w-3Urn11<`dD&}GvGsYcL(jZ3kJ>pV6mJWgR})!xF#97;)jK(U`t^1w8v z97G{nWO!s`^DF{@&JWOIJobU|pkWfw{04>LLEC7tjx}syA+?7OBfXYx3<%iQ=5!Sv z=x;+D2)lzSThxuU9%g?=NC+wqG7S9icx}!0HB1Q>tLi;z4jx- zxU@9NqkLB7BRGTgY<4-K_aR?pcc`q=XHwfG4QZQ6$Py%jcQ^(#Q(fG@`K(1$RMan6Z;2U09u+a4$+AjF(16fYJqw(xj)|MwF|@w^OaPo$ z(40@sL9x=OGB*+5=++mhkT!r^@e7auVRgMb`a5E+3rV@jnWlirbs&U;XD27Bta*jV zIWY_jKs%QuMuLJU%)1l3k@S;__HzZA^aG_^!ZwbnnHsiL)Ayg6(m!uM+`mV~H5^cX zPoLRSpngjAEr}6kFRF}Z9W6$RZ)Pus3T+NTBJUox6Q(?8__Mt2jc~qC85Ti|Z5&!{ zPx*l@4jj8-%>NeIL&ERxTU>#r(D}lyHLhPfXrFB4#{xrbb`?wPzXU}+rW%RTCKSO!?C77Kqaj0QP z8AK%h1C4_{m-lH~1$=x?f5=7_!e95eCfn4EFI|}}qQ9GkY);Z58V)I<@fQKk&O46v zQ9F=q57?e6%C2N%V|#cnv;TV;h8Q(6H>5~M4zX-}uyaSCbOesJCRu3aF_7CJM=;F$21mQKX}xqIu*i|3TrB`%%>;~&0my)r`a@=e z0z&`Ep%@*GJ`4zjUYf2^w#}y6!xUxt3i36(oYi=83W{G-k>&Me8zDa+01n+5=j9HDn6A%Tl`BsM*nE6!$wk5mRZ)PNpyqL9yb z2C7E##l?j<056Z1+QkQ=KD$c{K|w*$F(#>7_g5za4oaGnJzgMlQFn5J>9ILMKRoVY zir2OD{do6ix0fdx`dZMLMrY5`5dIc#N15&D#|rRo&&$Cs-o7|Lcg4pH&85fArr9M- z4B!#1KL$>B{b$^}C>*JLo(sk<`nysk9+5bNgjmG#Dw#r?l+oXZU-EhG{Dd_C`e}xs z{cqmn2U+oz@|6^h*G&nx7zMe$xn;0-Z$}W^KD{d-ul zb)f%{ot;Z48dL7%%oCsJrkH~F%3U8;G1AMo29`*vjPheT?~mT^zWJG7<_{fT6s&wX z(Kc8b_!HJpsh%OAl$e~%q{~SGnUK3{BZcas2R&HIJ{ zx$Rz0E8+B_)8G9+JSQmRHQP*lP~>z}-oUAsP%86Smb7tR+{7u@(6c-kz9F#DxHytWe&n*Hi_<@719#(t&Y6@b9tnD%9WTaTsawd?2-=c`godWKni5fR8`@ynk9+b! z0$py2l!%CELk4eyw(r#zlRFLq`hNTx2ud#jZUq9$4zRFGTC~Qz?~@ZhW?N0l14%wS z^B7R8RE=rJW?+T9gDOW0vefs$sjz$*1UHW#oYEJWD(|b{*UxspK52^S2Bsw!M88sI zfdnU6bY7PfSUL4h;oOE_f*Tqn7#TOgXYPQ*H*vd%hc!KP3vTa7t?jxW@KiL$Lc?f5 z41yZMXyFin&_~$*Q&zrr(>&#{0#2zwo4SBM>yj--wjiS>gEiRtf{W6UV&~(y?Mz%U`3R<3Hl9`<&`-dbN$EWcy1ex0oKHOv#-e4?Y{ zRu=FurP82t^WTF!wo|kgz)t_snCpTLJRv?8>Gh^lUo)L9@R;FRAIz8q?;nAJgwkON zp*I{_KQM+qTv$&gzZ#gs%xUosc8NT2i|7a!T(Bx4X7R1G*DGhqz#1&$YFuj4PO^=T zWU5u3-|YDDEj;|)r-_iv0?gpWmJOW6bo3A$c6GsqsW2IlfIdR>tX__Y5GMEd;hwj= z_*=@fQno0U`WPXSudrQpT6FS*wY%$22?!9w0IPP@#cX8`88fcWHt`H7oi4Ox)AD0T zjUgQfF|FV#o4&`C7suht97aqgGB|VF4_s%CS47kd zK}sDMlsfxVFKIUqFIjKW94MK=cPNC!hHl>mweN!?tXv-`7%&8<3>kNC;NZwYS8f1h zGq}!N`@v>@(((Hv1m=_b{;*IIANRG^@}O$)b%d-l#eoCY3dVRsYO3%is7d)zk+=BF z&>bPU`U55d+TnVMnu?CQgp25*o!595E?zh4TpYN+zVhPJ z0Czq+E%7NZXz)R<732iIQwuxVgMVKlWdD2THu1^++9;mf(j-_s-4IL84{bZ}YL0lk zzC=e#x>p0xv9h89lUB&=vc{4uZ>zK=`faJA5 zSW8sGjx=swUOYez7B3+!eJ?6931}D&<1mew`-kt4fk%D9J{o>4*OQrVd^W%Et6SO_ zT#G7o*7{rptdN@6gAV+9I!LupcE;YS?WsFYV)?HFg1eWcSEr@%z}~0Pkig@4toq`- zNqB={A&A8wGKC{`hNbXe=kw#G+5ijCxNZC{&mkBaWAfUZI3Oji^IH3f(;h)s>gAB@ zzpDfyf?N{wUHg;WyW}wi}OV_v@99 zDu+iEy`DWTR10{u_~oVWjJNq;(1Xr?&pP}rdpnt|E_HI-yzd^&u9=u}JY;7;eEUnO zQGHDz+sl8z3K$rNjUgTL6*4*kA|k(O$jP;en_*%2i^H2*vnUNuq=a7UtdM>E8weAH z6q1%)s|_8l_WH3ryKv@C=lJC0F5LDnAPaoF-DAR%$5HX(=mQSoF#0hCZq_u}F(HcLg|-=q zEaQh!)CD7dJ{{DA$4@ckIH(j&<>+~XDa*J@$VRpQ=3H33PD9B@_Y$UM;C9@e;;yA{ zZhMUpLLbs%Kl`fuo&X`)94qetd24PrKfO$EzIxW|Y@2NQP>8JE$St~FcCF-Z_S#H^ zMja4{|gW6dEVE2$Oqt}29a!!W-PeCT;c9Hm=q)M2P72$ zRxMV6(yj>mHTgNX_ONhd{#6c2WzNw&{sFnb(KwHdJxJSSSAfcaXp-3p1u7^gD2_WU zu!rWajRF8x4Xiyi4)KLl@(^|G$|tvGpp~?sKD8#c-k=tUygs9mEHQWsw)`r^fI}nP zX=6}{X0b3ax4we^AKdOu4U54DPPRQ1%Cttl%+FWRdbItYEWo@hC@6pL%%0LyO8q-E zm9Y1D*yI&+==G-*R@6Y^GTx{mHTSLZctwoBs&*hI{%aWP10c}>&gr;P7iXK0k!s@U*?a^!{S0z$ z&tPB@c;)530j)WEKmr}PK`Y_CR684J&|c&RjOcca1atKx2AKVNU|-KvjE($tKReo- zq}*UsV0}aswh!qhLO64m?;}$n_QZHwrL*dIzyrn$<)bp_LZb(DIWta}CW@^BLUYZcpO~OhZ0-{KTnE-G3k$7l_PlezY}5Jbxp|6e z96;O6e{G>iS;$sFedn zRzXX;;U+by0&AE5q^%`voA08C`52fu*?Ly84YeiLg?U}QacQ1* z*0UN}X2iYNN1rz`So39FMQNRkc((A`;EA3?$zw%E#sU z`Qv7IB<&15ZSzySTH9-!C|Z05N#Z^m0c|L>_{}?xj3H`;58zM)c`UV{*a+nKRN-Ub z0F&31l|_lAla|^8efg#v_{9kTF!h<3n4ZD$ijUxFG{S%<-?*ywntrbJMDNPW%2<7O zm^A4}ahTdG_F;5%d4^wuTG~eFc=XYcY`AP}!`j3c=p6Y$56g$&ZF|bkQPg@sGMudnENH7nW2ZZLJQO^}8}$Kao_D#p zRE5%2BurZn2?!wEgyU4=jiG{&=@cm(IT?h+rW?>hB=|}6cM>7Xo>z4c@Cu>F?!FG@ z+KPjK5}_(8Dmn-$glw3m3l#E+Z~$);+;e3zc|HMV=B4kzQ89gzgYPonu?^Z*tNn(N z@eu?~rN4jwV&mYn&R!l0JHT{05`azN{4J7r=f%V?+iEE|p%kc_#Oyu08UEdD2><3i zW-d0i54mcEy(R8f_t3hCnG~3>-~@SSt-~Y*1aZ5W11wcqSX&;;TF96V` zBM6!-Ky0P(&9@NHsvZz^0dn&SE> zM-T*EU&=k%o$=e&`dK)(UIct`7y_4$IB#>U6!dxXKMGC%kWp1N4f4 zfq~Cmdm}KxU*;nS<@JHkT2fNd=85K@X0YtTAcC$j0_XI;fe2wmN({Q3BHWNRy9WoG zwX=?K@V`|kx9X=BWne(bV}n788!xdNIk)QKlOf@=>y*TNU<+wZShW5U`Y4QfRd7J= zJRjT!6^Lb8_h%FoDNL(FkdB6ymK*K39OhSRDCP~@N~o=(h6Wlqv+!rSzV^5UjnD!% z>}eYSp$6^}d<2r?E6+yW-ylVoT~w9P^O1l^e-%9RE#qQsu8DH%U<%L& z?oJ&b0^vTk(H*j;2fF>|!5<*R01M)`vo2?=zMY^V{qJ9)QNZ75j63RXKPP(e*zJ)_ zD2>DS>F%5=y98u3nL!9qK@Y^dz#awhUuH{~K^y6~2Dq}$PMgo#B0enc9gWaE8`{Zr zQDNWS=YOY{{H~5zM^8jc-CWZ3Rub;rhk!Tz)k6S%4jR>PVhu{5zvE|)Onr8qnrz0X zqz-Hy0LG!o+(wZFPD0@Kr?6dP)$9NRQjAGk@84#wY3M!dxlvm&$$lxGbzhsDXHrmBWU;SnN5 znc`?Y`3E*o3k&RR13%hy#8?k@K+#aXbc()=5kFFIrN!0ILb__6q6x&A57{~ zWfT?Bd;9yH-@iu&bLVI7Z*s2RF2@fNL=V7eWwqRJ&bKxJmd8NN9R&OZ6?`B#&kfHP zz&WC6c6Pnner^I5(~|@oX+)rah4YN)pNnU46EG7a=CvB0_TwHL#$B0*Ef{DS2(}eKfCpE8fk3~8#>y6sDDFd=6Y4-0_Ye#ZGZjd z@$P<#peB*vO2}bd;u)kLO87}5#WBH?#(!Ju$*lDT>RW+(gdkf1yuUu^CXgrCx_|?T&2yd8k63WpU8jvcCcIe zEnp?GO=?a;ud|5jz2H&!;b2+qn%N8>DdsXBIPihTZr;mYwLh5-+syhDY49y6wGNH= zCD1`Hj9nhLk32DrDv||1GGzXwQ8~LnDVxTq;<$s-3=oN_4ffx1bh-Nqx z;ft)K7zSfz4Y8rlc|zsaWyLG)`mP4$Xa^&!?XgZS^ccgo`4f>**E5U54OO3yBgYB( z<=cfPRGK=uJ6y-NlpAh=f zTkp^%;JI00k>Y7uusgPKvVSB%(%&*&TRRMf>?~Tk&zXL8$O%s>yG)zA{MIz;ZlIDp zbe8>fTAqL6jLiBmax%>>ZkB&(_3MlZKUaZWuvk3=>(wRr#5IaW4430 zT=h%TO2Ugr1RwDFp4z{ReNa-0JOznZLRI`mPzUq0+Pw(7pO&;8 z6U0$^;RO6hO&=yJZe`J8x98H({#lLaL_wwC+nIqt2>}B#efz z|9Qc%SKHSRq%Ma+_kBwZ7)uJ01yMg9la`?-|7qTMsr@tz7jzEYRj?KJDB026JHEONXuTAD-p~N0aGuSCbMrav z+CvDfu>ZTr0wr|vF-#cJN|uNxnXDoRfANdoj-Ze4Tp5vHZ*s5SJIedFV#9uucYpmp z-7oRY-E%BOqib zfeSmsr@P$_5$4uo1m-S84zAF%2b1^HIC%_Ri41R$M5RY+<3{(@-P6{cK2~;JL2Ox( zlmIUD@eIxZ`DrPlERO#c(w84()x%E|$4=feTCA70 zdKb=U<&y}iTSMC41LMY`>U-083AeqMSExa6zxzodk#chfoi6qC7{T%!jPkq{>A_ER z{z0r*iv@{FPSO(Tn~u00-+2CjU4wBd=B`0D9@UL)e9uUo^@9*U;I5F;cm7WZV<@5a z(3+PZ#eA1ldpL?uO57nOz1b8-Mz99~@`0jv zD$A#|g|bm?0v3(JkLN_abrcFHz)dBU$fqY*PanVtnEG=X@qm;(x|*mY;zq|En9+UK{dQ#v~VW z;B!R`GA?L)O_y4Kw0>nQ#|g3)hWpw;_6$w4JDHCmki=w*=g%abf0s&+%@ZqRs#*9k z>s_xQ9<&G2p@#?OsgBUS)pM$IPON^S89{V&T##%7pTwO&*(I(rT3~=C;+Z!a;K2h} zD3bN)h)YT7(GIKgbwo2Mx-x=K2^TFI7Ou68nWbdwY{h@vh1% zYiob@c3&BVZq+M9+1TrTog}61!sDl#@?eT$<VG2}9M;ScgB|_o5BZRMp)h>J<%|u8 zq*Md~M)FT?0gcOZNAI9e28$a*7pqic01dH%AGWkT2Wr6BD4-d#X6aRqz|$<%dLI>4 znZ9_=*z+wI9w^8aiA|22$)-Gy^lphVzH5x=vXSF>uW z+6Yh)kWYm1bMxc){my;Yp(KUu^>tb>NG>+I#y%;fwf zNVk)9Vq3{F`W_|cfn9WgcAyaFqD1+@N9BgBw5V@k*M^=2!)(-OWGOYi`Q*chN40g5 zJmWBw3W9Uz4OG8B^EWZ{-YV2YYw)Oi@XqZS>Uk(VS)Ug4U;v6g|M7#Y3C){0j{w;1 zjUsYnX>xo2ko;(We+<)4?||9%Lu}5GfuKc)nzOJE5wRyTA~zxl!-l2?YQ6uOOWZKuY`Ik z^`lu)$ZSVjj@2wZRFjv`0am#e>Wt_&OogU-o43MLW)}gsKE8bHKnLQxMl=}&%!6#k zw*r~XEeot~?8iABRVFm)q|{6b;9%81_{iRGelMxYlW}9Vd@g$0MG>s~gv9v^Dw?F* za`Ojvx9*P%(~#|Z^#y~S#R6Z6eM$0*^R`y+5f_UyBx*2 z*(_C$lgX20C;7sA8+;pVUf9<2i^XbBG(_HXbbo0aTxlld0@z0B*xv>OU1<3`#BdVd zjpk5c``+>hzvUEq@hvR38@-`E>Cg9Aov}?)zyd5Y(gXWDB&d>5>;~?9hr=g$SnG@X z@~t%ru()}S#8(~9F{&lwc}t{vIHk9FOUEyQyCxU&I3lU}PPT(XEcu@yKMUf@A3ZtkH98bI+78=FL=Gk)S=H+6xBPL^7@PPg1Sm3Rw+7rz9+8Z_pt^|9`;fo%Bw~A* zZS}pcs|SwOl&976Ta0$1XDN47X`0=!g`~Lu+kCNN6u-R-5^BuFGx~AG-_SgB`D(G% zxLFB3hLe~?3B+8Dwx=PkB_)wy2EHqi^#GX@VH~Pd>^wQj{u|S$)0^IYf|`1ojO`2a-(1aO#CC6QC8o;I@b>mTE-U9A(pd_E|!JRZEmlrI0~%(nM< z2pFH=Q*1W}UUB6q*i>hSbj*AiS4zRn2 zd1?*9H1(8Id`|Z`JNEswwYm~F>AT&BmNAVw{&j8f_sV_oU5SpL;aeDq!i-K4H`9lH z`%aBv2#rW1)gcb-p$Kzg_V+f!0atAfcqgwcIsLQp;)}KFe8UfPas$)52 zz^@OFS=9BPKmMgppK*ic$1|z@__e75#Eb*{xx_?fhT|?>dkx zA-Q`J^@D5AW{zwrQ^Ugb$I$M3v&I!)9CYzCEh>PX2(=_5Q8=$m(n~4zKbXG0VmxPU zr5{UK^pU2Vl6^cQQu8|;D@gFDMZL;FGpC2J0O!lyW4I$TeYy1Afvli;k$sFj52OHk zZ&Xl@+XqOf8hhpdL3b5QRHKKxIzh5}F{+#SeBY2zw%Bw+I|*{Ki4fjHmQ)9m@_Jy_ z)Cv1LTnjFR359a8D8Ar3jcU;ZXVfJexMpVuPlPeOXJNC~OH#Km*-f#Q8Qt*IvSuOn zWv8EXaQDnl{XNf&{a0i7V}a5p95C)&-GqBeI896TZ{YzFim*H$=eOM7fr~_ms>1V1 zmn3%+N4G{>%{C=nn{lhFu&;}z`;1S z>izlhGL~s#;>ownsQXHyIl9sp8~0r_P7<2>;5>VVK3S)PyHL_B=osB0xk?@KFk6kn ze?X9|@Orv`;R6rW?Wx*a`{3H=U<~h4^&T+wVtvvAD&sv!#2h55t&C|4yg$PM9 zNM-a*1XDteTuCL-ERcYCz2&al8KXfwC9&Jd`hx;FAuE{;gW$`37samVEuqqt9pHgsiA4jAmcB{~{W5D5x4?)7TBK0^95PEr})JYPMq^*F%PT+K{*D5^t%C`8| z=Q1s6(G*YYv<8O9yJzO_%x<#u1e@T`=UQ_stMhx+6F*WX!@GeOB{+WQkKsE~fX$98 zi}SN9>0~G}Q{7^mp{=3mz_=TqtjOfF-@DxQjhODkKeRkO+QPF;=XIC0H^xM0CpJ>l zKjvk0v9IjZ6perwe{8O&(Ux<88hFEMgTlWP+$lO=$6+|+3nQJpH7dLHy>U zE9>IA@I9gD0bDZ%On^j8Y*fgDRaMd_IAqd6_6!uXKgh7Aq7R8o(aqIqVh7pP$r z*O~+y6ZG-1%zn`4T4k*!-KpKU9N>LA8YGDrQIakjww3VB(j4#W(Mf4h>f(s#3wJ=p zcA_dQUgwDhY6nE&NFE8PL6)d&y>&L;_YI334UlBHUU|Ja5zW+CCX z1^9xmh%rjc#z^tG)y-x(T@ZqF=0QdDeT)>5N~h=BISeM!WsYr|fRQ}2AH}6TXH4uY z1k%WeT!NtkZ%ih4=g#?euyN*4FY(M{ZkDzPIpceiFyzPF!FP%Il?bI;vSv?*zUK{l zB_6Y)aO->#!u;R&69w?dvSr&2G%@I05_WM6C{(IEJM@`$D?3V zo76bF^q)j>^0O`O?Lhs9S{N(p_!0s>G5bd0~5 ziRWOM&ckVjNpY&T#93-q=Njh5F;&e#*N1oS8gIe8yzEuf@BJ(No|sRTZKNj> zwFyam&p_Cji{!t5t#}`wK?~@d`(d~V(8-H`b3WV#FB{{C8vFD*eAdfZ7xp)F>Ds9~ z&{7wnT*$V_@CF|M5TpKmBcO8g+Q7IxeXthuw0%?Kj~4zqB3iC*+)4~Ws99@0B}aWa z@pq?R5#9!0zaaXfw&4_He#pyC$4 zd-_v-=|ZaHVe9v-K~p8^Kw3+>fZiYtR0x^l&F9q$!}o51bz@R_iqd8AjH(%*fl1NzTVa8~%nt5dD%ek(M^Q}9dyGeD+w;aJr^mwG%?u|XjY z!+n3=FXj6eow8MJMkDFH!t!^K52^t6jS4Fl>Nw$$NwGslc7AL=eF02~7an;+mA}9J zc%IvMovnOuP95V6LPQO6q6XB-s_b6)~iuV}!kd#Q7D&N@`%T;DF7&fh5W9p}}naAFefpjTPmgue>K`SOy` zr;&4Or!qCoSxa=qOvwdcQFu$_n8zv`9^e3XgkgL z4b3gAM7+agw!t-Asyuw5_Xum?Ey|=I9ycuGqmFi1N!PUkit!QodpAYrFU9 z3^@M@d{yl2^Qe#@&2u)p@H{Xp6UUrdz z?J#z{B)XHZEkeqJv!0!S9y+qF{O-VF+YQkX5|f~dQH3k6;~uRL;=#RN!obws1CkmWlHbWGz;kL z?J@C?Eho#ED`%5lK=qSHLaS=uCF9s;kJLHe=ZO@UD%~p>{%u8U$HA5O=CWHxe-aAwh@-^MJ;%ULv88BfxYj(YL1!1~d(4yGQQlpT3x?bz+HGHEOG)C+H7l|N1i9g++4wM|c9 zzUQ;AC%VYB@yTl0NgW6pf~1G$J0h+(qKg=~q(00xyjGjKk_i3G^ zc5ESw05fJ3`R9U(eZ9hO0U%XUAN}9sWo@2HZlj<|ZMtKphzFxSadOv3r6HIgR?-F1 z#{v>Ak?af;}&MLO@1c~mv1@j}w`yO;mQ zjdyF3wB6dvZ!rw2kC_iTh{8$}^bMgenXSjp(W>?Ulu^`)d+F*&#$Z1o;oxFqOg6kv z3rE>%@Gad5Y)G->DVh_Ug!C84qR6#e+;p&?KjPf1jQEF#rX@Z=;v}05btObz&GVi) z82pOxjgm)si!vAJ1LW{UeP7AoVfl74s4w7Ax05?Yi9&(N>H<;R4rQfa2kNOjF>dZ! vLK9>YKG-BnHdgrGLd=>~qQ!U4=dTob;z~@xm4Cnw+5qx0%F<=;i~|1;|4Ub7 diff --git a/nh_eobs_btuh/static/src/xml/nh_eobs_btuh.xml b/nh_eobs_btuh/static/src/xml/nh_eobs_btuh.xml deleted file mode 100644 index cd3999f7..00000000 --- a/nh_eobs_btuh/static/src/xml/nh_eobs_btuh.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - Powered by Open e-Obs / OpenERP - - - - \ No newline at end of file diff --git a/nh_eobs_btuh/tests/__init__.py b/nh_eobs_btuh/tests/__init__.py deleted file mode 100644 index 342e7564..00000000 --- a/nh_eobs_btuh/tests/__init__.py +++ /dev/null @@ -1 +0,0 @@ -import test_btuh_policy diff --git a/nh_eobs_btuh/tests/test_btuh_policy.py b/nh_eobs_btuh/tests/test_btuh_policy.py deleted file mode 100644 index e03b8a6d..00000000 --- a/nh_eobs_btuh/tests/test_btuh_policy.py +++ /dev/null @@ -1,266 +0,0 @@ -from openerp.tests import common -from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT as DTF -from faker import Faker -import logging -from openerp.addons.nh_observations.tests.test_scenario import ActivityTypesTest - -_logger = logging.getLogger(__name__) - -faker = Faker() - -""" -TESTS -we expect review ews frequency activity on every case except 1. -case 0 (score 0) -> no notifications -case 1 (score 1-4) -> we expect assess patient notification -case 2.1 (score 5-6) -> we expect urgently inform medical team and consider assessment by CCOT beep 6427 notifications -case 2.2 (three in one) -> we expect urgently inform medical team and consider assessment by CCOT beep 6427 notifications -case 3 (score 7+) -> we expect immediately inform medical team and urgent assessment by CCOT beep 6427 notifications - -if we submit ews_data[PARAMETER][X] for every parameter in EWS we should obtain a score of X -except for special cases X = 18 and X = 19 which contain score 3 and 4 respectively but with three in one true. -""" - - -class TestBtuhPolicy(ActivityTypesTest): - - def setUp(self): - global cr, uid, \ - register_pool, patient_pool, admit_pool, activity_pool, transfer_pool, ews_pool, \ - activity_id, location_pool, pos_pool, user_pool, imd_pool, discharge_pool, \ - device_connect_pool, device_disconnect_pool, partner_pool, height_pool, blood_sugar_pool, \ - blood_product_pool, weight_pool, stools_pool, gcs_pool, vips_pool, o2target_pool, o2target_activity_pool - - cr, uid = self.cr, self.uid - - register_pool = self.registry('nh.clinical.adt.patient.register') - patient_pool = self.registry('nh.clinical.patient') - admit_pool = self.registry('nh.clinical.adt.patient.admit') - discharge_pool = self.registry('nh.clinical.patient.discharge') - activity_pool = self.registry('nh.activity') - transfer_pool = self.registry('nh.clinical.adt.patient.transfer') - ews_pool = self.registry('nh.clinical.patient.observation.ews') - height_pool = self.registry('nh.clinical.patient.observation.height') - weight_pool = self.registry('nh.clinical.patient.observation.weight') - blood_sugar_pool = self.registry('nh.clinical.patient.observation.blood_sugar') - blood_product_pool = self.registry('nh.clinical.patient.observation.blood_product') - stools_pool = self.registry('nh.clinical.patient.observation.stools') - gcs_pool = self.registry('nh.clinical.patient.observation.gcs') - vips_pool = self.registry('nh.clinical.patient.observation.vips') - location_pool = self.registry('nh.clinical.location') - pos_pool = self.registry('nh.clinical.pos') - user_pool = self.registry('res.users') - partner_pool = self.registry('res.partner') - imd_pool = self.registry('ir.model.data') - device_connect_pool = self.registry('nh.clinical.device.connect') - device_disconnect_pool = self.registry('nh.clinical.device.disconnect') - o2target_pool = self.registry('nh.clinical.o2level') - o2target_activity_pool = self.registry('nh.clinical.patient.o2target') - - super(TestBtuhPolicy, self).setUp() - - def test_btuh_ews_observations_policy(self): - ews_test_data = { - 'SCORE': [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 3, 4, 20], - 'CASE': [ 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3], - 'RR': [ 18, 11, 11, 11, 11, 11, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 24, 25, 18, 11, 25], - 'O2': [ 99, 97, 95, 95, 95, 95, 95, 93, 93, 93, 93, 91, 91, 91, 91, 91, 91, 91, 99, 99, 91], - 'O2_flag': [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1], - 'BT': [37.5, 36.5, 36.5, 35.5, 35.5, 35.5, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0, 39.0, 39.0, 35.0, 35.0, 35.0, 37.5, 37.5, 35.0], - 'BPS': [ 110, 110, 110, 110, 90, 90, 90, 90, 80, 80, 80, 80, 80, 80, 75, 220, 220, 220, 120, 120, 220], - 'BPD': [ 80, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 80, 80, 70], - 'PR': [ 65, 55, 55, 55, 55, 90, 90, 90, 90, 110, 110, 110, 130, 130, 30, 30, 130, 130, 65, 65, 130], - 'AVPU': [ 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'V', 'P', 'U'] - } - - o2_test_data = { - 'SCORE': [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 8, 9, 10, 11, 12, 16, 17, 3, 4, 20], - 'CASE': [ 0, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 3], - 'RR': [ 18, 11, 11, 11, 11, 11, 24, 24, 24, 24, 25, 25, 25, 25, 25, 25, 24, 25, 18, 11, 25], - 'O2': [ 99, 97, 95, 95, 95, 95, 95, 93, 93, 93, 93, 92, 91, 90, 89, 88, 87, 87, 99, 99, 87], - 'O2_flag': [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1], - 'BT': [37.5, 36.5, 36.5, 35.5, 35.5, 35.5, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0, 38.0, 39.0, 39.0, 35.0, 35.0, 35.0, 37.5, 37.5, 35.0], - 'BPS': [ 110, 110, 110, 110, 90, 90, 90, 90, 80, 80, 80, 80, 80, 80, 75, 220, 220, 220, 120, 120, 220], - 'BPD': [ 80, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 80, 80, 70], - 'PR': [ 65, 55, 55, 55, 55, 90, 90, 90, 90, 110, 110, 110, 130, 130, 30, 30, 130, 130, 65, 65, 130], - 'AVPU': [ 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'V', 'P', 'U'] - } - - btuh_policy = { - 'frequencies': [720, 240, 60, 30], - 'risk': ['None', 'Low', 'Medium', 'High'], - 'notifications': [ - {'nurse': [], 'assessment': False, 'frequency': True}, - {'nurse': [], 'assessment': True, 'frequency': False}, - {'nurse': ['Urgently inform medical team', 'Consider assessment by CCOT beep 6427'], 'assessment': False, 'frequency': True}, - {'nurse': ['Immediately inform medical team', 'Urgent assessment by CCOT beep 6427'], 'assessment': False, 'frequency': True} - ] - } - - # environment - pos1_env = self.create_pos_environment() - # register - [self.adt_patient_register(env=pos1_env) for i in range(5)] - - # admit - [self.adt_patient_admit(data_vals={'other_identifier': other_identifier}, env=pos1_env) for other_identifier in pos1_env['other_identifiers']] - - # placements - [self.patient_placement(data_vals={'patient_id': patient_id}, env=pos1_env) for patient_id in pos1_env['patient_ids']] - - # ews - for i in range(0, 21): - ews_id = self.observation_ews(data_vals={ - 'respiration_rate': ews_test_data['RR'][i], - 'indirect_oxymetry_spo2': ews_test_data['O2'][i], - 'oxygen_administration_flag': ews_test_data['O2_flag'][i], - 'body_temperature': ews_test_data['BT'][i], - 'blood_pressure_systolic': ews_test_data['BPS'][i], - 'blood_pressure_diastolic': ews_test_data['BPD'][i], - 'pulse_rate': ews_test_data['PR'][i], - 'avpu_text': ews_test_data['AVPU'][i] - }, env=pos1_env) - - frequency = btuh_policy['frequencies'][ews_test_data['CASE'][i]] - clinical_risk = btuh_policy['risk'][ews_test_data['CASE'][i]] - nurse_notifications = btuh_policy['notifications'][ews_test_data['CASE'][i]]['nurse'] - assessment = btuh_policy['notifications'][ews_test_data['CASE'][i]]['assessment'] - review_frequency = btuh_policy['notifications'][ews_test_data['CASE'][i]]['frequency'] - - print "TEST - BTUH observation EWS: expecting score %s, frequency %s, risk %s" % (ews_test_data['SCORE'][i], frequency, clinical_risk) - ews_activity = activity_pool.browse(cr, uid, ews_id) - - # # # # # # # # # # # # # # # # # # # # # # # # # - # Check the score, frequency and clinical risk # - # # # # # # # # # # # # # # # # # # # # # # # # # - self.assertEqual(ews_activity.data_ref.score, ews_test_data['SCORE'][i], msg='Score not matching') - self.assertEqual(ews_activity.data_ref.clinical_risk, clinical_risk, msg='Risk not matching') - domain = [ - ('creator_id', '=', ews_id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '=', ews_pool._name)] - ews_activity_ids = activity_pool.search(cr, uid, domain) - self.assertTrue(ews_activity_ids, msg='Next EWS activity was not triggered') - next_ews_activity = activity_pool.browse(cr, uid, ews_activity_ids[0]) - self.assertEqual(next_ews_activity.data_ref.frequency, frequency, msg='Frequency not matching') - - # # # # # # # # # # # # # # # # - # Check notification triggers # - # # # # # # # # # # # # # # # # - domain = [ - ('creator_id', '=', ews_id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '=', 'nh.clinical.notification.assessment')] - assessment_ids = activity_pool.search(cr, uid, domain) - if assessment: - self.assertTrue(assessment_ids, msg='Assessment notification not triggered') - activity_pool.complete(cr, uid, assessment_ids[0]) - domain = [ - ('creator_id', '=', assessment_ids[0]), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '=', 'nh.clinical.notification.frequency')] - frequency_ids = activity_pool.search(cr, uid, domain) - self.assertTrue(frequency_ids, msg='Review frequency not triggered after Assessment complete') - activity_pool.cancel(cr, uid, frequency_ids[0]) - else: - self.assertFalse(assessment_ids, msg='Assessment notification triggered') - - domain = [ - ('creator_id', '=', ews_id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '=', 'nh.clinical.notification.frequency')] - frequency_ids = activity_pool.search(cr, uid, domain) - if review_frequency: - self.assertTrue(frequency_ids, msg='Review frequency notification not triggered') - activity_pool.cancel(cr, uid, frequency_ids[0]) - else: - self.assertFalse(frequency_ids, msg='Review frequency notification triggered') - - domain = [ - ('creator_id', '=', ews_id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '=', 'nh.clinical.notification.nurse')] - notification_ids = activity_pool.search(cr, uid, domain) - self.assertEqual(len(notification_ids), len(nurse_notifications), msg='Wrong notifications triggered') - - # o2targets - o2target_ids = o2target_pool.search(cr, uid, [('name', '=', '88-92')]) - [self.o2target(data_vals={'patient_id': patient_id, 'level_id': o2target_ids[0]}, env=pos1_env) for patient_id in pos1_env['patient_ids']] - - for i in range(0, 21): - ews_id = self.observation_ews(data_vals={ - 'respiration_rate': o2_test_data['RR'][i], - 'indirect_oxymetry_spo2': o2_test_data['O2'][i], - 'oxygen_administration_flag': o2_test_data['O2_flag'][i], - 'body_temperature': o2_test_data['BT'][i], - 'blood_pressure_systolic': o2_test_data['BPS'][i], - 'blood_pressure_diastolic': o2_test_data['BPD'][i], - 'pulse_rate': o2_test_data['PR'][i], - 'avpu_text': o2_test_data['AVPU'][i] - }, env=pos1_env) - - frequency = btuh_policy['frequencies'][o2_test_data['CASE'][i]] - clinical_risk = btuh_policy['risk'][o2_test_data['CASE'][i]] - nurse_notifications = btuh_policy['notifications'][o2_test_data['CASE'][i]]['nurse'] - assessment = btuh_policy['notifications'][o2_test_data['CASE'][i]]['assessment'] - review_frequency = btuh_policy['notifications'][o2_test_data['CASE'][i]]['frequency'] - - print "TEST - BTUH observation EWS: expecting score %s, frequency %s, risk %s" % (o2_test_data['SCORE'][i], frequency, clinical_risk) - ews_activity = activity_pool.browse(cr, uid, ews_id) - - # # # # # # # # # # # # # # # # # # # # # # # # # - # Check the score, frequency and clinical risk # - # # # # # # # # # # # # # # # # # # # # # # # # # - self.assertEqual(ews_activity.data_ref.score, o2_test_data['SCORE'][i], msg='Score not matching') - self.assertEqual(ews_activity.data_ref.clinical_risk, clinical_risk, msg='Risk not matching') - domain = [ - ('creator_id', '=', ews_id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '=', ews_pool._name)] - ews_activity_ids = activity_pool.search(cr, uid, domain) - self.assertTrue(ews_activity_ids, msg='Next EWS activity was not triggered') - next_ews_activity = activity_pool.browse(cr, uid, ews_activity_ids[0]) - self.assertEqual(next_ews_activity.data_ref.frequency, frequency, msg='Frequency not matching') - - # # # # # # # # # # # # # # # # - # Check notification triggers # - # # # # # # # # # # # # # # # # - domain = [ - ('creator_id', '=', ews_id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '=', 'nh.clinical.notification.assessment')] - assessment_ids = activity_pool.search(cr, uid, domain) - if assessment: - self.assertTrue(assessment_ids, msg='Assessment notification not triggered') - activity_pool.complete(cr, uid, assessment_ids[0]) - domain = [ - ('creator_id', '=', assessment_ids[0]), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '=', 'nh.clinical.notification.frequency')] - frequency_ids = activity_pool.search(cr, uid, domain) - self.assertTrue(frequency_ids, msg='Review frequency not triggered after Assessment complete') - activity_pool.cancel(cr, uid, frequency_ids[0]) - else: - self.assertFalse(assessment_ids, msg='Assessment notification triggered') - - domain = [ - ('creator_id', '=', ews_id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '=', 'nh.clinical.notification.frequency')] - frequency_ids = activity_pool.search(cr, uid, domain) - if review_frequency: - self.assertTrue(frequency_ids, msg='Review frequency notification not triggered') - activity_pool.cancel(cr, uid, frequency_ids[0]) - else: - self.assertFalse(frequency_ids, msg='Review frequency notification triggered') - - domain = [ - ('creator_id', '=', ews_id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '=', 'nh.clinical.notification.nurse')] - notification_ids = activity_pool.search(cr, uid, domain) - if 88 <= o2_test_data['O2'][i] <= 92: - self.assertEqual(len(notification_ids), len(nurse_notifications), msg='Wrong notifications triggered') - else: - # Review Oxygen Regime should be triggered as well - self.assertEqual(len(notification_ids), len(nurse_notifications)+1, msg='Wrong notifications triggered') \ No newline at end of file From 0e79dbb35b7ca9d56e62c8f4433958330963385b Mon Sep 17 00:00:00 2001 From: Rob Dyke Date: Wed, 6 Mar 2019 13:40:22 +0000 Subject: [PATCH 2/5] remove LTH module - ref #52 --- nh_eobs_lth/__init__.py | 1 - nh_eobs_lth/__init__.pyc | Bin 163 -> 0 bytes nh_eobs_lth/__openerp__.py | 18 - nh_eobs_lth/leeds-logo.txt | 1 - nh_eobs_lth/lth_master_data.xml | 348 -------------- nh_eobs_lth/lth_user_data.xml | 512 --------------------- nh_eobs_lth/nh_eobs_lth.py | 47 -- nh_eobs_lth/nh_eobs_lth.pyc | Bin 2621 -> 0 bytes nh_eobs_lth/static/src/css/nh_eobs_lth.css | 3 - nh_eobs_lth/static/src/img/leeds-logo.png | Bin 5103 -> 0 bytes nh_eobs_lth/static/src/img/t4skr_logo.png | Bin 3928 -> 0 bytes nh_eobs_lth/static/src/js/nh_eobs_lth.js | 3 - nh_eobs_lth/static/src/xml/nh_eobs_lth.xml | 14 - 13 files changed, 947 deletions(-) delete mode 100644 nh_eobs_lth/__init__.py delete mode 100644 nh_eobs_lth/__init__.pyc delete mode 100644 nh_eobs_lth/__openerp__.py delete mode 100644 nh_eobs_lth/leeds-logo.txt delete mode 100644 nh_eobs_lth/lth_master_data.xml delete mode 100644 nh_eobs_lth/lth_user_data.xml delete mode 100644 nh_eobs_lth/nh_eobs_lth.py delete mode 100644 nh_eobs_lth/nh_eobs_lth.pyc delete mode 100644 nh_eobs_lth/static/src/css/nh_eobs_lth.css delete mode 100644 nh_eobs_lth/static/src/img/leeds-logo.png delete mode 100644 nh_eobs_lth/static/src/img/t4skr_logo.png delete mode 100644 nh_eobs_lth/static/src/js/nh_eobs_lth.js delete mode 100644 nh_eobs_lth/static/src/xml/nh_eobs_lth.xml diff --git a/nh_eobs_lth/__init__.py b/nh_eobs_lth/__init__.py deleted file mode 100644 index 388ac22a..00000000 --- a/nh_eobs_lth/__init__.py +++ /dev/null @@ -1 +0,0 @@ -import nh_eobs_lth \ No newline at end of file diff --git a/nh_eobs_lth/__init__.pyc b/nh_eobs_lth/__init__.pyc deleted file mode 100644 index a4bfb20b2cec253389b850ff5f0593a5c9161c43..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 163 zcmZSn%*%CQ!Mey~1}I%Ny*PE26EwA^yA|*^D;}~ - - - - - - Leeds Teaching Hospitals - - - Leeds Teaching Hospitals - http://www.leedsth.nhs.uk/ - - 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 - - - - - - LTH POS Location - LTH - pos - hospital - - - - - Leeds Teaching Hospitals - - - - - Admission Location - ADML-LTH - structural - room - - - - Discharge Location - DISL-LTH - structural - room - - - - - - Leeds Teaching Hospitals - - - - - - - - - Ward J83 - J83 - poc - - ward - - - - - - - - Bed 01 - J83B1 - poc - - bed - - - - Bed 02 - J83B2 - poc - - bed - - - - Bed 03 - J83B3 - poc - - bed - - - - Bed 04 - J83B4 - poc - - bed - - - - Bed 05 - J83B5 - poc - - bed - - - - Bed 06 - J83B6 - poc - - bed - - - - Bed 07 - J83B7 - poc - - bed - - - - Bed 08 - J83B8 - poc - - bed - - - - Bed 09 - J83B9 - poc - - bed - - - - Bed 10 - J83B10 - poc - - bed - - - - Bed 11 - J83B11 - poc - - bed - - - - Bed 12 - J83B12 - poc - - bed - - - - Bed 13 - J83B13 - poc - - bed - - - - Bed 14 - J83B14 - poc - - bed - - - - Bed 15 - J83B15 - poc - - bed - - - - Bed 16 - J83B16 - poc - - bed - - - - Bed 17 - J83B17 - poc - - bed - - - - Bed 18 - J83B18 - poc - - bed - - - - Bed 19 - J83B19 - poc - - bed - - - - Bed 20 - J83B20 - poc - - bed - - - - Bed 21 - J83B21 - poc - - bed - - - - Bed 22 - J83B22 - poc - - bed - - - - Bed 23 - J83B23 - poc - - bed - - - - Bed 24 - J83B24 - poc - - bed - - - - Bed 25 - J83B25 - poc - - bed - - - - Bed 26 - J83B26 - poc - - bed - - - - Bed 27 - J83B27 - poc - - bed - - - - Bed 28 - J83B28 - poc - - bed - - - - Bed 29 - J83B29 - poc - - bed - - - - Bed 30 - J83B30 - poc - - bed - - - - Bed 31 - J83B31 - poc - - bed - - - - Bed 32 - J83B32 - poc - - bed - - - - - - 88 - 92 - - - 92 - 96 - - - 90 - 94 - - - 86 - 90 - - - - \ No newline at end of file diff --git a/nh_eobs_lth/lth_user_data.xml b/nh_eobs_lth/lth_user_data.xml deleted file mode 100644 index f1c87156..00000000 --- a/nh_eobs_lth/lth_user_data.xml +++ /dev/null @@ -1,512 +0,0 @@ - - - - - - LTH-ADT - adt - adt - - - - - - Hudson Butler - hudson - hudson - Europe/London - - - - - - Heather Walder - heather - heather - Europe/London - - - - - - Harold Bishop - harold - harold - Europe/London - - - - - - Henry Higgins - henry - henry - Europe/London - - - - - - Hannah Mitchell - hannah - hannah - Europe/London - - - - - - Harper Ransom - harper - harper - Europe/London - - - - - - Harriet Kendall - harriet - harriet - Europe/London - - - - - - Hugo Burlatsky - hugo - hugo - Europe/London - - - - - - Natalia Gonzalez - natalia - natalia - Europe/London - - - - - - Noemi Simpson - noemi - noemi - Europe/London - - - - - - Noah Connolly - noah - noah - Europe/London - - - - - - Neil Hawking - neil - neil - Europe/London - - - - - - Norah Miller - norah - norah - Europe/London - - - - - - Nadine Bullock - nadine - nadine - Europe/London - - - - - - Nathan Lewis - nathan - nathan - Europe/London - - - - - - Nicolas Stockly - nicolas - nicolas - Europe/London - - - - - - Ned Muzio - ned - ned - Europe/London - - - - - - Natasha Goldner - natasha - natasha - Europe/London - - - - - - Nichole Smith - nichole - nichole - Europe/London - - - - - - Nasir Patel - nasir - nasir - Europe/London - - - - - - Winifred Kirrin - winifred - winifred - Europe/London - - - - - - Walter Smith - j83lter - j83lter - Europe/London - - - - - - Whitney Williams - whitney - whitney - Europe/London - - - - - - William Roberts - william - william - Europe/London - - - - - - Dave Chas - dave - dave - Europe/London - - - - - - Davina McCall - davina - davina - Europe/London - - - - - - Don Jones - don - don - Europe/London - - - - - - Dakota Fox - dakota - dakota - Europe/London - - - - - - Damien Jenkins - damien - damien - Europe/London - - - - - - Delilah Fletcher - delilah - delilah - Europe/London - - - - - - Dawson West - dawson - dawson - Europe/London - - - - - - Dana Wallace - dana - dana - Europe/London - - - - - - Diego Garcia - diego - diego - Europe/London - - - - - - Daniella Rossi - daniella - daniella - Europe/London - - - - - - Denzel Davies - denzel - denzel - Europe/London - - - - - - Diana Fowler - diana - diana - Europe/London - - - - - - Olga Chapman - olga - olga - Europe/London - - - - - - Europe/London - - - - - \ No newline at end of file diff --git a/nh_eobs_lth/nh_eobs_lth.py b/nh_eobs_lth/nh_eobs_lth.py deleted file mode 100644 index 7cbcfb02..00000000 --- a/nh_eobs_lth/nh_eobs_lth.py +++ /dev/null @@ -1,47 +0,0 @@ -from openerp.osv import orm -import logging - -_logger = logging.getLogger(__name__) - - -class nh_clinical_patient_observation_lth_ews(orm.Model): - _name = 'nh.clinical.patient.observation.ews' - _inherit = 'nh.clinical.patient.observation.ews' - - _POLICY = {'ranges': [0, 4, 6], 'case': '0123', 'frequencies': [720, 240, 120, 60], - 'notifications': [ - [{'model': 'frequency', 'groups': ['nurse', 'hca']}], - [{'model': 'assessment', 'groups': ['nurse', 'hca']}, - {'model': 'hca', 'summary': 'Inform registered nurse', 'groups': ['hca']}, - {'model': 'nurse', 'summary': 'Informed about patient status (NEWS)', 'groups': ['hca']}], - [{'model': 'medical_team', 'summary': 'Urgently speak to the medical team', 'groups': ['nurse', 'hca']}, - {'model': 'frequency', 'groups': ['nurse', 'hca']}, - {'model': 'nurse', 'summary': 'Consider assessment by CCOT', 'groups': ['nurse', 'hca']}, - {'model': 'hca', 'summary': 'Inform registered nurse', 'groups': ['hca']}, - {'model': 'nurse', 'summary': 'Informed about patient status (NEWS)', 'groups': ['hca']}], - [{'model': 'medical_team', 'summary': 'Immediately speak to the medical team', 'groups': ['nurse', 'hca']}, - {'model': 'frequency', 'groups': ['nurse', 'hca']}, - {'model': 'nurse', 'summary': 'Urgent assessment by CCOT', 'groups': ['nurse', 'hca']}, - {'model': 'hca', 'summary': 'Inform registered nurse', 'groups': ['hca']}, - {'model': 'nurse', 'summary': 'Informed about patient status (NEWS)', 'groups': ['hca']}] - ], - 'risk': ['None', 'Low', 'Medium', 'High']} - - -class lth_notification_frequency(orm.Model): - _name = 'nh.clinical.notification.frequency' - _inherit = 'nh.clinical.notification.frequency' - - def complete(self, cr, uid, activity_id, context=None): - activity_pool = self.pool['nh.activity'] - review_frequency = activity_pool.browse(cr, uid, activity_id, context=context) - domain = [ - ('patient_id', '=', review_frequency.data_ref.patient_id.id), - ('data_model', '=', review_frequency.data_ref.observation), - ('state', 'not in', ['completed', 'cancelled']) - ] - obs_ids = activity_pool.search(cr, uid, domain, order='create_date desc, id desc', context=context) - obs = activity_pool.browse(cr, uid, obs_ids[0], context=context) - obs_pool = self.pool[review_frequency.data_ref.observation] - obs_pool.write(cr, uid, obs.data_ref.id, {'frequency': review_frequency.data_ref.frequency}, context=context) - return super(lth_notification_frequency, self).complete(cr, uid, activity_id, context=context) \ No newline at end of file diff --git a/nh_eobs_lth/nh_eobs_lth.pyc b/nh_eobs_lth/nh_eobs_lth.pyc deleted file mode 100644 index 2124b08f73000568d2aed0e41e281469cd7dc6f0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2621 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 diff --git a/nh_eobs_lth/static/src/img/t4skr_logo.png b/nh_eobs_lth/static/src/img/t4skr_logo.png deleted file mode 100644 index b5cbd202792ebf5564e7e7d54f70228ba5762c60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3928 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 mI^bpCWvk_HG8JD?HUAHXc1gNuPSQvK0000 - - - - - - - Powered by NH Clinical / OpenERP - - - - \ No newline at end of file From ab1b9de617ae418cdf727d95184771ceb3e13f1a Mon Sep 17 00:00:00 2001 From: Rob Dyke Date: Wed, 6 Mar 2019 13:40:34 +0000 Subject: [PATCH 3/5] remove Lister module - ref #52 --- nh_eobs_lister/__init__.py | 4 - nh_eobs_lister/__init__.pyc | Bin 273 -> 0 bytes nh_eobs_lister/__openerp__.py | 26 - nh_eobs_lister/controllers/__init__.py | 2 - nh_eobs_lister/controllers/__init__.pyc | Bin 208 -> 0 bytes nh_eobs_lister/controllers/main.py | 17 - nh_eobs_lister/controllers/main.pyc | Bin 1488 -> 0 bytes nh_eobs_lister/data/lister_master_data.xml | 478 ------------- nh_eobs_lister/high_risk_patients.py | 125 ---- nh_eobs_lister/high_risk_patients.pyc | Bin 7129 -> 0 bytes nh_eobs_lister/lister-logo.txt | 1 - nh_eobs_lister/lister_user_data.xml | 552 --------------- nh_eobs_lister/nh_eobs_lister.py | 586 ---------------- nh_eobs_lister/nh_eobs_lister.pyc | Bin 24042 -> 0 bytes nh_eobs_lister/observation_report.py | 375 ----------- nh_eobs_lister/observation_report.pyc | Bin 12648 -> 0 bytes .../security/ccot/ir.model.access.csv | 11 - nh_eobs_lister/security/ir.model.access.csv | 37 -- .../static/src/css/nh_eobs_lister.css | 6 - .../static/src/img/icons/up_down.png | Bin 297 -> 0 bytes nh_eobs_lister/static/src/img/lister-logo.png | Bin 12343 -> 0 bytes nh_eobs_lister/static/src/img/t4skr_logo.png | Bin 3928 -> 0 bytes .../static/src/js/nh_eobs_lister.js | 148 ----- .../static/src/xml/nh_eobs_lister.xml | 21 - nh_eobs_lister/tests/__init__.py | 1 - nh_eobs_lister/tests/test_ews_policy.py | 510 -------------- nh_eobs_lister/views/ccot_kanban.xml | 80 --- nh_eobs_lister/views/menuitem.xml | 52 -- nh_eobs_lister/views/nh_eobs_lister_view.xml | 492 -------------- nh_eobs_lister/views/obs_report.xml | 628 ------------------ nh_eobs_lister/views/template.xml | 102 --- 31 files changed, 4254 deletions(-) delete mode 100644 nh_eobs_lister/__init__.py delete mode 100644 nh_eobs_lister/__init__.pyc delete mode 100644 nh_eobs_lister/__openerp__.py delete mode 100644 nh_eobs_lister/controllers/__init__.py delete mode 100644 nh_eobs_lister/controllers/__init__.pyc delete mode 100644 nh_eobs_lister/controllers/main.py delete mode 100644 nh_eobs_lister/controllers/main.pyc delete mode 100644 nh_eobs_lister/data/lister_master_data.xml delete mode 100644 nh_eobs_lister/high_risk_patients.py delete mode 100644 nh_eobs_lister/high_risk_patients.pyc delete mode 100644 nh_eobs_lister/lister-logo.txt delete mode 100644 nh_eobs_lister/lister_user_data.xml delete mode 100644 nh_eobs_lister/nh_eobs_lister.py delete mode 100644 nh_eobs_lister/nh_eobs_lister.pyc delete mode 100644 nh_eobs_lister/observation_report.py delete mode 100644 nh_eobs_lister/observation_report.pyc delete mode 100644 nh_eobs_lister/security/ccot/ir.model.access.csv delete mode 100644 nh_eobs_lister/security/ir.model.access.csv delete mode 100644 nh_eobs_lister/static/src/css/nh_eobs_lister.css delete mode 100644 nh_eobs_lister/static/src/img/icons/up_down.png delete mode 100644 nh_eobs_lister/static/src/img/lister-logo.png delete mode 100644 nh_eobs_lister/static/src/img/t4skr_logo.png delete mode 100644 nh_eobs_lister/static/src/js/nh_eobs_lister.js delete mode 100644 nh_eobs_lister/static/src/xml/nh_eobs_lister.xml delete mode 100644 nh_eobs_lister/tests/__init__.py delete mode 100644 nh_eobs_lister/tests/test_ews_policy.py delete mode 100644 nh_eobs_lister/views/ccot_kanban.xml delete mode 100644 nh_eobs_lister/views/menuitem.xml delete mode 100644 nh_eobs_lister/views/nh_eobs_lister_view.xml delete mode 100644 nh_eobs_lister/views/obs_report.xml delete mode 100644 nh_eobs_lister/views/template.xml diff --git a/nh_eobs_lister/__init__.py b/nh_eobs_lister/__init__.py deleted file mode 100644 index a4bb7e78..00000000 --- a/nh_eobs_lister/__init__.py +++ /dev/null @@ -1,4 +0,0 @@ -import nh_eobs_lister -import controllers -import high_risk_patients -import observation_report \ No newline at end of file diff --git a/nh_eobs_lister/__init__.pyc b/nh_eobs_lister/__init__.pyc deleted file mode 100644 index 526ef5b11ed19fcf5336073005baf552bd3cead3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 273 zcmYjKNshuW5VR9CLTm?KkqhL)5g}f{h12BH0&Ecr_jvgAg} oP?v0&CmUlpB*@R3C6NnGh^Ea&x)_-s*_^yxXz=s}80hxh0TXUROaK4? diff --git a/nh_eobs_lister/__openerp__.py b/nh_eobs_lister/__openerp__.py deleted file mode 100644 index fa25d4c9..00000000 --- a/nh_eobs_lister/__openerp__.py +++ /dev/null @@ -1,26 +0,0 @@ -# -*- encoding: utf-8 -*- -{ - 'name': 'Open e-Obs Lister Configuration', - 'version': '0.1', - 'category': 'Clinical', - 'license': 'AGPL-3', - 'summary': '', - 'description': """ """, - 'author': 'Neova Health', - 'website': 'http://www.neovahealth.co.uk/', - 'depends': ['nh_eobs_mobile', 'nh_urinary_analysis', 'nh_neurovascular'], - 'data': ['data/lister_master_data.xml', - 'security/ir.model.access.csv', - 'security/ccot/ir.model.access.csv', - 'views/nh_eobs_lister_view.xml', - 'views/template.xml', - 'views/ccot_kanban.xml', - 'views/menuitem.xml', - 'views/obs_report.xml'], - 'demo': ['lister_user_data.xml'], - 'qweb': ['static/src/xml/nh_eobs_lister.xml'], - 'css': ['static/src/css/nh_eobs_lister.css'], - 'application': True, - 'installable': True, - 'active': False, -} \ No newline at end of file diff --git a/nh_eobs_lister/controllers/__init__.py b/nh_eobs_lister/controllers/__init__.py deleted file mode 100644 index ed51b171..00000000 --- a/nh_eobs_lister/controllers/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -__author__ = 'colinwren' -import main \ No newline at end of file diff --git a/nh_eobs_lister/controllers/__init__.pyc b/nh_eobs_lister/controllers/__init__.pyc deleted file mode 100644 index 1c09b17ab0c7e0245aa3643a8d8300fb2360f438..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 208 zcmYL?K?=e^3`J*J5iPj&4BhDLi-;$1$&Bz@l z0G>(h8y`z?^#@f_4GwH#XV4;U8f!6yj+u_CwIp6hY N$Kdu_GEKkd`UCpXGeZCX diff --git a/nh_eobs_lister/controllers/main.py b/nh_eobs_lister/controllers/main.py deleted file mode 100644 index 9dbae4ca..00000000 --- a/nh_eobs_lister/controllers/main.py +++ /dev/null @@ -1,17 +0,0 @@ -__author__ = 'colinwren' -import openerp, re, json, jinja2, bisect, time -from openerp.addons.nh_eobs_mobile.controllers import urls -from openerp import http -from openerp.modules.module import get_module_path -from datetime import datetime -from openerp.http import request -from werkzeug import utils, exceptions -from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT as DTF - -URL_PREFIX = '/mobile/' - -class ListerFrontend(openerp.addons.nh_eobs_mobile.controllers.main.MobileFrontend): - - @http.route(URL_PREFIX + 'src/html/pupil_size_chart.html', type="http", auth="none") - def pupil_size_chart(self, *args, **kw): - return request.render('nh_eobs_lister.pupil_size_reference', qcontext={}) \ No newline at end of file diff --git a/nh_eobs_lister/controllers/main.pyc b/nh_eobs_lister/controllers/main.pyc deleted file mode 100644 index c897c775f500abc3d7367e2c98bcc2ca4a29f253..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1488 zcmb_b&2rO75N^poaS|t(zwo!Um%W$+7R6ytTU#3{c0pAF)WmEpb5SW$Czcp##LTz? zT;V}@0-l9;;Q^p~CMMo9NTpVH&)?Tyf7AK8v-RcE=T|vgJRSP~L!bRhrT~y+BPe1} z5lC`^AA^ineg|Y{<#$1LSAGvP~C2mOs-YgoEvP)Z}dDHM?BCavoy+HMhoZK z5M80MGjwUKi>1P}&DEdSsTaRMu^ghi`LiU8$Rk zbAG4X!F0C&@^GFWPsP7eksj>Nr}L*r({%P+9PQ67pOMu1q*R!=T?!6M>(I=MZX7nn zkN);)=rMivAsM9pMu0I?9YAUvz^%~Wf;!rT4^dq7JU`U?9*E;HueOZFnmk#!S|#nW zEmdmE_n793%(w|>Jx%Uii^3Pjq-9ID@aaZ3m@}8GG#+_QpS@1T0aPo6mDH3dIv(?+ zXZ8=W%_2p8VpHYonyj5`@D!;{IXWicP0kg+4ZI5G)iG+CP@wVqc^DSesdqASW*x(P zeLf}&-q=6MOLXg!W|8PZ>jzm;P&+7GN0IPZMk|HJCUsUellGk((b6?^o)wmc|+~R^4KQru9r2^vqS3s%LJivZ=C1-aRQT=FShZ+TH!jrISG6WJO^R>tu~W z!LkVD@2#y1_sLGeU$7(u3&#!DCh;{4-5yZ(9L?+ZxI7aKPcVMRMP3v!aat=Yc%tLo z4(2n#2l@&EN`Hm^kJN3`lr^-zNN&2Hd*rX)>biMae_fZnT>c96|IH-X8)W*?lW6qg K-HS$XKmHEtU{bmO diff --git a/nh_eobs_lister/data/lister_master_data.xml b/nh_eobs_lister/data/lister_master_data.xml deleted file mode 100644 index fb023efa..00000000 --- a/nh_eobs_lister/data/lister_master_data.xml +++ /dev/null @@ -1,478 +0,0 @@ - - - - renal - ['nh.clinical.location'] - - - - Lister Hospital - - - Lister Hospital - generalenquiries.enh-tr@nhs.net - http://www.enherts-tr.nhs.uk/ - - iVBORw0KGgoAAAANSUhEUgAAAWwAAAAxCAYAAAD++JMkAAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gYKCiQXe7EjjAAAIABJREFUeNrtnXmcXFWZ97/n3lq6qrvTTSedhUAWkgCpQBAaNYhoGAENsgiajIw44zLiguCgiAg6XZmRQdwHlHfk1VEGHJ0OOqMBAgzzElAEmTQo0BWB7AnZKkt1V6eqa7n3vH/c51afvrnV3WGJ8LGez+d+qrvq3nPP8pxn+T3POQca1KAGNahBrwtSABqtFEo3uqNBDWrQa43SpK3Sbec4jzy9i9ZkhJK2AIgrt/b3eP43vwdCfxsv1Sv7pVC1XAIgEovX/X1J13Su++s3q4gntRvCukENatBrVmC7H9j9Vp7ZtI+mRJKo8r63bZdi2aFUqlDVEFFQFUkWURC1LJqammrluLqK5Yk8yk6FA0OV2m8RKbM5EcNSEfKFwkFlJuyR5dm2i+N4QjtfrlKtlGv3++U1JW1sbRONWAw53vuGCk7tnqhlEYt7daq6g7gVh4rr1n5vTSbJFwqkZhzh1bPBDg1qUINeD9SciNGSHP6/ULQ45+QpzJvaQsX2JKRbcTwL2LJ4YecgD/+xn4Rd9n5zIlg2FJ0Yx7Y3cfYbplGxFW7FIW5ZlFyXR57exda9BS458xgmdSRxKw5W1CbqaHb0F3nwqZ2191u2hetAxYXzF05j3tQWz3J3XayojVtxuP+JLfQPaUrEiDoWzXaVNy46igUzWpnckWRaxwQScU2x5NV/YKhINldhx548T63by/pdg1R0kng01hDYDWpQg15f5DqMsJiXvX02F7z1GKAauDPCmud28MSND1OqQDzqCdYmp0rZKfG2hcfS/dE3m8ADO/cN8Zu+ncRjFl/9yMm0t7dJuZ6YfOjJzaxas52obWHZXl0sG3BcPrpkLmeeMnNEDXK5fh55ehfbBvppsl2WvPlI/vbdxzHv6Em0JaNjtnXz7n4+8c1f89vMbqNVDWpQgxr0OqOK4zKtLcq8o9tGijINKE94zzt6EnOmtNC7fj/xaJR4FCiDdizmHNl6UJnbsnnWbT/ASbPbaZswofa9ozW2Ujz5wn4qVZd4zKopjlLZ+3/WlOH7vTrAUxtybNo9RJMd5e8/sJCPnJtCKderqwatNUo7aGWjlMLBw14sNEpZFIpVdu87QNQaxsqtxtA3qEENet0J7KrL5I5mprY1e0KVKtr1BJ7WFlq7TGiK8LYTJh9kmSdiNsdMa609h+NZ0X9Yt5f+QplFx3aiLOUJXnlOu5oXXszhKKdWlmV79ZgzpYXOzlagiqM1Wnv1eHZznv0HCnxiyVw++u4TUMrF0TZau6Dw3mFHvE8FtlLYSqGUJ5Z/++wOtg0MYUXtUIGt5ML4RKNHfGf8f1go8H71Wmckv74vp9/Me+VvVa/8kHtflb5Pk7bq8AUvd1yCbRxPvwTr82qT/z75DPvtsM6NsPEfJ6ngMxodbJcaDw/+CWTAMIDhao49qoMJrR60YAsXalzPitUKZSlOmjuVRMym4npCewiLSc02Uye21J5zbM+KfnrDABEFxx3T7r8XbVnYymF/bj+ZLftrghpAlas4RDj2qA5aYp6iQDmeAAb6Nu7h+GnNfPjdKaCKdm0sPQzBrHluBz+851luvOMJbrzjCb75H7/nV7/ZwMYX9zNYrvLQ73eBjqNsd6TA1milPXNc+51jDqD8rSX977AMmNTJTzdU4mi8FkkF6xus96H0W5q0pbwiVZ3+IPAe65UQmqMJaz2y6xVQa5/PGy9VSPttGnYkx0fddOtXmCdUmrTlXwFFq7rp1mnStblhCDGVJu16HXNYsq2U8IjWaLWc5Wo895tj6T9rtlP6syaoDP7178cYL304hXa9fj1+egLbHrY+lVKgFVpbNaF5ynEdHD0x6RnRhmV+zJHtNSFqA8WKw/Pb9tHe2sS8udO88lwHr5kRNmRL7MyVaIrEa9i1Y0fQboWFx0wAIjXLGKC/UOHZjTneOH8KUztaar2vtINSFj+854+89x8e5rrbn+Xbv3yO79y9lq/94g987OYneF/6AT7x9YdZu2kPTVGw9XAbD0rr8/9Ok9bG/+bfqMNk2CiUlgnkvlZzxdOkVTfdZh+a9awJ6zTpcdXfn/y+sBABXetzYzLVIDZfMbyS4xLgCURY6YDQRaHcl6JQ6/CSPoQ6vdKKXAvP274jbAglbSgVf5xGKFlz3F5tWyZkbo7WD7qb7tr4+f3tP2sozBq/GWNSm39+3y9nuSXl/EkMKcuGUsWDNY6f1VHjGq1tXKWxLYV2wVFVLNdmakcLJ8xu54VdO/ET8k6eO5F41AaquMob8Gw2z4atOWZObmZ6swhe2+shUGzPFikUoSlGLeBYIsaEBDV4Rbsa2/Ks5+3ZAXbmhrhoevuwqNUabAlg/n4XuUKVKW0RVFnh2MM52HsKmtVPZ2m2q8RjEYolfRAkMhM4Ua75xt9h/x9HKhU7DMLaMgWYL7xfgwJbB6wcDSSkr+aeyqkRjfbboUex0ufKMxOMyeNbNvge0GQmN/vjIGWreq7uK2zV+QJpgrx/5ngF7RgW/GS/vFHH1+O5YB+9Gt6SE+DDEd5mkuQ04P3AFcCHgelifR8u3vT7f7oBE+rR+tkUzlLPuTKvE4ZhYY6lNiAgDe3txhhpw7v40xhQ2h0Ba/g0VCmydvNelOWAYZW+8bhJ2FSxbA9KqQUcdQRbeRb0pl0D7MyXmdE5gSOao4J7V1HKRWvN42t3sf9AgXwJBgtVCqUqA7kcbU1qZMBR6IWt/WQHqySjPq6uPchGe9Por/5iHnMnRckNVjjgRCgRqymkqAXJhGfBuw5ELHWQwP4h8LRcGePvsP/vIZOZdhiGxZ84CZkgpx9GK+ZQhbYbEJZzpa/+9XmebxvThUylosDP5JmfkErFzGcUqqYUsmRPAn4N3NNL72RRZOpVcslPtLAuk/r5dI7U8+uGolKHLhlrdf2oX1461VM/aymT6TT66JxXydPz69RhYV2mUDNEePl8d2KBwq+BnwI3A/8KnKxQupvuwwUTnCt98EXfah7tvSZ0JbwyCbgPeAxY4P9ueogi2H0DQ0Purf4YAU2mIfGnoBqsMbXFgzUkyLcnV+GOB56nLMJaaU+EvOWEaUxri1J0YiMCjuaIP/nCfqoaFsxoJR6Pe+VantVbqVQ4emITF502k4sWTeWCRUdxwaKjOH/RTN73ttl0HOEpDg+GiQARNmcLVCtlcgcqNcU/zK9Vzj1tBnelz+HyJcdyzLQ45VKZQqk6AiMP/l2DRADfYl4PbBqlr2LAziTJcoHC4RqfrwOXAx8EHn0NymsdxJaN35J58q6BA44Gi/i+03lkMp8DbjQnUUBZtQF7TIUhrutLsnbrCWvgP13cHJnMD0PqnkiTVj6O6rvpL4MSZDJjCbz2OgL2laQ4cLuLe4YINdP6/iwwR+bJCrG4ewsUDudqYX/ONo8HOzfGxwVopdXNkw9VVAZMFYwtNBnGE4cTFg2Sn6Fx7FEdxONxKk6JqMAMG7bleOTpXby4Pcfs6UfU4Id5R7Yxf9Yktj61nWOntTJ/1kQR9CLYlcMLL+aIRGMsmD1JjHgbR5oYsV0+efGJfLLW9VVGZkR7GSrKcoAIjuOwbpsXwHzk2d18Kl+krTUKDigrgoOLrWH29Fa6P/pmPr5vkNV/eJHb73uB3vX7mZCon6MddON+2Enne4CLof193qd5tV8A/O01XLMr4Naqsdzf8WQCmIEo4+tFvscT5lIHPg/6e7T3jOGqh9V/NCtGh0ycwniCJyH0BeBUQ1gH391fB7IYT/njhU6miHDaAThhdU+T1mK1uWHvGO09L9EazdXjqzHKq5dRoeoI7DPk72KIEgO4Fvgi8MUChR3jzXIZb2bLGOVVD5U/QzzAsd5fCzR6z7U/CLwVuCpNujSWshyrPofswaY9OeUoT1pbKiKBPohY0RrMsGFHnj9uyfHMxv0jNVw0wslzJ3JgqEJrMsKk1iYJTHoZHf35Cpkt+5magCM7E8PWqXKwtI1lefePtNJcbyg0td98yz7bX+SZrTni8Sh/2JjjOz1PU3UingJRYLm2B4+4Ho4+taOF9595HD/70ju46sLjqDguJWI169pfTh8msAezZAeBAcjlvE/z8r6TiLIZLdYAnXS2AJNbaZ3k44ymS3+wG9XebtxfT/DlwpjZjGL77p4xKUyGSrTSOsmsUyBY4zOWHXANOwRfTSiUGWSxQ5gxkSQ5TdofOqkOQUj1iwX9VbFoDt3dTqVitTYfHG/QRsZKrf3+2Bn3mcLKricIxGqbJM/GjXeMGgR9iRZp+9jleTxl8p+f4WDyRyC7pVb3Tjpdw3uxA7CVT5vCFLZhhdZ4OqhURfmqQJ92yIXwoMG/tfYk6vCWHygMm4MYwcK6gzE89u3tAW9QnsvlxLtdJ2Ougtk0wATznebYy32TgckBfrRfCqRm224N1lDKksUosG3nAYqOy1PPZWswid+Lb3/DFCLKs8wjUUZkdGzfV2BnrkTnxBaO6vTKdZWHcSvX8XKmlRXodAuIoHGpSPVtUSj78yW27R4gEbNJxiPc+sAf+fQ/r2bt5r0GdFL1Fs1oy8sh1y5trQmuufSNfPCcuZSKB2reRNmpHORe+dQSsJJqAx5wkUwoQIs1+N4s2TcC7eJy5YD/FXzcH2h/kpwIfBxyCwU2AHgG+AnwoGHNfNmwNK8E3q1QPzCgEb2c5SMi9N10+8J1LrAUeEue/DRD+P8R+DGwxmjLqcA1QA/we+DvDMt+h4W10sW9Q6x8Z5gZ29sh90HgwgKF9gKFHPBLw5VOHqKQ6geuAq4H3iH1uHGs59KkfUjCw/szmYvzME2wX7P+RZkkjkIdB1xrYT3m4vZlyV6L98zjUuxC+ZwvmO1TokRMgX4ccEWefK2vgF8A/yYxiPEEw0xFo8lkxm1hB/jxdOASn6dM/lOodf79nXQ2A9enSbcC3zHGegOwPkt2DjBJlOY3gM3Ai2QyJwtPIf2wFbhfcHUkCPjXMm7tBk//HLjbNxCEV88CLgP+GTga+JSUsaqLrm/00lvBC+p+AnKnS3t2ALeP0oczgU8E5uAGoIdU6lfpTLoCkCdvSp64hXVZluwyTxnmCjK3/kWhNvtelDE/ngK+BZTSpN8CfEbGGuDv8uTbgf+G9psglyOVipHJXJwmfTFwTIAfbwdK4wledndjXXqDl95WceHoiUmBNbz8aQuLqlvihZ2DRBQ8/nyWXH+JI9qbZNVjhKM6WzlxVgdzj5pgCHLP4n1haz+7+qu8aV4rU9qbxZL1/AvXhqee28H27Ehnq1CpMKEpwZlv6CTRlMAxWHnj9gMMFqok497eJa2xOL96fBv/u3YXb114NO85fTpvOqGT5lhMNIONqxxsx8W24WPnHsfq3u1s3VsgijUi6BgU2INBSyxM2ARSg84D7hQG7wfWiSXUJcx7NvBeYLMw66nC5D4WmJP7PwRcZGFd4+LeJhbSOVKuL0AWAvf4WlssFtfU0IYC8d/h1wmpzzuAS2XSrJHvp4pwnwocadRtEtDl4p4n7/60/55WWiflyf1I2g/QC8ySYFRvEBIZZ1piG/Bb4AYJaH3BmwCsGY2x06Rdrz75W6UdfjwCo/7nS4DP35hgGvAhF/dE6f85hhWbM4STL8B8xeC/9hQZiznmu6Q/jhXI4FAs7CKZTLne/a20luphrzKe3w3w4Kky1kslaL1GgrZJ4cku4Hi5x6/7r2WcfZ47QxTWWvm7zVDwpwLPG8bFj6QMnxd8nv6QCPgvGumZ86VeiUC59NJ7o/x+R6C8M6Rve0P6cKYohq7AHFwKLCWT+apGX6dQQQz7n11c/5k98vwZw8qPF+W+WVJWhyg5gNnGd6eabegkesMMuqK9md5vSfwJo97nCT+e1UnnR8SjHwMe8qa3QwSnArOmtjK5LVIbfaUstu8dYtPOPE2JJC9sH2T9rv2c2j7Ngz5Ulc6OJt62cApzpk6oWca+1dy3cQ/VSpmT505EWQqtXbRbxrKbcLTiO3dluO+JrSN26hsaGuKNx0/i7V1/AZJCqEQBrN2y7yDMPRmPsOeAw08fXs9/PbaJ1NETuOI9Czn3tBnYVL0VkAoUDjMnN0sq4hDxmJfZUg8SOU46/yy5Fst1lnFNNybKTENYfw+Y0UXXaaRSKeBMmchdwAWmwpRJ/lVgAfBm+bwOaHNxv4aXPvQYtM+SSYQIyynAShHW2sfKAilJCeBf5B0rgAVSp7cAb5Ty2mQiBcnHLs+WSTjDsCov9a39dBorT/5zMoHWA2dK+SeKJ9D1MiCAVrFa7g5CI/Ue6KIrmieflgm0HjibVCol43C2fHcecFMXXb5rX5GJ6tf1g/L8tdKWS+X7/2mldS7wNwGseo4I9jfKe04x+uqThsAfFVc26BjgCgvrMryUudplYV2WJ/+xOmWeagjrKzvpPMrjqfZZwpNzhB86DEihYCjwrwJnW1gfBy5Jkpwv/dUPnEUqleqk8xJRQr7QeV8nnUeRSn1T4ARfWN8NpEil3iJ98hEp51rJOgmO4XmSfXG23Pv3As18Tcr7H+D4LrpOk/75XhhveZY4XZ7n2D7LmIMf9DF3heoKMQ7m1vpsJK+cYWG9O+Q9RcANQDPvEAVxvgj5a7NkB3vpvVqEtc+Pb5F2+HNwaZbs9WNBhQqlz5S/owq0W2HBjFYswYN9yu4vsDs/RFMUBooVHv79LhHm3t4dNhHO7jqS+TN8yEP2xK449G3JE1Ewb/oEIzvDUwj79h/wFrA0NdEU8+AYOwIVy8PFm2NJbyGEklx2V/PUur04ysGyGXFFbcsLKCqL3vX7ueqWR7j3sS3SUAdX4WHdRJjUkUS7HhQSs6MHWdi+ZXO5oRHr0ZXALfL3UTJYOWj/EuQGeun1EgFhtbh8N4vVirhI8+XZ+8UlAnDEFZwO5IGiCIecUbch437LsFa0Ad9gTMxe4PPAi0ad1shkOEOsqzBI4v2G5V0E0oZFNhdYk04zzbBkPwGsNlz5W6S9176MLAVHFNgZJjQSvDFJ0i1QoJfe4w0B+7eB+jwI/I1Ywxf10vs9o30YQbS7av95z/qWT3GAgb0hwqZfBMJaub8sdVwqQvJ4w7MJN56CesfzBg7ODDj4O9MzvNxQbLdkyfroSY5U6rNkMr4VfaEIVpN+7HsC/juaaW4xMqDyZDLlLJTTpAuGd1HMkh0kkyULy6Tu65MkLytQ2GH0/Y8EZrzZxb0M2nsEDw724Wbju7NEkPcLb63r9fTEPjFaZhpenU8n+MoVcjmD3+8UyGV6EE4SuqnWZ5mszys/BP7JxV1o3Dc0SvCzX6CRR0d6n/kvGG14kEzG13ZrZMx+LYr9xwr13KhZLsuV+0LE250vYinJ5IigtYslBvi67QOUyi5R28Kxozz45DY++575qHjcCxBqxeknTKsJVd9U3Z8vsiU7QGd7sraRlFIu2rVRFqzdtJc9Be0nnNR26muOwsK5ImocVUPjBwaH2JIdAB2v1cdTANQ+4zbEo1F29lf5w7qdYmV7y+o1JaAJt+IQsZS3fWtN7A1b2DFDyK0Y5bpb3EPfQlqDlxd6sc+IEmCIi7V+nGE1ks4sqwJPync/kMlyIhAX3O7T8t3uMTBbNzDphwOVqVS2ldZ3QftZxkSwJdgx3Yj0F0OKXpcm/WTgu5JggWZa03wRSr1ddD0ckn3x85eRneHTM4LhB7NGqGNltskkWB0SqX/U9ywsrFMCz64XrDdo6fhCMWEsfzdpjcELPg0YAbmWcWRMmNQrSqre9VUjO8YXFhMMr+huGeN47cpkHLFSAd4miI8p/e8P9lWWSmgu+EpW2nWa4kMqKwoUdoS071fDnkzuDYFnfx0Q1ogFCvAAsC4YHJY4T5Cerb3Wmz+nGgHwG2VerQvBsB8LCYj7Gz43j5NP1/lz2i9DYhptwLpWWn9fG5dUKibXc+JZtBntDaXlaVXjyQMVaElGhgWr63oQMPDi7iLFsoc/NMVg/a5B/rhzsHYfQCwWIxr1LHN/MLdl82zeXWTGtAkcc2R7LePEL3fDjjyVStXb6c+fyOUqLckIc4+cIH1n42gNVHlhe47te0sc1aaYOTlBxXEplKoMFqoMlaFQhP5iiV39VaYmYNGCKcNZJ1ph2RGqDmzZPZxgph2rLoZ9O3CLEUnXglsq+Tu430BJhOt8seJOSZM+WjCvOXUE7T+K+zwH+Ce5egWrvb+LrkdFeHOIGKgS67Cc9/C4uRbWMrEUZoplP+dQ0sZGoaP9IFsvvdUQzH+DTNJkvZjAOOlWwfHPA75FKnVWnaDcVPl8OpBpgIF9bxZLcnZI8kU/5IJ9WjXGTZtLsX2F93KWZMvqQPOrDSKUdR0Me1Ke/NkBSGCyj68Dt9fpm0nGmNmdRKvZ4d/2mFkRIc9ah8ALz5tCyzAgdpDJrJN6BzNHNoeUNz0Qg/BjB34/bw155l8Edz7Dn1NZsuvxFsjcJ0qrKP3oY9j9ZszqZeSRF0KMH5/H5ubJP14bl5HjMyfQf+GKPY27WBOZfgNQLXPU5I7aDn1YEUBTKpV4at1elO3Wlo0Xit5ud/NnTsSlisIGDao2pJ7oW7d9gD0DQyyZmiQe1V6Kno6g3CGwIzy9YQBH7vWt5CE3wsz2OPOOnoTWLrYF2i2D3cS67QPs2F9g2YXz+cL738Cjz2b5w7qd9G3Js3fA66aJEzqZMTnJxW+bxanHTfMsfkVtmfwL2/aydtMeT7nAqEHHloAFW9tTpJtuPxNhOK3Ogzg+JxZgm8Fom8QinxqCFT8jVslfAW8RJuuS69peen8MfE5cwEMhc1+EDwPfdnHNOm0X5vXd6MQYLl9dsrCi4kIXjQwNc0+Jqi8MWmm18uQPnsjjIxMaOYNM5uO+BT1WXxgWma6593WVVK70Umaq3+6Xss9LyP0JUqlovcCjgxO2miBhBBo31fGafPqtKB4rgMmG4emHQjEjJuBZhV4KnQboyiR078H8UwqDfkK8FfxFL0YfD4QEsje30npxnvwlouB948SHOO8WaOLFgIX9SlB5lDHdE+KF+eR//8JYnlg6s9T6ADuoajh2apKkLB3XWmNbDrn8IJt25okyvDFTRcP/PreHD52rse2IvyXI8ARxNcpSPLfBs9FOmtUm8BvYqoplRxgsw/Pb9o0IHgIMVWBG5wRakgqFl5aHrIr0y1s4t4O21gTnnjaDc0+bgaM1g8UqMVUlFouN2LTK1S5a20RsL/h4xwPPs6O/QjQaqbvSkTou/Ihdu5BFHJI6B5nMMtHo/SJY7haG2i+flwYEtmnt3dhJZ0uWrA9TvNuIqj9p4OTjk9bDFtLpkmGBWGw/B7JiReYEI7x8FAYZc/K6uL4y6TCUmzKsxiaxpnLmSsdxNqUU6CsfGrkZ+Iw52QsU/Mk3aFicB/WLvHuqKQjGMeZBOMCtY4E6L9E6OzjrZZSVjkZbg0LNh0muECs3ZtTV6qKr2kuvBVRlrMJ4Xhur+w5VoPkQwhEyziPa1ktvguH88SHhn3idMTIV63TDEzE9phHrG/xn8+T3yJy5TazW44F3yRw8z4cb66x05BVQWGEKaW0nnZdkU53lEWObSmljzB1GyYDq1mkrnVla+3/e9HbZuAkqynv5xr1ldueHsCPGUm5V4tmNObbIqkelAunrysJxXB5/PkvCtmQjKc9idwCbCNnsfnbvO0BTxB3hbPmBT1sEvyUAi+M6vLBzkOmTkrz52Mk1c0nLAQjeKTOesqk6ELGhWqkSiYpDqyPc+l/P8pOHNhKNRohHRyqKsVw+cwGL/7c2du5SBn53p2Blz4gw9oXCokCQbKrc911ggqT0PCcBrw8bWQanHPrsry1u8QMyKwTPW+PVqRbsmR/yeNMhvu45ERSnGi6suVzXTw0rhCiU8QQdRz6TSn1flOEcF/eaUayVUwzsUhvCN2FgvQdZNJ102j7MFZYZ0EtvNaT+xVdgOfqh0siFM6nUDsFQ24CTxCMpitIrSd3/EvgmcFEIhm32s/BPu2tAF5Vx1MmHLvz+1T6UKP+fKOX1+31vYZVG8Tb6anNneE8Z01MaMTdkM7AvSoBzprR7nfDLp404yOmv0piUQwwaPw40P0t2onhN/piUdKavQiaznEzmW0CKUTKglKLKggVlgLZkjFPmHTGsKWTjpu3ZIoOFKlGRZq7j5T5v3VswVj1GRlxKWQzkK+zed4CZkxO1vG5bKWzR6XsHhxg8UMHX4bV9sG2Xk+ZO9cqxVO3K9hdZu2kPb5rXydGTvQMNagcVKBNprBKxPQUSiUZwnSq9Wwtc94PH+MaKp0FZRC0PKx8t2m7SQQGWLrqs8znfWclKOwRjDgtQLGY4c8GkT8oE6+XgqP3UgNViuq2tY1nYIXtdBDHWEyWiHWoZHAKtk6DQUuArXXRdNtwn7e2Qu3YcEMBYcINaznKvaR7DXy1Cwcf+9vhZItC+BnK9QJekSn0x8M6/Zzhf+rHgu7JknZA6+rwxDbAUygnCES9HYJtQ0ksmr1/8/OOv4C3sMDMO5jOc8ic5xTlrtLERjHuP9FdNQfSmiorwNT0/F54+By/D6GfDPFfjhTYxINaNg38fwE+H9SCwW4z6zTX41xy790of7OTg/PcWc075Hl+Yd/oycGxz33ffK/y18Gta4JjSsHCxP8ZwFtWPx4F1Ri69AaLRCBt25OHJzRRLikTcq+69T2wZVhaOgTWXK9z7xBZak+Hx4g078uw54HD0xCRPZHbTmtw74vdHntpJwU4SN3SS7VRpjcXZsW+Ah57cfFB5gwcqrN20h0/f8htOmtXGzGkTmX1kM8lEhAmxOJatKVYcisUKeweHWLd9gMee3ctvnt7K1v3lEfuIOHaktsNgPYH9BWBJIFiGuHb0DufsX4uXAvSIAWPsxIu6txiumE8zASVR9JsERvm2MNlqsXDfIeWsB/49gIOBt/pvibh8D2LsseHvaSH33S/1Oy9N+ocyoYak/E+OMPg9y7MY5t6F4bImdo2XHngcm38iAAAPuElEQVQO8KFeeifhRe8TkLvcCIwlfQy7HtwwBj5swlHPyaKi7x8ME+RyMjHulLafAPyH3HaBKJZ++e1F4zVtAavVrGOupqvhIeBRUqnuQODIIrAdqdGHkTHa93J2XowYwcj/mye/RITDPXhpac+Icv6otPF/Oum8JUvWjyn4/B0NtnsGM0pZsn7bfyaC51tkMs8a7zfx9DUGT/8Ub8+N1RZWh0vuUqnXerz1B04YJBKg3TKWdwgM5i9QmiftCQbOi+KZrpDxnSpzoCpG0+Uy9rcF+q7N9OZC+LI5xANNGF65uXGcDoH1vij1/hAwx8K6U6DExS6uD0lex8EppsGgo7V8OS4RDzv+h588HaIuLOx4koorgtVxQVk0ReKsWrOdh9ZsYygIJigLpwoq1sTWfUN89vtPUHFco8EuQ1hYygLLO0MyikXJ9lgntB4AKsLQAYef/nobv/jtVhIxm0nNNokmT1hHYnGq5RIHDpTJVzS5wQpuxSEWj5CIR706KAu0fLrDJ8GbkEjZwALNIOBc43Ou8b3vMv4bw+lW18rEXinC+v8A75Pf5rfSOlGeudGAPi4XRrtDBrYXL4/4GaMLbheGnyOC5x2+hSb4nrmPgxIFcKU88yGpz3+LsH5AsHJ/JdoC4z39QH8XXVYIAx8A+l3cSmCivkfKOk8m679Kuf77c4YCGEsI5aQOJQNLVxpNOu0JbVlevkLuC2a03C397tfnDrmWGv16V+CZYDm1TJZOOv0l/P3CE0vJZNpF+fX7ii4kPa9fruo4Yw4Y5Vnj7KNa2YLdXiJ1nSSCc6V8TgJ+nCT5QX9FnViYfjkVf2z8doun9B35fY7w0EnCYwXzOYb3J7nJGPPLgRWiWBfKuFwErPXbLJBIv98P5ikucs+deAtpfB5eIe3JiZDrF570+/CuAM//VJ7xF658QowcWmn127/e57VA9pK/oOqAMUb+mJuJAFX5zgw6mvzwqDE/zpD+MOt0nciCUeHCdBo3nepRXrCviuNYDFUtHMeiUnWpVF2cKlhu2RNy+mA7IF+ldm/tqshWpvJcoVQdLs+xyBvcW3E9AV9xXCy3jOUMjSjLcaza5b+/PWGRiNk4jsXW/WWe35Hnj9sGeXbDXv64bZCt+8vkBivE7CjNLU1eRohfd/NT+wt8yiOi4ycCE8eJ2UVbaX02T34vI/fiOFGs6/0ySGsFkjhFvn9SAiracFdPAjolSLGhk87Hs2QHQ06ZmYmXrxkBntLo580tIwNRfr/84+SZIyQo94yhzf32ZsSi6ZDJtRcvpzW4Fep8waqfBnb7Ky0BLYHTxXipTINika0TzLBEKvW0zvRVzFM86riUXUY/DZjC0Ng+1ZXA4kKZdM/g7etgBQ4YeBvDqVUbxRMaGBncaW+XvOBBGS8dcsSZv3PdVGAnqdQjZDItYvXtSpPuC7GUa32r0dl6HoXRhzPEetwl4+GMgu2fCLQY/BfsT5MPR4y530dddEVlodFE4Mk06UHfowmkz50oCr0qMNJ2GaO4lDtg8oHhSZ5m8HRfmvRjAT7Vwkvz8TJb1hM4+cUob7r0f6cEzu+DXF6+2xGAfzDmyTR5/3bgCYNnXcnsWui3Q6PzpoGSJDmtQGGBeGJrNVpNYMLEPPk3+GMu/TVJ8Oe9Uo4yN2Az2pwATrewjhHPIiv9ubmeJxu0sP/m7cRmL7/pBCrxI7Gbqvy5kTMUIVrazuovrHm5RalD+W0821AGdlMLLSfs0NNxbrN5UHl1ttysbccZtCADZ/lZr1BfHdRPIe+p13c24zig2C8jbAyMndcOddvTEeW9hFNXxhqL8Tw7nnFQ9WIzZjmjHWwbdnBtGE+Oo511y3kpW5KOc8vW0fpIhZ3jeoi8rILvesW2nO3psbUeHV77s6OxGCV4QnbYIaUhe17XtmA0D/wMnj5d74grU0gFtnJUpiANeV7VE2KmYKpThzChifleo9y6QtXY40S9xHEIvsP/zTYVWshByWqMtqjAsypk/MzybLOv/bEcrR/GqzhD2sp49s8OE3Bh/BESQFej9Y9Zj4AQGVFWYGxrn7Jns6onwEfbrz04nwJGS42fQ77HPDjYrJchNOsJblVnP3sVnCPBeT0ab/n1D+EJwubjeAS6Rqt0mtpnkBeDYzKaETTeq561fyj3+wFT80qnsYIKyCwnncby7wk+V3dChFSkXkeHauZRBlyNNQmDAjlQtgrRyKHlhgmXEGYN6/CgNaLCrJE6Ql+F1HO8QvugPgoKv+BJ16aCCk7Q4BiOdthEsL3mc2GKMTh5zd9G6bvQSTSa5T+WRR/GgyH9E+pFhf1mCsgg/4+mqMy+ChHMo1qngXELVYBB5TDK/FFhyjxMEQTnZAivqHoKbZT+rWeQqTADr978DTOy9OKa0LJ9BRkUaiIIVehcCrl3tMu37oPXKPePS1GMw0BW45ijr6xlHhRqh9MbGMWKe6WgnnHX66W4uC+nfa/GmYKH2q7DdK7hq0VqNB5+tdo2FizySr/3lT4R5nDMZ8MqfT3zV4Ma1KAGNahBDWpQgxrUoAY1qEENalCDGtSgBjWoQQ1qUIMa1KAGNahBDfqzJTNtjaU9baRXzfK/p6fHW0+w5N446VWzuuiKak2EGx6fwg2PTzFzwCXlLeHfh7lY6Oq7T+DzK8/hrG/P76IrSk+PrRcT2fgQTf47tCZCetUsrr77BK6++wQu/srMEf+nV81isY6k0wzXt68vRl9fzK9vLeOjp8de7Ke79fXF6OmxNz5Ek//siMUwi3VkcWNhzLipkSLToAb9KamvL8aCBRWtsdVnV15O1b6BJudivn7+Axsfomn2mQzx5ZWnUYjehaq+k2+c9yxX3Xsb0M5pg5ds7FwWnT25z2XBgjJX/PIDqNiX6eBdunvJNrV81VHs17cxpI8jbhWJqlYqegdYH+fmd/bS02PrZUtd1bPCYsECmx9svhNln4XS3oZoWiVQuohWCaruBqYc8W593aK9akWPZtky6Ouz0wtWeEvF02nSaVxkU7Z039LIxt0LrA8vpro602fpyxe46lM9mluXKr6XsVix5UiKyUt55nc/2Pj5a3Kzzzy0Q0T+XKmh2RrUoD+lhb1gRTW9WNtKqSpXASW3CRW5mRsef/vsMxd5R3/3x8popw0V9XbXKzsxInb7xs5l0VnLqeqHFniWV7y5BdeZTLSteOUqbPbr29Cqg8nO++nt20jX/NkM2MsZqv6CGx5/k166aC+LsblVs/gh5a527r+JePkHNJFnwF6OVh20Va9giFaqsb2Lr1u0VymqWi+LKKjqBSlX+acOdXuypLsbS6l0VV+edgF39ZlUQeq3ehkbH6Jp9gKGuHzVyVQHP0bzrFsawrohsBvUoNcLJKL53lKLBYCjW2iN7kKryby4/Qtac41SVGkrxzgQK4/Y/9AiN2sxVXUm1ZqfXDowSLQJvvZQ+ZaJlzVxtj6OpPMt/vF8bw/0e9lJetVl7Oc2HnqsY3mFbBptpRcrl+Ww+uZ3Dp9mdtW9m3A1tWeB1bG7T+Dz+kh1pdvJVdG3K/uemymumodtbVHKezY9eHeKq5tOVy37fkJ62SCfX3kOFhdQtmNUKw/f/vCFP+WGx6ewPXshzbFW4k2f5obHf8D1opwa1BDYDWrQa5W0xl6uVlS70Uq59yeoun24lduxm76vrll5H5z/AAAVJ4Yy9q5yaVefv/t4rjYKK7uzanDGV88a5DH1O1Ssm6sfHIKhR+G6jaSXbMLbx91OX9ajWJqx0n09Wt+6TJGGdKpHsWyZI5BIh5Qsuww2nc5Q+ZuoyDYcBmnRrZS5Hkr/CbJZfsk5iahzI4NfuZPLV13EgPsd7NLPsaI5Yk23pIsrTyPKPxKzk1ScGE51IpX9iQYnjI+sRhc0qEF/OjoTIJ32Du61ykW06mBd9C4i3EspcjPpnhaKKk/UHj72JGaXKbp/gY7cP+KKxD8HwDVnxvTSZYpJHVegnbtwnRspWY9TvulhPvWLb0lg0xPKCxY4+tZlSn2qR6/uxkovywxvdar0PjD2ci8dGKTkNtFW/TA3LzmVn3/BE9KJtpGxMKWL+ht/KBDTS4hbRW69+HN8911fwi6/n6LewfWLdlFWP0WpbUyu/r0okQY1BHaDGvTaptUrenR3NyOPsnvzYJQ2dQ0lN0Fp+vKDHio7MRLW/6OiLhhxVUvfHHHf9Yt28e1zL2OCewqu+iCuuo9E8i/Zx32kV83a2LksSl+fPaIudNc/aSPe3EJrZBdrbO/MRu8AXSj2H/SMWrIqRsS5i4g1mStXrZVAKdx8wQ2e5CnLqT+tkxpc0BDYDWrQ6wMSWbbUVSt6PIHnxoahgfSSTcSq1zHY/3HK7oU1qGN45ua4+Z29Iy4nmkGrBIA6+9vzuGrlZ2plfW/Jf/Ldd32JVn06JTfBvsoHZi0WVHy1dtLLMpply1wWq4P2DF/O8mELuqLzrDrX+zuVsk0LW2siuDHv4Om3drTz9fMfEGVxF446hSH7F1y+8scsuTdeu89zMBpyqCGwG9Sg14PENgSkVR4plD8xdwUR7kVHvugLYpP8PbhrW3z6VmtlywFOm9vOAfVNrvjlB0Y8FD3Ce4etBpWiSl+f45/4ojW2+lTPCGtZayLpvqXhsa6Z31AMH/IrcE11BlolqGw5wBW//ABZTua77/oSNy85FVd9EMt+H6c6wye/9+X3SzpggxoCu0ENem3T8uW46cwyLdZpAmihTw5dWLCgTJu6hrLey2BlArGKd/J4zE7i1g5P1suXi8CLN7dQcWJEZzRzYvEJIuWbIfp9rrr3Nq5a+Rmu/NX17Np/D3Ery6TOn9UEv3+k15mQzizzBXZ7LejY1+doTQSn2ERUtZLu8RbwrDq3jFN9nGrxk1y+6iJ15S//EifySYAr3rSsQrJ9NhVnBVc/+HG+vPI0YnoJSm2jqXMDyeoBtD6KY6ZcwdKetgYnNAR2gxr0mqd0qkf5hyyjSmupFu9lAU5tlWB6ySYi1t/RbP2CFnvQe8p5FF19uHs13sb+S/siSlFFFTfiOncB6KXLFIurnyfiXI+jTvEEafQibP0kHbxPX7dor6xypJtuTU+PvXx12l3d7csE51Fcdd9ylXYXL13m1S/CWlz3Hn7XUhEloemMpBmq/Dc21xOJXkgs+m2i5X+/5Uc9Tdz09hs5ojVNufIx+iO3AO1gfYDrF+1iU/F3uM5dFAuXMq1tboMTGtSgBr32BXYai76+WO3oqL6+mNYjlo0PQyaBU0/8Zd/4J9PIEm+9mMhi41gpb9l5TwtL7o3X/pdTinxYpba03HgHfX2x2hJ0/xi0vr6YLCW3jVNg4OqFzSOglMVE9GJJG06lYqR7Wox3Dx+gkO5p8Ze3N2hs+v+onF+niEfS+AAAAABJRU5ErkJggg== - - - - - - Lister POS Location - LH - pos - hospital - - - - - Lister Hospital - - - - - Admission Location - ADML-LH - structural - room - - - - Discharge Location - DISL-LH - structural - room - - - - - - Lister Hospital - - - - - - - - - 6B North - 06BN - - poc - - ward - - - - 6B South - 06BS - - poc - - ward - - - - - - - - Bed 01 - 6BN01 - - poc - - bed - - - - Bed 02 - 6BN02 - - poc - - bed - - - - Bed 03 - 6BN03 - - poc - - bed - - - - Bed 04 - 6BN04 - - poc - - bed - - - - Bed 05 - 6BN05 - - poc - - bed - - - - Bed 06 - 6BN06 - - poc - - bed - - - - Bed 07 - 6BN07 - - poc - - bed - - - - Bed 08 - 6BN08 - - poc - - bed - - - - Bed 09 - 6BN09 - - poc - - bed - - - - Bed 10 - 6BN10 - - poc - - bed - - - - Bed 11 - 6BN11 - - poc - - bed - - - - Bed 12 - 6BN12 - - poc - - bed - - - - Bed 13 - 6BN13 - - poc - - bed - - - - Bed 14 - 6BN14 - - poc - - bed - - - - Bed 15 - 6BN15 - - poc - - bed - - - - Swap Location - 6BNS - - poc - - bed - - - - - - Bed 16 - 6BS16 - - poc - - bed - - - - Bed 17 - 6BS17 - - poc - - bed - - - - Bed 18 - 6BS18 - - poc - - bed - - - - Bed 19 - 6BS19 - - poc - - bed - - - - Bed 20 - 6BS20 - - poc - - bed - - - - Bed 21 - 6BS21 - - poc - - bed - - - - Bed 22 - 6BS22 - - poc - - bed - - - - Bed 23 - 6BS23 - - poc - - bed - - - - Bed 24 - 6BS24 - - poc - - bed - - - - Bed 25 - 6BS25 - - poc - - bed - - - - Bed 26 - 6BS26 - - poc - - bed - - - - Day Case 1 - 6BSDC01 - - poc - - bed - - - - Day Case 2 - 6BSDC02 - - poc - - bed - - - - Day Case 3 - 6BSDC03 - - poc - - bed - - - - Day Case 4 - 6BSDC04 - - poc - - bed - - - - Day Case 5 - 6BSDC05 - - poc - - bed - - - - Day Case 6 - 6BSDC06 - - poc - - bed - - - - Day Case 7 - 6BSDC07 - - poc - - bed - - - - Day Case 8 - 6BSDC08 - - poc - - bed - - - - Day Case 9 - 6BSDC09 - - poc - - bed - - - - Day Case 10 - 6BSDC10 - - poc - - bed - - - - Swap Location - 6BSS - - poc - - bed - - - - - 88 - 92 - - - 92 - 96 - - - 90 - 94 - - - 86 - 90 - - - - - ENHT CCOT Group - - - - - - - Student Nurse - - - - - Nurse in Charge - - - - - CSW - - - - - - CCOT - - - - - - \ No newline at end of file diff --git a/nh_eobs_lister/high_risk_patients.py b/nh_eobs_lister/high_risk_patients.py deleted file mode 100644 index 18a11745..00000000 --- a/nh_eobs_lister/high_risk_patients.py +++ /dev/null @@ -1,125 +0,0 @@ -from openerp.osv import orm, fields - -class nh_high_risk_patients(orm.Model): - - _name = 'nh.activity.high_risk' - _inherits = {'nh.activity': 'activity_id'} - _description = "High Risk Patients" - _auto = False - _table = "nh_high_risk_patients" - - # time elapsed since last observation - _proximity_intervals = [ - (5, '0-5 minutes'), - (15, '6-15 minutes'), - (30, '16-30 minutes'), - (45, '31-45 minutes'), - (50, '46+ minutes') - ] - _columns = { - 'activity_id': fields.many2one('nh.activity', 'Activity', required=1, ondelete='restrict'), - 'proximity_interval': fields.selection(_proximity_intervals, 'Proximity Interval', readonly=True), - 'clinical_risk': fields.text('Clinical Risk'), - 'summary': fields.text('Summary'), - 'state': fields.text('State'), - 'ews_score': fields.integer('Latest Score'), - 'ews_trend_string': fields.text('Score Trend String'), - 'user_id': fields.many2one('res.users', 'Assigned to'), - 'date_terminated': fields.datetime('Observation Date'), - 'data_model': fields.text('Data Model'), - 'initial': fields.text('Patient Name Initial'), - 'family_name': fields.text('Patient Family Name'), - 'age': fields.integer('Age'), - 'sex': fields.text('Sex'), - 'nhs_number': fields.text('NHS Number'), - 'current_location_id': fields.many2one('nh.clinical.location', 'Current Location'), - 'ward_id': fields.many2one('nh.clinical.location', 'Parent Location') - } - - def _get_groups(self, cr, uid, ids, domain, read_group_order=None, access_rights_uid=None, context=None): - pi_copy = [(pi[0], pi[1]) for pi in self._proximity_intervals] - groups = pi_copy - groups.reverse() - fold = {pi[0]: False for pi in pi_copy} - return groups, fold - - _group_by_full = {'proximity_interval': _get_groups} - - def init(self, cr): - """ - Gets patients with in open spells with "High" clinical risk - then order patients by time since last observation. - """ - cr.execute(""" - drop view if exists %s; - create or replace view %s as ( - with high_risk as ( - select - ews_1.id as id, - ews_1.spell_id as activity_id, - extract (epoch from (now() at time zone 'UTC' - ews_1.date_terminated))::int/60 as proximity, - ews_1.clinical_risk as clinical_risk, - ews_1.state as state, - ews_1.score as ews_score, - ews_1.date_terminated as date_terminated, - case - when ews_1.id is not null and ews_2.id is not null and (ews_1.score - ews_2.score) = 0 then 'same' - when ews_1.id is not null and ews_2.id is not null and (ews_1.score - ews_2.score) > 0 then 'up' - when ews_1.id is not null and ews_2.id is not null and (ews_1.score - ews_2.score) < 0 then 'down' - when ews_1.id is null and ews_2.id is null then 'none' - when ews_1.id is not null and ews_2.id is null then 'first' - when ews_1.id is null and ews_2.id is not null then 'no latest' -- shouldn't happen. - end as ews_trend_string, - activity.summary as summary, - activity.user_id as user_id, - activity.data_model as data_model, - patient.patient_identifier as nhs_number, - patient.family_name as family_name, - patient.current_location_id as current_location_id, - patient.sex as sex, - case - when patient.given_name is null then '' - else upper(substring(patient.given_name from 1 for 1)) - end as initial, - extract(year from age(now(), patient.dob)) as age, - ward.id as ward_id - from nh_clinical_spell as spell - inner join nh_activity activity on activity.id = spell.activity_id and activity.state = 'started' - inner join nh_clinical_location bed on activity.location_id = bed.id - inner join nh_clinical_location ward on bed.parent_id = ward.id - inner join ews1 ews_1 on ews_1.spell_activity_id = activity.id - inner join ews2 ews_2 on ews_2.spell_activity_id = activity.id - inner join nh_clinical_patient patient on ews_1.patient_id = patient.id - where ews_1.clinical_risk = 'High' - ) - select - id, - activity_id, - case - when proximity < 5 then 5 - when proximity between 5 and 14 then 15 - when proximity between 15 and 29 then 30 - when proximity between 30 and 44 then 45 - when proximity > 45 then 50 - else null end as proximity_interval, - clinical_risk, - ews_score, - ews_trend_string, - summary, - state, - user_id, - date_terminated, - data_model, - nhs_number, - family_name, - initial, - age, - sex, - current_location_id, - ward_id - from high_risk - ) - """ % (self._table, self._table)) - - - diff --git a/nh_eobs_lister/high_risk_patients.pyc b/nh_eobs_lister/high_risk_patients.pyc deleted file mode 100644 index a942fa88a31526783863a35734d49fdaa0240ca8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7129 zcmc&(?{XB!5uZJQK*HF7fCMKtV;rKBK_{J%6dQvQg5x+3O?a4`J5L>ULenscgX`JzwX)HJK%IWFjdyw?M}~3_w@9i>7Lfif6veV=b!)n zCKkot4Bo%N&)&g9;TwoVh+ZIe1JSFA-I@qgP3S;8nGx+ks2TCS5YL79X7`j(r^HVE zH1N#-@K>*)<%nLE_uMSrZKD%q-4!&`ZrC-QZkQYU*RUTsqf=)qCeC8UZ}GGL3WU&t z)&?tB+n|AOO>FMY(Arp3pBB5bwDj&7p*|Dpu27!~bx)}KqJyEc!dw)3PCS_>H1(cP z7lgVf)Fq)7#PeDW9}6zhA*WWBBJD zepjdu82+#tzs|7qF!=aLs2f;9sE>UYnEC}zxmlt7lHtV)t~0z;!JjaE%fndmHp9!+ zc!S}U3SMQn>0z+2Ce$5fVSTh~gS$2%T?lEb{QgRO4@qAl;cJKua@k!F>Qhqu?q$*1 zssEZ(<+a*~VrTY^J8D$wb>}c#c85k;g41p_(_RAn6^uc)U<~q6VGJ!YA4Ar}2&>B* zvS-qP)7HF4o$uhWx!fG~en`FN@n~)?-&w6DFPGhSn#=3M*=y8IoUCu&D(5<~y9dPv z7|8W^1Cwiot;3dSI7^jIwA00~b-9ThZ{bm%9hx4tF8`1^o$p6UF(*=4njAUWX1|;h znqm%f{4g=8iKB!i;AjtV(Zden&Y)*!(CbC{5w~s8Ch6?B2;8uosKs*mni@{-#96N0 z946@l8(M;xQ|_0KbDb)=gAJq|ccGZ%s57Kpr5#I{KxquD&Mgb;fwiWSY9(F9jL-$K}j*dV~iNYR%_A`p@mw~uHp5{GTt0aobo@Ii-aGn``>j4?R<^&|k=ujbp3a$- zv}?nZL1qO;TI!*ZWHE1zxB769LrzY9U35C)DfXRVIg{if}tayrpDG=A_RTJ0RHSw34_-kVjbO6@US@R^|x+;l%)mcgkO{FB^={ZY%jUqhuP{n$=A{L ztxnp^U!1cM42|+x{fw?^i3FN{UavHBrLDq&Jy*O#KNW?!lXTmb`eXns6_BdFdNJV7lN3?L_gX% zTh>QtK%p=z7!%o7`Gk2~g}G2z->J`Fmi;>(^RoE+y>?cX5n3J?*OexfSzo8p_H~k2 z-*i=M~JMJV6>2uDt?gyc z$taz?&4y7#$Ee#=%w?(Ka3GA4uz3RNq02E@)^$INyRw~UJy}n)gZh$;oEP-pvQ*2( zKR!s6qY3c4=IKay0Dy?1l)d?%}21~tjydvxuI;NpuDS8nmH>Sd%fJPWq zbejh2r9Bh=OI?$x#F5n#wa7L^24AV(Sea%{rh_Dr5n?V4tdUK;JW%&29H|Q>tu+{0 zlK17RWItN8h;EBN1`Asi3xocT!oalVr5Wb`6{HHtTmSLAO77t)-l4D-I}sEnkUggydJhd(A& zBsycdr=y2-mhkbKJb(JLtCUyA?CX^CX+Erm=6tdxBcIoD00YeHcChEK6!kH5IaW1g z8!@`Mv^4QtD{Qs62~6HAax#jD^&=hSJ|5x{;6vi=G7D*_Y;Oq>5`ng(CzGR$y$It) z@_sC*ydk8wRS4vW&I+Q0=~z6IrZC4R8PY3Ymo8T20224AvXeNu@AI$f9?dBOIdgdf z_Yw8JTtp+spPIKg-f`m)2nZWiz zS0fqnTd!nHNjT6KDK|e}`^Wp-6#4B*Ic+I&C}6UKy~f#87E$Cqx#0u%#<5mXhC0Y6 z9j3G}Hg}-Wv%v{jbKR3^zA+utp(wLk`^*!%v-+kCp>jop)(ei-Uz?*Xi7FST1sju@ z;PaVt(&AXH68@?Dk{gA7e|^eq?OD+7FE{TKlo_m1{pXu6(^+ry4vLokLF9 z!jP+)Ayrogi3Uj3K3^T3qn1e#HH@>4YGk3(HqK3-3b-w*2Kw32z-6r!fGtT6DgyEn zy(m3e!*z-4%RW#5kxN~V^MU3D6~>C%tnbkZEl05c+V?%i - - - - - - LISTER-ADT - adt - adt - - - - - - - Hudson Butler - hudson - hudson - Europe/London - - - - - - - Heather Walder - heather - heather - Europe/London - - - - - - - Harold Bishop - harold - harold - Europe/London - - - - - - - Henry Higgins - henry - henry - Europe/London - - - - - - - Hannah Mitchell - hannah - hannah - Europe/London - - - - - - - Harper Ransom - harper - harper - Europe/London - - - - - - - Harriet Kendall - harriet - harriet - Europe/London - - - - - - - Hugo Burlatsky - hugo - hugo - Europe/London - - - - - - - Natalia Gonzalez - natalia - natalia - Europe/London - - - - - - - Noemi Simpson - noemi - noemi - Europe/London - - - - - - - Noah Connolly - noah - noah - Europe/London - - - - - - - Neil Hawking - neil - neil - Europe/London - - - - - - - Norah Miller - norah - norah - Europe/London - - - - - - - Nadine Bullock - nadine - nadine - Europe/London - - - - - - - Nathan Lewis - nathan - nathan - Europe/London - - - - - - - Nicolas Stockly - nicolas - nicolas - Europe/London - - - - - - - Ned Muzio - ned - ned - Europe/London - - - - - - - Natasha Goldner - natasha - natasha - Europe/London - - - - - - - Nichole Smith - nichole - nichole - Europe/London - - - - - - - Nasir Patel - nasir - nasir - Europe/London - - - - - - - Winifred Kirrin - winifred - winifred - Europe/London - - - - - - - Walter Smith - walter - walter - Europe/London - - - - - - - Whitney Williams - whitney - whitney - Europe/London - - - - - - - William Roberts - william - william - Europe/London - - - - - - - Dave Chas - dave - dave - Europe/London - - - - - - - Davina McCall - davina - davina - Europe/London - - - - - - - Don Jones - don - don - Europe/London - - - - - - - Dakota Fox - dakota - dakota - Europe/London - - - - - - - Damien Jenkins - damien - damien - Europe/London - - - - - - - Delilah Fletcher - delilah - delilah - Europe/London - - - - - - - Dawson West - dawson - dawson - Europe/London - - - - - - - Dana Wallace - dana - dana - Europe/London - - - - - - - Diego Garcia - diego - diego - Europe/London - - - - - - - Daniella Rossi - daniella - daniella - Europe/London - - - - - - - Denzel Davies - denzel - denzel - Europe/London - - - - - - - Diana Fowler - diana - diana - Europe/London - - - - - - - Olga Chapman - olga - olga - Europe/London - - - - - - - Europe/London - - - - - - \ No newline at end of file diff --git a/nh_eobs_lister/nh_eobs_lister.py b/nh_eobs_lister/nh_eobs_lister.py deleted file mode 100644 index ace66cbe..00000000 --- a/nh_eobs_lister/nh_eobs_lister.py +++ /dev/null @@ -1,586 +0,0 @@ -from openerp.osv import orm, fields, osv -import re -import logging -import bisect -import copy -from datetime import datetime as dt, timedelta as td -from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT as DTF -from openerp import SUPERUSER_ID - -_logger = logging.getLogger(__name__) - - -class nh_eobs_api(orm.AbstractModel): - _name = 'nh.eobs.api' - _inherit = 'nh.eobs.api' - - _active_observations = [ - { - 'type': 'ews', - 'name': 'NEWS' - }, - { - 'type': 'height', - 'name': 'Height' - }, - { - 'type': 'weight', - 'name': 'Weight' - }, - { - 'type': 'blood_product', - 'name': 'Blood Product' - }, - { - 'type': 'blood_sugar', - 'name': 'Blood Sugar' - }, - { - 'type': 'stools', - 'name': 'Bowel Open' - }, - { - 'type': 'gcs', - 'name': 'Glasgow Coma Scale (GCS)' - }, - { - 'type': 'pbp', - 'name': 'Postural Blood Pressure' - }, - { - 'type': 'pain', - 'name': 'Pain Score' - }, - { - 'type': 'urinary_analysis', - 'name': 'Urinary Analysis' - }, - { - 'type': 'neurovascular', - 'name': 'Neurovascular' - }, - { - 'type': 'urine_output', - 'name': 'Urine Output' - } - ] - - -class enht_users(orm.Model): - _inherit = 'res.users' - - def init(self, cr): - # MIGRATION FROM NON ROLE BASED DB - category_pool = self.pool['res.partner.category'] - hca_cat_id = category_pool.search(cr, 1, ['|', ['name', '=', 'CSW'], ['name', '=', 'HCA']])[0] - nur_cat_id = category_pool.search(cr, 1, [['name', '=', 'Nurse']])[0] - sco_cat_id = category_pool.search(cr, 1, ['|', ['name', '=', 'Nurse in Charge'], ['name', '=', 'Shift Coordinator']])[0] - sma_cat_id = category_pool.search(cr, 1, [['name', '=', 'Senior Manager']])[0] - doc_cat_id = category_pool.search(cr, 1, [['name', '=', 'Doctor']])[0] - sdr_cat_id = category_pool.search(cr, 1, [['name', '=', 'Senior Doctor']])[0] - jdr_cat_id = category_pool.search(cr, 1, [['name', '=', 'Junior Doctor']])[0] - reg_cat_id = category_pool.search(cr, 1, [['name', '=', 'Registrar']])[0] - con_cat_id = category_pool.search(cr, 1, [['name', '=', 'Consultant']])[0] - rec_cat_id = category_pool.search(cr, 1, [['name', '=', 'Receptionist']])[0] - adm_cat_id = category_pool.search(cr, 1, [['name', '=', 'System Administrator']])[0] - kio_cat_id = category_pool.search(cr, 1, [['name', '=', 'Kiosk']])[0] - roles = [hca_cat_id, nur_cat_id, sco_cat_id, sma_cat_id, doc_cat_id, sdr_cat_id, jdr_cat_id, reg_cat_id, - con_cat_id, rec_cat_id, adm_cat_id, kio_cat_id] - migrate_users = self.search(cr, 1, [['category_id', 'not in', roles]]) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical HCA Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, hca_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Nurse Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, nur_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Shift Coordinator Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, sco_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Senior Manager Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, sma_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Doctor Group']], - ['id', 'in', migrate_users]]) - for uid in user_ids: - self.write(cr, 1, uid, {'category_id': [[4, doc_cat_id], [3, sdr_cat_id], [3, jdr_cat_id], [3, reg_cat_id], - [3, con_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Admin Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, adm_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Kiosk Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, kio_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Senior Doctor Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, sdr_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Junior Doctor Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, jdr_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Registrar Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, reg_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Consultant Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, con_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Receptionist Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, rec_cat_id]]}) - # END OF MIGRATION - super(enht_users, self).init(cr) - - -class nh_clinical_patient_placement_lister(orm.Model): - _name = 'nh.clinical.patient.placement' - _inherit = 'nh.clinical.patient.placement' - - _POLICY = {'activities': [{'model': 'nh.clinical.patient.observation.ews', 'type': 'recurring', - 'cancel_others': True, 'context': 'eobs'}, - {'model': 'nh.clinical.patient.weight_monitoring', 'type': 'complete', - 'data': {'status': True}, 'context': 'renal'}, - {'model': 'nh.clinical.patient.observation.height', 'type': 'schedule', - 'cancel_others': True, 'context': 'eobs', 'domains': [ - { - 'object': 'nh.activity', - 'domain': [['data_model', '=', 'nh.clinical.patient.observation.height'], - ['state', '=', 'completed']] - } - ]}, - {'model': 'nh.clinical.patient.observation.weight', 'type': 'schedule', - 'cancel_others': True, 'context': 'eobs', 'domains': [ - { - 'object': 'nh.activity', - 'domain': [['data_model', '=', 'nh.clinical.patient.observation.weight'], - ['state', '=', 'completed']] - } - ]}]} - -class nh_clinical_patient_observation_lister_ews(orm.Model): - _name = 'nh.clinical.patient.observation.ews' - _inherit = 'nh.clinical.patient.observation.ews' - - _POLICY = {'ranges': [0, 4, 6], 'case': '0123', 'frequencies': [480, 240, 60, 15], - 'notifications': [ - [{'model': 'frequency', 'groups': ['nurse']}], - [{'model': 'assessment', 'minutes_due': 30, 'groups': ['nurse', 'hca']}, - {'model': 'hca', 'summary': 'Inform registered nurse', 'groups': ['hca'], 'assign': 1}, - {'model': 'nurse', 'summary': 'Informed about patient status (NEWS)', 'groups': ['hca']}], - [{'model': 'assessment', 'minutes_due': 30, 'groups': ['nurse', 'hca']}, - {'model': 'hca', 'summary': 'Inform registered nurse', 'groups': ['hca'], 'assign': 1}, - {'model': 'nurse', 'summary': 'Informed about patient status (NEWS)', 'groups': ['hca']}], - [{'model': 'assessment', 'minutes_due': 15, 'groups': ['nurse', 'hca']}, - {'model': 'hca', 'summary': 'Inform registered nurse', 'groups': ['hca'], 'assign': 1}, - {'model': 'nurse', 'summary': 'Informed about patient status (NEWS)', 'groups': ['hca']}] - ], - 'risk': ['None', 'Low', 'Medium', 'High']} - - def init(self, cr): - """ - Migrate any database pre-partial observations FIX so it ignores them for Score/Clinical Risk views. - :return: - """ - partial_ews_ids = self.search(cr, 1, [['is_partial', '=', True]]) - self.write(cr, 1, partial_ews_ids, {'clinical_risk': 'Unknown'}) - - - def calculate_o2_allowed_score(self, cr, uid, patient_id, o2value, o2flag, context=None): - o2target_pool = self.pool['nh.clinical.patient.o2target'] - o2level_id = o2target_pool.get_last(cr, uid, patient_id, context=context) - if not o2level_id: - return 0 - o2level_pool = self.pool['nh.clinical.o2level'] - o2 = o2level_pool.read(cr, uid, o2level_id, ['min', 'max'], context=context) - if o2['min'] <= o2value: - mino2 = o2value - score = int(self._O2_RANGES['scores'][bisect.bisect_left(self._O2_RANGES['ranges'], mino2)]) - return score+2*int(o2flag) - else: - return 0 - - def complete(self, cr, uid, activity_id, context=None): - activity_pool = self.pool['nh.activity'] - observation_pool = self.pool['nh.clinical.patient.observation'] - blood_sugar_pool = self.pool['nh.clinical.patient.observation.blood_sugar'] - groups_pool = self.pool['res.groups'] - api_pool = self.pool['nh.clinical.api'] - activity = activity_pool.browse(cr, uid, activity_id, context=context) - case = int(self._POLICY['case'][bisect.bisect_left(self._POLICY['ranges'], activity.data_ref.score)]) - case = 2 if activity.data_ref.three_in_one and case < 3 else case - hcagroup_ids = groups_pool.search(cr, uid, [('users', 'in', [uid]), ('name', '=', 'NH Clinical HCA Group')]) - nursegroup_ids = groups_pool.search(cr, uid, [('users', 'in', [uid]), ('name', '=', 'NH Clinical Nurse Group')]) - group = nursegroup_ids and 'nurse' or hcagroup_ids and 'hca' or False - spell_activity_id = activity.parent_id.id - self.handle_o2_devices(cr, uid, activity_id, context=context) - - if not activity.data_ref.is_partial: - allowed_score = self.calculate_o2_allowed_score(cr, uid, activity.data_ref.patient_id.id, - activity.data_ref.indirect_oxymetry_spo2, - activity.data_ref.oxygen_administration_flag, - context=context) - if activity.data_ref.score > allowed_score: - api_pool.trigger_notifications(cr, uid, { - 'notifications': self._POLICY['notifications'][case], - 'parent_id': spell_activity_id, - 'creator_id': activity_id, - 'patient_id': activity.data_ref.patient_id.id, - 'model': self._name, - 'group': group - }, context=context) - - res = observation_pool.complete(cr, uid, activity_id, context=context) - - # create next EWS - next_activity_id = self.create_activity(cr, SUPERUSER_ID, - {'creator_id': activity_id, 'parent_id': spell_activity_id}, - {'patient_id': activity.data_ref.patient_id.id}, context=context) - if activity.data_ref.is_partial: - activity_pool.schedule(cr, uid, next_activity_id, date_scheduled=activity.date_scheduled, context=context) - else: - post_surgery_pool = self.pool['nh.clinical.patient.post_surgery'] - critical_care_pool = self.pool['nh.clinical.patient.critical_care'] - ps_status = post_surgery_pool.current_status(cr, uid, activity.data_ref.patient_id.id, context=context) - cc_status = critical_care_pool.current_status(cr, uid, activity.data_ref.patient_id.id, context=context) - if ps_status: - frequency = min(post_surgery_pool._ews_frequency, self._POLICY['frequencies'][case]) - elif cc_status: - frequency = min(critical_care_pool._ews_frequency, self._POLICY['frequencies'][case]) - else: - frequency = self._POLICY['frequencies'][case] - api_pool.change_activity_frequency(cr, SUPERUSER_ID, - activity.data_ref.patient_id.id, - self._name, - frequency, context=context) - # trigger Blood Sugar - if activity.data_ref.avpu_text != 'A' and not activity.data_ref.is_partial: - bs_act_id = blood_sugar_pool.create_activity(cr, SUPERUSER_ID, { - 'creator_id': activity_id, - 'parent_id': spell_activity_id}, { - 'patient_id': activity.data_ref.patient_id.id}, context=context) - activity_pool.schedule(cr, SUPERUSER_ID, bs_act_id, dt.now() + td(minutes=60), context=context) - # self.refresh_views(cr, uid, ['ews0', 'ews1', 'ews2'], context=context) - return res - - -class nh_clinical_notification_assessment(orm.Model): - _name = 'nh.clinical.notification.assessment' - _inherit = 'nh.clinical.notification.assessment' - _description = 'Assess Patient' - _notifications = [ - [], - [{'model': 'frequency', 'groups': ['nurse']}], - [{'model': 'inform_doctor', 'summary': 'Urgently inform medical team', 'groups': ['nurse', 'hca']}, - {'model': 'frequency', 'groups': ['nurse', 'hca']}, - {'model': 'nurse', 'summary': 'Inform CCOT if unresolved after one hour. Bleep L1663 or Q0169', 'groups': ['nurse', 'hca']}], - [{'model': 'inform_doctor', 'summary': 'Immediately inform SPR or above', 'groups': ['nurse', 'hca']}, - {'model': 'nurse', 'summary': 'Urgent assessment by CCOT', 'groups': ['nurse', 'hca']}] - ] - - def complete(self, cr, uid, activity_id, context=None): - activity_pool = self.pool['nh.activity'] - ews_pool = self.pool['nh.clinical.patient.observation.ews'] - notification_pool = self.pool['nh.clinical.notification'] - activity = activity_pool.browse(cr, uid, activity_id, context=context) - case = ews_pool.get_last_case(cr, uid, activity.data_ref.patient_id.id, context=context) - api_pool = self.pool['nh.clinical.api'] - api_pool.trigger_notifications(cr, uid, { - 'notifications': self._notifications[case], - 'parent_id': activity.parent_id.id, - 'creator_id': activity_id, - 'patient_id': activity.data_ref.patient_id.id, - 'model': activity.creator_id.data_ref._name, - 'group': 'nurse' - }, context=context) - return notification_pool.complete(cr, uid, activity_id, context=context) - - -class lister_wardboard(osv.Model): - _name = "nh.clinical.wardboard" - _inherit = "nh.clinical.wardboard" - - def _get_pbp_flag(self, cr, uid, ids, field_name, arg, context=None): - res = {} - pbp_pool = self.pool['nh.clinical.patient.observation.pbp'] - for wb_id in ids: - pbp_ids = self.read(cr, uid, wb_id, ['pbp_ids'], context=context)['pbp_ids'] - res[wb_id] = any([pbp_pool.read(cr, uid, pbp_id, ['result'], context=context)['result'] == 'yes' for pbp_id in pbp_ids]) if pbp_ids else False - return res - - def _get_data_ids_multi(self, cr, uid, ids, field_names, arg, context=None): - res = {id: {field_name: [] for field_name in field_names} for id in ids} - for field_name in field_names: - model_name = self._columns[field_name].relation - sql = """select spell_id, ids from wb_activity_data where data_model='%s' and spell_id in (%s) and state='completed'"""\ - % (model_name, ", ".join([str(spell_id) for spell_id in ids])) - cr.execute(sql) - rows = cr.dictfetchall() - for row in rows: - res[row['spell_id']][field_name] = row['ids'] - return res - - _columns = { - 'pbp_flag': fields.function(_get_pbp_flag, type='boolean', string='PBP Flag', readonly=True), - 'urinary_analysis_ids': fields.function(_get_data_ids_multi, multi='urinary_analysis_ids', type='many2many', relation='nh.clinical.patient.observation.urinary_analysis', string='Urinary Analysis Obs'), - 'neurovascular_ids': fields.function(_get_data_ids_multi, multi='neurovascular_ids', type='many2many', relation='nh.clinical.patient.observation.neurovascular', string='Neurovascular Obs'), - 'bss_ids': fields.function(_get_data_ids_multi, multi='bss_ids', type='many2many', relation='nh.clinical.patient.observation.stools', string='Bowels Open Flag') - } - - def wardboard_ews(self, cr, uid, ids, context={}): - wardboard = self.browse(cr, uid, ids[0], context=context) - - model_data_pool = self.pool['ir.model.data'] - model_data_ids = model_data_pool.search(cr, uid, [('name', '=', 'view_lister_wardboard_obs_list_form')], context=context) - if not model_data_ids: - pass # view doesnt exist - view_id = model_data_pool.read(cr, uid, model_data_ids, ['res_id'], context)[0]['res_id'] - - return { - 'name': wardboard.full_name, - 'type': 'ir.actions.act_window', - 'res_model': 'nh.clinical.wardboard', - 'res_id': ids[0], - 'view_mode': 'form', - 'view_type': 'form', - 'target': 'new', - 'view_id': int(view_id), - 'context': context - } - - def write(self, cr, uid, ids, vals, context=None): - res = super(lister_wardboard, self).write(cr, uid, ids, vals, context=context) - activity_pool = self.pool['nh.activity'] - for wb in self.browse(cr, uid, ids, context=context): - if 'post_surgery' in vals: - ps_pool = self.pool['nh.clinical.patient.post_surgery'] - ps_id = ps_pool.create_activity(cr, SUPERUSER_ID, { - 'parent_id': wb.spell_activity_id.id, - }, { - 'patient_id': wb.spell_activity_id.patient_id.id, - 'status': vals['post_surgery'] == 'yes' - }, context=context) - activity_pool.complete(cr, uid, ps_id, context=context) - if 'critical_care' in vals: - cc_pool = self.pool['nh.clinical.patient.critical_care'] - cc_id = cc_pool.create_activity(cr, SUPERUSER_ID, { - 'parent_id': wb.spell_activity_id.id, - }, { - 'patient_id': wb.spell_activity_id.patient_id.id, - 'status': vals['critical_care'] == 'yes' - }, context=context) - activity_pool.complete(cr, uid, cc_id, context=context) - if 'uotarget_vol' in vals or 'uotarget_unit' in vals: - uotarget_pool = self.pool['nh.clinical.patient.uotarget'] - current = uotarget_pool.current_target(cr, uid, wb.spell_activity_id.patient_id.id, context=context) - if not current: - if not vals.get('uotarget_vol') or not vals.get('uotarget_unit'): - raise osv.except_osv('Urine Output Target Submission Error!', 'Both Volume and Unit are required') - uotarget_id = uotarget_pool.create_activity(cr, SUPERUSER_ID, { - 'parent_id': wb.spell_activity_id.id, - }, { - 'patient_id': wb.spell_activity_id.patient_id.id, - 'volume': vals.get('uotarget_vol') if vals.get('uotarget_vol') else current[0], - 'unit': vals.get('uotarget_unit') if vals.get('uotarget_unit') else current[1] - }, context=context) - activity_pool.complete(cr, uid, uotarget_id, context=context) - return res - - -class nh_lister_ward_dashboard(orm.Model): # avoid the views being dropped by wardboard on initialization - _name = 'nh.eobs.ward.dashboard' - _inherit = 'nh.eobs.ward.dashboard' - - def view_high_risk(self, cr, uid, ids, context=None): - wdb = self.browse(cr, uid, ids[0], context=context) - context.update({'search_default_group_by_ward': 1, 'search_default_high_risk': 1, - 'search_default_ward_id': wdb.id}) - - return { - 'name': 'Acuity Board', - 'type': 'ir.actions.act_window', - 'res_model': 'nh.clinical.wardboard', - 'view_type': 'form', - 'view_mode': 'tree,form,kanban', - 'domain': [('spell_state', '=', 'started'), ('location_id.usage', '=', 'bed')], - 'target': 'current', - 'context': context - } - - -class nh_clinical_notification_inform_doctor(orm.Model): - _name = 'nh.clinical.notification.inform_doctor' - _inherit = ['nh.clinical.notification'] - _description = 'Inform Medical Team?' - _notifications = [{'model': 'doctor_assessment', 'groups': ['nurse']}] - - def is_bleep(self, cr, uid, ids, context=None): - record = self.browse(cr, uid, ids, context=context) - pattern = "^[0-9]{4,6}$" - for data in record: - if re.match(pattern, data.bleep): - return True - else: - return False - return {} - - _columns = { - 'doctor_name': fields.char('Informed Doctor', size=200), - 'bleep': fields.char('BLEEP', size=10) - } - _constraints = [(is_bleep, 'Error: Invalid BLEEP', ['bleep']), ] - - _form_description = [ - { - 'name': 'doctor_name', - 'type': 'text', - 'label': 'Informed Doctor', - 'initially_hidden': False - }, - { - 'name': 'bleep', - 'type': 'text', - 'label': 'BLEEP', - 'initially_hidden': False, - 'regex': '^[0-9]{4,6}$', - 'secondary_label': '4-6 Digit BLEEP number' - } - ] - - def complete(self, cr, uid, activity_id, context=None): - activity_pool = self.pool['nh.activity'] - activity = activity_pool.browse(cr, uid, activity_id, context=context) - api_pool = self.pool['nh.clinical.api'] - api_pool.trigger_notifications(cr, uid, { - 'notifications': self._notifications, - 'parent_id': activity.parent_id.id, - 'creator_id': activity_id, - 'patient_id': activity.data_ref.patient_id.id, - 'model': activity.creator_id._name, - 'group': 'nurse' - }, context=context) - return super(nh_clinical_notification_inform_doctor, self).complete(cr, uid, activity_id, context=context) - - def is_cancellable(self, cr, uid, context=None): - return True - - -class lister_notification_frequency(orm.Model): - _name = 'nh.clinical.notification.frequency' - _inherit = 'nh.clinical.notification.frequency' - _description = 'Review Frequency' - _notifications = [{'model': 'inform_doctor', 'groups': ['nurse']}] - - def get_form_description(self, cr, uid, patient_id, context=None): - frequencies = [(15, 'Every 15 Minutes'), (30, 'Every 30 Minutes'), (60, 'Every Hour'), (120, 'Every 2 Hours'), - (240, 'Every 4 Hours'), (360, 'Every 6 Hours'), (480, 'Every 8 Hours')] - flist = copy.deepcopy(frequencies) - fd = copy.deepcopy(self._form_description) - activity_pool = self.pool['nh.activity'] - ews_ids = activity_pool.search(cr, uid, [['patient_id', '=', patient_id], - ['parent_id.state', '=', 'started'], - ['data_model', '=', 'nh.clinical.patient.observation.ews'], - ['state', '=', 'scheduled']], order='sequence desc', context=context) - if ews_ids: - f = activity_pool.browse(cr, uid, ews_ids[0], context=context).data_ref.frequency - for tuple in frequencies: - if tuple[0] > f: - flist.remove(tuple) - for field in fd: - if field['name'] == 'frequency': - field['selection'] = flist - return fd - - -class lister_patient_observation_gcs(orm.Model): - _name = 'nh.clinical.patient.observation.gcs' - _inherit = 'nh.clinical.patient.observation.gcs' - - _pupil_sizes = [ - ['8', '8mm'], - ['7', '7mm'], - ['6', '6mm'], - ['5', '5mm'], - ['4', '4mm'], - ['3', '3mm'], - ['2', '2mm'], - ['1', '1mm'], - ] - - _columns = { - 'pupil_right_size': fields.selection(_pupil_sizes, 'Right Pupil Size'), - 'pupil_left_size': fields.selection(_pupil_sizes, 'Left Pupil Size'), - 'pupil_right_reaction': fields.selection([['yes', 'Yes'], ['no', 'No'], ['sluggish', 'Sluggish']], 'Right Pupil Reaction'), - 'pupil_left_reaction': fields.selection([['yes', 'Yes'], ['no', 'No'], ['sluggish', 'Sluggish']], 'Left Pupil Reaction') - } - - def get_form_description(self, cr, uid, patient_id, context=None): - fd = list(self._form_description) - fd.append({ - 'name': 'pupil_right_size', - 'type': 'selection', - 'label': 'Right Pupil Size', - 'selection': self._pupil_sizes, - 'selection_type': 'text', - 'initially_hidden': False - }) - fd.append({ - 'name': 'pupil_right_reaction', - 'type': 'selection', - 'label': 'Right Pupil Reaction', - 'selection': [['yes', 'Yes'], ['no', 'No'], ['sluggish', 'Sluggish']], - 'selection_type': 'text', - 'initially_hidden': False, - }) - fd.append({ - 'name': 'pupil_left_size', - 'type': 'selection', - 'label': 'Left Pupil Size (mm)', - 'selection': self._pupil_sizes, - 'selection_type': 'text', - 'initially_hidden': False - }) - fd.append({ - 'name': 'pupil_left_reaction', - 'type': 'selection', - 'label': 'Left Pupil Reaction', - 'selection': [['yes', 'Yes'], ['no', 'No'], ['sluggish', 'Sluggish']], - 'selection_type': 'text', - 'initially_hidden': False, - }) - return fd - -class nh_clinical_user_management(orm.Model): - _name = "nh.clinical.user.management" - _inherit = "nh.clinical.user.management" - _ward_ids_not_editable = ['Nurse', 'CSW', 'Student Nurse'] - - -class lister_overdue_view(orm.Model): - _name = 'nh.clinical.overdue' - _inherit = 'nh.clinical.overdue' - - def read(self, cr, uid, ids, fields=None, context=None, load='_classic_read'): - res = super(lister_overdue_view, self).read(cr, uid, ids, fields, context, load) - if not isinstance(res, list): - res = [res] - for r in res: - if r.get('groups'): - if r.get('groups') == 'HCA': - r['groups'] = 'CSW' - elif r.get('groups') == 'HCA, Nurse': - r['groups'] = 'CSW, Nurse' - return res - - -class lister_observation_stools(orm.Model): - _name = 'nh.clinical.patient.observation.stools' - _inherit = 'nh.clinical.patient.observation.stools' - _required = ['bowel_open'] - _description = 'Bowel Open Parameter' - - _form_description = [ - { - 'name': 'bowel_open', - 'type': 'selection', - 'label': 'Bowel Open', - 'selection': [[True, 'Yes'], [False, 'No']], - 'initially_hidden': False - } - ] diff --git a/nh_eobs_lister/nh_eobs_lister.pyc b/nh_eobs_lister/nh_eobs_lister.pyc deleted file mode 100644 index f33b458c04b0669777985af589bb7620ee3067f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 24042 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 diff --git a/nh_eobs_lister/observation_report.py b/nh_eobs_lister/observation_report.py deleted file mode 100644 index 2135416c..00000000 --- a/nh_eobs_lister/observation_report.py +++ /dev/null @@ -1,375 +0,0 @@ -from openerp import api, models -from datetime import datetime -from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT as dtf -from openerp.osv import fields -import json -import copy - -class ObservationReport(models.AbstractModel): - _name = 'report.nh.clinical.observation_report' - _inherit = 'report.nh.clinical.observation_report' - - @api.multi - def render_html(self, data=None): - cr, uid = self._cr, self._uid - report_obj = self.env['report'] - report = report_obj._get_report_from_name('nh.clinical.observation_report') - pretty_date_format = '%H:%M %d/%m/%y' - wkhtmltopdf_format = "%a %b %d %Y %H:%M:%S GMT" - - if isinstance(data, dict): - data = self.data_dict_to_obj(data) - - # set up data - start_time = datetime.strptime(data.start_time, dtf) if data and data.start_time else False - end_time = datetime.strptime(data.end_time, dtf) if data and data.end_time else False - - # set up pools - activity_pool = self.pool['nh.activity'] - spell_pool = self.pool['nh.clinical.spell'] - patient_pool = self.pool['nh.clinical.patient'] - pain_pool = self.pool['nh.clinical.patient.observation.pain'] - blood_product_pool = self.pool['nh.clinical.patient.observation.blood_product'] - bristol_stool_pool = self.pool['nh.clinical.patient.observation.stools'] - ews_pool = self.pool['nh.clinical.patient.observation.ews'] - weight_pool = self.pool['nh.clinical.patient.observation.weight'] - height_pool = self.pool['nh.clinical.patient.observation.height'] - pbp_pool = self.pool['nh.clinical.patient.observation.pbp'] - gcs_pool = self.pool['nh.clinical.patient.observation.gcs'] - bs_pool = self.pool['nh.clinical.patient.observation.blood_sugar'] - oxygen_target_pool = self.pool['nh.clinical.patient.o2target'] - transfer_history_pool = self.pool['nh.clinical.patient.move'] - company_pool = self.pool['res.company'] - partner_pool = self.pool['res.partner'] - user_pool = self.pool['res.users'] - location_pool = self.pool['nh.clinical.location'] - o2_level_pool = self.pool['nh.clinical.o2level'] - device_session_pool = self.pool['nh.clinical.device.session'] - mrsa_pool = self.pool['nh.clinical.patient.mrsa'] - diabetes_pool = self.pool['nh.clinical.patient.diabetes'] - palliative_care_pool = self.pool['nh.clinical.patient.palliative_care'] - post_surgery_pool = self.pool['nh.clinical.patient.post_surgery'] - critical_care_pool = self.pool['nh.clinical.patient.critical_care'] - - # get user data - #user_id = user_pool.search(cr, uid, [('login', '=', request.session['login'])],context=context)[0] - user = user_pool.read(cr, uid, uid, ['name'], context=None)['name'] - - # get company data - company_name = company_pool.read(cr, uid, 1, ['name'])['name'] - company_logo = partner_pool.read(cr, uid, 1, ['image'])['image'] - - # generate report timestamp - time_generated = fields.datetime.context_timestamp(cr, uid, datetime.now(), context=None) \ - .strftime(pretty_date_format) - - if data and data.spell_id: - spell_id = int(data.spell_id) - spell = spell_pool.read(cr, uid, [spell_id])[0] - # - get the start and end date of spell - spell_start = self.convert_db_date_to_context_date(datetime.strptime(spell['date_started'], dtf), pretty_date_format, context=None) - spell_end = spell['date_terminated'] - report_start = start_time.strftime(pretty_date_format) if start_time else spell_start - if end_time: - report_end = end_time.strftime(pretty_date_format) - else: - report_end = self.convert_db_date_to_context_date(datetime.strptime(spell_end, dtf), pretty_date_format, context=None) if spell_end else time_generated - # - spell_activity_id = spell['activity_id'][0] - spell['consultants'] = partner_pool.read(cr, uid, spell['con_doctor_ids']) if len(spell['con_doctor_ids']) > 0 else False - # - # # - get patient id - patient_id = spell['patient_id'][0] - # - # get patient information - patient = patient_pool.read(cr, uid, [patient_id])[0] - patient['dob'] = self.convert_db_date_to_context_date(datetime.strptime(patient['dob'], dtf), '%d/%m/%Y', context=None) - # - # # get ews observations for patient - # # - search ews model with parent_id of spell id (maybe dates for refined foo) - activity: search with data_model of ews - ews_ids = activity_pool.search(cr, uid, self.create_search_filter(spell_activity_id, 'nh.clinical.patient.observation.ews', start_time, end_time)) - ews = activity_pool.read(cr, uid, ews_ids) - - # get triggered actions from ews - # - search activity with ews ids as creator_id filter out EWS tasks - for observation in ews: - observation['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(observation['date_started'], dtf), pretty_date_format) - observation['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(observation['date_terminated'], dtf), pretty_date_format) if observation['date_terminated'] else False - triggered_actions_ids = activity_pool.search(cr, uid, [['creator_id', '=', observation['id']]]) - observation['values'] = ews_pool.read(cr, uid, int(observation['data_ref'].split(',')[1]), []) - o2_level_id = oxygen_target_pool.get_last(cr, uid, patient_id, observation['values']['date_terminated']) - o2_level = o2_level_pool.browse(cr, uid, o2_level_id) if o2_level_id else False - observation['values']['o2_target'] = o2_level.name if o2_level else False - observation['values']['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(observation['values']['date_started'], dtf), dtf) if observation['values']['date_started'] else False - observation['values']['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(observation['values']['date_terminated'], dtf), dtf) if observation['values']['date_terminated'] else False - observation['triggered_actions'] = [v for v in activity_pool.read(cr, uid, triggered_actions_ids) if v['data_model'] != 'nh.clinical.patient.observation.ews'] - for t in observation['triggered_actions']: - t['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(t['date_started'], dtf), pretty_date_format) if t['date_started'] else False - t['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(t['date_terminated'], dtf), pretty_date_format) if t['date_terminated'] else False - - # - # # convert the obs into usable obs for table & report - ews_for_json = copy.deepcopy(ews) - json_obs = [v['values'] for v in ews_for_json] - table_ews = [v['values'] for v in ews] - for table_ob in table_ews: - table_ob['date_terminated'] = datetime.strftime(datetime.strptime(table_ob['date_terminated'], dtf), pretty_date_format) - for json_ob in json_obs: - json_ob['write_date'] = datetime.strftime(datetime.strptime(json_ob['write_date'], dtf), wkhtmltopdf_format) - json_ob['create_date'] = datetime.strftime(datetime.strptime(json_ob['create_date'], dtf), wkhtmltopdf_format) - json_ob['date_started'] = datetime.strftime(datetime.strptime(json_ob['date_started'], dtf), wkhtmltopdf_format) - json_ob['date_terminated'] = datetime.strftime(datetime.strptime(json_ob['date_terminated'], dtf), wkhtmltopdf_format) - json_ews = json.dumps(json_obs) - - # Get the script files to load - observation_report = '/nh_eobs/static/src/js/observation_report.js' - - # - # # get height observations - # # - search height model with parent_id of spell - dates - height_ids = activity_pool.search(cr, uid, self.create_search_filter(spell_activity_id, 'nh.clinical.patient.observation.height', start_time, end_time)) - heights = activity_pool.read(cr, uid, height_ids) - for observation in heights: - observation['values'] = height_pool.read(cr, uid, int(observation['data_ref'].split(',')[1]), []) - if observation['values']: - observation['values']['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(observation['values']['date_started'], dtf), pretty_date_format) if observation['values']['date_started'] else False - observation['values']['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(observation['values']['date_terminated'], dtf), pretty_date_format) if observation['values']['date_terminated'] else False - patient['height'] = heights[-1]['values']['height'] if len(heights) > 0 else False - - # get weight observations - # - search weight model with parent_id of spell - dates - weight_ids = activity_pool.search(cr, uid, self.create_search_filter(spell_activity_id, 'nh.clinical.patient.observation.weight', start_time, end_time)) - weights = activity_pool.read(cr, uid, weight_ids) - for observation in weights: - observation['values'] = weight_pool.read(cr, uid, int(observation['data_ref'].split(',')[1]), []) - if observation['values']: - observation['values']['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(observation['values']['date_started'], dtf), pretty_date_format) if observation['values']['date_started'] else False - observation['values']['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(observation['values']['date_terminated'], dtf), pretty_date_format) if observation['values']['date_terminated'] else False - patient['weight'] = weights[-1]['values']['weight'] if len(weights) > 0 else False - - if hasattr(data, 'ews_only') and data.ews_only: - docargs = { - 'doc_ids': self._ids, - 'doc_model': report.model, - 'docs': self, - 'spell': spell, - 'patient': patient, - 'ews': ews, - 'table_ews': table_ews, - 'weights': weights, - 'pbps': [], - 'gcs': [], - 'bs': [], - 'bristol_stools': [], - 'pains':[], - 'blood_products': [], - 'targeto2': [], - 'device_session_history': [], - 'mrsa_history': [], - 'diabetes_history': [], - 'palliative_care_history': [], - 'post_surgery_history': [], - 'critical_care_history': [], - 'transfer_history': [], - 'report_start': report_start, - 'report_end': report_end, - 'spell_start': spell_start, - 'company_logo': company_logo, - 'time_generated': time_generated, - 'hospital_name': company_name, - 'user_name': user, - 'ews_data': json_ews, - 'draw_graph_js': observation_report - } - return report_obj.render('nh_eobs.observation_report', docargs) - - - # get pain observations - # - search pain model with parent_id of spell - dates - pain_ids = activity_pool.search(cr, uid, self.create_search_filter(spell_activity_id, 'nh.clinical.patient.observation.pain', start_time, end_time)) - pains = activity_pool.read(cr, uid, pain_ids) - for observation in pains: - observation['values'] = pain_pool.read(cr, uid, int(observation['data_ref'].split(',')[1]), []) - if observation['values']: - observation['values']['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(observation['values']['date_started'], dtf), pretty_date_format) if observation['values']['date_started'] else False - observation['values']['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(observation['values']['date_terminated'], dtf), pretty_date_format) if observation['values']['date_terminated'] else False - # get blood_product observations - # - search blood_product model with parent_id of spell - dates - blood_product_ids = activity_pool.search(cr, uid, self.create_search_filter(spell_activity_id, 'nh.clinical.patient.observation.blood_product', start_time, end_time)) - blood_products = activity_pool.read(cr, uid, blood_product_ids) - for observation in blood_products: - observation['values'] = blood_product_pool.read(cr, uid, int(observation['data_ref'].split(',')[1]), []) - if observation['values']: - observation['values']['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(observation['values']['date_started'], dtf), pretty_date_format) if observation['values']['date_started'] else False - observation['values']['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(observation['values']['date_terminated'], dtf), pretty_date_format) if observation['values']['date_terminated'] else False - # get bristol_stool observations - # - search bristol_stool model with parent_id of spell - dates - bristol_stool_ids = activity_pool.search(cr, uid, self.create_search_filter(spell_activity_id, 'nh.clinical.patient.observation.stools', start_time, end_time)) - bristol_stools = activity_pool.read(cr, uid, bristol_stool_ids) - for observation in bristol_stools: - observation['values'] = bristol_stool_pool.read(cr, uid, int(observation['data_ref'].split(',')[1]), []) - if observation['values']: - observation['values']['bowel_open'] = 'Yes' if observation['values']['bowel_open'] else 'No' - observation['values']['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(observation['values']['date_started'], dtf), pretty_date_format) if observation['values']['date_started'] else False - observation['values']['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(observation['values']['date_terminated'], dtf), pretty_date_format) if observation['values']['date_terminated'] else False - - # - # # get PBP observations - # # - search pbp model with parent_id of spell - dates - pbp_ids = activity_pool.search(cr, uid, self.create_search_filter(spell_activity_id, 'nh.clinical.patient.observation.pbp', start_time, end_time)) - pbps = activity_pool.read(cr, uid, pbp_ids) - for observation in pbps: - observation['values'] = pbp_pool.read(cr, uid, int(observation['data_ref'].split(',')[1]), []) - if observation['values']: - observation['values']['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(observation['date_started'], dtf), pretty_date_format) if observation['date_started'] else False - observation['values']['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(observation['date_terminated'], dtf), pretty_date_format) if observation['date_terminated'] else False - # - # # get GCS observations - # # - search gcs model with parent_id of spell - dates - gcs_ids = activity_pool.search(cr, uid, self.create_search_filter(spell_activity_id, 'nh.clinical.patient.observation.gcs', start_time, end_time)) - gcss = activity_pool.read(cr, uid, gcs_ids) - for observation in gcss: - observation['values'] = gcs_pool.read(cr, uid, int(observation['data_ref'].split(',')[1]), []) - if observation['values']: - observation['values']['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(observation['date_started'], dtf), pretty_date_format) if observation['date_started'] else False - observation['values']['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(observation['date_terminated'], dtf), pretty_date_format) if observation['date_terminated'] else False - # - # # get BS observations - # # - search bs model with parent_id of spell - dates - bs_ids = activity_pool.search(cr, uid, self.create_search_filter(spell_activity_id, 'nh.clinical.patient.observation.blood_sugar', start_time, end_time)) - bss = activity_pool.read(cr, uid, bs_ids) - for observation in bss: - observation['values'] = bs_pool.read(cr, uid, int(observation['data_ref'].split(',')[1]), []) - if observation['values']: - observation['values']['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(observation['date_started'], dtf), pretty_date_format) if observation['date_started'] else False - observation['values']['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(observation['date_terminated'], dtf), pretty_date_format) if observation['date_terminated'] else False - # - # # get o2 target history - # # - search o2target model on patient with parent_id of spell - dates - oxygen_history_ids = activity_pool.search(cr, uid, self.create_search_filter(spell_activity_id, 'nh.clinical.patient.o2target', start_time, end_time)) - oxygen_history = activity_pool.read(cr, uid, oxygen_history_ids) - for observation in oxygen_history: - observation['values'] = oxygen_target_pool.read(cr, uid, int(observation['data_ref'].split(',')[1]), []) - if observation['values']: - observation['values']['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(observation['values']['date_started'], dtf), pretty_date_format) if observation['values']['date_started'] else False - observation['values']['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(observation['values']['date_terminated'], dtf), pretty_date_format) if observation['values']['date_terminated'] else False - # - # # get Device Session history - # # - search device session model on patient with parent_id of spell - dates - device_session_history_ids = activity_pool.search(cr, uid, self.create_search_filter(spell_activity_id, 'nh.clinical.patient.o2target', start_time, end_time)) - device_session_history = activity_pool.read(cr, uid, device_session_history_ids) - for device_session in device_session_history: - device_session['values'] = device_session_pool.read(cr, uid, int(device_session['data_ref'].split(',')[1]), []) - if device_session['values']: - device_session['values']['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(device_session['values']['date_started'], dtf), pretty_date_format) if device_session['values']['date_started'] else False - device_session['values']['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(device_session['values']['date_terminated'], dtf), pretty_date_format) if device_session['values']['date_terminated'] else False - # - # # get MRSA flag history - # # - search mrsa model on patient with parent_id of spell - dates - mrsa_history_ids = activity_pool.search(cr, uid, self.create_search_filter(spell_activity_id, 'nh.clinical.patient.mrsa', start_time, end_time)) - mrsa_history = activity_pool.read(cr, uid, mrsa_history_ids) - for mrsa in mrsa_history: - mrsa['values'] = mrsa_pool.read(cr, uid, int(mrsa['data_ref'].split(',')[1]), []) - if mrsa['values']: - mrsa['values']['mrsa'] = 'Yes' if mrsa['values']['mrsa'] else 'No' - mrsa['values']['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(mrsa['values']['date_started'], dtf), pretty_date_format) if mrsa['values']['date_started'] else False - mrsa['values']['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(mrsa['values']['date_terminated'], dtf), pretty_date_format) if mrsa['values']['date_terminated'] else False - # - # # get diabetes flag history - # # - search diabetes model on patient with parent_id of spell - dates - diabetes_history_ids = activity_pool.search(cr, uid, self.create_search_filter(spell_activity_id, 'nh.clinical.patient.diabetes', start_time, end_time)) - diabetes_history = activity_pool.read(cr, uid, diabetes_history_ids) - for diabetes in diabetes_history: - diabetes['values'] = diabetes_pool.read(cr, uid, int(diabetes['data_ref'].split(',')[1]), []) - if diabetes['values']: - diabetes['values']['diabetes'] = 'Yes' if diabetes['values']['diabetes'] else 'No' - diabetes['values']['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(diabetes['values']['date_started'], dtf), pretty_date_format) if diabetes['values']['date_started'] else False - diabetes['values']['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(diabetes['values']['date_terminated'], dtf), pretty_date_format) if diabetes['values']['date_terminated'] else False - # - # # get palliative_care flag history - # # - search palliative_care model on patient with parent_id of spell - dates - palliative_care_history_ids = activity_pool.search(cr, uid, self.create_search_filter(spell_activity_id, 'nh.clinical.patient.palliative_care', start_time, end_time)) - palliative_care_history = activity_pool.read(cr, uid, palliative_care_history_ids) - for palliative_care in palliative_care_history: - palliative_care['values'] = palliative_care_pool.read(cr, uid, int(palliative_care['data_ref'].split(',')[1]), []) - if palliative_care['values']: - palliative_care['values']['palliative_care'] = 'Yes' if palliative_care['values']['status'] else 'No' - palliative_care['values']['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(palliative_care['values']['date_started'], dtf), pretty_date_format) if palliative_care['values']['date_started'] else False - palliative_care['values']['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(palliative_care['values']['date_terminated'], dtf), pretty_date_format) if palliative_care['values']['date_terminated'] else False - # - # # get post_surgery flag history - # # - search post_surgery model on patient with parent_id of spell - dates - post_surgery_history_ids = activity_pool.search(cr, uid, self.create_search_filter(spell_activity_id, 'nh.clinical.patient.post_surgery', start_time, end_time)) - post_surgery_history = activity_pool.read(cr, uid, post_surgery_history_ids) - for post_surgery in post_surgery_history: - post_surgery['values'] = post_surgery_pool.read(cr, uid, int(post_surgery['data_ref'].split(',')[1]), []) - if post_surgery['values']: - post_surgery['values']['post_surgery'] = 'Yes' if post_surgery['values']['status'] else 'No' - post_surgery['values']['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(post_surgery['values']['date_started'], dtf), pretty_date_format) if post_surgery['values']['date_started'] else False - post_surgery['values']['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(post_surgery['values']['date_terminated'], dtf), pretty_date_format) if post_surgery['values']['date_terminated'] else False - # - # # get critical_care flag history - # # - search critical_care model on patient with parent_id of spell - dates - critical_care_history_ids = activity_pool.search(cr, uid, self.create_search_filter(spell_activity_id, 'nh.clinical.patient.critical_care', start_time, end_time)) - critical_care_history = activity_pool.read(cr, uid, critical_care_history_ids) - for critical_care in critical_care_history: - critical_care['values'] = critical_care_pool.read(cr, uid, int(critical_care['data_ref'].split(',')[1]), []) - if critical_care['values']: - critical_care['values']['critical_care'] = 'Yes' if critical_care['values']['status'] else 'No' - critical_care['values']['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(critical_care['values']['date_started'], dtf), pretty_date_format) if critical_care['values']['date_started'] else False - critical_care['values']['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(critical_care['values']['date_terminated'], dtf), pretty_date_format) if critical_care['values']['date_terminated'] else False - # - # # get transfer history - # # - search move on patient with parent_id of spell - dates - transfer_history_ids = activity_pool.search(cr, uid, self.create_search_filter(spell_activity_id, 'nh.clinical.patient.move', start_time, end_time)) - transfer_history = activity_pool.read(cr, uid, transfer_history_ids) - for observation in transfer_history: - observation['values'] = transfer_history_pool.read(cr, uid, int(observation['data_ref'].split(',')[1]), []) - if observation['values']: - observation['values']['date_started'] = self.convert_db_date_to_context_date(datetime.strptime(observation['date_started'], dtf), pretty_date_format) if observation['date_started'] else False - observation['values']['date_terminated'] = self.convert_db_date_to_context_date(datetime.strptime(observation['date_terminated'], dtf), pretty_date_format) if observation['date_terminated'] else False - patient_location = location_pool.read(cr, uid, observation['values']['location_id'][0], []) - if patient_location: - observation['bed'] = patient_location['name'] if patient_location['name'] else False - observation['ward'] = patient_location['parent_id'][1] if patient_location['parent_id'] else False - if len(transfer_history) > 0: - patient['bed'] = transfer_history[-1]['bed'] if transfer_history[-1]['bed'] else False - patient['ward'] = transfer_history[-1]['ward'] if transfer_history[-1]['ward'] else False - - - docargs = { - 'doc_ids': self._ids, - 'doc_model': report.model, - 'docs': self, - 'spell': spell, - 'patient': patient, - 'ews': ews, - 'table_ews': table_ews, - 'weights': weights, - 'pbps': pbps, - 'gcs': gcss, - 'bs': bss, - 'bristol_stools': bristol_stools, - 'pains': pains, - 'blood_products': blood_products, - 'targeto2': oxygen_history, - 'device_session_history': device_session_history, - 'mrsa_history': mrsa_history, - 'diabetes_history': diabetes_history, - 'palliative_care_history': palliative_care_history, - 'post_surgery_history': post_surgery_history, - 'critical_care_history': critical_care_history, - 'transfer_history': transfer_history, - 'report_start': report_start, - 'report_end': report_end, - 'spell_start': spell_start, - 'company_logo': company_logo, - 'time_generated': time_generated, - 'hospital_name': company_name, - 'user_name': user, - 'ews_data': json_ews, - 'draw_graph_js': observation_report - } - return report_obj.render('nh_eobs.observation_report', docargs) - else: - return None \ No newline at end of file diff --git a/nh_eobs_lister/observation_report.pyc b/nh_eobs_lister/observation_report.pyc deleted file mode 100644 index b1bdd4327e98d9084b30a40dadeaffd7c3039d64..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 12648 zcmcIrOLG*-c0Sdu_ZuN3HHbkx1cCvH_kcz)yaWR?z|djU4F2OJaOl~?mv+uu1^Rb3^ufB}1G zRn~dr$;>a$IhmDJlm4N*|Gn=JmVT+n4WaJ+`z^w93l8<88zJ-Mni#YdNoISF%>s zcDw{8SD@h@#>FCr0vG@azNX1)qEa(M0<3;%&~sqbO4-?Q?y@_EizDVHDoYcEaK$82ME-=jr%+#Ytf=S>F4Ol?2; z!*wM!8Yn$);+stE0Qs4ucrV*v@m`3>$m^pL<{LmtD?Io89DYG7X`=)rTf|om%Jlzc zgdJsooZpOifKu++lMa#JS#QZdB+a1D`_Rm|3~Mm-mvK`2DWe?*wu7cpM(r^9kR3pc zBjmS{(~`zD>HxgZKTNgv$!{m;KpNLbR69zQ&h6>e;d zGSbCkbB`gx1&@(J_#g_~c>5MJ{q&m?vmGm-0{0wI_3_+R0?2 zCzH@4wtZnua{=I;KWR$fr@7HoMY%w$CpxL#Ck0GV;}~TY)4|AVr^ttkg5LtTgz*M*y?jUq(r^!D}&f#W%gh~iGt#z8m9we$W zfHcr5La0@4Ne$l*fyvH$>k$c9oTD@9iff4&%Lkp1Tx{WLxplJ*@ zF?FZ7``4a~Q0*-FXGxtzFFNV#G&%p(4EoCyt>6Y7KSk5)zb}ZKqRh1?4%I#&{{xv; z=VnV{Fq+$7@ko zN+sm=^8(ZbQfH}lQRaSgbYlsONB2ib7x_q{`x34HJNcI|@_!+Y?*5-2T-yDe{f$prgjMDqild~mC=QdFMS*_aM{$tU=P1zs2PpQFdWZrc_Xx#BQgd{+ zc2#!DP@E_KDvy7*u`j`q;=Xh(=}XtdmuAG5W+GqeersR)rZetK16_?gp`M2t1QIe* zXaOGMJZNa)wZ8OC=gK#o4;ur5Eqxr2>q$Va3m`WHkQ)&oJ#P)ji>`1uyhx9Azbhb% z4K2JDkQZGmFS@n>1dlawKt4_a^05GNlh%JE|0V$WZ%Nj@Zw<)H?hueK0LWmEdd&M8 z^(5LGeNp!ShU`(#yF&J-4K2JDvX|W}FT1yZ47MxHD3$B54|ft^lkwFp5EgC+(`m(M*z4h0NjlL*zwi?{MZ))P}ugi z0DQBl=4%1?v2W$azAXU2gLWK%&yoOqCIH-%Gm)Y&(f%*7uDoby;kAJLv~A_5ZEprhHVH^p0GSm)W;G!9$={s>H3C?Vtr zN+~i<%l6<-@>&ip&@hleikcY1V1VRQxii|Tf5ZtLR;USfQ`nsYOzz%f`+%A`))@9vOuXZWRWnkz>tj%HnPwdvcLjEc54TITR?`> zl{jQyBq94kAbTv3J=Tz6r-29AxR*V76=V=HWKv|D+F)>}zQS<+W3UdHR#3S}S0Ec4 zN(?wqY7AK<3|o`HeALiFW5@yv3|VauzbzocQBxeUFO!gcDUg{0nW-WBiu}Dv$i8|N zWDqiBQe>QOhk`qStaZ2!nO0EwNLL`cIh=qjP-+ZWBn(><$o{yYg~pHt78tT`hw$41 zGMs_OAxQFn(J=)}Mq-B_UG+nMLc9hHn9~Lk6D#4J9GN+Wp!C z)?kA$xHH@#{o&387?3vxBDpcZP@R{XYBmNSs0jf4UG)x!8x)0O9=t2S2?8JSE|9-K z&V^mL@_P)YGrX&xKv}Q@=>nw3M2b5;ORj4y0_qF9Rt9(CCnqFU?1bcRb^$;+V6tGr zj#KrcCT=6pT7=fGBP~#MEwqETXzzS@f`=YHJn?Un!r_U3mlO_9@bIW`c;e5H!r_U3 zgA@)={ClKuc;e5J!r_VkfD{f-{5euMJn%i#&$M9uQw z_!3@J-jSEG`Yoo*Z(m>iqSNhx%Gk$KW4A}g)a2OmC#V{@Y-o*J7S zy>a`#+o?_F3SM!o=sk1!Wo^6(w`!Hk?)DAbD&FK;70*4;m>+)wJ5kLQEAFv3P|TNY zTbWhIR;vZiJ@^JST+g=4uDkyYRIR7(8<~7+6&IJ@to0?W`X;Sc^VK)%2zsW)DlVxiS-x2KGP(fL1#ey~ATCR&v0k-a%1Ah&;2XJPuwM zHI-fPYzG`yRKRjq%U%uvhZhG#LI1f%nyun{2mY=h2>3bCDL7V6+wi!17d-v~0u_Q! zI&%0hVnHNFCBdxa%Bz;^@od{CP3<^h2V=;Y@=b_*$Kg4}MZje#llzT+iPBSGWSR1% z2oFix*0g&R^kikpw9v^(U;!*AU8gWvawj)`rZG`+<*O9wk`6Dq)j=tJM;x1WrTk1L z05}Oq+-<(s{p2|U<>KoMeCWaXOOylD1Tt8Wv3j|D*)o~p`3z!TCYd8vR1uPbUEY=H z$vZ`4oie7CQ;#$u2~G9nn?J8Czj)yroGJE?STV|4x)ovdkDlWyYxavw&ZU9xLBMzo?DgmNI zWtjWIFw7&Md1T0(=m>M!5ufH9HGT*;(lxW-2-jQ5Sw=vH?Rrj?Inn{;Er`!v&y`(E z2UJB#1+iX*Q_BsqhwlF!yJBT|AQJvT#*+$YYq=^$EB4c{r3Gn;r&PO1FwA1b^Y(y= z`fHZsnJO>Yg1a7?lW#rHxy30jR+GhO9IoFe_ zdB=Y0T3L>18BM{iJ`*ivSydr;L?svbn{$L(T}H68_EHYM;yGE~Xh}^;FRY_e3-=4N zt1M@HF;sD_@`C7!12gQHWF835G0$KSKbWH|*Z2BysXCVDJ<}j8*v>LqW%kprm%Qb& zXIIsNsoB{q*x3hMk7FZREo7$Hy2e>Zj>d3p5QcWgV#O4S8%XT2V(fTU)9f%Tr7CB2 zogKB1X`P?z%E*{?0$EcNjA}l(=MLEG&yX5|6-KMD|8LAhS`tq$u@TD7L~BH;M8u3x z6qXSO3z}?3bPe9hZpg!;$(AGuNA;o%EF4L($&H0J$UEkEy3kx6Ya(Z8Hv1i?K1niR z=H#T9JqJnlJYSyhWglNYz(sP3o@6*)_6+mSGN0Sk{KzSaD$Co9?0%Lr@|;((i^v{e z22WaS&6T{fX+0N*7tIhgcrp7zh@xy7*5vBRD7X#yDsnZ#i8c8K8OhC#ajVSH%dDN3 zJ_X{sDlfm{8k;`bl<*1sj5k9PqI%aYqQE72g#5T5a;*H=_PS!8S7sUi`z&R^lK#&X zk4B!=8HYj!yEhmT_Pl4;Sx56Y^z&fFyggXxr3&xyf*=Ujf8Hc-aLHJW z>;$*U)si~03dFY!(#1*WWiN9LcG$>;+4ixV zQrL-xyG*l;ZI$IT+FoK6VAs|e+~ict8OD{5pi|q8Zll*|FVS zG?w0D>`5Om+F_&D7)gyA9mX!$>`xs}^%&>VJ?RnSXwxBMM^m?P&^T+18K;a zxPpJv#y0RSHuZwujh2t#@1XoUV)Uk4no$p&Q?Pl(xM@tVoj9EuHqwxF7_D#luOro$ zY$Kg$Ax7=v9>jE~jLWg!yoy4-m}Zg^t1;=j(o@EiaRBJQXB;*9f#c!yJL8kOBj3(T zb}?m>W}1?UOn&%S#lwUtTZ;PD)+|<*EIc1&;c5KAI93@v%N4V8xXb=ME_Kg-clXY+ z{Wko`10j4F-rQo0^SUU>k@v`!Q{XE z)7O>#9yc}ZIvt6v0mxygFmR`1r zYme0g)rd4jCy(^x)qAf77w|S^6mw2DRL;0m@xY+G&cgWcozvyAZU2`T+qC!#%RjKN zS<$-wL)-Ze#RfATsoLBXiCdEJlJ!}p{rQ7+Yh+X2vnIL5~>gokoKQzb_BT3_xocK)hB~9m6MkEs z&~vz{+g{Nzr$Cz%`VBV`qWs$zLhcA_d`Q%Kgv^*2J}}2_@OEAVf`CEB@9*pI$sT(P zDsaR(Xaa?hP$)N;$}kyRbboPzP7zlaujqh;c0$&!udQn?y~Q-$f^*8)!4GU?S=n*T~{ zhKOKnxqt9{=k0+P3m{@$V0R57kY`@dVzoc`WlX^sYaiU}Iks8%Q2J-qC5Q#;r@V8v>q@Nd3^At{~#%PcUW zecUVBLt1gdqfQq69TjNC@Q{iuiFXzn`p{5ql|u~C=d&Yb5{ch?lpFaD_vk0HR>g+y zsfzTRg^-u)Jxvb3qJMyLe;M5SyHaTLVCUeEH1j&&6P2idaDEPv|I|s=Pm>024lQ=U zvhd&F)3{SPGooqE(;Qm^Zt=V>%X69@^qNCYz72)m;3=AI&f`wIcohh>SnC}HrE}2!E{yt?JWctm;K<;G8q91DOImcJR5|lyCr&Z zEq+=4-^Pvh1Y+va)4Ke4@H+4C^9Wlx`!f##mxHnBY8Bsvju97WN@Z8*ubM+gX5VIb zvwEQgA5gEdx^o82aE;zZ#~NE&WZHn~zW>JlROvS4lsTBJ7#c7UIq8eEo3mH}Ib0=B zUE2Ify}a?(;GS*j4N^Owe!SmrjIdw)lWC+bG;4OhIrkU2`eSsnHu6ARD1-&s{OB(-n_={dyCwpSkg#efih*!LoGuG<879B);Wg6CO zve@$Py9&9RRfV4V{TVdUJSQvY<5X8(0v3~ZUb+N&)ref|SA`{#NcJy8>k{I#v&86^ zDl6ftxn%{dEeezS`vwe|xMX#(qci{)g5Tx|hsUdj|MHf7NA=!7Jgu16i?b|g=JpXw zVOYI`0WRX|cF0>tT{dIUkeO%Dn(~au+f@sPgLP&Cv|G~N#WEyE00m6@h=yK@9hrEB zlRI>!nyD5(cj=tPp;J?uc~OPjx;}TF09W7}Jd&^Jn7+vKIhOMH&+d=h;3WoWvlz=Ci5KnS>Jp7WhYn?Jsf8}xZm z00$;vl)fsjpYWochdMty!HEA+_Y+yqp;pgI?=ap2r*_Tt-wThRxI%l6qTWU8VqsVP zmmD*+yw_^#w~IQI^!YI*UiDq;PFxw-6QZhz{9C=u#^O#2jhy$dm!u~tUos03?S$)3 zaFp$Gr-@iKe!Msk0;oo$H{4FN(rMK*8~2SMB`e#H7Hwvm+Ds7GQ)te-NnEw-tCKGy z7Ok7I_icq9vdoS|?V8n|8)(W<-tR6(@LB!%LIGX=!v5Y+YoyI0DXMumx_aFCUgORr z#KP=H1T$e4{*%AYxXEpyhoS~<*6wFER|h-W<~pzS;cGK6c+BNaCsVAW2JM!c%%uPR z3=JKThoIn|z|ZSZ-dTy|-{cEGQWMm*?W%1IQN{f{nfT5JGSY+gwcP!+9^bf&^{&*~ zw_SAK(*s&hqi0BwtGjTW4jXg@mAX48B6Qi4n-9gL#o>>Gt+E00WxC{4#Jz4!*P*#0 z4c-k)vdp_G#1pO~=Y_4@*Y3J6kOn8NW*iG&d5qXQ6Tz6 zg1h;A4F7`R_LS@(T)VD1 zJX?VT9E7!6d%x6`EfCrx8o&GFwTY$BJ7B2m>?{xPFZ&>6E+|>qG*=FqVMI~;eWBvO z;!~-48s0MbAd_am5k%=<<$z6R?KBF3(u1!eMx`pMJphiEW5nLCx=FnV6NwrF`c8)xMjO zy3$IHp=$DNOVD9d(ifG%j{UOg>p+uWa!=@eC%(PVZ&pCddv=T47g|VAq=~LHVPu&&gewtC$~a zxQr<^*0Cf#Ke@%t-<*UMsD`r;*tx%z85s&JsEOLqCmnG;|I5}Io4YxgH!(3NQRbBJ zeDd`$4eGBA%7x;E{y@sEQvS5B0a&bTM!!qREnCvFE*dxLP7cIYbWarR?T??{5fsaQ z(Bk6f)$jO_3MJ%MrFn!^>`k9GM>X0)tF;pc4=iQs*R@gl)w%!6M&2%3)y?npfP2cj(d3 z!y+Ltc&w1s87*Ak8Muc;Cu=pPgdN~Kil=w3sYhHU8~OHCGsMaTpeWJb4MHR!woDDt z?Fox(O?#)P#$1B>cL;N9q0^wrU`YK?$L&Z4Q)9Ohy{>D5pyS}8AG_zg%sFzQe{#{P zeA8)y^pOuGuQ`#c2b>_Yd% zB`|I&mQx0hSq~y4%$U-JWnw&uq%-kB1|nWpk-qhdcN$Wb5+ap1b2S$Ms^ zdn+5h3`RxO+(>A2jKLw%)h741n(d;`mLlDb2@3(9zt=8&f;R77G7`#i3rXC-{>w6l zK7rBsZ+@GlUQI?2uV>u)4UF516`=L4D|4vyAUg1gWcLWxfhxQR`m;~tL(EP^_(A{| zqg1$jcE4vZE%`0%wz{}B{MLpMd_BI>6F5|{B*JMGlF!6lDQVI4Gtyt+p9!+rm5r~Bb;*XU6@8-Lbu{RQd|x}g_3~(xDYs6PT=orpr?q63-y9FjgYy#r<+6( zI&oSV6xz8`>xnBx!cY53g!%XBlyvnND1t;Hv}Xt>>rAA9qCdy3CWqfBx%IjF$6RS$ zjLXFAIQokgX%OYT2}s_akUleHMrI(TAlATQxl3JRtcBM@eB-RXBOO=MmhXhfn$ccH zHUI7vUBGfWSWs9=&7A@WrDELH3?JW08Yj|J82XUwMJ)O$FozF<9Nq6!y1DL7il`@GUWCYTYlcYDv&q>5$CStg)DbOg{#-Xwy4>$iUx_h& zIR~=S%ZJG}&I*iGseRQ3bEc9wp$ftnDbOVon1jUA*?&{ z+t^SnHf`b|BX;~NH7r~G_P$K;kkLP0LyItIn?*G}9P1H72;&!tYxA>@c7;s|jA=>V>(I1{j=QIXJ2Ng_xs;^f z{BuK&$a60Lap#~y_i{tsd`9{eqd{hva{alN?CDmt*7EG23(igT4)>4s#02>gi$gVH zP1|j(?`3vdaumGnro>7)@t)z+JZ4>@Ei|dqZ+W_J(cF)lOe?%lXS*)@fgd=&>txme ziP;Fg#4gCNJP@96kBFCfCVzZa>bPoQHmj9I+43;DviB(|Za3Us`rTRTus!8~uUz7f z9~h79b;H&Z<-OeB&@X+qFHk1@!$X^9hq}b8e67+6*4D@$zHj$Kh2BGj5?{&5zF||SGirF3%%F-BBZ1eqGZ8-6y|)-MjDDB| ztDcHIWwWNAsTD}b2l*2_NdkSVYXglSK4{n@u3!e_B@4&QhaF7dAFtfDF>_1h-_^?8 z-`{fFc%YX`Wm=%N*oVEL>qO)LXlydc2fTrQdZW!bXpxo3-|BE$jhx)65FVE}exAW8 zeGs><@qYQGH4ViA{Z7C~_?Vmws)(*}yq(qSLq7J0aw(Pb0YJ3G&xUgbDZw0U!{vpm zA8Q@Sw?ie+I?4iDL)~>!PdStb4v;un-X-&SUJR4jMS)P=u*tJUTTs4I!-U%x*L!P0 zA7S@dU(+a4qJEF*XVdtxJIM!I@V9~}TZM*~l; z3w}QVM}hpL18sS(kl0FM`;npM9kWByk>kxX`whLXQQQ>&@UfRezRNMmFT<#YOhKPx z!(G5HMpDmHPx|m&8X7mSos{?QiQuLuy@+S*w{ET0w(l(U$v`h8Iv<&=v=Y%}kG`FDR8NPF?#_yN?^rQIKU`>~4t7kM(# zSl#gpCV`c%Dbc0gHXNe0UtbnP6+tX$uE?NPi}P0!Yp?IncF#RFK{WqCN0De8&gix>(8V1>s8sno%1f?+{zr!J^((=^ zcs$;Iw~nf2I30iB%CJXiro%rf?*Wwdg075BN10c|!p%cOQQ(5iq4Z!O88qp2NsBm4 zDO5vAGe;YD-i%LL?QdJ(>Ai&0F@W$e$1q^^~bNn$2b>B-awfGM(Y> zh4mI^^aa_Bq(ems9i(c5M!n(sET_g@K@W@8i^yt9z%daa;co1R((ai-0A!+AnFM6j zM*YRtNnwKcy2HQ$B{IY50O97y`5CO%U14PYhem>B^)8$QBy2QJT3$JZ-7i<^X)CJe znEZ+YA53ky6Yi7JvBQQndMD`3o|%}qsYB<0IeXP^c< zHT!yyI;r6qblVyIjyztv3%P!6noX74fBCQ}c4xWdg{<<9L%8Q1_fcejK28ejCBxC; z`G>!agnYu$ncTK&VPcR<`vDTL0NNs)FbW($gk` zXOT(FW_?>g&z59JIWD@vR1xd`>t#fnBmG;}Pi-5{h{ud0Ak#Z zSE8SD^ZLsJ)E{4k@fWh~N0xTQr1vL7d`GWTJ_F$4vdBbw2-z*WN9ZvUJKDkGvprR9 zwuwoX;GVE#FX}hWi!ZRw-3U*1pV`&ts7v=(({#M!Z@{CglTGUBo!R$Lq~hu1oHTW3nNUKL1;ygA^OHp%7kYx!c0EEg$1#CZ(78`ay+5o8S5a za}Un@=nfOoq^Z@HH+mte^~cTr%F7Tnl+z$iHrifL0YZ4TN((vIf1*ya5pv5|e$sIJ zrZ-wDXK~b=PrRy&w&O+USP2I$PFCY6bj#?;2dY?y0U$X`PlP6nK`@EvFN&D$<%?DsRnv^3 zFz;hS2G;AmT(Xx9MtQ%brM+{XSn(Y^6Xb`N0Cwh+{>)KtBS?4aWjZVqDKBD!YdNf@ z^kaJwc}>yOaF6Y0(8=R0Dr^0qLZQb!9+4N|Q<>*F@)z5oBU<@NM2#)=ja=4xYQb+- zKK0GNlT}$(n^bVCHX74}Vb5r@=K;rdasB;m6t=_~;$V2V@a04j2$I@`5jBW;5irkS zp$gz$>uI1p$JD}S;+UH{53yzU3n;n8&rabKRd1PHe6$*Wzg=%#d`nC>Bn{6SG#!Cy z91-2*pKZdOIK@;6r8Mp#nlR=<@da=FeC~SVoSjXNm+dGVI;C8_Ic3q~`-{%7L>=`q z`$ohqo_LgD8qJ&ec1NOdkfrXNFNSQFftxUKqTkg`+V7m5InLl6_y(ymGmGXiDs2+X z@__jVCZ;MisOcKKDqicOM=^F2rT|`>*gj+tRD8&`RA+Pf^m#_vip@I>O2J_~Tr8B@ ze?JMpo@e9c#2{73O`3>!`nL=8dyQ0CYnDe@%~kizU2z6RBy7O1#tW?hp!_*%kW~Q5 zm&FKJq)Ui87JTAVKBWX;b=P8+XelA&C6R?;HF94a88TwT3y}zKe3H`Alj|z0xGAAS zZ@Z>$fDuueIs?s;>#j~C!5M1tzKsTW3>wE;Mk)-p^2GZK+vV;##ZY~?DA$njTg~_P zR@XWJ**7L!O2RuP*8sK_iyQk*1M}fVL}FKSA7=0%tH(f`P>Srr+R=3G=spAU7=mkj z_E$eEur;c>mx)i@nU5UtLPPHi1EYj<|9zfFIYAqIE8aCEx%b# z9$W1F#uJMn%N;p57!x%lO8X7wr2QMP6D1tmp^cT{53S7XI=>gUisq+{@lA~(#nX1f zF!^jTH5M;w^QXs+mEvG=R6iVQ1y2$1pI(b!pfI#JQ${8g>4IStFfMPMypB?+%LGFD z{H}VBoVS1Sp6@0O_-m1+8FrO9WMlBtXHS=nj8{T$p88+5dJCs5|8ud=aNXe1dr}gK zC6K|+KQ`o;HB>&LaKq#;>5%b?ymns?m?Kqc>n-~}k{SrBx29H<^-~nfgs*xkginMP z*Ep-sI%|+3moOMdlu~od2+|RQ<|OfC)zCWt#aB_kSDf6{=odQl7Qp$BfCJva-NwH` zd=?{v`nrN$F}zq5R9B_Q3RVo6CH~NOCT5jFdTNr}XocYxRhLCsRD%1D5nvRq)a4c-+C|r!4l4e^c)DS5L z?%z0-+eP228d8YASSQY_B&!q|`Y)Jz-j-Q!XW%P!!L}cGFr4oK*Lrs-F!W7U*(;fS z18X<*X)oZTUmK_`&@lfDAy{V12e3^nVj@}6HPb_Dd;OXPIEduvWLJ|M_z-CcN6)DQ zokjFek6yw!bC0VEwe&U2C}u9uToNr;L|I7VGyT^rjYS}ZLeVgmI)u?pL<&ty4X=v2 zozUZJ329!0IRx^AxGH4@6>^6RF|cb;<3`6WH;yl`=&niFvp#x`Ku+#~88DbU4vTmD?VUvbG75jRS2?nz>reK89JAtc}?uiPTu& z@uCf5j*jk2z~(Jrr4^B3+~;Yy%K~s1UPn2s`cq@~v)SA{S|MEwb#yY`@2pQ6AR^b_ zY)(l(ZR!D$g|Kq!|KHd{ZIEQg{wYXF52lA2A{s2vS?8K?l$6-{v^>V`Dl-9zuu0De ztS=Y%0?OAd$Bc{;ul&3+8%N<~OZGem*(MO-1HKU#PI=c;i29;L<>(-Ca< zq5TEl66`D19}J9xi*AKzA#2fzbl^&fpHFLuTkxL@=jD$j)odS;s0H_&I{|$+?^;jpZ9X zs+~Y(f~o^E;sW+Y)Xb^g?&x1Txkfe*(QQtn&Y zY4WRcNJ~0Uyc-9ppN-$+{nz|=%v>6qN$P?|wS~u_!?LNu1PQ}pMoKy5Fm&l5>pz5y zJPt>de%Fy;MrR~rUi~@y9Ws@rz3PU4OJ_`05XKA*S((X_&$X{eX&mNcf4l5$K5)Ub zy}H^=XPMl`0ET@Li@JcsmVg+lIw|k3>NcZ+n*q-{?b%sE2Y~oXueMW&?vzWd4e5Xp zvsmBA`~9O1#oul?m#%MVMY4YEms34fd`8cp?T&i$oCJaAPIlBf>~X|?3|495Eah1_ znp&gRS8(k%^C=rA+5uN@XfRGkA zl!yK6Vr)nNS+7#~-Pbz3nCCy-k4wZI53*#Zd)u!MxUPy%q(PZ5*XE%8j3V~<% zEZoACwyudjBirz#4OWJqIp>(fFGLVuYBjwkanumfrzW*O^U(-!W5N-*IllO|kMR=0 z2PkSDFcuDagEf} zZISO+!M_U!h6J@dJ4UwpqMM$Ab}nqlA2wL;1X&fH!#VQ9ie8oC*dB!^8t@M`LwD+F z0I_MLp2S%J6c7;Tt^Z*G&@S^0y=iwOFR&6i))8W;{ZKkc*V*7i?E6)w#|jEA$WXBM zTsYXzlbdrPUc=V`L3FA9PiK-~ZU@N9g(|a}lFA+OZ57q>^KaXu6m=x!GvUA4S07ve zhB5ekqaRtcJrchLggtF+rXyV5%Nnl&1dckXc??o>`yBTzu+KGrZV$vB>-h(v74Qw)+MKh|g6_KM?%uz!jr6yxRhpp36GXMrp49Phx9q!$Bj>jknR$oLvHkKAE52aO8BwT3-#ygwm#Uk=Bn$0 zWNONg?(2&0W`2*r2Y3rb6RzL;VHWMhqf+y7>4%dvw8vjU8i2M^TESEC)kfb}5 z<`LKyAA$+%R4jBuUOpWVUFZL;&Lx0)6$&i;_ALOz}4ADWyuv_dL*|Kq+`R#n^5Unkh@XcFmJHwd2Nj_Ck z;EnqAtshHn%zRby>FyAsOFf@3=Mx@2YgznyAr%%Na3DC73^BTZoG;YZIF z`T;$Q%XE$>vW+jPA^F)@WWos^@b=}h24ea{9e9OT<0}?JtZQ?(*0Xuo^zA;eC+|3r zUFtnOD-uHEX$nOk^YyZfU34npo$bUeXEa!4r{9f`H|JQzu&y==tc{|RzsH zkjrtYTENX1@v&SH= zn2`~gR!aa0oc(wBhnW&u#lPnjyq7^qMfVVs|L5)AaKi(LlKd(GV6PKEb+;V_N6-cLG)tm%)r4*9~=J+VXiya}H+HyEECOb7WAmonPh5 ziZ^NKOgQJD_c}FrCnoqT7oidV74K9j30*p-ZA;p~P0}KNMq+!6>*)JdA!5;V4job# z1KTWsps+Pr(D*uNM+Rtl>1LF9YX&K@&@Xp$#i6%|#rHHs=h%K5Pzp135u$I{y@nAO zz;-ak<@EvBMhvks7(3Pd*CJkcQxcR&#b5o+B*@d$j$2p3xPMUSiTBZr<&9hB@~}%a zj)T{jb2S@6v865!W152Tt*s46OVn8Rad0+h$=Y)S!*E3j%Bpy6`^||>uDd#Q%v$Bu zCRr~26jzwzKH){Lml)?d zu{iVmBQyu>9no18eBnLRoPBl#Y9b{ud}$~I;Zu8x0hY;&$$bo$nvJ>8Ur~S}1{V>G zYCm9`UDQjyqIwxFV40Q}SEz-v{IJtD-nT$M)7b%OX)!%EZ#C!4a*OPJ8{=?;AdvHt+<3DYiB>6W=_ zm4Fvw#*vA^wOI*l3ZQ#Q5jWW^Z3}0U$ifDO={ZcP7ln%E&P=V8r2rMU|FKB z>%i3{ik;8v&z96t$6pz)%ze>RNwVP(@;9tw$zAByrR&I39xofNmWvX=VQ4rc_1uhtB> z)$CMC+H#TlH?8vEGF{8|Jfw(V95_u{4KVl#-)M#WKeXHbfK2}v`1b!Z(W zI}~aCx$Y?~9nn*&+uP(j(r9S^7iFvPi-cfm#)G4BPYn(h~v|A^&%d=lfMRO^o^D6VJ@WvQi>Rm#X{ zveuCqTv$3{cv{+VcQ^F!2*fKQk@RsIF~k<_ZtiSmGTB=Gn_?~x?v1{@mUTE77N;7t zV5McKxX>L$b7=b~P;VFw5or&_}a9qz+to%zZD^4Q!htnYd@A=S5THG z2rAx#KP4p@wp+7CgW5D29?AD>0OviCo=@;xzpZ)=<1|ScHEN9`G%G+|(Y1PwTJ#mV ztkHC3$FTHTPo-$?KJ`T%L~`YB8b&|>q{m%``uF1&Z-W0R04l82cVSE&UR3I)N{_I= zoxF}{K5q$`s^Do;H5xXsP|rH{T&!}ev-J&G*ELpE-G*_5?+au6^2c8aUORRTcbbLF zTzvtyAB~9J_sUPHk!jq{%_4C{H_Y!>zK-a(J}WZb3l^t`Jfz-LW?rH8gbu}cjA{FI z&j%i8xt4&1t}G|+Caa(Y(0|tW{KLI?ZA@dPh4BTLMPHK{?%<#@?!zPO=@C_#rKrXH z;xFdC@-^4U3k?@fx!Fve5q<0ZGE{UwY^1bK*oXWNNOM;q_aJN}p!cpIn{fU=P~u;^ zl*VDh8cp?%8QHc6+Ol@P)|53+R(EZUju%<>2LuETZ5YRWjf;&|ZqJKn4G$7yM}w`? zu+}u;9{Zi3dR0~>8F6sF^iF$hQJQ`K+Q^2Y(PE)?CTP}ASa+*k{&$#Lg*3=MgEHYq zcrsH53Qx|I@>5pXC=W55%}jN28>#FEV!e+47=L7$D`kjLThfGGE$?5DgsDR&8 zp`|FAQHgR~6tf{oJsV%qog(Ee5{@<|zDf#@tL%G#fB@FloO`tMrg6!}V`GC`7K(K_ zdKbh51a}6bR&~lZ`gPwvRNx-{M7d~n5~2Rz|Ec~28dIlvUW3tFDClrFEI;Tr zQDLxRiGBIQdHg(-yUfh<;Gp#>r;Cz>HuHNWOrXHa+D)tNzLl+opW|4-^@fLEq^6$$ zHE&<{IJ_k@uDWj%V0MBd(_%s&w=(1&#c1l<1i8K7rb=MxMKGma0a?$EqLuw(`=|xb zcyo6{_Qk>(FHRto`~^?H`+9__jn}Ya+LevarR@KDSjZp`OpyjDeX=OK2Q0?9q;&T` zWYeTq;Z{36-)BubiwQ`@thFh~JB6CZeRwG$Y~g;N@M^e}g3n_C=ROv2H$SUSBiQNK zQ5x_MBAQT|`q_ zoJfoAjpl7pb~cr;;&L^;LZsNwB7gR)X@B6U(S0JQd0n_WT@65YW}GOR%3Xlz2`F01 zNSI=}fd%+5|65)9y{r;wiBa>*w!KQy?>?q*-)H^6q`j62WZZ15 z607&)!LfqX5`A>;?!4wQ^+uF+C@gn{9y^9?6p1n`(eIlDHp9_!{mQ;0fNDsoIrC>y!aDavDdq!_N?`|FV16JuHAQy1QHZ>|a@Tclsh_YAm`qO^}+> ztHstM?c6A)V^{j9DOj7{am7msS?)Y`={-#?%2&I%xpCbS-p>!Tis|-&-}w0}6Lm|h zn(_8==pV|wpF8FWQhbW?9;ba!ELWdL_~cP?peYja~^ zaAhuUa%Y?FJQ@H14%JCSK~#90?VWv)R@HsSKj+y6iP04dEQ&8vd>d4ZISaLFV+%1y zsTgCbpovbkX$GT}lfo*JC{o&pX%Mu>w-U@49TQVh+t?UidKxgrOf&*VTagHvBv=*L z-6#u^iokRG$GPanu=_lF?tSikp56PIxdRO6ocrC``@8qN{9Z&9MZCx41;8A5DGPXikvfY`gMq4hT~#{d@r%YYTixUo6wse4KQU2U@`mZQ>IU}DaC z3I-mNfM=9(hvqG$o+&YY!O%#E`+;G3izyhei~;V=TSPrm>KfWTlZf$o3n>`zOjpKz zG;b00N(sbSd5b6*G@O>VfO@4ALGhL<$cm5UEuda00e_IUh=M`Gfq4t4S4uSa5k*14 zK%i8)NkKtDttkw#pr8&Y46&e~4rmrpX>ytaMk2ZrqALQrt`|}1nl!ZxAKvnIn&TA| z)QaYjZqd_e4%jiFeUb=p@fA_DJ#8%o1&u;;-U8}@&I#?yiI`TQ*=9tvma=$Ylw170 zOoV*^W!$mAiNNq4R|~Kk=mxgOe|7`wt(L#aLuWz%8T5wO)z*FiR5U_>!->RH1XDZO z+LyK-(sC^;=kKYdHf7vI;8S>yl+%EIIZi9%-U8Of*9yQ|E%&CaGfR|lCje~;hgoB_ z+?a-*YEi}s;9y_`@4rMx5c_x!YD0YUblnose0P73QUzSq(Y?K+6>d&jlQM1ua2fCg z;M9b}jR4M$uj_#=%D8U>4_Yn%JK@-wql`Nmcp5l7!7!_Ub5jx23(B|>e&#YUz9!(k ziayj^pFwSidv_1L6`~_U`U?0;M_ch6=mEZz~dw{LI-@xYWaWZsCpk|+=2Mn%bx>(hX49i&7d{J4ms zg@1wm6@CU1#Na$f9KT?w5T#`#b?+16<4L6`<1PZ8BU>Zf#{s}iz)zHM!*jTQwJZZZ zk)Z#pfU;V4rlbdD+(F8?TYwF~btEuC7^H^SF?7d`_&IzcBBFzm^jF4B1s*27L=M~X&FSh zK5X&A{#*E|VLdS!m;-z@Zz0OKPvEDdq5Kw@YPEbJB|S~}b^Pbk81I7&sxM+^TlX~( zol&9L?hK^d1RR~geL}cV8FyTs0+ewl<2PqQXA8T5i>#JENlA|Y9->A@2!qHF-#o4T zC=d&)XnI>Mb;J*OdoAygkYT{xdEHzYcR2o-;*h{0%D`n-%O}%Q#RA~c6vz8L2F=uT z?{4lvR6N^R6*Wiqi9O=WHI(v~K$5BP8^EK$Yd{y!8IN~#e2oQE!h4*fj62C{`Er6W z`i(N~!@y%Cn=M>rwM@+gG2T#{m)3Z_F(?eNb3*$i2+r@TO$6^YmBftQyUXP!QPZRa z7YFux1(*r^$ZA>ctD!RP2>h1%48qe>d=5W_&V+ak_Rl19U%TFFd0$GBP{y?Y|CH8v zeKFvtrrXEQK9mSkv7zABkF37!=e5)lrxQFOpzG_vIaW(s$p`_gmakhaXW@@%ei?8- zfX@c@3*}B=YJ&a?t(IvoD;5Glo>%>4z#HPO1H@vWwL-I>x9)1GX8o9yN*hJJahKKd z)&6#h`%D5h1>Ex(W!y;t{rZhE?m8fem(#sg%Nx_u0}z)9n33j~eKDX7acf)q*+g7f zp;?58X7JMdcQcSQCa~Y?&>O}F+0%fKpD*O=-7l1J(}1rh7~(s?wJFKz$<3sH#v1|K z@SZ-KdR_x|jriJ`vp;kIVrivzk>I}8HA_}yp$Rx5uwP4(n_4ZOSH@ieJV^hXk&jJs z-%2Rs&ctg9U6eltTv5$*y+0`9T7k<`7^(yKHt-DIjd62tS_iBl4%<~)5D`^+khTmh zm*-?6$TK>y-*w8k$E}v{gx=U{`Tf|r{BQ6P0*6uA0BUxg7$4(2O1O*IkAZ1c%UZ;Q zPA8dd?7%xle5=~u*?=^}u8FhSqNp^xVnY#qY53aPw`Cw{AHNOkcLwk?W!!YDW$=bl z9P)H6aIG?K82+rTFJlZg{Jv1ejRc+mMg|VC1|QB;6Mgs{<4`u>we`!bZr~Z>^yy7e z`KV<;Q=jcb^utkWmMqUk)O&1A(DxL;DdYYHxX)_&<0L}jhqzV`a<9ZMfJX`c+O7wt zSS@#?r|Nx_aR&o`6xe+yaAAmV>wq)Fj*Umo7NX)=)Xrv6PBmj(mAsy?|1kX8<#J`* zM!Xx?O5ho*<<6wyGN6QC6P_8^|JV3PimucY{XTz4_$KB&tL6HTjswaNJ0{LKRtT}6 zQad5Uyb-JK==X6z3j8R=v5p6Bh_5}$xaaXv0gnUEroDlY64MBGFxY}O!lW;=N`xLU zb(6qJeLxvvsl0b-)JI;BnAIbXeYNrde{EO;Y$jQ{hyBrve}K*aZUnX|<9>l(ulxt_ zl+|)e%J&Q*NfDZL8Kw0I%>uC8Y8jkIcfgz@cFOiEBcCLxFZNPq2FsV{lF7_!8Idfs zr&@;NlNNmrA8z%AGR`UE7AoT!wMOCD%DB&DaG$Y({Srlb3G#OIRSbU+wlsi|y4 z<(!|t+AZFmpNXJ8h^H@K!h2cd#W>(rV3RWL-{SnKjlfuZTF9CZC#ecO>rJ$FZFocM zn$Uhea7m?hkq}oOzItisIbNz*Ex(J8j>wx5a3S!#GVY1^z`x#^8)r_d1)*!$JxPyK z8rl%M#@%pm6md_bb`gB1bjgZ})o1ygda!ZJn=-tLII;1F2o`cIdP> zaf-%4QGg* za?bH(L>1B4(N{;lusF5EvRPua+-bFZz-l=ezh(c|ct`1)I6C*ip+MT}>pl2s_{Dg? z(W_+b{@r&T9bGa#%j3< zxCgi=KIb|eUsmjFy!TA4e}|s|(mH=F1E*Up*TnyRL>c!CK5=g-Gn8>l(@G?q7Y%2K z)eymPo#lf%Y3qOb(56zURPAI?z)6uPuiWoAV#uZVtYoQSwcL%b@3#uLDGu4$SATB; zev>6_Z<$k+abv8OZ=^8RiXKJ?fYowYT=y_EV_XR^z@H=)mnQ?#5b>$(!_wL3xgzT) z@gefc_yRx~cOpKo=@k5zGmYg(8$O?EQhF-{vjDgNzX21%S<1N2S}h+A?4LUgw?-`J z8>{7dtEI78o(G%++)wf{0-=%gRS~DV_#(+(gI|vm6gMOT^@~_{DC6#@{|Ck!t(L)A zrmdE*0H0UJEdzc?cn!ar8X|zz@~3fG@zA7AN8-z*rJ7bTD+)u*j&tdM9OCPwknTNx z$S31VSBD(ZXOU_W{5o+O;Z?HQm2uy+T81W7&W&PfnjIneYR1GxSrTKld=dCrVE4^w zXsATILwr|)Ar8PFjWisEA!bL2Aqvt>eIFXClVx=OEx=m|`d^@oJ2x#cSy32bc7#66 zbK~@biHQ9&CkJ-VV@s@!9 z+V40*eDLe@KY@})0S_zVE=-uIZ3bbRHQNZQoson)@%dLn%d?FGG*r&oP%ku`A&y?X z=sA2aYfb2!FnbD-c%sVYuZ&!~xLPegAUuxllfWuv+|^dgey3zm#?2-CEAxZcksvdy zmhULz<^c~R80KbW+(TB&B)McWqu~s(QL$QXP{wT_ys(P|o>j&@iTBuf+-litcvqZ{ z=5pXK@a5S;c_cyKBs>Jn22Ks^-vWFMUl_LTDGV`NzK^eokc27mg)(j{zJTdAyhHdQ z_=;0w@VQr##uIJ_a>;C9wJa;+ZUB;$;J!i`cdyklbhkJ&ip`pAxs4RkD)eA9-pBF+ z;4DVXPGN}Ia~JSZ-XbdSF7SnVNZW6ZihL|%}%gAc^4SW#q9b{LaW-ET<=me|f zEqNYO^aDfhQU2AkL>U(vW>qr^L#z|5mYc1Xvw$P;=YiiN{jcO}__fw#V2ssrW=gqe zG9i9hB#qBJhWe;G@;itqYM>-7gAirhSbRw}37mqDmTv(L?(rvh&zc?h4VN8w$AOK& mI^bpCWvk_HG8JD?HUAHXc1gNuPSQvK0000 0){ - kiosk_button = $('li:contains(Kiosk Workload NEWS) .oe_menu_leaf'); - } else if (kiosk_button.text().indexOf('Kiosk Workload NEWS') > 0){ - kiosk_button = $('li:contains(Kiosk Workload Other Tasks) .oe_menu_leaf'); - } else { - kiosk_button = $('li:contains(Kiosk Patients Board) .oe_menu_leaf'); - } - if (kiosk_mode){ - kiosk_button.click(); - } - }, 15000); - } - else if (this.options.action.name == "High Risk Patients" || this.options.action.name == "Ward Dashboard"){ - if (typeof(timing) != "undefined"){ - clearInterval(timing); - } - var name = this.options.action.name - timing = window.setInterval(function(){ - self.do_reload(); - }, 60000); - } - else{ - kiosk_mode = false; - if (typeof(kiosk_t) != 'undefined'){ - clearInterval(kiosk_t); - } - $(".oe_leftbar").addClass("nh_eobs_show"); - $(".oe_searchview").show(); - } - } - }); - instance.web.views.add('kanban', 'instance.nh_eobs_lister.KanbanView'); - - instance.nh_eobs_lister.ListView = instance.web.ListView.extend({ - select_record: function (index, view) { - // called when selecting the row - - view = view || index == null ? 'form' : 'form'; - this.dataset.index = index; - if (this.fields_view.name != "NH Clinical Placement Tree View"){ - _.delay(_.bind(function () { - this.do_switch_view(view); - }, this)); - } - }, - - do_button_action: function (name, id, callback) { - // called when pressing a button on row - this.handle_button(name, id, callback); - if (name == "switch_active_status"){ - refresh_active_poc = true; - } - }, - - load_list: function(data) { - this._super(data); - if (this.model == 'nh.clinical.patient.observation.pbp'){ - this.$el.html(QWeb.render('ListViewPBP', this)); - } - } - - }); - - instance.web.views.add('list', 'instance.nh_eobs_lister.ListView'); - -}; \ No newline at end of file diff --git a/nh_eobs_lister/static/src/xml/nh_eobs_lister.xml b/nh_eobs_lister/static/src/xml/nh_eobs_lister.xml deleted file mode 100644 index f989ef89..00000000 --- a/nh_eobs_lister/static/src/xml/nh_eobs_lister.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - Powered by Open e-Obs / OpenERP - - - - - - - - - - \ No newline at end of file diff --git a/nh_eobs_lister/tests/__init__.py b/nh_eobs_lister/tests/__init__.py deleted file mode 100644 index b3380c73..00000000 --- a/nh_eobs_lister/tests/__init__.py +++ /dev/null @@ -1 +0,0 @@ -import test_ews_policy \ No newline at end of file diff --git a/nh_eobs_lister/tests/test_ews_policy.py b/nh_eobs_lister/tests/test_ews_policy.py deleted file mode 100644 index ff94eb68..00000000 --- a/nh_eobs_lister/tests/test_ews_policy.py +++ /dev/null @@ -1,510 +0,0 @@ -from openerp.tests import common -from openerp.osv.orm import except_orm -from datetime import datetime as dt, timedelta as td -from openerp.tools import DEFAULT_SERVER_DATETIME_FORMAT as dtf -from openerp.tools import config - -import logging - -_logger = logging.getLogger(__name__) - - -class TestNEWSListerPolicy(common.SingleTransactionCase): - - @classmethod - def setUpClass(cls): - super(TestNEWSListerPolicy, cls).setUpClass() - cr, uid = cls.cr, cls.uid - cls.activity_pool = cls.registry('nh.activity') - cls.user_pool = cls.registry('res.users') - cls.group_pool = cls.registry('res.groups') - cls.company_pool = cls.registry('res.company') - cls.location_pool = cls.registry('nh.clinical.location') - cls.pos_pool = cls.registry('nh.clinical.pos') - cls.patient_pool = cls.registry('nh.clinical.patient') - cls.context_pool = cls.registry('nh.clinical.context') - cls.ews_pool = cls.registry('nh.clinical.patient.observation.ews') - cls.api_pool = cls.registry('nh.eobs.api') - cls.o2level_pool = cls.registry('nh.clinical.o2level') - cls.o2target_pool = cls.registry('nh.clinical.patient.o2target') - cls.ps_pool = cls.registry('nh.clinical.patient.post_surgery') - cls.cc_pool = cls.registry('nh.clinical.patient.critical_care') - cls.pc_pool = cls.registry('nh.clinical.patient.palliative_care') - - cls.hospital_id = cls.location_pool.create(cr, uid, {'name': 'Test Hospital', 'code': 'TESTHOSP', - 'usage': 'hospital'}) - cls.pos_id = cls.pos_pool.create(cr, uid, {'name': 'Test POS', 'location_id': cls.hospital_id}) - adt_group_ids = cls.group_pool.search(cr, uid, [['name', 'in', ['NH Clinical Admin Group', 'Contact Creation']]]) - nurse_group_ids = cls.group_pool.search(cr, uid, [['name', 'in', ['NH Clinical Nurse Group']]]) - cls.adt_id = cls.user_pool.create(cr, uid, {'name': 'Test ADT', 'login': 'testadt', - 'groups_id': [[4, group_id] for group_id in adt_group_ids], - 'pos_id': cls.pos_id}) - cls.user_pool.write(cr, uid, uid, {'pos_id': cls.pos_id}) - context_ids = cls.context_pool.search(cr, uid, [['name', 'in', ['eobs', 'renal']]]) - cls.eobs_ward_id = cls.location_pool.create(cr, uid, {'name': 'Test eObs Ward', 'code': 'TESTWEOBS', - 'usage': 'ward', 'parent_id': cls.hospital_id, - 'context_ids': [[6, 0, context_ids]]}) - cls.bed_ids = [cls.location_pool.create(cr, uid, {'name': 'Bed %s' % i, 'code': 'TESTB%s' % i, - 'usage': 'bed', 'parent_id': cls.eobs_ward_id, - 'context_ids': [[6, 0, context_ids]]}) for i in range(10)] - cls.nurse_id = cls.user_pool.create(cr, uid, {'name': 'Test Nurse', 'login': 'testnurse', - 'groups_id': [[4, group_id] for group_id in nurse_group_ids], - 'pos_id': cls.pos_id, 'location_ids': [[6, 0, cls.bed_ids]]}) - cls.patient_id = cls.api_pool.register(cr, cls.adt_id, 'TESTHN001', {}) - cls.api_pool.admit(cr, cls.adt_id, 'TESTHN001', {'location': 'TESTWEOBS'}) - cls.spell_id = cls.activity_pool.search(cr, uid, [['data_model', '=', 'nh.clinical.spell'], - ['patient_id', '=', cls.patient_id]])[0] - placement_id = cls.activity_pool.search(cr, uid, [['data_model', '=', 'nh.clinical.patient.placement'], - ['patient_id', '=', cls.patient_id], - ['state', '=', 'scheduled']]) - cls.activity_pool.submit(cr, uid, placement_id[0], {'location_id': cls.bed_ids[0]}) - cls.activity_pool.complete(cr, uid, placement_id[0]) - - def test_01_lister_ews_policy_no_risk(self): - cr, uid = self.cr, self.uid - - # Scenario 1: Submit a NEWS Observation 0 Score without O2 Target - - ews_activity_id = self.activity_pool.search(cr, uid, [['data_model', '=', 'nh.clinical.patient.observation.ews'], - ['patient_id', '=', self.patient_id], - ['state', '=', 'scheduled']])[0] - - data = { - 'respiration_rate': 18, - 'indirect_oxymetry_spo2': 99, - 'oxygen_administration_flag': 0, - 'body_temperature': 37.5, - 'blood_pressure_systolic': 120, - 'blood_pressure_diastolic': 80, - 'pulse_rate': 65, - 'avpu_text': 'A' - } - - self.api_pool.assign(cr, uid, ews_activity_id, {'user_id': self.nurse_id}) - self.api_pool.complete(cr, self.nurse_id, ews_activity_id, data) - - ews_activity = self.activity_pool.browse(cr, uid, ews_activity_id) - self.assertEqual(ews_activity.data_ref.score, 0, msg='Score not matching') - self.assertEqual(ews_activity.data_ref.clinical_risk, 'None', msg='Risk not matching') - domain = [ - ('creator_id', '=', ews_activity.id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '=', self.ews_pool._name)] - ews_activity_ids = self.activity_pool.search(cr, uid, domain) - self.assertEqual(len(ews_activity_ids), 1, msg='Next EWS activity was not triggered or more than one triggered') - next_ews_activity = self.activity_pool.browse(cr, uid, ews_activity_ids[0]) - self.assertEqual(next_ews_activity.data_ref.frequency, 480, msg='Frequency not matching') - - domain = [ - ('creator_id', '=', ews_activity_id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '!=', 'nh.clinical.patient.observation.ews')] - triggered_ids = self.activity_pool.search(cr, uid, domain) - self.assertFalse(triggered_ids, msg='Notification triggered') - - def test_02_lister_ews_policy_low_risk(self): - cr, uid = self.cr, self.uid - - # Scenario 1: Submit a NEWS Observation Low Risk without O2 Target - - ews_activity_id = self.activity_pool.search(cr, uid, [['data_model', '=', 'nh.clinical.patient.observation.ews'], - ['patient_id', '=', self.patient_id], - ['state', '=', 'scheduled']])[0] - - data = { - 'respiration_rate': 11, - 'indirect_oxymetry_spo2': 99, - 'oxygen_administration_flag': 0, - 'body_temperature': 37.5, - 'blood_pressure_systolic': 120, - 'blood_pressure_diastolic': 80, - 'pulse_rate': 65, - 'avpu_text': 'A' - } - - self.api_pool.assign(cr, uid, ews_activity_id, {'user_id': self.nurse_id}) - self.api_pool.complete(cr, self.nurse_id, ews_activity_id, data) - - ews_activity = self.activity_pool.browse(cr, uid, ews_activity_id) - self.assertEqual(ews_activity.data_ref.score, 1, msg='Score not matching') - self.assertEqual(ews_activity.data_ref.clinical_risk, 'Low', msg='Risk not matching') - domain = [ - ('creator_id', '=', ews_activity.id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '=', self.ews_pool._name)] - ews_activity_ids = self.activity_pool.search(cr, uid, domain) - self.assertEqual(len(ews_activity_ids), 1, msg='Next EWS activity was not triggered or more than one triggered') - next_ews_activity = self.activity_pool.browse(cr, uid, ews_activity_ids[0]) - self.assertEqual(next_ews_activity.data_ref.frequency, 240, msg='Frequency not matching') - - domain = [ - ('creator_id', '=', ews_activity_id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '!=', 'nh.clinical.patient.observation.ews')] - triggered_ids = self.activity_pool.search(cr, uid, domain) - self.assertEqual(len(triggered_ids), 1, msg='No triggers or more than 1 notification triggered') - activity = self.activity_pool.browse(cr, uid, triggered_ids[0]) - self.assertEqual(activity.data_model, 'nh.clinical.notification.assessment', msg="Wrong notification triggered") - - self.api_pool.complete(cr, self.nurse_id, triggered_ids[0], {}) - domain = [ - ('creator_id', '=', triggered_ids[0]), - ('state', 'not in', ['completed', 'cancelled'])] - triggered_ids = self.activity_pool.search(cr, uid, domain) - self.assertEqual(len(triggered_ids), 1, msg='No triggers or more than 1 notification triggered') - activity = self.activity_pool.browse(cr, uid, triggered_ids[0]) - self.assertEqual(activity.data_model, 'nh.clinical.notification.frequency', msg="Wrong notification triggered") - - def test_03_lister_ews_policy_medium_risk(self): - cr, uid = self.cr, self.uid - - # Scenario 1: Submit a NEWS Observation Medium Risk without O2 Target - - ews_activity_id = self.activity_pool.search(cr, uid, [['data_model', '=', 'nh.clinical.patient.observation.ews'], - ['patient_id', '=', self.patient_id], - ['state', '=', 'scheduled']])[0] - - data = { - 'respiration_rate': 11, - 'indirect_oxymetry_spo2': 95, - 'oxygen_administration_flag': 0, - 'body_temperature': 36.0, - 'blood_pressure_systolic': 110, - 'blood_pressure_diastolic': 70, - 'pulse_rate': 50, - 'avpu_text': 'A' - } - - self.api_pool.assign(cr, uid, ews_activity_id, {'user_id': self.nurse_id}) - self.api_pool.complete(cr, self.nurse_id, ews_activity_id, data) - - ews_activity = self.activity_pool.browse(cr, uid, ews_activity_id) - self.assertEqual(ews_activity.data_ref.score, 5, msg='Score not matching') - self.assertEqual(ews_activity.data_ref.clinical_risk, 'Medium', msg='Risk not matching') - domain = [ - ('creator_id', '=', ews_activity.id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '=', self.ews_pool._name)] - ews_activity_ids = self.activity_pool.search(cr, uid, domain) - self.assertEqual(len(ews_activity_ids), 1, msg='Next EWS activity was not triggered or more than one triggered') - next_ews_activity = self.activity_pool.browse(cr, uid, ews_activity_ids[0]) - self.assertEqual(next_ews_activity.data_ref.frequency, 60, msg='Frequency not matching') - - domain = [ - ('creator_id', '=', ews_activity_id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '!=', 'nh.clinical.patient.observation.ews')] - triggered_ids = self.activity_pool.search(cr, uid, domain) - self.assertEqual(len(triggered_ids), 1, msg='No triggers or more than 1 notification triggered') - activity = self.activity_pool.browse(cr, uid, triggered_ids[0]) - self.assertEqual(activity.data_model, 'nh.clinical.notification.assessment', msg="Wrong notification triggered") - - self.api_pool.complete(cr, self.nurse_id, triggered_ids[0], {}) - domain = [ - ('creator_id', '=', triggered_ids[0]), - ('state', 'not in', ['completed', 'cancelled'])] - triggered_ids = self.activity_pool.search(cr, uid, domain) - self.assertEqual(len(triggered_ids), 3, msg='Incorrect number of notifications triggered') - activities = self.activity_pool.browse(cr, uid, triggered_ids) - models = ['nh.clinical.notification.nurse', 'nh.clinical.notification.frequency', - 'nh.clinical.notification.inform_doctor'] - self.assertTrue(activities[0].data_model in models, msg="Wrong notification triggered") - self.assertTrue(activities[1].data_model in models, msg="Wrong notification triggered") - self.assertTrue(activities[2].data_model in models, msg="Wrong notification triggered") - - def test_04_lister_ews_policy_high_risk(self): - cr, uid = self.cr, self.uid - - # Scenario 1: Submit a NEWS Observation High Risk without O2 Target - - ews_activity_id = self.activity_pool.search(cr, uid, [['data_model', '=', 'nh.clinical.patient.observation.ews'], - ['patient_id', '=', self.patient_id], - ['state', '=', 'scheduled']])[0] - - data = { - 'respiration_rate': 24, - 'indirect_oxymetry_spo2': 93, - 'oxygen_administration_flag': 0, - 'body_temperature': 38.5, - 'blood_pressure_systolic': 110, - 'blood_pressure_diastolic': 70, - 'pulse_rate': 50, - 'avpu_text': 'A' - } - - self.api_pool.assign(cr, uid, ews_activity_id, {'user_id': self.nurse_id}) - self.api_pool.complete(cr, self.nurse_id, ews_activity_id, data) - - ews_activity = self.activity_pool.browse(cr, uid, ews_activity_id) - self.assertEqual(ews_activity.data_ref.score, 7, msg='Score not matching') - self.assertEqual(ews_activity.data_ref.clinical_risk, 'High', msg='Risk not matching') - domain = [ - ('creator_id', '=', ews_activity.id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '=', self.ews_pool._name)] - ews_activity_ids = self.activity_pool.search(cr, uid, domain) - self.assertEqual(len(ews_activity_ids), 1, msg='Next EWS activity was not triggered or more than one triggered') - next_ews_activity = self.activity_pool.browse(cr, uid, ews_activity_ids[0]) - self.assertEqual(next_ews_activity.data_ref.frequency, 15, msg='Frequency not matching') - - domain = [ - ('creator_id', '=', ews_activity_id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '!=', 'nh.clinical.patient.observation.ews')] - triggered_ids = self.activity_pool.search(cr, uid, domain) - self.assertEqual(len(triggered_ids), 1, msg='No triggers or more than 1 notification triggered') - activity = self.activity_pool.browse(cr, uid, triggered_ids[0]) - self.assertEqual(activity.data_model, 'nh.clinical.notification.assessment', msg="Wrong notification triggered") - - self.api_pool.complete(cr, self.nurse_id, triggered_ids[0], {}) - domain = [ - ('creator_id', '=', triggered_ids[0]), - ('state', 'not in', ['completed', 'cancelled'])] - triggered_ids = self.activity_pool.search(cr, uid, domain) - self.assertEqual(len(triggered_ids), 2, msg='Incorrect number of notifications triggered') - activities = self.activity_pool.browse(cr, uid, triggered_ids) - models = ['nh.clinical.notification.nurse', 'nh.clinical.notification.inform_doctor'] - self.assertTrue(activities[0].data_model in models, msg="Wrong notification triggered") - self.assertTrue(activities[1].data_model in models, msg="Wrong notification triggered") - - def test_05_lister_ews_policy_o2_target(self): - cr, uid = self.cr, self.uid - - # Scenario 1: Submit a NEWS Observation Score bigger O2 Target Range - - o2level_id = self.o2level_pool.create(cr, uid, {'min': 88, 'max': 95}) - o2target_id = self.o2target_pool.create_activity(cr, uid, {'parent_id': self.spell_id}, - {'level_id': o2level_id, 'patient_id': self.patient_id}) - self.activity_pool.complete(cr, uid, o2target_id) - - ews_activity_id = self.activity_pool.search(cr, uid, [['data_model', '=', 'nh.clinical.patient.observation.ews'], - ['patient_id', '=', self.patient_id], - ['state', '=', 'scheduled']])[0] - - data = { - 'respiration_rate': 11, - 'indirect_oxymetry_spo2': 99, - 'oxygen_administration_flag': 1, - 'body_temperature': 37.5, - 'blood_pressure_systolic': 120, - 'blood_pressure_diastolic': 80, - 'pulse_rate': 65, - 'avpu_text': 'A' - } - - self.api_pool.assign(cr, uid, ews_activity_id, {'user_id': self.nurse_id}) - self.api_pool.complete(cr, self.nurse_id, ews_activity_id, data) - - ews_activity = self.activity_pool.browse(cr, uid, ews_activity_id) - self.assertEqual(ews_activity.data_ref.score, 3, msg='Score not matching') - self.assertEqual(ews_activity.data_ref.clinical_risk, 'Low', msg='Risk not matching') - - domain = [ - ('creator_id', '=', ews_activity_id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '!=', 'nh.clinical.patient.observation.ews')] - triggered_ids = self.activity_pool.search(cr, uid, domain) - self.assertEqual(len(triggered_ids), 1, msg='No triggers or more than 1 notification triggered') - activity = self.activity_pool.browse(cr, uid, triggered_ids[0]) - self.assertEqual(activity.data_model, 'nh.clinical.notification.assessment', msg="Wrong notification triggered") - - # Scenario 2: Submit a NEWS Observation Score within O2 Target Range - - ews_activity_id = self.activity_pool.search(cr, uid, [['data_model', '=', 'nh.clinical.patient.observation.ews'], - ['patient_id', '=', self.patient_id], - ['state', '=', 'scheduled']])[0] - - data = { - 'respiration_rate': 18, - 'indirect_oxymetry_spo2': 88, - 'oxygen_administration_flag': 1, - 'body_temperature': 37.5, - 'blood_pressure_systolic': 120, - 'blood_pressure_diastolic': 80, - 'pulse_rate': 65, - 'avpu_text': 'A' - } - - self.api_pool.assign(cr, uid, ews_activity_id, {'user_id': self.nurse_id}) - self.api_pool.complete(cr, self.nurse_id, ews_activity_id, data) - - ews_activity = self.activity_pool.browse(cr, uid, ews_activity_id) - self.assertEqual(ews_activity.data_ref.score, 5, msg='Score not matching') - self.assertEqual(ews_activity.data_ref.clinical_risk, 'Medium', msg='Risk not matching') - - domain = [ - ('creator_id', '=', ews_activity_id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '!=', 'nh.clinical.patient.observation.ews')] - triggered_ids = self.activity_pool.search(cr, uid, domain) - self.assertEqual(len(triggered_ids), 0, msg='Notifications triggered') - - o2target_id = self.o2target_pool.create_activity(cr, uid, {'parent_id': self.spell_id}, - {'level_id': False, 'patient_id': self.patient_id}) - self.activity_pool.complete(cr, uid, o2target_id) - - def test_06_lister_ews_policy_post_surgery(self): - cr, uid = self.cr, self.uid - - # Scenario 1: Activate Post Surgery Special circumstance - - ews_activity_id = self.activity_pool.search(cr, uid, [['data_model', '=', 'nh.clinical.patient.observation.ews'], - ['patient_id', '=', self.patient_id], - ['state', '=', 'scheduled']])[0] - - data = { - 'respiration_rate': 18, - 'indirect_oxymetry_spo2': 99, - 'oxygen_administration_flag': 0, - 'body_temperature': 37.5, - 'blood_pressure_systolic': 120, - 'blood_pressure_diastolic': 80, - 'pulse_rate': 65, - 'avpu_text': 'A' - } - - self.api_pool.assign(cr, uid, ews_activity_id, {'user_id': self.nurse_id}) - self.api_pool.complete(cr, self.nurse_id, ews_activity_id, data) - - ews_activity_id = self.activity_pool.search(cr, uid, [['data_model', '=', 'nh.clinical.patient.observation.ews'], - ['patient_id', '=', self.patient_id], - ['state', '=', 'scheduled']])[0] - ews_activity = self.activity_pool.browse(cr, uid, ews_activity_id) - self.assertEqual(ews_activity.data_ref.frequency, 480, msg='Frequency not matching') - - ps_id = self.ps_pool.create_activity(cr, uid, {'parent_id': self.spell_id}, - {'status': True, 'patient_id': self.patient_id}) - self.activity_pool.complete(cr, uid, ps_id) - - ews_activity_id = self.activity_pool.search(cr, uid, [['data_model', '=', 'nh.clinical.patient.observation.ews'], - ['patient_id', '=', self.patient_id], - ['state', '=', 'scheduled']])[0] - ews_activity = self.activity_pool.browse(cr, uid, ews_activity_id) - self.assertEqual(ews_activity.data_ref.frequency, 60, msg='Frequency not matching') - - self.api_pool.assign(cr, uid, ews_activity_id, {'user_id': self.nurse_id}) - self.api_pool.complete(cr, self.nurse_id, ews_activity_id, data) - - domain = [ - ('creator_id', '=', ews_activity.id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '=', self.ews_pool._name)] - ews_activity_ids = self.activity_pool.search(cr, uid, domain) - self.assertEqual(len(ews_activity_ids), 1, msg='Next EWS activity was not triggered or more than one triggered') - next_ews_activity = self.activity_pool.browse(cr, uid, ews_activity_ids[0]) - self.assertEqual(next_ews_activity.data_ref.frequency, 60, msg='Frequency not matching') - - ps_id = self.ps_pool.create_activity(cr, uid, {'parent_id': self.spell_id}, - {'status': False, 'patient_id': self.patient_id}) - self.activity_pool.complete(cr, uid, ps_id) - - def test_07_lister_ews_policy_critical_care(self): - cr, uid = self.cr, self.uid - - # Scenario 1: Activate Critical Care Special circumstance - - cc_id = self.cc_pool.create_activity(cr, uid, {'parent_id': self.spell_id}, - {'status': True, 'patient_id': self.patient_id}) - self.activity_pool.complete(cr, uid, cc_id) - - ews_activity_id = self.activity_pool.search(cr, uid, [['data_model', '=', 'nh.clinical.patient.observation.ews'], - ['patient_id', '=', self.patient_id], - ['state', '=', 'scheduled']])[0] - - ews_activity = self.activity_pool.browse(cr, uid, ews_activity_id) - self.assertEqual(ews_activity.data_ref.frequency, 60, msg='Frequency not matching') - - data = { - 'respiration_rate': 18, - 'indirect_oxymetry_spo2': 99, - 'oxygen_administration_flag': 0, - 'body_temperature': 37.5, - 'blood_pressure_systolic': 120, - 'blood_pressure_diastolic': 80, - 'pulse_rate': 65, - 'avpu_text': 'A' - } - - self.api_pool.assign(cr, uid, ews_activity_id, {'user_id': self.nurse_id}) - self.api_pool.complete(cr, self.nurse_id, ews_activity_id, data) - - domain = [ - ('creator_id', '=', ews_activity.id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '=', self.ews_pool._name)] - ews_activity_ids = self.activity_pool.search(cr, uid, domain) - self.assertEqual(len(ews_activity_ids), 1, msg='Next EWS activity was not triggered or more than one triggered') - next_ews_activity = self.activity_pool.browse(cr, uid, ews_activity_ids[0]) - self.assertEqual(next_ews_activity.data_ref.frequency, 240, msg='Frequency not matching') - - cc_id = self.cc_pool.create_activity(cr, uid, {'parent_id': self.spell_id}, - {'status': False, 'patient_id': self.patient_id}) - self.activity_pool.complete(cr, uid, cc_id) - - def test_08_lister_height_and_weight_triggered(self): - cr, uid = self.cr, self.uid - - # Scenario 1: Make sure there is a weight observation and height observation for the patient - - activity_id = self.activity_pool.search(cr, uid, [['data_model', '=', 'nh.clinical.patient.observation.weight'], - ['patient_id', '=', self.patient_id], - ['state', '=', 'scheduled']]) - self.assertTrue(activity_id, msg="No weight observation triggered after placement") - activity = self.activity_pool.browse(cr, uid, activity_id) - self.assertGreater((dt.now()+td(hours=1)).strftime(dtf), activity.date_scheduled) - - activity_id = self.activity_pool.search(cr, uid, [['data_model', '=', 'nh.clinical.patient.observation.height'], - ['patient_id', '=', self.patient_id], - ['state', '=', 'scheduled']]) - self.assertTrue(activity_id, msg="No height observation triggered after placement") - activity = self.activity_pool.browse(cr, uid, activity_id) - self.assertGreater((dt.now()+td(hours=1)).strftime(dtf), activity.date_scheduled) - - def test_09_lister_ews_vpu_triggers_blood_sugar(self): - cr, uid = self.cr, self.uid - - # Scenario 1: Submit a NEWS Observation with VPU - - ews_activity_id = self.activity_pool.search(cr, uid, [['data_model', '=', 'nh.clinical.patient.observation.ews'], - ['patient_id', '=', self.patient_id], - ['state', '=', 'scheduled']])[0] - - data = { - 'respiration_rate': 24, - 'indirect_oxymetry_spo2': 93, - 'oxygen_administration_flag': 0, - 'body_temperature': 38.5, - 'blood_pressure_systolic': 110, - 'blood_pressure_diastolic': 70, - 'pulse_rate': 50, - 'avpu_text': 'V' - } - - self.api_pool.assign(cr, uid, ews_activity_id, {'user_id': self.nurse_id}) - self.api_pool.complete(cr, self.nurse_id, ews_activity_id, data) - - domain = [ - ('creator_id', '=', ews_activity_id), - ('state', 'not in', ['completed', 'cancelled']), - ('data_model', '=', 'nh.clinical.patient.observation.blood_sugar')] - bs_activity_ids = self.activity_pool.search(cr, uid, domain) - self.assertEqual(len(bs_activity_ids), 1, msg='Blood Sugar activity was not triggered or more than one triggered') - - def test_10_lister_ews_policy_palliative_care(self): - cr, uid = self.cr, self.uid - - # Scenario 1: Activate Palliative Care Special circumstance - - pc_id = self.pc_pool.create_activity(cr, uid, {'parent_id': self.spell_id}, - {'status': True, 'patient_id': self.patient_id}) - self.activity_pool.complete(cr, uid, pc_id) - - ews_activity_id = self.activity_pool.search(cr, uid, [['data_model', '=', 'nh.clinical.patient.observation.ews'], - ['patient_id', '=', self.patient_id], - ['state', '=', 'scheduled']]) - self.assertFalse(ews_activity_id, msg="NEWS activities not cancelled") - - activity_ids = self.activity_pool.search(cr, uid, [['data_model', 'ilike', '%notification%'], - ['patient_id', '=', self.patient_id], - ['state', 'not in', ['completed', 'cancelled']]]) - self.assertFalse(activity_ids, msg="Notifications not cancelled") \ No newline at end of file diff --git a/nh_eobs_lister/views/ccot_kanban.xml b/nh_eobs_lister/views/ccot_kanban.xml deleted file mode 100644 index f9c5be0a..00000000 --- a/nh_eobs_lister/views/ccot_kanban.xml +++ /dev/null @@ -1,80 +0,0 @@ - - - - - - nh.activity.high_risk.kanban - nh.activity.high_risk - - - - - - - - - - - - - - - - - - -
-
-
- - - - - - - - - - - n/a - - - n/a - -
-
,
-
() - - - - - - -
-
- Obs Taken: -
- -
-
-
-
-
-
-
-
- - - Time Since Last Observation - ir.actions.act_window - nh.activity.high_risk - form - kanban - - - -
-
\ No newline at end of file diff --git a/nh_eobs_lister/views/menuitem.xml b/nh_eobs_lister/views/menuitem.xml deleted file mode 100644 index ededdf0f..00000000 --- a/nh_eobs_lister/views/menuitem.xml +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - - - - - - - - - diff --git a/nh_eobs_lister/views/nh_eobs_lister_view.xml b/nh_eobs_lister/views/nh_eobs_lister_view.xml deleted file mode 100644 index 578cbab9..00000000 --- a/nh_eobs_lister/views/nh_eobs_lister_view.xml +++ /dev/null @@ -1,492 +0,0 @@ - - - - - - - Acuity Board - nh.clinical.wardboard - form - tree,form,kanban - [('spell_state','=','started'),('spell_activity_id.user_ids','in',uid), - ('location_id.usage','=','bed')] - {'search_default_group_by_ward':1, 'search_default_high_risk':1} - - - - - tree - - - - - - form - - - - - - kanban - - - - - - lister.wardboard.obs.list - nh.clinical.wardboard - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- - - lister.wardboard - nh.clinical.wardboard - - - - - - - - - - lister.wardboard.form - nh.clinical.wardboard - - - - - - - - - - - -
- - - - - - -
- - - - - - - -
- - - - - -
- - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - enht.discharged.wardboard.form - nh.clinical.wardboard - - - - - - - - - - - -
- - - - - - -
- - - - - - - -
- - - - - -
- - - - - - - -
- - - - - -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- - - enht.user.management.search - nh.clinical.user.management - - - - - - - - - - Account Administration - nh.clinical.user.management - tree,form - [['category_ids.name','in',['CSW','Nurse','Nurse in Charge','Student Nurse']]] - - {'partner_category_display': 'short'} - - - Account Administration - nh.clinical.user.management - tree,form - [['category_ids.name','in', - ['CSW','Nurse','Nurse in Charge','Doctor','Senior Manager','Kiosk','System Administrator','Senior Doctor', - 'Junior Doctor','Registrar','Consultant','Receptionist','CCOT','Student Nurse']],['login','not in',['adt','admin']]] - - {'partner_category_display': 'short'} - - - - nh.enht.ward.dashboard.kanban - nh.eobs.ward.dashboard - - - -
-
-

- - -

-
-
Nurses in Charge:
-
- - - -
-
-
-
- - - nh.enht.ward.dashboard.form - nh.eobs.ward.dashboard - - - - - - - - - - - - - - - - nh.enht.ccot.ward.dashboard.kanban - nh.eobs.ward.dashboard - - - - - - - - - - - - - -
-
-
-

- - -

-
- - - - - -
-
-
-
-
-
-
-
- - - Ward Dashboard - ir.actions.act_window - nh.eobs.ward.dashboard - [('user_ids','in',uid)] - form - kanban,form - - - - - kanban - - - - - - form - - - - - - enht.nh.clinical.allocating.form - nh.clinical.allocating - - - - - - - - - - enht.nh.clinical.staff.allocation.form - nh.clinical.staff.allocation - - - - - - - - - - - - - enht.nh.clinical.staff.reallocation.form - nh.clinical.staff.reallocation - - - - - - - - -
-
\ No newline at end of file diff --git a/nh_eobs_lister/views/obs_report.xml b/nh_eobs_lister/views/obs_report.xml deleted file mode 100644 index cc235df9..00000000 --- a/nh_eobs_lister/views/obs_report.xml +++ /dev/null @@ -1,628 +0,0 @@ - - - - - \ No newline at end of file diff --git a/nh_eobs_lister/views/template.xml b/nh_eobs_lister/views/template.xml deleted file mode 100644 index d066465f..00000000 --- a/nh_eobs_lister/views/template.xml +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - \ No newline at end of file From 1b75d7b5ec15e2951eb4dfe917f5c4570addc3e5 Mon Sep 17 00:00:00 2001 From: Rob Dyke Date: Wed, 6 Mar 2019 13:41:00 +0000 Subject: [PATCH 4/5] remove BHFT module - ref #52 --- nh_eobs_bhft/__init__.py | 1 - nh_eobs_bhft/__init__.pyc | Bin 165 -> 0 bytes nh_eobs_bhft/__openerp__.py | 21 --- nh_eobs_bhft/bhft_locations.xml | 168 ------------------ nh_eobs_bhft/bhft_params.xml | 23 --- nh_eobs_bhft/bhft_pos.xml | 43 ----- nh_eobs_bhft/bhft_users.xml | 126 ------------- nh_eobs_bhft/nh_eobs_bhft.py | 47 ----- nh_eobs_bhft/nh_eobs_bhft.pyc | Bin 2631 -> 0 bytes .../static/src/img/burton-hospitals-nhs.png | Bin 5701 -> 0 bytes .../static/src/img/open-eobs-logo.png | Bin 15423 -> 0 bytes nh_eobs_bhft/static/src/img/t4skr_logo.png | Bin 3928 -> 0 bytes nh_eobs_bhft/static/src/js/nh_eobs_bhft.js | 3 - nh_eobs_bhft/static/src/xml/nh_eobs_bhft.xml | 14 -- nh_eobs_bhft/trust.xml | 21 --- 15 files changed, 467 deletions(-) delete mode 100644 nh_eobs_bhft/__init__.py delete mode 100644 nh_eobs_bhft/__init__.pyc delete mode 100644 nh_eobs_bhft/__openerp__.py delete mode 100644 nh_eobs_bhft/bhft_locations.xml delete mode 100644 nh_eobs_bhft/bhft_params.xml delete mode 100644 nh_eobs_bhft/bhft_pos.xml delete mode 100644 nh_eobs_bhft/bhft_users.xml delete mode 100644 nh_eobs_bhft/nh_eobs_bhft.py delete mode 100644 nh_eobs_bhft/nh_eobs_bhft.pyc delete mode 100644 nh_eobs_bhft/static/src/img/burton-hospitals-nhs.png delete mode 100644 nh_eobs_bhft/static/src/img/open-eobs-logo.png delete mode 100644 nh_eobs_bhft/static/src/img/t4skr_logo.png delete mode 100644 nh_eobs_bhft/static/src/js/nh_eobs_bhft.js delete mode 100644 nh_eobs_bhft/static/src/xml/nh_eobs_bhft.xml delete mode 100644 nh_eobs_bhft/trust.xml diff --git a/nh_eobs_bhft/__init__.py b/nh_eobs_bhft/__init__.py deleted file mode 100644 index 19b423b9..00000000 --- a/nh_eobs_bhft/__init__.py +++ /dev/null @@ -1 +0,0 @@ -import nh_eobs_bhft \ No newline at end of file diff --git a/nh_eobs_bhft/__init__.pyc b/nh_eobs_bhft/__init__.pyc deleted file mode 100644 index c4f202ed34b86bcc0b1ac9c1d42dceff52a41fc8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 165 zcmZSn%*%CQ!Mey~1}Itjxi?n diff --git a/nh_eobs_bhft/__openerp__.py b/nh_eobs_bhft/__openerp__.py deleted file mode 100644 index 71d3f279..00000000 --- a/nh_eobs_bhft/__openerp__.py +++ /dev/null @@ -1,21 +0,0 @@ -# -*- encoding: utf-8 -*- -{ - 'name': 'Open e-Obs BHFT Configuration', - 'version': '0.1', - 'category': 'Clinical', - 'license': 'AGPL-3', - 'summary': '', - 'description': """ """, - 'author': 'Neova Health', - 'website': 'http://www.neovahealth.co.uk/', - 'depends': ['nh_eobs_mobile'], - 'data': ['bhft_pos.xml', - 'bhft_locations.xml', - 'bhft_params.xml', - 'bhft_users.xml', - 'trust.xml'], - 'qweb': ['static/src/xml/nh_eobs_bhft.xml'], - 'application': True, - 'installable': True, - 'active': False, -} \ No newline at end of file diff --git a/nh_eobs_bhft/bhft_locations.xml b/nh_eobs_bhft/bhft_locations.xml deleted file mode 100644 index fbe971e2..00000000 --- a/nh_eobs_bhft/bhft_locations.xml +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - Ward E8 - E8 - poc - ward - - - - Ward E9 - E9 - poc - ward - - - - - - - - Bed 1 - B1 - poc - bed - - - - Bed 2 - B2 - poc - bed - - - - Bed 3 - B3 - poc - bed - - - - Bed 4 - B4 - poc - bed - - - - Bed 5 - B5 - poc - bed - - - - Bed 6 - B6 - poc - bed - - - - Bed 7 - B7 - poc - bed - - - - Bed 8 - B8 - poc - bed - - - - Bed 9 - B9 - poc - bed - - - - Bed 10 - B10 - poc - bed - - - - - - - Bed 11 - B11 - poc - bed - - - - Bed 12 - B12 - poc - bed - - - - Bed 13 - B13 - poc - bed - - - - Bed 14 - B14 - poc - bed - - - - Bed 15 - B15 - poc - bed - - - - Bed 16 - B16 - poc - bed - - - - Bed 17 - B17 - poc - bed - - - - Bed 18 - B18 - poc - bed - - - - Bed 19 - B19 - poc - bed - - - - Bed 20 - B20 - poc - bed - - - - - \ No newline at end of file diff --git a/nh_eobs_bhft/bhft_params.xml b/nh_eobs_bhft/bhft_params.xml deleted file mode 100644 index 3d2a91a7..00000000 --- a/nh_eobs_bhft/bhft_params.xml +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - 88 - 92 - - - 92 - 96 - - - 90 - 94 - - - 86 - 90 - - - - \ No newline at end of file diff --git a/nh_eobs_bhft/bhft_pos.xml b/nh_eobs_bhft/bhft_pos.xml deleted file mode 100644 index e3c303cf..00000000 --- a/nh_eobs_bhft/bhft_pos.xml +++ /dev/null @@ -1,43 +0,0 @@ - - - - - - BHFT POS Location - BHFT - pos - hospital - - - - - Burton Hospitals Foundation Trust - - - - - Admission Location - ADML-BHFT - structural - room - - - - Discharge Location - DISL-BHFT - structural - room - - - - - - Burton Hospitals Foundation Trust - - - - - - - - \ No newline at end of file diff --git a/nh_eobs_bhft/bhft_users.xml b/nh_eobs_bhft/bhft_users.xml deleted file mode 100644 index b8a2bba3..00000000 --- a/nh_eobs_bhft/bhft_users.xml +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - BHFT-ADT - adt - adt - - - - - - Harold Bishop - harold - harold - Europe/London - - - - - - Henry Higgins - henry - henry - Europe/London - - - - - - Hannah Mitchell - hannah - hannah - Europe/London - - - - - - Norah Miller - norah - norah - Europe/London - - - - - - Nadine Bullock - nadine - nadine - Europe/London - - - - - - Nathan Lewis - nathan - nathan - Europe/London - - - - - - Winifred Kirrin - winifred - winifred - Europe/London - - - - - - Walter Smith - walter - walter - Europe/London - - - - - - Whitney Williams - whitney - whitney - Europe/London - - - - - - Dave Chas - dave - dave - Europe/London - - - - - - Davina McCall - davina - davina - Europe/London - - - - - - Europe/London - - - - - \ No newline at end of file diff --git a/nh_eobs_bhft/nh_eobs_bhft.py b/nh_eobs_bhft/nh_eobs_bhft.py deleted file mode 100644 index aaf594ea..00000000 --- a/nh_eobs_bhft/nh_eobs_bhft.py +++ /dev/null @@ -1,47 +0,0 @@ -from openerp.osv import orm -import logging - -_logger = logging.getLogger(__name__) - - -class nh_clinical_patient_observation_bhft_ews(orm.Model): - _name = 'nh.clinical.patient.observation.ews' - _inherit = 'nh.clinical.patient.observation.ews' - - _POLICY = {'ranges': [0, 4, 6], 'case': '0123', 'frequencies': [720, 240, 120, 60], - 'notifications': [ - [{'model': 'frequency', 'groups': ['nurse', 'hca']}], - [{'model': 'assessment', 'groups': ['nurse', 'hca']}, - {'model': 'hca', 'summary': 'Inform registered nurse', 'groups': ['hca']}, - {'model': 'nurse', 'summary': 'Informed about patient status (NEWS)', 'groups': ['hca']}], - [{'model': 'medical_team', 'summary': 'Urgently speak to the medical team', 'groups': ['nurse', 'hca']}, - {'model': 'frequency', 'groups': ['nurse', 'hca']}, - {'model': 'nurse', 'summary': 'Consider assessment by CCOT', 'groups': ['nurse', 'hca']}, - {'model': 'hca', 'summary': 'Inform registered nurse', 'groups': ['hca']}, - {'model': 'nurse', 'summary': 'Informed about patient status (NEWS)', 'groups': ['hca']}], - [{'model': 'medical_team', 'summary': 'Immediately speak to the medical team', 'groups': ['nurse', 'hca']}, - {'model': 'frequency', 'groups': ['nurse', 'hca']}, - {'model': 'nurse', 'summary': 'Urgent assessment by CCOT', 'groups': ['nurse', 'hca']}, - {'model': 'hca', 'summary': 'Inform registered nurse', 'groups': ['hca']}, - {'model': 'nurse', 'summary': 'Informed about patient status (NEWS)', 'groups': ['hca']}] - ], - 'risk': ['None', 'Low', 'Medium', 'High']} - - -class bhft_notification_frequency(orm.Model): - _name = 'nh.clinical.notification.frequency' - _inherit = 'nh.clinical.notification.frequency' - - def complete(self, cr, uid, activity_id, context=None): - activity_pool = self.pool['nh.activity'] - review_frequency = activity_pool.browse(cr, uid, activity_id, context=context) - domain = [ - ('patient_id', '=', review_frequency.data_ref.patient_id.id), - ('data_model', '=', review_frequency.data_ref.observation), - ('state', 'not in', ['completed', 'cancelled']) - ] - obs_ids = activity_pool.search(cr, uid, domain, order='create_date desc, id desc', context=context) - obs = activity_pool.browse(cr, uid, obs_ids[0], context=context) - obs_pool = self.pool[review_frequency.data_ref.observation] - obs_pool.write(cr, uid, obs.data_ref.id, {'frequency': review_frequency.data_ref.frequency}, context=context) - return super(bhft_notification_frequency, self).complete(cr, uid, activity_id, context=context) \ No newline at end of file diff --git a/nh_eobs_bhft/nh_eobs_bhft.pyc b/nh_eobs_bhft/nh_eobs_bhft.pyc deleted file mode 100644 index 5edeaf94b541ab1cd1f3ae117625117093379398..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2631 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 diff --git a/nh_eobs_bhft/static/src/img/open-eobs-logo.png b/nh_eobs_bhft/static/src/img/open-eobs-logo.png deleted file mode 100644 index 2bbe20b042a5ecbad22182c1eeeefc4c6726dc92..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15423 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 mI^bpCWvk_HG8JD?HUAHXc1gNuPSQvK0000 - - - - - - - Powered by Open eObs / Odoo - - - - \ No newline at end of file diff --git a/nh_eobs_bhft/trust.xml b/nh_eobs_bhft/trust.xml deleted file mode 100644 index 5cd46a96..00000000 --- a/nh_eobs_bhft/trust.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - Burton Hospitals Foundation Trust - - - Burton Hospitals Foundation Trust - PALS@burtonft.nhs.uk - http://www.burtonhospitals.nhs.uk/ - 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 - - - - \ No newline at end of file From 194c658d03b3c13a9395112c33485352c8a4a82e Mon Sep 17 00:00:00 2001 From: Rob Dyke Date: Wed, 6 Mar 2019 13:41:26 +0000 Subject: [PATCH 5/5] remove LDH module - ref #52 --- nh_ldh/__init__.py | 2 - nh_ldh/__init__.pyc | Bin 181 -> 0 bytes nh_ldh/__openerp__.py | 20 - nh_ldh/eobs_locations.xml | 959 -------------------- nh_ldh/etake_list_locations.xml | 248 ----- nh_ldh/ldh_master_data.xml | 123 --- nh_ldh/ldh_user_data.xml | 832 ----------------- nh_ldh/luton64.txt | 2 - nh_ldh/migration.py | 64 -- nh_ldh/migration.pyc | Bin 3300 -> 0 bytes nh_ldh/nh_ldh_view.xml | 209 ----- nh_ldh/policy.py | 174 ---- nh_ldh/policy.pyc | Bin 5184 -> 0 bytes nh_ldh/security/ir.model.access.csv | 69 -- nh_ldh/static/src/css/nh_ldh.css | 3 - nh_ldh/static/src/img/luton-logo-inside.png | Bin 319152 -> 0 bytes nh_ldh/static/src/img/luton-logo.png | Bin 64103 -> 0 bytes nh_ldh/static/src/js/nh_ldh.js | 23 - nh_ldh/static/src/xml/nh_ldh.xml | 11 - nh_ldh/tests/__init__.py | 1 - nh_ldh/tests/test_adt_policy.py | 446 --------- 21 files changed, 3186 deletions(-) delete mode 100644 nh_ldh/__init__.py delete mode 100644 nh_ldh/__init__.pyc delete mode 100644 nh_ldh/__openerp__.py delete mode 100644 nh_ldh/eobs_locations.xml delete mode 100644 nh_ldh/etake_list_locations.xml delete mode 100644 nh_ldh/ldh_master_data.xml delete mode 100644 nh_ldh/ldh_user_data.xml delete mode 100644 nh_ldh/luton64.txt delete mode 100644 nh_ldh/migration.py delete mode 100644 nh_ldh/migration.pyc delete mode 100644 nh_ldh/nh_ldh_view.xml delete mode 100644 nh_ldh/policy.py delete mode 100644 nh_ldh/policy.pyc delete mode 100644 nh_ldh/security/ir.model.access.csv delete mode 100644 nh_ldh/static/src/css/nh_ldh.css delete mode 100644 nh_ldh/static/src/img/luton-logo-inside.png delete mode 100644 nh_ldh/static/src/img/luton-logo.png delete mode 100644 nh_ldh/static/src/js/nh_ldh.js delete mode 100644 nh_ldh/static/src/xml/nh_ldh.xml delete mode 100644 nh_ldh/tests/__init__.py delete mode 100644 nh_ldh/tests/test_adt_policy.py diff --git a/nh_ldh/__init__.py b/nh_ldh/__init__.py deleted file mode 100644 index 0a1c8426..00000000 --- a/nh_ldh/__init__.py +++ /dev/null @@ -1,2 +0,0 @@ -import policy -import migration diff --git a/nh_ldh/__init__.pyc b/nh_ldh/__init__.pyc deleted file mode 100644 index f22bbee54bf184c6972a18add7b119207f5064ce..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 181 zcmZSn%*%CQ!Mey~1}I8=j$e>q~zxn1G(`z mDH;0l@tJv - - - - - Ward A - A - poc - - ward - - - - Ward B - B - poc - - ward - - - - Ward C - C - poc - - ward - - - - Ward D - D - poc - - ward - - - - - - Bed 01 - A01 - poc - - bed - - - - Bed 02 - A02 - poc - - bed - - - - Bed 03 - A03 - poc - - bed - - - - Bed 04 - A04 - poc - - bed - - - - Bed 05 - A05 - poc - - bed - - - - Bed 06 - A06 - poc - - bed - - - - Bed 07 - A07 - poc - - bed - - - - Bed 08 - A08 - poc - - bed - - - - Bed 09 - A09 - poc - - bed - - - - Bed 10 - A10 - poc - - bed - - - - Bed 11 - A11 - poc - - bed - - - - Bed 12 - A12 - poc - - bed - - - - Bed 13 - A13 - poc - - bed - - - - Bed 14 - A14 - poc - - bed - - - - Bed 15 - A15 - poc - - bed - - - - Bed 16 - A16 - poc - - bed - - - - Bed 17 - A17 - poc - - bed - - - - Bed 18 - A18 - poc - - bed - - - - Bed 19 - A19 - poc - - bed - - - - Bed 20 - A20 - poc - - bed - - - - - - Room 01 (Ward B) - R01 - poc - - room - - - - Room 02 (Ward B) - R02 - poc - - room - - - - Room 03 (Ward B) - R03 - poc - - room - - - - Room 04 (Ward B) - R04 - poc - - room - - - - Room 05 (Ward B) - R05 - poc - - room - - - - Room 06 (Ward B) - R06 - poc - - room - - - - Room 07 (Ward B) - R07 - poc - - room - - - - Room 08 (Ward B) - R08 - poc - - room - - - - Room 09 (Ward B) - R09 - poc - - room - - - - Room 10 (Ward B) - R10 - poc - - room - - - - Room 11 (Ward B) - R11 - poc - - room - - - - Room 12 (Ward B) - R12 - poc - - room - - - - Room 13 (Ward B) - R13 - poc - - room - - - - Room 14 (Ward B) - R14 - poc - - room - - - - Room 15 (Ward B) - R15 - poc - - room - - - - Room 16 (Ward B) - R16 - poc - - room - - - - Room 17 (Ward B) - R17 - poc - - room - - - - Room 18 (Ward B) - R18 - poc - - room - - - - Room 19 (Ward B) - R19 - poc - - room - - - - Room 20 (Ward B) - R20 - poc - - room - - - - Bed 01 - B01 - poc - - bed - - - - Bed 02 - B02 - poc - - bed - - - - Bed 03 - B03 - poc - - bed - - - - Bed 04 - B04 - poc - - bed - - - - Bed 05 - B05 - poc - - bed - - - - Bed 06 - B06 - poc - - bed - - - - Bed 07 - B07 - poc - - bed - - - - Bed 08 - B08 - poc - - bed - - - - Bed 09 - B09 - poc - - bed - - - - Bed 10 - B10 - poc - - bed - - - - Bed 11 - B11 - poc - - bed - - - - Bed 12 - B12 - poc - - bed - - - - Bed 13 - B13 - poc - - bed - - - - Bed 14 - B14 - poc - - bed - - - - Bed 15 - B15 - poc - - bed - - - - Bed 16 - B16 - poc - - bed - - - - Bed 17 - B17 - poc - - bed - - - - Bed 18 - B18 - poc - - bed - - - - Bed 19 - B19 - poc - - bed - - - - Bed 20 - B20 - poc - - bed - - - - - - Bay 01 (Ward C) - BAY01 - poc - - bay - - - - Bay 02 (Ward C) - BAY02 - poc - - bay - - - - Bay 03 (Ward C) - BAY03 - poc - - bay - - - - Bay 04 (Ward C) - BAY04 - poc - - bay - - - - Side Room 01 (Ward C) - SR01 - poc - - room - - - - Side Room 02 (Ward C) - SR02 - poc - - room - - - - Side Room 03 (Ward C) - SR03 - poc - - room - - - - Side Room 04 (Ward C) - SR04 - poc - - room - - - - Bed 01 - C01 - poc - - bed - - - - Bed 02 - C02 - poc - - bed - - - - Bed 03 - C03 - poc - - bed - - - - Bed 04 - C04 - poc - - bed - - - - Bed 05 - C05 - poc - - bed - - - - Bed 06 - C06 - poc - - bed - - - - Bed 07 - C07 - poc - - bed - - - - Bed 08 - C08 - poc - - bed - - - - Bed 09 - C09 - poc - - bed - - - - Bed 10 - C10 - poc - - bed - - - - Bed 11 - C11 - poc - - bed - - - - Bed 12 - C12 - poc - - bed - - - - Bed 13 - C13 - poc - - bed - - - - Bed 14 - C14 - poc - - bed - - - - Bed 15 - C15 - poc - - bed - - - - Bed 16 - C16 - poc - - bed - - - - Bed 17 - C17 - poc - - bed - - - - Bed 18 - C18 - poc - - bed - - - - Bed 19 - C19 - poc - - bed - - - - Bed 20 - C20 - poc - - bed - - - - - - Room 01 (Ward D) - DR01 - poc - - room - - - - Room 02 (Ward D) - DR02 - poc - - room - - - - Bay 01 (Ward D) - DBAY01 - poc - - bay - - - - Bay 02 (Ward D) - DBAY02 - poc - - bay - - - - Bay 03 (Ward D) - DBAY03 - poc - - bay - - - - Bay 04 (Ward D) - DBAY04 - poc - - bay - - - - Bed 01 - D01 - poc - - bed - - - - Bed 02 - D02 - poc - - bed - - - - Bed 03 - D03 - poc - - bed - - - - Bed 04 - D04 - poc - - bed - - - - Bed 05 - D05 - poc - - bed - - - - Bed 06 - D06 - poc - - bed - - - - Bed 07 - D07 - poc - - bed - - - - Bed 08 - D08 - poc - - bed - - - - Bed 09 - D09 - poc - - bed - - - - Bed 10 - D10 - poc - - bed - - - - Bed 11 - D11 - poc - - bed - - - - Bed 12 - D12 - poc - - bed - - - - Bed 13 - D13 - poc - - bed - - - - Bed 14 - D14 - poc - - bed - - - - Bed 15 - D15 - poc - - bed - - - - Bed 16 - D16 - poc - - bed - - - - Bed 17 - D17 - poc - - bed - - - - Bed 18 - D18 - poc - - bed - - - - Bed 19 - D19 - poc - - bed - - - - Bed 20 - D20 - poc - - bed - - - - - \ No newline at end of file diff --git a/nh_ldh/etake_list_locations.xml b/nh_ldh/etake_list_locations.xml deleted file mode 100644 index 9b58ac7b..00000000 --- a/nh_ldh/etake_list_locations.xml +++ /dev/null @@ -1,248 +0,0 @@ - - - - - Ward EAU - WEAU - poc - - ward - - - - Ward A+E - AE - poc - - ward - - - - Ward UCC - UCC - poc - - ward - - - - - - - - Bed 1 - EAU1 - poc - bed - - - - Bed 2 - EAU2 - poc - bed - - - - Bed 3 - EAU3 - poc - bed - - - - Bed 4 - EAU4 - poc - bed - - - - Bed 5 - EAU5 - poc - bed - - - - Bed 6 - EAU6 - poc - bed - - - - Bed 7 - EAU7 - poc - bed - - - - Bed 8 - EAU8 - poc - bed - - - - Bed 9 - EAU9 - poc - bed - - - - Bed 10 - EAU10 - poc - bed - - - - - - - Bed 11 - AE11 - poc - bed - - - - Bed 12 - AE12 - poc - bed - - - - Bed 13 - AE13 - poc - bed - - - - Bed 14 - AE14 - poc - bed - - - - Bed 15 - AE15 - poc - bed - - - - Bed 16 - AE16 - poc - bed - - - - Bed 17 - AE17 - poc - bed - - - - Bed 18 - AE18 - poc - bed - - - - Bed 19 - AE19 - poc - bed - - - - Bed 20 - AE20 - poc - bed - - - - - - Bed 21 - UCC21 - poc - bed - - - - Bed 22 - UCC22 - poc - bed - - - - Bed 23 - UCC23 - poc - bed - - - - Bed 24 - UCC24 - poc - bed - - - - Bed 25 - UCC25 - poc - bed - - - - Bed 26 - UCC26 - poc - bed - - - - Bed 27 - UCC27 - poc - bed - - - - Bed 28 - UCC28 - poc - bed - - - - Bed 29 - UCC29 - poc - bed - - - - Bed 30 - UCC30 - poc - bed - - - - \ No newline at end of file diff --git a/nh_ldh/ldh_master_data.xml b/nh_ldh/ldh_master_data.xml deleted file mode 100644 index 73f4c575..00000000 --- a/nh_ldh/ldh_master_data.xml +++ /dev/null @@ -1,123 +0,0 @@ - - - - - Luton and Dunstable Hospital - - - Luton and Dunstable Hospital - PALS@ldh.nhs.uk - http://www.ldh.nhs.uk/ - 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 - - - - - LDH POS Location - LDH - pos - hospital - - - - - Luton and Dunstable Hospital - - - - - Admission Location - ADML-LDH - structural - room - - - - Discharge Location - DISL-LDH - structural - room - - - - - - Luton and Dunstable Hospital - - - - - - - - - - LDH-ADT - adt - adt - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 88 - 92 - - - 92 - 96 - - - 90 - 94 - - - 86 - 90 - - - - \ No newline at end of file diff --git a/nh_ldh/ldh_user_data.xml b/nh_ldh/ldh_user_data.xml deleted file mode 100644 index 5acfbaf9..00000000 --- a/nh_ldh/ldh_user_data.xml +++ /dev/null @@ -1,832 +0,0 @@ - - - - - - Hudson Butler - hudson - hudson - Europe/London - - - - - - - - Heather Walder - heather - heather - Europe/London - - - - - - - - Harold Bishop - harold - harold - Europe/London - - - - - - - - Henry Higgins - henry - henry - Europe/London - - - - - - - - Hannah Mitchell - hannah - hannah - Europe/London - - - - - - - - Harper Ransom - harper - harper - Europe/London - - - - - - - - Harriet Kendall - harriet - harriet - Europe/London - - - - - - - - Hugo Burlatsky - hugo - hugo - Europe/London - - - - - - - - Natalia Gonzalez - natalia - natalia - Europe/London - - - - - - - - Noemi Simpson - noemi - noemi - Europe/London - - - - - - - - Noah Connolly - noah - noah - Europe/London - - - - - - - - Neil Hawking - neil - neil - Europe/London - - - - - - - - Norah Miller - norah - norah - Europe/London - - - - - - - - Nadine Bullock - nadine - nadine - Europe/London - - - - - - - - Nathan Lewis - nathan - nathan - Europe/London - - - - - - - - Nicolas Stockly - nicolas - nicolas - Europe/London - - - - - - - - Ned Muzio - ned - ned - Europe/London - - - - - - - - Natasha Goldner - natasha - natasha - Europe/London - - - - - - - - Nichole Smith - nichole - nichole - Europe/London - - - - - - - - Nasir Patel - nasir - nasir - Europe/London - - - - - - - - Winifred Kirrin - winifred - winifred - Europe/London - - - - - - - - Walter Smith - walter - walter - Europe/London - - - - - - - - Whitney Williams - whitney - whitney - Europe/London - - - - - - - - William Roberts - william - william - Europe/London - - - - - - - - Dave Chas - dave - dave - Europe/London - - - - - - - - Davina McCall - davina - davina - Europe/London - - - - - - - - Don Jones - don - don - Europe/London - - - - - - - - Dakota Fox - dakota - dakota - Europe/London - - - - - - - - Damien Jenkins - damien - damien - Europe/London - - - - - - - - Delilah Fletcher - delilah - delilah - Europe/London - - - - - - - - Dawson West - dawson - dawson - Europe/London - - - - - - - - Dana Wallace - dana - dana - Europe/London - - - - - - - - Diego Garcia - diego - diego - Europe/London - - - - - - - - Daniella Rossi - daniella - daniella - Europe/London - - - - - - - - Denzel Davies - denzel - denzel - Europe/London - - - - - - - - Diana Fowler - diana - diana - Europe/London - - - - - - - - Olga Chapman - olga - olga - Europe/London - - - - - - - - Robert Bond - robert - robert - Europe/London - - - - - - - - Rachel Andrews - rachel - rachel - Europe/London - - - - - - - - James Brown - james - james - Europe/London - - - - - - - - Jane Smith - jane - jane - Europe/London - - - - - - - - Caroline Meyers - caroline - caroline - Europe/London - - - - - - - - Roger Dursley - roger - roger - Europe/London - - - - - - - - Taylor Smith - taylor - taylor - Europe/London - - - - - - - Europe/London - - - - - - \ No newline at end of file diff --git a/nh_ldh/luton64.txt b/nh_ldh/luton64.txt deleted file mode 100644 index a4e757f3..00000000 --- a/nh_ldh/luton64.txt +++ /dev/null @@ -1,2 +0,0 @@ -iVBORw0KGgoAAAANSUhEUgAAATMAAAAxCAYAAAC2507hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYxIDY0LjE0MDk0OSwgMjAxMC8xMi8wNy0xMDo1NzowMSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNS4xIE1hY2ludG9zaCIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDpCNEYwODM2NUM0QjYxMUUzOTI5QTlGODFBMzZEQjZBMSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDpCNEYwODM2NkM0QjYxMUUzOTI5QTlGODFBMzZEQjZBMSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkI0RjA4MzYzQzRCNjExRTM5MjlBOUY4MUEzNkRCNkExIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOkI0RjA4MzY0QzRCNjExRTM5MjlBOUY4MUEzNkRCNkExIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+vsJSXgAALuNJREFUeNrsfQd8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 - diff --git a/nh_ldh/migration.py b/nh_ldh/migration.py deleted file mode 100644 index 54e8cf9f..00000000 --- a/nh_ldh/migration.py +++ /dev/null @@ -1,64 +0,0 @@ -from openerp.osv import orm - - -class ldh_users(orm.Model): - _inherit = 'res.users' - - def init(self, cr): - # MIGRATION FROM NON ROLE BASED DB - category_pool = self.pool['res.partner.category'] - hca_cat_id = category_pool.search(cr, 1, [['name', '=', 'HCA']])[0] - nur_cat_id = category_pool.search(cr, 1, [['name', '=', 'Nurse']])[0] - sco_cat_id = category_pool.search(cr, 1, [['name', '=', 'Shift Coordinator']])[0] - sma_cat_id = category_pool.search(cr, 1, [['name', '=', 'Senior Manager']])[0] - doc_cat_id = category_pool.search(cr, 1, [['name', '=', 'Doctor']])[0] - sdr_cat_id = category_pool.search(cr, 1, [['name', '=', 'Senior Doctor']])[0] - jdr_cat_id = category_pool.search(cr, 1, [['name', '=', 'Junior Doctor']])[0] - reg_cat_id = category_pool.search(cr, 1, [['name', '=', 'Registrar']])[0] - con_cat_id = category_pool.search(cr, 1, [['name', '=', 'Consultant']])[0] - rec_cat_id = category_pool.search(cr, 1, [['name', '=', 'Receptionist']])[0] - adm_cat_id = category_pool.search(cr, 1, [['name', '=', 'System Administrator']])[0] - kio_cat_id = category_pool.search(cr, 1, [['name', '=', 'Kiosk']])[0] - roles = [hca_cat_id, nur_cat_id, sco_cat_id, sma_cat_id, doc_cat_id, sdr_cat_id, jdr_cat_id, reg_cat_id, - con_cat_id, rec_cat_id, adm_cat_id, kio_cat_id] - migrate_users = self.search(cr, 1, [['category_id', 'not in', roles]]) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical HCA Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, hca_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Nurse Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, nur_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Shift Coordinator Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, sco_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Senior Manager Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, sma_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Doctor Group']], - ['id', 'in', migrate_users]]) - for uid in user_ids: - self.write(cr, 1, uid, {'category_id': [[4, doc_cat_id], [3, sdr_cat_id], [3, jdr_cat_id], [3, reg_cat_id], - [3, con_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Admin Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, adm_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Kiosk Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, kio_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Senior Doctor Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, sdr_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Junior Doctor Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, jdr_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Registrar Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, reg_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Consultant Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, con_cat_id]]}) - user_ids = self.search(cr, 1, [['groups_id.name', 'in', ['NH Clinical Receptionist Group']], - ['id', 'in', migrate_users]]) - self.write(cr, 1, user_ids, {'category_id': [[4, rec_cat_id]]}) - # END OF MIGRATION - super(ldh_users, self).init(cr) \ No newline at end of file diff --git a/nh_ldh/migration.pyc b/nh_ldh/migration.pyc deleted file mode 100644 index 60f4932c0feb10d5d78735905428f7f9e280aa8a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3300 zcmbtW-EJF26h6CloL{Gj+t7rR)}<7DQ|GQ%fGDX%1!{zx3uq*?TJ22iP3#>rGX^5r zSK&dBxaV1T7ajn{r42D?H`}8i9Y0 z`a}bd&OGvjPtv0cpUyoJ75bg%n&{nGg+!H3TPxTR|BGMCL(ejk(gVAWcVF~^k&)U= z&tb^dc+5jIl9(Q+o%wtqc){5@ZTSq~{aTuKx}T@+D+6s5K&xe-%>rnx4761M zt(Sr71<*zrXuAN~ECbyufVRp&I|Wd^476JSZPOT@f!$$M*bEkdzR(7;LK2(<7Kpe- zlY7qPQ!h72+^6x3V3VCZ-~ov}5+863AQHqw9*$EPeU6IBuEQgET-c0vDMn|X<>~so zOEl=^b(K7hwCS-a>%sD@)y1qIF3*Z6UnJ|{@~pMRtdHig{`MomoUecSo+gdFksI%g zjLbu-e#Gw1I>?}O23eAJkO@$3W$K8Z|E&B_;*7`hL}C1G7b7zkneEB)tccS^tj*#C|(x#5b7I>32q~l4laL$ zD)$^k=fpff%SCAzYMV&ijzTNDN?+mHK^_!Z*jSVhqS~l{^_~Bh4;) zr@i>xHjkCkB2Gf9wAtoanZ!yr--b!pmD-}h(Q6g)YW-$)X6D2Q@;C5s;HdaHr z4eU5pi5c~6m{`kovm+xpw6RJ6ahjZ787l|PS7H$JoMu6spx?#HT-r_Sd9Pp)3&Zjx z$~NP~N!!(GG&ERfJDs^gV`UGolQ+%dJ}9HG--H30-!RfTfQZ>huKLfSoMlp+c~)S! zWvdL=EaGz3%Ru`DP-?4mG3HN|TcS8?WV`tzWmZgQmu&4xVJ&ms>;a~T$vG_JIV|u@ zU6`#uDy-i)H3K{@0A}5sLR#!O7o9_;`Yx`F40Y6V&i+-$R=S=U4W;f(Lm3{lE&k|o zTaE0WJ0C{cayU*S!*O!B^`bDqEF!{1Uoz6OLlddoaF7EF73Ee%Ztq2YsAYE+9I0e> zsAY~S6oc8-%XlgVr=(VWX`DWTxQhgk>G!H#!y12ia@@N_9>t=CIdYBp480>Yv`0zr zNC~B0ghC+MFbwd`dz5k^)7rzUP6OCgJSIUye%*V1$KSr!@Sb{y-k$gA9c|rv>FwXK zR - - - - - - - nh.ldh.activity.workload.kanban - nh.ldh.activity.workload - - - - - - - - - - - -
-
-
- -
-
-
-
-
-
-
-
- - - Patient Board - nh.ldh.activity.workload - - kanban - - [['data_model','in',['nh.clinical.patient.placement','nh.clinical.ldh.patient.clerking','nh.clinical.ldh.patient.review']],['state','not in',['cancelled','completed']]] - - - - - - NH Clinical LDH Clerking Tree View - nh.clinical.clerking - - -