Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Number of beds
Number of ICU beds
Number of Paitens
Number COVID positive Patients
Stock (Inventory along with count)
Capture daily triage details from each hospital
Number of beds avilable
Number of patients admitted
Nubmer of COVID postive patients
Number of people under observation
Number of cases reported today
Number of COVID postive reported today
Number of beds avilable
Number of patients admitted
Nubmer of COVID postive patients
Number of people under observation
Design Document
Coronasafe Care is a free and open-source disaster management system that is used by the National Health Mission, the Government of India, and various state governments for reimaging digital war rooms. The solution that students got an opportunity to intern with has supported 3.34*Lac patient management and 1.29* Lac ambulance shiftings and is approved by the United Nations as a
Generate ICMR form the user data
Patient Consulation details Daily Rounds for each consultation Option to tranfer a medical records from one hospital to another.
Details to be Added
id: AutoField
state: ForeignKey (id)
name: CharField id: AutoField
name: CharField id AutoField
facility ForeignKey (id)
patient ForeignKey (id)
referred_to ForeignKey (id)
admission_date DateTimeField
admitted BooleanField
admitted_to IntegerField
bed_number CharField
category CharField
created_date DateTimeField
deleted BooleanField
discharge_date DateTimeField
examination_details TextField
existing_medication TextField
external_id UUIDField
modified_date DateTimeField
other_symptoms TextField
prescribed_medication TextField
suggestion CharField
symptoms MultiSelectField
symptoms_onset_date DateTimeField room_id: Room.id
icu_bed: bool id AutoField
consultation ForeignKey (id)
additional_symptoms MultiSelectField
current_health IntegerField
other_details TextField
other_symptoms TextField
patient_category CharField
physical_examination_info TextField
recommend_discharge BooleanField
temperature DecimalField
temperature_measured_at DateTimeField Details of buildings a facility has
id AutoField
facility ForeignKey (id)
created_date DateTimeField
deleted BooleanField
external_id UUIDField
modified_date DateTimeField
name CharField
num_buildings IntegerField
num_floors IntegerField
num_rooms IntegerField id AutoField
building ForeignKey (id)
beds_capacity IntegerField
created_date DateTimeField
deleted BooleanField
external_id UUIDField
floor IntegerField
modified_date DateTimeField
num CharField
occupied_beds IntegerField
room_type IntegerField Stock (Inventory along with count)
Number of cases reported today
Number of COVID postive reported today
Backend API - Django Frontend - React Typescript Database - Postgres - RDS with read replica Hosting Backend - EKS with amazon ACM cert Hosting Frontend - EC2 - Nginx with Cloudflare origin cert and proxy Version control - Github Communication - Slack Ci/CD - Circle Ci
Care is deployed in production at different states in India. The production instance for Kerala/Ernakulam is deployed at
Frontend: care.coronasafe.network Backend API: http://careapi.coronasafe.network/
Frontend: care.coronasafe.in Backend API: careapi.coronasafe.in/
New Relic APM
Backend: https://github.com/coronasafe/care Frontend: https://github.com/coronasafe/care_fe
Telemedicine (WIP)
Ambulance and Food Delivery Network (https://logistics.coronasafe.network)
Facility Management
Realtime Capacity Analysis
Patient Management
Sample Management
Patient Record Management
Inventory Management
Central Dashboard for GOV
Central Dashbaord for all facilities
Build telemedicine.coronasafe.network inside care
This will allow all facilities in the care system to operate their own telemedicine unit seamlessly.
staff profile with limited data access should be able to log calls
doctor linked to the facility should be able to see the pending calls and associated patent record
The doctor should be able to add consultation
The doctor should be able to schedule a reminder for follow-up.
pending calls, upcoming followups and missed followups should be listed on an index page
The docotor should be able to add a prescription for the patient which can be shared with the patient via SMS.
The pharmacy unit of the facility should be able to mark the status of each prescription given to the patient.
Doctor could be a tele-caller for multiple facilities.
A facility admin should be able to assign calls to a doctor
For the network security of the application we have enforced the following standards.
Web Application Firewall (WAF) Configured at Domain level to prevent access to coronasafe.network from countries like US, China, Hongkong, Pakistan , Russian Federation Etc
Open Web Application Security Project (OWASP) core rule set based WAF rules implemented to provide protection against common attack categories, including Structured Query Language (SQL) Injection and Cross-Site Scripting.
Care has been Security Audited & Assessed as per CERT-IN Guideline & OWASP Standard. The Site & Web Application is fit and safe for hosting under continuous monitoring and observation by Authorized Authorities. The Application/Site has fulfilled the criteria as per CERT-IN Security norms.
The full certification details can be found here:
Autonomous system number (ASN) based lockdown in WAF against common threat matrix.
Sanity Check Based Block and Rate Limiting Enabled
Network level Port Blocking allowing only port 80 and 443 from internet in the entire network
IP blacklist and lockdown based on Threat Score ( Score Greater than 8 is blocked) based on IP reputation.
Customised Content Security policy (CSP) Header implemented to prevent common Clickjacking and other attacks .
HTTP Strict Transport Security (HSTS) preloaded domain wide to enforce Hypertext Transfer Protocol Secure (HTTPS) only traffic with a Max Age of 1 year
Origin to domain, domain to domain, and domain to User traffic encrypted via Transport Layer Security 1.2 (tls1.2) and above
Content Security Policy (CSP) and Certificate Transparency CT violations monitoring done to update threat matrix
The Domain Name System Security Extensions (DNSSEC) enabled to prevent domain takeovers .(DNSSEC protects against forged domain name system (DNS) answers. DNSSEC protected zones are cryptographically signed to ensure the DNS records received are identical to the DNS records published by the domain owner.)
Speed up of page load speed by the Implementation of Brotli Compression
HTTP/2 and HTTP/3(Quick User Datagram Protocol Internet Connections) enabled for faster network speeds
Automatic Branch based Continuous integration (CI) and continuous delivery (CD) to prevent unauthorised access.
New pods are created before old pods with old code is terminated.
Database backups (Snapshots) are created daily at scheduled intervals and stored with Key Management Service (KMS) keys securely inside Cloud Infrastructure without external Access.
All server nodes and Volumes and database Instances are Encrypted with KMS based Cryptographic Keys.
Database Connectivity allowed only using internal Private Network and allowed for the backend host only.
Virtual Private Network(VPN) + Jump Host( Bastion Host) Based Server Maintenance (Cluster Management Shell ) to enhance security.
Reverse Proxying all network traffic to mask origin IP to enhance security. Apart from the above rules, additional measures could be added to enforce maximum security of data
id AutoField
consultation ForeignKey (id)
patient ForeignKey (id)
atypical_presentation TextField
created_date DateTimeField
date_of_result DateTimeField
date_of_sample DateTimeField
deleted BooleanField
diagnosis TextField
diff_diagnosis TextField
doctor_name CharField
etiology_identified TextField
external_id UUIDField
fast_track TextField
has_ari BooleanField
has_sari BooleanField
icmr_category IntegerField
is_atypical_presentation BooleanField
is_unusual_course BooleanField
modified_date DateTimeField
result IntegerField
sample_type IntegerField
sample_type_other TextField
status IntegerField Admin with state level data scope
District Admin
User with district level data scope
Facility Admin
User with facility level data scope
Doctor
User with limited data permissions
Patient
User with acess to his/her personal data
Staff
User with limited data permissions
User Type
Privilege
Super Admin
Admin for the entire platform
State Admin
PatientRegistration
id AutoField
created_by ForeignKey (id)
district ForeignKey (id)
facility ForeignKey (id)
local_body ForeignKey (id)
meta_info OneToOneField (id)
nearest_facility ForeignKey (id)
state ForeignKey (id)
aadhar_no CharField
address EncryptedTextField
age PositiveIntegerField
blood_group CharField
contact_with_confirmed_carrier BooleanField
contact_with_suspected_carrier BooleanField
countries_travelled JSONField
countries_travelled_old TextField
created_date DateTimeField
date_of_birth DateField
date_of_receipt_of_information DateTimeField
date_of_return DateTimeField
deleted BooleanField
disease_status IntegerField
estimated_contact_date DateTimeField
external_id UUIDField
gender IntegerField
has_SARI BooleanField
is_active BooleanField
is_medical_worker BooleanField
modified_date DateTimeField
name EncryptedCharField
nationality CharField
number_of_aged_dependents IntegerField
number_of_chronic_diseased_dependents IntegerField
ongoing_medication TextField
passport_no CharField
past_travel BooleanField
patient_search_id EncryptedIntegerField
phone_number EncryptedCharField
present_health TextField
source IntegerField
year_of_birth IntegerField Common table for inventory
id AutoField
facility ForeignKey (id)
item ForeignKey (id)
created_date DateTimeField
deleted BooleanField
external_id UUIDField
modified_date DateTimeField
quantitiy IntegerField minimum_stock will vary for each inventory item. It should be captured so that, we could trigger alerts
id: AutoField
district: ForeignKey (id)
local_body: ForeignKey (id)
skill: ForeignKey (id)
state: ForeignKey (id)
age: IntegerField
date_joined: DateTimeField
deleted: BooleanField
email: EmailField
first_name: CharField
gender: IntegerField
is_active: BooleanField
is_staff: BooleanField
is_superuser: BooleanField
last_login: DateTimeField
last_name: CharField
password: CharField
phone_number: CharField
user_type: IntegerField
username: CharField
verified: BooleanField Report: Link Password: hawk
Report: Link

id AutoField
district ForeignKey (id)
body_type IntegerField
localbody_code CharField
name CharField PATIENT_CREATED
20
Patient Created
PATIENT_UPDATED
30
Patient Updated
PATIENT_DELETED
40
Patient Deleted
PATIENT_CONSULTATION_CREATED
50
Consultation Created
PATIENT_CONSULTATION_UPDATED
60
Consultation Updated
PATIENT_CONSULTATION_DELETED
70
Consultation Deleted
INVESTIGATION_SESSION_CREATED
80
Investigation Created
INVESTIGATION_UPDATED
90
Investigation Updated
PATIENT_FILE_UPLOAD_CREATED
100
Patient File Uploaded
CONSULTATION_FILE_UPLOAD_CREATED
110
Consultation File Uploaded
PATIENT_CONSULTATION_UPDATE_CREATED
120
Daily Round Created
PATIENT_CONSULTATION_UPDATE_UPDATED
130
Daily Round Updated
PATIENT_CONSULTATION_ASSIGNMENT
140
Patient Doctor Assigned
SHIFTING_UPDATED
200
Shifting Request Updated









Join table for facilty and inventory
id AutoField
created_date DateTimeField
deleted BooleanField
description TextField
external_id UUIDField
minimum_stock IntegerField
modified_date DateTimeField
name CharField
unit CharField 

Unique Patient Registration
Capture basic medical data
Capture consulation details
Capture daily rounds
Tables
id AutoField
created_by ForeignKey (id)
district ForeignKey (id)
local_body ForeignKey (id)
state ForeignKey (id)
address TextField
corona_testing BooleanField
created_date DateTimeField
deleted BooleanField
external_id UUIDField
facility_type IntegerField
is_active BooleanField
location LocationField
modified_date DateTimeField
name CharField
oxygen_capacity IntegerField
phone_number CharField
pincode IntegerField
verified BooleanField 