From 033d0855cdb4a602327e1f4f19808a8d706db4ed Mon Sep 17 00:00:00 2001 From: Ashesh <3626859+Ashesh3@users.noreply.github.com> Date: Tue, 5 Dec 2023 13:42:38 +0530 Subject: [PATCH 01/27] Ensure Deterministic Ordering of Local Self Government and Ward Data (#1665) * Make ordering of lsg and ward deterministic * fix dump data * Fix lsg and ward --- .../management/commands/load_lsg_data.py | 8 +- .../management/commands/load_ward_data.py | 3 +- data/dummy/facility.json | 6223 +++++++++-------- 3 files changed, 3135 insertions(+), 3099 deletions(-) diff --git a/care/users/management/commands/load_lsg_data.py b/care/users/management/commands/load_lsg_data.py index fc70815973..9e16d1327b 100644 --- a/care/users/management/commands/load_lsg_data.py +++ b/care/users/management/commands/load_lsg_data.py @@ -65,6 +65,12 @@ def create_local_bodies(local_body_list): type of the local body will be match based on this. if not found, it will be matched against the last item in the choices - "Others" """ + local_body_list.sort( + key=lambda lb: ( + lb["name"], + lb.get("localbody_code", ""), + ) + ) local_body_objs = [] for lb in local_body_list: dist_obj = get_district_obj(lb["district"], lb["state"]) @@ -87,7 +93,7 @@ def create_local_bodies(local_body_list): # Hence, those records can be ignored using the `ignore_conflicts` flag LocalBody.objects.bulk_create(local_body_objs, ignore_conflicts=True) - for f in glob.glob(f"{folder}/*.json"): + for f in sorted(glob.glob(f"{folder}/*.json")): counter += 1 with open(f"{f}", "r") as data_f: data = json.load(data_f) diff --git a/care/users/management/commands/load_ward_data.py b/care/users/management/commands/load_ward_data.py index 99c612851f..5eb29fdcc0 100644 --- a/care/users/management/commands/load_ward_data.py +++ b/care/users/management/commands/load_ward_data.py @@ -59,7 +59,7 @@ def get_local_body(lb): ), ).first() - for f in glob.glob(f"{folder}/*.json"): + for f in sorted(glob.glob(f"{folder}/*.json")): with open(f"{f}", "r") as data_f: data = json.load(data_f) wards = data.pop("wards", None) @@ -69,6 +69,7 @@ def get_local_body(lb): local_body = get_local_body(data) if not local_body: continue + wards.sort(key=lambda x: get_ward_name(x) + str(get_ward_number(x))) for ward in wards: counter += 1 try: diff --git a/data/dummy/facility.json b/data/dummy/facility.json index 52a3037077..03331ddc02 100644 --- a/data/dummy/facility.json +++ b/data/dummy/facility.json @@ -1,3099 +1,3128 @@ [ - { - "model": "facility.facility", - "pk": 1, - "fields": { - "external_id": "81092ced-8720-44cb-b4c5-3f0ad0540153", - "created_date": "2022-09-27T06:59:15.929Z", - "modified_date": "2022-09-27T06:59:15.929Z", - "deleted": false, - "name": "Dummy Facility 1", - "is_active": true, - "verified": false, - "facility_type": 2, - "kasp_empanelled": false, - "features": "1,2,3,4,5,6", - "longitude": null, - "latitude": null, - "pincode": 670000, - "address": "127.0.0.1", - "ward": 1, - "local_body": 920, - "district": 7, - "state": 1, - "oxygen_capacity": 0, - "type_b_cylinders": 0, - "type_c_cylinders": 0, - "type_d_cylinders": 0, - "expected_oxygen_requirement": 0, - "expected_type_b_cylinders": 0, - "expected_type_c_cylinders": 0, - "expected_type_d_cylinders": 0, - "phone_number": "+919999999888", - "corona_testing": false, - "created_by": 2, - "cover_image_url": null, - "middleware_address": null - } - }, - { - "model": "facility.facility", - "pk": 2, - "fields": { - "external_id": "fa33079d-727d-4295-b0fd-19153b36b2db", - "created_date": "2022-09-27T07:15:51.075Z", - "modified_date": "2022-09-27T07:15:51.075Z", - "deleted": false, - "name": "Dummy Shifting Center", - "is_active": true, - "verified": false, - "facility_type": 1300, - "kasp_empanelled": false, - "features": "1,6", - "longitude": null, - "latitude": null, - "pincode": 670112, - "address": "89.66.33.55", - "ward": 218, - "local_body": 12, - "district": 7, - "state": 1, - "oxygen_capacity": 0, - "type_b_cylinders": 0, - "type_c_cylinders": 0, - "type_d_cylinders": 0, - "expected_oxygen_requirement": 0, - "expected_type_b_cylinders": 0, - "expected_type_c_cylinders": 0, - "expected_type_d_cylinders": 0, - "phone_number": "+919876665987", - "corona_testing": false, - "created_by": 2, - "cover_image_url": null, - "middleware_address": null - } - }, - { - "model": "facility.facility", - "pk": 3, - "fields": { - "external_id": "4c293ecd-1aae-4ebc-9b5b-b53497dffac9", - "created_date": "2023-09-15T06:11:14.166Z", - "modified_date": "2023-09-15T06:11:14.166Z", - "deleted": false, - "name": "Dummy Request Approving Center", - "is_active": true, - "verified": false, - "facility_type": 1500, - "kasp_empanelled": false, - "features": "1,4,6", - "longitude": "78.6757364624373000", - "latitude": "21.4009146842158660", - "pincode": 670000, - "address": "Dummy Facility Address", - "ward": 7574, - "local_body": 431, - "district": 7, - "state": 1, - "oxygen_capacity": 0, - "type_b_cylinders": 0, - "type_c_cylinders": 0, - "type_d_cylinders": 0, - "expected_oxygen_requirement": 0, - "expected_type_b_cylinders": 0, - "expected_type_c_cylinders": 0, - "expected_type_d_cylinders": 0, - "phone_number": "+919999999888", - "corona_testing": false, - "created_by": 2, - "cover_image_url": null, - "middleware_address": null - } - }, - { - "model": "facility.facility", - "pk": 4, - "fields": { - "external_id": "e70e0b82-7a99-48c2-a735-41cdea3b4076", - "created_date": "2023-09-15T06:12:14.266Z", - "modified_date": "2023-09-15T06:12:14.266Z", - "deleted": false, - "name": "Dummy Request Fulfilment Center", - "is_active": true, - "verified": false, - "facility_type": 1510, - "kasp_empanelled": false, - "features": "1,3,5", - "longitude": "75.2139014820876600", - "latitude": "18.2774285038890340", - "pincode": 670000, - "address": "Dummy Facility Address 2", - "ward": 5412, - "local_body": 309, - "district": 7, - "state": 1, - "oxygen_capacity": 0, - "type_b_cylinders": 0, - "type_c_cylinders": 0, - "type_d_cylinders": 0, - "expected_oxygen_requirement": 0, - "expected_type_b_cylinders": 0, - "expected_type_c_cylinders": 0, - "expected_type_d_cylinders": 0, - "phone_number": "+918899885588", - "corona_testing": false, - "created_by": 2, - "cover_image_url": null, - "middleware_address": null - } - }, - { - "model": "facility.hospitaldoctors", - "pk": 1, - "fields": { - "external_id": "d68776c9-1197-411f-b19d-2069364b17a2", - "created_date": "2023-09-15T06:12:36.941Z", - "modified_date": "2023-09-15T06:12:36.941Z", - "deleted": false, - "facility": 4, - "area": 2, - "count": 5 - } - }, - { - "model": "facility.hospitaldoctors", - "pk": 2, - "fields": { - "external_id": "df1ef651-4e4f-4a0a-9df7-55e5949468ce", - "created_date": "2023-09-15T06:12:54.835Z", - "modified_date": "2023-09-15T06:12:54.835Z", - "deleted": false, - "facility": 3, - "area": 3, - "count": 4 - } - }, - { - "model": "facility.historicalfacilitycapacity", - "pk": 1, - "fields": { - "id": 1, - "external_id": "bfb7a4d8-6bf0-46d6-bf20-d5020850ea55", - "created_date": "2022-09-27T07:00:19.399Z", - "modified_date": "2022-09-27T07:00:19.399Z", - "deleted": false, - "room_type": 150, - "total_capacity": 1000, - "current_capacity": 20, - "facility": 1, - "history_date": "2022-09-27T07:00:19.400Z", - "history_change_reason": null, - "history_type": "+", - "history_user": 2 - } - }, - { - "model": "facility.historicalfacilitycapacity", - "pk": 2, - "fields": { - "id": 2, - "external_id": "52bd4e97-9064-4697-8fea-37e0a2b8c87c", - "created_date": "2022-09-27T07:16:52.525Z", - "modified_date": "2022-09-27T07:16:52.525Z", - "deleted": false, - "room_type": 150, - "total_capacity": 20, - "current_capacity": 1, - "facility": 2, - "history_date": "2022-09-27T07:16:52.526Z", - "history_change_reason": null, - "history_type": "+", - "history_user": 2 - } - }, - { - "model": "facility.historicalfacilitycapacity", - "pk": 3, - "fields": { - "id": 3, - "external_id": "4fed54e3-672b-412c-998f-a7d8f303016c", - "created_date": "2023-09-15T06:12:31.548Z", - "modified_date": "2023-09-15T06:12:31.548Z", - "deleted": false, - "room_type": 150, - "total_capacity": 12, - "current_capacity": 2, - "facility": 4, - "history_date": "2023-09-15T06:12:31.550Z", - "history_change_reason": null, - "history_type": "+", - "history_user": 2 - } - }, - { - "model": "facility.historicalfacilitycapacity", - "pk": 4, - "fields": { - "id": 4, - "external_id": "c7d64165-8097-4dec-a4df-616647e70c31", - "created_date": "2023-09-15T06:12:50.165Z", - "modified_date": "2023-09-15T06:12:50.165Z", - "deleted": false, - "room_type": 20, - "total_capacity": 31, - "current_capacity": 2, - "facility": 3, - "history_date": "2023-09-15T06:12:50.166Z", - "history_change_reason": null, - "history_type": "+", - "history_user": 2 - } - }, - { - "model": "facility.facilitycapacity", - "pk": 1, - "fields": { - "external_id": "bfb7a4d8-6bf0-46d6-bf20-d5020850ea55", - "created_date": "2022-09-27T07:00:19.399Z", - "modified_date": "2022-09-27T07:00:19.399Z", - "deleted": false, - "facility": 1, - "room_type": 150, - "total_capacity": 1000, - "current_capacity": 20 - } - }, - { - "model": "facility.facilitycapacity", - "pk": 2, - "fields": { - "external_id": "52bd4e97-9064-4697-8fea-37e0a2b8c87c", - "created_date": "2022-09-27T07:16:52.525Z", - "modified_date": "2022-09-27T07:16:52.525Z", - "deleted": false, - "facility": 2, - "room_type": 150, - "total_capacity": 20, - "current_capacity": 1 - } - }, - { - "model": "facility.facilitycapacity", - "pk": 3, - "fields": { - "external_id": "4fed54e3-672b-412c-998f-a7d8f303016c", - "created_date": "2023-09-15T06:12:31.548Z", - "modified_date": "2023-09-15T06:12:31.548Z", - "deleted": false, - "facility": 4, - "room_type": 150, - "total_capacity": 12, - "current_capacity": 2 - } - }, - { - "model": "facility.facilitycapacity", - "pk": 4, - "fields": { - "external_id": "c7d64165-8097-4dec-a4df-616647e70c31", - "created_date": "2023-09-15T06:12:50.165Z", - "modified_date": "2023-09-15T06:12:50.165Z", - "deleted": false, - "facility": 3, - "room_type": 20, - "total_capacity": 31, - "current_capacity": 2 - } - }, - { - "model": "facility.facilityuser", - "pk": 1, - "fields": { - "facility": 1, - "user": 2, - "created_by": 2 - } - }, - { - "model": "facility.facilityuser", - "pk": 2, - "fields": { - "facility": 2, - "user": 2, - "created_by": 2 - } - }, - { - "model": "facility.facilityuser", - "pk": 3, - "fields": { - "facility": 1, - "user": 21, - "created_by": 2 - } - }, - { - "model": "facility.facilityuser", - "pk": 4, - "fields": { - "facility": 1, - "user": 22, - "created_by": 2 - } - }, - { - "model": "facility.facilityuser", - "pk": 5, - "fields": { - "facility": 3, - "user": 2, - "created_by": 2 - } - }, - { - "model": "facility.facilityuser", - "pk": 6, - "fields": { - "facility": 4, - "user": 2, - "created_by": 2 - } - }, - { - "model": "facility.assetlocation", - "pk": 1, - "fields": { - "external_id": "c3ab727f-dc3f-4a11-bf8d-2472bd79b5f7", - "created_date": "2022-09-27T07:02:07.969Z", - "modified_date": "2022-09-27T07:02:07.969Z", - "deleted": false, - "name": "Camera Locations", - "description": "", - "location_type": 1, - "facility": 1 - } - }, - { - "model": "facility.assetlocation", - "pk": 2, - "fields": { - "external_id": "a5cd0a56-cd5a-425c-9a87-cf79c0a90887", - "created_date": "2023-09-15T06:13:24.614Z", - "modified_date": "2023-09-15T06:13:24.614Z", - "deleted": false, - "name": "Dummy Location 1", - "description": "", - "location_type": 1, - "facility": 1 - } - }, - { - "model": "facility.asset", - "pk": 1, - "fields": { - "external_id": "ae4290a0-e86a-48d7-9c82-60b7d6514707", - "created_date": "2022-09-27T07:03:57.401Z", - "modified_date": "2022-09-27T07:03:57.401Z", - "deleted": false, - "name": "Dummy Camera 1", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 2, - "fields": { - "external_id": "7c06ec3c-838d-447a-bf36-d20239c8442f", - "created_date": "2022-09-27T07:04:30.802Z", - "modified_date": "2022-09-27T07:04:30.802Z", - "deleted": false, - "name": "Dummy Camera 2", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 3, - "fields": { - "external_id": "46740927-f782-49aa-bf6e-52a1208e8d18", - "created_date": "2022-09-27T07:04:35.291Z", - "modified_date": "2022-09-27T07:04:35.291Z", - "deleted": false, - "name": "Dummy Camera 3", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 4, - "fields": { - "external_id": "d6e9e071-e67e-4fbc-a872-4c3b1b9f749f", - "created_date": "2022-09-27T07:04:38.335Z", - "modified_date": "2022-09-27T07:04:38.335Z", - "deleted": false, - "name": "Dummy Camera 4", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 5, - "fields": { - "external_id": "35a2200d-6c1a-4c53-936c-60ebec1f9d42", - "created_date": "2022-09-27T07:04:41.179Z", - "modified_date": "2022-09-27T07:04:41.179Z", - "deleted": false, - "name": "Dummy Camera 5", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 6, - "fields": { - "external_id": "db1c2f95-5ae9-4e64-b647-30250beb79c7", - "created_date": "2022-09-27T07:04:43.869Z", - "modified_date": "2022-09-27T07:04:43.870Z", - "deleted": false, - "name": "Dummy Camera 6", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 7, - "fields": { - "external_id": "604ec344-a7d1-4523-8a6f-3e78cd3409ef", - "created_date": "2022-09-27T07:04:46.610Z", - "modified_date": "2022-09-27T07:04:46.610Z", - "deleted": false, - "name": "Dummy Camera 7", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 8, - "fields": { - "external_id": "271ace96-6bc6-4d32-916b-6b69eb81e4c3", - "created_date": "2022-09-27T07:04:49.732Z", - "modified_date": "2022-09-27T07:04:49.732Z", - "deleted": false, - "name": "Dummy Camera 8", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 9, - "fields": { - "external_id": "fe2f171f-0c69-4305-be60-0db625d0e38e", - "created_date": "2022-09-27T07:04:52.832Z", - "modified_date": "2022-09-27T07:04:52.832Z", - "deleted": false, - "name": "Dummy Camera 9", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 10, - "fields": { - "external_id": "cf77edb2-e771-46db-a73d-80ac2b446987", - "created_date": "2022-09-27T07:04:55.942Z", - "modified_date": "2022-09-27T07:04:55.942Z", - "deleted": false, - "name": "Dummy Camera 10", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 11, - "fields": { - "external_id": "2a19c4a9-84a2-41c8-ac0d-bbbc35e5f18d", - "created_date": "2022-09-27T07:04:58.599Z", - "modified_date": "2022-09-27T07:04:58.599Z", - "deleted": false, - "name": "Dummy Camera 11", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 12, - "fields": { - "external_id": "efb41cef-4d39-477f-b437-7ec9e4406971", - "created_date": "2022-09-27T07:05:01.182Z", - "modified_date": "2022-09-27T07:05:01.182Z", - "deleted": false, - "name": "Dummy Camera 12", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 13, - "fields": { - "external_id": "875b2bd3-67a8-4968-a589-d62c656cacb9", - "created_date": "2022-09-27T07:05:03.955Z", - "modified_date": "2022-09-27T07:05:03.955Z", - "deleted": false, - "name": "Dummy Camera 13", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 14, - "fields": { - "external_id": "b9ff3001-ed15-4538-bb54-78d0b2be445f", - "created_date": "2022-09-27T07:05:07.194Z", - "modified_date": "2022-09-27T07:05:07.194Z", - "deleted": false, - "name": "Dummy Camera 14", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 15, - "fields": { - "external_id": "a9678d31-17a9-4474-be01-c095553e97b5", - "created_date": "2022-09-27T07:05:10.384Z", - "modified_date": "2022-09-27T07:05:10.384Z", - "deleted": false, - "name": "Dummy Camera 15", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 16, - "fields": { - "external_id": "b0e4063e-3f05-4f94-aea0-e15e9e474f96", - "created_date": "2022-09-27T07:05:13.857Z", - "modified_date": "2022-09-27T07:05:13.857Z", - "deleted": false, - "name": "Dummy Camera 16", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 17, - "fields": { - "external_id": "634e1421-f1a7-41d1-bde2-13d1ee7eabf4", - "created_date": "2022-09-27T07:05:16.707Z", - "modified_date": "2022-09-27T07:05:16.707Z", - "deleted": false, - "name": "Dummy Camera 17", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 18, - "fields": { - "external_id": "17992979-d18a-46c6-a48f-c7f0f40f85c3", - "created_date": "2022-09-27T07:05:19.781Z", - "modified_date": "2022-09-27T07:05:19.781Z", - "deleted": false, - "name": "Dummy Camera 18", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 19, - "fields": { - "external_id": "c6e2c6c3-ba16-4c69-b1f8-822d28317268", - "created_date": "2022-09-27T07:13:12.608Z", - "modified_date": "2022-09-27T07:13:12.608Z", - "deleted": false, - "name": "Dummy Camera 19", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 20, - "fields": { - "external_id": "cb375e24-a98c-45ed-85c4-bdd340625357", - "created_date": "2022-09-27T07:13:16.362Z", - "modified_date": "2022-09-27T07:13:16.362Z", - "deleted": false, - "name": "Dummy Camera 20", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 21, - "fields": { - "external_id": "36a0d62c-9f2d-465f-ad9f-772ec7a342d0", - "created_date": "2022-09-27T07:13:19.599Z", - "modified_date": "2022-09-27T07:13:19.599Z", - "deleted": false, - "name": "Dummy Camera 21", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 22, - "fields": { - "external_id": "e24d8936-e4f3-4f30-870e-8bc560be66f2", - "created_date": "2022-09-27T07:13:22.225Z", - "modified_date": "2022-09-27T07:13:22.225Z", - "deleted": false, - "name": "Dummy Camera 22", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 23, - "fields": { - "external_id": "cc0ebf9e-0fe1-45ff-9954-4b92fc072846", - "created_date": "2022-09-27T07:13:25.053Z", - "modified_date": "2022-09-27T07:13:25.053Z", - "deleted": false, - "name": "Dummy Camera 23", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 24, - "fields": { - "external_id": "b10bed38-4a06-473a-85f8-87004703bb2a", - "created_date": "2022-09-27T07:13:27.907Z", - "modified_date": "2022-09-27T07:13:27.907Z", - "deleted": false, - "name": "Dummy Camera 24", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 25, - "fields": { - "external_id": "51ce3355-1773-47c0-a929-54bb57293940", - "created_date": "2022-09-27T07:13:30.944Z", - "modified_date": "2022-09-27T07:13:30.944Z", - "deleted": false, - "name": "Dummy Camera 25", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 26, - "fields": { - "external_id": "567ddf56-f86a-488e-bdff-9c69daacb654", - "created_date": "2022-09-27T07:13:33.581Z", - "modified_date": "2022-09-27T07:13:33.581Z", - "deleted": false, - "name": "Dummy Camera 26", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 27, - "fields": { - "external_id": "234a8559-167b-4e61-9971-15dbc59b9319", - "created_date": "2022-09-27T07:13:37.020Z", - "modified_date": "2022-09-27T07:13:37.020Z", - "deleted": false, - "name": "Dummy Camera 27", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 28, - "fields": { - "external_id": "3f203a24-84ae-44c0-897a-1b3ddd42e072", - "created_date": "2022-09-27T07:13:39.951Z", - "modified_date": "2022-09-27T07:13:39.951Z", - "deleted": false, - "name": "Dummy Camera 28", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 29, - "fields": { - "external_id": "fc4c25cd-de00-494a-ad58-20e581520198", - "created_date": "2022-09-27T07:13:43.511Z", - "modified_date": "2022-09-27T07:13:43.511Z", - "deleted": false, - "name": "Dummy Camera 29", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.asset", - "pk": 30, - "fields": { - "external_id": "cb6f3bf8-cfea-498a-a4f1-effae723d6e0", - "created_date": "2022-09-27T07:13:46.850Z", - "modified_date": "2022-09-27T07:13:46.850Z", - "deleted": false, - "name": "Dummy Camera 30", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null - } - }, - { - "model": "facility.patientconsultation", - "pk": 1, - "fields": { - "external_id": "b5217729-3008-4a44-b347-72ba738d5f45", - "created_date": "2022-09-27T07:20:40.117Z", - "modified_date": "2022-09-27T07:20:40.123Z", - "deleted": false, - "patient": 1, - "patient_no": "88.99.44.66", - "facility": 1, - "symptoms": "3", - "other_symptoms": "", - "symptoms_onset_date": "2022-09-27T07:19:53.380Z", - "deprecated_covid_category": null, - "category": "Moderate", - "examination_details": "", - "history_of_present_illness": "", - "treatment_plan": "", - "consultation_notes": "Transfer", - "course_in_facility": null, - "investigation": [], - "prescriptions": {}, - "procedure": {}, - "suggestion": "R", - "route_to_facility": null, - "review_interval": -1, - "referred_to": 2, - "is_readmission": false, - "referred_to_external": "", - "admitted": false, - "admission_date": null, - "discharge_date": null, - "discharge_reason": null, - "discharge_notes": "", - "discharge_prescription": {}, - "discharge_prn_prescription": {}, - "death_datetime": null, - "death_confirmed_doctor": "", - "bed_number": null, - "is_kasp": false, - "kasp_enabled_date": null, - "is_telemedicine": false, - "last_updated_by_telemedicine": false, - "assigned_to": null, - "deprecated_verified_by": "", - "treating_physician": null, - "created_by": 2, - "last_edited_by": 2, - "last_daily_round": null, - "current_bed": null, - "height": 0.0, - "weight": 0.0, - "operation": null, - "special_instruction": "", - "intubation_history": [], - "prn_prescription": [], - "discharge_advice": [] - } - }, - { - "model": "facility.bed", - "pk": 1, - "fields": { - "external_id": "260de825-7ef2-4155-8fd2-ae4d66980734", - "created_date": "2023-09-15T06:13:43.199Z", - "modified_date": "2023-09-15T06:13:43.199Z", - "deleted": false, - "name": "Dummy Bed 1", - "description": "", - "bed_type": 2, - "facility": 1, - "meta": {}, - "location": 2 - } - }, - { - "model": "facility.bed", - "pk": 2, - "fields": { - "external_id": "8ab99d71-7263-4c60-b6d4-b22e7f8dfecf", - "created_date": "2023-09-15T06:13:43.199Z", - "modified_date": "2023-09-15T06:13:43.199Z", - "deleted": false, - "name": "Dummy Bed 2", - "description": "", - "bed_type": 2, - "facility": 1, - "meta": {}, - "location": 2 - } - }, - { - "model": "facility.bed", - "pk": 3, - "fields": { - "external_id": "e7a9c643-4841-47f3-9729-4ccdadb9783a", - "created_date": "2023-09-15T06:13:43.200Z", - "modified_date": "2023-09-15T06:13:43.200Z", - "deleted": false, - "name": "Dummy Bed 3", - "description": "", - "bed_type": 2, - "facility": 1, - "meta": {}, - "location": 2 - } - }, - { - "model": "facility.bed", - "pk": 5, - "fields": { - "external_id": "fe749328-1a6a-43ae-b4c2-fb718b8ca84b", - "created_date": "2023-09-15T06:14:13.862Z", - "modified_date": "2023-09-15T06:14:13.862Z", - "deleted": false, - "name": "Dummy Bed 5", - "description": "", - "bed_type": 1, - "facility": 1, - "meta": {}, - "location": 1 - } - }, - { - "model": "facility.bed", - "pk": 7, - "fields": { - "external_id": "ddd0ce36-c4ff-409c-96d3-ea943ac876e4", - "created_date": "2023-09-15T06:14:45.458Z", - "modified_date": "2023-09-15T06:14:45.458Z", - "deleted": false, - "name": "Dummy Bed 6", - "description": "", - "bed_type": 6, - "facility": 1, - "meta": {}, - "location": 1 - } - }, - { - "model": "facility.bed", - "pk": 8, - "fields": { - "external_id": "90a90743-0a95-42c1-bdf2-b7fbf9b9edd1", - "created_date": "2023-09-15T06:14:56.105Z", - "modified_date": "2023-09-15T06:14:56.105Z", - "deleted": false, - "name": "Dummy Bed 4", - "description": "", - "bed_type": 2, - "facility": 1, - "meta": {}, - "location": 1 - } - }, - { - "model": "facility.facilityinventoryitemtag", - "pk": 1, - "fields": { - "name": "Safety" - } - }, - { - "model": "facility.facilityinventoryitemtag", - "pk": 2, - "fields": { - "name": "Medical" - } - }, - { - "model": "facility.facilityinventoryitemtag", - "pk": 3, - "fields": { - "name": "Food" - } - }, - { - "model": "facility.facilityinventoryunit", - "pk": 1, - "fields": { - "name": "Items" - } - }, - { - "model": "facility.facilityinventoryunit", - "pk": 2, - "fields": { - "name": "Dozen" - } - }, - { - "model": "facility.facilityinventoryunit", - "pk": 3, - "fields": { - "name": "Kilo Litre" - } - }, - { - "model": "facility.facilityinventoryunit", - "pk": 4, - "fields": { - "name": "Cylinders" - } - }, - { - "model": "facility.facilityinventoryunit", - "pk": 5, - "fields": { - "name": "kg" - } - }, - { - "model": "facility.facilityinventoryunit", - "pk": 6, - "fields": { - "name": "gram" - } - }, - { - "model": "facility.facilityinventoryunit", - "pk": 7, - "fields": { - "name": "Cubic Meter" - } - }, - { - "model": "facility.facilityinventoryunitconverter", - "pk": 1, - "fields": { - "from_unit": 5, - "to_unit": 6, - "multiplier": 1000.0 - } - }, - { - "model": "facility.facilityinventoryunitconverter", - "pk": 2, - "fields": { - "from_unit": 2, - "to_unit": 1, - "multiplier": 12.0 - } - }, - { - "model": "facility.facilityinventoryitem", - "pk": 1, - "fields": { - "name": "PPE", - "default_unit": 1, - "description": "", - "min_quantity": 150.0, - "allowed_units": [ - 1, - 2 - ], - "tags": [ - 1, - 2 - ] - } - }, - { - "model": "facility.facilityinventoryitem", - "pk": 2, - "fields": { - "name": "IV Fluid 500 ml", - "default_unit": 1, - "description": "", - "min_quantity": 2.0, - "allowed_units": [ - 1, - 2 - ], - "tags": [ - 2 - ] - } - }, - { - "model": "facility.facilityinventoryitem", - "pk": 3, - "fields": { - "name": "Liquid Oxygen", - "default_unit": 7, - "description": "", - "min_quantity": 10.0, - "allowed_units": [ - 7 - ], - "tags": [ - 2 - ] - } - }, - { - "model": "facility.facilityinventoryitem", - "pk": 4, - "fields": { - "name": "Jumbo D Type Oxygen Cylinder", - "default_unit": 4, - "description": "", - "min_quantity": 100.0, - "allowed_units": [ - 4 - ], - "tags": [] - } - }, - { - "model": "facility.facilityinventoryitem", - "pk": 5, - "fields": { - "name": "B Type Oxygen Cylinder", - "default_unit": 4, - "description": "", - "min_quantity": 100.0, - "allowed_units": [ - 4 - ], - "tags": [] - } - }, - { - "model": "facility.facilityinventoryitem", - "pk": 6, - "fields": { - "name": "C Type Oxygen Cylinder", - "default_unit": 4, - "description": "", - "min_quantity": 100.0, - "allowed_units": [ - 4 - ], - "tags": [] - } - }, - { - "model": "facility.facilityinventoryitem", - "pk": 7, - "fields": { - "name": "Gaseous Oxygen", - "default_unit": 7, - "description": "", - "min_quantity": 10.0, - "allowed_units": [ - 7 - ], - "tags": [ - 2 - ] - } - }, - { - "model": "facility.historicalpatientregistration", - "pk": 1, - "fields": { - "id": 1, - "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", - "created_date": "2022-09-27T07:19:20.379Z", - "modified_date": "2022-09-27T07:19:20.379Z", - "deleted": false, - "source": 10, - "name": "Dummy Patient", - "age": 120, - "gender": 1, - "phone_number": "+911234567896", - "emergency_phone_number": "+919898797775", - "address": "55.66.44.33", - "permanent_address": "55.66.44.33", - "pincode": 600115, - "date_of_birth": "1901-10-16", - "year_of_birth": 1901, - "nationality": "India", - "passport_no": "", - "is_medical_worker": false, - "blood_group": "O+", - "contact_with_confirmed_carrier": false, - "contact_with_suspected_carrier": false, - "estimated_contact_date": null, - "past_travel": false, - "countries_travelled_old": null, - "countries_travelled": null, - "date_of_return": null, - "allergies": "", - "present_health": "", - "ongoing_medication": "", - "has_SARI": false, - "is_antenatal": false, - "ward_old": "", - "is_migrant_worker": false, - "disease_status": 2, - "number_of_aged_dependents": 0, - "number_of_chronic_diseased_dependents": 0, - "action": 10, - "review_time": null, - "is_active": true, - "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", - "test_id": "", - "date_of_test": null, - "srf_id": "", - "test_type": 30, - "allow_transfer": false, - "will_donate_blood": null, - "fit_for_blood_donation": null, - "village": "", - "designation_of_health_care_worker": "", - "instituion_of_health_care_worker": "", - "transit_details": null, - "frontline_worker": null, - "date_of_result": null, - "number_of_primary_contacts": null, - "number_of_secondary_contacts": null, - "is_vaccinated": false, - "number_of_doses": 0, - "vaccine_name": null, - "covin_id": null, - "last_vaccinated_date": null, - "cluster_name": null, - "is_declared_positive": true, - "date_declared_positive": "2022-09-27T07:15:04.715Z", - "facility": 1, - "nearest_facility": null, - "ward": 1729, - "local_body": 95, - "district": 7, - "state": 1, - "last_edited": null, - "created_by": 2, - "last_consultation": null, - "assigned_to": null, - "abha_number": null, - "history_date": "2022-09-27T07:19:20.385Z", - "history_change_reason": null, - "history_type": "+", - "history_user": 2 - } - }, - { - "model": "facility.historicalpatientregistration", - "pk": 2, - "fields": { - "id": 1, - "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", - "created_date": "2022-09-27T07:19:20.379Z", - "modified_date": "2022-09-27T07:19:20.400Z", - "deleted": false, - "source": 10, - "name": "Dummy Patient", - "age": 120, - "gender": 1, - "phone_number": "+911234567896", - "emergency_phone_number": "+919898797775", - "address": "55.66.44.33", - "permanent_address": "55.66.44.33", - "pincode": 600115, - "date_of_birth": "1901-10-16", - "year_of_birth": 1901, - "nationality": "India", - "passport_no": "", - "is_medical_worker": false, - "blood_group": "O+", - "contact_with_confirmed_carrier": false, - "contact_with_suspected_carrier": false, - "estimated_contact_date": null, - "past_travel": false, - "countries_travelled_old": null, - "countries_travelled": null, - "date_of_return": null, - "allergies": "", - "present_health": "", - "ongoing_medication": "", - "has_SARI": false, - "is_antenatal": false, - "ward_old": "", - "is_migrant_worker": false, - "disease_status": 2, - "number_of_aged_dependents": 0, - "number_of_chronic_diseased_dependents": 0, - "action": 10, - "review_time": null, - "is_active": true, - "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", - "test_id": "", - "date_of_test": null, - "srf_id": "", - "test_type": 30, - "allow_transfer": false, - "will_donate_blood": null, - "fit_for_blood_donation": null, - "village": "", - "designation_of_health_care_worker": "", - "instituion_of_health_care_worker": "", - "transit_details": null, - "frontline_worker": null, - "date_of_result": null, - "number_of_primary_contacts": null, - "number_of_secondary_contacts": null, - "is_vaccinated": false, - "number_of_doses": 0, - "vaccine_name": null, - "covin_id": null, - "last_vaccinated_date": null, - "cluster_name": null, - "is_declared_positive": true, - "date_declared_positive": "2022-09-27T07:15:04.715Z", - "facility": 1, - "nearest_facility": null, - "ward": 1729, - "local_body": 95, - "district": 7, - "state": 1, - "last_edited": null, - "created_by": 2, - "last_consultation": null, - "assigned_to": null, - "abha_number": null, - "history_date": "2022-09-27T07:19:20.403Z", - "history_change_reason": null, - "history_type": "~", - "history_user": 2 - } - }, - { - "model": "facility.historicalpatientregistration", - "pk": 3, - "fields": { - "id": 1, - "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", - "created_date": "2022-09-27T07:19:20.379Z", - "modified_date": "2022-09-27T07:19:20.413Z", - "deleted": false, - "source": 10, - "name": "Dummy Patient", - "age": 120, - "gender": 1, - "phone_number": "+911234567896", - "emergency_phone_number": "+919898797775", - "address": "55.66.44.33", - "permanent_address": "55.66.44.33", - "pincode": 600115, - "date_of_birth": "1901-10-16", - "year_of_birth": 1901, - "nationality": "India", - "passport_no": "", - "is_medical_worker": false, - "blood_group": "O+", - "contact_with_confirmed_carrier": false, - "contact_with_suspected_carrier": false, - "estimated_contact_date": null, - "past_travel": false, - "countries_travelled_old": null, - "countries_travelled": null, - "date_of_return": null, - "allergies": "", - "present_health": "", - "ongoing_medication": "", - "has_SARI": false, - "is_antenatal": false, - "ward_old": "", - "is_migrant_worker": false, - "disease_status": 2, - "number_of_aged_dependents": 0, - "number_of_chronic_diseased_dependents": 0, - "action": 10, - "review_time": null, - "is_active": true, - "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", - "test_id": "", - "date_of_test": null, - "srf_id": "", - "test_type": 30, - "allow_transfer": false, - "will_donate_blood": null, - "fit_for_blood_donation": null, - "village": "", - "designation_of_health_care_worker": "", - "instituion_of_health_care_worker": "", - "transit_details": null, - "frontline_worker": null, - "date_of_result": null, - "number_of_primary_contacts": null, - "number_of_secondary_contacts": null, - "is_vaccinated": false, - "number_of_doses": 0, - "vaccine_name": null, - "covin_id": null, - "last_vaccinated_date": null, - "cluster_name": null, - "is_declared_positive": true, - "date_declared_positive": "2022-09-27T07:15:04.715Z", - "facility": 1, - "nearest_facility": null, - "ward": 1729, - "local_body": 95, - "district": 7, - "state": 1, - "last_edited": 2, - "created_by": 2, - "last_consultation": null, - "assigned_to": null, - "abha_number": null, - "history_date": "2022-09-27T07:19:20.415Z", - "history_change_reason": null, - "history_type": "~", - "history_user": 2 - } - }, - { - "model": "facility.historicalpatientregistration", - "pk": 4, - "fields": { - "id": 1, - "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", - "created_date": "2022-09-27T07:19:20.379Z", - "modified_date": "2022-09-27T07:20:40.135Z", - "deleted": false, - "source": 10, - "name": "Dummy Patient", - "age": 120, - "gender": 1, - "phone_number": "+911234567896", - "emergency_phone_number": "+919898797775", - "address": "55.66.44.33", - "permanent_address": "55.66.44.33", - "pincode": 600115, - "date_of_birth": "1901-10-16", - "year_of_birth": 1901, - "nationality": "India", - "passport_no": "", - "is_medical_worker": false, - "blood_group": "O+", - "contact_with_confirmed_carrier": false, - "contact_with_suspected_carrier": false, - "estimated_contact_date": null, - "past_travel": false, - "countries_travelled_old": null, - "countries_travelled": null, - "date_of_return": null, - "allergies": "", - "present_health": "", - "ongoing_medication": "", - "has_SARI": false, - "is_antenatal": false, - "ward_old": "", - "is_migrant_worker": false, - "disease_status": 2, - "number_of_aged_dependents": 0, - "number_of_chronic_diseased_dependents": 0, - "action": 10, - "review_time": null, - "is_active": true, - "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", - "test_id": "", - "date_of_test": null, - "srf_id": "", - "test_type": 30, - "allow_transfer": false, - "will_donate_blood": null, - "fit_for_blood_donation": null, - "village": "", - "designation_of_health_care_worker": "", - "instituion_of_health_care_worker": "", - "transit_details": null, - "frontline_worker": null, - "date_of_result": null, - "number_of_primary_contacts": null, - "number_of_secondary_contacts": null, - "is_vaccinated": false, - "number_of_doses": 0, - "vaccine_name": null, - "covin_id": null, - "last_vaccinated_date": null, - "cluster_name": null, - "is_declared_positive": true, - "date_declared_positive": "2022-09-27T07:15:04.715Z", - "facility": 1, - "nearest_facility": null, - "ward": 1729, - "local_body": 95, - "district": 7, - "state": 1, - "last_edited": 2, - "created_by": 2, - "last_consultation": 1, - "assigned_to": null, - "abha_number": null, - "history_date": "2022-09-27T07:20:40.139Z", - "history_change_reason": null, - "history_type": "~", - "history_user": 2 - } - }, - { - "model": "facility.historicalpatientregistration", - "pk": 5, - "fields": { - "id": 1, - "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", - "created_date": "2022-09-27T07:19:20.379Z", - "modified_date": "2022-09-27T07:22:00.563Z", - "deleted": false, - "source": 10, - "name": "Dummy Patient", - "age": 120, - "gender": 1, - "phone_number": "+911234567896", - "emergency_phone_number": "+919898797775", - "address": "55.66.44.33", - "permanent_address": "55.66.44.33", - "pincode": 600115, - "date_of_birth": "1901-10-16", - "year_of_birth": 1901, - "nationality": "India", - "passport_no": "", - "is_medical_worker": false, - "blood_group": "O+", - "contact_with_confirmed_carrier": false, - "contact_with_suspected_carrier": false, - "estimated_contact_date": null, - "past_travel": false, - "countries_travelled_old": null, - "countries_travelled": null, - "date_of_return": null, - "allergies": "", - "present_health": "", - "ongoing_medication": "", - "has_SARI": false, - "is_antenatal": false, - "ward_old": "", - "is_migrant_worker": false, - "disease_status": 2, - "number_of_aged_dependents": 0, - "number_of_chronic_diseased_dependents": 0, - "action": 10, - "review_time": null, - "is_active": true, - "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", - "test_id": "", - "date_of_test": null, - "srf_id": "", - "test_type": 30, - "allow_transfer": true, - "will_donate_blood": null, - "fit_for_blood_donation": null, - "village": "", - "designation_of_health_care_worker": "", - "instituion_of_health_care_worker": "", - "transit_details": null, - "frontline_worker": null, - "date_of_result": null, - "number_of_primary_contacts": null, - "number_of_secondary_contacts": null, - "is_vaccinated": false, - "number_of_doses": 0, - "vaccine_name": null, - "covin_id": null, - "last_vaccinated_date": null, - "cluster_name": null, - "is_declared_positive": true, - "date_declared_positive": "2022-09-27T07:15:04.715Z", - "facility": 1, - "nearest_facility": null, - "ward": 1729, - "local_body": 95, - "district": 7, - "state": 1, - "last_edited": 2, - "created_by": 2, - "last_consultation": 1, - "assigned_to": null, - "abha_number": null, - "history_date": "2022-09-27T07:22:00.566Z", - "history_change_reason": null, - "history_type": "~", - "history_user": 2 - } - }, - { - "model": "facility.patientregistration", - "pk": 1, - "fields": { - "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", - "created_date": "2022-09-27T07:19:20.379Z", - "modified_date": "2022-09-27T07:22:00.563Z", - "deleted": false, - "source": 10, - "facility": 1, - "nearest_facility": null, - "meta_info": null, - "name": "Dummy Patient", - "age": 120, - "gender": 1, - "phone_number": "+911234567896", - "emergency_phone_number": "+919898797775", - "address": "55.66.44.33", - "permanent_address": "55.66.44.33", - "pincode": 600115, - "date_of_birth": "1901-10-16", - "year_of_birth": 1901, - "nationality": "India", - "passport_no": "", - "is_medical_worker": false, - "blood_group": "O+", - "contact_with_confirmed_carrier": false, - "contact_with_suspected_carrier": false, - "estimated_contact_date": null, - "past_travel": false, - "countries_travelled_old": null, - "countries_travelled": null, - "date_of_return": null, - "allergies": "", - "present_health": "", - "ongoing_medication": "", - "has_SARI": false, - "is_antenatal": false, - "ward_old": "", - "ward": 1729, - "local_body": 95, - "district": 7, - "state": 1, - "is_migrant_worker": false, - "disease_status": 2, - "number_of_aged_dependents": 0, - "number_of_chronic_diseased_dependents": 0, - "last_edited": 2, - "action": 10, - "review_time": null, - "created_by": 2, - "is_active": true, - "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", - "test_id": "", - "date_of_test": null, - "srf_id": "", - "test_type": 30, - "allow_transfer": true, - "last_consultation": 1, - "will_donate_blood": null, - "fit_for_blood_donation": null, - "village": "", - "designation_of_health_care_worker": "", - "instituion_of_health_care_worker": "", - "transit_details": null, - "frontline_worker": null, - "date_of_result": null, - "number_of_primary_contacts": null, - "number_of_secondary_contacts": null, - "is_vaccinated": false, - "number_of_doses": 0, - "vaccine_name": null, - "covin_id": null, - "last_vaccinated_date": null, - "cluster_name": null, - "is_declared_positive": true, - "date_declared_positive": "2022-09-27T07:15:04.715Z", - "assigned_to": null, - "abha_number": null - } - }, - { - "model": "facility.disease", - "pk": 1, - "fields": { - "patient": 1, - "disease": 1, - "details": "", - "deleted": false - } - }, - { - "model": "facility.patientsample", - "pk": 1, - "fields": { - "external_id": "29689b96-6018-426f-984f-344fa5e3186b", - "created_date": "2022-09-27T07:23:29.568Z", - "modified_date": "2022-09-27T07:23:29.574Z", - "deleted": false, - "patient": 1, - "consultation": 1, - "sample_type": 1, - "sample_type_other": "", - "has_sari": false, - "has_ari": false, - "doctor_name": "NO DOCTOR SPECIFIED", - "diff_diagnosis": "", - "etiology_identified": "", - "is_atypical_presentation": false, - "atypical_presentation": "", - "is_unusual_course": false, - "icmr_category": 10, - "icmr_label": "Test", - "status": 1, - "result": 3, - "fast_track": "", - "date_of_sample": "2022-09-27T07:23:29.508Z", - "date_of_result": null, - "testing_facility": 1, - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.patientsample", - "pk": 2, - "fields": { - "external_id": "ea48179e-90c5-450b-800d-c1866d2d3d74", - "created_date": "2022-09-27T07:25:39.605Z", - "modified_date": "2022-09-27T07:25:39.609Z", - "deleted": false, - "patient": 1, - "consultation": 1, - "sample_type": 1, - "sample_type_other": "", - "has_sari": false, - "has_ari": false, - "doctor_name": "NO DOCTOR SPECIFIED", - "diff_diagnosis": "", - "etiology_identified": "", - "is_atypical_presentation": false, - "atypical_presentation": "", - "is_unusual_course": false, - "icmr_category": 10, - "icmr_label": "Test", - "status": 1, - "result": 3, - "fast_track": "", - "date_of_sample": "2022-09-27T07:23:29.508Z", - "date_of_result": null, - "testing_facility": 1, - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.patientsample", - "pk": 3, - "fields": { - "external_id": "dcaf07f9-8412-45bb-bb7c-1c232c28e9da", - "created_date": "2022-09-27T07:25:41.681Z", - "modified_date": "2022-09-27T07:25:41.685Z", - "deleted": false, - "patient": 1, - "consultation": 1, - "sample_type": 1, - "sample_type_other": "", - "has_sari": false, - "has_ari": false, - "doctor_name": "NO DOCTOR SPECIFIED", - "diff_diagnosis": "", - "etiology_identified": "", - "is_atypical_presentation": false, - "atypical_presentation": "", - "is_unusual_course": false, - "icmr_category": 10, - "icmr_label": "Test", - "status": 1, - "result": 3, - "fast_track": "", - "date_of_sample": "2022-09-27T07:23:29.508Z", - "date_of_result": null, - "testing_facility": 1, - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.patientsample", - "pk": 4, - "fields": { - "external_id": "80868c78-4917-4401-b4b4-9eea49c47493", - "created_date": "2022-09-27T07:25:42.673Z", - "modified_date": "2022-09-27T07:25:42.676Z", - "deleted": false, - "patient": 1, - "consultation": 1, - "sample_type": 1, - "sample_type_other": "", - "has_sari": false, - "has_ari": false, - "doctor_name": "NO DOCTOR SPECIFIED", - "diff_diagnosis": "", - "etiology_identified": "", - "is_atypical_presentation": false, - "atypical_presentation": "", - "is_unusual_course": false, - "icmr_category": 10, - "icmr_label": "Test", - "status": 1, - "result": 3, - "fast_track": "", - "date_of_sample": "2022-09-27T07:23:29.508Z", - "date_of_result": null, - "testing_facility": 1, - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.patientsample", - "pk": 5, - "fields": { - "external_id": "093863c4-1778-4464-9ee9-c408bef0bafe", - "created_date": "2022-09-27T07:25:43.611Z", - "modified_date": "2022-09-27T07:25:43.615Z", - "deleted": false, - "patient": 1, - "consultation": 1, - "sample_type": 1, - "sample_type_other": "", - "has_sari": false, - "has_ari": false, - "doctor_name": "NO DOCTOR SPECIFIED", - "diff_diagnosis": "", - "etiology_identified": "", - "is_atypical_presentation": false, - "atypical_presentation": "", - "is_unusual_course": false, - "icmr_category": 10, - "icmr_label": "Test", - "status": 1, - "result": 3, - "fast_track": "", - "date_of_sample": "2022-09-27T07:23:29.508Z", - "date_of_result": null, - "testing_facility": 1, - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.patientsample", - "pk": 6, - "fields": { - "external_id": "5b015be7-ffb3-4f36-a08a-7510dd53ee7f", - "created_date": "2022-09-27T07:25:44.707Z", - "modified_date": "2022-09-27T07:25:44.711Z", - "deleted": false, - "patient": 1, - "consultation": 1, - "sample_type": 1, - "sample_type_other": "", - "has_sari": false, - "has_ari": false, - "doctor_name": "NO DOCTOR SPECIFIED", - "diff_diagnosis": "", - "etiology_identified": "", - "is_atypical_presentation": false, - "atypical_presentation": "", - "is_unusual_course": false, - "icmr_category": 10, - "icmr_label": "Test", - "status": 1, - "result": 3, - "fast_track": "", - "date_of_sample": "2022-09-27T07:23:29.508Z", - "date_of_result": null, - "testing_facility": 1, - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.patientsample", - "pk": 7, - "fields": { - "external_id": "b8cb7a31-5480-4466-8388-de1eafa35ede", - "created_date": "2022-09-27T07:25:52.375Z", - "modified_date": "2022-09-27T07:25:52.379Z", - "deleted": false, - "patient": 1, - "consultation": 1, - "sample_type": 1, - "sample_type_other": "", - "has_sari": false, - "has_ari": false, - "doctor_name": "NO DOCTOR SPECIFIED", - "diff_diagnosis": "", - "etiology_identified": "", - "is_atypical_presentation": false, - "atypical_presentation": "", - "is_unusual_course": false, - "icmr_category": 10, - "icmr_label": "Test", - "status": 1, - "result": 3, - "fast_track": "", - "date_of_sample": "2022-09-27T07:23:29.508Z", - "date_of_result": null, - "testing_facility": 1, - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.patientsample", - "pk": 8, - "fields": { - "external_id": "c04f9bd2-e11f-466e-8649-d80f9e5d8649", - "created_date": "2022-09-27T07:25:53.556Z", - "modified_date": "2022-09-27T07:25:53.559Z", - "deleted": false, - "patient": 1, - "consultation": 1, - "sample_type": 1, - "sample_type_other": "", - "has_sari": false, - "has_ari": false, - "doctor_name": "NO DOCTOR SPECIFIED", - "diff_diagnosis": "", - "etiology_identified": "", - "is_atypical_presentation": false, - "atypical_presentation": "", - "is_unusual_course": false, - "icmr_category": 10, - "icmr_label": "Test", - "status": 1, - "result": 3, - "fast_track": "", - "date_of_sample": "2022-09-27T07:23:29.508Z", - "date_of_result": null, - "testing_facility": 1, - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.patientsample", - "pk": 9, - "fields": { - "external_id": "27001f33-e193-42d5-8809-61b2c63304a9", - "created_date": "2022-09-27T07:25:54.406Z", - "modified_date": "2022-09-27T07:25:54.410Z", - "deleted": false, - "patient": 1, - "consultation": 1, - "sample_type": 1, - "sample_type_other": "", - "has_sari": false, - "has_ari": false, - "doctor_name": "NO DOCTOR SPECIFIED", - "diff_diagnosis": "", - "etiology_identified": "", - "is_atypical_presentation": false, - "atypical_presentation": "", - "is_unusual_course": false, - "icmr_category": 10, - "icmr_label": "Test", - "status": 1, - "result": 3, - "fast_track": "", - "date_of_sample": "2022-09-27T07:23:29.508Z", - "date_of_result": null, - "testing_facility": 1, - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.patientsample", - "pk": 10, - "fields": { - "external_id": "1a604325-11bf-44b7-985b-6222b6c37092", - "created_date": "2022-09-27T07:25:55.280Z", - "modified_date": "2022-09-27T07:25:55.284Z", - "deleted": false, - "patient": 1, - "consultation": 1, - "sample_type": 1, - "sample_type_other": "", - "has_sari": false, - "has_ari": false, - "doctor_name": "NO DOCTOR SPECIFIED", - "diff_diagnosis": "", - "etiology_identified": "", - "is_atypical_presentation": false, - "atypical_presentation": "", - "is_unusual_course": false, - "icmr_category": 10, - "icmr_label": "Test", - "status": 1, - "result": 3, - "fast_track": "", - "date_of_sample": "2022-09-27T07:23:29.508Z", - "date_of_result": null, - "testing_facility": 1, - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.patientsample", - "pk": 11, - "fields": { - "external_id": "0bd4f6ff-e084-4d2c-9803-79b829682a1d", - "created_date": "2022-09-27T07:25:56.119Z", - "modified_date": "2022-09-27T07:25:56.123Z", - "deleted": false, - "patient": 1, - "consultation": 1, - "sample_type": 1, - "sample_type_other": "", - "has_sari": false, - "has_ari": false, - "doctor_name": "NO DOCTOR SPECIFIED", - "diff_diagnosis": "", - "etiology_identified": "", - "is_atypical_presentation": false, - "atypical_presentation": "", - "is_unusual_course": false, - "icmr_category": 10, - "icmr_label": "Test", - "status": 1, - "result": 3, - "fast_track": "", - "date_of_sample": "2022-09-27T07:23:29.508Z", - "date_of_result": null, - "testing_facility": 1, - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.patientsample", - "pk": 12, - "fields": { - "external_id": "fecb4ef3-2889-47ca-8e08-6a27a5e77715", - "created_date": "2022-09-27T07:25:56.959Z", - "modified_date": "2022-09-27T07:25:56.964Z", - "deleted": false, - "patient": 1, - "consultation": 1, - "sample_type": 1, - "sample_type_other": "", - "has_sari": false, - "has_ari": false, - "doctor_name": "NO DOCTOR SPECIFIED", - "diff_diagnosis": "", - "etiology_identified": "", - "is_atypical_presentation": false, - "atypical_presentation": "", - "is_unusual_course": false, - "icmr_category": 10, - "icmr_label": "Test", - "status": 1, - "result": 3, - "fast_track": "", - "date_of_sample": "2022-09-27T07:23:29.508Z", - "date_of_result": null, - "testing_facility": 1, - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.patientsample", - "pk": 13, - "fields": { - "external_id": "45186f6d-1ed5-454a-aadd-94ceaefacf20", - "created_date": "2022-09-27T07:25:57.875Z", - "modified_date": "2022-09-27T07:25:57.878Z", - "deleted": false, - "patient": 1, - "consultation": 1, - "sample_type": 1, - "sample_type_other": "", - "has_sari": false, - "has_ari": false, - "doctor_name": "NO DOCTOR SPECIFIED", - "diff_diagnosis": "", - "etiology_identified": "", - "is_atypical_presentation": false, - "atypical_presentation": "", - "is_unusual_course": false, - "icmr_category": 10, - "icmr_label": "Test", - "status": 1, - "result": 3, - "fast_track": "", - "date_of_sample": "2022-09-27T07:23:29.508Z", - "date_of_result": null, - "testing_facility": 1, - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.patientsample", - "pk": 14, - "fields": { - "external_id": "bcbc2e7e-d2b8-4e5e-ab50-7c36a51c1e09", - "created_date": "2022-09-27T07:25:58.676Z", - "modified_date": "2022-09-27T07:25:58.681Z", - "deleted": false, - "patient": 1, - "consultation": 1, - "sample_type": 1, - "sample_type_other": "", - "has_sari": false, - "has_ari": false, - "doctor_name": "NO DOCTOR SPECIFIED", - "diff_diagnosis": "", - "etiology_identified": "", - "is_atypical_presentation": false, - "atypical_presentation": "", - "is_unusual_course": false, - "icmr_category": 10, - "icmr_label": "Test", - "status": 1, - "result": 3, - "fast_track": "", - "date_of_sample": "2022-09-27T07:23:29.508Z", - "date_of_result": null, - "testing_facility": 1, - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.patientsample", - "pk": 15, - "fields": { - "external_id": "342639b4-f347-4f83-87d1-85c6d7968ee7", - "created_date": "2022-09-27T07:25:59.671Z", - "modified_date": "2022-09-27T07:25:59.674Z", - "deleted": false, - "patient": 1, - "consultation": 1, - "sample_type": 1, - "sample_type_other": "", - "has_sari": false, - "has_ari": false, - "doctor_name": "NO DOCTOR SPECIFIED", - "diff_diagnosis": "", - "etiology_identified": "", - "is_atypical_presentation": false, - "atypical_presentation": "", - "is_unusual_course": false, - "icmr_category": 10, - "icmr_label": "Test", - "status": 1, - "result": 3, - "fast_track": "", - "date_of_sample": "2022-09-27T07:23:29.508Z", - "date_of_result": null, - "testing_facility": 1, - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.patientsample", - "pk": 16, - "fields": { - "external_id": "388099f9-f005-47c1-9be3-650ddda769a0", - "created_date": "2022-09-27T07:26:00.354Z", - "modified_date": "2022-09-27T07:26:00.358Z", - "deleted": false, - "patient": 1, - "consultation": 1, - "sample_type": 1, - "sample_type_other": "", - "has_sari": false, - "has_ari": false, - "doctor_name": "NO DOCTOR SPECIFIED", - "diff_diagnosis": "", - "etiology_identified": "", - "is_atypical_presentation": false, - "atypical_presentation": "", - "is_unusual_course": false, - "icmr_category": 10, - "icmr_label": "Test", - "status": 1, - "result": 3, - "fast_track": "", - "date_of_sample": "2022-09-27T07:23:29.508Z", - "date_of_result": null, - "testing_facility": 1, - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.patientsample", - "pk": 17, - "fields": { - "external_id": "5aef7a72-5e2c-4a0f-b689-747aae8b0dce", - "created_date": "2022-09-27T07:26:00.860Z", - "modified_date": "2022-09-27T07:26:00.863Z", - "deleted": false, - "patient": 1, - "consultation": 1, - "sample_type": 1, - "sample_type_other": "", - "has_sari": false, - "has_ari": false, - "doctor_name": "NO DOCTOR SPECIFIED", - "diff_diagnosis": "", - "etiology_identified": "", - "is_atypical_presentation": false, - "atypical_presentation": "", - "is_unusual_course": false, - "icmr_category": 10, - "icmr_label": "Test", - "status": 1, - "result": 3, - "fast_track": "", - "date_of_sample": "2022-09-27T07:23:29.508Z", - "date_of_result": null, - "testing_facility": 1, - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.patientsampleflow", - "pk": 1, - "fields": { - "external_id": "64bf6eb2-055d-4a16-8c91-e7ce1390e541", - "created_date": "2022-09-27T07:23:29.580Z", - "modified_date": "2022-09-27T07:23:29.580Z", - "deleted": false, - "patient_sample": 1, - "status": 1, - "notes": "created", - "created_by": 2 - } - }, - { - "model": "facility.patientsampleflow", - "pk": 2, - "fields": { - "external_id": "1f68131b-9aab-456f-b61b-eb0a93d521c4", - "created_date": "2022-09-27T07:25:39.613Z", - "modified_date": "2022-09-27T07:25:39.613Z", - "deleted": false, - "patient_sample": 2, - "status": 1, - "notes": "created", - "created_by": 2 - } - }, - { - "model": "facility.patientsampleflow", - "pk": 3, - "fields": { - "external_id": "80ead199-cd58-44c3-97de-4142e3e7d7ac", - "created_date": "2022-09-27T07:25:41.689Z", - "modified_date": "2022-09-27T07:25:41.689Z", - "deleted": false, - "patient_sample": 3, - "status": 1, - "notes": "created", - "created_by": 2 - } - }, - { - "model": "facility.patientsampleflow", - "pk": 4, - "fields": { - "external_id": "ebe8ffac-1ca0-40fe-80d3-b895e7524ce2", - "created_date": "2022-09-27T07:25:42.681Z", - "modified_date": "2022-09-27T07:25:42.681Z", - "deleted": false, - "patient_sample": 4, - "status": 1, - "notes": "created", - "created_by": 2 - } - }, - { - "model": "facility.patientsampleflow", - "pk": 5, - "fields": { - "external_id": "ed7f8727-3784-40cd-97c6-49e9de3e2fdb", - "created_date": "2022-09-27T07:25:43.620Z", - "modified_date": "2022-09-27T07:25:43.620Z", - "deleted": false, - "patient_sample": 5, - "status": 1, - "notes": "created", - "created_by": 2 - } - }, - { - "model": "facility.patientsampleflow", - "pk": 6, - "fields": { - "external_id": "f7a3695f-bfd4-4af5-9280-e2d54124286e", - "created_date": "2022-09-27T07:25:44.716Z", - "modified_date": "2022-09-27T07:25:44.716Z", - "deleted": false, - "patient_sample": 6, - "status": 1, - "notes": "created", - "created_by": 2 - } - }, - { - "model": "facility.patientsampleflow", - "pk": 7, - "fields": { - "external_id": "a0cad511-4dad-4244-93c4-50277d6734c2", - "created_date": "2022-09-27T07:25:52.383Z", - "modified_date": "2022-09-27T07:25:52.383Z", - "deleted": false, - "patient_sample": 7, - "status": 1, - "notes": "created", - "created_by": 2 - } - }, - { - "model": "facility.patientsampleflow", - "pk": 8, - "fields": { - "external_id": "f3ff09b9-1c79-4afc-bd3d-70eeecc87daa", - "created_date": "2022-09-27T07:25:53.564Z", - "modified_date": "2022-09-27T07:25:53.564Z", - "deleted": false, - "patient_sample": 8, - "status": 1, - "notes": "created", - "created_by": 2 - } - }, - { - "model": "facility.patientsampleflow", - "pk": 9, - "fields": { - "external_id": "a03684c4-4769-4643-b457-8be382895e8b", - "created_date": "2022-09-27T07:25:54.414Z", - "modified_date": "2022-09-27T07:25:54.414Z", - "deleted": false, - "patient_sample": 9, - "status": 1, - "notes": "created", - "created_by": 2 - } - }, - { - "model": "facility.patientsampleflow", - "pk": 10, - "fields": { - "external_id": "a62f7677-31af-42f6-94f9-fcb5e8ab94de", - "created_date": "2022-09-27T07:25:55.288Z", - "modified_date": "2022-09-27T07:25:55.288Z", - "deleted": false, - "patient_sample": 10, - "status": 1, - "notes": "created", - "created_by": 2 - } - }, - { - "model": "facility.patientsampleflow", - "pk": 11, - "fields": { - "external_id": "e9dae65e-bca7-47fc-b490-8ef4de67e331", - "created_date": "2022-09-27T07:25:56.127Z", - "modified_date": "2022-09-27T07:25:56.127Z", - "deleted": false, - "patient_sample": 11, - "status": 1, - "notes": "created", - "created_by": 2 - } - }, - { - "model": "facility.patientsampleflow", - "pk": 12, - "fields": { - "external_id": "e065bb9a-10d2-4bdd-b375-affa163dacdf", - "created_date": "2022-09-27T07:25:56.968Z", - "modified_date": "2022-09-27T07:25:56.968Z", - "deleted": false, - "patient_sample": 12, - "status": 1, - "notes": "created", - "created_by": 2 - } - }, - { - "model": "facility.patientsampleflow", - "pk": 13, - "fields": { - "external_id": "dae215d0-bbfe-41e5-a6e2-20e4504eb068", - "created_date": "2022-09-27T07:25:57.883Z", - "modified_date": "2022-09-27T07:25:57.883Z", - "deleted": false, - "patient_sample": 13, - "status": 1, - "notes": "created", - "created_by": 2 - } - }, - { - "model": "facility.patientsampleflow", - "pk": 14, - "fields": { - "external_id": "dabdd193-f800-4848-902b-b33b345252e5", - "created_date": "2022-09-27T07:25:58.686Z", - "modified_date": "2022-09-27T07:25:58.686Z", - "deleted": false, - "patient_sample": 14, - "status": 1, - "notes": "created", - "created_by": 2 - } - }, - { - "model": "facility.patientsampleflow", - "pk": 15, - "fields": { - "external_id": "8a32a9f0-0686-4104-8fe7-27c7be6a4233", - "created_date": "2022-09-27T07:25:59.679Z", - "modified_date": "2022-09-27T07:25:59.679Z", - "deleted": false, - "patient_sample": 15, - "status": 1, - "notes": "created", - "created_by": 2 - } - }, - { - "model": "facility.patientsampleflow", - "pk": 16, - "fields": { - "external_id": "db4ceed2-a7e5-4cb1-828b-085ddae5fa0a", - "created_date": "2022-09-27T07:26:00.363Z", - "modified_date": "2022-09-27T07:26:00.363Z", - "deleted": false, - "patient_sample": 16, - "status": 1, - "notes": "created", - "created_by": 2 - } - }, - { - "model": "facility.patientsampleflow", - "pk": 17, - "fields": { - "external_id": "48b8eb3a-c901-429a-abbb-7e5aae0f9cd2", - "created_date": "2022-09-27T07:26:00.867Z", - "modified_date": "2022-09-27T07:26:00.867Z", - "deleted": false, - "patient_sample": 17, - "status": 1, - "notes": "created", - "created_by": 2 - } - }, - { - "model": "facility.shiftingrequest", - "pk": 1, - "fields": { - "external_id": "a0e4cf70-49b4-4e26-83fa-c2c962386885", - "created_date": "2022-09-27T07:22:00.581Z", - "modified_date": "2022-09-27T07:22:00.581Z", - "deleted": false, - "origin_facility": 1, - "shifting_approving_facility": 2, - "assigned_facility_type": 2, - "assigned_facility": null, - "assigned_facility_external": "", - "patient": 1, - "emergency": true, - "is_up_shift": true, - "reason": "Test", - "vehicle_preference": "", - "preferred_vehicle_choice": 10, - "comments": "", - "refering_facility_contact_name": "Someone at Facility", - "refering_facility_contact_number": "+914455666777", - "is_kasp": false, - "status": 10, - "breathlessness_level": 30, - "is_assigned_to_user": false, - "assigned_to": null, - "ambulance_driver_name": "", - "ambulance_phone_number": "", - "ambulance_number": "", - "created_by": 2, - "last_edited_by": 2 - } - }, - { - "model": "facility.facilityrelatedsummary", - "pk": "99627ad6-53e7-4585-821a-21ac6e765f7b", - "fields": { - "created_date": "2022-09-27T07:00:00.163Z", - "modified_date": "2022-09-27T07:25:00.165Z", - "facility": 1, - "s_type": "FacilityCapacity", - "data": { - "id": "81092ced-8720-44cb-b4c5-3f0ad0540153", - "name": "Dummy Facility 1", - "ward": 1, - "state": 1, - "address": "127.0.0.1", - "pincode": 670000, - "district": 7, - "features": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "latitude": null, - "inventory": {}, - "longitude": null, - "local_body": 920, - "ward_object": { - "id": 1, - "name": "NEERICODE WEST", - "number": 1, - "local_body": 920 - }, - "availability": [ - { - "id": "bfb7a4d8-6bf0-46d6-bf20-d5020850ea55", - "room_type": 150, - "modified_date": "2022-09-27T12:30:19.399000+05:30", - "room_type_text": "Oxygen beds", - "total_capacity": 1000, - "current_capacity": 20 - } - ], - "created_date": "2022-09-27T12:29:15.929000+05:30", - "phone_number": "+919999999888", - "state_object": { - "id": 1, - "name": "Kerala" - }, - "facility_type": "Private Hospital", - "modified_date": "2022-09-27T12:29:15.929000+05:30", - "district_object": { - "id": 7, - "name": "Ernakulam", - "state": 1 - }, - "kasp_empanelled": false, - "oxygen_capacity": 0, - "type_b_cylinders": 0, - "type_c_cylinders": 0, - "type_d_cylinders": 0, - "local_body_object": { - "id": 920, - "name": "Alangad  Grama Panchayat, Ernakulam District", - "district": 7, - "body_type": 1, - "localbody_code": "G070203" - }, - "actual_live_patients": 1, - "read_cover_image_url": null, - "expected_type_b_cylinders": 0, - "expected_type_c_cylinders": 0, - "expected_type_d_cylinders": 0, - "actual_discharged_patients": 0, - "expected_oxygen_requirement": 0 - } - } - }, - { - "model": "facility.facilityrelatedsummary", - "pk": "e294a2c2-3b05-469f-b975-e7766201df13", - "fields": { - "created_date": "2022-09-27T07:20:00.162Z", - "modified_date": "2022-09-27T07:25:00.171Z", - "facility": 2, - "s_type": "FacilityCapacity", - "data": { - "id": "fa33079d-727d-4295-b0fd-19153b36b2db", - "name": "Dummy Shifting Center", - "ward": 218, - "state": 1, - "address": "89.66.33.55", - "pincode": 670112, - "district": 7, - "features": [ - 1, - 6 - ], - "latitude": null, - "inventory": {}, - "longitude": null, - "local_body": 12, - "ward_object": { - "id": 218, - "name": "VALAMBOOR", - "number": 2, - "local_body": 12 - }, - "availability": [ - { - "id": "52bd4e97-9064-4697-8fea-37e0a2b8c87c", - "room_type": 150, - "modified_date": "2022-09-27T12:46:52.525280+05:30", - "room_type_text": "Oxygen beds", - "total_capacity": 20, - "current_capacity": 1 - } - ], - "created_date": "2022-09-27T12:45:51.075776+05:30", - "phone_number": "+919876665987", - "state_object": { - "id": 1, - "name": "Kerala" - }, - "facility_type": "Shifting Centre", - "modified_date": "2022-09-27T12:45:51.075811+05:30", - "district_object": { - "id": 7, - "name": "Ernakulam", - "state": 1 - }, - "kasp_empanelled": false, - "oxygen_capacity": 0, - "type_b_cylinders": 0, - "type_c_cylinders": 0, - "type_d_cylinders": 0, - "local_body_object": { - "id": 12, - "name": "Aikaranad  Grama Panchayat, Ernakulam District", - "district": 7, - "body_type": 1, - "localbody_code": "G071005" - }, - "actual_live_patients": 0, - "read_cover_image_url": null, - "expected_type_b_cylinders": 0, - "expected_type_c_cylinders": 0, - "expected_type_d_cylinders": 0, - "actual_discharged_patients": 0, - "expected_oxygen_requirement": 0 - } - } - } + { + "model": "facility.facility", + "pk": 1, + "fields": { + "external_id": "81092ced-8720-44cb-b4c5-3f0ad0540153", + "created_date": "2022-09-27T06:59:15.929Z", + "modified_date": "2023-12-03T09:26:02.089Z", + "deleted": false, + "name": "Dummy Facility 1", + "is_active": true, + "verified": false, + "facility_type": 2, + "kasp_empanelled": false, + "features": "1,2,3,4,5,6", + "longitude": null, + "latitude": null, + "pincode": 670000, + "address": "127.0.0.1", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919999999888", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null + } + }, + { + "model": "facility.facility", + "pk": 2, + "fields": { + "external_id": "fa33079d-727d-4295-b0fd-19153b36b2db", + "created_date": "2022-09-27T07:15:51.075Z", + "modified_date": "2022-09-27T07:15:51.075Z", + "deleted": false, + "name": "Dummy Shifting Center", + "is_active": true, + "verified": false, + "facility_type": 1300, + "kasp_empanelled": false, + "features": "1,6", + "longitude": null, + "latitude": null, + "pincode": 670112, + "address": "89.66.33.55", + "ward": 218, + "local_body": 12, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919876665987", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null + } + }, + { + "model": "facility.facility", + "pk": 3, + "fields": { + "external_id": "4c293ecd-1aae-4ebc-9b5b-b53497dffac9", + "created_date": "2023-09-15T06:11:14.166Z", + "modified_date": "2023-12-03T09:26:10.570Z", + "deleted": false, + "name": "Dummy Request Approving Center", + "is_active": true, + "verified": false, + "facility_type": 1500, + "kasp_empanelled": false, + "features": "1,4,6", + "longitude": "78.6757364624373000", + "latitude": "21.4009146842158660", + "pincode": 670000, + "address": "Dummy Facility Address", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919999999888", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null + } + }, + { + "model": "facility.facility", + "pk": 4, + "fields": { + "external_id": "e70e0b82-7a99-48c2-a735-41cdea3b4076", + "created_date": "2023-09-15T06:12:14.266Z", + "modified_date": "2023-12-03T09:26:14.909Z", + "deleted": false, + "name": "Dummy Request Fulfilment Center", + "is_active": true, + "verified": false, + "facility_type": 1510, + "kasp_empanelled": false, + "features": "1,3,5", + "longitude": "75.2139014820876600", + "latitude": "18.2774285038890340", + "pincode": 670000, + "address": "Dummy Facility Address 2", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+918899885588", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null + } + }, + { + "model": "facility.hospitaldoctors", + "pk": 1, + "fields": { + "external_id": "d68776c9-1197-411f-b19d-2069364b17a2", + "created_date": "2023-09-15T06:12:36.941Z", + "modified_date": "2023-09-15T06:12:36.941Z", + "deleted": false, + "facility": 4, + "area": 2, + "count": 5 + } + }, + { + "model": "facility.hospitaldoctors", + "pk": 2, + "fields": { + "external_id": "df1ef651-4e4f-4a0a-9df7-55e5949468ce", + "created_date": "2023-09-15T06:12:54.835Z", + "modified_date": "2023-09-15T06:12:54.835Z", + "deleted": false, + "facility": 3, + "area": 3, + "count": 4 + } + }, + { + "model": "facility.historicalfacilitycapacity", + "pk": 1, + "fields": { + "id": 1, + "external_id": "bfb7a4d8-6bf0-46d6-bf20-d5020850ea55", + "created_date": "2022-09-27T07:00:19.399Z", + "modified_date": "2022-09-27T07:00:19.399Z", + "deleted": false, + "room_type": 150, + "total_capacity": 1000, + "current_capacity": 20, + "facility": 1, + "history_date": "2022-09-27T07:00:19.400Z", + "history_change_reason": null, + "history_type": "+", + "history_user": 2 + } + }, + { + "model": "facility.historicalfacilitycapacity", + "pk": 2, + "fields": { + "id": 2, + "external_id": "52bd4e97-9064-4697-8fea-37e0a2b8c87c", + "created_date": "2022-09-27T07:16:52.525Z", + "modified_date": "2022-09-27T07:16:52.525Z", + "deleted": false, + "room_type": 150, + "total_capacity": 20, + "current_capacity": 1, + "facility": 2, + "history_date": "2022-09-27T07:16:52.526Z", + "history_change_reason": null, + "history_type": "+", + "history_user": 2 + } + }, + { + "model": "facility.historicalfacilitycapacity", + "pk": 3, + "fields": { + "id": 3, + "external_id": "4fed54e3-672b-412c-998f-a7d8f303016c", + "created_date": "2023-09-15T06:12:31.548Z", + "modified_date": "2023-09-15T06:12:31.548Z", + "deleted": false, + "room_type": 150, + "total_capacity": 12, + "current_capacity": 2, + "facility": 4, + "history_date": "2023-09-15T06:12:31.550Z", + "history_change_reason": null, + "history_type": "+", + "history_user": 2 + } + }, + { + "model": "facility.historicalfacilitycapacity", + "pk": 4, + "fields": { + "id": 4, + "external_id": "c7d64165-8097-4dec-a4df-616647e70c31", + "created_date": "2023-09-15T06:12:50.165Z", + "modified_date": "2023-09-15T06:12:50.165Z", + "deleted": false, + "room_type": 20, + "total_capacity": 31, + "current_capacity": 2, + "facility": 3, + "history_date": "2023-09-15T06:12:50.166Z", + "history_change_reason": null, + "history_type": "+", + "history_user": 2 + } + }, + { + "model": "facility.facilitycapacity", + "pk": 1, + "fields": { + "external_id": "bfb7a4d8-6bf0-46d6-bf20-d5020850ea55", + "created_date": "2022-09-27T07:00:19.399Z", + "modified_date": "2022-09-27T07:00:19.399Z", + "deleted": false, + "facility": 1, + "room_type": 150, + "total_capacity": 1000, + "current_capacity": 20 + } + }, + { + "model": "facility.facilitycapacity", + "pk": 2, + "fields": { + "external_id": "52bd4e97-9064-4697-8fea-37e0a2b8c87c", + "created_date": "2022-09-27T07:16:52.525Z", + "modified_date": "2022-09-27T07:16:52.525Z", + "deleted": false, + "facility": 2, + "room_type": 150, + "total_capacity": 20, + "current_capacity": 1 + } + }, + { + "model": "facility.facilitycapacity", + "pk": 3, + "fields": { + "external_id": "4fed54e3-672b-412c-998f-a7d8f303016c", + "created_date": "2023-09-15T06:12:31.548Z", + "modified_date": "2023-09-15T06:12:31.548Z", + "deleted": false, + "facility": 4, + "room_type": 150, + "total_capacity": 12, + "current_capacity": 2 + } + }, + { + "model": "facility.facilitycapacity", + "pk": 4, + "fields": { + "external_id": "c7d64165-8097-4dec-a4df-616647e70c31", + "created_date": "2023-09-15T06:12:50.165Z", + "modified_date": "2023-09-15T06:12:50.165Z", + "deleted": false, + "facility": 3, + "room_type": 20, + "total_capacity": 31, + "current_capacity": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 1, + "fields": { + "facility": 1, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 2, + "fields": { + "facility": 2, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 3, + "fields": { + "facility": 1, + "user": 21, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 4, + "fields": { + "facility": 1, + "user": 22, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 5, + "fields": { + "facility": 3, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 6, + "fields": { + "facility": 4, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.assetlocation", + "pk": 1, + "fields": { + "external_id": "c3ab727f-dc3f-4a11-bf8d-2472bd79b5f7", + "created_date": "2022-09-27T07:02:07.969Z", + "modified_date": "2022-09-27T07:02:07.969Z", + "deleted": false, + "name": "Camera Locations", + "description": "", + "location_type": 1, + "facility": 1, + "middleware_address": null + } + }, + { + "model": "facility.assetlocation", + "pk": 2, + "fields": { + "external_id": "a5cd0a56-cd5a-425c-9a87-cf79c0a90887", + "created_date": "2023-09-15T06:13:24.614Z", + "modified_date": "2023-09-15T06:13:24.614Z", + "deleted": false, + "name": "Dummy Location 1", + "description": "", + "location_type": 1, + "facility": 1, + "middleware_address": null + } + }, + { + "model": "facility.asset", + "pk": 1, + "fields": { + "external_id": "ae4290a0-e86a-48d7-9c82-60b7d6514707", + "created_date": "2022-09-27T07:03:57.401Z", + "modified_date": "2022-09-27T07:03:57.401Z", + "deleted": false, + "name": "Dummy Camera 1", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 2, + "fields": { + "external_id": "7c06ec3c-838d-447a-bf36-d20239c8442f", + "created_date": "2022-09-27T07:04:30.802Z", + "modified_date": "2022-09-27T07:04:30.802Z", + "deleted": false, + "name": "Dummy Camera 2", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 3, + "fields": { + "external_id": "46740927-f782-49aa-bf6e-52a1208e8d18", + "created_date": "2022-09-27T07:04:35.291Z", + "modified_date": "2022-09-27T07:04:35.291Z", + "deleted": false, + "name": "Dummy Camera 3", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 4, + "fields": { + "external_id": "d6e9e071-e67e-4fbc-a872-4c3b1b9f749f", + "created_date": "2022-09-27T07:04:38.335Z", + "modified_date": "2022-09-27T07:04:38.335Z", + "deleted": false, + "name": "Dummy Camera 4", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 5, + "fields": { + "external_id": "35a2200d-6c1a-4c53-936c-60ebec1f9d42", + "created_date": "2022-09-27T07:04:41.179Z", + "modified_date": "2022-09-27T07:04:41.179Z", + "deleted": false, + "name": "Dummy Camera 5", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 6, + "fields": { + "external_id": "db1c2f95-5ae9-4e64-b647-30250beb79c7", + "created_date": "2022-09-27T07:04:43.869Z", + "modified_date": "2022-09-27T07:04:43.870Z", + "deleted": false, + "name": "Dummy Camera 6", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 7, + "fields": { + "external_id": "604ec344-a7d1-4523-8a6f-3e78cd3409ef", + "created_date": "2022-09-27T07:04:46.610Z", + "modified_date": "2022-09-27T07:04:46.610Z", + "deleted": false, + "name": "Dummy Camera 7", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 8, + "fields": { + "external_id": "271ace96-6bc6-4d32-916b-6b69eb81e4c3", + "created_date": "2022-09-27T07:04:49.732Z", + "modified_date": "2022-09-27T07:04:49.732Z", + "deleted": false, + "name": "Dummy Camera 8", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 9, + "fields": { + "external_id": "fe2f171f-0c69-4305-be60-0db625d0e38e", + "created_date": "2022-09-27T07:04:52.832Z", + "modified_date": "2022-09-27T07:04:52.832Z", + "deleted": false, + "name": "Dummy Camera 9", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 10, + "fields": { + "external_id": "cf77edb2-e771-46db-a73d-80ac2b446987", + "created_date": "2022-09-27T07:04:55.942Z", + "modified_date": "2022-09-27T07:04:55.942Z", + "deleted": false, + "name": "Dummy Camera 10", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 11, + "fields": { + "external_id": "2a19c4a9-84a2-41c8-ac0d-bbbc35e5f18d", + "created_date": "2022-09-27T07:04:58.599Z", + "modified_date": "2022-09-27T07:04:58.599Z", + "deleted": false, + "name": "Dummy Camera 11", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 12, + "fields": { + "external_id": "efb41cef-4d39-477f-b437-7ec9e4406971", + "created_date": "2022-09-27T07:05:01.182Z", + "modified_date": "2022-09-27T07:05:01.182Z", + "deleted": false, + "name": "Dummy Camera 12", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 13, + "fields": { + "external_id": "875b2bd3-67a8-4968-a589-d62c656cacb9", + "created_date": "2022-09-27T07:05:03.955Z", + "modified_date": "2022-09-27T07:05:03.955Z", + "deleted": false, + "name": "Dummy Camera 13", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 14, + "fields": { + "external_id": "b9ff3001-ed15-4538-bb54-78d0b2be445f", + "created_date": "2022-09-27T07:05:07.194Z", + "modified_date": "2022-09-27T07:05:07.194Z", + "deleted": false, + "name": "Dummy Camera 14", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 15, + "fields": { + "external_id": "a9678d31-17a9-4474-be01-c095553e97b5", + "created_date": "2022-09-27T07:05:10.384Z", + "modified_date": "2022-09-27T07:05:10.384Z", + "deleted": false, + "name": "Dummy Camera 15", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 16, + "fields": { + "external_id": "b0e4063e-3f05-4f94-aea0-e15e9e474f96", + "created_date": "2022-09-27T07:05:13.857Z", + "modified_date": "2022-09-27T07:05:13.857Z", + "deleted": false, + "name": "Dummy Camera 16", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 17, + "fields": { + "external_id": "634e1421-f1a7-41d1-bde2-13d1ee7eabf4", + "created_date": "2022-09-27T07:05:16.707Z", + "modified_date": "2022-09-27T07:05:16.707Z", + "deleted": false, + "name": "Dummy Camera 17", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 18, + "fields": { + "external_id": "17992979-d18a-46c6-a48f-c7f0f40f85c3", + "created_date": "2022-09-27T07:05:19.781Z", + "modified_date": "2022-09-27T07:05:19.781Z", + "deleted": false, + "name": "Dummy Camera 18", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 19, + "fields": { + "external_id": "c6e2c6c3-ba16-4c69-b1f8-822d28317268", + "created_date": "2022-09-27T07:13:12.608Z", + "modified_date": "2022-09-27T07:13:12.608Z", + "deleted": false, + "name": "Dummy Camera 19", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 20, + "fields": { + "external_id": "cb375e24-a98c-45ed-85c4-bdd340625357", + "created_date": "2022-09-27T07:13:16.362Z", + "modified_date": "2022-09-27T07:13:16.362Z", + "deleted": false, + "name": "Dummy Camera 20", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 21, + "fields": { + "external_id": "36a0d62c-9f2d-465f-ad9f-772ec7a342d0", + "created_date": "2022-09-27T07:13:19.599Z", + "modified_date": "2022-09-27T07:13:19.599Z", + "deleted": false, + "name": "Dummy Camera 21", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 22, + "fields": { + "external_id": "e24d8936-e4f3-4f30-870e-8bc560be66f2", + "created_date": "2022-09-27T07:13:22.225Z", + "modified_date": "2022-09-27T07:13:22.225Z", + "deleted": false, + "name": "Dummy Camera 22", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 23, + "fields": { + "external_id": "cc0ebf9e-0fe1-45ff-9954-4b92fc072846", + "created_date": "2022-09-27T07:13:25.053Z", + "modified_date": "2022-09-27T07:13:25.053Z", + "deleted": false, + "name": "Dummy Camera 23", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 24, + "fields": { + "external_id": "b10bed38-4a06-473a-85f8-87004703bb2a", + "created_date": "2022-09-27T07:13:27.907Z", + "modified_date": "2022-09-27T07:13:27.907Z", + "deleted": false, + "name": "Dummy Camera 24", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 25, + "fields": { + "external_id": "51ce3355-1773-47c0-a929-54bb57293940", + "created_date": "2022-09-27T07:13:30.944Z", + "modified_date": "2022-09-27T07:13:30.944Z", + "deleted": false, + "name": "Dummy Camera 25", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 26, + "fields": { + "external_id": "567ddf56-f86a-488e-bdff-9c69daacb654", + "created_date": "2022-09-27T07:13:33.581Z", + "modified_date": "2022-09-27T07:13:33.581Z", + "deleted": false, + "name": "Dummy Camera 26", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 27, + "fields": { + "external_id": "234a8559-167b-4e61-9971-15dbc59b9319", + "created_date": "2022-09-27T07:13:37.020Z", + "modified_date": "2022-09-27T07:13:37.020Z", + "deleted": false, + "name": "Dummy Camera 27", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 28, + "fields": { + "external_id": "3f203a24-84ae-44c0-897a-1b3ddd42e072", + "created_date": "2022-09-27T07:13:39.951Z", + "modified_date": "2022-09-27T07:13:39.951Z", + "deleted": false, + "name": "Dummy Camera 28", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 29, + "fields": { + "external_id": "fc4c25cd-de00-494a-ad58-20e581520198", + "created_date": "2022-09-27T07:13:43.511Z", + "modified_date": "2022-09-27T07:13:43.511Z", + "deleted": false, + "name": "Dummy Camera 29", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.asset", + "pk": 30, + "fields": { + "external_id": "cb6f3bf8-cfea-498a-a4f1-effae723d6e0", + "created_date": "2022-09-27T07:13:46.850Z", + "modified_date": "2022-09-27T07:13:46.850Z", + "deleted": false, + "name": "Dummy Camera 30", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null + } + }, + { + "model": "facility.patientconsultation", + "pk": 1, + "fields": { + "external_id": "b5217729-3008-4a44-b347-72ba738d5f45", + "created_date": "2022-09-27T07:20:40.117Z", + "modified_date": "2022-09-27T07:20:40.123Z", + "deleted": false, + "patient": 1, + "patient_no": "88.99.44.66", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "3", + "other_symptoms": "", + "symptoms_onset_date": "2022-09-27T07:19:53.380Z", + "deprecated_covid_category": null, + "category": "Moderate", + "examination_details": "", + "history_of_present_illness": "", + "treatment_plan": "", + "consultation_notes": "Transfer", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": {}, + "suggestion": "R", + "route_to_facility": null, + "review_interval": -1, + "referred_to": 2, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": false, + "admission_date": null, + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": null, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 0.0, + "weight": 0.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": [], + "discharge_advice": [] + } + }, + { + "model": "facility.bed", + "pk": 1, + "fields": { + "external_id": "260de825-7ef2-4155-8fd2-ae4d66980734", + "created_date": "2023-09-15T06:13:43.199Z", + "modified_date": "2023-09-15T06:13:43.199Z", + "deleted": false, + "name": "Dummy Bed 1", + "description": "", + "bed_type": 2, + "facility": 1, + "meta": {}, + "location": 2 + } + }, + { + "model": "facility.bed", + "pk": 2, + "fields": { + "external_id": "8ab99d71-7263-4c60-b6d4-b22e7f8dfecf", + "created_date": "2023-09-15T06:13:43.199Z", + "modified_date": "2023-09-15T06:13:43.199Z", + "deleted": false, + "name": "Dummy Bed 2", + "description": "", + "bed_type": 2, + "facility": 1, + "meta": {}, + "location": 2 + } + }, + { + "model": "facility.bed", + "pk": 3, + "fields": { + "external_id": "e7a9c643-4841-47f3-9729-4ccdadb9783a", + "created_date": "2023-09-15T06:13:43.200Z", + "modified_date": "2023-09-15T06:13:43.200Z", + "deleted": false, + "name": "Dummy Bed 3", + "description": "", + "bed_type": 2, + "facility": 1, + "meta": {}, + "location": 2 + } + }, + { + "model": "facility.bed", + "pk": 5, + "fields": { + "external_id": "fe749328-1a6a-43ae-b4c2-fb718b8ca84b", + "created_date": "2023-09-15T06:14:13.862Z", + "modified_date": "2023-09-15T06:14:13.862Z", + "deleted": false, + "name": "Dummy Bed 5", + "description": "", + "bed_type": 1, + "facility": 1, + "meta": {}, + "location": 1 + } + }, + { + "model": "facility.bed", + "pk": 7, + "fields": { + "external_id": "ddd0ce36-c4ff-409c-96d3-ea943ac876e4", + "created_date": "2023-09-15T06:14:45.458Z", + "modified_date": "2023-09-15T06:14:45.458Z", + "deleted": false, + "name": "Dummy Bed 6", + "description": "", + "bed_type": 6, + "facility": 1, + "meta": {}, + "location": 1 + } + }, + { + "model": "facility.bed", + "pk": 8, + "fields": { + "external_id": "90a90743-0a95-42c1-bdf2-b7fbf9b9edd1", + "created_date": "2023-09-15T06:14:56.105Z", + "modified_date": "2023-09-15T06:14:56.105Z", + "deleted": false, + "name": "Dummy Bed 4", + "description": "", + "bed_type": 2, + "facility": 1, + "meta": {}, + "location": 1 + } + }, + { + "model": "facility.facilityinventoryitemtag", + "pk": 1, + "fields": { + "name": "Safety" + } + }, + { + "model": "facility.facilityinventoryitemtag", + "pk": 2, + "fields": { + "name": "Medical" + } + }, + { + "model": "facility.facilityinventoryitemtag", + "pk": 3, + "fields": { + "name": "Food" + } + }, + { + "model": "facility.facilityinventoryunit", + "pk": 1, + "fields": { + "name": "Items" + } + }, + { + "model": "facility.facilityinventoryunit", + "pk": 2, + "fields": { + "name": "Dozen" + } + }, + { + "model": "facility.facilityinventoryunit", + "pk": 3, + "fields": { + "name": "Kilo Litre" + } + }, + { + "model": "facility.facilityinventoryunit", + "pk": 4, + "fields": { + "name": "Cylinders" + } + }, + { + "model": "facility.facilityinventoryunit", + "pk": 5, + "fields": { + "name": "kg" + } + }, + { + "model": "facility.facilityinventoryunit", + "pk": 6, + "fields": { + "name": "gram" + } + }, + { + "model": "facility.facilityinventoryunit", + "pk": 7, + "fields": { + "name": "Cubic Meter" + } + }, + { + "model": "facility.facilityinventoryunitconverter", + "pk": 1, + "fields": { + "from_unit": 5, + "to_unit": 6, + "multiplier": 1000.0 + } + }, + { + "model": "facility.facilityinventoryunitconverter", + "pk": 2, + "fields": { + "from_unit": 2, + "to_unit": 1, + "multiplier": 12.0 + } + }, + { + "model": "facility.facilityinventoryitem", + "pk": 1, + "fields": { + "name": "PPE", + "default_unit": 1, + "description": "", + "min_quantity": 150.0, + "allowed_units": [ + 1, + 2 + ], + "tags": [ + 1, + 2 + ] + } + }, + { + "model": "facility.facilityinventoryitem", + "pk": 2, + "fields": { + "name": "IV Fluid 500 ml", + "default_unit": 1, + "description": "", + "min_quantity": 2.0, + "allowed_units": [ + 1, + 2 + ], + "tags": [ + 2 + ] + } + }, + { + "model": "facility.facilityinventoryitem", + "pk": 3, + "fields": { + "name": "Liquid Oxygen", + "default_unit": 7, + "description": "", + "min_quantity": 10.0, + "allowed_units": [ + 7 + ], + "tags": [ + 2 + ] + } + }, + { + "model": "facility.facilityinventoryitem", + "pk": 4, + "fields": { + "name": "Jumbo D Type Oxygen Cylinder", + "default_unit": 4, + "description": "", + "min_quantity": 100.0, + "allowed_units": [ + 4 + ], + "tags": [] + } + }, + { + "model": "facility.facilityinventoryitem", + "pk": 5, + "fields": { + "name": "B Type Oxygen Cylinder", + "default_unit": 4, + "description": "", + "min_quantity": 100.0, + "allowed_units": [ + 4 + ], + "tags": [] + } + }, + { + "model": "facility.facilityinventoryitem", + "pk": 6, + "fields": { + "name": "C Type Oxygen Cylinder", + "default_unit": 4, + "description": "", + "min_quantity": 100.0, + "allowed_units": [ + 4 + ], + "tags": [] + } + }, + { + "model": "facility.facilityinventoryitem", + "pk": 7, + "fields": { + "name": "Gaseous Oxygen", + "default_unit": 7, + "description": "", + "min_quantity": 10.0, + "allowed_units": [ + 7 + ], + "tags": [ + 2 + ] + } + }, + { + "model": "facility.historicalpatientregistration", + "pk": 1, + "fields": { + "id": 1, + "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", + "created_date": "2022-09-27T07:19:20.379Z", + "modified_date": "2022-09-27T07:19:20.379Z", + "deleted": false, + "source": 10, + "name": "Dummy Patient", + "age": 120, + "gender": 1, + "phone_number": "+911234567896", + "emergency_phone_number": "+919898797775", + "address": "55.66.44.33", + "permanent_address": "55.66.44.33", + "pincode": 600115, + "date_of_birth": "1901-10-16", + "year_of_birth": 1901, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "is_migrant_worker": false, + "disease_status": 2, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "action": 10, + "review_time": null, + "is_active": true, + "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 30, + "allow_transfer": false, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": true, + "date_declared_positive": "2022-09-27T07:15:04.715Z", + "facility": 1, + "nearest_facility": null, + "ward": 1729, + "local_body": 95, + "district": 7, + "state": 1, + "last_edited": null, + "created_by": 2, + "last_consultation": null, + "assigned_to": null, + "abha_number": null, + "history_date": "2022-09-27T07:19:20.385Z", + "history_change_reason": null, + "history_type": "+", + "history_user": 2 + } + }, + { + "model": "facility.historicalpatientregistration", + "pk": 2, + "fields": { + "id": 1, + "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", + "created_date": "2022-09-27T07:19:20.379Z", + "modified_date": "2022-09-27T07:19:20.400Z", + "deleted": false, + "source": 10, + "name": "Dummy Patient", + "age": 120, + "gender": 1, + "phone_number": "+911234567896", + "emergency_phone_number": "+919898797775", + "address": "55.66.44.33", + "permanent_address": "55.66.44.33", + "pincode": 600115, + "date_of_birth": "1901-10-16", + "year_of_birth": 1901, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "is_migrant_worker": false, + "disease_status": 2, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "action": 10, + "review_time": null, + "is_active": true, + "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 30, + "allow_transfer": false, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": true, + "date_declared_positive": "2022-09-27T07:15:04.715Z", + "facility": 1, + "nearest_facility": null, + "ward": 1729, + "local_body": 95, + "district": 7, + "state": 1, + "last_edited": null, + "created_by": 2, + "last_consultation": null, + "assigned_to": null, + "abha_number": null, + "history_date": "2022-09-27T07:19:20.403Z", + "history_change_reason": null, + "history_type": "~", + "history_user": 2 + } + }, + { + "model": "facility.historicalpatientregistration", + "pk": 3, + "fields": { + "id": 1, + "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", + "created_date": "2022-09-27T07:19:20.379Z", + "modified_date": "2022-09-27T07:19:20.413Z", + "deleted": false, + "source": 10, + "name": "Dummy Patient", + "age": 120, + "gender": 1, + "phone_number": "+911234567896", + "emergency_phone_number": "+919898797775", + "address": "55.66.44.33", + "permanent_address": "55.66.44.33", + "pincode": 600115, + "date_of_birth": "1901-10-16", + "year_of_birth": 1901, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "is_migrant_worker": false, + "disease_status": 2, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "action": 10, + "review_time": null, + "is_active": true, + "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 30, + "allow_transfer": false, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": true, + "date_declared_positive": "2022-09-27T07:15:04.715Z", + "facility": 1, + "nearest_facility": null, + "ward": 1729, + "local_body": 95, + "district": 7, + "state": 1, + "last_edited": 2, + "created_by": 2, + "last_consultation": null, + "assigned_to": null, + "abha_number": null, + "history_date": "2022-09-27T07:19:20.415Z", + "history_change_reason": null, + "history_type": "~", + "history_user": 2 + } + }, + { + "model": "facility.historicalpatientregistration", + "pk": 4, + "fields": { + "id": 1, + "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", + "created_date": "2022-09-27T07:19:20.379Z", + "modified_date": "2022-09-27T07:20:40.135Z", + "deleted": false, + "source": 10, + "name": "Dummy Patient", + "age": 120, + "gender": 1, + "phone_number": "+911234567896", + "emergency_phone_number": "+919898797775", + "address": "55.66.44.33", + "permanent_address": "55.66.44.33", + "pincode": 600115, + "date_of_birth": "1901-10-16", + "year_of_birth": 1901, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "is_migrant_worker": false, + "disease_status": 2, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "action": 10, + "review_time": null, + "is_active": true, + "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 30, + "allow_transfer": false, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": true, + "date_declared_positive": "2022-09-27T07:15:04.715Z", + "facility": 1, + "nearest_facility": null, + "ward": 1729, + "local_body": 95, + "district": 7, + "state": 1, + "last_edited": 2, + "created_by": 2, + "last_consultation": 1, + "assigned_to": null, + "abha_number": null, + "history_date": "2022-09-27T07:20:40.139Z", + "history_change_reason": null, + "history_type": "~", + "history_user": 2 + } + }, + { + "model": "facility.historicalpatientregistration", + "pk": 5, + "fields": { + "id": 1, + "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", + "created_date": "2022-09-27T07:19:20.379Z", + "modified_date": "2022-09-27T07:22:00.563Z", + "deleted": false, + "source": 10, + "name": "Dummy Patient", + "age": 120, + "gender": 1, + "phone_number": "+911234567896", + "emergency_phone_number": "+919898797775", + "address": "55.66.44.33", + "permanent_address": "55.66.44.33", + "pincode": 600115, + "date_of_birth": "1901-10-16", + "year_of_birth": 1901, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "is_migrant_worker": false, + "disease_status": 2, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "action": 10, + "review_time": null, + "is_active": true, + "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 30, + "allow_transfer": true, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": true, + "date_declared_positive": "2022-09-27T07:15:04.715Z", + "facility": 1, + "nearest_facility": null, + "ward": 1729, + "local_body": 95, + "district": 7, + "state": 1, + "last_edited": 2, + "created_by": 2, + "last_consultation": 1, + "assigned_to": null, + "abha_number": null, + "history_date": "2022-09-27T07:22:00.566Z", + "history_change_reason": null, + "history_type": "~", + "history_user": 2 + } + }, + { + "model": "facility.patientregistration", + "pk": 1, + "fields": { + "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", + "created_date": "2022-09-27T07:19:20.379Z", + "modified_date": "2022-09-27T07:22:00.563Z", + "deleted": false, + "source": 10, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient", + "age": 120, + "gender": 1, + "phone_number": "+911234567896", + "emergency_phone_number": "+919898797775", + "address": "55.66.44.33", + "permanent_address": "55.66.44.33", + "pincode": 600115, + "date_of_birth": "1901-10-16", + "year_of_birth": 1901, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "ward": 1729, + "local_body": 95, + "district": 7, + "state": 1, + "is_migrant_worker": false, + "disease_status": 2, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, + "action": 10, + "review_time": null, + "created_by": 2, + "is_active": true, + "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 30, + "allow_transfer": true, + "last_consultation": 1, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": true, + "date_declared_positive": "2022-09-27T07:15:04.715Z", + "assigned_to": null, + "abha_number": null + } + }, + { + "model": "facility.disease", + "pk": 1, + "fields": { + "patient": 1, + "disease": 1, + "details": "", + "deleted": false + } + }, + { + "model": "facility.patientsample", + "pk": 1, + "fields": { + "external_id": "29689b96-6018-426f-984f-344fa5e3186b", + "created_date": "2022-09-27T07:23:29.568Z", + "modified_date": "2022-09-27T07:23:29.574Z", + "deleted": false, + "patient": 1, + "consultation": 1, + "sample_type": 1, + "sample_type_other": "", + "has_sari": false, + "has_ari": false, + "doctor_name": "NO DOCTOR SPECIFIED", + "diagnosis": "", + "diff_diagnosis": "", + "etiology_identified": "", + "is_atypical_presentation": false, + "atypical_presentation": "", + "is_unusual_course": false, + "icmr_category": 10, + "icmr_label": "Test", + "status": 1, + "result": 3, + "fast_track": "", + "date_of_sample": "2022-09-27T07:23:29.508Z", + "date_of_result": null, + "testing_facility": 1, + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.patientsample", + "pk": 2, + "fields": { + "external_id": "ea48179e-90c5-450b-800d-c1866d2d3d74", + "created_date": "2022-09-27T07:25:39.605Z", + "modified_date": "2022-09-27T07:25:39.609Z", + "deleted": false, + "patient": 1, + "consultation": 1, + "sample_type": 1, + "sample_type_other": "", + "has_sari": false, + "has_ari": false, + "doctor_name": "NO DOCTOR SPECIFIED", + "diagnosis": "", + "diff_diagnosis": "", + "etiology_identified": "", + "is_atypical_presentation": false, + "atypical_presentation": "", + "is_unusual_course": false, + "icmr_category": 10, + "icmr_label": "Test", + "status": 1, + "result": 3, + "fast_track": "", + "date_of_sample": "2022-09-27T07:23:29.508Z", + "date_of_result": null, + "testing_facility": 1, + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.patientsample", + "pk": 3, + "fields": { + "external_id": "dcaf07f9-8412-45bb-bb7c-1c232c28e9da", + "created_date": "2022-09-27T07:25:41.681Z", + "modified_date": "2022-09-27T07:25:41.685Z", + "deleted": false, + "patient": 1, + "consultation": 1, + "sample_type": 1, + "sample_type_other": "", + "has_sari": false, + "has_ari": false, + "doctor_name": "NO DOCTOR SPECIFIED", + "diagnosis": "", + "diff_diagnosis": "", + "etiology_identified": "", + "is_atypical_presentation": false, + "atypical_presentation": "", + "is_unusual_course": false, + "icmr_category": 10, + "icmr_label": "Test", + "status": 1, + "result": 3, + "fast_track": "", + "date_of_sample": "2022-09-27T07:23:29.508Z", + "date_of_result": null, + "testing_facility": 1, + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.patientsample", + "pk": 4, + "fields": { + "external_id": "80868c78-4917-4401-b4b4-9eea49c47493", + "created_date": "2022-09-27T07:25:42.673Z", + "modified_date": "2022-09-27T07:25:42.676Z", + "deleted": false, + "patient": 1, + "consultation": 1, + "sample_type": 1, + "sample_type_other": "", + "has_sari": false, + "has_ari": false, + "doctor_name": "NO DOCTOR SPECIFIED", + "diagnosis": "", + "diff_diagnosis": "", + "etiology_identified": "", + "is_atypical_presentation": false, + "atypical_presentation": "", + "is_unusual_course": false, + "icmr_category": 10, + "icmr_label": "Test", + "status": 1, + "result": 3, + "fast_track": "", + "date_of_sample": "2022-09-27T07:23:29.508Z", + "date_of_result": null, + "testing_facility": 1, + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.patientsample", + "pk": 5, + "fields": { + "external_id": "093863c4-1778-4464-9ee9-c408bef0bafe", + "created_date": "2022-09-27T07:25:43.611Z", + "modified_date": "2022-09-27T07:25:43.615Z", + "deleted": false, + "patient": 1, + "consultation": 1, + "sample_type": 1, + "sample_type_other": "", + "has_sari": false, + "has_ari": false, + "doctor_name": "NO DOCTOR SPECIFIED", + "diagnosis": "", + "diff_diagnosis": "", + "etiology_identified": "", + "is_atypical_presentation": false, + "atypical_presentation": "", + "is_unusual_course": false, + "icmr_category": 10, + "icmr_label": "Test", + "status": 1, + "result": 3, + "fast_track": "", + "date_of_sample": "2022-09-27T07:23:29.508Z", + "date_of_result": null, + "testing_facility": 1, + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.patientsample", + "pk": 6, + "fields": { + "external_id": "5b015be7-ffb3-4f36-a08a-7510dd53ee7f", + "created_date": "2022-09-27T07:25:44.707Z", + "modified_date": "2022-09-27T07:25:44.711Z", + "deleted": false, + "patient": 1, + "consultation": 1, + "sample_type": 1, + "sample_type_other": "", + "has_sari": false, + "has_ari": false, + "doctor_name": "NO DOCTOR SPECIFIED", + "diagnosis": "", + "diff_diagnosis": "", + "etiology_identified": "", + "is_atypical_presentation": false, + "atypical_presentation": "", + "is_unusual_course": false, + "icmr_category": 10, + "icmr_label": "Test", + "status": 1, + "result": 3, + "fast_track": "", + "date_of_sample": "2022-09-27T07:23:29.508Z", + "date_of_result": null, + "testing_facility": 1, + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.patientsample", + "pk": 7, + "fields": { + "external_id": "b8cb7a31-5480-4466-8388-de1eafa35ede", + "created_date": "2022-09-27T07:25:52.375Z", + "modified_date": "2022-09-27T07:25:52.379Z", + "deleted": false, + "patient": 1, + "consultation": 1, + "sample_type": 1, + "sample_type_other": "", + "has_sari": false, + "has_ari": false, + "doctor_name": "NO DOCTOR SPECIFIED", + "diagnosis": "", + "diff_diagnosis": "", + "etiology_identified": "", + "is_atypical_presentation": false, + "atypical_presentation": "", + "is_unusual_course": false, + "icmr_category": 10, + "icmr_label": "Test", + "status": 1, + "result": 3, + "fast_track": "", + "date_of_sample": "2022-09-27T07:23:29.508Z", + "date_of_result": null, + "testing_facility": 1, + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.patientsample", + "pk": 8, + "fields": { + "external_id": "c04f9bd2-e11f-466e-8649-d80f9e5d8649", + "created_date": "2022-09-27T07:25:53.556Z", + "modified_date": "2022-09-27T07:25:53.559Z", + "deleted": false, + "patient": 1, + "consultation": 1, + "sample_type": 1, + "sample_type_other": "", + "has_sari": false, + "has_ari": false, + "doctor_name": "NO DOCTOR SPECIFIED", + "diagnosis": "", + "diff_diagnosis": "", + "etiology_identified": "", + "is_atypical_presentation": false, + "atypical_presentation": "", + "is_unusual_course": false, + "icmr_category": 10, + "icmr_label": "Test", + "status": 1, + "result": 3, + "fast_track": "", + "date_of_sample": "2022-09-27T07:23:29.508Z", + "date_of_result": null, + "testing_facility": 1, + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.patientsample", + "pk": 9, + "fields": { + "external_id": "27001f33-e193-42d5-8809-61b2c63304a9", + "created_date": "2022-09-27T07:25:54.406Z", + "modified_date": "2022-09-27T07:25:54.410Z", + "deleted": false, + "patient": 1, + "consultation": 1, + "sample_type": 1, + "sample_type_other": "", + "has_sari": false, + "has_ari": false, + "doctor_name": "NO DOCTOR SPECIFIED", + "diagnosis": "", + "diff_diagnosis": "", + "etiology_identified": "", + "is_atypical_presentation": false, + "atypical_presentation": "", + "is_unusual_course": false, + "icmr_category": 10, + "icmr_label": "Test", + "status": 1, + "result": 3, + "fast_track": "", + "date_of_sample": "2022-09-27T07:23:29.508Z", + "date_of_result": null, + "testing_facility": 1, + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.patientsample", + "pk": 10, + "fields": { + "external_id": "1a604325-11bf-44b7-985b-6222b6c37092", + "created_date": "2022-09-27T07:25:55.280Z", + "modified_date": "2022-09-27T07:25:55.284Z", + "deleted": false, + "patient": 1, + "consultation": 1, + "sample_type": 1, + "sample_type_other": "", + "has_sari": false, + "has_ari": false, + "doctor_name": "NO DOCTOR SPECIFIED", + "diagnosis": "", + "diff_diagnosis": "", + "etiology_identified": "", + "is_atypical_presentation": false, + "atypical_presentation": "", + "is_unusual_course": false, + "icmr_category": 10, + "icmr_label": "Test", + "status": 1, + "result": 3, + "fast_track": "", + "date_of_sample": "2022-09-27T07:23:29.508Z", + "date_of_result": null, + "testing_facility": 1, + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.patientsample", + "pk": 11, + "fields": { + "external_id": "0bd4f6ff-e084-4d2c-9803-79b829682a1d", + "created_date": "2022-09-27T07:25:56.119Z", + "modified_date": "2022-09-27T07:25:56.123Z", + "deleted": false, + "patient": 1, + "consultation": 1, + "sample_type": 1, + "sample_type_other": "", + "has_sari": false, + "has_ari": false, + "doctor_name": "NO DOCTOR SPECIFIED", + "diagnosis": "", + "diff_diagnosis": "", + "etiology_identified": "", + "is_atypical_presentation": false, + "atypical_presentation": "", + "is_unusual_course": false, + "icmr_category": 10, + "icmr_label": "Test", + "status": 1, + "result": 3, + "fast_track": "", + "date_of_sample": "2022-09-27T07:23:29.508Z", + "date_of_result": null, + "testing_facility": 1, + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.patientsample", + "pk": 12, + "fields": { + "external_id": "fecb4ef3-2889-47ca-8e08-6a27a5e77715", + "created_date": "2022-09-27T07:25:56.959Z", + "modified_date": "2022-09-27T07:25:56.964Z", + "deleted": false, + "patient": 1, + "consultation": 1, + "sample_type": 1, + "sample_type_other": "", + "has_sari": false, + "has_ari": false, + "doctor_name": "NO DOCTOR SPECIFIED", + "diagnosis": "", + "diff_diagnosis": "", + "etiology_identified": "", + "is_atypical_presentation": false, + "atypical_presentation": "", + "is_unusual_course": false, + "icmr_category": 10, + "icmr_label": "Test", + "status": 1, + "result": 3, + "fast_track": "", + "date_of_sample": "2022-09-27T07:23:29.508Z", + "date_of_result": null, + "testing_facility": 1, + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.patientsample", + "pk": 13, + "fields": { + "external_id": "45186f6d-1ed5-454a-aadd-94ceaefacf20", + "created_date": "2022-09-27T07:25:57.875Z", + "modified_date": "2022-09-27T07:25:57.878Z", + "deleted": false, + "patient": 1, + "consultation": 1, + "sample_type": 1, + "sample_type_other": "", + "has_sari": false, + "has_ari": false, + "doctor_name": "NO DOCTOR SPECIFIED", + "diagnosis": "", + "diff_diagnosis": "", + "etiology_identified": "", + "is_atypical_presentation": false, + "atypical_presentation": "", + "is_unusual_course": false, + "icmr_category": 10, + "icmr_label": "Test", + "status": 1, + "result": 3, + "fast_track": "", + "date_of_sample": "2022-09-27T07:23:29.508Z", + "date_of_result": null, + "testing_facility": 1, + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.patientsample", + "pk": 14, + "fields": { + "external_id": "bcbc2e7e-d2b8-4e5e-ab50-7c36a51c1e09", + "created_date": "2022-09-27T07:25:58.676Z", + "modified_date": "2022-09-27T07:25:58.681Z", + "deleted": false, + "patient": 1, + "consultation": 1, + "sample_type": 1, + "sample_type_other": "", + "has_sari": false, + "has_ari": false, + "doctor_name": "NO DOCTOR SPECIFIED", + "diagnosis": "", + "diff_diagnosis": "", + "etiology_identified": "", + "is_atypical_presentation": false, + "atypical_presentation": "", + "is_unusual_course": false, + "icmr_category": 10, + "icmr_label": "Test", + "status": 1, + "result": 3, + "fast_track": "", + "date_of_sample": "2022-09-27T07:23:29.508Z", + "date_of_result": null, + "testing_facility": 1, + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.patientsample", + "pk": 15, + "fields": { + "external_id": "342639b4-f347-4f83-87d1-85c6d7968ee7", + "created_date": "2022-09-27T07:25:59.671Z", + "modified_date": "2022-09-27T07:25:59.674Z", + "deleted": false, + "patient": 1, + "consultation": 1, + "sample_type": 1, + "sample_type_other": "", + "has_sari": false, + "has_ari": false, + "doctor_name": "NO DOCTOR SPECIFIED", + "diagnosis": "", + "diff_diagnosis": "", + "etiology_identified": "", + "is_atypical_presentation": false, + "atypical_presentation": "", + "is_unusual_course": false, + "icmr_category": 10, + "icmr_label": "Test", + "status": 1, + "result": 3, + "fast_track": "", + "date_of_sample": "2022-09-27T07:23:29.508Z", + "date_of_result": null, + "testing_facility": 1, + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.patientsample", + "pk": 16, + "fields": { + "external_id": "388099f9-f005-47c1-9be3-650ddda769a0", + "created_date": "2022-09-27T07:26:00.354Z", + "modified_date": "2022-09-27T07:26:00.358Z", + "deleted": false, + "patient": 1, + "consultation": 1, + "sample_type": 1, + "sample_type_other": "", + "has_sari": false, + "has_ari": false, + "doctor_name": "NO DOCTOR SPECIFIED", + "diagnosis": "", + "diff_diagnosis": "", + "etiology_identified": "", + "is_atypical_presentation": false, + "atypical_presentation": "", + "is_unusual_course": false, + "icmr_category": 10, + "icmr_label": "Test", + "status": 1, + "result": 3, + "fast_track": "", + "date_of_sample": "2022-09-27T07:23:29.508Z", + "date_of_result": null, + "testing_facility": 1, + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.patientsample", + "pk": 17, + "fields": { + "external_id": "5aef7a72-5e2c-4a0f-b689-747aae8b0dce", + "created_date": "2022-09-27T07:26:00.860Z", + "modified_date": "2022-09-27T07:26:00.863Z", + "deleted": false, + "patient": 1, + "consultation": 1, + "sample_type": 1, + "sample_type_other": "", + "has_sari": false, + "has_ari": false, + "doctor_name": "NO DOCTOR SPECIFIED", + "diagnosis": "", + "diff_diagnosis": "", + "etiology_identified": "", + "is_atypical_presentation": false, + "atypical_presentation": "", + "is_unusual_course": false, + "icmr_category": 10, + "icmr_label": "Test", + "status": 1, + "result": 3, + "fast_track": "", + "date_of_sample": "2022-09-27T07:23:29.508Z", + "date_of_result": null, + "testing_facility": 1, + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.patientsampleflow", + "pk": 1, + "fields": { + "external_id": "64bf6eb2-055d-4a16-8c91-e7ce1390e541", + "created_date": "2022-09-27T07:23:29.580Z", + "modified_date": "2022-09-27T07:23:29.580Z", + "deleted": false, + "patient_sample": 1, + "status": 1, + "notes": "created", + "created_by": 2 + } + }, + { + "model": "facility.patientsampleflow", + "pk": 2, + "fields": { + "external_id": "1f68131b-9aab-456f-b61b-eb0a93d521c4", + "created_date": "2022-09-27T07:25:39.613Z", + "modified_date": "2022-09-27T07:25:39.613Z", + "deleted": false, + "patient_sample": 2, + "status": 1, + "notes": "created", + "created_by": 2 + } + }, + { + "model": "facility.patientsampleflow", + "pk": 3, + "fields": { + "external_id": "80ead199-cd58-44c3-97de-4142e3e7d7ac", + "created_date": "2022-09-27T07:25:41.689Z", + "modified_date": "2022-09-27T07:25:41.689Z", + "deleted": false, + "patient_sample": 3, + "status": 1, + "notes": "created", + "created_by": 2 + } + }, + { + "model": "facility.patientsampleflow", + "pk": 4, + "fields": { + "external_id": "ebe8ffac-1ca0-40fe-80d3-b895e7524ce2", + "created_date": "2022-09-27T07:25:42.681Z", + "modified_date": "2022-09-27T07:25:42.681Z", + "deleted": false, + "patient_sample": 4, + "status": 1, + "notes": "created", + "created_by": 2 + } + }, + { + "model": "facility.patientsampleflow", + "pk": 5, + "fields": { + "external_id": "ed7f8727-3784-40cd-97c6-49e9de3e2fdb", + "created_date": "2022-09-27T07:25:43.620Z", + "modified_date": "2022-09-27T07:25:43.620Z", + "deleted": false, + "patient_sample": 5, + "status": 1, + "notes": "created", + "created_by": 2 + } + }, + { + "model": "facility.patientsampleflow", + "pk": 6, + "fields": { + "external_id": "f7a3695f-bfd4-4af5-9280-e2d54124286e", + "created_date": "2022-09-27T07:25:44.716Z", + "modified_date": "2022-09-27T07:25:44.716Z", + "deleted": false, + "patient_sample": 6, + "status": 1, + "notes": "created", + "created_by": 2 + } + }, + { + "model": "facility.patientsampleflow", + "pk": 7, + "fields": { + "external_id": "a0cad511-4dad-4244-93c4-50277d6734c2", + "created_date": "2022-09-27T07:25:52.383Z", + "modified_date": "2022-09-27T07:25:52.383Z", + "deleted": false, + "patient_sample": 7, + "status": 1, + "notes": "created", + "created_by": 2 + } + }, + { + "model": "facility.patientsampleflow", + "pk": 8, + "fields": { + "external_id": "f3ff09b9-1c79-4afc-bd3d-70eeecc87daa", + "created_date": "2022-09-27T07:25:53.564Z", + "modified_date": "2022-09-27T07:25:53.564Z", + "deleted": false, + "patient_sample": 8, + "status": 1, + "notes": "created", + "created_by": 2 + } + }, + { + "model": "facility.patientsampleflow", + "pk": 9, + "fields": { + "external_id": "a03684c4-4769-4643-b457-8be382895e8b", + "created_date": "2022-09-27T07:25:54.414Z", + "modified_date": "2022-09-27T07:25:54.414Z", + "deleted": false, + "patient_sample": 9, + "status": 1, + "notes": "created", + "created_by": 2 + } + }, + { + "model": "facility.patientsampleflow", + "pk": 10, + "fields": { + "external_id": "a62f7677-31af-42f6-94f9-fcb5e8ab94de", + "created_date": "2022-09-27T07:25:55.288Z", + "modified_date": "2022-09-27T07:25:55.288Z", + "deleted": false, + "patient_sample": 10, + "status": 1, + "notes": "created", + "created_by": 2 + } + }, + { + "model": "facility.patientsampleflow", + "pk": 11, + "fields": { + "external_id": "e9dae65e-bca7-47fc-b490-8ef4de67e331", + "created_date": "2022-09-27T07:25:56.127Z", + "modified_date": "2022-09-27T07:25:56.127Z", + "deleted": false, + "patient_sample": 11, + "status": 1, + "notes": "created", + "created_by": 2 + } + }, + { + "model": "facility.patientsampleflow", + "pk": 12, + "fields": { + "external_id": "e065bb9a-10d2-4bdd-b375-affa163dacdf", + "created_date": "2022-09-27T07:25:56.968Z", + "modified_date": "2022-09-27T07:25:56.968Z", + "deleted": false, + "patient_sample": 12, + "status": 1, + "notes": "created", + "created_by": 2 + } + }, + { + "model": "facility.patientsampleflow", + "pk": 13, + "fields": { + "external_id": "dae215d0-bbfe-41e5-a6e2-20e4504eb068", + "created_date": "2022-09-27T07:25:57.883Z", + "modified_date": "2022-09-27T07:25:57.883Z", + "deleted": false, + "patient_sample": 13, + "status": 1, + "notes": "created", + "created_by": 2 + } + }, + { + "model": "facility.patientsampleflow", + "pk": 14, + "fields": { + "external_id": "dabdd193-f800-4848-902b-b33b345252e5", + "created_date": "2022-09-27T07:25:58.686Z", + "modified_date": "2022-09-27T07:25:58.686Z", + "deleted": false, + "patient_sample": 14, + "status": 1, + "notes": "created", + "created_by": 2 + } + }, + { + "model": "facility.patientsampleflow", + "pk": 15, + "fields": { + "external_id": "8a32a9f0-0686-4104-8fe7-27c7be6a4233", + "created_date": "2022-09-27T07:25:59.679Z", + "modified_date": "2022-09-27T07:25:59.679Z", + "deleted": false, + "patient_sample": 15, + "status": 1, + "notes": "created", + "created_by": 2 + } + }, + { + "model": "facility.patientsampleflow", + "pk": 16, + "fields": { + "external_id": "db4ceed2-a7e5-4cb1-828b-085ddae5fa0a", + "created_date": "2022-09-27T07:26:00.363Z", + "modified_date": "2022-09-27T07:26:00.363Z", + "deleted": false, + "patient_sample": 16, + "status": 1, + "notes": "created", + "created_by": 2 + } + }, + { + "model": "facility.patientsampleflow", + "pk": 17, + "fields": { + "external_id": "48b8eb3a-c901-429a-abbb-7e5aae0f9cd2", + "created_date": "2022-09-27T07:26:00.867Z", + "modified_date": "2022-09-27T07:26:00.867Z", + "deleted": false, + "patient_sample": 17, + "status": 1, + "notes": "created", + "created_by": 2 + } + }, + { + "model": "facility.shiftingrequest", + "pk": 1, + "fields": { + "external_id": "a0e4cf70-49b4-4e26-83fa-c2c962386885", + "created_date": "2022-09-27T07:22:00.581Z", + "modified_date": "2022-09-27T07:22:00.581Z", + "deleted": false, + "origin_facility": 1, + "shifting_approving_facility": 2, + "assigned_facility_type": 2, + "assigned_facility": null, + "assigned_facility_external": "", + "patient": 1, + "emergency": true, + "is_up_shift": true, + "reason": "Test", + "vehicle_preference": "", + "preferred_vehicle_choice": 10, + "comments": "", + "refering_facility_contact_name": "Someone at Facility", + "refering_facility_contact_number": "+914455666777", + "is_kasp": false, + "status": 10, + "breathlessness_level": 30, + "is_assigned_to_user": false, + "assigned_to": null, + "ambulance_driver_name": "", + "ambulance_phone_number": "", + "ambulance_number": "", + "created_by": 2, + "last_edited_by": 2 + } + }, + { + "model": "facility.facilityrelatedsummary", + "pk": "99627ad6-53e7-4585-821a-21ac6e765f7b", + "fields": { + "created_date": "2022-09-27T07:00:00.163Z", + "modified_date": "2022-09-27T07:25:00.165Z", + "facility": 1, + "s_type": "FacilityCapacity", + "data": { + "id": "81092ced-8720-44cb-b4c5-3f0ad0540153", + "name": "Dummy Facility 1", + "ward": 1, + "state": 1, + "address": "127.0.0.1", + "pincode": 670000, + "district": 7, + "features": [ + 1, + 2, + 3, + 4, + 5, + 6 + ], + "latitude": null, + "inventory": {}, + "longitude": null, + "local_body": 920, + "ward_object": { + "id": 1, + "name": "NEERICODE WEST", + "number": 1, + "local_body": 920 + }, + "availability": [ + { + "id": "bfb7a4d8-6bf0-46d6-bf20-d5020850ea55", + "room_type": 150, + "modified_date": "2022-09-27T12:30:19.399000+05:30", + "room_type_text": "Oxygen beds", + "total_capacity": 1000, + "current_capacity": 20 + } + ], + "created_date": "2022-09-27T12:29:15.929000+05:30", + "phone_number": "+919999999888", + "state_object": { + "id": 1, + "name": "Kerala" + }, + "facility_type": "Private Hospital", + "modified_date": "2022-09-27T12:29:15.929000+05:30", + "district_object": { + "id": 7, + "name": "Ernakulam", + "state": 1 + }, + "kasp_empanelled": false, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "local_body_object": { + "id": 920, + "name": "Alangad  Grama Panchayat, Ernakulam District", + "district": 7, + "body_type": 1, + "localbody_code": "G070203" + }, + "actual_live_patients": 1, + "read_cover_image_url": null, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "actual_discharged_patients": 0, + "expected_oxygen_requirement": 0 + } + } + }, + { + "model": "facility.facilityrelatedsummary", + "pk": "e294a2c2-3b05-469f-b975-e7766201df13", + "fields": { + "created_date": "2022-09-27T07:20:00.162Z", + "modified_date": "2022-09-27T07:25:00.171Z", + "facility": 2, + "s_type": "FacilityCapacity", + "data": { + "id": "fa33079d-727d-4295-b0fd-19153b36b2db", + "name": "Dummy Shifting Center", + "ward": 218, + "state": 1, + "address": "89.66.33.55", + "pincode": 670112, + "district": 7, + "features": [ + 1, + 6 + ], + "latitude": null, + "inventory": {}, + "longitude": null, + "local_body": 12, + "ward_object": { + "id": 218, + "name": "VALAMBOOR", + "number": 2, + "local_body": 12 + }, + "availability": [ + { + "id": "52bd4e97-9064-4697-8fea-37e0a2b8c87c", + "room_type": 150, + "modified_date": "2022-09-27T12:46:52.525280+05:30", + "room_type_text": "Oxygen beds", + "total_capacity": 20, + "current_capacity": 1 + } + ], + "created_date": "2022-09-27T12:45:51.075776+05:30", + "phone_number": "+919876665987", + "state_object": { + "id": 1, + "name": "Kerala" + }, + "facility_type": "Shifting Centre", + "modified_date": "2022-09-27T12:45:51.075811+05:30", + "district_object": { + "id": 7, + "name": "Ernakulam", + "state": 1 + }, + "kasp_empanelled": false, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "local_body_object": { + "id": 12, + "name": "Aikaranad  Grama Panchayat, Ernakulam District", + "district": 7, + "body_type": 1, + "localbody_code": "G071005" + }, + "actual_live_patients": 0, + "read_cover_image_url": null, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "actual_discharged_patients": 0, + "expected_oxygen_requirement": 0 + } + } + } ] From 1489801137f3d6620e567139f8c83a61862bb165 Mon Sep 17 00:00:00 2001 From: Ashesh <3626859+Ashesh3@users.noreply.github.com> Date: Thu, 7 Dec 2023 23:08:38 +0530 Subject: [PATCH 02/27] Refactor asset status check logic (#1750) --- care/facility/tasks/asset_monitor.py | 99 ++++++++++------------------ 1 file changed, 34 insertions(+), 65 deletions(-) diff --git a/care/facility/tasks/asset_monitor.py b/care/facility/tasks/asset_monitor.py index 5905ec172a..e8bbdbf1f7 100644 --- a/care/facility/tasks/asset_monitor.py +++ b/care/facility/tasks/asset_monitor.py @@ -3,7 +3,6 @@ from typing import Any from celery import shared_task -from django.db.models import Q from django.utils import timezone from care.facility.models.asset import ( @@ -22,8 +21,6 @@ def check_asset_status(): logger.info(f"Checking Asset Status: {timezone.now()}") assets = Asset.objects.all() - middleware_status_cache = {} - middleware_camera_status_cache = {} for asset in assets: # Skipping if asset class or local IP address is not present @@ -31,83 +28,56 @@ def check_asset_status(): continue try: # Fetching middleware hostname - hostname = ( + resolved_middleware = ( asset.meta.get( "middleware_hostname", - ) - or asset.current_location.middleware_address - or asset.current_location.facility.middleware_address + ) # From asset configuration + or asset.current_location.middleware_address # From location configuration + or asset.current_location.facility.middleware_address # From facility configuration ) - if not hostname: + + if not resolved_middleware: logger.warn( f"Asset {asset.external_id} does not have a middleware hostname" ) continue + result: Any = None - # Checking if middleware status is already cached - if ( - hostname in middleware_camera_status_cache - and asset.asset_class == "ONVIF" - ): - result = middleware_camera_status_cache[hostname] - elif hostname in middleware_status_cache and asset.asset_class != "ONVIF": - result = middleware_status_cache[hostname] - else: - try: - # Creating an instance of the asset class - asset_class: BaseAssetIntegration = AssetClasses[ - asset.asset_class - ].value( + try: + # Creating an instance of the asset class + asset_class: BaseAssetIntegration = AssetClasses[ + asset.asset_class + ].value( + { + **asset.meta, + "middleware_hostname": resolved_middleware, + } + ) + # Fetching the status of the device + if asset.asset_class == "ONVIF": + asset_config = asset.meta["camera_access_key"].split(":") + assets_config = [ { - **asset.meta, - "middleware_hostname": hostname, + "hostname": asset.meta.get("local_ip_address"), + "port": 80, + "username": asset_config[0], + "password": asset_config[1], } + ] + + result = asset_class.api_post( + asset_class.get_url("cameras/status"), data=assets_config ) - # Fetching the status of the device - if asset.asset_class == "ONVIF": - similar_assets = Asset.objects.filter( - asset_class="ONVIF" - ).filter( - Q(meta__middleware_hostname=hostname) - | Q(current_location__middleware_address=hostname) - | Q(current_location__facility__middleware_address=hostname) - ) - assets_config = [] - for asset in similar_assets: - try: - asset_config = asset.meta["camera_access_key"].split( - ":" - ) - assets_config.append( - { - "hostname": asset.meta.get("local_ip_address"), - "port": 80, - "username": asset_config[0], - "password": asset_config[1], - } - ) - except Exception: - pass - result = asset_class.api_post( - asset_class.get_url("cameras/status"), data=assets_config - ) - else: - result = asset_class.api_get( - asset_class.get_url("devices/status") - ) - except Exception: - logger.warn(f"Middleware {hostname} is down", exc_info=True) + else: + result = asset_class.api_get(asset_class.get_url("devices/status")) + except Exception: + logger.warn(f"Middleware {resolved_middleware} is down", exc_info=True) # If no status is returned, setting default status as down - if not result: + if not result or "error" in result: result = [{"time": timezone.now().isoformat(), "status": []}] - if asset.asset_class == "ONVIF": - middleware_camera_status_cache[hostname] = result - else: - middleware_status_cache[hostname] = result - # Setting new status as down by default new_status = AvailabilityStatus.DOWN for status_record in result: @@ -144,6 +114,5 @@ def check_asset_status(): status=new_status.value, timestamp=status_record.get("time", timezone.now()), ) - except Exception: logger.error("Error in Asset Status Check", exc_info=True) From df576b0d45da6d8780d95ff6774363b1993ef8e8 Mon Sep 17 00:00:00 2001 From: Aakash Singh Date: Thu, 7 Dec 2023 23:15:01 +0530 Subject: [PATCH 03/27] offload migrations to beat service (#1710) * offload migrations to beat service * log connection error --- scripts/celery_beat-ecs.sh | 25 +++++++++++++++++++++++++ scripts/celery_beat.sh | 25 +++++++++++++++++++++++++ scripts/start-ecs.sh | 1 - scripts/start.sh | 3 +-- 4 files changed, 51 insertions(+), 3 deletions(-) diff --git a/scripts/celery_beat-ecs.sh b/scripts/celery_beat-ecs.sh index dd5dca1b6a..16d6dd8825 100755 --- a/scripts/celery_beat-ecs.sh +++ b/scripts/celery_beat-ecs.sh @@ -3,4 +3,29 @@ if [ -z "${DATABASE_URL}" ]; then export DATABASE_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}" fi + +postgres_ready() { +python << END +import sys + +import psycopg + +try: + psycopg.connect(conninfo="${DATABASE_URL}") +except psycopg.OperationalError as e: + print(e) + sys.exit(-1) +sys.exit(0) + +END +} + +until postgres_ready; do + >&2 echo 'Waiting for PostgreSQL to become available...' + sleep 1 +done +>&2 echo 'PostgreSQL is available' + +python manage.py migrate --noinput + celery --app=config.celery_app beat --loglevel=info diff --git a/scripts/celery_beat.sh b/scripts/celery_beat.sh index df7ef10e9d..5bd97ebcbf 100755 --- a/scripts/celery_beat.sh +++ b/scripts/celery_beat.sh @@ -3,5 +3,30 @@ if [ -z "${DATABASE_URL}" ]; then export DATABASE_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${POSTGRES_HOST}:${POSTGRES_PORT}/${POSTGRES_DB}" fi + +postgres_ready() { +python << END +import sys + +import psycopg + +try: + psycopg.connect(conninfo="${DATABASE_URL}") +except psycopg.OperationalError as e: + print(e) + sys.exit(-1) +sys.exit(0) + +END +} + +until postgres_ready; do + >&2 echo 'Waiting for PostgreSQL to become available...' + sleep 1 +done +>&2 echo 'PostgreSQL is available' + +python manage.py migrate --noinput + export NEW_RELIC_CONFIG_FILE=/etc/newrelic.ini newrelic-admin run-program celery --app=config.celery_app beat --loglevel=info diff --git a/scripts/start-ecs.sh b/scripts/start-ecs.sh index 3e0049f2fb..8dac8788db 100755 --- a/scripts/start-ecs.sh +++ b/scripts/start-ecs.sh @@ -30,5 +30,4 @@ done >&2 echo 'PostgreSQL is available' python manage.py collectstatic --noinput -python manage.py migrate --noinput gunicorn config.wsgi:application --bind 0.0.0.0:9000 --chdir=/app --workers 2 diff --git a/scripts/start.sh b/scripts/start.sh index ffe5df02d9..d072a6d4b7 100755 --- a/scripts/start.sh +++ b/scripts/start.sh @@ -28,8 +28,7 @@ until postgres_ready; do done >&2 echo 'PostgreSQL is available' +python manage.py collectstatic --noinput export NEW_RELIC_CONFIG_FILE=/etc/newrelic.ini -python manage.py collectstatic --noinput -python manage.py migrate newrelic-admin run-program gunicorn config.wsgi:application --bind 0.0.0.0:9000 --chdir=/app From 26d5a6d29c3d7739042f1e399212ae1b4b711bdd Mon Sep 17 00:00:00 2001 From: Ashesh <3626859+Ashesh3@users.noreply.github.com> Date: Thu, 7 Dec 2023 23:15:54 +0530 Subject: [PATCH 04/27] Allow district admin to delete users (#1738) --- care/users/api/viewsets/users.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/care/users/api/viewsets/users.py b/care/users/api/viewsets/users.py index 9d590b546d..ff0a325c61 100644 --- a/care/users/api/viewsets/users.py +++ b/care/users/api/viewsets/users.py @@ -151,6 +151,12 @@ def destroy(self, request, *args, **kwargs): user_type__lt=User.TYPE_VALUE_MAP["StateAdmin"], is_superuser=False, ) + elif request.user.user_type == User.TYPE_VALUE_MAP["DistrictAdmin"]: + queryset = queryset.filter( + district=request.user.district, + user_type__lt=User.TYPE_VALUE_MAP["DistrictAdmin"], + is_superuser=False, + ) else: return Response( status=status.HTTP_403_FORBIDDEN, data={"permission": "Denied"} From 83b64955282cc908762d31dd9c5aca3594aaa15d Mon Sep 17 00:00:00 2001 From: Pranshu Aggarwal <70687348+Pranshu1902@users.noreply.github.com> Date: Thu, 7 Dec 2023 23:16:30 +0530 Subject: [PATCH 05/27] show icu admission date in discharge summary pdf (#1736) --- care/templates/reports/patient_discharge_summary_pdf.html | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/care/templates/reports/patient_discharge_summary_pdf.html b/care/templates/reports/patient_discharge_summary_pdf.html index 22fc3101b2..6e1aaa6a31 100644 --- a/care/templates/reports/patient_discharge_summary_pdf.html +++ b/care/templates/reports/patient_discharge_summary_pdf.html @@ -78,6 +78,12 @@

Decision after consultation: {{consultation.get_suggestion_display|field_name_to_label}}

+ {% if consultation.icu_admission_date %} +

+ ICU Admission Date & Time: + {{consultation.icu_admission_date}} +

+ {% endif %} {% if consultation.suggestion == 'A' %}

Date of addmission: From 8720fe44b19b30f8113953532768996fe9d4d63e Mon Sep 17 00:00:00 2001 From: Aakash Singh Date: Thu, 7 Dec 2023 23:17:40 +0530 Subject: [PATCH 06/27] add management command to load skills (#1707) * add management command to load skills * fix typos --- .../management/commands/load_dummy_data.py | 1 + .../management/commands/load_skill_data.py | 59 +++++++++++++++++++ docs/django-commands/configuration.rst | 4 ++ 3 files changed, 64 insertions(+) create mode 100644 care/users/management/commands/load_skill_data.py diff --git a/care/facility/management/commands/load_dummy_data.py b/care/facility/management/commands/load_dummy_data.py index 1ce9e1d0d6..819b54a764 100644 --- a/care/facility/management/commands/load_dummy_data.py +++ b/care/facility/management/commands/load_dummy_data.py @@ -26,6 +26,7 @@ def handle(self, *args, **options): management.call_command("load_data", "kerala") management.call_command("load_medicines_data") management.call_command("seed_data") + management.call_command("load_skill_data") management.call_command("loaddata", self.BASE_URL + "facility.json") management.call_command("loaddata", self.BASE_URL + "cypress_users.json") management.call_command("loaddata", self.BASE_URL + "facility_users.json") diff --git a/care/users/management/commands/load_skill_data.py b/care/users/management/commands/load_skill_data.py new file mode 100644 index 0000000000..4d476f793f --- /dev/null +++ b/care/users/management/commands/load_skill_data.py @@ -0,0 +1,59 @@ +from django.core.management import BaseCommand + +from care.users.models import Skill + + +class Command(BaseCommand): + """ + Command to load default skills + """ + + help = "Seed Data for Skills" + + def handle(self, *args, **options): + self.stdout.write("Seeding Skills Data... ", ending="") + + skills = [ + "Anesthesiologist", + "Cardiac Surgeon", + "Cardiologist", + "Dermatologist", + "Diabetologist", + "Emergency Medicine Physician", + "Endocrinologist", + "Family Physician", + "Gastroenterologist", + "General Medicine", + "General Surgeon", + "Hematologist", + "Intensivist", + "Medical Officer", + "Nephrologist", + "Neuro Surgeon", + "Neurologist", + "Obstetrician and Gynecologist", + "Oncologist", + "Oncology Surgeon", + "Ophthalmologist", + "Orthopedic", + "Orthopedic Surgeon", + "Otolaryngologist (ENT)", + "Pediatrician", + "Palliative care Physician", + "Pathologist", + "Physician", + "Plastic Surgeon", + "Psychiatrist", + "Pulmonologist", + "Radio technician", + "Radiologist", + "Rheumatologist", + "Thoraco-Vascular Surgeon", + "Urologist", + ] + + Skill.objects.bulk_create( + [Skill(name=skill) for skill in skills], ignore_conflicts=True + ) + + self.stdout.write(self.style.SUCCESS("OK")) diff --git a/docs/django-commands/configuration.rst b/docs/django-commands/configuration.rst index 03d53e2f8f..d873646fbf 100644 --- a/docs/django-commands/configuration.rst +++ b/docs/django-commands/configuration.rst @@ -26,6 +26,10 @@ All Django commands must be executed by invoking :code:`python manage.py`, so fo | | | | | | | Example Invocation: :code:`python manage.py seed_data` | +---------------------+---------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ +| load_skill_data | None | This command loads default skills | +| | | | +| | | Example Invocation: :code:`python manage.py load_skill_data` | ++---------------------+---------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | summarize | None | The summary jobs are run by Celery every 10 mins, but we can force Django to summarize the current data and update the summary table with this command | | | | | | | | Example Invocation: :code:`python manage.py summarize` | From d481c9057d261baf44ef1933be729f489295e59f Mon Sep 17 00:00:00 2001 From: Aakash Singh Date: Thu, 7 Dec 2023 23:18:28 +0530 Subject: [PATCH 07/27] pin dependencies in pipenv (#1705) --- .github/dependabot.yml | 4 + Pipfile | 106 ++-- Pipfile.lock | 1177 ++++++++++++++++++++++------------------ 3 files changed, 694 insertions(+), 593 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 1038144380..41484c2e8d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,6 +9,10 @@ updates: directory: "/" schedule: interval: "weekly" + groups: + boto: + patterns: + - "boto*" - package-ecosystem: "docker" directory: "/docker" diff --git a/Pipfile b/Pipfile index ebd5187573..9807d550ff 100644 --- a/Pipfile +++ b/Pipfile @@ -4,73 +4,73 @@ verify_ssl = true name = "pypi" [packages] -argon2-cffi = "*" -authlib = "==1.2.*" -boto3 = "*" -celery = "==5.*" -"fhir.resources" = "==6.5.0" -django = "==4.2.*" -django-environ = "*" -django-cors-headers = "==4.*" -django-filter = "==23.*" +argon2-cffi = "==23.1.0" +authlib = "==1.2.1" +boto3 = "==1.28.50" +celery = "==5.3.4" +django = "==4.2.5" +django-environ = "==0.11.2" +django-cors-headers = "==4.2.0" +django-filter = "==23.2" django-hardcopy = "==0.1.4" django-maintenance-mode = "==0.18.0" -django-model-utils = "==4.3.*" +django-model-utils = "==4.3.1" django-multiselectfield = "==0.1.12" django-queryset-csv = "==1.1.0" django-ratelimit = "==4.1.0" -django-redis = "==5.*" +django-redis = "==5.3.0" django-rest-passwordreset = "==1.3.0" django-simple-history = "==3.3.0" -djangoql = "==0.17.*" -djangorestframework = "==3.14.*" -djangorestframework-simplejwt = "==5.*" +djangoql = "==0.17.1" +djangorestframework = "==3.14.0" +djangorestframework-simplejwt = "==5.3.0" dry-rest-permissions = "==0.1.10" -drf-nested-routers = "==0.93.*" -drf-spectacular = "*" -healthy-django = ">=0.1.0" -jsonschema = "==4.*" +drf-nested-routers = "==0.93.4" +drf-spectacular = "==0.26.4" +"fhir.resources" = "==6.5.0" +gunicorn = "==21.2.0" +healthy-django = "==0.1.0" +jsonschema = "==4.19.0" jwcrypto = "==1.5.0" -littletable = "==2.*" -pillow = "*" -psycopg = "*" -pycryptodome = "==3.*" -pydantic = "==1.*" # fix for fhir.resources < 7.0.2 -pyjwt = "==2.*" -python-slugify = "*" +littletable = "==2.2.3" +newrelic = "==9.0.0" +pillow = "==10.0.0" +psycopg = "==3.1.10" +pycryptodome = "==3.19.0" +pydantic = "==1.10.12" # fix for fhir.resources < 7.0.2 +pyjwt = "==2.8.0" +python-slugify = "==8.0.1" pywebpush = "==1.14.0" -redis = {extras = ["hiredis"] } -requests = "*" -whitenoise = "*" -gunicorn = "*" -newrelic = "*" -sentry-sdk = "*" +redis = {extras = ["hiredis"], version = "==5.0.0"} +requests = "==2.31.0" +sentry-sdk = "==1.30.0" +whitenoise = "==6.5.0" [dev-packages] -black = "*" -boto3-stubs = {extras = ["s3", "boto3"], version = "*"} -coverage = "*" -debugpy = "*" -django-coverage-plugin = "*" -django-debug-toolbar = "*" -django-extensions = "*" -django-silk = "*" -django-stubs = "*" -djangorestframework-stubs = "*" -factory-boy = "*" -flake8 = "*" -isort = "*" -mypy = "*" -pre-commit = "*" -tblib = "*" -watchdog = "*" -werkzeug = "*" -freezegun = "*" -ipython = "*" +black = "==23.9.1" +boto3-stubs = {extras = ["s3", "boto3"], version = "==1.28.50"} +coverage = "==7.3.1" +debugpy = "==1.7.0" +django-coverage-plugin = "==3.1.0" +django-debug-toolbar = "==4.2.0" +django-extensions = "==3.2.3" +django-silk = "==5.0.3" +django-stubs = "==4.2.4" +djangorestframework-stubs = "==3.14.2" +factory-boy = "==3.3.0" +flake8 = "==6.1.0" +freezegun = "==1.2.2" +ipython = "==8.15.0" +isort = "==5.12.0" +mypy = "==1.5.1" +pre-commit = "==3.4.0" +tblib = "==2.0.0" +watchdog = "==3.0.0" +werkzeug = "==2.3.7" [docs] -furo = "*" -sphinx = "*" +furo = "==2023.9.10" +sphinx = "==7.2.6" [requires] python_version = "3.11" diff --git a/Pipfile.lock b/Pipfile.lock index 656bb61815..d6cba357f6 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "2418161c41fa4f575c5549b0ea3f3d2501c80869bbf8eee8eed381b07b908451" + "sha256": "9fafba6e7916bc0584975e5f9d9080ec4f06f59866c04bac764b15141ebccadf" }, "pipfile-spec": 6, "requires": { @@ -18,11 +18,11 @@ "default": { "amqp": { "hashes": [ - "sha256:2c1b13fecc0893e946c65cbd5f36427861cffa4ea2201d8f6fca22e2a373b5e2", - "sha256:6f0956d2c23d8fa6e7691934d8c3930eadb44972cbbd1a7ae3a520f735d43359" + "sha256:827cb12fb0baa892aad844fd95258143bce4027fdac4fccddbc43330fd281637", + "sha256:a1ecff425ad063ad42a486c902807d1482311481c8ad95a72694b2975e75f7fd" ], "markers": "python_version >= '3.6'", - "version": "==5.1.1" + "version": "==5.2.0" }, "argon2-cffi": { "hashes": [ @@ -30,6 +30,7 @@ "sha256:c670642b78ba29641818ab2e68bd4e6a78ba53b7eff7b4c3815ae16abf91c7ea" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==23.1.0" }, "argon2-cffi-bindings": { @@ -85,11 +86,11 @@ }, "billiard": { "hashes": [ - "sha256:0f50d6be051c6b2b75bfbc8bfd85af195c5739c281d3f5b86a5640c65563614a", - "sha256:1ad2eeae8e28053d729ba3373d34d9d6e210f6e4d8bf0a9c64f92bd053f1edf5" + "sha256:07aa978b308f334ff8282bd4a746e681b3513db5c9a514cbdd810cbbdc19714d", + "sha256:9a3c3184cb275aa17a732f93f65b20c525d3d9f253722d26a82194803ade5a2c" ], "markers": "python_version >= '3.7'", - "version": "==4.1.0" + "version": "==4.2.0" }, "boto3": { "hashes": [ @@ -97,15 +98,16 @@ "sha256:cda98a2952cccb1db4208c53a1bba6585620fffa0ca05244827ca65884856d1f" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==1.28.50" }, "botocore": { "hashes": [ - "sha256:5038a407783ea394aaf0671d1086cf55cc1e7c303e1fac244b76adc78cc7ef07", - "sha256:a1343f2e38ea86e11247d61bd37a9d5656c16186f4a21b482c713589a054c605" + "sha256:1c693c0f8b2553fcbe0df223241191e6f9f60b4245d65c1822c08f659274fef2", + "sha256:d43fe303530c12efca9be4ec3a9104e8a669f11d1ba9feb18f0284d751a9672c" ], "markers": "python_version >= '3.7'", - "version": "==1.31.50" + "version": "==1.31.80" }, "celery": { "hashes": [ @@ -113,6 +115,7 @@ "sha256:9023df6a8962da79eb30c0c84d5f4863d9793a466354cc931d7f72423996de28" ], "index": "pypi", + "markers": "python_version >= '3.8'", "version": "==5.3.4" }, "certifi": { @@ -125,153 +128,157 @@ }, "cffi": { "hashes": [ - "sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5", - "sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef", - "sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104", - "sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426", - "sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405", - "sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375", - "sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a", - "sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e", - "sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc", - "sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf", - "sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185", - "sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497", - "sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3", - "sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35", - "sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c", - "sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83", - "sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21", - "sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca", - "sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984", - "sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac", - "sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd", - "sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee", - "sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a", - "sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2", - "sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192", - "sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7", - "sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585", - "sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f", - "sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e", - "sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27", - "sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b", - "sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e", - "sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e", - "sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d", - "sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c", - "sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415", - "sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82", - "sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02", - "sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314", - "sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325", - "sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c", - "sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3", - "sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914", - "sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045", - "sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d", - "sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9", - "sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5", - "sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2", - "sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c", - "sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3", - "sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2", - "sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8", - "sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d", - "sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d", - "sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9", - "sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162", - "sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76", - "sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4", - "sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e", - "sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9", - "sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6", - "sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b", - "sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01", - "sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0" - ], - "version": "==1.15.1" + "sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc", + "sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a", + "sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417", + "sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab", + "sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520", + "sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36", + "sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743", + "sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8", + "sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed", + "sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684", + "sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56", + "sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324", + "sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d", + "sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235", + "sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e", + "sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088", + "sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000", + "sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7", + "sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e", + "sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673", + "sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c", + "sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe", + "sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2", + "sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098", + "sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8", + "sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a", + "sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0", + "sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b", + "sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896", + "sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e", + "sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9", + "sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2", + "sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b", + "sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6", + "sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404", + "sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f", + "sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0", + "sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4", + "sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc", + "sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936", + "sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba", + "sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872", + "sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb", + "sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614", + "sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1", + "sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d", + "sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969", + "sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b", + "sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4", + "sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627", + "sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956", + "sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357" + ], + "markers": "python_version >= '3.8'", + "version": "==1.16.0" }, "charset-normalizer": { "hashes": [ - "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96", - "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c", - "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710", - "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706", - "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020", - "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252", - "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad", - "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329", - "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a", - "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f", - "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6", - "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4", - "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a", - "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46", - "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2", - "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23", - "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace", - "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd", - "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982", - "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10", - "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2", - "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea", - "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09", - "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5", - "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149", - "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489", - "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9", - "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80", - "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592", - "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3", - "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6", - "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed", - "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c", - "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200", - "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a", - "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e", - "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d", - "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6", - "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623", - "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669", - "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3", - "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa", - "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9", - "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2", - "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f", - "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1", - "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4", - "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a", - "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8", - "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3", - "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029", - "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f", - "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959", - "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22", - "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7", - "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952", - "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346", - "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e", - "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d", - "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299", - "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd", - "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a", - "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3", - "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037", - "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94", - "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c", - "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858", - "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a", - "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449", - "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c", - "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918", - "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1", - "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c", - "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac", - "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa" - ], - "markers": "python_version >= '3.7'", - "version": "==3.2.0" + "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027", + "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087", + "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786", + "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8", + "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09", + "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185", + "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574", + "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e", + "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519", + "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898", + "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269", + "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3", + "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f", + "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6", + "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8", + "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a", + "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73", + "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", + "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714", + "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2", + "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc", + "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce", + "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d", + "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e", + "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6", + "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269", + "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96", + "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d", + "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a", + "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4", + "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77", + "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d", + "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0", + "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed", + "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068", + "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac", + "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25", + "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8", + "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab", + "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26", + "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2", + "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db", + "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f", + "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5", + "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99", + "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c", + "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d", + "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811", + "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa", + "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a", + "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03", + "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b", + "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04", + "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c", + "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001", + "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458", + "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389", + "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99", + "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985", + "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537", + "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238", + "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f", + "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d", + "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796", + "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a", + "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143", + "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8", + "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c", + "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5", + "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5", + "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711", + "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4", + "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6", + "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c", + "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7", + "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4", + "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b", + "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae", + "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12", + "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c", + "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae", + "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8", + "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887", + "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b", + "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4", + "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f", + "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5", + "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33", + "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519", + "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561" + ], + "markers": "python_full_version >= '3.7.0'", + "version": "==3.3.2" }, "click": { "hashes": [ @@ -306,32 +313,32 @@ }, "cryptography": { "hashes": [ - "sha256:0d09fb5356f975974dbcb595ad2d178305e5050656affb7890a1583f5e02a306", - "sha256:23c2d778cf829f7d0ae180600b17e9fceea3c2ef8b31a99e3c694cbbf3a24b84", - "sha256:3fb248989b6363906827284cd20cca63bb1a757e0a2864d4c1682a985e3dca47", - "sha256:41d7aa7cdfded09b3d73a47f429c298e80796c8e825ddfadc84c8a7f12df212d", - "sha256:42cb413e01a5d36da9929baa9d70ca90d90b969269e5a12d39c1e0d475010116", - "sha256:4c2f0d35703d61002a2bbdcf15548ebb701cfdd83cdc12471d2bae80878a4207", - "sha256:4fd871184321100fb400d759ad0cddddf284c4b696568204d281c902fc7b0d81", - "sha256:5259cb659aa43005eb55a0e4ff2c825ca111a0da1814202c64d28a985d33b087", - "sha256:57a51b89f954f216a81c9d057bf1a24e2f36e764a1ca9a501a6964eb4a6800dd", - "sha256:652627a055cb52a84f8c448185922241dd5217443ca194d5739b44612c5e6507", - "sha256:67e120e9a577c64fe1f611e53b30b3e69744e5910ff3b6e97e935aeb96005858", - "sha256:6af1c6387c531cd364b72c28daa29232162010d952ceb7e5ca8e2827526aceae", - "sha256:6d192741113ef5e30d89dcb5b956ef4e1578f304708701b8b73d38e3e1461f34", - "sha256:7efe8041897fe7a50863e51b77789b657a133c75c3b094e51b5e4b5cec7bf906", - "sha256:84537453d57f55a50a5b6835622ee405816999a7113267739a1b4581f83535bd", - "sha256:8f09daa483aedea50d249ef98ed500569841d6498aa9c9f4b0531b9964658922", - "sha256:95dd7f261bb76948b52a5330ba5202b91a26fbac13ad0e9fc8a3ac04752058c7", - "sha256:a74fbcdb2a0d46fe00504f571a2a540532f4c188e6ccf26f1f178480117b33c4", - "sha256:a983e441a00a9d57a4d7c91b3116a37ae602907a7618b882c8013b5762e80574", - "sha256:ab8de0d091acbf778f74286f4989cf3d1528336af1b59f3e5d2ebca8b5fe49e1", - "sha256:aeb57c421b34af8f9fe830e1955bf493a86a7996cc1338fe41b30047d16e962c", - "sha256:ce785cf81a7bdade534297ef9e490ddff800d956625020ab2ec2780a556c313e", - "sha256:d0d651aa754ef58d75cec6edfbd21259d93810b73f6ec246436a21b7841908de" + "sha256:0c327cac00f082013c7c9fb6c46b7cc9fa3c288ca702c74773968173bda421bf", + "sha256:0d2a6a598847c46e3e321a7aef8af1436f11c27f1254933746304ff014664d84", + "sha256:227ec057cd32a41c6651701abc0328135e472ed450f47c2766f23267b792a88e", + "sha256:22892cc830d8b2c89ea60148227631bb96a7da0c1b722f2aac8824b1b7c0b6b8", + "sha256:392cb88b597247177172e02da6b7a63deeff1937fa6fec3bbf902ebd75d97ec7", + "sha256:3be3ca726e1572517d2bef99a818378bbcf7d7799d5372a46c79c29eb8d166c1", + "sha256:573eb7128cbca75f9157dcde974781209463ce56b5804983e11a1c462f0f4e88", + "sha256:580afc7b7216deeb87a098ef0674d6ee34ab55993140838b14c9b83312b37b86", + "sha256:5a70187954ba7292c7876734183e810b728b4f3965fbe571421cb2434d279179", + "sha256:73801ac9736741f220e20435f84ecec75ed70eda90f781a148f1bad546963d81", + "sha256:7d208c21e47940369accfc9e85f0de7693d9a5d843c2509b3846b2db170dfd20", + "sha256:8254962e6ba1f4d2090c44daf50a547cd5f0bf446dc658a8e5f8156cae0d8548", + "sha256:88417bff20162f635f24f849ab182b092697922088b477a7abd6664ddd82291d", + "sha256:a48e74dad1fb349f3dc1d449ed88e0017d792997a7ad2ec9587ed17405667e6d", + "sha256:b948e09fe5fb18517d99994184854ebd50b57248736fd4c720ad540560174ec5", + "sha256:c707f7afd813478e2019ae32a7c49cd932dd60ab2d2a93e796f68236b7e1fbf1", + "sha256:d38e6031e113b7421db1de0c1b1f7739564a88f1684c6b89234fbf6c11b75147", + "sha256:d3977f0e276f6f5bf245c403156673db103283266601405376f075c849a0b936", + "sha256:da6a0ff8f1016ccc7477e6339e1d50ce5f59b88905585f77193ebd5068f1e797", + "sha256:e270c04f4d9b5671ebcc792b3ba5d4488bf7c42c3c241a3748e2599776f29696", + "sha256:e886098619d3815e0ad5790c973afeee2c0e6e04b4da90b88e6bd06e2a0b1b72", + "sha256:ec3b055ff8f1dce8e6ef28f626e0972981475173d7973d63f271b29c8a2897da", + "sha256:fba1e91467c65fe64a82c689dc6cf58151158993b13eb7a7f3f4b7f395636723" ], "markers": "python_version >= '3.7'", - "version": "==41.0.3" + "version": "==41.0.5" }, "deprecated": { "hashes": [ @@ -347,6 +354,7 @@ "sha256:b6b2b5cae821077f137dc4dade696a1c2aa292f892eca28fa8d7bfdf2608ddd4" ], "index": "pypi", + "markers": "python_version >= '3.8'", "version": "==4.2.5" }, "django-cors-headers": { @@ -355,6 +363,7 @@ "sha256:f9749c6410fe738278bc2b6ef17f05195bc7b251693c035752d8257026af024f" ], "index": "pypi", + "markers": "python_version >= '3.8'", "version": "==4.2.0" }, "django-environ": { @@ -363,6 +372,7 @@ "sha256:f32a87aa0899894c27d4e1776fa6b477e8164ed7f6b3e410a62a6d72caaf64be" ], "index": "pypi", + "markers": "python_version >= '3.6' and python_version < '4'", "version": "==0.11.2" }, "django-filter": { @@ -371,6 +381,7 @@ "sha256:d12d8e0fc6d3eb26641e553e5d53b191eb8cec611427d4bdce0becb1f7c172b5" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==23.2" }, "django-hardcopy": { @@ -395,6 +406,7 @@ "sha256:8c0b0177bab909a8635b602d960daa67e80607aa5469217857271a60726d7a4b" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==4.3.1" }, "django-multiselectfield": { @@ -418,6 +430,7 @@ "sha256:d047a31cf94d83ef1465d7543ca66c6fc16695559b5f8d814d1b51df15110b92" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==4.1.0" }, "django-redis": { @@ -426,6 +439,7 @@ "sha256:8bc5793ec06b28ea802aad85ec437e7646511d4e571e07ccad19cfed8b9ddd44" ], "index": "pypi", + "markers": "python_version >= '3.6'", "version": "==5.3.0" }, "django-rest-passwordreset": { @@ -442,6 +456,7 @@ "sha256:dc1f98e558a0a1e0b6371c3b8efb85f86e02a6db56e83d0ec198343b7408d00a" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==3.3.0" }, "djangoql": { @@ -457,6 +472,7 @@ "sha256:eb63f58c9f218e1a7d064d17a70751f528ed4e1d35547fdade9aaf4cd103fd08" ], "index": "pypi", + "markers": "python_version >= '3.6'", "version": "==3.14.0" }, "djangorestframework-simplejwt": { @@ -465,6 +481,7 @@ "sha256:8e4c5dfca8d11c0b8a66dfd8a4e3fc1c6aa7ea188d10907ff91c942f4b52ed66" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==5.3.0" }, "dnspython": { @@ -472,7 +489,7 @@ "sha256:57c6fbaaeaaf39c891292012060beb141791735dbb4004798328fc2c467402d8", "sha256:8dcfae8c7460a2f84b4072e26f1c9f4101ca20c071649cb7c34e8b6a93d58984" ], - "markers": "python_version >= '3.8' and python_full_version < '4.0.0'", + "markers": "python_version >= '3.8' and python_version < '4.0'", "version": "==2.4.2" }, "drf-nested-routers": { @@ -481,6 +498,7 @@ "sha256:996b77f3f4dfaf64569e7b8f04e3919945f90f95366838ca5b8bed9dd709d6c5" ], "index": "pypi", + "markers": "python_version >= '3.5'", "version": "==0.93.4" }, "drf-spectacular": { @@ -489,6 +507,7 @@ "sha256:afeccc6533dcdb4e78afbfcc49f3c5e9c369aeb62f965e4d1a43b165449c147a" ], "index": "pypi", + "markers": "python_version >= '3.6'", "version": "==0.26.4" }, "dry-rest-permissions": { @@ -501,10 +520,10 @@ }, "email-validator": { "hashes": [ - "sha256:1ff6e86044200c56ae23595695c54e9614f4a9551e0e393614f764860b3d7900", - "sha256:2466ba57cda361fb7309fd3d5a225723c788ca4bbad32a0ebd5373b99730285c" + "sha256:a4b0bd1cf55f073b924258d19321b1f3aa74b4b5a71a42c305575dba920e1a44", + "sha256:c973053efbeddfef924dc0bd93f6e77a1ea7ee0fce935aea7103c7a3d6d2d637" ], - "version": "==2.0.0.post2" + "version": "==2.1.0.post1" }, "fhir.resources": { "hashes": [ @@ -512,6 +531,7 @@ "sha256:515a6cb3eadc61597fec0cb273b1ff943f76f44d2c8efefa5218f001087a95d3" ], "index": "pypi", + "markers": "python_version >= '3.6'", "version": "==6.5.0" }, "gunicorn": { @@ -520,6 +540,7 @@ "sha256:88ec8bff1d634f98e61b9f65bc4bf3cd918a90806c6f5c48bc5603849ec81033" ], "index": "pypi", + "markers": "python_version >= '3.5'", "version": "==21.2.0" }, "healthy-django": { @@ -660,6 +681,7 @@ "sha256:6e1e7569ac13be8139b2dd2c21a55d350066ee3f80df06c608b398cdc6f30e8f" ], "index": "pypi", + "markers": "python_version >= '3.8'", "version": "==4.19.0" }, "jsonschema-specifications": { @@ -675,15 +697,16 @@ "sha256:2c1dc51cf8e38ddf324795dfe9426dee9dd46caf47f535ccbc18781fba810b8d" ], "index": "pypi", + "markers": "python_version >= '3.6'", "version": "==1.5.0" }, "kombu": { "hashes": [ - "sha256:0ba213f630a2cb2772728aef56ac6883dc3a2f13435e10048f6e97d48506dbbd", - "sha256:b753c9cfc9b1e976e637a7cbc1a65d446a22e45546cd996ea28f932082b7dc9e" + "sha256:1491df826cfc5178c80f3e89dd6dfba68e484ef334db81070eb5cb8094b31167", + "sha256:6cd5c5d5ef77538434b8f81f3e265c414269418645dbb47dbf130a8a05c3e357" ], "markers": "python_version >= '3.8'", - "version": "==5.3.2" + "version": "==5.3.3" }, "littletable": { "hashes": [ @@ -691,6 +714,7 @@ "sha256:15671dd79c24102b247e9acda33b1eb5940c6905ef97a9997b222464e1a7f870" ], "index": "pypi", + "markers": "python_version >= '3.9'", "version": "==2.2.3" }, "newrelic": { @@ -712,15 +736,16 @@ "sha256:ea01a47e358a537a2a4b9e8db3e8cd82c957ed96e79fe61f0a9b556444b947a2" ], "index": "pypi", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6'", "version": "==9.0.0" }, "packaging": { "hashes": [ - "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61", - "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f" + "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5", + "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7" ], "markers": "python_version >= '3.7'", - "version": "==23.1" + "version": "==23.2" }, "pillow": { "hashes": [ @@ -782,6 +807,7 @@ "sha256:faaf07ea35355b01a35cb442dd950d8f1bb5b040a7787791a535de13db15ed90" ], "index": "pypi", + "markers": "python_version >= '3.8'", "version": "==10.0.0" }, "ply": { @@ -796,7 +822,7 @@ "sha256:04505ade687dc26dc4284b1ad19a83be2f2afe83e7a828ace0c72f3a1df72aac", "sha256:9dffbe1d8acf91e3de75f3b544e4842382fc06c6babe903ac9acb74dc6e08d88" ], - "markers": "python_version >= '3.7'", + "markers": "python_full_version >= '3.7.0'", "version": "==3.0.39" }, "psycopg": { @@ -805,6 +831,7 @@ "sha256:8bbeddae5075c7890b2fa3e3553440376d3c5e28418335dee3c3656b06fa2b52" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==3.1.10" }, "py-vapid": { @@ -856,6 +883,7 @@ "sha256:fc7a79590e2b5d08530175823a242de6790abc73638cc6dc9d2684e7be2f5e49" ], "index": "pypi", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'", "version": "==3.19.0" }, "pydantic": { @@ -898,6 +926,7 @@ "sha256:fdbdd1d630195689f325c9ef1a12900524dceb503b00a987663ff4f58669b93d" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==1.10.12" }, "pyjwt": { @@ -906,6 +935,7 @@ "sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==2.8.0" }, "python-dateutil": { @@ -913,15 +943,15 @@ "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==2.8.2" }, "python-fsutil": { "hashes": [ - "sha256:5f02ed7764cac27633b4aaaa9cf56af2245a64a6cc048866b6f02792a8c5bf86", - "sha256:e0421440b5763d08129dcc469364105f3b434fc9736c3bc6ed181b1c623148ee" + "sha256:918c02ac25091eb9c9a0a8e9e7cda154cf992891a164b376203465f755bc2af5", + "sha256:b86f16edfc15babaa4073266436bb700d4453a122db0ce79d63d4922a2e7953b" ], - "version": "==0.10.0" + "version": "==0.11.0" }, "python-slugify": { "hashes": [ @@ -929,6 +959,7 @@ "sha256:ce0d46ddb668b3be82f4ed5e503dbc33dd815d83e2eb6824211310d3fb172a27" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==8.0.1" }, "pytz": { @@ -1009,7 +1040,7 @@ "sha256:06570d0b2d84d46c21defc550afbaada381af82f5b83e5b3777600e05d8e2ed0", "sha256:5cea6c0d335c9a7332a460ed8729ceabb4d0c489c7285b0a86dbbf8a017bd120" ], - "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==5.0.0" }, "referencing": { @@ -1026,110 +1057,113 @@ "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==2.31.0" }, "rpds-py": { "hashes": [ - "sha256:015de2ce2af1586ff5dc873e804434185199a15f7d96920ce67e50604592cae9", - "sha256:061c3ff1f51ecec256e916cf71cc01f9975af8fb3af9b94d3c0cc8702cfea637", - "sha256:08a80cf4884920863623a9ee9a285ee04cef57ebedc1cc87b3e3e0f24c8acfe5", - "sha256:09362f86ec201288d5687d1dc476b07bf39c08478cde837cb710b302864e7ec9", - "sha256:0bb4f48bd0dd18eebe826395e6a48b7331291078a879295bae4e5d053be50d4c", - "sha256:106af1653007cc569d5fbb5f08c6648a49fe4de74c2df814e234e282ebc06957", - "sha256:11fdd1192240dda8d6c5d18a06146e9045cb7e3ba7c06de6973000ff035df7c6", - "sha256:16a472300bc6c83fe4c2072cc22b3972f90d718d56f241adabc7ae509f53f154", - "sha256:176287bb998fd1e9846a9b666e240e58f8d3373e3bf87e7642f15af5405187b8", - "sha256:177914f81f66c86c012311f8c7f46887ec375cfcfd2a2f28233a3053ac93a569", - "sha256:177c9dd834cdf4dc39c27436ade6fdf9fe81484758885f2d616d5d03c0a83bd2", - "sha256:187700668c018a7e76e89424b7c1042f317c8df9161f00c0c903c82b0a8cac5c", - "sha256:1d9b5ee46dcb498fa3e46d4dfabcb531e1f2e76b477e0d99ef114f17bbd38453", - "sha256:22da15b902f9f8e267020d1c8bcfc4831ca646fecb60254f7bc71763569f56b1", - "sha256:24cd91a03543a0f8d09cb18d1cb27df80a84b5553d2bd94cba5979ef6af5c6e7", - "sha256:255f1a10ae39b52122cce26ce0781f7a616f502feecce9e616976f6a87992d6b", - "sha256:271c360fdc464fe6a75f13ea0c08ddf71a321f4c55fc20a3fe62ea3ef09df7d9", - "sha256:2ed83d53a8c5902ec48b90b2ac045e28e1698c0bea9441af9409fc844dc79496", - "sha256:2f3e1867dd574014253b4b8f01ba443b9c914e61d45f3674e452a915d6e929a3", - "sha256:35fbd23c1c8732cde7a94abe7fb071ec173c2f58c0bd0d7e5b669fdfc80a2c7b", - "sha256:37d0c59548ae56fae01c14998918d04ee0d5d3277363c10208eef8c4e2b68ed6", - "sha256:39d05e65f23a0fe897b6ac395f2a8d48c56ac0f583f5d663e0afec1da89b95da", - "sha256:3ad59efe24a4d54c2742929001f2d02803aafc15d6d781c21379e3f7f66ec842", - "sha256:3aed39db2f0ace76faa94f465d4234aac72e2f32b009f15da6492a561b3bbebd", - "sha256:3bbac1953c17252f9cc675bb19372444aadf0179b5df575ac4b56faaec9f6294", - "sha256:40bc802a696887b14c002edd43c18082cb7b6f9ee8b838239b03b56574d97f71", - "sha256:42f712b4668831c0cd85e0a5b5a308700fe068e37dcd24c0062904c4e372b093", - "sha256:448a66b8266de0b581246ca7cd6a73b8d98d15100fb7165974535fa3b577340e", - "sha256:485301ee56ce87a51ccb182a4b180d852c5cb2b3cb3a82f7d4714b4141119d8c", - "sha256:485747ee62da83366a44fbba963c5fe017860ad408ccd6cd99aa66ea80d32b2e", - "sha256:4cf0855a842c5b5c391dd32ca273b09e86abf8367572073bd1edfc52bc44446b", - "sha256:4eca20917a06d2fca7628ef3c8b94a8c358f6b43f1a621c9815243462dcccf97", - "sha256:4ed172d0c79f156c1b954e99c03bc2e3033c17efce8dd1a7c781bc4d5793dfac", - "sha256:5267cfda873ad62591b9332fd9472d2409f7cf02a34a9c9cb367e2c0255994bf", - "sha256:52b5cbc0469328e58180021138207e6ec91d7ca2e037d3549cc9e34e2187330a", - "sha256:53d7a3cd46cdc1689296348cb05ffd4f4280035770aee0c8ead3bbd4d6529acc", - "sha256:563646d74a4b4456d0cf3b714ca522e725243c603e8254ad85c3b59b7c0c4bf0", - "sha256:570cc326e78ff23dec7f41487aa9c3dffd02e5ee9ab43a8f6ccc3df8f9327623", - "sha256:5aca759ada6b1967fcfd4336dcf460d02a8a23e6abe06e90ea7881e5c22c4de6", - "sha256:5de11c041486681ce854c814844f4ce3282b6ea1656faae19208ebe09d31c5b8", - "sha256:5e271dd97c7bb8eefda5cca38cd0b0373a1fea50f71e8071376b46968582af9b", - "sha256:642ed0a209ced4be3a46f8cb094f2d76f1f479e2a1ceca6de6346a096cd3409d", - "sha256:6446002739ca29249f0beaaf067fcbc2b5aab4bc7ee8fb941bd194947ce19aff", - "sha256:691d50c99a937709ac4c4cd570d959a006bd6a6d970a484c84cc99543d4a5bbb", - "sha256:69b857a7d8bd4f5d6e0db4086da8c46309a26e8cefdfc778c0c5cc17d4b11e08", - "sha256:6ac3fefb0d168c7c6cab24fdfc80ec62cd2b4dfd9e65b84bdceb1cb01d385c33", - "sha256:6c9141af27a4e5819d74d67d227d5047a20fa3c7d4d9df43037a955b4c748ec5", - "sha256:7170cbde4070dc3c77dec82abf86f3b210633d4f89550fa0ad2d4b549a05572a", - "sha256:763ad59e105fca09705d9f9b29ecffb95ecdc3b0363be3bb56081b2c6de7977a", - "sha256:77076bdc8776a2b029e1e6ffbe6d7056e35f56f5e80d9dc0bad26ad4a024a762", - "sha256:7cd020b1fb41e3ab7716d4d2c3972d4588fdfbab9bfbbb64acc7078eccef8860", - "sha256:821392559d37759caa67d622d0d2994c7a3f2fb29274948ac799d496d92bca73", - "sha256:829e91f3a8574888b73e7a3feb3b1af698e717513597e23136ff4eba0bc8387a", - "sha256:850c272e0e0d1a5c5d73b1b7871b0a7c2446b304cec55ccdb3eaac0d792bb065", - "sha256:87d9b206b1bd7a0523375dc2020a6ce88bca5330682ae2fe25e86fd5d45cea9c", - "sha256:8bd01ff4032abaed03f2db702fa9a61078bee37add0bd884a6190b05e63b028c", - "sha256:8d54bbdf5d56e2c8cf81a1857250f3ea132de77af543d0ba5dce667183b61fec", - "sha256:8efaeb08ede95066da3a3e3c420fcc0a21693fcd0c4396d0585b019613d28515", - "sha256:8f94fdd756ba1f79f988855d948ae0bad9ddf44df296770d9a58c774cfbcca72", - "sha256:95cde244e7195b2c07ec9b73fa4c5026d4a27233451485caa1cd0c1b55f26dbd", - "sha256:975382d9aa90dc59253d6a83a5ca72e07f4ada3ae3d6c0575ced513db322b8ec", - "sha256:9dd9d9d9e898b9d30683bdd2b6c1849449158647d1049a125879cb397ee9cd12", - "sha256:a019a344312d0b1f429c00d49c3be62fa273d4a1094e1b224f403716b6d03be1", - "sha256:a4d9bfda3f84fc563868fe25ca160c8ff0e69bc4443c5647f960d59400ce6557", - "sha256:a657250807b6efd19b28f5922520ae002a54cb43c2401e6f3d0230c352564d25", - "sha256:a771417c9c06c56c9d53d11a5b084d1de75de82978e23c544270ab25e7c066ff", - "sha256:aad6ed9e70ddfb34d849b761fb243be58c735be6a9265b9060d6ddb77751e3e8", - "sha256:ae87137951bb3dc08c7d8bfb8988d8c119f3230731b08a71146e84aaa919a7a9", - "sha256:af247fd4f12cca4129c1b82090244ea5a9d5bb089e9a82feb5a2f7c6a9fe181d", - "sha256:b5d4bdd697195f3876d134101c40c7d06d46c6ab25159ed5cbd44105c715278a", - "sha256:b9255e7165083de7c1d605e818025e8860636348f34a79d84ec533546064f07e", - "sha256:c22211c165166de6683de8136229721f3d5c8606cc2c3d1562da9a3a5058049c", - "sha256:c55f9821f88e8bee4b7a72c82cfb5ecd22b6aad04033334f33c329b29bfa4da0", - "sha256:c7aed97f2e676561416c927b063802c8a6285e9b55e1b83213dfd99a8f4f9e48", - "sha256:cd2163f42868865597d89399a01aa33b7594ce8e2c4a28503127c81a2f17784e", - "sha256:ce5e7504db95b76fc89055c7f41e367eaadef5b1d059e27e1d6eabf2b55ca314", - "sha256:cff7351c251c7546407827b6a37bcef6416304fc54d12d44dbfecbb717064717", - "sha256:d27aa6bbc1f33be920bb7adbb95581452cdf23005d5611b29a12bb6a3468cc95", - "sha256:d3b52a67ac66a3a64a7e710ba629f62d1e26ca0504c29ee8cbd99b97df7079a8", - "sha256:de61e424062173b4f70eec07e12469edde7e17fa180019a2a0d75c13a5c5dc57", - "sha256:e10e6a1ed2b8661201e79dff5531f8ad4cdd83548a0f81c95cf79b3184b20c33", - "sha256:e1a0ffc39f51aa5f5c22114a8f1906b3c17eba68c5babb86c5f77d8b1bba14d1", - "sha256:e22491d25f97199fc3581ad8dd8ce198d8c8fdb8dae80dea3512e1ce6d5fa99f", - "sha256:e626b864725680cd3904414d72e7b0bd81c0e5b2b53a5b30b4273034253bb41f", - "sha256:e8c71ea77536149e36c4c784f6d420ffd20bea041e3ba21ed021cb40ce58e2c9", - "sha256:e8d0f0eca087630d58b8c662085529781fd5dc80f0a54eda42d5c9029f812599", - "sha256:ea65b59882d5fa8c74a23f8960db579e5e341534934f43f3b18ec1839b893e41", - "sha256:ea93163472db26ac6043e8f7f93a05d9b59e0505c760da2a3cd22c7dd7111391", - "sha256:eab75a8569a095f2ad470b342f2751d9902f7944704f0571c8af46bede438475", - "sha256:ed8313809571a5463fd7db43aaca68ecb43ca7a58f5b23b6e6c6c5d02bdc7882", - "sha256:ef5fddfb264e89c435be4adb3953cef5d2936fdeb4463b4161a6ba2f22e7b740", - "sha256:ef750a20de1b65657a1425f77c525b0183eac63fe7b8f5ac0dd16f3668d3e64f", - "sha256:efb9ece97e696bb56e31166a9dd7919f8f0c6b31967b454718c6509f29ef6fee", - "sha256:f4c179a7aeae10ddf44c6bac87938134c1379c49c884529f090f9bf05566c836", - "sha256:f602881d80ee4228a2355c68da6b296a296cd22bbb91e5418d54577bbf17fa7c", - "sha256:fc2200e79d75b5238c8d69f6a30f8284290c777039d331e7340b6c17cad24a5a", - "sha256:fcc1ebb7561a3e24a6588f7c6ded15d80aec22c66a070c757559b57b17ffd1cb" + "sha256:0525847f83f506aa1e28eb2057b696fe38217e12931c8b1b02198cfe6975e142", + "sha256:05942656cb2cb4989cd50ced52df16be94d344eae5097e8583966a1d27da73a5", + "sha256:0831d3ecdea22e4559cc1793f22e77067c9d8c451d55ae6a75bf1d116a8e7f42", + "sha256:0853da3d5e9bc6a07b2486054a410b7b03f34046c123c6561b535bb48cc509e1", + "sha256:08e6e7ff286254016b945e1ab632ee843e43d45e40683b66dd12b73791366dd1", + "sha256:0a38612d07a36138507d69646c470aedbfe2b75b43a4643f7bd8e51e52779624", + "sha256:0bedd91ae1dd142a4dc15970ed2c729ff6c73f33a40fa84ed0cdbf55de87c777", + "sha256:0c5441b7626c29dbd54a3f6f3713ec8e956b009f419ffdaaa3c80eaf98ddb523", + "sha256:0e9e976e0dbed4f51c56db10831c9623d0fd67aac02853fe5476262e5a22acb7", + "sha256:0fadfdda275c838cba5102c7f90a20f2abd7727bf8f4a2b654a5b617529c5c18", + "sha256:1096ca0bf2d3426cbe79d4ccc91dc5aaa73629b08ea2d8467375fad8447ce11a", + "sha256:171d9a159f1b2f42a42a64a985e4ba46fc7268c78299272ceba970743a67ee50", + "sha256:188912b22b6c8225f4c4ffa020a2baa6ad8fabb3c141a12dbe6edbb34e7f1425", + "sha256:1b4cf9ab9a0ae0cb122685209806d3f1dcb63b9fccdf1424fb42a129dc8c2faa", + "sha256:1e04581c6117ad9479b6cfae313e212fe0dfa226ac727755f0d539cd54792963", + "sha256:1fa73ed22c40a1bec98d7c93b5659cd35abcfa5a0a95ce876b91adbda170537c", + "sha256:2124f9e645a94ab7c853bc0a3644e0ca8ffbe5bb2d72db49aef8f9ec1c285733", + "sha256:240687b5be0f91fbde4936a329c9b7589d9259742766f74de575e1b2046575e4", + "sha256:25740fb56e8bd37692ed380e15ec734be44d7c71974d8993f452b4527814601e", + "sha256:27ccc93c7457ef890b0dd31564d2a05e1aca330623c942b7e818e9e7c2669ee4", + "sha256:281c8b219d4f4b3581b918b816764098d04964915b2f272d1476654143801aa2", + "sha256:2d34a5450a402b00d20aeb7632489ffa2556ca7b26f4a63c35f6fccae1977427", + "sha256:301bd744a1adaa2f6a5e06c98f1ac2b6f8dc31a5c23b838f862d65e32fca0d4b", + "sha256:30e5ce9f501fb1f970e4a59098028cf20676dee64fc496d55c33e04bbbee097d", + "sha256:33ab498f9ac30598b6406e2be1b45fd231195b83d948ebd4bd77f337cb6a2bff", + "sha256:35585a8cb5917161f42c2104567bb83a1d96194095fc54a543113ed5df9fa436", + "sha256:389c0e38358fdc4e38e9995e7291269a3aead7acfcf8942010ee7bc5baee091c", + "sha256:3acadbab8b59f63b87b518e09c4c64b142e7286b9ca7a208107d6f9f4c393c5c", + "sha256:3b7a64d43e2a1fa2dd46b678e00cabd9a49ebb123b339ce799204c44a593ae1c", + "sha256:3c8c0226c71bd0ce9892eaf6afa77ae8f43a3d9313124a03df0b389c01f832de", + "sha256:429349a510da82c85431f0f3e66212d83efe9fd2850f50f339341b6532c62fe4", + "sha256:466030a42724780794dea71eb32db83cc51214d66ab3fb3156edd88b9c8f0d78", + "sha256:47aeceb4363851d17f63069318ba5721ae695d9da55d599b4d6fb31508595278", + "sha256:48aa98987d54a46e13e6954880056c204700c65616af4395d1f0639eba11764b", + "sha256:4b2416ed743ec5debcf61e1242e012652a4348de14ecc7df3512da072b074440", + "sha256:4d0a675a7acbbc16179188d8c6d0afb8628604fc1241faf41007255957335a0b", + "sha256:4eb74d44776b0fb0782560ea84d986dffec8ddd94947f383eba2284b0f32e35e", + "sha256:4f8a1d990dc198a6c68ec3d9a637ba1ce489b38cbfb65440a27901afbc5df575", + "sha256:513ccbf7420c30e283c25c82d5a8f439d625a838d3ba69e79a110c260c46813f", + "sha256:5210a0018c7e09c75fa788648617ebba861ae242944111d3079034e14498223f", + "sha256:54cdfcda59251b9c2f87a05d038c2ae02121219a04d4a1e6fc345794295bdc07", + "sha256:56dd500411d03c5e9927a1eb55621e906837a83b02350a9dc401247d0353717c", + "sha256:57ec6baec231bb19bb5fd5fc7bae21231860a1605174b11585660236627e390e", + "sha256:5f1519b080d8ce0a814f17ad9fb49fb3a1d4d7ce5891f5c85fc38631ca3a8dc4", + "sha256:6174d6ad6b58a6bcf67afbbf1723420a53d06c4b89f4c50763d6fa0a6ac9afd2", + "sha256:68172622a5a57deb079a2c78511c40f91193548e8ab342c31e8cb0764d362459", + "sha256:6915fc9fa6b3ec3569566832e1bb03bd801c12cea030200e68663b9a87974e76", + "sha256:6b75b912a0baa033350367a8a07a8b2d44fd5b90c890bfbd063a8a5f945f644b", + "sha256:6f5dcb658d597410bb7c967c1d24eaf9377b0d621358cbe9d2ff804e5dd12e81", + "sha256:6f8d7fe73d1816eeb5378409adc658f9525ecbfaf9e1ede1e2d67a338b0c7348", + "sha256:7036316cc26b93e401cedd781a579be606dad174829e6ad9e9c5a0da6e036f80", + "sha256:7188ddc1a8887194f984fa4110d5a3d5b9b5cd35f6bafdff1b649049cbc0ce29", + "sha256:761531076df51309075133a6bc1db02d98ec7f66e22b064b1d513bc909f29743", + "sha256:7979d90ee2190d000129598c2b0c82f13053dba432b94e45e68253b09bb1f0f6", + "sha256:8015835494b21aa7abd3b43fdea0614ee35ef6b03db7ecba9beb58eadf01c24f", + "sha256:81c4d1a3a564775c44732b94135d06e33417e829ff25226c164664f4a1046213", + "sha256:81cf9d306c04df1b45971c13167dc3bad625808aa01281d55f3cf852dde0e206", + "sha256:88857060b690a57d2ea8569bca58758143c8faa4639fb17d745ce60ff84c867e", + "sha256:8c567c664fc2f44130a20edac73e0a867f8e012bf7370276f15c6adc3586c37c", + "sha256:91bd2b7cf0f4d252eec8b7046fa6a43cee17e8acdfc00eaa8b3dbf2f9a59d061", + "sha256:9620650c364c01ed5b497dcae7c3d4b948daeae6e1883ae185fef1c927b6b534", + "sha256:9b007c2444705a2dc4a525964fd4dd28c3320b19b3410da6517cab28716f27d3", + "sha256:9bf9acce44e967a5103fcd820fc7580c7b0ab8583eec4e2051aec560f7b31a63", + "sha256:a239303acb0315091d54c7ff36712dba24554993b9a93941cf301391d8a997ee", + "sha256:a2baa6be130e8a00b6cbb9f18a33611ec150b4537f8563bddadb54c1b74b8193", + "sha256:a54917b7e9cd3a67e429a630e237a90b096e0ba18897bfb99ee8bd1068a5fea0", + "sha256:a689e1ded7137552bea36305a7a16ad2b40be511740b80748d3140614993db98", + "sha256:a952ae3eb460c6712388ac2ec706d24b0e651b9396d90c9a9e0a69eb27737fdc", + "sha256:aa32205358a76bf578854bf31698a86dc8b2cb591fd1d79a833283f4a403f04b", + "sha256:b2287c09482949e0ca0c0eb68b2aca6cf57f8af8c6dfd29dcd3bc45f17b57978", + "sha256:b6b0e17d39d21698185097652c611f9cf30f7c56ccec189789920e3e7f1cee56", + "sha256:b710bf7e7ae61957d5c4026b486be593ed3ec3dca3e5be15e0f6d8cf5d0a4990", + "sha256:b8e11715178f3608874508f08e990d3771e0b8c66c73eb4e183038d600a9b274", + "sha256:b92aafcfab3d41580d54aca35a8057341f1cfc7c9af9e8bdfc652f83a20ced31", + "sha256:bec29b801b4adbf388314c0d050e851d53762ab424af22657021ce4b6eb41543", + "sha256:c694bee70ece3b232df4678448fdda245fd3b1bb4ba481fb6cd20e13bb784c46", + "sha256:c6b52b7028b547866c2413f614ee306c2d4eafdd444b1ff656bf3295bf1484aa", + "sha256:cb41ad20064e18a900dd427d7cf41cfaec83bcd1184001f3d91a1f76b3fcea4e", + "sha256:cd316dbcc74c76266ba94eb021b0cc090b97cca122f50bd7a845f587ff4bf03f", + "sha256:ced40cdbb6dd47a032725a038896cceae9ce267d340f59508b23537f05455431", + "sha256:d1c562a9bb72244fa767d1c1ab55ca1d92dd5f7c4d77878fee5483a22ffac808", + "sha256:d389ff1e95b6e46ebedccf7fd1fadd10559add595ac6a7c2ea730268325f832c", + "sha256:d56b1cd606ba4cedd64bb43479d56580e147c6ef3f5d1c5e64203a1adab784a2", + "sha256:d72a4315514e5a0b9837a086cb433b004eea630afb0cc129de76d77654a9606f", + "sha256:d9e7f29c00577aff6b318681e730a519b235af292732a149337f6aaa4d1c5e31", + "sha256:dbc25baa6abb205766fb8606f8263b02c3503a55957fcb4576a6bb0a59d37d10", + "sha256:e57919c32ee295a2fca458bb73e4b20b05c115627f96f95a10f9f5acbd61172d", + "sha256:e5bbe011a2cea9060fef1bb3d668a2fd8432b8888e6d92e74c9c794d3c101595", + "sha256:e6aea5c0eb5b0faf52c7b5c4a47c8bb64437173be97227c819ffa31801fa4e34", + "sha256:e888be685fa42d8b8a3d3911d5604d14db87538aa7d0b29b1a7ea80d354c732d", + "sha256:eebaf8c76c39604d52852366249ab807fe6f7a3ffb0dd5484b9944917244cdbe", + "sha256:efbe0b5e0fd078ed7b005faa0170da4f72666360f66f0bb2d7f73526ecfd99f9", + "sha256:efddca2d02254a52078c35cadad34762adbae3ff01c6b0c7787b59d038b63e0d", + "sha256:f05450fa1cd7c525c0b9d1a7916e595d3041ac0afbed2ff6926e5afb6a781b7f", + "sha256:f12d69d568f5647ec503b64932874dade5a20255736c89936bf690951a5e79f5", + "sha256:f45321224144c25a62052035ce96cbcf264667bcb0d81823b1bbc22c4addd194", + "sha256:f62581d7e884dd01ee1707b7c21148f61f2febb7de092ae2f108743fcbef5985", + "sha256:f8832a4f83d4782a8f5a7b831c47e8ffe164e43c2c148c8160ed9a6d630bc02a", + "sha256:fa35ad36440aaf1ac8332b4a4a433d4acd28f1613f0d480995f5cfd3580e90b7" ], "markers": "python_version >= '3.8'", - "version": "==0.10.3" + "version": "==0.12.0" }, "s3transfer": { "hashes": [ @@ -1152,7 +1186,7 @@ "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==1.16.0" }, "sqlparse": { @@ -1202,26 +1236,26 @@ }, "urllib3": { "hashes": [ - "sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f", - "sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14" + "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84", + "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e" ], "markers": "python_version >= '3.6'", - "version": "==1.26.16" + "version": "==2.0.7" }, "vine": { "hashes": [ - "sha256:4c9dceab6f76ed92105027c49c823800dd33cacce13bdedc5b914e3514b7fb30", - "sha256:7d3b1624a953da82ef63462013bbd271d3eb75751489f9807598e8f340bd637e" + "sha256:40fdf3c48b2cfe1c38a49e9ae2da6fda88e4794c810050a728bd7413811fb1dc", + "sha256:8b62e981d35c41049211cf62a0a1242d8c1ee9bd15bb196ce38aefd6799e61e0" ], "markers": "python_version >= '3.6'", - "version": "==5.0.0" + "version": "==5.1.0" }, "wcwidth": { "hashes": [ - "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e", - "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0" + "sha256:9a929bd8380f6cd9571a968a9c8f4353ca58d7cd812a4822bba831f8d685b223", + "sha256:a675d1a4a2d24ef67096a04b85b02deeecd8e226f57b5e3a72dbb9ed99d27da8" ], - "version": "==0.2.6" + "version": "==0.2.9" }, "whitenoise": { "hashes": [ @@ -1229,6 +1263,7 @@ "sha256:16468e9ad2189f09f4a8c635a9031cc9bb2cdbc8e5e53365407acf99f7ade9ec" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==6.5.0" }, "wrapt": { @@ -1314,6 +1349,14 @@ } }, "develop": { + "appnope": { + "hashes": [ + "sha256:02bd91c4de869fbb1e1c50aafc4098827a7a54ab2f39d9dcba6c9547ed920e24", + "sha256:265a455292d0bd8a72453494fa24df5a11eb18373a60c7c0430889f22548605e" + ], + "markers": "sys_platform == 'darwin'", + "version": "==0.1.3" + }, "asgiref": { "hashes": [ "sha256:89b2ef2247e3b562a16eef663bc0e2e703ec6468e2fa8a5cd61cd449786d4f6e", @@ -1324,10 +1367,10 @@ }, "asttokens": { "hashes": [ - "sha256:2e0171b991b2c959acc6c49318049236844a5da1d65ba2672c4880c1c894834e", - "sha256:cf8fc9e61a86461aa9fb161a14a0841a03c405fa829ac6b202670b3495d2ce69" + "sha256:051ed49c3dcae8913ea7cd08e46a606dba30b79993209636c4875bc1d637bc24", + "sha256:b03869718ba9a6eb027e134bfdf69f38a236d681c83c160d510768af11254ba0" ], - "version": "==2.4.0" + "version": "==2.4.1" }, "autopep8": { "hashes": [ @@ -1370,6 +1413,7 @@ "sha256:d6bc09188020c9ac2555a498949401ab35bb6bf76d4e0f8ee251694664df6301" ], "index": "pypi", + "markers": "python_version >= '3.8'", "version": "==23.9.1" }, "boto3": { @@ -1378,6 +1422,7 @@ "sha256:cda98a2952cccb1db4208c53a1bba6585620fffa0ca05244827ca65884856d1f" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==1.28.50" }, "boto3-stubs": { @@ -1389,24 +1434,24 @@ "sha256:3ed562ac3f4e3e7857da6fe31d5dfe94ae2cc122337773fe8c59629dd1c1760e", "sha256:e4060c3381a5753db7824d9ea46a0a92c69be5df414f0efcc839507d94aaa4d6" ], - "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==1.28.50" }, "botocore": { "hashes": [ - "sha256:5038a407783ea394aaf0671d1086cf55cc1e7c303e1fac244b76adc78cc7ef07", - "sha256:a1343f2e38ea86e11247d61bd37a9d5656c16186f4a21b482c713589a054c605" + "sha256:1c693c0f8b2553fcbe0df223241191e6f9f60b4245d65c1822c08f659274fef2", + "sha256:d43fe303530c12efca9be4ec3a9104e8a669f11d1ba9feb18f0284d751a9672c" ], "markers": "python_version >= '3.7'", - "version": "==1.31.50" + "version": "==1.31.80" }, "botocore-stubs": { "hashes": [ - "sha256:b0ba8d9fa627c8e06c7b76c5c91cd0b1e529042805dab86ca6b47674162251db", - "sha256:ed728773c01ab93f1c0ee9bb47742d58e1bdf89b0806b0e2a4fbd99fc9979d27" + "sha256:72472310a21171425f738fe13c26fc2fa0a890bbaf8bb89f82d464e9acb9dd2c", + "sha256:873349ae1d5dc306e08be41eb890d907074b4369bbff9a65e1247c3752923429" ], "markers": "python_version >= '3.7' and python_version < '4.0'", - "version": "==1.31.50" + "version": "==1.31.80" }, "certifi": { "hashes": [ @@ -1426,84 +1471,99 @@ }, "charset-normalizer": { "hashes": [ - "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96", - "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c", - "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710", - "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706", - "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020", - "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252", - "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad", - "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329", - "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a", - "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f", - "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6", - "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4", - "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a", - "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46", - "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2", - "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23", - "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace", - "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd", - "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982", - "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10", - "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2", - "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea", - "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09", - "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5", - "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149", - "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489", - "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9", - "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80", - "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592", - "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3", - "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6", - "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed", - "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c", - "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200", - "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a", - "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e", - "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d", - "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6", - "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623", - "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669", - "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3", - "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa", - "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9", - "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2", - "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f", - "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1", - "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4", - "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a", - "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8", - "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3", - "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029", - "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f", - "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959", - "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22", - "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7", - "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952", - "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346", - "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e", - "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d", - "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299", - "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd", - "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a", - "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3", - "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037", - "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94", - "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c", - "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858", - "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a", - "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449", - "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c", - "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918", - "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1", - "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c", - "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac", - "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa" - ], - "markers": "python_version >= '3.7'", - "version": "==3.2.0" + "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027", + "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087", + "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786", + "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8", + "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09", + "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185", + "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574", + "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e", + "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519", + "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898", + "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269", + "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3", + "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f", + "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6", + "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8", + "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a", + "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73", + "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", + "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714", + "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2", + "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc", + "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce", + "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d", + "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e", + "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6", + "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269", + "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96", + "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d", + "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a", + "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4", + "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77", + "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d", + "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0", + "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed", + "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068", + "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac", + "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25", + "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8", + "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab", + "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26", + "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2", + "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db", + "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f", + "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5", + "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99", + "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c", + "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d", + "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811", + "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa", + "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a", + "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03", + "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b", + "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04", + "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c", + "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001", + "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458", + "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389", + "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99", + "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985", + "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537", + "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238", + "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f", + "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d", + "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796", + "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a", + "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143", + "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8", + "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c", + "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5", + "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5", + "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711", + "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4", + "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6", + "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c", + "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7", + "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4", + "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b", + "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae", + "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12", + "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c", + "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae", + "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8", + "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887", + "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b", + "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4", + "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f", + "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5", + "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33", + "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519", + "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561" + ], + "markers": "python_full_version >= '3.7.0'", + "version": "==3.3.2" }, "click": { "hashes": [ @@ -1569,6 +1629,7 @@ "sha256:f4f456590eefb6e1b3c9ea6328c1e9fa0f1006e7481179d749b3376fc793478e" ], "index": "pypi", + "markers": "python_version >= '3.8'", "version": "==7.3.1" }, "debugpy": { @@ -1597,6 +1658,7 @@ "sha256:f6de2e6f24f62969e0f0ef682d78c98161c4dca29e9fb05df4d2989005005502" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==1.7.0" }, "decorator": { @@ -1620,6 +1682,7 @@ "sha256:b6b2b5cae821077f137dc4dade696a1c2aa292f892eca28fa8d7bfdf2608ddd4" ], "index": "pypi", + "markers": "python_version >= '3.8'", "version": "==4.2.5" }, "django-coverage-plugin": { @@ -1636,6 +1699,7 @@ "sha256:bc7fdaafafcdedefcc67a4a5ad9dac96efd6e41db15bc74d402a54a2ba4854dc" ], "index": "pypi", + "markers": "python_version >= '3.8'", "version": "==4.2.0" }, "django-extensions": { @@ -1644,6 +1708,7 @@ "sha256:9600b7562f79a92cbf1fde6403c04fee314608fefbb595502e34383ae8203401" ], "index": "pypi", + "markers": "python_version >= '3.6'", "version": "==3.2.3" }, "django-silk": { @@ -1652,6 +1717,7 @@ "sha256:50552f06d9306d06517fbeab9a2c74856355e06304f03ed16b6dd353f7c77e7a" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==5.0.3" }, "django-stubs": { @@ -1660,15 +1726,16 @@ "sha256:834b60fd81510cce6b56c1c6c28bec3c504a418bc90ff7d0063fabe8ab9a7868" ], "index": "pypi", + "markers": "python_version >= '3.8'", "version": "==4.2.4" }, "django-stubs-ext": { "hashes": [ - "sha256:c69d1cc46f1c4c3b7894b685a5022c29b2a36c7cfb52e23762eaf357ebfc2c98", - "sha256:fdacc65a14d2d4b97334b58ff178a5853ec8c8c76cec406e417916ad67536ce4" + "sha256:8c4d1fb5f68419b3b2474c659681a189803e27d6a5e5abf5aa0da57601b58633", + "sha256:921cd7ae4614e74c234bc0fe86ee75537d163addfe1fc6f134bf03e29d86c01e" ], "markers": "python_version >= '3.8'", - "version": "==4.2.2" + "version": "==4.2.5" }, "djangorestframework-stubs": { "hashes": [ @@ -1676,14 +1743,16 @@ "sha256:4a9169253d2d46885a007c085d64e96efc8a78bd938c747e9ad0654725c4e7d0" ], "index": "pypi", + "markers": "python_version >= '3.8'", "version": "==3.14.2" }, "executing": { "hashes": [ - "sha256:0314a69e37426e3608aada02473b4161d4caf5a4b244d1d0c48072b8fee7bacc", - "sha256:19da64c18d2d851112f09c287f8d3dbbdf725ab0e569077efb6cdcbd3497c107" + "sha256:35afe2ce3affba8ee97f2d69927fa823b08b472b7b994e36a52a964b93d16147", + "sha256:eac49ca94516ccc753f9fb5ce82603156e590b27525a8bc32cce8ae302eb61bc" ], - "version": "==1.2.0" + "markers": "python_version >= '3.5'", + "version": "==2.0.1" }, "factory-boy": { "hashes": [ @@ -1691,23 +1760,24 @@ "sha256:bc76d97d1a65bbd9842a6d722882098eb549ec8ee1081f9fb2e8ff29f0c300f1" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==3.3.0" }, "faker": { "hashes": [ - "sha256:5d6b7880b3bea708075ddf91938424453f07053a59f8fa0453c1870df6ff3292", - "sha256:64c8513c53c3a809075ee527b323a0ba61517814123f3137e4912f5d43350139" + "sha256:14ccb0aec342d33aa3889a864a56e5b3c2d56bce1b89f9189f4fbc128b9afc1e", + "sha256:da880a76322db7a879c848a0771e129338e0a680a9f695fd9a3e7a6ac82b45e1" ], "markers": "python_version >= '3.8'", - "version": "==19.6.1" + "version": "==19.13.0" }, "filelock": { "hashes": [ - "sha256:08c21d87ded6e2b9da6728c3dff51baf1dcecf973b768ef35bcbc3447edb9ad4", - "sha256:2e6f249f1f3654291606e046b09f1fd5eac39b360664c27f5aad072012f8bcbd" + "sha256:521f5f56c50f8426f5e03ad3b281b490a87ef15bc6c526f168290f0c7148d44e", + "sha256:57dbda9b35157b05fb3e58ee91448612eb674172fab98ee235ccb0b5bee19a1c" ], "markers": "python_version >= '3.8'", - "version": "==3.12.4" + "version": "==3.13.1" }, "flake8": { "hashes": [ @@ -1715,6 +1785,7 @@ "sha256:ffdfce58ea94c6580c77888a86506937f9a1a227dfcd15f245d694ae20a6b6e5" ], "index": "pypi", + "markers": "python_full_version >= '3.8.1'", "version": "==6.1.0" }, "freezegun": { @@ -1723,6 +1794,7 @@ "sha256:ea1b963b993cb9ea195adbd893a48d573fda951b0da64f60883d7e988b606c9f" ], "index": "pypi", + "markers": "python_version >= '3.6'", "version": "==1.2.2" }, "gprof2dot": { @@ -1735,11 +1807,11 @@ }, "identify": { "hashes": [ - "sha256:24437fbf6f4d3fe6efd0eb9d67e24dd9106db99af5ceb27996a5f7895f24bf1b", - "sha256:d43d52b86b15918c137e3a74fff5224f60385cd0e9c38e99d07c257f02f151a5" + "sha256:7736b3c7a28233637e3c36550646fc6389bedd74ae84cb788200cc8e2dd60b75", + "sha256:90199cb9e7bd3c5407a9b7e81b4abec4bb9d249991c79439ec8af740afc6293d" ], "markers": "python_version >= '3.8'", - "version": "==2.5.29" + "version": "==2.5.31" }, "idna": { "hashes": [ @@ -1755,6 +1827,7 @@ "sha256:45a2c3a529296870a97b7de34eda4a31bee16bc7bf954e07d39abe49caf8f887" ], "index": "pypi", + "markers": "python_version >= '3.9'", "version": "==8.15.0" }, "isort": { @@ -1763,15 +1836,16 @@ "sha256:f84c2818376e66cf843d497486ea8fed8700b340f308f076c6fb1229dff318b6" ], "index": "pypi", + "markers": "python_full_version >= '3.8.0'", "version": "==5.12.0" }, "jedi": { "hashes": [ - "sha256:bcf9894f1753969cbac8022a8c2eaee06bfa3724e4192470aaffe7eb6272b0c4", - "sha256:cb8ce23fbccff0025e9386b5cf85e892f94c9b822378f8da49970471335ac64e" + "sha256:cf0496f3651bc65d7174ac1b7d043eff454892c708a87d1b683e57b569927ffd", + "sha256:e983c654fe5c02867aef4cdfce5a2fbb4a50adc0af145f70504238f18ef5e7e0" ], "markers": "python_version >= '3.6'", - "version": "==0.19.0" + "version": "==0.19.1" }, "jmespath": { "hashes": [ @@ -1894,14 +1968,15 @@ "sha256:ff0cedc84184115202475bbb46dd99f8dcb87fe24d5d0ddfc0fe6b8575c88d2f" ], "index": "pypi", + "markers": "python_version >= '3.8'", "version": "==1.5.1" }, "mypy-boto3-s3": { "hashes": [ - "sha256:44da375fd4d75b1c5ccc26dcd3be48294c7061445efd6d90ebfca43ffebbb3e4", - "sha256:d0e90074e4043edf420292397012e37309ff204442a0874d8c969f56546be665" + "sha256:11a3db97398973d4ae28489b94c010778a0a5c65f99e00268456c3fea67eca79", + "sha256:b008809f448e74075012d4fc54b0176de0b4f49bc38e39de30ca0e764eb75056" ], - "version": "==1.28.36" + "version": "==1.28.55" }, "mypy-extensions": { "hashes": [ @@ -1921,11 +1996,11 @@ }, "packaging": { "hashes": [ - "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61", - "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f" + "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5", + "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7" ], "markers": "python_version >= '3.7'", - "version": "==23.1" + "version": "==23.2" }, "parso": { "hashes": [ @@ -1960,11 +2035,11 @@ }, "platformdirs": { "hashes": [ - "sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d", - "sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d" + "sha256:cf8ee52a3afdb965072dcc652433e0c7e3e40cf5ea1477cd4b3b1d2eb75495b3", + "sha256:e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e" ], "markers": "python_version >= '3.7'", - "version": "==3.10.0" + "version": "==3.11.0" }, "pre-commit": { "hashes": [ @@ -1972,6 +2047,7 @@ "sha256:96d529a951f8b677f730a7212442027e8ba53f9b04d217c4c67dc56c393ad945" ], "index": "pypi", + "markers": "python_version >= '3.8'", "version": "==3.4.0" }, "prompt-toolkit": { @@ -1979,7 +2055,7 @@ "sha256:04505ade687dc26dc4284b1ad19a83be2f2afe83e7a828ace0c72f3a1df72aac", "sha256:9dffbe1d8acf91e3de75f3b544e4842382fc06c6babe903ac9acb74dc6e08d88" ], - "markers": "python_version >= '3.7'", + "markers": "python_full_version >= '3.7.0'", "version": "==3.0.39" }, "ptyprocess": { @@ -1998,11 +2074,11 @@ }, "pycodestyle": { "hashes": [ - "sha256:259bcc17857d8a8b3b4a2327324b79e5f020a13c16074670f9c8c8f872ea76d0", - "sha256:5d1013ba8dc7895b548be5afb05740ca82454fd899971563d2ef625d090326f8" + "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f", + "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67" ], "markers": "python_version >= '3.8'", - "version": "==2.11.0" + "version": "==2.11.1" }, "pyflakes": { "hashes": [ @@ -2025,7 +2101,7 @@ "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==2.8.2" }, "pyyaml": { @@ -2090,6 +2166,7 @@ "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==2.31.0" }, "s3transfer": { @@ -2113,7 +2190,7 @@ "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254" ], - "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'", + "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'", "version": "==1.16.0" }, "sqlparse": { @@ -2126,10 +2203,10 @@ }, "stack-data": { "hashes": [ - "sha256:32d2dd0376772d01b6cb9fc996f3c8b57a357089dec328ed4b6553d037eaf815", - "sha256:cbb2a53eb64e5785878201a97ed7c7b94883f48b87bfb0bbe8b623c74679e4a8" + "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", + "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695" ], - "version": "==0.6.2" + "version": "==0.6.3" }, "tblib": { "hashes": [ @@ -2137,52 +2214,54 @@ "sha256:a6df30f272c08bf8be66e0775fad862005d950a6b8449b94f7c788731d70ecd7" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==2.0.0" }, "traitlets": { "hashes": [ - "sha256:417745a96681fbb358e723d5346a547521f36e9bd0d50ba7ab368fff5d67aa54", - "sha256:f584ea209240466e66e91f3c81aa7d004ba4cf794990b0c775938a1544217cd1" + "sha256:9b232b9430c8f57288c1024b34a8f0251ddcc47268927367a0dd3eeaca40deb5", + "sha256:baf991e61542da48fe8aef8b779a9ea0aa38d8a54166ee250d5af5ecf4486619" ], "markers": "python_version >= '3.8'", - "version": "==5.10.0" + "version": "==5.13.0" }, "types-awscrt": { "hashes": [ - "sha256:61833aa140e724a9098025610f4b8cde3dcf65b842631d7447378f9f5db4e1fd", - "sha256:68fffeb75396e9e7614cd930b2d52295f680230774750907bcafb56f11514043" + "sha256:4eb4f3bd0c41a2710cacda13098374da9faa76c5a0fb901aa5659e0fd48ceda1", + "sha256:a2d534b7017c3476ee69a44bd8aeaf3b588c42baa8322473d100a45ee67510d7" ], "markers": "python_version >= '3.7' and python_version < '4.0'", - "version": "==0.19.1" + "version": "==0.19.8" }, "types-pytz": { "hashes": [ - "sha256:8e7d2198cba44a72df7628887c90f68a568e1445f14db64631af50c3cab8c090", - "sha256:a660a38ed86d45970603e4f3b4877c7ba947668386a896fb5d9589c17e7b8407" + "sha256:1999a123a3dc0e39a2ef6d19f3f8584211de9e6a77fe7a0259f04a524e90a5cf", + "sha256:cc23d0192cd49c8f6bba44ee0c81e4586a8f30204970fc0894d209a6b08dab9a" ], - "version": "==2023.3.1.0" + "version": "==2023.3.1.1" }, "types-pyyaml": { "hashes": [ - "sha256:7d340b19ca28cddfdba438ee638cd4084bde213e501a3978738543e27094775b", - "sha256:a461508f3096d1d5810ec5ab95d7eeecb651f3a15b71959999988942063bf01d" + "sha256:334373d392fde0fdf95af5c3f1661885fa10c52167b14593eb856289e1855062", + "sha256:c05bc6c158facb0676674b7f11fe3960db4f389718e19e62bd2b84d6205cfd24" ], - "version": "==6.0.12.11" + "version": "==6.0.12.12" }, "types-requests": { "hashes": [ - "sha256:56d181c85b5925cbc59f4489a57e72a8b2166f18273fd8ba7b6fe0c0b986f12a", - "sha256:6aa3f7faf0ea52d728bb18c0a0d1522d9bfd8c72d26ff6f61bfc3d06a411cf40" + "sha256:a2db9cb228a81da8348b49ad6db3f5519452dd20a9c1e1a868c83c5fe88fd1a9", + "sha256:cd74ce3b53c461f1228a9b783929ac73a666658f223e28ed29753771477b3bd0" ], - "version": "==2.31.0.2" + "markers": "python_version >= '3.7'", + "version": "==2.31.0.6" }, "types-s3transfer": { "hashes": [ - "sha256:1068877b6e59be5226fa3006ae64371ac9d5bc590dfdbd9c66fd0a075d3254ac", - "sha256:4ba9b483796fdcd026aa162ee03bdcedd2bf7d08e9387c820dcdd158b0102057" + "sha256:aca0f2486d0a3a5037cd5b8f3e20a4522a29579a8dd183281ff0aa1c4e2c8aa7", + "sha256:ae9ed9273465d9f43da8b96307383da410c6b59c3b2464c88d20b578768e97c6" ], "markers": "python_version >= '3.7' and python_version < '4.0'", - "version": "==0.6.2" + "version": "==0.7.0" }, "types-urllib3": { "hashes": [ @@ -2201,19 +2280,19 @@ }, "urllib3": { "hashes": [ - "sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f", - "sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14" + "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84", + "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e" ], "markers": "python_version >= '3.6'", - "version": "==1.26.16" + "version": "==2.0.7" }, "virtualenv": { "hashes": [ - "sha256:b80039f280f4919c77b30f1c23294ae357c4c8701042086e3fc005963e4e537b", - "sha256:e8361967f6da6fbdf1426483bfe9fca8287c242ac0bc30429905721cefbff752" + "sha256:02ece4f56fbf939dbbc33c0715159951d6bf14aaf5457b092e4548e1382455af", + "sha256:520d056652454c5098a00c0f073611ccbea4c79089331f60bf9d7ba247bb7381" ], "markers": "python_version >= '3.7'", - "version": "==20.24.5" + "version": "==20.24.6" }, "watchdog": { "hashes": [ @@ -2246,14 +2325,15 @@ "sha256:d429c2430c93b7903914e4db9a966c7f2b068dd2ebdd2fa9b9ce094c7d459f33" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==3.0.0" }, "wcwidth": { "hashes": [ - "sha256:795b138f6875577cd91bba52baf9e445cd5118fd32723b460e30a0af30ea230e", - "sha256:a5220780a404dbe3353789870978e472cfe477761f06ee55077256e509b156d0" + "sha256:9a929bd8380f6cd9571a968a9c8f4353ca58d7cd812a4822bba831f8d685b223", + "sha256:a675d1a4a2d24ef67096a04b85b02deeecd8e226f57b5e3a72dbb9ed99d27da8" ], - "version": "==0.2.6" + "version": "==0.2.9" }, "werkzeug": { "hashes": [ @@ -2261,6 +2341,7 @@ "sha256:effc12dba7f3bd72e605ce49807bbe692bd729c3bb122a3b91747a6ae77df528" ], "index": "pypi", + "markers": "python_version >= '3.8'", "version": "==2.3.7" } }, @@ -2275,11 +2356,11 @@ }, "babel": { "hashes": [ - "sha256:04c3e2d28d2b7681644508f836be388ae49e0cfe91465095340395b60d00f210", - "sha256:fbfcae1575ff78e26c7449136f1abbefc3c13ce542eeb13d43d50d8b047216ec" + "sha256:33e0952d7dd6374af8dbf6768cc4ddf3ccfefc244f9986d4074704f2fbd18900", + "sha256:7077a4984b02b6727ac10f1f7294484f737443d7e2e66c5e4380e41a3ae0b4ed" ], "markers": "python_version >= '3.7'", - "version": "==2.13.0" + "version": "==2.13.1" }, "beautifulsoup4": { "hashes": [ @@ -2299,84 +2380,99 @@ }, "charset-normalizer": { "hashes": [ - "sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96", - "sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c", - "sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710", - "sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706", - "sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020", - "sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252", - "sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad", - "sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329", - "sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a", - "sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f", - "sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6", - "sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4", - "sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a", - "sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46", - "sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2", - "sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23", - "sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace", - "sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd", - "sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982", - "sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10", - "sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2", - "sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea", - "sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09", - "sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5", - "sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149", - "sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489", - "sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9", - "sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80", - "sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592", - "sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3", - "sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6", - "sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed", - "sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c", - "sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200", - "sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a", - "sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e", - "sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d", - "sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6", - "sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623", - "sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669", - "sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3", - "sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa", - "sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9", - "sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2", - "sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f", - "sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1", - "sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4", - "sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a", - "sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8", - "sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3", - "sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029", - "sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f", - "sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959", - "sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22", - "sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7", - "sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952", - "sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346", - "sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e", - "sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d", - "sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299", - "sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd", - "sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a", - "sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3", - "sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037", - "sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94", - "sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c", - "sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858", - "sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a", - "sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449", - "sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c", - "sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918", - "sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1", - "sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c", - "sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac", - "sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa" - ], - "markers": "python_version >= '3.7'", - "version": "==3.2.0" + "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027", + "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087", + "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786", + "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8", + "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09", + "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185", + "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574", + "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e", + "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519", + "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898", + "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269", + "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3", + "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f", + "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6", + "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8", + "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a", + "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73", + "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", + "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714", + "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2", + "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc", + "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce", + "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d", + "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e", + "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6", + "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269", + "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96", + "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d", + "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a", + "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4", + "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77", + "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d", + "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0", + "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed", + "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068", + "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac", + "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25", + "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8", + "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab", + "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26", + "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2", + "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db", + "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f", + "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5", + "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99", + "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c", + "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d", + "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811", + "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa", + "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a", + "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03", + "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b", + "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04", + "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c", + "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001", + "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458", + "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389", + "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99", + "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985", + "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537", + "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238", + "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f", + "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d", + "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796", + "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a", + "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143", + "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8", + "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c", + "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5", + "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5", + "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711", + "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4", + "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6", + "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c", + "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7", + "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4", + "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b", + "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae", + "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12", + "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c", + "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae", + "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8", + "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887", + "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b", + "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4", + "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f", + "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5", + "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33", + "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519", + "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561" + ], + "markers": "python_full_version >= '3.7.0'", + "version": "==3.3.2" }, "docutils": { "hashes": [ @@ -2487,11 +2583,11 @@ }, "packaging": { "hashes": [ - "sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61", - "sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f" + "sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5", + "sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7" ], "markers": "python_version >= '3.7'", - "version": "==23.1" + "version": "==23.2" }, "pygments": { "hashes": [ @@ -2507,6 +2603,7 @@ "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1" ], "index": "pypi", + "markers": "python_version >= '3.7'", "version": "==2.31.0" }, "snowballstemmer": { @@ -2591,11 +2688,11 @@ }, "urllib3": { "hashes": [ - "sha256:8d36afa7616d8ab714608411b4a3b13e58f463aee519024578e062e141dce20f", - "sha256:8f135f6502756bde6b2a9b28989df5fbe87c9970cecaa69041edcce7f0589b14" + "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84", + "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e" ], "markers": "python_version >= '3.6'", - "version": "==1.26.16" + "version": "==2.0.7" } } } From 46341e13cc4fb43b07b30bd6a41a343cebbac0d0 Mon Sep 17 00:00:00 2001 From: Aakash Singh Date: Thu, 7 Dec 2023 23:20:33 +0530 Subject: [PATCH 08/27] add DenominationValidator to validate dosage fields in Prescription model (#1716) * Add DosageValidator to Prescription model * make the validator more generic * fix migrations * update migrations --- ...0398_alter_prescription_dosage_and_more.py | 50 ++++ care/facility/models/prescription.py | 9 +- .../test_medicine_administrations_api.py | 110 -------- care/facility/tests/test_medicine_api.py | 236 ++++++++++++++++++ care/utils/models/validators.py | 84 +++++++ .../tests/test_denomination_validator.py | 19 ++ 6 files changed, 396 insertions(+), 112 deletions(-) create mode 100644 care/facility/migrations/0398_alter_prescription_dosage_and_more.py delete mode 100644 care/facility/tests/test_medicine_administrations_api.py create mode 100644 care/facility/tests/test_medicine_api.py create mode 100644 care/utils/tests/test_denomination_validator.py diff --git a/care/facility/migrations/0398_alter_prescription_dosage_and_more.py b/care/facility/migrations/0398_alter_prescription_dosage_and_more.py new file mode 100644 index 0000000000..3fb3241a50 --- /dev/null +++ b/care/facility/migrations/0398_alter_prescription_dosage_and_more.py @@ -0,0 +1,50 @@ +# Generated by Django 4.2.5 on 2023-12-06 13:06 + +from django.db import migrations, models + +import care.utils.models.validators + + +class Migration(migrations.Migration): + dependencies = [ + ("facility", "0397_truncate_discharge_time"), + ] + + operations = [ + migrations.AlterField( + model_name="prescription", + name="dosage", + field=models.CharField( + blank=True, + max_length=100, + null=True, + validators=[ + care.utils.models.validators.DenominationValidator( + allow_floats=True, + max_amount=5000, + min_amount=0.0001, + precision=4, + units={"mg", "g", "ml", "tsp", "ampule(s)", "drop(s)"}, + ) + ], + ), + ), + migrations.AlterField( + model_name="prescription", + name="max_dosage", + field=models.CharField( + blank=True, + max_length=100, + null=True, + validators=[ + care.utils.models.validators.DenominationValidator( + allow_floats=True, + max_amount=5000, + min_amount=0.0001, + precision=4, + units={"mg", "g", "ml", "tsp", "ampule(s)", "drop(s)"}, + ) + ], + ), + ), + ] diff --git a/care/facility/models/prescription.py b/care/facility/models/prescription.py index fc05467f4e..3a7eac5190 100644 --- a/care/facility/models/prescription.py +++ b/care/facility/models/prescription.py @@ -7,6 +7,7 @@ from care.facility.models.patient_consultation import PatientConsultation from care.utils.models.base import BaseModel +from care.utils.models.validators import dosage_validator class FrequencyEnum(enum.Enum): @@ -92,7 +93,9 @@ class Prescription(BaseModel): blank=True, null=True, ) - dosage = models.CharField(max_length=100, blank=True, null=True) + dosage = models.CharField( + max_length=100, blank=True, null=True, validators=[dosage_validator] + ) is_prn = models.BooleanField(default=False) @@ -107,7 +110,9 @@ class Prescription(BaseModel): # prn fields indicator = models.TextField(blank=True, null=True) - max_dosage = models.CharField(max_length=100, blank=True, null=True) + max_dosage = models.CharField( + max_length=100, blank=True, null=True, validators=[dosage_validator] + ) min_hours_between_doses = models.IntegerField(blank=True, null=True) notes = models.TextField(default="", blank=True) diff --git a/care/facility/tests/test_medicine_administrations_api.py b/care/facility/tests/test_medicine_administrations_api.py deleted file mode 100644 index dd99877261..0000000000 --- a/care/facility/tests/test_medicine_administrations_api.py +++ /dev/null @@ -1,110 +0,0 @@ -from django.utils import timezone -from rest_framework import status -from rest_framework.test import APITestCase - -from care.facility.models import MedibaseMedicine, Prescription -from care.utils.tests.test_utils import TestUtils - - -class MedicineAdministrationsApiTestCase(TestUtils, APITestCase): - @classmethod - def setUpTestData(cls) -> None: - cls.state = cls.create_state() - cls.district = cls.create_district(cls.state) - cls.local_body = cls.create_local_body(cls.district) - cls.super_user = cls.create_super_user("su", cls.district) - cls.facility = cls.create_facility(cls.super_user, cls.district, cls.local_body) - cls.user = cls.create_user("staff1", cls.district, home_facility=cls.facility) - cls.patient = cls.create_patient( - cls.district, cls.facility, local_body=cls.local_body - ) - - def setUp(self) -> None: - super().setUp() - self.normal_prescription = self.create_prescription() - - def create_prescription(self, **kwargs): - data = { - "consultation": self.create_consultation(self.patient, self.facility), - "medicine": MedibaseMedicine.objects.first(), - "prescription_type": "REGULAR", - "dosage": "1 mg", - "frequency": "OD", - "is_prn": False, - } - return Prescription.objects.create( - **{**data, **kwargs, "prescribed_by": self.user} - ) - - def test_administer_and_archive(self): - # test administer - prescription = self.normal_prescription - res = self.client.post( - f"/api/v1/consultation/{prescription.consultation.external_id}/prescriptions/{prescription.external_id}/administer/", - {"notes": "Test Notes"}, - ) - self.assertEqual(res.status_code, status.HTTP_201_CREATED) - - administration_id = res.data["id"] - - # test archive - archive_path = f"/api/v1/consultation/{prescription.consultation.external_id}/prescription_administration/{administration_id}/archive/" - res = self.client.post(archive_path, {}) - self.assertEqual(res.status_code, status.HTTP_200_OK) - - # test archive again - res = self.client.post(archive_path, {}) - self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST) - - # test list administrations - res = self.client.get( - f"/api/v1/consultation/{prescription.consultation.external_id}/prescription_administration/" - ) - self.assertEqual(res.status_code, status.HTTP_200_OK) - self.assertTrue( - any([administration_id == x["id"] for x in res.data["results"]]) - ) - - # test archived list administrations - res = self.client.get( - f"/api/v1/consultation/{prescription.consultation.external_id}/prescription_administration/?archived=true" - ) - self.assertEqual(res.status_code, status.HTTP_200_OK) - self.assertTrue( - any([administration_id == x["id"] for x in res.data["results"]]) - ) - - # test archived list administrations - res = self.client.get( - f"/api/v1/consultation/{prescription.consultation.external_id}/prescription_administration/?archived=false" - ) - self.assertEqual(res.status_code, status.HTTP_200_OK) - self.assertFalse( - any([administration_id == x["id"] for x in res.data["results"]]) - ) - - def test_administer_in_future(self): - prescription = self.normal_prescription - res = self.client.post( - f"/api/v1/consultation/{prescription.consultation.external_id}/prescriptions/{prescription.external_id}/administer/", - {"notes": "Test Notes", "administered_date": "2300-09-01T16:34"}, - ) - self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST) - - def test_administer_in_past(self): - prescription = self.normal_prescription - res = self.client.post( - f"/api/v1/consultation/{prescription.consultation.external_id}/prescriptions/{prescription.external_id}/administer/", - {"notes": "Test Notes", "administered_date": "2019-09-01T16:34"}, - ) - self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST) - - def test_administer_discontinued(self): - prescription = self.create_prescription( - discontinued=True, discontinued_date=timezone.now() - ) - res = self.client.post( - f"/api/v1/consultation/{prescription.consultation.external_id}/prescriptions/{prescription.external_id}/administer/", - {"notes": "Test Notes"}, - ) - self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST) diff --git a/care/facility/tests/test_medicine_api.py b/care/facility/tests/test_medicine_api.py new file mode 100644 index 0000000000..a34e73c43b --- /dev/null +++ b/care/facility/tests/test_medicine_api.py @@ -0,0 +1,236 @@ +from django.utils import timezone +from rest_framework import status +from rest_framework.test import APITestCase + +from care.facility.models import MedibaseMedicine, Prescription +from care.utils.tests.test_utils import TestUtils + + +class MedicinePrescriptionApiTestCase(TestUtils, APITestCase): + @classmethod + def setUpTestData(cls) -> None: + cls.state = cls.create_state() + cls.district = cls.create_district(cls.state) + cls.local_body = cls.create_local_body(cls.district) + cls.super_user = cls.create_super_user("su", cls.district) + cls.facility = cls.create_facility(cls.super_user, cls.district, cls.local_body) + cls.user = cls.create_user("staff1", cls.district, home_facility=cls.facility) + cls.patient = cls.create_patient( + cls.district, cls.facility, local_body=cls.local_body + ) + cls.consultation = cls.create_consultation(cls.patient, cls.facility) + meds = MedibaseMedicine.objects.all().values_list("external_id", flat=True)[:2] + cls.medicine1 = str(meds[0]) + + def setUp(self) -> None: + super().setUp() + + def prescription_data(self, **kwargs): + data = { + "medicine": self.medicine1, + "prescription_type": "REGULAR", + "dosage": "1 mg", + "frequency": "OD", + "is_prn": False, + } + return {**data, **kwargs} + + def test_invalid_dosage(self): + data = self.prescription_data(dosage="abc") + res = self.client.post( + f"/api/v1/consultation/{self.consultation.external_id}/prescriptions/", + data, + ) + self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST) + self.assertEqual( + res.json()["dosage"][0], + "Invalid Input, must be in the format: ", + ) + + def test_dosage_out_of_range(self): + data = self.prescription_data(dosage="10000 mg") + res = self.client.post( + f"/api/v1/consultation/{self.consultation.external_id}/prescriptions/", + data, + ) + self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST) + self.assertEqual( + res.json()["dosage"][0], + "Input amount must be between 0.0001 and 5000", + ) + + data = self.prescription_data(dosage="-1 mg") + res = self.client.post( + f"/api/v1/consultation/{self.consultation.external_id}/prescriptions/", + data, + ) + self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST) + self.assertEqual( + res.json()["dosage"][0], + "Input amount must be between 0.0001 and 5000", + ) + + def test_dosage_precision(self): + data = self.prescription_data(dosage="0.300003 mg") + res = self.client.post( + f"/api/v1/consultation/{self.consultation.external_id}/prescriptions/", + data, + ) + self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST) + self.assertEqual( + res.json()["dosage"][0], + "Input amount must have at most 4 decimal places", + ) + + def test_dosage_unit_invalid(self): + data = self.prescription_data(dosage="1 abc") + res = self.client.post( + f"/api/v1/consultation/{self.consultation.external_id}/prescriptions/", + data, + ) + self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST) + self.assertTrue(res.json()["dosage"][0].startswith("Unit must be one of")) + + def test_dosage_leading_zero(self): + data = self.prescription_data(dosage="01 mg") + res = self.client.post( + f"/api/v1/consultation/{self.consultation.external_id}/prescriptions/", + data, + ) + self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST) + self.assertEqual( + res.json()["dosage"][0], + "Input amount must be a valid number without leading or trailing zeroes", + ) + + def test_dosage_trailing_zero(self): + data = self.prescription_data(dosage="1.0 mg") + res = self.client.post( + f"/api/v1/consultation/{self.consultation.external_id}/prescriptions/", + data, + ) + self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST) + self.assertEqual( + res.json()["dosage"][0], + "Input amount must be a valid number without leading or trailing zeroes", + ) + + def test_dosage_validator_clean(self): + data = self.prescription_data(dosage=" 1 mg ") + res = self.client.post( + f"/api/v1/consultation/{self.consultation.external_id}/prescriptions/", + data, + ) + self.assertEqual(res.status_code, status.HTTP_201_CREATED) + + def test_valid_dosage(self): + data = self.prescription_data(dosage="1 mg") + res = self.client.post( + f"/api/v1/consultation/{self.consultation.external_id}/prescriptions/", + data, + ) + self.assertEqual(res.status_code, status.HTTP_201_CREATED) + + +class MedicineAdministrationsApiTestCase(TestUtils, APITestCase): + @classmethod + def setUpTestData(cls) -> None: + cls.state = cls.create_state() + cls.district = cls.create_district(cls.state) + cls.local_body = cls.create_local_body(cls.district) + cls.super_user = cls.create_super_user("su", cls.district) + cls.facility = cls.create_facility(cls.super_user, cls.district, cls.local_body) + cls.user = cls.create_user("staff1", cls.district, home_facility=cls.facility) + cls.patient = cls.create_patient( + cls.district, cls.facility, local_body=cls.local_body + ) + + def setUp(self) -> None: + super().setUp() + self.normal_prescription = self.create_prescription() + + def create_prescription(self, **kwargs): + data = { + "consultation": self.create_consultation(self.patient, self.facility), + "medicine": MedibaseMedicine.objects.first(), + "prescription_type": "REGULAR", + "dosage": "1 mg", + "frequency": "OD", + "is_prn": False, + } + return Prescription.objects.create( + **{**data, **kwargs, "prescribed_by": self.user} + ) + + def test_administer_and_archive(self): + # test administer + prescription = self.normal_prescription + res = self.client.post( + f"/api/v1/consultation/{prescription.consultation.external_id}/prescriptions/{prescription.external_id}/administer/", + {"notes": "Test Notes"}, + ) + self.assertEqual(res.status_code, status.HTTP_201_CREATED) + + administration_id = res.data["id"] + + # test archive + archive_path = f"/api/v1/consultation/{prescription.consultation.external_id}/prescription_administration/{administration_id}/archive/" + res = self.client.post(archive_path, {}) + self.assertEqual(res.status_code, status.HTTP_200_OK) + + # test archive again + res = self.client.post(archive_path, {}) + self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST) + + # test list administrations + res = self.client.get( + f"/api/v1/consultation/{prescription.consultation.external_id}/prescription_administration/" + ) + self.assertEqual(res.status_code, status.HTTP_200_OK) + self.assertTrue( + any([administration_id == x["id"] for x in res.data["results"]]) + ) + + # test archived list administrations + res = self.client.get( + f"/api/v1/consultation/{prescription.consultation.external_id}/prescription_administration/?archived=true" + ) + self.assertEqual(res.status_code, status.HTTP_200_OK) + self.assertTrue( + any([administration_id == x["id"] for x in res.data["results"]]) + ) + + # test archived list administrations + res = self.client.get( + f"/api/v1/consultation/{prescription.consultation.external_id}/prescription_administration/?archived=false" + ) + self.assertEqual(res.status_code, status.HTTP_200_OK) + self.assertFalse( + any([administration_id == x["id"] for x in res.data["results"]]) + ) + + def test_administer_in_future(self): + prescription = self.normal_prescription + res = self.client.post( + f"/api/v1/consultation/{prescription.consultation.external_id}/prescriptions/{prescription.external_id}/administer/", + {"notes": "Test Notes", "administered_date": "2300-09-01T16:34"}, + ) + self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST) + + def test_administer_in_past(self): + prescription = self.normal_prescription + res = self.client.post( + f"/api/v1/consultation/{prescription.consultation.external_id}/prescriptions/{prescription.external_id}/administer/", + {"notes": "Test Notes", "administered_date": "2019-09-01T16:34"}, + ) + self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST) + + def test_administer_discontinued(self): + prescription = self.create_prescription( + discontinued=True, discontinued_date=timezone.now() + ) + res = self.client.post( + f"/api/v1/consultation/{prescription.consultation.external_id}/prescriptions/{prescription.external_id}/administer/", + {"notes": "Test Notes"}, + ) + self.assertEqual(res.status_code, status.HTTP_400_BAD_REQUEST) diff --git a/care/utils/models/validators.py b/care/utils/models/validators.py index e9c8901ea0..0d58527b7a 100644 --- a/care/utils/models/validators.py +++ b/care/utils/models/validators.py @@ -95,3 +95,87 @@ def __eq__(self, other): mobile_validator = PhoneNumberValidator(types=("mobile",)) mobile_or_landline_number_validator = PhoneNumberValidator(types=("mobile", "landline")) + + +@deconstructible +class DenominationValidator: + """ + This validator is used to validate string inputs with denominations. + for example: 1 mg, 1.5 ml, 200 mg etc. + """ + + def __init__( + self, + min_amount: int | float, + max_amount: int | float, + units: Iterable[str], + allow_floats: bool = True, + precision: int = 2, + ): + self.min_amount = min_amount + self.max_amount = max_amount + self.allowed_units = units + self.allow_floats = allow_floats + self.precision = precision + + if not allow_floats and ( + isinstance(min_amount, float) or isinstance(max_amount, float) + ): + raise ValueError( + "If floats are not allowed, min_amount and max_amount must be integers" + ) + + def __call__(self, value: str): + try: + amount, unit = value.split(" ", maxsplit=1) + if unit not in self.allowed_units: + raise ValidationError( + f"Unit must be one of {', '.join(self.allowed_units)}" + ) + + amount_number: int | float = float(amount) + if amount_number.is_integer(): + amount_number = int(amount_number) + elif not self.allow_floats: + raise ValidationError("Input amount must be an integer") + elif len(str(amount_number).split(".")[1]) > self.precision: + raise ValidationError("Input amount must have at most 4 decimal places") + + if len(amount) != len(str(amount_number)): + raise ValidationError( + f"Input amount must be a valid number without leading{ ' or trailing ' if self.allow_floats else ' ' }zeroes" + ) + + if self.min_amount > amount_number or amount_number > self.max_amount: + raise ValidationError( + f"Input amount must be between {self.min_amount} and {self.max_amount}" + ) + except ValueError: + raise ValidationError( + "Invalid Input, must be in the format: " + ) + + def clean(self, value: str): + if value is None: + return None + return value.strip() + + def __eq__(self, __value: object) -> bool: # pragma: no cover + if not isinstance(__value, DenominationValidator): + return False + return ( + self.min_amount == __value.min_amount + and self.max_amount == __value.max_amount + and self.allowed_units == __value.allowed_units + and self.allow_floats == __value.allow_floats + and self.precision == __value.precision + ) + + +dosage_validator = DenominationValidator( + min_amount=0.0001, + max_amount=5000, + units={"mg", "g", "ml", "drop(s)", "ampule(s)", "tsp"}, + allow_floats=True, + precision=4, +) diff --git a/care/utils/tests/test_denomination_validator.py b/care/utils/tests/test_denomination_validator.py new file mode 100644 index 0000000000..e535e633c6 --- /dev/null +++ b/care/utils/tests/test_denomination_validator.py @@ -0,0 +1,19 @@ +from django.core.exceptions import ValidationError +from django.test import TestCase + +from care.utils.models.validators import DenominationValidator + + +class DenominationValidatorTestCase(TestCase): + def test_init_with_invalid_range_values(self): + with self.assertRaises(ValueError): + DenominationValidator( + min_amount=100.30, max_amount=1, allow_floats=False, units=["mg"] + ) + + def test_validation_error_on_floats(self): + validator = DenominationValidator( + min_amount=1, max_amount=100, allow_floats=False, units=["mg"] + ) + with self.assertRaises(ValidationError): + validator("1.1 mg") From 261d0249411ce9fd0f26e4c0535825243543e2bf Mon Sep 17 00:00:00 2001 From: Aakash Singh Date: Thu, 7 Dec 2023 23:24:12 +0530 Subject: [PATCH 09/27] add env vars to configure cors headers (#1703) --- aws/backend.json | 4 ++++ config/settings/base.py | 2 -- config/settings/deployment.py | 2 ++ config/settings/local.py | 3 +++ 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/aws/backend.json b/aws/backend.json index a0a32179ae..d7a02a832f 100644 --- a/aws/backend.json +++ b/aws/backend.json @@ -33,6 +33,10 @@ "name": "CSRF_TRUSTED_ORIGINS", "value": "[\"http://care-django-staging\", \"https://care.coronasafe.in\", \"https://careapi.coronasafe.in\", \"https://care.ohc.network\", \"https://careapi.ohc.network\"]" }, + { + "name": "CORS_ALLOWED_ORIGINS", + "value": "[\"https://care.coronasafe.in\", \"https://careapi.coronasafe.in\", \"https://care.ohc.network\", \"https://careapi.ohc.network\", \"https://status.10bedicu.org\"]" + }, { "name": "CURRENT_DOMAIN", "value": "https://care.ohc.network" diff --git a/config/settings/base.py b/config/settings/base.py index dfdad9bf37..c0a9932ff4 100644 --- a/config/settings/base.py +++ b/config/settings/base.py @@ -253,8 +253,6 @@ # https://docs.djangoproject.com/en/dev/ref/settings/#csrf-trusted-origins CSRF_TRUSTED_ORIGINS = env.json("CSRF_TRUSTED_ORIGINS", default=[]) -# https://github.com/adamchainz/django-cors-headers#cors_allow_all_origins-bool -CORS_ORIGIN_ALLOW_ALL = True # WARNING: This is not secure # https://github.com/adamchainz/django-cors-headers#cors_allowed_origin_regexes-sequencestr--patternstr # CORS_URLS_REGEX = r"^/api/.*$" diff --git a/config/settings/deployment.py b/config/settings/deployment.py index 68eb0d53ba..e0fec0187f 100644 --- a/config/settings/deployment.py +++ b/config/settings/deployment.py @@ -39,6 +39,8 @@ SECURE_CONTENT_TYPE_NOSNIFF = env.bool( "DJANGO_SECURE_CONTENT_TYPE_NOSNIFF", default=True ) +# https://github.com/adamchainz/django-cors-headers#cors_allowed_origins-sequencestr +CORS_ALLOWED_ORIGINS = env.json("CORS_ALLOWED_ORIGINS", default=[]) # TEMPLATES # ------------------------------------------------------------------------------ diff --git a/config/settings/local.py b/config/settings/local.py index 48d7f5d067..68692f9d07 100644 --- a/config/settings/local.py +++ b/config/settings/local.py @@ -1,5 +1,8 @@ from .base import * # noqa +# https://github.com/adamchainz/django-cors-headers#cors_allow_all_origins-bool +CORS_ORIGIN_ALLOW_ALL = True + # WhiteNoise # ------------------------------------------------------------------------------ # http://whitenoise.evans.io/en/latest/django.html#using-whitenoise-in-development From 84ead2ad6f6c0c96e1065983fa41c6bea612afdf Mon Sep 17 00:00:00 2001 From: Gokulram A Date: Thu, 7 Dec 2023 23:27:50 +0530 Subject: [PATCH 10/27] Field to classify location as an ICU or Ward or Other (#1708) * Add WARD as a new room type choice in AssetLocation model * update tests --- care/facility/api/serializers/asset.py | 1 + .../0394_alter_assetlocation_location_type.py | 22 +++++++++++++++++++ care/facility/models/asset.py | 1 + .../facility/tests/test_asset_location_api.py | 3 +++ 4 files changed, 27 insertions(+) create mode 100644 care/facility/migrations/0394_alter_assetlocation_location_type.py diff --git a/care/facility/api/serializers/asset.py b/care/facility/api/serializers/asset.py index d52c46fe34..984b4874c2 100644 --- a/care/facility/api/serializers/asset.py +++ b/care/facility/api/serializers/asset.py @@ -40,6 +40,7 @@ class AssetLocationSerializer(ModelSerializer): facility = FacilityBareMinimumSerializer(read_only=True) id = UUIDField(source="external_id", read_only=True) + location_type = ChoiceField(choices=AssetLocation.RoomTypeChoices) def validate_middleware_address(self, value): value = (value or "").strip() diff --git a/care/facility/migrations/0394_alter_assetlocation_location_type.py b/care/facility/migrations/0394_alter_assetlocation_location_type.py new file mode 100644 index 0000000000..d96bd8df14 --- /dev/null +++ b/care/facility/migrations/0394_alter_assetlocation_location_type.py @@ -0,0 +1,22 @@ +# Generated by Django 4.2.5 on 2023-11-13 08:56 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ( + "facility", + "0393_rename_diagnosis_patientconsultation_deprecated_diagnosis_and_more", + ), + ] + + operations = [ + migrations.AlterField( + model_name="assetlocation", + name="location_type", + field=models.IntegerField( + choices=[(1, "OTHER"), (10, "ICU"), (20, "WARD")], default=1 + ), + ), + ] diff --git a/care/facility/models/asset.py b/care/facility/models/asset.py index bbdf39f957..d3ead51c85 100644 --- a/care/facility/models/asset.py +++ b/care/facility/models/asset.py @@ -34,6 +34,7 @@ class AssetLocation(BaseModel, AssetsPermissionMixin): class RoomType(enum.Enum): OTHER = 1 ICU = 10 + WARD = 20 RoomTypeChoices = [(e.value, e.name) for e in RoomType] diff --git a/care/facility/tests/test_asset_location_api.py b/care/facility/tests/test_asset_location_api.py index b859823c1b..2fbb244553 100644 --- a/care/facility/tests/test_asset_location_api.py +++ b/care/facility/tests/test_asset_location_api.py @@ -36,6 +36,7 @@ def test_create_asset_location(self): sample_data = { "name": "Test Asset Location", "middleware_address": "example.com", + "location_type": "ICU", } response = self.client.post( f"/api/v1/facility/{self.facility.external_id}/asset_location/", @@ -51,6 +52,7 @@ def test_update_asset_location(self): sample_data = { "name": "Updated Test Asset Location", "middleware_address": "updated.example.com", + "location_type": "WARD", } response = self.client.patch( f"/api/v1/facility/{self.facility.external_id}/asset_location/{self.asset_location.external_id}/", @@ -66,6 +68,7 @@ def test_create_asset_location_invalid_middleware(self): sample_data = { "name": "Test Asset Location", "middleware_address": "https://invalid.middleware.///", + "location_type": "OTHER", } response = self.client.post( f"/api/v1/facility/{self.facility.external_id}/asset_location/", From 5563b4838dad51f20c2d90b49e84f657d1ddd375 Mon Sep 17 00:00:00 2001 From: Pranshu Aggarwal <70687348+Pranshu1902@users.noreply.github.com> Date: Thu, 7 Dec 2023 23:31:45 +0530 Subject: [PATCH 11/27] Check if user uploading External results is from same district (#1747) * check if user is from same district * fix logic order * refactor * refactor Co-authored-by: Aakash Singh --------- Co-authored-by: Aakash Singh --- care/facility/api/viewsets/patient_external_test.py | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/care/facility/api/viewsets/patient_external_test.py b/care/facility/api/viewsets/patient_external_test.py index 422d0bb512..2118ef92f7 100644 --- a/care/facility/api/viewsets/patient_external_test.py +++ b/care/facility/api/viewsets/patient_external_test.py @@ -143,6 +143,12 @@ def bulk_upsert(self, request, *args, **kwargs): raise ValidationError({"sample_tests": "No Data was provided"}) if not isinstance(request.data["sample_tests"], list): raise ValidationError({"sample_tests": "Data should be provided as a list"}) + + # check if the user is from same district + for data in request.data["sample_tests"]: + if request.user.district != data["district"]: + raise ValidationError({"Error": "User must belong to same district"}) + errors = [] counter = 0 ser_objects = [] From 19d414fee76d2afcc0942047261fcb92a0d0061d Mon Sep 17 00:00:00 2001 From: Ashesh <3626859+Ashesh3@users.noreply.github.com> Date: Thu, 7 Dec 2023 23:34:27 +0530 Subject: [PATCH 12/27] Resolved Display Issues for Oxygen Cylinder Capacity in Facility Exports (#1732) Export oxygen capacity only for FacilityCapacity --- care/facility/models/facility.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/care/facility/models/facility.py b/care/facility/models/facility.py index a0e8222e4a..c1d59684d0 100644 --- a/care/facility/models/facility.py +++ b/care/facility/models/facility.py @@ -208,11 +208,7 @@ def save(self, *args, **kwargs) -> None: "local_body__name": "Local Body", "district__name": "District", "state__name": "State", - "oxygen_capacity": "Oxygen Capacity", "phone_number": "Phone Number", - "type_b_cylinders": "B Type Oxygen Cylinder", - "type_c_cylinders": "C Type Oxygen Cylinder", - "type_d_cylinders": "Jumbo D Type Oxygen Cylinder", } CSV_MAKE_PRETTY = {"facility_type": (lambda x: REVERSE_FACILITY_TYPES[x])} @@ -316,6 +312,10 @@ class Meta: "facilitycapacity__total_capacity": "Total Capacity", "facilitycapacity__current_capacity": "Current Capacity", "facilitycapacity__modified_date": "Updated Date", + "oxygen_capacity": "Oxygen Capacity", + "type_b_cylinders": "B Type Oxygen Cylinder", + "type_c_cylinders": "C Type Oxygen Cylinder", + "type_d_cylinders": "Jumbo D Type Oxygen Cylinder", } CSV_MAKE_PRETTY = { From e5409f76bdb415a02012634493ff49ddea776c00 Mon Sep 17 00:00:00 2001 From: Ashesh <3626859+Ashesh3@users.noreply.github.com> Date: Thu, 7 Dec 2023 23:35:03 +0530 Subject: [PATCH 13/27] Add More Facilities and patients to dummy data (#1748) * Add facilities and patients to dummy data * exclude models * format file --- data/dummy/facility.json | 5801 +++++++++++++++++++++++++++++++------- 1 file changed, 4785 insertions(+), 1016 deletions(-) diff --git a/data/dummy/facility.json b/data/dummy/facility.json index 03331ddc02..8af5d7adaa 100644 --- a/data/dummy/facility.json +++ b/data/dummy/facility.json @@ -148,517 +148,916 @@ } }, { - "model": "facility.hospitaldoctors", - "pk": 1, + "model": "facility.facility", + "pk": 5, "fields": { - "external_id": "d68776c9-1197-411f-b19d-2069364b17a2", - "created_date": "2023-09-15T06:12:36.941Z", - "modified_date": "2023-09-15T06:12:36.941Z", + "external_id": "4b1de304-3871-43d7-9204-20600d4a11b0", + "created_date": "2023-12-06T08:25:22.929Z", + "modified_date": "2023-12-06T08:25:22.929Z", "deleted": false, - "facility": 4, - "area": 2, - "count": 5 + "name": "Dummy Facility 2", + "is_active": true, + "verified": false, + "facility_type": 2, + "kasp_empanelled": false, + "features": "", + "longitude": null, + "latitude": null, + "pincode": 682001, + "address": "cypress address", + "ward": 6276, + "local_body": 20, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919898469865", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null } }, { - "model": "facility.hospitaldoctors", - "pk": 2, + "model": "facility.facility", + "pk": 6, "fields": { - "external_id": "df1ef651-4e4f-4a0a-9df7-55e5949468ce", - "created_date": "2023-09-15T06:12:54.835Z", - "modified_date": "2023-09-15T06:12:54.835Z", + "external_id": "dea4c08b-507d-44e4-8055-82d53b803303", + "created_date": "2023-12-06T08:25:59.449Z", + "modified_date": "2023-12-06T08:25:59.449Z", "deleted": false, - "facility": 3, - "area": 3, - "count": 4 + "name": "Dummy Facility 3", + "is_active": true, + "verified": false, + "facility_type": 2, + "kasp_empanelled": false, + "features": "", + "longitude": null, + "latitude": null, + "pincode": 682001, + "address": "cypress address", + "ward": 6276, + "local_body": 20, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919898469865", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null } }, { - "model": "facility.historicalfacilitycapacity", - "pk": 1, + "model": "facility.facility", + "pk": 7, "fields": { - "id": 1, - "external_id": "bfb7a4d8-6bf0-46d6-bf20-d5020850ea55", - "created_date": "2022-09-27T07:00:19.399Z", - "modified_date": "2022-09-27T07:00:19.399Z", + "external_id": "d4c46db1-a814-49bb-b0ef-1f3954fe8cc0", + "created_date": "2023-12-06T08:26:06.142Z", + "modified_date": "2023-12-06T08:26:06.142Z", "deleted": false, - "room_type": 150, - "total_capacity": 1000, - "current_capacity": 20, - "facility": 1, - "history_date": "2022-09-27T07:00:19.400Z", - "history_change_reason": null, - "history_type": "+", - "history_user": 2 + "name": "Dummy Facility 4", + "is_active": true, + "verified": false, + "facility_type": 2, + "kasp_empanelled": false, + "features": "", + "longitude": null, + "latitude": null, + "pincode": 682001, + "address": "cypress address", + "ward": 6276, + "local_body": 20, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919898469865", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null } }, { - "model": "facility.historicalfacilitycapacity", - "pk": 2, + "model": "facility.facility", + "pk": 8, "fields": { - "id": 2, - "external_id": "52bd4e97-9064-4697-8fea-37e0a2b8c87c", - "created_date": "2022-09-27T07:16:52.525Z", - "modified_date": "2022-09-27T07:16:52.525Z", + "external_id": "392237e0-9cac-4f36-9380-70b60ba9234a", + "created_date": "2023-12-06T08:26:12.931Z", + "modified_date": "2023-12-06T08:26:12.931Z", "deleted": false, - "room_type": 150, - "total_capacity": 20, - "current_capacity": 1, - "facility": 2, - "history_date": "2022-09-27T07:16:52.526Z", - "history_change_reason": null, - "history_type": "+", - "history_user": 2 + "name": "Dummy Facility 5", + "is_active": true, + "verified": false, + "facility_type": 2, + "kasp_empanelled": false, + "features": "", + "longitude": null, + "latitude": null, + "pincode": 682001, + "address": "cypress address", + "ward": 6276, + "local_body": 20, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919898469865", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null } }, { - "model": "facility.historicalfacilitycapacity", - "pk": 3, + "model": "facility.facility", + "pk": 9, "fields": { - "id": 3, - "external_id": "4fed54e3-672b-412c-998f-a7d8f303016c", - "created_date": "2023-09-15T06:12:31.548Z", - "modified_date": "2023-09-15T06:12:31.548Z", + "external_id": "daaf1a34-dc1a-4860-8abe-82ff61c31467", + "created_date": "2023-12-06T08:26:19.813Z", + "modified_date": "2023-12-06T08:26:19.813Z", "deleted": false, - "room_type": 150, - "total_capacity": 12, - "current_capacity": 2, - "facility": 4, - "history_date": "2023-09-15T06:12:31.550Z", - "history_change_reason": null, - "history_type": "+", - "history_user": 2 + "name": "Dummy Facility 6", + "is_active": true, + "verified": false, + "facility_type": 2, + "kasp_empanelled": false, + "features": "", + "longitude": null, + "latitude": null, + "pincode": 682001, + "address": "cypress address", + "ward": 6276, + "local_body": 20, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919898469865", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null } }, { - "model": "facility.historicalfacilitycapacity", - "pk": 4, + "model": "facility.facility", + "pk": 10, "fields": { - "id": 4, - "external_id": "c7d64165-8097-4dec-a4df-616647e70c31", - "created_date": "2023-09-15T06:12:50.165Z", - "modified_date": "2023-09-15T06:12:50.165Z", + "external_id": "6ba079b2-c941-4fab-afda-497a1ffc87bb", + "created_date": "2023-12-06T08:26:26.717Z", + "modified_date": "2023-12-06T08:26:26.717Z", "deleted": false, - "room_type": 20, - "total_capacity": 31, - "current_capacity": 2, - "facility": 3, - "history_date": "2023-09-15T06:12:50.166Z", - "history_change_reason": null, - "history_type": "+", - "history_user": 2 + "name": "Dummy Facility 7", + "is_active": true, + "verified": false, + "facility_type": 2, + "kasp_empanelled": false, + "features": "", + "longitude": null, + "latitude": null, + "pincode": 682001, + "address": "cypress address", + "ward": 6276, + "local_body": 20, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919898469865", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null } }, { - "model": "facility.facilitycapacity", - "pk": 1, + "model": "facility.facility", + "pk": 11, "fields": { - "external_id": "bfb7a4d8-6bf0-46d6-bf20-d5020850ea55", - "created_date": "2022-09-27T07:00:19.399Z", - "modified_date": "2022-09-27T07:00:19.399Z", + "external_id": "d742ea33-8707-4e94-becd-05ca8821156b", + "created_date": "2023-12-06T08:26:33.743Z", + "modified_date": "2023-12-06T08:26:33.743Z", "deleted": false, - "facility": 1, - "room_type": 150, - "total_capacity": 1000, - "current_capacity": 20 + "name": "Dummy Facility 8", + "is_active": true, + "verified": false, + "facility_type": 2, + "kasp_empanelled": false, + "features": "", + "longitude": null, + "latitude": null, + "pincode": 682001, + "address": "cypress address", + "ward": 6276, + "local_body": 20, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919898469865", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null } }, { - "model": "facility.facilitycapacity", - "pk": 2, + "model": "facility.facility", + "pk": 12, "fields": { - "external_id": "52bd4e97-9064-4697-8fea-37e0a2b8c87c", - "created_date": "2022-09-27T07:16:52.525Z", - "modified_date": "2022-09-27T07:16:52.525Z", + "external_id": "23fb96df-790a-41d0-af6f-164f7c77c680", + "created_date": "2023-12-06T08:26:40.606Z", + "modified_date": "2023-12-06T08:26:40.606Z", "deleted": false, - "facility": 2, - "room_type": 150, - "total_capacity": 20, - "current_capacity": 1 + "name": "Dummy Facility 9", + "is_active": true, + "verified": false, + "facility_type": 2, + "kasp_empanelled": false, + "features": "", + "longitude": null, + "latitude": null, + "pincode": 682001, + "address": "cypress address", + "ward": 6276, + "local_body": 20, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919898469865", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null } }, { - "model": "facility.facilitycapacity", - "pk": 3, + "model": "facility.facility", + "pk": 13, "fields": { - "external_id": "4fed54e3-672b-412c-998f-a7d8f303016c", - "created_date": "2023-09-15T06:12:31.548Z", - "modified_date": "2023-09-15T06:12:31.548Z", + "external_id": "f779a7a2-c7a1-499f-99dd-d8c39113b4d0", + "created_date": "2023-12-06T08:26:47.590Z", + "modified_date": "2023-12-06T08:26:47.590Z", "deleted": false, - "facility": 4, - "room_type": 150, - "total_capacity": 12, - "current_capacity": 2 - } - }, - { - "model": "facility.facilitycapacity", - "pk": 4, - "fields": { - "external_id": "c7d64165-8097-4dec-a4df-616647e70c31", - "created_date": "2023-09-15T06:12:50.165Z", - "modified_date": "2023-09-15T06:12:50.165Z", + "name": "Dummy Facility 10", + "is_active": true, + "verified": false, + "facility_type": 2, + "kasp_empanelled": false, + "features": "", + "longitude": null, + "latitude": null, + "pincode": 682001, + "address": "cypress address", + "ward": 6276, + "local_body": 20, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919898469865", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null + } + }, + { + "model": "facility.facility", + "pk": 14, + "fields": { + "external_id": "ca7d4389-fff7-46b4-8d9e-2fdecc78512e", + "created_date": "2023-12-06T08:26:54.636Z", + "modified_date": "2023-12-06T08:26:54.636Z", "deleted": false, - "facility": 3, - "room_type": 20, - "total_capacity": 31, - "current_capacity": 2 + "name": "Dummy Facility 11", + "is_active": true, + "verified": false, + "facility_type": 2, + "kasp_empanelled": false, + "features": "", + "longitude": null, + "latitude": null, + "pincode": 682001, + "address": "cypress address", + "ward": 6276, + "local_body": 20, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919898469865", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null } }, { - "model": "facility.facilityuser", - "pk": 1, + "model": "facility.facility", + "pk": 15, "fields": { - "facility": 1, - "user": 2, - "created_by": 2 + "external_id": "7635ecfd-5d3d-4b1b-835e-6c4ecb199b0f", + "created_date": "2023-12-06T08:27:01.844Z", + "modified_date": "2023-12-06T08:27:01.844Z", + "deleted": false, + "name": "Dummy Facility 12", + "is_active": true, + "verified": false, + "facility_type": 2, + "kasp_empanelled": false, + "features": "", + "longitude": null, + "latitude": null, + "pincode": 682001, + "address": "cypress address", + "ward": 6276, + "local_body": 20, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919898469865", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null } }, { - "model": "facility.facilityuser", - "pk": 2, + "model": "facility.facility", + "pk": 16, "fields": { - "facility": 2, - "user": 2, - "created_by": 2 + "external_id": "14899a2e-2f5e-48ab-98fc-bb0829d7d12f", + "created_date": "2023-12-06T08:27:08.679Z", + "modified_date": "2023-12-06T08:27:08.679Z", + "deleted": false, + "name": "Dummy Facility 13", + "is_active": true, + "verified": false, + "facility_type": 2, + "kasp_empanelled": false, + "features": "", + "longitude": null, + "latitude": null, + "pincode": 682001, + "address": "cypress address", + "ward": 6276, + "local_body": 20, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919898469865", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null } }, { - "model": "facility.facilityuser", - "pk": 3, + "model": "facility.facility", + "pk": 17, "fields": { - "facility": 1, - "user": 21, - "created_by": 2 + "external_id": "a1d0cdc1-fa7d-47cf-9ca6-40c5b53a48ab", + "created_date": "2023-12-06T08:27:15.731Z", + "modified_date": "2023-12-06T08:27:15.731Z", + "deleted": false, + "name": "Dummy Facility 14", + "is_active": true, + "verified": false, + "facility_type": 2, + "kasp_empanelled": false, + "features": "", + "longitude": null, + "latitude": null, + "pincode": 682001, + "address": "cypress address", + "ward": 6276, + "local_body": 20, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919898469865", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null } }, { - "model": "facility.facilityuser", - "pk": 4, + "model": "facility.facility", + "pk": 18, "fields": { - "facility": 1, - "user": 22, - "created_by": 2 + "external_id": "bcdd01e2-c1ca-434a-9c95-fc45bb3cba1d", + "created_date": "2023-12-06T08:27:22.617Z", + "modified_date": "2023-12-06T08:27:22.617Z", + "deleted": false, + "name": "Dummy Facility 15", + "is_active": true, + "verified": false, + "facility_type": 2, + "kasp_empanelled": false, + "features": "", + "longitude": null, + "latitude": null, + "pincode": 682001, + "address": "cypress address", + "ward": 6276, + "local_body": 20, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919898469865", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null } }, { - "model": "facility.facilityuser", - "pk": 5, + "model": "facility.facility", + "pk": 19, "fields": { - "facility": 3, - "user": 2, - "created_by": 2 + "external_id": "6b46d930-a205-4199-a1a7-cd80c9413b93", + "created_date": "2023-12-06T08:27:29.431Z", + "modified_date": "2023-12-06T08:27:29.431Z", + "deleted": false, + "name": "Dummy Facility 16", + "is_active": true, + "verified": false, + "facility_type": 2, + "kasp_empanelled": false, + "features": "", + "longitude": null, + "latitude": null, + "pincode": 682001, + "address": "cypress address", + "ward": 6276, + "local_body": 20, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919898469865", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null } }, { - "model": "facility.facilityuser", - "pk": 6, + "model": "facility.facility", + "pk": 20, "fields": { - "facility": 4, - "user": 2, - "created_by": 2 + "external_id": "2befba93-373e-4ec8-9673-4f22abed84ec", + "created_date": "2023-12-06T08:27:36.491Z", + "modified_date": "2023-12-06T08:27:36.491Z", + "deleted": false, + "name": "Dummy Facility 17", + "is_active": true, + "verified": false, + "facility_type": 2, + "kasp_empanelled": false, + "features": "", + "longitude": null, + "latitude": null, + "pincode": 682001, + "address": "cypress address", + "ward": 6276, + "local_body": 20, + "district": 7, + "state": 1, + "oxygen_capacity": 0, + "type_b_cylinders": 0, + "type_c_cylinders": 0, + "type_d_cylinders": 0, + "expected_oxygen_requirement": 0, + "expected_type_b_cylinders": 0, + "expected_type_c_cylinders": 0, + "expected_type_d_cylinders": 0, + "phone_number": "+919898469865", + "corona_testing": false, + "created_by": 2, + "cover_image_url": null, + "middleware_address": null } }, { - "model": "facility.assetlocation", + "model": "facility.hospitaldoctors", "pk": 1, "fields": { - "external_id": "c3ab727f-dc3f-4a11-bf8d-2472bd79b5f7", - "created_date": "2022-09-27T07:02:07.969Z", - "modified_date": "2022-09-27T07:02:07.969Z", + "external_id": "d68776c9-1197-411f-b19d-2069364b17a2", + "created_date": "2023-09-15T06:12:36.941Z", + "modified_date": "2023-09-15T06:12:36.941Z", "deleted": false, - "name": "Camera Locations", - "description": "", - "location_type": 1, - "facility": 1, - "middleware_address": null + "facility": 4, + "area": 2, + "count": 5 } }, { - "model": "facility.assetlocation", + "model": "facility.hospitaldoctors", "pk": 2, "fields": { - "external_id": "a5cd0a56-cd5a-425c-9a87-cf79c0a90887", - "created_date": "2023-09-15T06:13:24.614Z", - "modified_date": "2023-09-15T06:13:24.614Z", + "external_id": "df1ef651-4e4f-4a0a-9df7-55e5949468ce", + "created_date": "2023-09-15T06:12:54.835Z", + "modified_date": "2023-09-15T06:12:54.835Z", "deleted": false, - "name": "Dummy Location 1", - "description": "", - "location_type": 1, - "facility": 1, - "middleware_address": null + "facility": 3, + "area": 3, + "count": 4 } }, { - "model": "facility.asset", + "model": "facility.facilitycapacity", "pk": 1, "fields": { - "external_id": "ae4290a0-e86a-48d7-9c82-60b7d6514707", - "created_date": "2022-09-27T07:03:57.401Z", - "modified_date": "2022-09-27T07:03:57.401Z", + "external_id": "bfb7a4d8-6bf0-46d6-bf20-d5020850ea55", + "created_date": "2022-09-27T07:00:19.399Z", + "modified_date": "2022-09-27T07:00:19.399Z", "deleted": false, - "name": "Dummy Camera 1", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null + "facility": 1, + "room_type": 150, + "total_capacity": 1000, + "current_capacity": 20 } }, { - "model": "facility.asset", + "model": "facility.facilitycapacity", "pk": 2, "fields": { - "external_id": "7c06ec3c-838d-447a-bf36-d20239c8442f", - "created_date": "2022-09-27T07:04:30.802Z", - "modified_date": "2022-09-27T07:04:30.802Z", + "external_id": "52bd4e97-9064-4697-8fea-37e0a2b8c87c", + "created_date": "2022-09-27T07:16:52.525Z", + "modified_date": "2022-09-27T07:16:52.525Z", "deleted": false, - "name": "Dummy Camera 2", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null + "facility": 2, + "room_type": 150, + "total_capacity": 20, + "current_capacity": 1 } }, { - "model": "facility.asset", + "model": "facility.facilitycapacity", "pk": 3, "fields": { - "external_id": "46740927-f782-49aa-bf6e-52a1208e8d18", - "created_date": "2022-09-27T07:04:35.291Z", - "modified_date": "2022-09-27T07:04:35.291Z", + "external_id": "4fed54e3-672b-412c-998f-a7d8f303016c", + "created_date": "2023-09-15T06:12:31.548Z", + "modified_date": "2023-09-15T06:12:31.548Z", "deleted": false, - "name": "Dummy Camera 3", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null + "facility": 4, + "room_type": 150, + "total_capacity": 12, + "current_capacity": 2 } }, { - "model": "facility.asset", + "model": "facility.facilitycapacity", "pk": 4, "fields": { - "external_id": "d6e9e071-e67e-4fbc-a872-4c3b1b9f749f", - "created_date": "2022-09-27T07:04:38.335Z", - "modified_date": "2022-09-27T07:04:38.335Z", + "external_id": "c7d64165-8097-4dec-a4df-616647e70c31", + "created_date": "2023-09-15T06:12:50.165Z", + "modified_date": "2023-09-15T06:12:50.165Z", "deleted": false, - "name": "Dummy Camera 4", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null + "facility": 3, + "room_type": 20, + "total_capacity": 31, + "current_capacity": 2 } }, { - "model": "facility.asset", - "pk": 5, + "model": "facility.facilityuser", + "pk": 1, "fields": { - "external_id": "35a2200d-6c1a-4c53-936c-60ebec1f9d42", - "created_date": "2022-09-27T07:04:41.179Z", - "modified_date": "2022-09-27T07:04:41.179Z", - "deleted": false, - "name": "Dummy Camera 5", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null + "facility": 1, + "user": 2, + "created_by": 2 } }, { - "model": "facility.asset", - "pk": 6, + "model": "facility.facilityuser", + "pk": 2, "fields": { - "external_id": "db1c2f95-5ae9-4e64-b647-30250beb79c7", - "created_date": "2022-09-27T07:04:43.869Z", - "modified_date": "2022-09-27T07:04:43.870Z", - "deleted": false, - "name": "Dummy Camera 6", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null + "facility": 2, + "user": 2, + "created_by": 2 } }, { - "model": "facility.asset", - "pk": 7, + "model": "facility.facilityuser", + "pk": 3, "fields": { - "external_id": "604ec344-a7d1-4523-8a6f-3e78cd3409ef", - "created_date": "2022-09-27T07:04:46.610Z", - "modified_date": "2022-09-27T07:04:46.610Z", - "deleted": false, - "name": "Dummy Camera 7", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null + "facility": 1, + "user": 21, + "created_by": 2 } }, { - "model": "facility.asset", - "pk": 8, + "model": "facility.facilityuser", + "pk": 4, "fields": { - "external_id": "271ace96-6bc6-4d32-916b-6b69eb81e4c3", - "created_date": "2022-09-27T07:04:49.732Z", - "modified_date": "2022-09-27T07:04:49.732Z", - "deleted": false, - "name": "Dummy Camera 8", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null + "facility": 1, + "user": 22, + "created_by": 2 } }, { - "model": "facility.asset", - "pk": 9, + "model": "facility.facilityuser", + "pk": 5, "fields": { - "external_id": "fe2f171f-0c69-4305-be60-0db625d0e38e", - "created_date": "2022-09-27T07:04:52.832Z", - "modified_date": "2022-09-27T07:04:52.832Z", - "deleted": false, - "name": "Dummy Camera 9", - "description": "This is a dummy camera", - "asset_type": 50, - "asset_class": "ONVIF", - "status": 50, - "current_location": 1, - "is_working": true, - "not_working_reason": "", - "serial_number": "", - "warranty_details": "", - "meta": {}, - "vendor_name": "Vendors Inc.", - "support_name": "", - "support_phone": "+914578889765", - "support_email": "", - "qr_code_id": null, - "manufacturer": null, - "warranty_amc_end_of_validity": null, - "last_service": null + "facility": 3, + "user": 2, + "created_by": 2 } }, { - "model": "facility.asset", + "model": "facility.facilityuser", + "pk": 6, + "fields": { + "facility": 4, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 7, + "fields": { + "facility": 5, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 8, + "fields": { + "facility": 6, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 9, + "fields": { + "facility": 7, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", "pk": 10, "fields": { - "external_id": "cf77edb2-e771-46db-a73d-80ac2b446987", - "created_date": "2022-09-27T07:04:55.942Z", - "modified_date": "2022-09-27T07:04:55.942Z", + "facility": 8, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 11, + "fields": { + "facility": 9, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 12, + "fields": { + "facility": 10, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 13, + "fields": { + "facility": 11, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 14, + "fields": { + "facility": 12, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 15, + "fields": { + "facility": 13, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 16, + "fields": { + "facility": 14, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 17, + "fields": { + "facility": 15, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 18, + "fields": { + "facility": 16, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 19, + "fields": { + "facility": 17, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 20, + "fields": { + "facility": 18, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 21, + "fields": { + "facility": 19, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.facilityuser", + "pk": 22, + "fields": { + "facility": 20, + "user": 2, + "created_by": 2 + } + }, + { + "model": "facility.assetlocation", + "pk": 1, + "fields": { + "external_id": "c3ab727f-dc3f-4a11-bf8d-2472bd79b5f7", + "created_date": "2022-09-27T07:02:07.969Z", + "modified_date": "2022-09-27T07:02:07.969Z", "deleted": false, - "name": "Dummy Camera 10", + "name": "Camera Locations", + "description": "", + "location_type": 1, + "facility": 1, + "middleware_address": null + } + }, + { + "model": "facility.assetlocation", + "pk": 2, + "fields": { + "external_id": "a5cd0a56-cd5a-425c-9a87-cf79c0a90887", + "created_date": "2023-09-15T06:13:24.614Z", + "modified_date": "2023-09-15T06:13:24.614Z", + "deleted": false, + "name": "Dummy Location 1", + "description": "", + "location_type": 1, + "facility": 1, + "middleware_address": null + } + }, + { + "model": "facility.asset", + "pk": 1, + "fields": { + "external_id": "ae4290a0-e86a-48d7-9c82-60b7d6514707", + "created_date": "2022-09-27T07:03:57.401Z", + "modified_date": "2022-09-27T07:03:57.401Z", + "deleted": false, + "name": "Dummy Camera 1", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -681,13 +1080,13 @@ }, { "model": "facility.asset", - "pk": 11, + "pk": 2, "fields": { - "external_id": "2a19c4a9-84a2-41c8-ac0d-bbbc35e5f18d", - "created_date": "2022-09-27T07:04:58.599Z", - "modified_date": "2022-09-27T07:04:58.599Z", + "external_id": "7c06ec3c-838d-447a-bf36-d20239c8442f", + "created_date": "2022-09-27T07:04:30.802Z", + "modified_date": "2022-09-27T07:04:30.802Z", "deleted": false, - "name": "Dummy Camera 11", + "name": "Dummy Camera 2", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -710,13 +1109,13 @@ }, { "model": "facility.asset", - "pk": 12, + "pk": 3, "fields": { - "external_id": "efb41cef-4d39-477f-b437-7ec9e4406971", - "created_date": "2022-09-27T07:05:01.182Z", - "modified_date": "2022-09-27T07:05:01.182Z", + "external_id": "46740927-f782-49aa-bf6e-52a1208e8d18", + "created_date": "2022-09-27T07:04:35.291Z", + "modified_date": "2022-09-27T07:04:35.291Z", "deleted": false, - "name": "Dummy Camera 12", + "name": "Dummy Camera 3", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -739,13 +1138,13 @@ }, { "model": "facility.asset", - "pk": 13, + "pk": 4, "fields": { - "external_id": "875b2bd3-67a8-4968-a589-d62c656cacb9", - "created_date": "2022-09-27T07:05:03.955Z", - "modified_date": "2022-09-27T07:05:03.955Z", + "external_id": "d6e9e071-e67e-4fbc-a872-4c3b1b9f749f", + "created_date": "2022-09-27T07:04:38.335Z", + "modified_date": "2022-09-27T07:04:38.335Z", "deleted": false, - "name": "Dummy Camera 13", + "name": "Dummy Camera 4", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -768,13 +1167,13 @@ }, { "model": "facility.asset", - "pk": 14, + "pk": 5, "fields": { - "external_id": "b9ff3001-ed15-4538-bb54-78d0b2be445f", - "created_date": "2022-09-27T07:05:07.194Z", - "modified_date": "2022-09-27T07:05:07.194Z", + "external_id": "35a2200d-6c1a-4c53-936c-60ebec1f9d42", + "created_date": "2022-09-27T07:04:41.179Z", + "modified_date": "2022-09-27T07:04:41.179Z", "deleted": false, - "name": "Dummy Camera 14", + "name": "Dummy Camera 5", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -797,13 +1196,13 @@ }, { "model": "facility.asset", - "pk": 15, + "pk": 6, "fields": { - "external_id": "a9678d31-17a9-4474-be01-c095553e97b5", - "created_date": "2022-09-27T07:05:10.384Z", - "modified_date": "2022-09-27T07:05:10.384Z", + "external_id": "db1c2f95-5ae9-4e64-b647-30250beb79c7", + "created_date": "2022-09-27T07:04:43.869Z", + "modified_date": "2022-09-27T07:04:43.870Z", "deleted": false, - "name": "Dummy Camera 15", + "name": "Dummy Camera 6", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -826,13 +1225,13 @@ }, { "model": "facility.asset", - "pk": 16, + "pk": 7, "fields": { - "external_id": "b0e4063e-3f05-4f94-aea0-e15e9e474f96", - "created_date": "2022-09-27T07:05:13.857Z", - "modified_date": "2022-09-27T07:05:13.857Z", + "external_id": "604ec344-a7d1-4523-8a6f-3e78cd3409ef", + "created_date": "2022-09-27T07:04:46.610Z", + "modified_date": "2022-09-27T07:04:46.610Z", "deleted": false, - "name": "Dummy Camera 16", + "name": "Dummy Camera 7", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -855,13 +1254,13 @@ }, { "model": "facility.asset", - "pk": 17, + "pk": 8, "fields": { - "external_id": "634e1421-f1a7-41d1-bde2-13d1ee7eabf4", - "created_date": "2022-09-27T07:05:16.707Z", - "modified_date": "2022-09-27T07:05:16.707Z", + "external_id": "271ace96-6bc6-4d32-916b-6b69eb81e4c3", + "created_date": "2022-09-27T07:04:49.732Z", + "modified_date": "2022-09-27T07:04:49.732Z", "deleted": false, - "name": "Dummy Camera 17", + "name": "Dummy Camera 8", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -884,13 +1283,13 @@ }, { "model": "facility.asset", - "pk": 18, + "pk": 9, "fields": { - "external_id": "17992979-d18a-46c6-a48f-c7f0f40f85c3", - "created_date": "2022-09-27T07:05:19.781Z", - "modified_date": "2022-09-27T07:05:19.781Z", + "external_id": "fe2f171f-0c69-4305-be60-0db625d0e38e", + "created_date": "2022-09-27T07:04:52.832Z", + "modified_date": "2022-09-27T07:04:52.832Z", "deleted": false, - "name": "Dummy Camera 18", + "name": "Dummy Camera 9", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -913,13 +1312,13 @@ }, { "model": "facility.asset", - "pk": 19, + "pk": 10, "fields": { - "external_id": "c6e2c6c3-ba16-4c69-b1f8-822d28317268", - "created_date": "2022-09-27T07:13:12.608Z", - "modified_date": "2022-09-27T07:13:12.608Z", + "external_id": "cf77edb2-e771-46db-a73d-80ac2b446987", + "created_date": "2022-09-27T07:04:55.942Z", + "modified_date": "2022-09-27T07:04:55.942Z", "deleted": false, - "name": "Dummy Camera 19", + "name": "Dummy Camera 10", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -942,13 +1341,13 @@ }, { "model": "facility.asset", - "pk": 20, + "pk": 11, "fields": { - "external_id": "cb375e24-a98c-45ed-85c4-bdd340625357", - "created_date": "2022-09-27T07:13:16.362Z", - "modified_date": "2022-09-27T07:13:16.362Z", + "external_id": "2a19c4a9-84a2-41c8-ac0d-bbbc35e5f18d", + "created_date": "2022-09-27T07:04:58.599Z", + "modified_date": "2022-09-27T07:04:58.599Z", "deleted": false, - "name": "Dummy Camera 20", + "name": "Dummy Camera 11", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -971,13 +1370,13 @@ }, { "model": "facility.asset", - "pk": 21, + "pk": 12, "fields": { - "external_id": "36a0d62c-9f2d-465f-ad9f-772ec7a342d0", - "created_date": "2022-09-27T07:13:19.599Z", - "modified_date": "2022-09-27T07:13:19.599Z", + "external_id": "efb41cef-4d39-477f-b437-7ec9e4406971", + "created_date": "2022-09-27T07:05:01.182Z", + "modified_date": "2022-09-27T07:05:01.182Z", "deleted": false, - "name": "Dummy Camera 21", + "name": "Dummy Camera 12", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -1000,13 +1399,13 @@ }, { "model": "facility.asset", - "pk": 22, + "pk": 13, "fields": { - "external_id": "e24d8936-e4f3-4f30-870e-8bc560be66f2", - "created_date": "2022-09-27T07:13:22.225Z", - "modified_date": "2022-09-27T07:13:22.225Z", + "external_id": "875b2bd3-67a8-4968-a589-d62c656cacb9", + "created_date": "2022-09-27T07:05:03.955Z", + "modified_date": "2022-09-27T07:05:03.955Z", "deleted": false, - "name": "Dummy Camera 22", + "name": "Dummy Camera 13", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -1029,13 +1428,13 @@ }, { "model": "facility.asset", - "pk": 23, + "pk": 14, "fields": { - "external_id": "cc0ebf9e-0fe1-45ff-9954-4b92fc072846", - "created_date": "2022-09-27T07:13:25.053Z", - "modified_date": "2022-09-27T07:13:25.053Z", + "external_id": "b9ff3001-ed15-4538-bb54-78d0b2be445f", + "created_date": "2022-09-27T07:05:07.194Z", + "modified_date": "2022-09-27T07:05:07.194Z", "deleted": false, - "name": "Dummy Camera 23", + "name": "Dummy Camera 14", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -1058,13 +1457,13 @@ }, { "model": "facility.asset", - "pk": 24, + "pk": 15, "fields": { - "external_id": "b10bed38-4a06-473a-85f8-87004703bb2a", - "created_date": "2022-09-27T07:13:27.907Z", - "modified_date": "2022-09-27T07:13:27.907Z", + "external_id": "a9678d31-17a9-4474-be01-c095553e97b5", + "created_date": "2022-09-27T07:05:10.384Z", + "modified_date": "2022-09-27T07:05:10.384Z", "deleted": false, - "name": "Dummy Camera 24", + "name": "Dummy Camera 15", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -1087,13 +1486,13 @@ }, { "model": "facility.asset", - "pk": 25, + "pk": 16, "fields": { - "external_id": "51ce3355-1773-47c0-a929-54bb57293940", - "created_date": "2022-09-27T07:13:30.944Z", - "modified_date": "2022-09-27T07:13:30.944Z", + "external_id": "b0e4063e-3f05-4f94-aea0-e15e9e474f96", + "created_date": "2022-09-27T07:05:13.857Z", + "modified_date": "2022-09-27T07:05:13.857Z", "deleted": false, - "name": "Dummy Camera 25", + "name": "Dummy Camera 16", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -1116,13 +1515,13 @@ }, { "model": "facility.asset", - "pk": 26, + "pk": 17, "fields": { - "external_id": "567ddf56-f86a-488e-bdff-9c69daacb654", - "created_date": "2022-09-27T07:13:33.581Z", - "modified_date": "2022-09-27T07:13:33.581Z", + "external_id": "634e1421-f1a7-41d1-bde2-13d1ee7eabf4", + "created_date": "2022-09-27T07:05:16.707Z", + "modified_date": "2022-09-27T07:05:16.707Z", "deleted": false, - "name": "Dummy Camera 26", + "name": "Dummy Camera 17", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -1145,13 +1544,13 @@ }, { "model": "facility.asset", - "pk": 27, + "pk": 18, "fields": { - "external_id": "234a8559-167b-4e61-9971-15dbc59b9319", - "created_date": "2022-09-27T07:13:37.020Z", - "modified_date": "2022-09-27T07:13:37.020Z", + "external_id": "17992979-d18a-46c6-a48f-c7f0f40f85c3", + "created_date": "2022-09-27T07:05:19.781Z", + "modified_date": "2022-09-27T07:05:19.781Z", "deleted": false, - "name": "Dummy Camera 27", + "name": "Dummy Camera 18", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -1174,13 +1573,13 @@ }, { "model": "facility.asset", - "pk": 28, + "pk": 19, "fields": { - "external_id": "3f203a24-84ae-44c0-897a-1b3ddd42e072", - "created_date": "2022-09-27T07:13:39.951Z", - "modified_date": "2022-09-27T07:13:39.951Z", + "external_id": "c6e2c6c3-ba16-4c69-b1f8-822d28317268", + "created_date": "2022-09-27T07:13:12.608Z", + "modified_date": "2022-09-27T07:13:12.608Z", "deleted": false, - "name": "Dummy Camera 28", + "name": "Dummy Camera 19", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -1203,13 +1602,13 @@ }, { "model": "facility.asset", - "pk": 29, + "pk": 20, "fields": { - "external_id": "fc4c25cd-de00-494a-ad58-20e581520198", - "created_date": "2022-09-27T07:13:43.511Z", - "modified_date": "2022-09-27T07:13:43.511Z", + "external_id": "cb375e24-a98c-45ed-85c4-bdd340625357", + "created_date": "2022-09-27T07:13:16.362Z", + "modified_date": "2022-09-27T07:13:16.362Z", "deleted": false, - "name": "Dummy Camera 29", + "name": "Dummy Camera 20", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -1232,13 +1631,13 @@ }, { "model": "facility.asset", - "pk": 30, + "pk": 21, "fields": { - "external_id": "cb6f3bf8-cfea-498a-a4f1-effae723d6e0", - "created_date": "2022-09-27T07:13:46.850Z", - "modified_date": "2022-09-27T07:13:46.850Z", + "external_id": "36a0d62c-9f2d-465f-ad9f-772ec7a342d0", + "created_date": "2022-09-27T07:13:19.599Z", + "modified_date": "2022-09-27T07:13:19.599Z", "deleted": false, - "name": "Dummy Camera 30", + "name": "Dummy Camera 21", "description": "This is a dummy camera", "asset_type": 50, "asset_class": "ONVIF", @@ -1260,388 +1659,3198 @@ } }, { - "model": "facility.patientconsultation", - "pk": 1, + "model": "facility.asset", + "pk": 22, "fields": { - "external_id": "b5217729-3008-4a44-b347-72ba738d5f45", - "created_date": "2022-09-27T07:20:40.117Z", - "modified_date": "2022-09-27T07:20:40.123Z", + "external_id": "e24d8936-e4f3-4f30-870e-8bc560be66f2", + "created_date": "2022-09-27T07:13:22.225Z", + "modified_date": "2022-09-27T07:13:22.225Z", "deleted": false, - "patient": 1, - "patient_no": "88.99.44.66", - "facility": 1, - "deprecated_diagnosis": "", - "deprecated_icd11_provisional_diagnoses": "[]", - "deprecated_icd11_diagnoses": "[]", - "deprecated_icd11_principal_diagnosis": "", - "symptoms": "3", - "other_symptoms": "", - "symptoms_onset_date": "2022-09-27T07:19:53.380Z", - "deprecated_covid_category": null, - "category": "Moderate", - "examination_details": "", - "history_of_present_illness": "", - "treatment_plan": "", - "consultation_notes": "Transfer", - "course_in_facility": null, - "investigation": [], - "prescriptions": {}, - "procedure": {}, - "suggestion": "R", - "route_to_facility": null, - "review_interval": -1, - "referred_to": 2, - "referred_to_external": "", - "transferred_from_location": null, - "referred_from_facility": null, - "referred_from_facility_external": "", - "referred_by_external": "", - "is_readmission": false, - "admitted": false, - "admission_date": null, - "icu_admission_date": null, - "discharge_date": null, - "discharge_reason": null, - "discharge_notes": "", - "discharge_prescription": {}, - "discharge_prn_prescription": {}, - "death_datetime": null, - "death_confirmed_doctor": "", - "bed_number": null, - "is_kasp": false, - "kasp_enabled_date": null, - "is_telemedicine": false, - "last_updated_by_telemedicine": false, - "assigned_to": null, - "medico_legal_case": false, - "deprecated_verified_by": "", - "treating_physician": null, - "created_by": 2, - "last_edited_by": 2, - "last_daily_round": null, - "current_bed": null, - "height": 0.0, - "weight": 0.0, - "operation": null, - "special_instruction": "", - "intubation_history": [], - "prn_prescription": [], - "discharge_advice": [] + "name": "Dummy Camera 22", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null } }, { - "model": "facility.bed", - "pk": 1, + "model": "facility.asset", + "pk": 23, "fields": { - "external_id": "260de825-7ef2-4155-8fd2-ae4d66980734", - "created_date": "2023-09-15T06:13:43.199Z", - "modified_date": "2023-09-15T06:13:43.199Z", + "external_id": "cc0ebf9e-0fe1-45ff-9954-4b92fc072846", + "created_date": "2022-09-27T07:13:25.053Z", + "modified_date": "2022-09-27T07:13:25.053Z", "deleted": false, - "name": "Dummy Bed 1", - "description": "", - "bed_type": 2, - "facility": 1, + "name": "Dummy Camera 23", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", "meta": {}, - "location": 2 + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null } }, { - "model": "facility.bed", - "pk": 2, + "model": "facility.asset", + "pk": 24, "fields": { - "external_id": "8ab99d71-7263-4c60-b6d4-b22e7f8dfecf", - "created_date": "2023-09-15T06:13:43.199Z", - "modified_date": "2023-09-15T06:13:43.199Z", + "external_id": "b10bed38-4a06-473a-85f8-87004703bb2a", + "created_date": "2022-09-27T07:13:27.907Z", + "modified_date": "2022-09-27T07:13:27.907Z", "deleted": false, - "name": "Dummy Bed 2", - "description": "", - "bed_type": 2, - "facility": 1, + "name": "Dummy Camera 24", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", "meta": {}, - "location": 2 + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null } }, { - "model": "facility.bed", - "pk": 3, + "model": "facility.asset", + "pk": 25, "fields": { - "external_id": "e7a9c643-4841-47f3-9729-4ccdadb9783a", - "created_date": "2023-09-15T06:13:43.200Z", - "modified_date": "2023-09-15T06:13:43.200Z", + "external_id": "51ce3355-1773-47c0-a929-54bb57293940", + "created_date": "2022-09-27T07:13:30.944Z", + "modified_date": "2022-09-27T07:13:30.944Z", "deleted": false, - "name": "Dummy Bed 3", - "description": "", - "bed_type": 2, - "facility": 1, + "name": "Dummy Camera 25", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", "meta": {}, - "location": 2 + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null } }, { - "model": "facility.bed", - "pk": 5, + "model": "facility.asset", + "pk": 26, "fields": { - "external_id": "fe749328-1a6a-43ae-b4c2-fb718b8ca84b", - "created_date": "2023-09-15T06:14:13.862Z", - "modified_date": "2023-09-15T06:14:13.862Z", + "external_id": "567ddf56-f86a-488e-bdff-9c69daacb654", + "created_date": "2022-09-27T07:13:33.581Z", + "modified_date": "2022-09-27T07:13:33.581Z", "deleted": false, - "name": "Dummy Bed 5", - "description": "", - "bed_type": 1, - "facility": 1, + "name": "Dummy Camera 26", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", "meta": {}, - "location": 1 + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null } }, { - "model": "facility.bed", - "pk": 7, + "model": "facility.asset", + "pk": 27, "fields": { - "external_id": "ddd0ce36-c4ff-409c-96d3-ea943ac876e4", - "created_date": "2023-09-15T06:14:45.458Z", - "modified_date": "2023-09-15T06:14:45.458Z", + "external_id": "234a8559-167b-4e61-9971-15dbc59b9319", + "created_date": "2022-09-27T07:13:37.020Z", + "modified_date": "2022-09-27T07:13:37.020Z", "deleted": false, - "name": "Dummy Bed 6", - "description": "", - "bed_type": 6, - "facility": 1, + "name": "Dummy Camera 27", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", "meta": {}, - "location": 1 + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null } }, { - "model": "facility.bed", - "pk": 8, + "model": "facility.asset", + "pk": 28, "fields": { - "external_id": "90a90743-0a95-42c1-bdf2-b7fbf9b9edd1", - "created_date": "2023-09-15T06:14:56.105Z", - "modified_date": "2023-09-15T06:14:56.105Z", + "external_id": "3f203a24-84ae-44c0-897a-1b3ddd42e072", + "created_date": "2022-09-27T07:13:39.951Z", + "modified_date": "2022-09-27T07:13:39.951Z", "deleted": false, - "name": "Dummy Bed 4", - "description": "", - "bed_type": 2, - "facility": 1, + "name": "Dummy Camera 28", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", "meta": {}, - "location": 1 - } - }, - { - "model": "facility.facilityinventoryitemtag", - "pk": 1, - "fields": { - "name": "Safety" + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null } }, { - "model": "facility.facilityinventoryitemtag", - "pk": 2, + "model": "facility.asset", + "pk": 29, "fields": { - "name": "Medical" + "external_id": "fc4c25cd-de00-494a-ad58-20e581520198", + "created_date": "2022-09-27T07:13:43.511Z", + "modified_date": "2022-09-27T07:13:43.511Z", + "deleted": false, + "name": "Dummy Camera 29", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null } }, { - "model": "facility.facilityinventoryitemtag", - "pk": 3, + "model": "facility.asset", + "pk": 30, "fields": { - "name": "Food" + "external_id": "cb6f3bf8-cfea-498a-a4f1-effae723d6e0", + "created_date": "2022-09-27T07:13:46.850Z", + "modified_date": "2022-09-27T07:13:46.850Z", + "deleted": false, + "name": "Dummy Camera 30", + "description": "This is a dummy camera", + "asset_type": 50, + "asset_class": "ONVIF", + "status": 50, + "current_location": 1, + "is_working": true, + "not_working_reason": "", + "serial_number": "", + "warranty_details": "", + "meta": {}, + "vendor_name": "Vendors Inc.", + "support_name": "", + "support_phone": "+914578889765", + "support_email": "", + "qr_code_id": null, + "manufacturer": null, + "warranty_amc_end_of_validity": null, + "last_service": null } }, { - "model": "facility.facilityinventoryunit", + "model": "facility.patientconsultation", "pk": 1, "fields": { - "name": "Items" - } - }, - { - "model": "facility.facilityinventoryunit", - "pk": 2, - "fields": { - "name": "Dozen" - } - }, - { - "model": "facility.facilityinventoryunit", - "pk": 3, - "fields": { - "name": "Kilo Litre" - } - }, - { - "model": "facility.facilityinventoryunit", - "pk": 4, - "fields": { - "name": "Cylinders" - } - }, - { - "model": "facility.facilityinventoryunit", - "pk": 5, - "fields": { - "name": "kg" - } - }, - { - "model": "facility.facilityinventoryunit", - "pk": 6, - "fields": { - "name": "gram" - } - }, - { - "model": "facility.facilityinventoryunit", - "pk": 7, - "fields": { - "name": "Cubic Meter" - } - }, - { - "model": "facility.facilityinventoryunitconverter", - "pk": 1, - "fields": { - "from_unit": 5, - "to_unit": 6, - "multiplier": 1000.0 + "external_id": "b5217729-3008-4a44-b347-72ba738d5f45", + "created_date": "2022-09-27T07:20:40.117Z", + "modified_date": "2023-12-06T08:35:19.722Z", + "deleted": false, + "patient": 1, + "patient_no": "88.99.44.66", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "3", + "other_symptoms": "", + "symptoms_onset_date": "2022-09-27T07:19:53.380Z", + "deprecated_covid_category": null, + "category": "Moderate", + "examination_details": "", + "history_of_present_illness": "", + "treatment_plan": "", + "consultation_notes": "Transfer", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": 2, + "referred_to_external": null, + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-01T08:35:00Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 0.0, + "weight": 0.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": [], + "discharge_advice": [] } }, { - "model": "facility.facilityinventoryunitconverter", + "model": "facility.patientconsultation", "pk": 2, "fields": { - "from_unit": 2, - "to_unit": 1, - "multiplier": 12.0 + "external_id": "fd33e6f9-0f69-444e-9630-aa5860f57205", + "created_date": "2023-12-06T08:33:23.058Z", + "modified_date": "2023-12-06T08:33:23.066Z", + "deleted": false, + "patient": 2, + "patient_no": "IP007", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "1", + "other_symptoms": "", + "symptoms_onset_date": null, + "deprecated_covid_category": null, + "category": "Stable", + "examination_details": "Examination details and Clinical conditions", + "history_of_present_illness": "history", + "treatment_plan": "", + "consultation_notes": "generalnote", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": null, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-06T08:33:03.700Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 70.0, + "weight": 170.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": {}, + "discharge_advice": {} } }, { - "model": "facility.facilityinventoryitem", - "pk": 1, + "model": "facility.patientconsultation", + "pk": 3, "fields": { - "name": "PPE", - "default_unit": 1, - "description": "", - "min_quantity": 150.0, - "allowed_units": [ - 1, - 2 - ], - "tags": [ - 1, - 2 - ] + "external_id": "b90f4cfc-0e64-446b-94d8-0ffc967b0f48", + "created_date": "2023-12-06T08:39:48.817Z", + "modified_date": "2023-12-06T08:39:48.823Z", + "deleted": false, + "patient": 3, + "patient_no": "IP007", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "1", + "other_symptoms": "", + "symptoms_onset_date": null, + "deprecated_covid_category": null, + "category": "Stable", + "examination_details": "Examination details and Clinical conditions", + "history_of_present_illness": "history", + "treatment_plan": "", + "consultation_notes": "generalnote", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": null, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-06T08:39:29.394Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 70.0, + "weight": 170.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": {}, + "discharge_advice": {} } }, { - "model": "facility.facilityinventoryitem", - "pk": 2, + "model": "facility.patientconsultation", + "pk": 4, "fields": { - "name": "IV Fluid 500 ml", - "default_unit": 1, - "description": "", - "min_quantity": 2.0, - "allowed_units": [ - 1, - 2 - ], - "tags": [ - 2 - ] + "external_id": "40a630be-fdfc-4e78-889d-55f36e11443e", + "created_date": "2023-12-06T08:42:30.113Z", + "modified_date": "2023-12-06T08:42:30.134Z", + "deleted": false, + "patient": 4, + "patient_no": "IP007", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "1", + "other_symptoms": "", + "symptoms_onset_date": null, + "deprecated_covid_category": null, + "category": "Stable", + "examination_details": "Examination details and Clinical conditions", + "history_of_present_illness": "history", + "treatment_plan": "", + "consultation_notes": "generalnote", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": null, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-06T08:42:10.532Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 70.0, + "weight": 170.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": {}, + "discharge_advice": {} } }, { - "model": "facility.facilityinventoryitem", - "pk": 3, + "model": "facility.patientconsultation", + "pk": 5, "fields": { - "name": "Liquid Oxygen", - "default_unit": 7, - "description": "", - "min_quantity": 10.0, - "allowed_units": [ - 7 - ], - "tags": [ - 2 - ] - } - }, - { - "model": "facility.facilityinventoryitem", + "external_id": "1d83bd7a-971d-4333-a385-a983883bca5a", + "created_date": "2023-12-06T08:42:52.646Z", + "modified_date": "2023-12-06T08:42:52.652Z", + "deleted": false, + "patient": 5, + "patient_no": "IP007", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "1", + "other_symptoms": "", + "symptoms_onset_date": null, + "deprecated_covid_category": null, + "category": "Stable", + "examination_details": "Examination details and Clinical conditions", + "history_of_present_illness": "history", + "treatment_plan": "", + "consultation_notes": "generalnote", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": null, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-06T08:42:33.614Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 70.0, + "weight": 170.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": {}, + "discharge_advice": {} + } + }, + { + "model": "facility.patientconsultation", + "pk": 6, + "fields": { + "external_id": "57ea2f11-2a5a-4899-9085-8dcbf2c851df", + "created_date": "2023-12-06T08:43:14.966Z", + "modified_date": "2023-12-06T08:43:14.972Z", + "deleted": false, + "patient": 6, + "patient_no": "IP007", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "1", + "other_symptoms": "", + "symptoms_onset_date": null, + "deprecated_covid_category": null, + "category": "Stable", + "examination_details": "Examination details and Clinical conditions", + "history_of_present_illness": "history", + "treatment_plan": "", + "consultation_notes": "generalnote", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": null, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-06T08:42:56.180Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 70.0, + "weight": 170.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": {}, + "discharge_advice": {} + } + }, + { + "model": "facility.patientconsultation", + "pk": 7, + "fields": { + "external_id": "a54b752b-b2f3-48ea-8024-d18c3611541a", + "created_date": "2023-12-06T08:43:38.021Z", + "modified_date": "2023-12-06T08:43:38.025Z", + "deleted": false, + "patient": 7, + "patient_no": "IP007", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "1", + "other_symptoms": "", + "symptoms_onset_date": null, + "deprecated_covid_category": null, + "category": "Stable", + "examination_details": "Examination details and Clinical conditions", + "history_of_present_illness": "history", + "treatment_plan": "", + "consultation_notes": "generalnote", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": null, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-06T08:43:18.480Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 70.0, + "weight": 170.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": {}, + "discharge_advice": {} + } + }, + { + "model": "facility.patientconsultation", + "pk": 8, + "fields": { + "external_id": "15ca37ce-ff08-46ca-9c89-8f54a3997e38", + "created_date": "2023-12-06T08:44:01.903Z", + "modified_date": "2023-12-06T08:44:01.909Z", + "deleted": false, + "patient": 8, + "patient_no": "IP007", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "1", + "other_symptoms": "", + "symptoms_onset_date": null, + "deprecated_covid_category": null, + "category": "Stable", + "examination_details": "Examination details and Clinical conditions", + "history_of_present_illness": "history", + "treatment_plan": "", + "consultation_notes": "generalnote", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": null, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-06T08:43:41.540Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 70.0, + "weight": 170.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": {}, + "discharge_advice": {} + } + }, + { + "model": "facility.patientconsultation", + "pk": 9, + "fields": { + "external_id": "3fa53a10-7826-44d9-903d-2e9a4b4cb7aa", + "created_date": "2023-12-06T08:44:25.102Z", + "modified_date": "2023-12-06T08:44:25.107Z", + "deleted": false, + "patient": 9, + "patient_no": "IP007", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "1", + "other_symptoms": "", + "symptoms_onset_date": null, + "deprecated_covid_category": null, + "category": "Stable", + "examination_details": "Examination details and Clinical conditions", + "history_of_present_illness": "history", + "treatment_plan": "", + "consultation_notes": "generalnote", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": null, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-06T08:44:05.398Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 70.0, + "weight": 170.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": {}, + "discharge_advice": {} + } + }, + { + "model": "facility.patientconsultation", + "pk": 10, + "fields": { + "external_id": "12ce58d7-f620-4fa0-948b-73b4c3768664", + "created_date": "2023-12-06T08:44:47.678Z", + "modified_date": "2023-12-06T08:44:47.683Z", + "deleted": false, + "patient": 10, + "patient_no": "IP007", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "1", + "other_symptoms": "", + "symptoms_onset_date": null, + "deprecated_covid_category": null, + "category": "Stable", + "examination_details": "Examination details and Clinical conditions", + "history_of_present_illness": "history", + "treatment_plan": "", + "consultation_notes": "generalnote", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": null, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-06T08:44:28.550Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 70.0, + "weight": 170.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": {}, + "discharge_advice": {} + } + }, + { + "model": "facility.patientconsultation", + "pk": 11, + "fields": { + "external_id": "cef1f33e-a885-4ccc-98c6-c6874dad0211", + "created_date": "2023-12-06T08:45:10.163Z", + "modified_date": "2023-12-06T08:45:10.167Z", + "deleted": false, + "patient": 11, + "patient_no": "IP007", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "1", + "other_symptoms": "", + "symptoms_onset_date": null, + "deprecated_covid_category": null, + "category": "Stable", + "examination_details": "Examination details and Clinical conditions", + "history_of_present_illness": "history", + "treatment_plan": "", + "consultation_notes": "generalnote", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": null, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-06T08:44:51.239Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 70.0, + "weight": 170.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": {}, + "discharge_advice": {} + } + }, + { + "model": "facility.patientconsultation", + "pk": 12, + "fields": { + "external_id": "1809ded5-b049-43e5-ab95-44a6f382bfd9", + "created_date": "2023-12-06T08:45:34.520Z", + "modified_date": "2023-12-06T08:45:34.527Z", + "deleted": false, + "patient": 12, + "patient_no": "IP007", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "1", + "other_symptoms": "", + "symptoms_onset_date": null, + "deprecated_covid_category": null, + "category": "Stable", + "examination_details": "Examination details and Clinical conditions", + "history_of_present_illness": "history", + "treatment_plan": "", + "consultation_notes": "generalnote", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": null, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-06T08:45:13.721Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 70.0, + "weight": 170.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": {}, + "discharge_advice": {} + } + }, + { + "model": "facility.patientconsultation", + "pk": 13, + "fields": { + "external_id": "6fe3d7c5-75c3-4380-ae9a-ce2a6f6774b9", + "created_date": "2023-12-06T08:45:57.141Z", + "modified_date": "2023-12-06T08:45:57.145Z", + "deleted": false, + "patient": 13, + "patient_no": "IP007", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "1", + "other_symptoms": "", + "symptoms_onset_date": null, + "deprecated_covid_category": null, + "category": "Stable", + "examination_details": "Examination details and Clinical conditions", + "history_of_present_illness": "history", + "treatment_plan": "", + "consultation_notes": "generalnote", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": null, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-06T08:45:37.972Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 70.0, + "weight": 170.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": {}, + "discharge_advice": {} + } + }, + { + "model": "facility.patientconsultation", + "pk": 14, + "fields": { + "external_id": "ed13c3ec-fb5b-4c91-ab6c-25ca6eef6c57", + "created_date": "2023-12-06T08:46:19.948Z", + "modified_date": "2023-12-06T08:46:19.952Z", + "deleted": false, + "patient": 14, + "patient_no": "IP007", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "1", + "other_symptoms": "", + "symptoms_onset_date": null, + "deprecated_covid_category": null, + "category": "Stable", + "examination_details": "Examination details and Clinical conditions", + "history_of_present_illness": "history", + "treatment_plan": "", + "consultation_notes": "generalnote", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": null, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-06T08:46:00.645Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 70.0, + "weight": 170.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": {}, + "discharge_advice": {} + } + }, + { + "model": "facility.patientconsultation", + "pk": 15, + "fields": { + "external_id": "c3c2391c-7391-4b38-bff9-9527eb6065a7", + "created_date": "2023-12-06T08:46:42.592Z", + "modified_date": "2023-12-06T08:46:42.597Z", + "deleted": false, + "patient": 15, + "patient_no": "IP007", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "1", + "other_symptoms": "", + "symptoms_onset_date": null, + "deprecated_covid_category": null, + "category": "Stable", + "examination_details": "Examination details and Clinical conditions", + "history_of_present_illness": "history", + "treatment_plan": "", + "consultation_notes": "generalnote", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": null, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-06T08:46:23.492Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 70.0, + "weight": 170.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": {}, + "discharge_advice": {} + } + }, + { + "model": "facility.patientconsultation", + "pk": 16, + "fields": { + "external_id": "edec5285-0faa-4cf3-a638-3c30eccf9d49", + "created_date": "2023-12-06T08:47:07.442Z", + "modified_date": "2023-12-06T08:47:07.447Z", + "deleted": false, + "patient": 16, + "patient_no": "IP007", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "1", + "other_symptoms": "", + "symptoms_onset_date": null, + "deprecated_covid_category": null, + "category": "Stable", + "examination_details": "Examination details and Clinical conditions", + "history_of_present_illness": "history", + "treatment_plan": "", + "consultation_notes": "generalnote", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": null, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-06T08:46:46.028Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 70.0, + "weight": 170.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": {}, + "discharge_advice": {} + } + }, + { + "model": "facility.patientconsultation", + "pk": 17, + "fields": { + "external_id": "58eb7dae-b0c8-445f-8d2c-5ff0017679a9", + "created_date": "2023-12-06T08:47:30.858Z", + "modified_date": "2023-12-06T08:47:30.863Z", + "deleted": false, + "patient": 17, + "patient_no": "IP007", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "1", + "other_symptoms": "", + "symptoms_onset_date": null, + "deprecated_covid_category": null, + "category": "Stable", + "examination_details": "Examination details and Clinical conditions", + "history_of_present_illness": "history", + "treatment_plan": "", + "consultation_notes": "generalnote", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": null, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-06T08:47:11.141Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 70.0, + "weight": 170.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": {}, + "discharge_advice": {} + } + }, + { + "model": "facility.patientconsultation", + "pk": 18, + "fields": { + "external_id": "40faecc6-6199-48cd-bc2a-dd9e73b920f9", + "created_date": "2023-12-06T08:47:53.746Z", + "modified_date": "2023-12-06T08:47:53.751Z", + "deleted": false, + "patient": 18, + "patient_no": "IP007", + "facility": 1, + "deprecated_diagnosis": "", + "deprecated_icd11_provisional_diagnoses": "[]", + "deprecated_icd11_diagnoses": "[]", + "deprecated_icd11_principal_diagnosis": "", + "symptoms": "1", + "other_symptoms": "", + "symptoms_onset_date": null, + "deprecated_covid_category": null, + "category": "Stable", + "examination_details": "Examination details and Clinical conditions", + "history_of_present_illness": "history", + "treatment_plan": "", + "consultation_notes": "generalnote", + "course_in_facility": null, + "investigation": [], + "prescriptions": {}, + "procedure": [], + "suggestion": "A", + "route_to_facility": 10, + "review_interval": -1, + "referred_to": null, + "referred_to_external": "", + "transferred_from_location": null, + "referred_from_facility": null, + "referred_from_facility_external": "", + "referred_by_external": "", + "is_readmission": false, + "admitted": true, + "admission_date": "2023-12-06T08:47:34.395Z", + "icu_admission_date": null, + "discharge_date": null, + "discharge_reason": null, + "discharge_notes": "", + "discharge_prescription": {}, + "discharge_prn_prescription": {}, + "death_datetime": null, + "death_confirmed_doctor": "", + "bed_number": null, + "is_kasp": false, + "kasp_enabled_date": null, + "is_telemedicine": false, + "last_updated_by_telemedicine": false, + "assigned_to": null, + "medico_legal_case": false, + "deprecated_verified_by": "", + "treating_physician": 21, + "created_by": 2, + "last_edited_by": 2, + "last_daily_round": null, + "current_bed": null, + "height": 70.0, + "weight": 170.0, + "operation": null, + "special_instruction": "", + "intubation_history": [], + "prn_prescription": {}, + "discharge_advice": {} + } + }, + { + "model": "facility.bed", + "pk": 1, + "fields": { + "external_id": "260de825-7ef2-4155-8fd2-ae4d66980734", + "created_date": "2023-09-15T06:13:43.199Z", + "modified_date": "2023-09-15T06:13:43.199Z", + "deleted": false, + "name": "Dummy Bed 1", + "description": "", + "bed_type": 2, + "facility": 1, + "meta": {}, + "location": 2 + } + }, + { + "model": "facility.bed", + "pk": 2, + "fields": { + "external_id": "8ab99d71-7263-4c60-b6d4-b22e7f8dfecf", + "created_date": "2023-09-15T06:13:43.199Z", + "modified_date": "2023-09-15T06:13:43.199Z", + "deleted": false, + "name": "Dummy Bed 2", + "description": "", + "bed_type": 2, + "facility": 1, + "meta": {}, + "location": 2 + } + }, + { + "model": "facility.bed", + "pk": 3, + "fields": { + "external_id": "e7a9c643-4841-47f3-9729-4ccdadb9783a", + "created_date": "2023-09-15T06:13:43.200Z", + "modified_date": "2023-09-15T06:13:43.200Z", + "deleted": false, + "name": "Dummy Bed 3", + "description": "", + "bed_type": 2, + "facility": 1, + "meta": {}, + "location": 2 + } + }, + { + "model": "facility.bed", + "pk": 5, + "fields": { + "external_id": "fe749328-1a6a-43ae-b4c2-fb718b8ca84b", + "created_date": "2023-09-15T06:14:13.862Z", + "modified_date": "2023-09-15T06:14:13.862Z", + "deleted": false, + "name": "Dummy Bed 5", + "description": "", + "bed_type": 1, + "facility": 1, + "meta": {}, + "location": 1 + } + }, + { + "model": "facility.bed", + "pk": 7, + "fields": { + "external_id": "ddd0ce36-c4ff-409c-96d3-ea943ac876e4", + "created_date": "2023-09-15T06:14:45.458Z", + "modified_date": "2023-09-15T06:14:45.458Z", + "deleted": false, + "name": "Dummy Bed 6", + "description": "", + "bed_type": 6, + "facility": 1, + "meta": {}, + "location": 1 + } + }, + { + "model": "facility.bed", + "pk": 8, + "fields": { + "external_id": "90a90743-0a95-42c1-bdf2-b7fbf9b9edd1", + "created_date": "2023-09-15T06:14:56.105Z", + "modified_date": "2023-09-15T06:14:56.105Z", + "deleted": false, + "name": "Dummy Bed 4", + "description": "", + "bed_type": 2, + "facility": 1, + "meta": {}, + "location": 1 + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 1, + "fields": { + "external_id": "aca5d4d3-c979-4f73-a270-f48ade0020bf", + "created_date": "2023-12-06T08:33:23.076Z", + "modified_date": "2023-12-06T08:33:23.076Z", + "deleted": false, + "consultation": 2, + "diagnosis": 257068234, + "verification_status": "confirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 2, + "fields": { + "external_id": "dbe31bff-7cf8-45a4-a10e-ccc91241f71d", + "created_date": "2023-12-06T08:34:26.479Z", + "modified_date": "2023-12-06T08:34:34.510Z", + "deleted": false, + "consultation": 1, + "diagnosis": 135352227, + "verification_status": "confirmed", + "is_principal": true, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 3, + "fields": { + "external_id": "59ea31be-1496-4c26-9974-44c6ddd90ee4", + "created_date": "2023-12-06T08:34:30.336Z", + "modified_date": "2023-12-06T08:34:30.336Z", + "deleted": false, + "consultation": 1, + "diagnosis": 588616678, + "verification_status": "unconfirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 4, + "fields": { + "external_id": "8b30b7ff-1ef3-4afb-85ef-29f02c09aaf0", + "created_date": "2023-12-06T08:39:48.833Z", + "modified_date": "2023-12-06T08:39:48.833Z", + "deleted": false, + "consultation": 3, + "diagnosis": 257068234, + "verification_status": "confirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 5, + "fields": { + "external_id": "5f151cf3-d282-4f20-bb90-3a28a30f10d7", + "created_date": "2023-12-06T08:42:30.143Z", + "modified_date": "2023-12-06T08:42:30.143Z", + "deleted": false, + "consultation": 4, + "diagnosis": 257068234, + "verification_status": "confirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 6, + "fields": { + "external_id": "dbb207b4-d305-47c8-85e2-46d123a82d13", + "created_date": "2023-12-06T08:42:52.660Z", + "modified_date": "2023-12-06T08:42:52.660Z", + "deleted": false, + "consultation": 5, + "diagnosis": 257068234, + "verification_status": "confirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 7, + "fields": { + "external_id": "9bb20516-ac19-4cf6-a202-6698dcde56f7", + "created_date": "2023-12-06T08:43:14.981Z", + "modified_date": "2023-12-06T08:43:14.981Z", + "deleted": false, + "consultation": 6, + "diagnosis": 257068234, + "verification_status": "confirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 8, + "fields": { + "external_id": "b11ad018-c24c-4376-b52a-885f771fc5b0", + "created_date": "2023-12-06T08:43:38.034Z", + "modified_date": "2023-12-06T08:43:38.034Z", + "deleted": false, + "consultation": 7, + "diagnosis": 257068234, + "verification_status": "confirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 9, + "fields": { + "external_id": "bff43fd6-8d86-4dec-a0dc-ce39a8d9a834", + "created_date": "2023-12-06T08:44:01.917Z", + "modified_date": "2023-12-06T08:44:01.917Z", + "deleted": false, + "consultation": 8, + "diagnosis": 257068234, + "verification_status": "confirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 10, + "fields": { + "external_id": "361fa680-c249-474c-9da0-98c6e74f50ae", + "created_date": "2023-12-06T08:44:25.116Z", + "modified_date": "2023-12-06T08:44:25.116Z", + "deleted": false, + "consultation": 9, + "diagnosis": 257068234, + "verification_status": "confirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 11, + "fields": { + "external_id": "aae53127-48e6-422d-aa4d-5da6d4557353", + "created_date": "2023-12-06T08:44:47.692Z", + "modified_date": "2023-12-06T08:44:47.692Z", + "deleted": false, + "consultation": 10, + "diagnosis": 257068234, + "verification_status": "confirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 12, + "fields": { + "external_id": "459b39d1-99cc-42d3-8414-e5cb3f34d1b2", + "created_date": "2023-12-06T08:45:10.176Z", + "modified_date": "2023-12-06T08:45:10.176Z", + "deleted": false, + "consultation": 11, + "diagnosis": 257068234, + "verification_status": "confirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 13, + "fields": { + "external_id": "19c26f85-8ef6-4f98-8afe-9a93479b8f80", + "created_date": "2023-12-06T08:45:34.535Z", + "modified_date": "2023-12-06T08:45:34.535Z", + "deleted": false, + "consultation": 12, + "diagnosis": 257068234, + "verification_status": "confirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 14, + "fields": { + "external_id": "daa65889-1050-49c7-8989-6ab282d01079", + "created_date": "2023-12-06T08:45:57.155Z", + "modified_date": "2023-12-06T08:45:57.155Z", + "deleted": false, + "consultation": 13, + "diagnosis": 257068234, + "verification_status": "confirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 15, + "fields": { + "external_id": "28294952-3e7c-459f-a3eb-d261d90b9d16", + "created_date": "2023-12-06T08:46:19.962Z", + "modified_date": "2023-12-06T08:46:19.962Z", + "deleted": false, + "consultation": 14, + "diagnosis": 257068234, + "verification_status": "confirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 16, + "fields": { + "external_id": "14975ed1-0e44-44ef-97e8-e5d3f6f7b46e", + "created_date": "2023-12-06T08:46:42.604Z", + "modified_date": "2023-12-06T08:46:42.604Z", + "deleted": false, + "consultation": 15, + "diagnosis": 257068234, + "verification_status": "confirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 17, + "fields": { + "external_id": "6dd6fe30-780f-43c6-b4db-c9032d677fcd", + "created_date": "2023-12-06T08:47:07.454Z", + "modified_date": "2023-12-06T08:47:07.454Z", + "deleted": false, + "consultation": 16, + "diagnosis": 257068234, + "verification_status": "confirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 18, + "fields": { + "external_id": "641ff300-f53d-483b-8936-5691691ba8cf", + "created_date": "2023-12-06T08:47:30.871Z", + "modified_date": "2023-12-06T08:47:30.871Z", + "deleted": false, + "consultation": 17, + "diagnosis": 257068234, + "verification_status": "confirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.consultationdiagnosis", + "pk": 19, + "fields": { + "external_id": "2f6d8800-bd96-4d0d-8923-c0b1fad52c95", + "created_date": "2023-12-06T08:47:53.759Z", + "modified_date": "2023-12-06T08:47:53.759Z", + "deleted": false, + "consultation": 18, + "diagnosis": 257068234, + "verification_status": "confirmed", + "is_principal": false, + "created_by": 2, + "is_migrated": false + } + }, + { + "model": "facility.facilityinventoryitemtag", + "pk": 1, + "fields": { + "name": "Safety" + } + }, + { + "model": "facility.facilityinventoryitemtag", + "pk": 2, + "fields": { + "name": "Medical" + } + }, + { + "model": "facility.facilityinventoryitemtag", + "pk": 3, + "fields": { + "name": "Food" + } + }, + { + "model": "facility.facilityinventoryunit", + "pk": 1, + "fields": { + "name": "Items" + } + }, + { + "model": "facility.facilityinventoryunit", + "pk": 2, + "fields": { + "name": "Dozen" + } + }, + { + "model": "facility.facilityinventoryunit", + "pk": 3, + "fields": { + "name": "Kilo Litre" + } + }, + { + "model": "facility.facilityinventoryunit", + "pk": 4, + "fields": { + "name": "Cylinders" + } + }, + { + "model": "facility.facilityinventoryunit", + "pk": 5, + "fields": { + "name": "kg" + } + }, + { + "model": "facility.facilityinventoryunit", + "pk": 6, + "fields": { + "name": "gram" + } + }, + { + "model": "facility.facilityinventoryunit", + "pk": 7, + "fields": { + "name": "Cubic Meter" + } + }, + { + "model": "facility.facilityinventoryunitconverter", + "pk": 1, + "fields": { + "from_unit": 5, + "to_unit": 6, + "multiplier": 1000.0 + } + }, + { + "model": "facility.facilityinventoryunitconverter", + "pk": 2, + "fields": { + "from_unit": 2, + "to_unit": 1, + "multiplier": 12.0 + } + }, + { + "model": "facility.facilityinventoryitem", + "pk": 1, + "fields": { + "name": "PPE", + "default_unit": 1, + "description": "", + "min_quantity": 150.0, + "allowed_units": [ + 1, + 2 + ], + "tags": [ + 1, + 2 + ] + } + }, + { + "model": "facility.facilityinventoryitem", + "pk": 2, + "fields": { + "name": "IV Fluid 500 ml", + "default_unit": 1, + "description": "", + "min_quantity": 2.0, + "allowed_units": [ + 1, + 2 + ], + "tags": [ + 2 + ] + } + }, + { + "model": "facility.facilityinventoryitem", + "pk": 3, + "fields": { + "name": "Liquid Oxygen", + "default_unit": 7, + "description": "", + "min_quantity": 10.0, + "allowed_units": [ + 7 + ], + "tags": [ + 2 + ] + } + }, + { + "model": "facility.facilityinventoryitem", + "pk": 4, + "fields": { + "name": "Jumbo D Type Oxygen Cylinder", + "default_unit": 4, + "description": "", + "min_quantity": 100.0, + "allowed_units": [ + 4 + ], + "tags": [] + } + }, + { + "model": "facility.facilityinventoryitem", + "pk": 5, + "fields": { + "name": "B Type Oxygen Cylinder", + "default_unit": 4, + "description": "", + "min_quantity": 100.0, + "allowed_units": [ + 4 + ], + "tags": [] + } + }, + { + "model": "facility.facilityinventoryitem", + "pk": 6, + "fields": { + "name": "C Type Oxygen Cylinder", + "default_unit": 4, + "description": "", + "min_quantity": 100.0, + "allowed_units": [ + 4 + ], + "tags": [] + } + }, + { + "model": "facility.facilityinventoryitem", + "pk": 7, + "fields": { + "name": "Gaseous Oxygen", + "default_unit": 7, + "description": "", + "min_quantity": 10.0, + "allowed_units": [ + 7 + ], + "tags": [ + 2 + ] + } + }, + { + "model": "facility.patientregistration", + "pk": 1, + "fields": { + "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", + "created_date": "2022-09-27T07:19:20.379Z", + "modified_date": "2023-12-06T08:36:48.093Z", + "deleted": false, + "source": 10, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient", + "age": 18, + "gender": 1, + "phone_number": "+919987455444", + "emergency_phone_number": "+919898797775", + "address": "55.66.44.33", + "permanent_address": "55.66.44.33", + "pincode": 600115, + "date_of_birth": "2005-10-16", + "year_of_birth": 2005, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "ward": 5896, + "local_body": 95, + "district": 5, + "state": 1, + "is_migrant_worker": false, + "disease_status": 3, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, + "action": 10, + "review_time": null, + "created_by": 2, + "is_active": true, + "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 30, + "allow_transfer": true, + "last_consultation": 1, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": false, + "date_declared_positive": null, + "assigned_to": null, + "abha_number": null + } + }, + { + "model": "facility.patientregistration", + "pk": 2, + "fields": { + "external_id": "018f0db5-aa36-4f61-bf68-213f01ab77b1", + "created_date": "2023-12-06T08:33:11.523Z", + "modified_date": "2023-12-06T08:33:23.094Z", + "deleted": false, + "source": 10, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Test E2E User", + "age": 22, + "gender": 1, + "phone_number": "+919765259927", + "emergency_phone_number": "+919228973557", + "address": "Test Patient Address", + "permanent_address": "Test Patient Address", + "pincode": 682001, + "date_of_birth": "2001-01-01", + "year_of_birth": 2001, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, + "is_migrant_worker": false, + "disease_status": 3, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, + "action": 10, + "review_time": null, + "created_by": 2, + "is_active": true, + "date_of_receipt_of_information": "2023-12-06T08:33:11.521Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 10, + "allow_transfer": true, + "last_consultation": 2, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": false, + "date_declared_positive": null, + "assigned_to": null, + "abha_number": null + } + }, + { + "model": "facility.patientregistration", + "pk": 3, + "fields": { + "external_id": "dc8595ed-dc7a-4a58-a730-459506a6de7b", + "created_date": "2023-12-06T08:39:37.467Z", + "modified_date": "2023-12-06T08:39:48.866Z", + "deleted": false, + "source": 10, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient 1", + "age": 22, + "gender": 1, + "phone_number": "+919192495353", + "emergency_phone_number": "+919460491040", + "address": "Test Patient Address", + "permanent_address": "Test Patient Address", + "pincode": 682001, + "date_of_birth": "2001-01-01", + "year_of_birth": 2001, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, + "is_migrant_worker": false, + "disease_status": 3, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, + "action": 10, + "review_time": null, + "created_by": 2, + "is_active": true, + "date_of_receipt_of_information": "2023-12-06T08:39:37.465Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 10, + "allow_transfer": true, + "last_consultation": 3, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": false, + "date_declared_positive": null, + "assigned_to": null, + "abha_number": null + } + }, + { + "model": "facility.patientregistration", "pk": 4, "fields": { - "name": "Jumbo D Type Oxygen Cylinder", - "default_unit": 4, - "description": "", - "min_quantity": 100.0, - "allowed_units": [ - 4 - ], - "tags": [] + "external_id": "fceae5ef-c56a-4428-bbfd-b175c7ff8bcb", + "created_date": "2023-12-06T08:42:18.800Z", + "modified_date": "2023-12-06T08:42:30.156Z", + "deleted": false, + "source": 10, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient 2", + "age": 22, + "gender": 1, + "phone_number": "+919112608904", + "emergency_phone_number": "+919110616234", + "address": "Test Patient Address", + "permanent_address": "Test Patient Address", + "pincode": 682001, + "date_of_birth": "2001-01-01", + "year_of_birth": 2001, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, + "is_migrant_worker": false, + "disease_status": 3, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, + "action": 10, + "review_time": null, + "created_by": 2, + "is_active": true, + "date_of_receipt_of_information": "2023-12-06T08:42:18.798Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 10, + "allow_transfer": true, + "last_consultation": 4, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": false, + "date_declared_positive": null, + "assigned_to": null, + "abha_number": null + } + }, + { + "model": "facility.patientregistration", + "pk": 5, + "fields": { + "external_id": "bba42a24-b755-4d78-bf7c-70bfd3047857", + "created_date": "2023-12-06T08:42:41.321Z", + "modified_date": "2023-12-06T08:42:52.672Z", + "deleted": false, + "source": 10, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient 3", + "age": 22, + "gender": 1, + "phone_number": "+919640229897", + "emergency_phone_number": "+919135436547", + "address": "Test Patient Address", + "permanent_address": "Test Patient Address", + "pincode": 682001, + "date_of_birth": "2001-01-01", + "year_of_birth": 2001, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, + "is_migrant_worker": false, + "disease_status": 3, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, + "action": 10, + "review_time": null, + "created_by": 2, + "is_active": true, + "date_of_receipt_of_information": "2023-12-06T08:42:41.320Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 10, + "allow_transfer": true, + "last_consultation": 5, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": false, + "date_declared_positive": null, + "assigned_to": null, + "abha_number": null + } + }, + { + "model": "facility.patientregistration", + "pk": 6, + "fields": { + "external_id": "779fee10-d266-4e86-9172-822aee40172a", + "created_date": "2023-12-06T08:43:03.778Z", + "modified_date": "2023-12-06T08:43:14.993Z", + "deleted": false, + "source": 10, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient 4", + "age": 22, + "gender": 1, + "phone_number": "+919762277015", + "emergency_phone_number": "+919342634016", + "address": "Test Patient Address", + "permanent_address": "Test Patient Address", + "pincode": 682001, + "date_of_birth": "2001-01-01", + "year_of_birth": 2001, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, + "is_migrant_worker": false, + "disease_status": 3, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, + "action": 10, + "review_time": null, + "created_by": 2, + "is_active": true, + "date_of_receipt_of_information": "2023-12-06T08:43:03.777Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 10, + "allow_transfer": true, + "last_consultation": 6, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": false, + "date_declared_positive": null, + "assigned_to": null, + "abha_number": null + } + }, + { + "model": "facility.patientregistration", + "pk": 7, + "fields": { + "external_id": "366dcf68-6ea7-481c-84e1-a11f3eb055d2", + "created_date": "2023-12-06T08:43:26.604Z", + "modified_date": "2023-12-06T08:43:38.047Z", + "deleted": false, + "source": 10, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient 5", + "age": 22, + "gender": 1, + "phone_number": "+919303212282", + "emergency_phone_number": "+919229738916", + "address": "Test Patient Address", + "permanent_address": "Test Patient Address", + "pincode": 682001, + "date_of_birth": "2001-01-01", + "year_of_birth": 2001, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, + "is_migrant_worker": false, + "disease_status": 3, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, + "action": 10, + "review_time": null, + "created_by": 2, + "is_active": true, + "date_of_receipt_of_information": "2023-12-06T08:43:26.604Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 10, + "allow_transfer": true, + "last_consultation": 7, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": false, + "date_declared_positive": null, + "assigned_to": null, + "abha_number": null + } + }, + { + "model": "facility.patientregistration", + "pk": 8, + "fields": { + "external_id": "de9156b5-14f1-4d62-b594-061aa09484ce", + "created_date": "2023-12-06T08:43:50.497Z", + "modified_date": "2023-12-06T08:44:01.931Z", + "deleted": false, + "source": 10, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient 6", + "age": 22, + "gender": 1, + "phone_number": "+919740701377", + "emergency_phone_number": "+919321666516", + "address": "Test Patient Address", + "permanent_address": "Test Patient Address", + "pincode": 682001, + "date_of_birth": "2001-01-01", + "year_of_birth": 2001, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, + "is_migrant_worker": false, + "disease_status": 3, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, + "action": 10, + "review_time": null, + "created_by": 2, + "is_active": true, + "date_of_receipt_of_information": "2023-12-06T08:43:50.496Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 10, + "allow_transfer": true, + "last_consultation": 8, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": false, + "date_declared_positive": null, + "assigned_to": null, + "abha_number": null + } + }, + { + "model": "facility.patientregistration", + "pk": 9, + "fields": { + "external_id": "40901064-1485-4a70-be25-4deac6761a1a", + "created_date": "2023-12-06T08:44:13.721Z", + "modified_date": "2023-12-06T08:44:25.130Z", + "deleted": false, + "source": 10, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient 7", + "age": 22, + "gender": 1, + "phone_number": "+919148299129", + "emergency_phone_number": "+919267280161", + "address": "Test Patient Address", + "permanent_address": "Test Patient Address", + "pincode": 682001, + "date_of_birth": "2001-01-01", + "year_of_birth": 2001, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, + "is_migrant_worker": false, + "disease_status": 3, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, + "action": 10, + "review_time": null, + "created_by": 2, + "is_active": true, + "date_of_receipt_of_information": "2023-12-06T08:44:13.720Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 10, + "allow_transfer": true, + "last_consultation": 9, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": false, + "date_declared_positive": null, + "assigned_to": null, + "abha_number": null + } + }, + { + "model": "facility.patientregistration", + "pk": 10, + "fields": { + "external_id": "658d1b4b-2061-4d8b-85da-ebf95d9e2789", + "created_date": "2023-12-06T08:44:36.349Z", + "modified_date": "2023-12-06T08:44:47.705Z", + "deleted": false, + "source": 10, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient 8", + "age": 22, + "gender": 1, + "phone_number": "+919490490290", + "emergency_phone_number": "+919828674710", + "address": "Test Patient Address", + "permanent_address": "Test Patient Address", + "pincode": 682001, + "date_of_birth": "2001-01-01", + "year_of_birth": 2001, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, + "is_migrant_worker": false, + "disease_status": 3, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, + "action": 10, + "review_time": null, + "created_by": 2, + "is_active": true, + "date_of_receipt_of_information": "2023-12-06T08:44:36.348Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 10, + "allow_transfer": true, + "last_consultation": 10, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": false, + "date_declared_positive": null, + "assigned_to": null, + "abha_number": null } }, { - "model": "facility.facilityinventoryitem", - "pk": 5, + "model": "facility.patientregistration", + "pk": 11, "fields": { - "name": "B Type Oxygen Cylinder", - "default_unit": 4, - "description": "", - "min_quantity": 100.0, - "allowed_units": [ - 4 - ], - "tags": [] + "external_id": "200ed4e4-7a2f-49d8-b50b-51fed5d830e7", + "created_date": "2023-12-06T08:44:58.881Z", + "modified_date": "2023-12-06T08:45:10.188Z", + "deleted": false, + "source": 10, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient 9", + "age": 22, + "gender": 1, + "phone_number": "+919983927490", + "emergency_phone_number": "+919781111140", + "address": "Test Patient Address", + "permanent_address": "Test Patient Address", + "pincode": 682001, + "date_of_birth": "2001-01-01", + "year_of_birth": 2001, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, + "is_migrant_worker": false, + "disease_status": 3, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, + "action": 10, + "review_time": null, + "created_by": 2, + "is_active": true, + "date_of_receipt_of_information": "2023-12-06T08:44:58.879Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 10, + "allow_transfer": true, + "last_consultation": 11, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": false, + "date_declared_positive": null, + "assigned_to": null, + "abha_number": null } }, { - "model": "facility.facilityinventoryitem", - "pk": 6, + "model": "facility.patientregistration", + "pk": 12, "fields": { - "name": "C Type Oxygen Cylinder", - "default_unit": 4, - "description": "", - "min_quantity": 100.0, - "allowed_units": [ - 4 - ], - "tags": [] + "external_id": "a51d94bf-8951-4706-9e91-68cde0c470e4", + "created_date": "2023-12-06T08:45:21.706Z", + "modified_date": "2023-12-06T08:45:34.547Z", + "deleted": false, + "source": 10, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient 10", + "age": 22, + "gender": 1, + "phone_number": "+919849511866", + "emergency_phone_number": "+919622326248", + "address": "Test Patient Address", + "permanent_address": "Test Patient Address", + "pincode": 682001, + "date_of_birth": "2001-01-01", + "year_of_birth": 2001, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, + "is_migrant_worker": false, + "disease_status": 3, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, + "action": 10, + "review_time": null, + "created_by": 2, + "is_active": true, + "date_of_receipt_of_information": "2023-12-06T08:45:21.705Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 10, + "allow_transfer": true, + "last_consultation": 12, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": false, + "date_declared_positive": null, + "assigned_to": null, + "abha_number": null } }, { - "model": "facility.facilityinventoryitem", - "pk": 7, + "model": "facility.patientregistration", + "pk": 13, "fields": { - "name": "Gaseous Oxygen", - "default_unit": 7, - "description": "", - "min_quantity": 10.0, - "allowed_units": [ - 7 - ], - "tags": [ - 2 - ] + "external_id": "b348dd92-be95-4e20-b929-e2bf7d6bf2e9", + "created_date": "2023-12-06T08:45:45.771Z", + "modified_date": "2023-12-06T08:45:57.167Z", + "deleted": false, + "source": 10, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient 11", + "age": 22, + "gender": 1, + "phone_number": "+919343556704", + "emergency_phone_number": "+919967920474", + "address": "Test Patient Address", + "permanent_address": "Test Patient Address", + "pincode": 682001, + "date_of_birth": "2001-01-01", + "year_of_birth": 2001, + "nationality": "India", + "passport_no": "", + "is_medical_worker": false, + "blood_group": "O+", + "contact_with_confirmed_carrier": false, + "contact_with_suspected_carrier": false, + "estimated_contact_date": null, + "past_travel": false, + "countries_travelled_old": null, + "countries_travelled": null, + "date_of_return": null, + "allergies": "", + "present_health": "", + "ongoing_medication": "", + "has_SARI": false, + "is_antenatal": false, + "ward_old": "", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, + "is_migrant_worker": false, + "disease_status": 3, + "number_of_aged_dependents": 0, + "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, + "action": 10, + "review_time": null, + "created_by": 2, + "is_active": true, + "date_of_receipt_of_information": "2023-12-06T08:45:45.770Z", + "test_id": "", + "date_of_test": null, + "srf_id": "", + "test_type": 10, + "allow_transfer": true, + "last_consultation": 13, + "will_donate_blood": null, + "fit_for_blood_donation": null, + "village": "", + "designation_of_health_care_worker": "", + "instituion_of_health_care_worker": "", + "transit_details": null, + "frontline_worker": null, + "date_of_result": null, + "number_of_primary_contacts": null, + "number_of_secondary_contacts": null, + "is_vaccinated": false, + "number_of_doses": 0, + "vaccine_name": null, + "covin_id": null, + "last_vaccinated_date": null, + "cluster_name": null, + "is_declared_positive": false, + "date_declared_positive": null, + "assigned_to": null, + "abha_number": null } }, { - "model": "facility.historicalpatientregistration", - "pk": 1, + "model": "facility.patientregistration", + "pk": 14, "fields": { - "id": 1, - "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", - "created_date": "2022-09-27T07:19:20.379Z", - "modified_date": "2022-09-27T07:19:20.379Z", + "external_id": "8fd405a8-cf0f-4487-b147-f2b3edfae213", + "created_date": "2023-12-06T08:46:08.683Z", + "modified_date": "2023-12-06T08:46:19.974Z", "deleted": false, "source": 10, - "name": "Dummy Patient", - "age": 120, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient 12", + "age": 22, "gender": 1, - "phone_number": "+911234567896", - "emergency_phone_number": "+919898797775", - "address": "55.66.44.33", - "permanent_address": "55.66.44.33", - "pincode": 600115, - "date_of_birth": "1901-10-16", - "year_of_birth": 1901, + "phone_number": "+919320374643", + "emergency_phone_number": "+919493558024", + "address": "Test Patient Address", + "permanent_address": "Test Patient Address", + "pincode": 682001, + "date_of_birth": "2001-01-01", + "year_of_birth": 2001, "nationality": "India", "passport_no": "", "is_medical_worker": false, @@ -1659,19 +4868,26 @@ "has_SARI": false, "is_antenatal": false, "ward_old": "", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, "is_migrant_worker": false, - "disease_status": 2, + "disease_status": 3, "number_of_aged_dependents": 0, "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, "action": 10, "review_time": null, + "created_by": 2, "is_active": true, - "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", + "date_of_receipt_of_information": "2023-12-06T08:46:08.682Z", "test_id": "", "date_of_test": null, "srf_id": "", - "test_type": 30, - "allow_transfer": false, + "test_type": 10, + "allow_transfer": true, + "last_consultation": 14, "will_donate_blood": null, "fit_for_blood_donation": null, "village": "", @@ -1688,45 +4904,34 @@ "covin_id": null, "last_vaccinated_date": null, "cluster_name": null, - "is_declared_positive": true, - "date_declared_positive": "2022-09-27T07:15:04.715Z", - "facility": 1, - "nearest_facility": null, - "ward": 1729, - "local_body": 95, - "district": 7, - "state": 1, - "last_edited": null, - "created_by": 2, - "last_consultation": null, + "is_declared_positive": false, + "date_declared_positive": null, "assigned_to": null, - "abha_number": null, - "history_date": "2022-09-27T07:19:20.385Z", - "history_change_reason": null, - "history_type": "+", - "history_user": 2 + "abha_number": null } }, { - "model": "facility.historicalpatientregistration", - "pk": 2, + "model": "facility.patientregistration", + "pk": 15, "fields": { - "id": 1, - "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", - "created_date": "2022-09-27T07:19:20.379Z", - "modified_date": "2022-09-27T07:19:20.400Z", + "external_id": "efb7f800-ca35-4053-b95e-fae6b2df87db", + "created_date": "2023-12-06T08:46:31.290Z", + "modified_date": "2023-12-06T08:46:42.617Z", "deleted": false, "source": 10, - "name": "Dummy Patient", - "age": 120, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient 13", + "age": 22, "gender": 1, - "phone_number": "+911234567896", - "emergency_phone_number": "+919898797775", - "address": "55.66.44.33", - "permanent_address": "55.66.44.33", - "pincode": 600115, - "date_of_birth": "1901-10-16", - "year_of_birth": 1901, + "phone_number": "+919292990239", + "emergency_phone_number": "+919992258784", + "address": "Test Patient Address", + "permanent_address": "Test Patient Address", + "pincode": 682001, + "date_of_birth": "2001-01-01", + "year_of_birth": 2001, "nationality": "India", "passport_no": "", "is_medical_worker": false, @@ -1744,19 +4949,26 @@ "has_SARI": false, "is_antenatal": false, "ward_old": "", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, "is_migrant_worker": false, - "disease_status": 2, + "disease_status": 3, "number_of_aged_dependents": 0, "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, "action": 10, "review_time": null, + "created_by": 2, "is_active": true, - "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", + "date_of_receipt_of_information": "2023-12-06T08:46:31.289Z", "test_id": "", "date_of_test": null, "srf_id": "", - "test_type": 30, - "allow_transfer": false, + "test_type": 10, + "allow_transfer": true, + "last_consultation": 15, "will_donate_blood": null, "fit_for_blood_donation": null, "village": "", @@ -1773,45 +4985,34 @@ "covin_id": null, "last_vaccinated_date": null, "cluster_name": null, - "is_declared_positive": true, - "date_declared_positive": "2022-09-27T07:15:04.715Z", - "facility": 1, - "nearest_facility": null, - "ward": 1729, - "local_body": 95, - "district": 7, - "state": 1, - "last_edited": null, - "created_by": 2, - "last_consultation": null, + "is_declared_positive": false, + "date_declared_positive": null, "assigned_to": null, - "abha_number": null, - "history_date": "2022-09-27T07:19:20.403Z", - "history_change_reason": null, - "history_type": "~", - "history_user": 2 + "abha_number": null } }, { - "model": "facility.historicalpatientregistration", - "pk": 3, + "model": "facility.patientregistration", + "pk": 16, "fields": { - "id": 1, - "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", - "created_date": "2022-09-27T07:19:20.379Z", - "modified_date": "2022-09-27T07:19:20.413Z", + "external_id": "7fb4585a-728a-481c-94a0-220733cd0dbb", + "created_date": "2023-12-06T08:46:55.987Z", + "modified_date": "2023-12-06T08:47:07.467Z", "deleted": false, "source": 10, - "name": "Dummy Patient", - "age": 120, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient 14", + "age": 22, "gender": 1, - "phone_number": "+911234567896", - "emergency_phone_number": "+919898797775", - "address": "55.66.44.33", - "permanent_address": "55.66.44.33", - "pincode": 600115, - "date_of_birth": "1901-10-16", - "year_of_birth": 1901, + "phone_number": "+919650206292", + "emergency_phone_number": "+919596454242", + "address": "Test Patient Address", + "permanent_address": "Test Patient Address", + "pincode": 682001, + "date_of_birth": "2001-01-01", + "year_of_birth": 2001, "nationality": "India", "passport_no": "", "is_medical_worker": false, @@ -1829,19 +5030,26 @@ "has_SARI": false, "is_antenatal": false, "ward_old": "", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, "is_migrant_worker": false, - "disease_status": 2, + "disease_status": 3, "number_of_aged_dependents": 0, "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, "action": 10, "review_time": null, + "created_by": 2, "is_active": true, - "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", + "date_of_receipt_of_information": "2023-12-06T08:46:55.986Z", "test_id": "", "date_of_test": null, "srf_id": "", - "test_type": 30, - "allow_transfer": false, + "test_type": 10, + "allow_transfer": true, + "last_consultation": 16, "will_donate_blood": null, "fit_for_blood_donation": null, "village": "", @@ -1858,45 +5066,34 @@ "covin_id": null, "last_vaccinated_date": null, "cluster_name": null, - "is_declared_positive": true, - "date_declared_positive": "2022-09-27T07:15:04.715Z", - "facility": 1, - "nearest_facility": null, - "ward": 1729, - "local_body": 95, - "district": 7, - "state": 1, - "last_edited": 2, - "created_by": 2, - "last_consultation": null, + "is_declared_positive": false, + "date_declared_positive": null, "assigned_to": null, - "abha_number": null, - "history_date": "2022-09-27T07:19:20.415Z", - "history_change_reason": null, - "history_type": "~", - "history_user": 2 + "abha_number": null } }, { - "model": "facility.historicalpatientregistration", - "pk": 4, + "model": "facility.patientregistration", + "pk": 17, "fields": { - "id": 1, - "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", - "created_date": "2022-09-27T07:19:20.379Z", - "modified_date": "2022-09-27T07:20:40.135Z", + "external_id": "0b8e61c2-b7d2-4a58-ad8c-b82ed46dc7e0", + "created_date": "2023-12-06T08:47:19.338Z", + "modified_date": "2023-12-06T08:47:30.885Z", "deleted": false, "source": 10, - "name": "Dummy Patient", - "age": 120, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient 15", + "age": 22, "gender": 1, - "phone_number": "+911234567896", - "emergency_phone_number": "+919898797775", - "address": "55.66.44.33", - "permanent_address": "55.66.44.33", - "pincode": 600115, - "date_of_birth": "1901-10-16", - "year_of_birth": 1901, + "phone_number": "+919266236581", + "emergency_phone_number": "+919835286558", + "address": "Test Patient Address", + "permanent_address": "Test Patient Address", + "pincode": 682001, + "date_of_birth": "2001-01-01", + "year_of_birth": 2001, "nationality": "India", "passport_no": "", "is_medical_worker": false, @@ -1914,19 +5111,26 @@ "has_SARI": false, "is_antenatal": false, "ward_old": "", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, "is_migrant_worker": false, - "disease_status": 2, + "disease_status": 3, "number_of_aged_dependents": 0, "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, "action": 10, "review_time": null, + "created_by": 2, "is_active": true, - "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", + "date_of_receipt_of_information": "2023-12-06T08:47:19.337Z", "test_id": "", "date_of_test": null, "srf_id": "", - "test_type": 30, - "allow_transfer": false, + "test_type": 10, + "allow_transfer": true, + "last_consultation": 17, "will_donate_blood": null, "fit_for_blood_donation": null, "village": "", @@ -1943,45 +5147,34 @@ "covin_id": null, "last_vaccinated_date": null, "cluster_name": null, - "is_declared_positive": true, - "date_declared_positive": "2022-09-27T07:15:04.715Z", - "facility": 1, - "nearest_facility": null, - "ward": 1729, - "local_body": 95, - "district": 7, - "state": 1, - "last_edited": 2, - "created_by": 2, - "last_consultation": 1, + "is_declared_positive": false, + "date_declared_positive": null, "assigned_to": null, - "abha_number": null, - "history_date": "2022-09-27T07:20:40.139Z", - "history_change_reason": null, - "history_type": "~", - "history_user": 2 + "abha_number": null } }, { - "model": "facility.historicalpatientregistration", - "pk": 5, + "model": "facility.patientregistration", + "pk": 18, "fields": { - "id": 1, - "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", - "created_date": "2022-09-27T07:19:20.379Z", - "modified_date": "2022-09-27T07:22:00.563Z", + "external_id": "0f9552bd-1498-4b92-8f62-a83ad6f493b6", + "created_date": "2023-12-06T08:47:42.391Z", + "modified_date": "2023-12-06T08:47:53.773Z", "deleted": false, "source": 10, - "name": "Dummy Patient", - "age": 120, + "facility": 1, + "nearest_facility": null, + "meta_info": null, + "name": "Dummy Patient 16", + "age": 22, "gender": 1, - "phone_number": "+911234567896", - "emergency_phone_number": "+919898797775", - "address": "55.66.44.33", - "permanent_address": "55.66.44.33", - "pincode": 600115, - "date_of_birth": "1901-10-16", - "year_of_birth": 1901, + "phone_number": "+919243083817", + "emergency_phone_number": "+919924971004", + "address": "Test Patient Address", + "permanent_address": "Test Patient Address", + "pincode": 682001, + "date_of_birth": "2001-01-01", + "year_of_birth": 2001, "nationality": "India", "passport_no": "", "is_medical_worker": false, @@ -1999,19 +5192,26 @@ "has_SARI": false, "is_antenatal": false, "ward_old": "", + "ward": 15162, + "local_body": 6, + "district": 7, + "state": 1, "is_migrant_worker": false, - "disease_status": 2, + "disease_status": 3, "number_of_aged_dependents": 0, "number_of_chronic_diseased_dependents": 0, + "last_edited": 2, "action": 10, "review_time": null, + "created_by": 2, "is_active": true, - "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", + "date_of_receipt_of_information": "2023-12-06T08:47:42.390Z", "test_id": "", "date_of_test": null, "srf_id": "", - "test_type": 30, + "test_type": 10, "allow_transfer": true, + "last_consultation": 18, "will_donate_blood": null, "fit_for_blood_donation": null, "village": "", @@ -2028,111 +5228,187 @@ "covin_id": null, "last_vaccinated_date": null, "cluster_name": null, - "is_declared_positive": true, - "date_declared_positive": "2022-09-27T07:15:04.715Z", - "facility": 1, - "nearest_facility": null, - "ward": 1729, - "local_body": 95, - "district": 7, - "state": 1, - "last_edited": 2, - "created_by": 2, - "last_consultation": 1, + "is_declared_positive": false, + "date_declared_positive": null, "assigned_to": null, - "abha_number": null, - "history_date": "2022-09-27T07:22:00.566Z", - "history_change_reason": null, - "history_type": "~", - "history_user": 2 + "abha_number": null + } + }, + { + "model": "facility.disease", + "pk": 2, + "fields": { + "patient": 2, + "disease": 1, + "details": "", + "deleted": false + } + }, + { + "model": "facility.disease", + "pk": 3, + "fields": { + "patient": 1, + "disease": 1, + "details": "", + "deleted": false + } + }, + { + "model": "facility.disease", + "pk": 4, + "fields": { + "patient": 3, + "disease": 1, + "details": "", + "deleted": false + } + }, + { + "model": "facility.disease", + "pk": 5, + "fields": { + "patient": 4, + "disease": 1, + "details": "", + "deleted": false + } + }, + { + "model": "facility.disease", + "pk": 6, + "fields": { + "patient": 5, + "disease": 1, + "details": "", + "deleted": false + } + }, + { + "model": "facility.disease", + "pk": 7, + "fields": { + "patient": 6, + "disease": 1, + "details": "", + "deleted": false + } + }, + { + "model": "facility.disease", + "pk": 8, + "fields": { + "patient": 7, + "disease": 1, + "details": "", + "deleted": false + } + }, + { + "model": "facility.disease", + "pk": 9, + "fields": { + "patient": 8, + "disease": 1, + "details": "", + "deleted": false + } + }, + { + "model": "facility.disease", + "pk": 10, + "fields": { + "patient": 9, + "disease": 1, + "details": "", + "deleted": false + } + }, + { + "model": "facility.disease", + "pk": 11, + "fields": { + "patient": 10, + "disease": 1, + "details": "", + "deleted": false } }, { - "model": "facility.patientregistration", - "pk": 1, + "model": "facility.disease", + "pk": 12, "fields": { - "external_id": "7c1d2896-8ebf-45c7-b507-98fcedd48ef3", - "created_date": "2022-09-27T07:19:20.379Z", - "modified_date": "2022-09-27T07:22:00.563Z", - "deleted": false, - "source": 10, - "facility": 1, - "nearest_facility": null, - "meta_info": null, - "name": "Dummy Patient", - "age": 120, - "gender": 1, - "phone_number": "+911234567896", - "emergency_phone_number": "+919898797775", - "address": "55.66.44.33", - "permanent_address": "55.66.44.33", - "pincode": 600115, - "date_of_birth": "1901-10-16", - "year_of_birth": 1901, - "nationality": "India", - "passport_no": "", - "is_medical_worker": false, - "blood_group": "O+", - "contact_with_confirmed_carrier": false, - "contact_with_suspected_carrier": false, - "estimated_contact_date": null, - "past_travel": false, - "countries_travelled_old": null, - "countries_travelled": null, - "date_of_return": null, - "allergies": "", - "present_health": "", - "ongoing_medication": "", - "has_SARI": false, - "is_antenatal": false, - "ward_old": "", - "ward": 1729, - "local_body": 95, - "district": 7, - "state": 1, - "is_migrant_worker": false, - "disease_status": 2, - "number_of_aged_dependents": 0, - "number_of_chronic_diseased_dependents": 0, - "last_edited": 2, - "action": 10, - "review_time": null, - "created_by": 2, - "is_active": true, - "date_of_receipt_of_information": "2022-09-27T07:19:20.374Z", - "test_id": "", - "date_of_test": null, - "srf_id": "", - "test_type": 30, - "allow_transfer": true, - "last_consultation": 1, - "will_donate_blood": null, - "fit_for_blood_donation": null, - "village": "", - "designation_of_health_care_worker": "", - "instituion_of_health_care_worker": "", - "transit_details": null, - "frontline_worker": null, - "date_of_result": null, - "number_of_primary_contacts": null, - "number_of_secondary_contacts": null, - "is_vaccinated": false, - "number_of_doses": 0, - "vaccine_name": null, - "covin_id": null, - "last_vaccinated_date": null, - "cluster_name": null, - "is_declared_positive": true, - "date_declared_positive": "2022-09-27T07:15:04.715Z", - "assigned_to": null, - "abha_number": null + "patient": 11, + "disease": 1, + "details": "", + "deleted": false } }, { "model": "facility.disease", - "pk": 1, + "pk": 13, "fields": { - "patient": 1, + "patient": 12, + "disease": 1, + "details": "", + "deleted": false + } + }, + { + "model": "facility.disease", + "pk": 14, + "fields": { + "patient": 13, + "disease": 1, + "details": "", + "deleted": false + } + }, + { + "model": "facility.disease", + "pk": 15, + "fields": { + "patient": 14, + "disease": 1, + "details": "", + "deleted": false + } + }, + { + "model": "facility.disease", + "pk": 16, + "fields": { + "patient": 15, + "disease": 1, + "details": "", + "deleted": false + } + }, + { + "model": "facility.disease", + "pk": 17, + "fields": { + "patient": 16, + "disease": 1, + "details": "", + "deleted": false + } + }, + { + "model": "facility.disease", + "pk": 18, + "fields": { + "patient": 17, + "disease": 1, + "details": "", + "deleted": false + } + }, + { + "model": "facility.disease", + "pk": 19, + "fields": { + "patient": 18, "disease": 1, "details": "", "deleted": false @@ -2937,19 +6213,512 @@ "created_by": 2 } }, + { + "model": "facility.prescription", + "pk": 1, + "fields": { + "external_id": "4d2c77eb-d810-46ff-a60b-d712938f9c9c", + "created_date": "2023-12-06T08:33:24.947Z", + "modified_date": "2023-12-06T08:33:24.947Z", + "deleted": false, + "consultation": 2, + "prescription_type": "REGULAR", + "medicine": 2, + "medicine_old": null, + "route": null, + "dosage": "3 mg", + "is_prn": false, + "frequency": "BD", + "days": null, + "indicator": null, + "max_dosage": null, + "min_hours_between_doses": null, + "notes": "", + "meta": {}, + "prescribed_by": 2, + "discontinued": false, + "discontinued_reason": "", + "discontinued_date": null, + "is_migrated": false + } + }, + { + "model": "facility.prescription", + "pk": 2, + "fields": { + "external_id": "3ea39d81-b9e5-410b-99e3-0159f841657a", + "created_date": "2023-12-06T08:39:50.717Z", + "modified_date": "2023-12-06T08:39:50.717Z", + "deleted": false, + "consultation": 3, + "prescription_type": "REGULAR", + "medicine": 2, + "medicine_old": null, + "route": null, + "dosage": "3 mg", + "is_prn": false, + "frequency": "BD", + "days": null, + "indicator": null, + "max_dosage": null, + "min_hours_between_doses": null, + "notes": "", + "meta": {}, + "prescribed_by": 2, + "discontinued": false, + "discontinued_reason": "", + "discontinued_date": null, + "is_migrated": false + } + }, + { + "model": "facility.prescription", + "pk": 3, + "fields": { + "external_id": "8095057c-1527-491f-9b07-b8d38a438d5a", + "created_date": "2023-12-06T08:42:32.061Z", + "modified_date": "2023-12-06T08:42:32.061Z", + "deleted": false, + "consultation": 4, + "prescription_type": "REGULAR", + "medicine": 2, + "medicine_old": null, + "route": null, + "dosage": "3 mg", + "is_prn": false, + "frequency": "BD", + "days": null, + "indicator": null, + "max_dosage": null, + "min_hours_between_doses": null, + "notes": "", + "meta": {}, + "prescribed_by": 2, + "discontinued": false, + "discontinued_reason": "", + "discontinued_date": null, + "is_migrated": false + } + }, + { + "model": "facility.prescription", + "pk": 4, + "fields": { + "external_id": "cd91de89-4268-4702-ad43-64934651bed5", + "created_date": "2023-12-06T08:42:54.588Z", + "modified_date": "2023-12-06T08:42:54.588Z", + "deleted": false, + "consultation": 5, + "prescription_type": "REGULAR", + "medicine": 2, + "medicine_old": null, + "route": null, + "dosage": "3 mg", + "is_prn": false, + "frequency": "BD", + "days": null, + "indicator": null, + "max_dosage": null, + "min_hours_between_doses": null, + "notes": "", + "meta": {}, + "prescribed_by": 2, + "discontinued": false, + "discontinued_reason": "", + "discontinued_date": null, + "is_migrated": false + } + }, + { + "model": "facility.prescription", + "pk": 5, + "fields": { + "external_id": "d40ddbbd-0468-40e4-87a9-74a051e419d2", + "created_date": "2023-12-06T08:43:16.942Z", + "modified_date": "2023-12-06T08:43:16.942Z", + "deleted": false, + "consultation": 6, + "prescription_type": "REGULAR", + "medicine": 2, + "medicine_old": null, + "route": null, + "dosage": "3 mg", + "is_prn": false, + "frequency": "BD", + "days": null, + "indicator": null, + "max_dosage": null, + "min_hours_between_doses": null, + "notes": "", + "meta": {}, + "prescribed_by": 2, + "discontinued": false, + "discontinued_reason": "", + "discontinued_date": null, + "is_migrated": false + } + }, + { + "model": "facility.prescription", + "pk": 6, + "fields": { + "external_id": "16aff626-61d9-4acc-870f-88accf09595e", + "created_date": "2023-12-06T08:43:39.887Z", + "modified_date": "2023-12-06T08:43:39.887Z", + "deleted": false, + "consultation": 7, + "prescription_type": "REGULAR", + "medicine": 2, + "medicine_old": null, + "route": null, + "dosage": "3 mg", + "is_prn": false, + "frequency": "BD", + "days": null, + "indicator": null, + "max_dosage": null, + "min_hours_between_doses": null, + "notes": "", + "meta": {}, + "prescribed_by": 2, + "discontinued": false, + "discontinued_reason": "", + "discontinued_date": null, + "is_migrated": false + } + }, + { + "model": "facility.prescription", + "pk": 7, + "fields": { + "external_id": "7fff041d-744e-4fd3-96a3-1047ccb66cae", + "created_date": "2023-12-06T08:44:03.859Z", + "modified_date": "2023-12-06T08:44:03.860Z", + "deleted": false, + "consultation": 8, + "prescription_type": "REGULAR", + "medicine": 2, + "medicine_old": null, + "route": null, + "dosage": "3 mg", + "is_prn": false, + "frequency": "BD", + "days": null, + "indicator": null, + "max_dosage": null, + "min_hours_between_doses": null, + "notes": "", + "meta": {}, + "prescribed_by": 2, + "discontinued": false, + "discontinued_reason": "", + "discontinued_date": null, + "is_migrated": false + } + }, + { + "model": "facility.prescription", + "pk": 8, + "fields": { + "external_id": "3ddf68d1-fb5a-4f3d-90f1-24e1ced4b80a", + "created_date": "2023-12-06T08:44:26.979Z", + "modified_date": "2023-12-06T08:44:26.979Z", + "deleted": false, + "consultation": 9, + "prescription_type": "REGULAR", + "medicine": 2, + "medicine_old": null, + "route": null, + "dosage": "3 mg", + "is_prn": false, + "frequency": "BD", + "days": null, + "indicator": null, + "max_dosage": null, + "min_hours_between_doses": null, + "notes": "", + "meta": {}, + "prescribed_by": 2, + "discontinued": false, + "discontinued_reason": "", + "discontinued_date": null, + "is_migrated": false + } + }, + { + "model": "facility.prescription", + "pk": 9, + "fields": { + "external_id": "999b3e3c-b34f-407d-a503-643cc161ba29", + "created_date": "2023-12-06T08:44:49.651Z", + "modified_date": "2023-12-06T08:44:49.651Z", + "deleted": false, + "consultation": 10, + "prescription_type": "REGULAR", + "medicine": 2, + "medicine_old": null, + "route": null, + "dosage": "3 mg", + "is_prn": false, + "frequency": "BD", + "days": null, + "indicator": null, + "max_dosage": null, + "min_hours_between_doses": null, + "notes": "", + "meta": {}, + "prescribed_by": 2, + "discontinued": false, + "discontinued_reason": "", + "discontinued_date": null, + "is_migrated": false + } + }, + { + "model": "facility.prescription", + "pk": 10, + "fields": { + "external_id": "63cd68a3-3e27-48b8-baff-b6d121562ab9", + "created_date": "2023-12-06T08:45:12.129Z", + "modified_date": "2023-12-06T08:45:12.129Z", + "deleted": false, + "consultation": 11, + "prescription_type": "REGULAR", + "medicine": 2, + "medicine_old": null, + "route": null, + "dosage": "3 mg", + "is_prn": false, + "frequency": "BD", + "days": null, + "indicator": null, + "max_dosage": null, + "min_hours_between_doses": null, + "notes": "", + "meta": {}, + "prescribed_by": 2, + "discontinued": false, + "discontinued_reason": "", + "discontinued_date": null, + "is_migrated": false + } + }, + { + "model": "facility.prescription", + "pk": 11, + "fields": { + "external_id": "ec482d48-ef04-486c-8770-9d20151e8f86", + "created_date": "2023-12-06T08:45:36.420Z", + "modified_date": "2023-12-06T08:45:36.420Z", + "deleted": false, + "consultation": 12, + "prescription_type": "REGULAR", + "medicine": 2, + "medicine_old": null, + "route": null, + "dosage": "3 mg", + "is_prn": false, + "frequency": "BD", + "days": null, + "indicator": null, + "max_dosage": null, + "min_hours_between_doses": null, + "notes": "", + "meta": {}, + "prescribed_by": 2, + "discontinued": false, + "discontinued_reason": "", + "discontinued_date": null, + "is_migrated": false + } + }, + { + "model": "facility.prescription", + "pk": 12, + "fields": { + "external_id": "8a10e9d9-f4d7-486a-97d5-90edde13d29f", + "created_date": "2023-12-06T08:45:59.050Z", + "modified_date": "2023-12-06T08:45:59.050Z", + "deleted": false, + "consultation": 13, + "prescription_type": "REGULAR", + "medicine": 2, + "medicine_old": null, + "route": null, + "dosage": "3 mg", + "is_prn": false, + "frequency": "BD", + "days": null, + "indicator": null, + "max_dosage": null, + "min_hours_between_doses": null, + "notes": "", + "meta": {}, + "prescribed_by": 2, + "discontinued": false, + "discontinued_reason": "", + "discontinued_date": null, + "is_migrated": false + } + }, + { + "model": "facility.prescription", + "pk": 13, + "fields": { + "external_id": "bbd23119-d2ea-4d39-8b23-f14edc82402a", + "created_date": "2023-12-06T08:46:21.939Z", + "modified_date": "2023-12-06T08:46:21.939Z", + "deleted": false, + "consultation": 14, + "prescription_type": "REGULAR", + "medicine": 2, + "medicine_old": null, + "route": null, + "dosage": "3 mg", + "is_prn": false, + "frequency": "BD", + "days": null, + "indicator": null, + "max_dosage": null, + "min_hours_between_doses": null, + "notes": "", + "meta": {}, + "prescribed_by": 2, + "discontinued": false, + "discontinued_reason": "", + "discontinued_date": null, + "is_migrated": false + } + }, + { + "model": "facility.prescription", + "pk": 14, + "fields": { + "external_id": "1ef7d98e-6500-4f41-a64d-3c37fbadbbc6", + "created_date": "2023-12-06T08:46:44.475Z", + "modified_date": "2023-12-06T08:46:44.475Z", + "deleted": false, + "consultation": 15, + "prescription_type": "REGULAR", + "medicine": 2, + "medicine_old": null, + "route": null, + "dosage": "3 mg", + "is_prn": false, + "frequency": "BD", + "days": null, + "indicator": null, + "max_dosage": null, + "min_hours_between_doses": null, + "notes": "", + "meta": {}, + "prescribed_by": 2, + "discontinued": false, + "discontinued_reason": "", + "discontinued_date": null, + "is_migrated": false + } + }, + { + "model": "facility.prescription", + "pk": 15, + "fields": { + "external_id": "80902878-c3ae-4c97-af9a-9f08ce3d8dc9", + "created_date": "2023-12-06T08:47:09.426Z", + "modified_date": "2023-12-06T08:47:09.426Z", + "deleted": false, + "consultation": 16, + "prescription_type": "REGULAR", + "medicine": 2, + "medicine_old": null, + "route": null, + "dosage": "3 mg", + "is_prn": false, + "frequency": "BD", + "days": null, + "indicator": null, + "max_dosage": null, + "min_hours_between_doses": null, + "notes": "", + "meta": {}, + "prescribed_by": 2, + "discontinued": false, + "discontinued_reason": "", + "discontinued_date": null, + "is_migrated": false + } + }, + { + "model": "facility.prescription", + "pk": 16, + "fields": { + "external_id": "9ceff67b-a66e-4180-9f37-b8e279d844c8", + "created_date": "2023-12-06T08:47:32.789Z", + "modified_date": "2023-12-06T08:47:32.789Z", + "deleted": false, + "consultation": 17, + "prescription_type": "REGULAR", + "medicine": 2, + "medicine_old": null, + "route": null, + "dosage": "3 mg", + "is_prn": false, + "frequency": "BD", + "days": null, + "indicator": null, + "max_dosage": null, + "min_hours_between_doses": null, + "notes": "", + "meta": {}, + "prescribed_by": 2, + "discontinued": false, + "discontinued_reason": "", + "discontinued_date": null, + "is_migrated": false + } + }, + { + "model": "facility.prescription", + "pk": 17, + "fields": { + "external_id": "f76aaefb-50fb-4d27-88f4-70ab77a075e9", + "created_date": "2023-12-06T08:47:55.705Z", + "modified_date": "2023-12-06T08:47:55.705Z", + "deleted": false, + "consultation": 18, + "prescription_type": "REGULAR", + "medicine": 2, + "medicine_old": null, + "route": null, + "dosage": "3 mg", + "is_prn": false, + "frequency": "BD", + "days": null, + "indicator": null, + "max_dosage": null, + "min_hours_between_doses": null, + "notes": "", + "meta": {}, + "prescribed_by": 2, + "discontinued": false, + "discontinued_reason": "", + "discontinued_date": null, + "is_migrated": false + } + }, { "model": "facility.shiftingrequest", "pk": 1, "fields": { "external_id": "a0e4cf70-49b4-4e26-83fa-c2c962386885", "created_date": "2022-09-27T07:22:00.581Z", - "modified_date": "2022-09-27T07:22:00.581Z", + "modified_date": "2023-12-06T08:37:17.082Z", "deleted": false, "origin_facility": 1, "shifting_approving_facility": 2, "assigned_facility_type": 2, "assigned_facility": null, - "assigned_facility_external": "", + "assigned_facility_external": null, "patient": 1, "emergency": true, "is_up_shift": true, @@ -2960,7 +6729,7 @@ "refering_facility_contact_name": "Someone at Facility", "refering_facility_contact_number": "+914455666777", "is_kasp": false, - "status": 10, + "status": 100, "breathlessness_level": 30, "is_assigned_to_user": false, "assigned_to": null, From 79c734a3eff9007cdfd7139b88ab1e34962eec2d Mon Sep 17 00:00:00 2001 From: Rithvik Nishad Date: Thu, 7 Dec 2023 23:37:26 +0530 Subject: [PATCH 14/27] Add `resolved_middleware` JSON field to Asset Serializer. (#1741) * Add `resolved_middleware` JSON field to Asset Serializer. fixes #1740; * update schema to be nullable field * move resolving as a utility method in model * Adds `ResolvedMiddlewareField` --- care/facility/api/serializers/asset.py | 18 +++++++++++++++++- care/facility/models/asset.py | 18 ++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/care/facility/api/serializers/asset.py b/care/facility/api/serializers/asset.py index 984b4874c2..89bdc7b1e0 100644 --- a/care/facility/api/serializers/asset.py +++ b/care/facility/api/serializers/asset.py @@ -4,6 +4,7 @@ from django.db import transaction from django.shortcuts import get_object_or_404 from django.utils.timezone import now +from drf_spectacular.utils import extend_schema_field from rest_framework import serializers from rest_framework.exceptions import ValidationError from rest_framework.serializers import ( @@ -124,6 +125,20 @@ def update(self, instance, validated_data): return updated_instance +@extend_schema_field( + { + "type": "object", + "properties": { + "hostname": {"type": "string"}, + "source": {"type": "string", "enum": ["asset", "location", "facility"]}, + }, + "nullable": True, + } +) +class ResolvedMiddlewareField(serializers.Field): + pass + + class AssetSerializer(ModelSerializer): id = UUIDField(source="external_id", read_only=True) status = ChoiceField(choices=StatusChoices, read_only=True) @@ -133,11 +148,12 @@ class AssetSerializer(ModelSerializer): last_service = AssetServiceSerializer(read_only=True) last_serviced_on = serializers.DateField(write_only=True, required=False) note = serializers.CharField(write_only=True, required=False, allow_blank=True) + resolved_middleware = ResolvedMiddlewareField(read_only=True) class Meta: model = Asset exclude = ("deleted", "external_id", "current_location") - read_only_fields = TIMESTAMP_FIELDS + read_only_fields = TIMESTAMP_FIELDS + ("resolved_middleware",) def validate_qr_code_id(self, value): value = value or None # treat empty string as null diff --git a/care/facility/models/asset.py b/care/facility/models/asset.py index d3ead51c85..81e43cb82f 100644 --- a/care/facility/models/asset.py +++ b/care/facility/models/asset.py @@ -142,6 +142,24 @@ class Asset(BaseModel): "is_working": (lambda x: "WORKING" if x else "NOT WORKING"), } + @property + def resolved_middleware(self): + if hostname := self.meta.get("middleware_hostname"): + return { + "hostname": hostname, + "source": "asset", + } + if hostname := self.current_location.middleware_address: + return { + "hostname": hostname, + "source": "location", + } + if hostname := self.current_location.facility.middleware_address: + return { + "hostname": hostname, + "source": "facility", + } + class Meta: constraints = [ models.UniqueConstraint( From 1ce8fdceea9fb9b00788e586662f8d871a292e22 Mon Sep 17 00:00:00 2001 From: Aakash Singh Date: Thu, 7 Dec 2023 23:39:50 +0530 Subject: [PATCH 15/27] made patient notes consultation specific (#1727) * made patient notes consultation specific * link existing patient notes to consultations * update migrations --------- Co-authored-by: Bhavik Agarwal --- care/facility/api/serializers/patient.py | 7 ++++ care/facility/api/viewsets/patient.py | 7 ++++ .../0398_patientnotes_consultation.py | 23 ++++++++++++ ...0399_populate_patientnotes_consultation.py | 37 +++++++++++++++++++ care/facility/models/patient.py | 3 ++ care/facility/tests/test_patient_api.py | 25 +++++++++++-- care/utils/tests/test_utils.py | 5 ++- 7 files changed, 103 insertions(+), 4 deletions(-) create mode 100644 care/facility/migrations/0398_patientnotes_consultation.py create mode 100644 care/facility/migrations/0399_populate_patientnotes_consultation.py diff --git a/care/facility/api/serializers/patient.py b/care/facility/api/serializers/patient.py index eef65c7893..6e9aa27e50 100644 --- a/care/facility/api/serializers/patient.py +++ b/care/facility/api/serializers/patient.py @@ -475,6 +475,12 @@ def save(self, **kwargs): class PatientNotesSerializer(serializers.ModelSerializer): facility = FacilityBasicInfoSerializer(read_only=True) created_by_object = UserBaseMinimumSerializer(source="created_by", read_only=True) + consultation = ExternalIdSerializerField( + queryset=PatientConsultation.objects.all(), + required=False, + allow_null=True, + read_only=True, + ) def validate_empty_values(self, data): if not data.get("note", "").strip(): @@ -501,6 +507,7 @@ class Meta: fields = ( "note", "facility", + "consultation", "created_by_object", "user_type", "created_date", diff --git a/care/facility/api/viewsets/patient.py b/care/facility/api/viewsets/patient.py index 2601d8af8c..2f3caeb08a 100644 --- a/care/facility/api/viewsets/patient.py +++ b/care/facility/api/viewsets/patient.py @@ -626,6 +626,10 @@ def list(self, request, *args, **kwargs): return super(PatientSearchViewSet, self).list(request, *args, **kwargs) +class PatientNotesFilterSet(filters.FilterSet): + consultation = filters.CharFilter(field_name="consultation__external_id") + + class PatientNotesViewSet( ListModelMixin, RetrieveModelMixin, CreateModelMixin, GenericViewSet ): @@ -636,6 +640,8 @@ class PatientNotesViewSet( ) serializer_class = PatientNotesSerializer permission_classes = (IsAuthenticated, DRYPermissions) + filter_backends = (filters.DjangoFilterBackend,) + filterset_class = PatientNotesFilterSet def get_queryset(self): user = self.request.user @@ -671,6 +677,7 @@ def perform_create(self, serializer): instance = serializer.save( facility=patient.facility, patient=patient, + consultation=patient.last_consultation, created_by=self.request.user, ) diff --git a/care/facility/migrations/0398_patientnotes_consultation.py b/care/facility/migrations/0398_patientnotes_consultation.py new file mode 100644 index 0000000000..635b37b5fd --- /dev/null +++ b/care/facility/migrations/0398_patientnotes_consultation.py @@ -0,0 +1,23 @@ +# Generated by Django 4.2.6 on 2023-10-18 12:18 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + dependencies = [ + ("facility", "0397_truncate_discharge_time"), + ] + + operations = [ + migrations.AddField( + model_name="patientnotes", + name="consultation", + field=models.ForeignKey( + blank=True, + null=True, + on_delete=django.db.models.deletion.PROTECT, + to="facility.patientconsultation", + ), + ), + ] diff --git a/care/facility/migrations/0399_populate_patientnotes_consultation.py b/care/facility/migrations/0399_populate_patientnotes_consultation.py new file mode 100644 index 0000000000..99b9f22e99 --- /dev/null +++ b/care/facility/migrations/0399_populate_patientnotes_consultation.py @@ -0,0 +1,37 @@ +# Generated by Django 4.2.7 on 2023-11-23 12:42 + +from django.db import migrations, models + + +def link_patient_notes_to_consultation(apps, schema_editor): + PatientConsultation = apps.get_model("facility", "PatientConsultation") + PatientNotes = apps.get_model("facility", "PatientNotes") + + consultations = PatientConsultation.objects.order_by("created_date").filter( + patient__in=models.Subquery(PatientNotes.objects.values("patient_id")) + ) + + for consultation in consultations: + notes = PatientNotes.objects.order_by("created_date").filter( + patient_id=consultation.patient_id, + created_date__gte=consultation.created_date, + ) + if consultation.discharge_reason: + notes = notes.filter( + created_date__lte=consultation.modified_date, + ) + + notes.update(consultation=consultation) + + +class Migration(migrations.Migration): + dependencies = [ + ("facility", "0398_patientnotes_consultation"), + ] + + operations = [ + migrations.RunPython( + code=link_patient_notes_to_consultation, + reverse_code=migrations.RunPython.noop, + ), + ] diff --git a/care/facility/models/patient.py b/care/facility/models/patient.py index 4590b67f90..0852d392b5 100644 --- a/care/facility/models/patient.py +++ b/care/facility/models/patient.py @@ -714,6 +714,9 @@ class PatientNotes(FacilityBaseModel, ConsultationRelatedPermissionMixin): patient = models.ForeignKey( PatientRegistration, on_delete=models.PROTECT, null=False, blank=False ) + consultation = models.ForeignKey( + PatientConsultation, on_delete=models.PROTECT, null=True, blank=True + ) facility = models.ForeignKey( Facility, on_delete=models.PROTECT, null=False, blank=False ) diff --git a/care/facility/tests/test_patient_api.py b/care/facility/tests/test_patient_api.py index 493a43f24b..9272f8fd55 100644 --- a/care/facility/tests/test_patient_api.py +++ b/care/facility/tests/test_patient_api.py @@ -10,6 +10,7 @@ class ExpectedPatientNoteKeys(Enum): NOTE = "note" FACILITY = "facility" + CONSULTATION = "consultation" CREATED_BY_OBJECT = "created_by_object" CREATED_DATE = "created_date" USER_TYPE = "user_type" @@ -97,6 +98,14 @@ def setUpTestData(cls) -> None: "doctor2", cls.district, home_facility=cls.facility2, user_type=15 ) cls.patient = cls.create_patient(cls.district, cls.facility) + cls.consultation = cls.create_consultation( + patient_no="IP5678", + patient=cls.patient, + facility=cls.facility, + created_by=cls.user, + suggestion="A", + admission_date=now(), + ) def setUp(self): super().setUp() @@ -120,18 +129,28 @@ def create_patient_note( def test_patient_notes(self): patientId = self.patient.external_id - response = self.client.get(f"/api/v1/patient/{patientId}/notes/") + response = self.client.get( + f"/api/v1/patient/{patientId}/notes/?consultation={self.consultation.external_id}" + ) self.assertEqual(response.status_code, status.HTTP_200_OK) self.assertIsInstance(response.json()["results"], list) - # Test user_type field if user is not from same facility as patient + results = response.json()["results"] + + # Test if all notes are from same consultation as requested + self.assertEqual( + str(self.consultation.external_id), + [note["consultation"] for note in results][0], + ) + + # Test created_by_local_user field if user is not from same facility as patient data2 = response.json()["results"][0] user_type_content2 = data2["user_type"] self.assertEqual(user_type_content2, "RemoteSpecialist") # Ensure only necessary data is being sent and no extra data - data = response.json()["results"][1] + data = results[1] self.assertCountEqual( data.keys(), [item.value for item in ExpectedPatientNoteKeys] diff --git a/care/utils/tests/test_utils.py b/care/utils/tests/test_utils.py index 1f6ceff22e..bf2b560893 100644 --- a/care/utils/tests/test_utils.py +++ b/care/utils/tests/test_utils.py @@ -326,7 +326,10 @@ def create_consultation( } ) data.update(kwargs) - return PatientConsultation.objects.create(**data) + consultation = PatientConsultation.objects.create(**data) + patient.last_consultation = consultation + patient.save() + return consultation @classmethod def create_asset_location(cls, facility: Facility, **kwargs) -> AssetLocation: From 940e0e7107e9294770c2256e41e6cb4d53bf9a0f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Dec 2023 00:02:05 +0530 Subject: [PATCH 16/27] bump pillow from 10.0.0 to 10.1.0 (#1677) --- updated-dependencies: - dependency-name: pillow dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Pipfile | 2 +- Pipfile.lock | 114 +++++++++++++++++++++++++-------------------------- 2 files changed, 57 insertions(+), 59 deletions(-) diff --git a/Pipfile b/Pipfile index 9807d550ff..f155ec9afc 100644 --- a/Pipfile +++ b/Pipfile @@ -34,7 +34,7 @@ jsonschema = "==4.19.0" jwcrypto = "==1.5.0" littletable = "==2.2.3" newrelic = "==9.0.0" -pillow = "==10.0.0" +pillow = "==10.1.0" psycopg = "==3.1.10" pycryptodome = "==3.19.0" pydantic = "==1.10.12" # fix for fhir.resources < 7.0.2 diff --git a/Pipfile.lock b/Pipfile.lock index d6cba357f6..7ecca7001d 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "9fafba6e7916bc0584975e5f9d9080ec4f06f59866c04bac764b15141ebccadf" + "sha256": "b83c3b253b6120c30a91762fa32ffd54747aa6e4c01b1a6d999166caa110945d" }, "pipfile-spec": 6, "requires": { @@ -749,66 +749,64 @@ }, "pillow": { "hashes": [ - "sha256:00e65f5e822decd501e374b0650146063fbb30a7264b4d2744bdd7b913e0cab5", - "sha256:040586f7d37b34547153fa383f7f9aed68b738992380ac911447bb78f2abe530", - "sha256:0b6eb5502f45a60a3f411c63187db83a3d3107887ad0d036c13ce836f8a36f1d", - "sha256:1ce91b6ec08d866b14413d3f0bbdea7e24dfdc8e59f562bb77bc3fe60b6144ca", - "sha256:1f62406a884ae75fb2f818694469519fb685cc7eaff05d3451a9ebe55c646891", - "sha256:22c10cc517668d44b211717fd9775799ccec4124b9a7f7b3635fc5386e584992", - "sha256:3400aae60685b06bb96f99a21e1ada7bc7a413d5f49bce739828ecd9391bb8f7", - "sha256:349930d6e9c685c089284b013478d6f76e3a534e36ddfa912cde493f235372f3", - "sha256:368ab3dfb5f49e312231b6f27b8820c823652b7cd29cfbd34090565a015e99ba", - "sha256:38250a349b6b390ee6047a62c086d3817ac69022c127f8a5dc058c31ccef17f3", - "sha256:3a684105f7c32488f7153905a4e3015a3b6c7182e106fe3c37fbb5ef3e6994c3", - "sha256:3a82c40d706d9aa9734289740ce26460a11aeec2d9c79b7af87bb35f0073c12f", - "sha256:3b08d4cc24f471b2c8ca24ec060abf4bebc6b144cb89cba638c720546b1cf538", - "sha256:3ed64f9ca2f0a95411e88a4efbd7a29e5ce2cea36072c53dd9d26d9c76f753b3", - "sha256:3f07ea8d2f827d7d2a49ecf1639ec02d75ffd1b88dcc5b3a61bbb37a8759ad8d", - "sha256:520f2a520dc040512699f20fa1c363eed506e94248d71f85412b625026f6142c", - "sha256:5c6e3df6bdd396749bafd45314871b3d0af81ff935b2d188385e970052091017", - "sha256:608bfdee0d57cf297d32bcbb3c728dc1da0907519d1784962c5f0c68bb93e5a3", - "sha256:685ac03cc4ed5ebc15ad5c23bc555d68a87777586d970c2c3e216619a5476223", - "sha256:76de421f9c326da8f43d690110f0e79fe3ad1e54be811545d7d91898b4c8493e", - "sha256:76edb0a1fa2b4745fb0c99fb9fb98f8b180a1bbceb8be49b087e0b21867e77d3", - "sha256:7be600823e4c8631b74e4a0d38384c73f680e6105a7d3c6824fcf226c178c7e6", - "sha256:81ff539a12457809666fef6624684c008e00ff6bf455b4b89fd00a140eecd640", - "sha256:88af2003543cc40c80f6fca01411892ec52b11021b3dc22ec3bc9d5afd1c5334", - "sha256:8c11160913e3dd06c8ffdb5f233a4f254cb449f4dfc0f8f4549eda9e542c93d1", - "sha256:8f8182b523b2289f7c415f589118228d30ac8c355baa2f3194ced084dac2dbba", - "sha256:9211e7ad69d7c9401cfc0e23d49b69ca65ddd898976d660a2fa5904e3d7a9baa", - "sha256:92be919bbc9f7d09f7ae343c38f5bb21c973d2576c1d45600fce4b74bafa7ac0", - "sha256:9c82b5b3e043c7af0d95792d0d20ccf68f61a1fec6b3530e718b688422727396", - "sha256:9f7c16705f44e0504a3a2a14197c1f0b32a95731d251777dcb060aa83022cb2d", - "sha256:9fb218c8a12e51d7ead2a7c9e101a04982237d4855716af2e9499306728fb485", - "sha256:a74ba0c356aaa3bb8e3eb79606a87669e7ec6444be352870623025d75a14a2bf", - "sha256:b4f69b3700201b80bb82c3a97d5e9254084f6dd5fb5b16fc1a7b974260f89f43", - "sha256:bc2ec7c7b5d66b8ec9ce9f720dbb5fa4bace0f545acd34870eff4a369b44bf37", - "sha256:c189af0545965fa8d3b9613cfdb0cd37f9d71349e0f7750e1fd704648d475ed2", - "sha256:c1fbe7621c167ecaa38ad29643d77a9ce7311583761abf7836e1510c580bf3dd", - "sha256:c7cf14a27b0d6adfaebb3ae4153f1e516df54e47e42dcc073d7b3d76111a8d86", - "sha256:c9f72a021fbb792ce98306ffb0c348b3c9cb967dce0f12a49aa4c3d3fdefa967", - "sha256:cd25d2a9d2b36fcb318882481367956d2cf91329f6892fe5d385c346c0649629", - "sha256:ce543ed15570eedbb85df19b0a1a7314a9c8141a36ce089c0a894adbfccb4568", - "sha256:ce7b031a6fc11365970e6a5686d7ba8c63e4c1cf1ea143811acbb524295eabed", - "sha256:d35e3c8d9b1268cbf5d3670285feb3528f6680420eafe35cccc686b73c1e330f", - "sha256:d50b6aec14bc737742ca96e85d6d0a5f9bfbded018264b3b70ff9d8c33485551", - "sha256:d5d0dae4cfd56969d23d94dc8e89fb6a217be461c69090768227beb8ed28c0a3", - "sha256:d5db32e2a6ccbb3d34d87c87b432959e0db29755727afb37290e10f6e8e62614", - "sha256:d72e2ecc68a942e8cf9739619b7f408cc7b272b279b56b2c83c6123fcfa5cdff", - "sha256:d737a602fbd82afd892ca746392401b634e278cb65d55c4b7a8f48e9ef8d008d", - "sha256:d80cf684b541685fccdd84c485b31ce73fc5c9b5d7523bf1394ce134a60c6883", - "sha256:db24668940f82321e746773a4bc617bfac06ec831e5c88b643f91f122a785684", - "sha256:dbc02381779d412145331789b40cc7b11fdf449e5d94f6bc0b080db0a56ea3f0", - "sha256:dffe31a7f47b603318c609f378ebcd57f1554a3a6a8effbc59c3c69f804296de", - "sha256:edf4392b77bdc81f36e92d3a07a5cd072f90253197f4a52a55a8cec48a12483b", - "sha256:efe8c0681042536e0d06c11f48cebe759707c9e9abf880ee213541c5b46c5bf3", - "sha256:f31f9fdbfecb042d046f9d91270a0ba28368a723302786c0009ee9b9f1f60199", - "sha256:f88a0b92277de8e3ca715a0d79d68dc82807457dae3ab8699c758f07c20b3c51", - "sha256:faaf07ea35355b01a35cb442dd950d8f1bb5b040a7787791a535de13db15ed90" + "sha256:00f438bb841382b15d7deb9a05cc946ee0f2c352653c7aa659e75e592f6fa17d", + "sha256:0248f86b3ea061e67817c47ecbe82c23f9dd5d5226200eb9090b3873d3ca32de", + "sha256:04f6f6149f266a100374ca3cc368b67fb27c4af9f1cc8cb6306d849dcdf12616", + "sha256:062a1610e3bc258bff2328ec43f34244fcec972ee0717200cb1425214fe5b839", + "sha256:0a026c188be3b443916179f5d04548092e253beb0c3e2ee0a4e2cdad72f66099", + "sha256:0f7c276c05a9767e877a0b4c5050c8bee6a6d960d7f0c11ebda6b99746068c2a", + "sha256:1a8413794b4ad9719346cd9306118450b7b00d9a15846451549314a58ac42219", + "sha256:1ab05f3db77e98f93964697c8efc49c7954b08dd61cff526b7f2531a22410106", + "sha256:1c3ac5423c8c1da5928aa12c6e258921956757d976405e9467c5f39d1d577a4b", + "sha256:1c41d960babf951e01a49c9746f92c5a7e0d939d1652d7ba30f6b3090f27e412", + "sha256:1fafabe50a6977ac70dfe829b2d5735fd54e190ab55259ec8aea4aaea412fa0b", + "sha256:1fb29c07478e6c06a46b867e43b0bcdb241b44cc52be9bc25ce5944eed4648e7", + "sha256:24fadc71218ad2b8ffe437b54876c9382b4a29e030a05a9879f615091f42ffc2", + "sha256:2cdc65a46e74514ce742c2013cd4a2d12e8553e3a2563c64879f7c7e4d28bce7", + "sha256:2ef6721c97894a7aa77723740a09547197533146fba8355e86d6d9a4a1056b14", + "sha256:3b834f4b16173e5b92ab6566f0473bfb09f939ba14b23b8da1f54fa63e4b623f", + "sha256:3d929a19f5469b3f4df33a3df2983db070ebb2088a1e145e18facbc28cae5b27", + "sha256:41f67248d92a5e0a2076d3517d8d4b1e41a97e2df10eb8f93106c89107f38b57", + "sha256:47e5bf85b80abc03be7455c95b6d6e4896a62f6541c1f2ce77a7d2bb832af262", + "sha256:4d0152565c6aa6ebbfb1e5d8624140a440f2b99bf7afaafbdbf6430426497f28", + "sha256:50d08cd0a2ecd2a8657bd3d82c71efd5a58edb04d9308185d66c3a5a5bed9610", + "sha256:61f1a9d247317fa08a308daaa8ee7b3f760ab1809ca2da14ecc88ae4257d6172", + "sha256:6932a7652464746fcb484f7fc3618e6503d2066d853f68a4bd97193a3996e273", + "sha256:7a7e3daa202beb61821c06d2517428e8e7c1aab08943e92ec9e5755c2fc9ba5e", + "sha256:7dbaa3c7de82ef37e7708521be41db5565004258ca76945ad74a8e998c30af8d", + "sha256:7df5608bc38bd37ef585ae9c38c9cd46d7c81498f086915b0f97255ea60c2818", + "sha256:806abdd8249ba3953c33742506fe414880bad78ac25cc9a9b1c6ae97bedd573f", + "sha256:883f216eac8712b83a63f41b76ddfb7b2afab1b74abbb413c5df6680f071a6b9", + "sha256:912e3812a1dbbc834da2b32299b124b5ddcb664ed354916fd1ed6f193f0e2d01", + "sha256:937bdc5a7f5343d1c97dc98149a0be7eb9704e937fe3dc7140e229ae4fc572a7", + "sha256:9882a7451c680c12f232a422730f986a1fcd808da0fd428f08b671237237d651", + "sha256:9a92109192b360634a4489c0c756364c0c3a2992906752165ecb50544c251312", + "sha256:9d7bc666bd8c5a4225e7ac71f2f9d12466ec555e89092728ea0f5c0c2422ea80", + "sha256:a5f63b5a68daedc54c7c3464508d8c12075e56dcfbd42f8c1bf40169061ae666", + "sha256:a646e48de237d860c36e0db37ecaecaa3619e6f3e9d5319e527ccbc8151df061", + "sha256:a89b8312d51715b510a4fe9fc13686283f376cfd5abca8cd1c65e4c76e21081b", + "sha256:a92386125e9ee90381c3369f57a2a50fa9e6aa8b1cf1d9c4b200d41a7dd8e992", + "sha256:ae88931f93214777c7a3aa0a8f92a683f83ecde27f65a45f95f22d289a69e593", + "sha256:afc8eef765d948543a4775f00b7b8c079b3321d6b675dde0d02afa2ee23000b4", + "sha256:b0eb01ca85b2361b09480784a7931fc648ed8b7836f01fb9241141b968feb1db", + "sha256:b1c25762197144e211efb5f4e8ad656f36c8d214d390585d1d21281f46d556ba", + "sha256:b4005fee46ed9be0b8fb42be0c20e79411533d1fd58edabebc0dd24626882cfd", + "sha256:b920e4d028f6442bea9a75b7491c063f0b9a3972520731ed26c83e254302eb1e", + "sha256:baada14941c83079bf84c037e2d8b7506ce201e92e3d2fa0d1303507a8538212", + "sha256:bb40c011447712d2e19cc261c82655f75f32cb724788df315ed992a4d65696bb", + "sha256:c0949b55eb607898e28eaccb525ab104b2d86542a85c74baf3a6dc24002edec2", + "sha256:c9aeea7b63edb7884b031a35305629a7593272b54f429a9869a4f63a1bf04c34", + "sha256:cfe96560c6ce2f4c07d6647af2d0f3c54cc33289894ebd88cfbb3bcd5391e256", + "sha256:d27b5997bdd2eb9fb199982bb7eb6164db0426904020dc38c10203187ae2ff2f", + "sha256:d921bc90b1defa55c9917ca6b6b71430e4286fc9e44c55ead78ca1a9f9eba5f2", + "sha256:e6bf8de6c36ed96c86ea3b6e1d5273c53f46ef518a062464cd7ef5dd2cf92e38", + "sha256:eaed6977fa73408b7b8a24e8b14e59e1668cfc0f4c40193ea7ced8e210adf996", + "sha256:fa1d323703cfdac2036af05191b969b910d8f115cf53093125e4058f62012c9a", + "sha256:fe1e26e1ffc38be097f0ba1d0d07fcade2bcfd1d023cda5b29935ae8052bd793" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==10.0.0" + "version": "==10.1.0" }, "ply": { "hashes": [ From 7663481d0d576c3d75633dfa7e33990e6e057946 Mon Sep 17 00:00:00 2001 From: Pranshu Aggarwal <70687348+Pranshu1902@users.noreply.github.com> Date: Fri, 8 Dec 2023 00:05:40 +0530 Subject: [PATCH 17/27] Restrict Admin from unlinking users from other district (#1157) * prevent unlink for other district * use id for comparision * Update care/users/api/viewsets/users.py Co-authored-by: Aakash Singh * add tests * fix lint * fix tests and restrict in clear_home_Facility function * add unlink facility tests * assert error message in tests * Update care/users/api/viewsets/users.py Co-authored-by: Aakash Singh * check if user is district admin and above --------- Co-authored-by: Aakash Singh --- .../tests/test_unlink_district_admins.py | 84 +++++++++++++++++++ care/users/api/viewsets/users.py | 9 ++ 2 files changed, 93 insertions(+) create mode 100644 care/facility/tests/test_unlink_district_admins.py diff --git a/care/facility/tests/test_unlink_district_admins.py b/care/facility/tests/test_unlink_district_admins.py new file mode 100644 index 0000000000..419e5f83a7 --- /dev/null +++ b/care/facility/tests/test_unlink_district_admins.py @@ -0,0 +1,84 @@ +from django.conf import settings +from rest_framework import status +from rest_framework.test import APITestCase + +from care.utils.tests.test_utils import TestUtils + + +class UnlinkDistrictAdmin(TestUtils, APITestCase): + def setUp(self): + settings.DISABLE_RATELIMIT = True + self.state = self.create_state() + + self.district1 = self.create_district(self.state) + self.admin1 = self.create_user("user12345678", self.district1, user_type=30) + + self.district2 = self.create_district(self.state) + self.admin2 = self.create_user("user12345679", self.district2, user_type=30) + + self.local_body1 = self.create_local_body(self.district1) + self.local_body2 = self.create_local_body(self.district2) + + self.facility1 = self.create_facility( + district=self.district1, user=self.admin1, local_body=self.local_body1 + ) + self.facility2 = self.create_facility( + district=self.district2, user=self.admin2, local_body=self.local_body2 + ) + + self.staff1 = self.create_user( + "staff1234", self.district1, home_facility=self.facility1 + ) + self.staff2 = self.create_user( + "staff1235", self.district2, home_facility=self.facility2 + ) + + def test_unlink_home_facility_admin_same_district(self): + self.client.force_login(self.admin1) + + username = self.staff1.username + response = self.client.delete( + "/api/v1/users/" + username + "/clear_home_facility/" + ) + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + + def test_unlink_home_facility_admin_different_district(self): + self.client.force_login(self.admin1) + + username = self.staff2.username + response = self.client.delete( + "/api/v1/users/" + username + "/clear_home_facility/" + ) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.assertEqual( + response.json()["facility"], + "Cannot unlink User's Home Facility from other district", + ) + + def test_unlink_faciltity_admin_same_district(self): + self.client.force_login(self.admin1) + + username = self.staff1.username + + # clear from home facility to linked facility + response = self.client.delete( + "/api/v1/users/" + username + "/clear_home_facility/" + ) + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + + response = self.client.delete( + "/api/v1/users/" + username + "/delete_facility/", + {"facility": self.facility1.external_id}, + ) + self.assertEqual(response.status_code, status.HTTP_204_NO_CONTENT) + + def test_unlink_faciltity_admin_different_district(self): + self.client.force_login(self.admin1) + + username = self.staff2.username + response = self.client.delete( + "/api/v1/users/" + username + "/delete_facility/", + {"facility": self.facility2.external_id}, + ) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.assertEqual(response.json()["facility"], "Facility Access not Present") diff --git a/care/users/api/viewsets/users.py b/care/users/api/viewsets/users.py index ff0a325c61..8570d433eb 100644 --- a/care/users/api/viewsets/users.py +++ b/care/users/api/viewsets/users.py @@ -259,6 +259,15 @@ def clear_home_facility(self, request, *args, **kwargs): if not self.has_user_type_permission_elevation(requesting_user, user): raise ValidationError({"home_facility": "Cannot Access Higher Level User"}) + # ensure that district admin only able to delete in the same district + if ( + requesting_user.user_type <= User.TYPE_VALUE_MAP["DistrictAdmin"] + and user.district_id != requesting_user.district_id + ): + raise ValidationError( + {"facility": "Cannot unlink User's Home Facility from other district"} + ) + user.home_facility = None user.save(update_fields=["home_facility"]) return Response(status=status.HTTP_204_NO_CONTENT) From c30e5c62704d3a8a9d6643715d0ca886c9f5d458 Mon Sep 17 00:00:00 2001 From: Pranshu Aggarwal <70687348+Pranshu1902@users.noreply.github.com> Date: Fri, 8 Dec 2023 00:12:40 +0530 Subject: [PATCH 18/27] Don't allow negative values for Doctor Count for facility (#1505) * added validations * refactor * make migrations * Update migrations Signed-off-by: Aakash Singh * switched to positiveintegerfield * recreate migrations --------- Signed-off-by: Aakash Singh Co-authored-by: Rithvik Nishad Co-authored-by: Aakash Singh Co-authored-by: Vignesh Hari --- .../0393_alter_hospitaldoctors_count.py | 24 +++++++++++++++++++ care/facility/models/facility.py | 2 +- 2 files changed, 25 insertions(+), 1 deletion(-) create mode 100644 care/facility/migrations/0393_alter_hospitaldoctors_count.py diff --git a/care/facility/migrations/0393_alter_hospitaldoctors_count.py b/care/facility/migrations/0393_alter_hospitaldoctors_count.py new file mode 100644 index 0000000000..fa0044ea3f --- /dev/null +++ b/care/facility/migrations/0393_alter_hospitaldoctors_count.py @@ -0,0 +1,24 @@ +# Generated by Django 4.2.2 on 2023-10-20 10:15 + +from django.db import migrations, models +from django.db.models import F + + +def convert_negative_to_positive(apps, schema_editor): + HospitalDoctors = apps.get_model("care", "HospitalDoctors") + HospitalDoctors.objects.filter(count__lt=0).update(count=F("count") * -1) + + +class Migration(migrations.Migration): + dependencies = [ + ("facility", "0392_alter_dailyround_consciousness_level"), + ] + + operations = [ + migrations.RunPython(convert_negative_to_positive), + migrations.AlterField( + model_name="hospitaldoctors", + name="count", + field=models.PositiveIntegerField(), + ), + ] diff --git a/care/facility/models/facility.py b/care/facility/models/facility.py index c1d59684d0..2a041f291c 100644 --- a/care/facility/models/facility.py +++ b/care/facility/models/facility.py @@ -265,7 +265,7 @@ class HospitalDoctors(FacilityBaseModel, FacilityRelatedPermissionMixin): "Facility", on_delete=models.CASCADE, null=False, blank=False ) area = models.IntegerField(choices=DOCTOR_TYPES) - count = models.IntegerField() + count = models.PositiveIntegerField() def __str__(self): return str(self.facility) + str(self.count) From 2407f67af9f0b8601b835bf4f862b8559410eec5 Mon Sep 17 00:00:00 2001 From: Aakash Singh Date: Fri, 8 Dec 2023 00:46:26 +0530 Subject: [PATCH 19/27] merge migrations (#1751) Co-authored-by: Vignesh Hari --- .../facility/migrations/0400_merge_20231208_0016.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 care/facility/migrations/0400_merge_20231208_0016.py diff --git a/care/facility/migrations/0400_merge_20231208_0016.py b/care/facility/migrations/0400_merge_20231208_0016.py new file mode 100644 index 0000000000..1c73acc32e --- /dev/null +++ b/care/facility/migrations/0400_merge_20231208_0016.py @@ -0,0 +1,13 @@ +# Generated by Django 4.2.5 on 2023-12-07 18:46 + +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ("facility", "0394_alter_assetlocation_location_type"), + ("facility", "0398_alter_prescription_dosage_and_more"), + ("facility", "0399_populate_patientnotes_consultation"), + ] + + operations = [] From 6ea03f9f1bd9e3cf44ab0559b149b2aa0963fb1f Mon Sep 17 00:00:00 2001 From: Aakash Singh Date: Fri, 8 Dec 2023 01:39:25 +0530 Subject: [PATCH 20/27] merge migrations (#1752) * merge migrations * fix bad migration from #1505 * fix tests --- care/facility/api/serializers/asset.py | 2 +- .../migrations/0393_alter_hospitaldoctors_count.py | 2 +- care/facility/migrations/0401_merge_20231208_0054.py | 12 ++++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 care/facility/migrations/0401_merge_20231208_0054.py diff --git a/care/facility/api/serializers/asset.py b/care/facility/api/serializers/asset.py index 89bdc7b1e0..1c7d6eb52b 100644 --- a/care/facility/api/serializers/asset.py +++ b/care/facility/api/serializers/asset.py @@ -135,7 +135,7 @@ def update(self, instance, validated_data): "nullable": True, } ) -class ResolvedMiddlewareField(serializers.Field): +class ResolvedMiddlewareField(serializers.JSONField): pass diff --git a/care/facility/migrations/0393_alter_hospitaldoctors_count.py b/care/facility/migrations/0393_alter_hospitaldoctors_count.py index fa0044ea3f..e4e569cc2b 100644 --- a/care/facility/migrations/0393_alter_hospitaldoctors_count.py +++ b/care/facility/migrations/0393_alter_hospitaldoctors_count.py @@ -5,7 +5,7 @@ def convert_negative_to_positive(apps, schema_editor): - HospitalDoctors = apps.get_model("care", "HospitalDoctors") + HospitalDoctors = apps.get_model("facility", "HospitalDoctors") HospitalDoctors.objects.filter(count__lt=0).update(count=F("count") * -1) diff --git a/care/facility/migrations/0401_merge_20231208_0054.py b/care/facility/migrations/0401_merge_20231208_0054.py new file mode 100644 index 0000000000..0d385799fc --- /dev/null +++ b/care/facility/migrations/0401_merge_20231208_0054.py @@ -0,0 +1,12 @@ +# Generated by Django 4.2.5 on 2023-12-07 19:24 + +from django.db import migrations + + +class Migration(migrations.Migration): + dependencies = [ + ("facility", "0393_alter_hospitaldoctors_count"), + ("facility", "0400_merge_20231208_0016"), + ] + + operations = [] From 0869c4696557340ca67edc3c307fc630e6f46dac Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 8 Dec 2023 03:04:42 +0530 Subject: [PATCH 21/27] Bump werkzeug from 2.3.7 to 2.3.8 (#1753) Bumps [werkzeug](https://github.com/pallets/werkzeug) from 2.3.7 to 2.3.8. - [Release notes](https://github.com/pallets/werkzeug/releases) - [Changelog](https://github.com/pallets/werkzeug/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/werkzeug/compare/2.3.7...2.3.8) --- updated-dependencies: - dependency-name: werkzeug dependency-type: direct:development ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- Pipfile | 2 +- Pipfile.lock | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Pipfile b/Pipfile index f155ec9afc..52b0035431 100644 --- a/Pipfile +++ b/Pipfile @@ -66,7 +66,7 @@ mypy = "==1.5.1" pre-commit = "==3.4.0" tblib = "==2.0.0" watchdog = "==3.0.0" -werkzeug = "==2.3.7" +werkzeug = "==2.3.8" [docs] furo = "==2023.9.10" diff --git a/Pipfile.lock b/Pipfile.lock index 7ecca7001d..b4177a00d6 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "b83c3b253b6120c30a91762fa32ffd54747aa6e4c01b1a6d999166caa110945d" + "sha256": "d3c7b62f66862a3d2da451f26539502d9a0c5e73afa164ca789d8c4aea7085bd" }, "pipfile-spec": 6, "requires": { @@ -2335,12 +2335,12 @@ }, "werkzeug": { "hashes": [ - "sha256:2b8c0e447b4b9dbcc85dd97b6eeb4dcbaf6c8b6c3be0bd654e25553e0a2157d8", - "sha256:effc12dba7f3bd72e605ce49807bbe692bd729c3bb122a3b91747a6ae77df528" + "sha256:554b257c74bbeb7a0d254160a4f8ffe185243f52a52035060b761ca62d977f03", + "sha256:bba1f19f8ec89d4d607a3bd62f1904bd2e609472d93cd85e9d4e178f472c3748" ], "index": "pypi", "markers": "python_version >= '3.8'", - "version": "==2.3.7" + "version": "==2.3.8" } }, "docs": { From 68c24873858844be6a6122eacbbcc6d26de830c2 Mon Sep 17 00:00:00 2001 From: Aakash Singh Date: Fri, 8 Dec 2023 19:00:47 +0530 Subject: [PATCH 22/27] cleanup dummy data --- .../management/commands/load_dummy_data.py | 8 +- data/dummy/cypress_users.json | 78 --------- data/dummy/facility.json | 154 ------------------ data/dummy/facility_users.json | 38 ----- data/dummy/states.json | 101 ++++++++++++ data/dummy/users.json | 121 +------------- 6 files changed, 105 insertions(+), 395 deletions(-) delete mode 100644 data/dummy/cypress_users.json delete mode 100644 data/dummy/facility_users.json create mode 100644 data/dummy/states.json diff --git a/care/facility/management/commands/load_dummy_data.py b/care/facility/management/commands/load_dummy_data.py index 819b54a764..6a3d64c463 100644 --- a/care/facility/management/commands/load_dummy_data.py +++ b/care/facility/management/commands/load_dummy_data.py @@ -22,13 +22,11 @@ def handle(self, *args, **options): ) try: - management.call_command("loaddata", self.BASE_URL + "users.json") - management.call_command("load_data", "kerala") + management.call_command("loaddata", self.BASE_URL + "states.json") + management.call_command("load_skill_data") management.call_command("load_medicines_data") management.call_command("seed_data") - management.call_command("load_skill_data") + management.call_command("loaddata", self.BASE_URL + "users.json") management.call_command("loaddata", self.BASE_URL + "facility.json") - management.call_command("loaddata", self.BASE_URL + "cypress_users.json") - management.call_command("loaddata", self.BASE_URL + "facility_users.json") except Exception as e: raise CommandError(e) diff --git a/data/dummy/cypress_users.json b/data/dummy/cypress_users.json deleted file mode 100644 index 6818e8a57f..0000000000 --- a/data/dummy/cypress_users.json +++ /dev/null @@ -1,78 +0,0 @@ -[ - { - "model": "users.user", - "pk": 21, - "fields": { - "password": "argon2$argon2i$v=19$m=512,t=2,p=2$Tjk2THBOVnZqbW9O$Q1PFLkEcY/3grHVSo7rWvw", - "last_login": null, - "is_superuser": false, - "first_name": "Dev", - "last_name": "Doctor", - "email": "", - "is_staff": false, - "is_active": true, - "date_joined": "2022-10-28T06:48:51.373Z", - "username": "devdoctor", - "user_type": 15, - "created_by": 1, - "ward": null, - "local_body": null, - "district": 7, - "state": 1, - "phone_number": "+919876543219", - "alt_phone_number": "+919876543219", - "gender": 1, - "age": 20, - "home_facility": 1, - "doctor_qualification": null, - "doctor_experience_commenced_on": null, - "doctor_medical_council_registration": null, - "verified": true, - "deleted": false, - "pf_endpoint": null, - "pf_p256dh": null, - "pf_auth": null, - "asset": null, - "groups": [], - "user_permissions": [] - } - }, - { - "model": "users.user", - "pk": 22, - "fields": { - "password": "argon2$argon2i$v=19$m=512,t=2,p=2$Tjk2THBOVnZqbW9O$Q1PFLkEcY/3grHVSo7rWvw", - "last_login": null, - "is_superuser": false, - "first_name": "Dev", - "last_name": "Staff", - "email": "", - "is_staff": false, - "is_active": true, - "date_joined": "2022-10-28T06:48:51.373Z", - "username": "devstaff2", - "user_type": 10, - "created_by": 1, - "ward": null, - "local_body": null, - "district": 7, - "state": 1, - "phone_number": "+919876543219", - "alt_phone_number": "+919876543219", - "gender": 1, - "age": 20, - "home_facility": 1, - "doctor_qualification": null, - "doctor_experience_commenced_on": null, - "doctor_medical_council_registration": null, - "verified": true, - "deleted": false, - "pf_endpoint": null, - "pf_p256dh": null, - "pf_auth": null, - "asset": null, - "groups": [], - "user_permissions": [] - } - } -] diff --git a/data/dummy/facility.json b/data/dummy/facility.json index 8af5d7adaa..7598deedb0 100644 --- a/data/dummy/facility.json +++ b/data/dummy/facility.json @@ -6739,159 +6739,5 @@ "created_by": 2, "last_edited_by": 2 } - }, - { - "model": "facility.facilityrelatedsummary", - "pk": "99627ad6-53e7-4585-821a-21ac6e765f7b", - "fields": { - "created_date": "2022-09-27T07:00:00.163Z", - "modified_date": "2022-09-27T07:25:00.165Z", - "facility": 1, - "s_type": "FacilityCapacity", - "data": { - "id": "81092ced-8720-44cb-b4c5-3f0ad0540153", - "name": "Dummy Facility 1", - "ward": 1, - "state": 1, - "address": "127.0.0.1", - "pincode": 670000, - "district": 7, - "features": [ - 1, - 2, - 3, - 4, - 5, - 6 - ], - "latitude": null, - "inventory": {}, - "longitude": null, - "local_body": 920, - "ward_object": { - "id": 1, - "name": "NEERICODE WEST", - "number": 1, - "local_body": 920 - }, - "availability": [ - { - "id": "bfb7a4d8-6bf0-46d6-bf20-d5020850ea55", - "room_type": 150, - "modified_date": "2022-09-27T12:30:19.399000+05:30", - "room_type_text": "Oxygen beds", - "total_capacity": 1000, - "current_capacity": 20 - } - ], - "created_date": "2022-09-27T12:29:15.929000+05:30", - "phone_number": "+919999999888", - "state_object": { - "id": 1, - "name": "Kerala" - }, - "facility_type": "Private Hospital", - "modified_date": "2022-09-27T12:29:15.929000+05:30", - "district_object": { - "id": 7, - "name": "Ernakulam", - "state": 1 - }, - "kasp_empanelled": false, - "oxygen_capacity": 0, - "type_b_cylinders": 0, - "type_c_cylinders": 0, - "type_d_cylinders": 0, - "local_body_object": { - "id": 920, - "name": "Alangad  Grama Panchayat, Ernakulam District", - "district": 7, - "body_type": 1, - "localbody_code": "G070203" - }, - "actual_live_patients": 1, - "read_cover_image_url": null, - "expected_type_b_cylinders": 0, - "expected_type_c_cylinders": 0, - "expected_type_d_cylinders": 0, - "actual_discharged_patients": 0, - "expected_oxygen_requirement": 0 - } - } - }, - { - "model": "facility.facilityrelatedsummary", - "pk": "e294a2c2-3b05-469f-b975-e7766201df13", - "fields": { - "created_date": "2022-09-27T07:20:00.162Z", - "modified_date": "2022-09-27T07:25:00.171Z", - "facility": 2, - "s_type": "FacilityCapacity", - "data": { - "id": "fa33079d-727d-4295-b0fd-19153b36b2db", - "name": "Dummy Shifting Center", - "ward": 218, - "state": 1, - "address": "89.66.33.55", - "pincode": 670112, - "district": 7, - "features": [ - 1, - 6 - ], - "latitude": null, - "inventory": {}, - "longitude": null, - "local_body": 12, - "ward_object": { - "id": 218, - "name": "VALAMBOOR", - "number": 2, - "local_body": 12 - }, - "availability": [ - { - "id": "52bd4e97-9064-4697-8fea-37e0a2b8c87c", - "room_type": 150, - "modified_date": "2022-09-27T12:46:52.525280+05:30", - "room_type_text": "Oxygen beds", - "total_capacity": 20, - "current_capacity": 1 - } - ], - "created_date": "2022-09-27T12:45:51.075776+05:30", - "phone_number": "+919876665987", - "state_object": { - "id": 1, - "name": "Kerala" - }, - "facility_type": "Shifting Centre", - "modified_date": "2022-09-27T12:45:51.075811+05:30", - "district_object": { - "id": 7, - "name": "Ernakulam", - "state": 1 - }, - "kasp_empanelled": false, - "oxygen_capacity": 0, - "type_b_cylinders": 0, - "type_c_cylinders": 0, - "type_d_cylinders": 0, - "local_body_object": { - "id": 12, - "name": "Aikaranad  Grama Panchayat, Ernakulam District", - "district": 7, - "body_type": 1, - "localbody_code": "G071005" - }, - "actual_live_patients": 0, - "read_cover_image_url": null, - "expected_type_b_cylinders": 0, - "expected_type_c_cylinders": 0, - "expected_type_d_cylinders": 0, - "actual_discharged_patients": 0, - "expected_oxygen_requirement": 0 - } - } } ] diff --git a/data/dummy/facility_users.json b/data/dummy/facility_users.json deleted file mode 100644 index 63653d33df..0000000000 --- a/data/dummy/facility_users.json +++ /dev/null @@ -1,38 +0,0 @@ -[ -{ - "model": "facility.facilityuser", - "pk": 1, - "fields": { - "facility": 1, - "user": 2, - "created_by": 2 - } -}, -{ - "model": "facility.facilityuser", - "pk": 2, - "fields": { - "facility": 2, - "user": 2, - "created_by": 2 - } -}, -{ - "model": "facility.facilityuser", - "pk": 3, - "fields": { - "facility": 1, - "user": 21, - "created_by": 2 - } -}, -{ - "model": "facility.facilityuser", - "pk": 4, - "fields": { - "facility": 1, - "user": 22, - "created_by": 2 - } -} -] diff --git a/data/dummy/states.json b/data/dummy/states.json new file mode 100644 index 0000000000..fd984c6c2a --- /dev/null +++ b/data/dummy/states.json @@ -0,0 +1,101 @@ +[ + { + "model": "users.state", + "pk": 1, + "fields": { + "name": "Kerala" + } + }, + { + "model": "users.district", + "pk": 5, + "fields": { + "state": 1, + "name": "Kottayam" + } + }, + { + "model": "users.district", + "pk": 7, + "fields": { + "state": 1, + "name": "Ernakulam" + } + }, + { + "model": "users.localbody", + "pk": 6, + "fields": { + "district": 7, + "name": "Aikaranad Grama Panchayat, Ernakulam District", + "body_type": 1, + "localbody_code": "G071005" + } + }, + { + "model": "users.localbody", + "pk": 12, + "fields": { + "district": 7, + "name": "Alangad Block Panchayat, Ernakulam District", + "body_type": 2, + "localbody_code": "B070200" + } + }, + { + "model": "users.localbody", + "pk": 20, + "fields": { + "district": 7, + "name": "Aluva Municipality, Ernakulam District", + "body_type": 10, + "localbody_code": "M070800" + } + }, + { + "model": "users.localbody", + "pk": 95, + "fields": { + "district": 5, + "name": "Changanassery Municipality, Kottayam District", + "body_type": 10, + "localbody_code": "M050300" + } + }, + { + "model": "users.ward", + "pk": 218, + "fields": { + "local_body": 902, + "name": "KAPPUMALA", + "number": 5 + } + }, + { + "model": "users.ward", + "pk": 5896, + "fields": { + "local_body": 95, + "name": "ANNAPOORNESWARI TEMPLE", + "number": 2 + } + }, + { + "model": "users.ward", + "pk": 6276, + "fields": { + "local_body": 20, + "name": "MANA", + "number": 4 + } + }, + { + "model": "users.ward", + "pk": 15162, + "fields": { + "local_body": 6, + "name": "PAZHAMTHOTTAM", + "number": 1 + } + } +] diff --git a/data/dummy/users.json b/data/dummy/users.json index c18cd97b40..3b809cb414 100644 --- a/data/dummy/users.json +++ b/data/dummy/users.json @@ -1,123 +1,4 @@ [ - { - "model": "users.state", - "pk": 1, - "fields": { - "name": "Kerala" - } - }, - { - "model": "users.district", - "pk": 1, - "fields": { - "state": 1, - "name": "Thiruvananthapuram" - } - }, - { - "model": "users.district", - "pk": 2, - "fields": { - "state": 1, - "name": "Kollam" - } - }, - { - "model": "users.district", - "pk": 3, - "fields": { - "state": 1, - "name": "Pathanamthitta" - } - }, - { - "model": "users.district", - "pk": 4, - "fields": { - "state": 1, - "name": "Alappuzha" - } - }, - { - "model": "users.district", - "pk": 5, - "fields": { - "state": 1, - "name": "Kottayam" - } - }, - { - "model": "users.district", - "pk": 6, - "fields": { - "state": 1, - "name": "Idukki" - } - }, - { - "model": "users.district", - "pk": 7, - "fields": { - "state": 1, - "name": "Ernakulam" - } - }, - { - "model": "users.district", - "pk": 8, - "fields": { - "state": 1, - "name": "Thrissur" - } - }, - { - "model": "users.district", - "pk": 9, - "fields": { - "state": 1, - "name": "Palakkad" - } - }, - { - "model": "users.district", - "pk": 10, - "fields": { - "state": 1, - "name": "Malappuram" - } - }, - { - "model": "users.district", - "pk": 11, - "fields": { - "state": 1, - "name": "Kozhikode" - } - }, - { - "model": "users.district", - "pk": 12, - "fields": { - "state": 1, - "name": "Wayanad" - } - }, - { - "model": "users.district", - "pk": 13, - "fields": { - "state": 1, - "name": "Kannur" - } - }, - { - "model": "users.district", - "pk": 14, - "fields": { - "state": 1, - "name": "Kasargode" - } - }, { "model": "users.user", "pk": 1, @@ -136,7 +17,7 @@ "created_by": null, "ward": null, "local_body": null, - "district": 1, + "district": 5, "state": 1, "phone_number": "+919696969696", "alt_phone_number": null, From 560b3bd848464dce53717be8dfa95f96aa5e743f Mon Sep 17 00:00:00 2001 From: Aakash Singh Date: Fri, 8 Dec 2023 19:19:38 +0530 Subject: [PATCH 23/27] fix --- data/dummy/facility.json | 4 ++-- data/dummy/states.json | 9 --------- 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/data/dummy/facility.json b/data/dummy/facility.json index 7598deedb0..e7b6e00366 100644 --- a/data/dummy/facility.json +++ b/data/dummy/facility.json @@ -54,8 +54,8 @@ "latitude": null, "pincode": 670112, "address": "89.66.33.55", - "ward": 218, - "local_body": 12, + "ward": 15162, + "local_body": 6, "district": 7, "state": 1, "oxygen_capacity": 0, diff --git a/data/dummy/states.json b/data/dummy/states.json index fd984c6c2a..c5d35562ce 100644 --- a/data/dummy/states.json +++ b/data/dummy/states.json @@ -62,15 +62,6 @@ "localbody_code": "M050300" } }, - { - "model": "users.ward", - "pk": 218, - "fields": { - "local_body": 902, - "name": "KAPPUMALA", - "number": 5 - } - }, { "model": "users.ward", "pk": 5896, From 3e635e947f0dfccff4fb6adda3c9de2cb28024b5 Mon Sep 17 00:00:00 2001 From: Pranshu1902 Date: Sat, 9 Dec 2023 17:32:52 +0530 Subject: [PATCH 24/27] fix data type error --- care/facility/api/viewsets/patient_external_test.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/care/facility/api/viewsets/patient_external_test.py b/care/facility/api/viewsets/patient_external_test.py index 2118ef92f7..4587dc2992 100644 --- a/care/facility/api/viewsets/patient_external_test.py +++ b/care/facility/api/viewsets/patient_external_test.py @@ -146,7 +146,7 @@ def bulk_upsert(self, request, *args, **kwargs): # check if the user is from same district for data in request.data["sample_tests"]: - if request.user.district != data["district"]: + if str(request.user.district) != data["district"]: raise ValidationError({"Error": "User must belong to same district"}) errors = [] From 026949a2f50dd647ed86331e419404d54b9f8c08 Mon Sep 17 00:00:00 2001 From: Pranshu1902 Date: Sat, 9 Dec 2023 22:02:03 +0530 Subject: [PATCH 25/27] add tests --- .../tests/test_upload_external_result.py | 91 +++++++++++++++++++ care/utils/tests/test_utils.py | 8 ++ 2 files changed, 99 insertions(+) create mode 100644 care/facility/tests/test_upload_external_result.py diff --git a/care/facility/tests/test_upload_external_result.py b/care/facility/tests/test_upload_external_result.py new file mode 100644 index 0000000000..f66edc93c5 --- /dev/null +++ b/care/facility/tests/test_upload_external_result.py @@ -0,0 +1,91 @@ +from rest_framework import status +from rest_framework.test import APITestCase + +from care.utils.tests.test_utils import TestUtils + + +class PatientExternalTestViewSetTestCase(TestUtils, APITestCase): + @classmethod + def setUpTestData(cls) -> None: + cls.state = cls.create_state() + cls.district = cls.create_district(cls.state) + cls.local_body = cls.create_local_body(cls.district) + cls.ward = cls.create_ward(cls.local_body) + cls.ward1 = cls.create_ward(cls.local_body) + cls.user = cls.create_super_user("su", cls.district) + + def test_no_data_upload(self): + response = self.client.post( + "/api/v1/external_result/bulk_upsert/", sample_data={} + ) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.assertEqual(response.data["sample_tests"], "No Data was provided") + + def test_different_district_upload(self): + sample_data = { + "sample_tests": [ + { + "district": "Random_district", + "srf_id": "00/EKM/0000", + "name": "Test Upload0", + "age": 24, + "age_in": "years", + "gender": "m", + "mobile_number": 8888888888, + "address": "Upload test address", + "ward": 7, + "local_body": "Poothrikka", + "local_body_type": "grama panchayath", + "source": "Secondary contact aparna", + "sample_collection_date": "2020-10-14", + "result_date": "2020-10-14", + "test_type": "Antigen", + "lab_name": "Karothukuzhi Laboratory", + "sample_type": "Ag-SD_Biosensor_Standard_Q_COVID-19_Ag_detection_kit", + "patient_status": "Asymptomatic", + "is_repeat": "NO", + "patient_category": "Cat 17: All individuals who wish to get themselves tested", + "result": "Negative", + } + ] + } + + response = self.client.post( + "/api/v1/external_result/bulk_upsert/", sample_data, format="json" + ) + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.assertEqual(response.data["Error"], "User must belong to same district") + + def test_same_district_upload(self): + sample_data = { + "sample_tests": [ + { + "district": str(self.district), + "srf_id": "00/EKM/0000", + "name": "Test Upload0", + "age": 24, + "age_in": "years", + "gender": "m", + "mobile_number": 8888888888, + "address": "Upload test address", + "ward": self.ward.id, + "local_body": str(self.local_body.name), + "local_body_type": "municipality", + "source": "Secondary contact aparna", + "sample_collection_date": "2020-10-14", + "result_date": "2020-10-14", + "test_type": "Antigen", + "lab_name": "Karothukuzhi Laboratory", + "sample_type": "Ag-SD_Biosensor_Standard_Q_COVID-19_Ag_detection_kit", + "patient_status": "Asymptomatic", + "is_repeat": "NO", + "patient_category": "Cat 17: All individuals who wish to get themselves tested", + "result": "Negative", + } + ] + } + + response = self.client.post( + "/api/v1/external_result/bulk_upsert/", sample_data, format="json" + ) + self.assertEqual(response.status_code, status.HTTP_202_ACCEPTED) diff --git a/care/utils/tests/test_utils.py b/care/utils/tests/test_utils.py index bf2b560893..b6cb59132c 100644 --- a/care/utils/tests/test_utils.py +++ b/care/utils/tests/test_utils.py @@ -21,6 +21,7 @@ PatientConsultation, PatientRegistration, User, + Ward, ) from care.facility.models.asset import Asset, AssetLocation from care.facility.models.bed import Bed, ConsultationBed @@ -167,6 +168,13 @@ def create_user( cls.link_user_with_facility(user, home_facility, user) return user + @classmethod + def create_ward(cls, local_body) -> Ward: + ward = Ward.objects.create( + name=f"Ward{now().timestamp()}", local_body=local_body, number=1 + ) + return ward + @classmethod def create_super_user(cls, *args, **kwargs) -> User: return cls.create_user( From 8b529d20a17ebb31999ca0729f65cd56eba6e394 Mon Sep 17 00:00:00 2001 From: Pranshu1902 Date: Sun, 10 Dec 2023 14:32:18 +0530 Subject: [PATCH 26/27] refactor tests --- care/facility/tests/test_upload_external_result.py | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/care/facility/tests/test_upload_external_result.py b/care/facility/tests/test_upload_external_result.py index f66edc93c5..0ea4e3ed36 100644 --- a/care/facility/tests/test_upload_external_result.py +++ b/care/facility/tests/test_upload_external_result.py @@ -11,7 +11,6 @@ def setUpTestData(cls) -> None: cls.district = cls.create_district(cls.state) cls.local_body = cls.create_local_body(cls.district) cls.ward = cls.create_ward(cls.local_body) - cls.ward1 = cls.create_ward(cls.local_body) cls.user = cls.create_super_user("su", cls.district) def test_no_data_upload(self): @@ -33,9 +32,9 @@ def test_different_district_upload(self): "gender": "m", "mobile_number": 8888888888, "address": "Upload test address", - "ward": 7, - "local_body": "Poothrikka", - "local_body_type": "grama panchayath", + "ward": self.ward.id, + "local_body": str(self.local_body.name), + "local_body_type": "municipality", "source": "Secondary contact aparna", "sample_collection_date": "2020-10-14", "result_date": "2020-10-14", From 5c87480dcdb6f7aa7fbe943b9f741e79805c1c2b Mon Sep 17 00:00:00 2001 From: Aakash Singh Date: Mon, 11 Dec 2023 19:49:39 +0530 Subject: [PATCH 27/27] rename skills with incorrect spelling --- care/users/migrations/0010_rename_skills.py | 40 +++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 care/users/migrations/0010_rename_skills.py diff --git a/care/users/migrations/0010_rename_skills.py b/care/users/migrations/0010_rename_skills.py new file mode 100644 index 0000000000..69f0451ab4 --- /dev/null +++ b/care/users/migrations/0010_rename_skills.py @@ -0,0 +1,40 @@ +# Generated by Django 4.2.5 on 2023-12-11 13:55 + +from django.db import migrations + + +def fix_skill_name(apps, schema_editor): + Skill = apps.get_model("users", "Skill") + + fix = { + "Anesthetists": "Anesthesiologist", + "Emergency Medicine Physcian": "Emergency Medicine Physician", + "Family Physcian": "Family Physician", + "Intensivists": "Intensivist", + "obstetrician and Gynecologists": "Obstetrician and Gynecologist", + "Opthalmologists": "Ophthalmologist", + "orthopaedic Surgeon": "Orthopedic Surgeon", + "Orthopaedician": "Orthopedic", + "Otolaryngologist ( ENT )": "Otolaryngologist (ENT)", + "Palliative care Physcian": "Palliative care Physician", + "Pathologists": "Pathologist", + "Psychiatrists": "Psychiatrist", + "Physcian": "Physician", + "Pulmonologists": "Pulmonologist", + } + + for old, new in fix.items(): + try: + Skill.objects.filter(name=old).update(name=new) + except Exception as e: + print(e) + + +class Migration(migrations.Migration): + dependencies = [ + ("users", "0009_userfacilityallocation"), + ] + + operations = [ + migrations.RunPython(fix_skill_name, migrations.RunPython.noop), + ]