CareGrid on moderni teho-osaston valvontajärjestelmä, joka on suunniteltu visualisoimaan kriittistä potilasdataa reaaliajassa.
Tämä projekti toimii Full Stack -osaaminnäytteenä, jossa demonstroidaan skaalautuvan, mikropalveluhenkisen arkkitehtuurin toteutusta moderneilla Microsoft-teknologioilla ja kontitetulla ympäristöllä.
Tämä ei ole vain staattinen sivu, vaan täysin toimiva simulaatiojärjestelmä:
- ⚡ Reaaliaikainen valvonta: Potilaiden syke ja happisaturaatio (SpO2) päivittyvät käyttöliittymään millisekuntien viiveellä (SignalR).
- 🚨 Älykäs hälytysjärjestelmä: Järjestelmä tunnistaa automaattisesti raja-arvojen ylitykset ja generoi hälytyksiä.
- 🎛️ Simulaattori: Backendissä pyörivä itsenäinen moottori generoi elävää dataa ilman manuaalista syöttöä.
- 📱 Responsiivinen UI: Rakennettu Angular 17:n uusimmilla ominaisuuksilla (Signals) ja Tailwind CSS:llä.
Projektissa on sovellettu seuraavia teknologioita ja menetelmiä:
| Alue | Teknologiat & Konseptit |
|---|---|
| Backend | .NET 8 Web API, C# 12, Background Services (Simulaatio), Entity Framework Core 8 |
| Frontend | Angular 17 (Standalone, Signals), Tailwind CSS, Chart.js (reaaliaikainen piirto) |
| Data & Reaaliaikaisuus | SignalR (WebSockets), SQL Server, RESTful API suunnittelu |
| DevOps & Infra | Docker, Docker Compose, Multi-container architecture |
Järjestelmä on suunniteltu modulaariseksi ja vikasietoiseksi.
Palvelin toimii sekä API:na että itsenäisenä simulaattorina.
- Architecture: Eroteltu logiikka (Services) ja tietokantakerros.
- Concurrency:
ConcurrentDictionaryja säieturvallinen ohjelmointi varmistavat suorituskyvyn suuressa kuormassa. - Optimointi: Raakadata striimataan suoraan muistista, kun taas tietokantaan (MSSQL) tallennetaan vain pysyvä historia ja hälytykset.
- Moderni tilanhallinta: Hyödyntää Angularin uutta Signals-arkkitehtuuria, mikä tekee sovelluksesta nopeamman ja kevyemmän kuin perinteiset ratkaisut.
- Visualisointi:
ng2-chartspiirtää liukuvaa aikasarjadataa ilman sivun nykimistä.
Haluatko kokeilla itse? Projekti on kontitettu, joten et tarvitse .NET-asennusta koneellesi.
- Kloonaa repositorio.
- Luo
.envtiedosto (cp .env.example .env). - Käynnistä Dockerilla:
docker-compose up --build
- Avaa http://localhost:4200
Backend tarjoaa kattavan Swagger-dokumentaation (/swagger) kehitysympäristössä.
POST /simulate- Pakota hätätilanne (testaa hälytyslogiikkaa).POST /silence- Hiljennä hälytys (hoitajan kuittaus).
Koska kyseessä on tekninen demo (Proof of Concept):
- Historia: Sykehistoria pidetään toistaiseksi muistissa (In-Memory). Tuotantoversiossa käytettäisiin aikasarjatietokantaa (esim. InfluxDB).
- Security: Autentikaatio on jätetty pois, jotta demon ajaminen on vaivatonta.
