Giter Club home page Giter Club logo

virtualdoctor's Introduction

VirtualDoctor

Implementation of ambulance organizational system like a three-layered structure using WPF and MySQL Client in .NET Core. Tehnologies:

  • MySql Database using MySqlClient provider for .NET applications
  • WPF application (.NET) using C# and XAML
  • .NET Core class libraries
  • Neo4
  • Automapper

System purpose: VirtualDoctor introduces new digital ways for manipulating healthcare informations, like personal health records, doctors, patients, ambulances with list of doctors who work there, possible doctor's specializations and titles. Also, each place has list of qualities. It gives support for future upgrade, with Neo4j database, that would allow user to check for symptoms and doctors to get list og all possible diseases that SATISFY specific criteria. That way patients can check if they really need to go to doctor and list of possible doctors for disease and doctors can get list of possible diseases for patient he examines. Symptom checker is not implemented in this version of system, so there is no connectiom between global and ambulance database.

Users:Depending on type of users, different features are enabled. Users are: Doctors, Admins for places, ambulances, titles, specializations and doctors, Admins for health records, Patients

Details of implementation: On frontend part paging is enabled on tables. Also there is option for changing language (Serbian, English). On backend, systems like EntityFramework are not used. Instead there is raw sql that MySql provider for .NET executes on db server. That way we get better performance and better control over sql commands and generally, sql language expressions. Not only that, but Command Pattern is used with System.Reflection to lower need for duplicating sql expressions in code, and that greatly improved code reusability and system agility. Just perfect. It also uses services as medium layer of three layer structure to make code even more reusable. It needs to be refactored so that each layer has its own models for inter and intra layer communication, but in this phase I choosed to decrease instead code duplication. As DI is not supported in WPF applications, I used tradicional Factory Methods for creating objects (for example Services). SOLID principles are followed. In backend part, in need for code maintability and reusability, I used different classes as ServiceExecutor for example and DbCommand, that are core and main classes of whole implementation, each with Single Responsability. See code for additional details or contact me on my email: [email protected].

For you to run program: First, script for generating database is in project AmbulanceDatabase, subfolder Scripts. Run it in some MySQL DBMS tool like MySQLWorkbench. ConnectionString is saved in Properties.settings file in Config subfolder of same project. Change it. Some roles should be inserted in database before using it. You can use Insert script for that purpose. That are OrganizationalAdmin, PatientAdmin, DoctorAdmin, AccountsAdmin.

Read also: Also, password hashing needs to be implemented. For now, passwordhash in database is users raw password. This project was for course purposes, so some things are not properly implemented.

virtualdoctor's People

Contributors

chimarry avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.