Healthcare Management App Flutter Firebase Save

Complete Healthcare Management (Patient, OPD, IPD, Rx, Lab) Flutter Firebase App for iOS, Android, Web & Desktop

Project README

Flutter FireBase Healthcare Management App

Complete Healthcare Management (Patient, OPD, IPD, Rx, Lab) in Flutter Firebase App for iOS Android and Web

- If you like this project, please consider giving it a star (*) and follow me at GitHub & YouTube.

Elish HMS

Elish Healthcare Management System App

Objective

Manage OPD, IPD, Pathology, WebMD, Rx, Patient Appointments

Due to current Covid-19 situation,
Patient's private data is not stored in app and location tracing functionality is not available with out government/authorities approval.

Getting Started

This project is a community version and is absolutely free for private use.
click here for Demo & Video tutorials

Technologies

Frontend: Flutter
Backend:Google Firestore/Firebase
Messages: LOOM SDK
WebView: loom-app (using Angular version

Features

  • Store millions of records with lightening fast data retrieval
  • hands free /voice activated typing
  • Secured App (Role based access with Admin panel)
  • Local dictionary based auto-completion
  • Global dictionary based auto-completion/auto-sync (Pro)
  • GBs of pictures, documents, Lab reports, Receipts (Pro)
  • Self learning (auto complete) data entry (Pro)
  • Social authentication (Pro)
  • SMS, EMAIL, WhatsAPP API (Pro)
send email to [email protected] for Pro version enquiries.

Product Images

Pic 1 Pic 2 Pic 3 Pic 4

How to Install

  • Install Flutter environment
  • Download This GitHub repository
  • install Flutter packages *pub get) and Flutter web -> Flutter create .
  • Setup firebase account/project
  • Copy Firebase Project Config settings and replace variable firebaseConfig at src/web/index.html
  • enable Firebase social authentications
  • update Firebase Rules
    rules_version = '2';
    service cloud.firestore {
    match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
    match /roles/{document} {
    // fix this, anyone who is logged in, can read these document & passwords
    //  allow read: if isSignedIn();
  	allow read, write: if false;
    }
    
    match /users/{document} {
    allow create: if true;
    allow read : if isSignedIn() && (isDocOwner() || isAdmin());
    allow update: if isSignedIn() && isDocOwner() && onlyContentChanged();
    allow update, delete: if isAdmin();
    }
    
    match /person/{document=**} {
    allow create: if true;
    allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
    allow delete : if isSignedIn() && isAdmin();
    }
    
    match /person/{document}/Vaccine/{doc=**} {
    allow create: if true;
    // allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
    // fix this later
    allow read, update : if true;
    allow delete : if isSignedIn() && isAdmin();
    }
    
    match /person/{document}/OPD/{doc} {
    allow create: if true;
    // allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
    // fix this later
    allow read, update : if true;
    allow delete : if isSignedIn() && isAdmin();
    }
    
    match /person/{document}/Lab/{doc} {
    allow create: if true;
    // allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
    // fix this later
    allow read, update : if true;allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
    allow delete : if isSignedIn() && isAdmin();
    }
    
    match /person/{document}/Rx/{doc} {
    allow create: if true;
    // allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
    // fix this later
    allow read, update : if true;
    allow delete : if isSignedIn() && isAdmin();
    }
    
    match /person/{document}/Messages/{doc} {
    allow create: if true;
    // allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
    // fix this later
    allow read, update : if true;
    allow delete : if isSignedIn() && isAdmin();
    }
    
    match /appointments/{document} {
    allow create: if true;
    allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
    allow delete : if isSignedIn() && isAdmin();
    }
    
    match /records/{document} {
    allow create: if true;
    allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
    }
    
    match /vaccine/{document} {
    allow create: if true;
    allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
    }
    
    match /purchase/{document} {
    allow create: if true;
    allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
    allow delete : if isSignedIn() && isAdmin();
    }
    
		match /msr/{document} {
    allow create: if true;
    allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
    allow delete : if isSignedIn() && isAdmin();
    }
    
    match /vendor/{document} {
    allow create: if true;
    allow read, update : if isSignedIn() && (isDocOwner() || isAdmin());
    allow delete : if isSignedIn() && isAdmin();
    }
    
    match /warehouse/{document} {
    allow create: if true;
    allow read: if isSignedIn()
    allow update : if isSignedIn() && (isDocOwner() || isAdmin());
    allow delete : if isSignedIn() && isAdmin();
    }
    match /item/{document} {
    allow create: if true;
    allow read: if isSignedIn()
    allow update : if isSignedIn() && (isDocOwner() || isAdmin());
    allow delete : if isSignedIn() && isAdmin();
    }
    
    // helper functions
    function isSignedIn() {
    return request.auth.uid != null;
    }
    
    function onlyContentChanged() {
    return request.resource.data.role == resource.data.role;
    // make sure user is not signing in with any role or changin his role during update
    }
    function isDocOwner() {
    return request.auth.uid == resource.data.author;
    }
    // function isDocCreater() {
    // return request.auth.uid == request.resource.data.author;
    // }
    function isAdmin() {
    return get(/databases/$(database)/documents/users/$(request.auth.uid)).data.role == "admin";
    }
    // function isEmployee() {
    // return get(/databases/$(database)/documents/settings/$(request.auth.uid)).data.role == "employee";
    // }
    }
    }

Pic 4 Pic 4 Pic 4

Open Source Agenda is not affiliated with "Healthcare Management App Flutter Firebase" Project. README Source: AmitXShukla/Healthcare-Management-App-Flutter_Firebase

Open Source Agenda Badge

Open Source Agenda Rating