Coder Social home page Coder Social logo

arnab-developer / medicalsystem Goto Github PK

View Code? Open in Web Editor NEW
1.0 4.0 1.0 1.14 MB

Personal medical system.

License: MIT License

C# 88.01% HTML 9.77% CSS 0.52% JavaScript 0.09% TSQL 1.27% Dockerfile 0.34%
csharp asp-net-mvc nunit github-actions grpc microservice azure cqrs-pattern mediatr entity-framework

medicalsystem's Introduction

Medical system

Medical system is a small application build with ASP.NET 5 and EF to document medical records. User can store doctor, patient and consultation information in this application with their web browser. This is a proof of concept of how we can use microservice with ASP.NET 5.

image

This is influenced by .NET Microservices Sample Reference Application

CI CD status

Module Status
Doctor service Doctor service CI CD
Patient service Patient service CI CD
Consultation service Consultation service CI CD
Web gateway Web gateway CI CD
Web mvc Web mvc CI CD
Doctor sync job Doctor sync job CI CD
Patient sync job Patient sync job CI CD
Health check dashboard Health check dashboard CI CD

Tech stack

Module Tech
Backend apis ASP.NET 5 gRPC service
Gateway ASP.NET 5 Web Api
Frontend web application ASP.NET 5 MVC
Jobs Azure function
Database access Entity Framework
Database SQL Server
Unit test NUnit

Architecture diagram

Medical system architecture

Docker images

This app is in docker images and stored in dockerhub.

Images Dockerhub Version
Doctor service https://hub.docker.com/r/45862391/doctorservice Docker Image Version (latest by date)
Patient service https://hub.docker.com/r/45862391/patientservice Docker Image Version (latest by date)
Consultation service https://hub.docker.com/r/45862391/consultationservice Docker Image Version (latest by date)
Web gateway https://hub.docker.com/r/45862391/webgateway Docker Image Version (latest by date)
Web mvc https://hub.docker.com/r/45862391/webmvc Docker Image Version (latest by date)

Hosting

When a new release is created then this app is stored inside a docker image and push to docker hub through CI CD. Hosting in Azure is not done as a part of CI CD. That needs to be done manually.

  • Create a new resource group in Azure
  • In that resource group create the following resources
    • App Service Plan for Linux
    • Web App for Doctor service, Patient service, Consultation service, Web Gateway and Web Mvc
    • SQL Server
    • Database for Doctor service, Patient service and Consultation service
  • Create tables in the databases for Doctor service, Patient service and Consultation service
  • Update the connection strings in the web app configuration for Doctor service, Patient service and Consultation service
  • Update api endpoint urls in Web Gateway and Web Mvc

Now open the Web App URL in web browser for Web Mvc and you should access the app.

The future plan is to deploy the services in AKS.

How to run

You need Visual Studio 2019, ASP.NET 5, Entity Framework, Azure tools for Visual Studio 2019 and SQL Server 2016 to work on this solution locally.

  • Clone the repo
  • Create the databases and tables with the script provided in the repo.
  • Update the connection strings and other configs in appsettings.Development.json file in different projects as applicable to your local settings before executing this app.
  • Open the solution in Visual Studio
  • Set the below projects as startup projects
    • Doctor service
    • Patient service
    • Consultation service
    • Web gateway
    • Web frontend
  • Press F5 to run

medicalsystem's People

Contributors

arnab-developer avatar arnabcog avatar dependabot[bot] avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

bionstt

medicalsystem's Issues

gRPC service for backend apis.

Convert below backend services to gRPC service instead of web api.

  • Doctor service
  • Patient service
  • Consultation service

Request comes from web browser to gateway through web api. Request goes from gateway to backend services through gRPC.

Usage of var.

Use var only those places where it is obvious, other places use explicit type names.

Example:

var person1 = new Person(); 

IEnumerable<Person> persons = dal.GetAllPersons();

Xml comments

Create xml comments for all external types. Use external xml document.

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.