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),
+ ]