Digihoito on React- ja ASP.NET Core -sovellus. Projekti käytettävässä tilassa, vaikkakin siinä on vielä paranneltavaa.
Korostettakoon, että tämä siis on vain leluharrastusprojekti.
Asiantuntija ja potilas käyttävät sama sovellusta eri selaimella.
Potilaan näkymä. Potilas voi myös sulkea chatin ja sitten avautuvassa näkymässä lisätä uuden casen so. chat-viestiketjuaiheen...
Asiantuntijalla näkyy siksi enemmän sivuja, koska hän voi lukea kaikkien potilaiden chat-viestit. Lukkoa painamalla asiantuntija voi lukita viestiketjun, jolloin myöskään hän ei itse voi lisätä siihen enää viestejä.
Asenna Windows-ymparistoon seuraavat:
- .NET 10 SDK
- Node.js ja npm
- SQL Server LocalDB
Projektissa ei ole Docker-konfiguraatiota, joten tietokantana kaytetaan Windowsin SQL Server LocalDB:ta.
Users (1) -------- (N) PatientCases
PatientCases (1) - (N) Messages
Users (1) -------- (N) Messages
+------------------------------+
| Digihoito.Api |
| - Controllers / Endpoints |
+--------------+---------------+
|
v
+------------------------------+
| Digihoito.Application |
| - Commands |
| - Queries |
| - DTOs |
+--------------+---------------+
|
v
+------------------------------+
| Digihoito.Infrastructure |
| - EF Core |
| - DbContext |
| - QueryHandlers |
| - Repositories |
+--------------+---------------+
|
v
+------------------------------+
| Digihoito.Domain |
| - PatientCase (Aggregate) |
| - Message (Entity) |
| - Domain-logiikka |
+------------------------------+
Cases
|
|-- PatientCase (Aggregate Root)
| |-- Id
| |-- PatientId
| |-- IsLocked
| |-- _messages : List<Message>
| |
| |-- AddMessage(...)
| |-- Lock()
| `-- Messages (ICollection<Message>)
|
`-- Message (Entity)
|-- Id
|-- PatientCaseId
|-- SenderId
|-- Content
|-- CreatedAt
|-- IsReadByAdmin
|-- IsReadByPatient
|
|-- MarkAsReadByAdmin()
`-- MarkAsReadByPatient()
Suorita komennot PowerShellissa projektin juurihakemistossa.
Palauta ensin backendin riippuvuudet:
dotnet restore Digihoito.slnxAja EF Core -migraatiot ennen ensimmaista backendin kaynnistysta. Komento kannattaa ajaa infrastruktuuriprojektin hakemistosta:
cd src\Digihoito.Infrastructure
dotnet ef database update --startup-project ..\Digihoito.ApiJos dotnet ef -komentoa ei loydy, asenna projektin kayttama versio:
dotnet tool install --global dotnet-ef --version 10.0.7Aja tietokantapaivitys uudelleen asennuksen jalkeen:
dotnet ef database update --startup-project ..\Digihoito.ApiPalaa projektin juureen ennen frontendin asennusta:
Avaa backendia varten oma PowerShell-terminaali projektin juurihakemistoon ja suorita:
dotnet run --project src\Digihoito.Api\Digihoito.Api.csprojOletuskäynnistys käyttää HTTP-osoitetta:
http://localhost:5199
Jata tama terminaali kayntiin.
Avaa toinen PowerShell-terminaali projektin juurihakemistoon. Asenna frontendin riippuvuudet ja kaynnista Vite-kehityspalvelin:
cd frontend
npm install
npm run devnpm install asentaa riippuvuudet.
Frontend avautuu oletuksena osoitteessa http://localhost:5173. Backendin tulee
olla kaynnissa toisessa terminaalissa. Frontend kayttaa backendia osoitteessa
http://localhost:5199; osoite on talla hetkella maaritelty suoraan useisiin
frontendin tiedostoihin, eika projektissa ole .env-asetusta.
Kehitysympariston oletusyllapitaja on:
- Sahkoposti (käyttäjätunnus):
admin@digihoito.local - Salasana:
Admin123!
Backendin oletusyhteysmerkkijono on appsettings.json-tiedostossa:
Server=(localdb)\mssqllocaldb;Database=DigihoitoDb;Trusted_Connection=True;MultipleActiveResultSets=true
Paikallista yliajoa varten asetukset voi antaa ymparistomuuttujina:
ConnectionStrings__DefaultConnectionJwt__Key
frontend/: React 19 + TypeScript + Vite 7 -frontendsrc/Digihoito.Api/: ASP.NET Core Minimal API -rajapinta (.NET 10)src/Digihoito.Application/: sovelluksen commandit, queryt ja DTO:tsrc/Digihoito.Infrastructure/: EF Core, DbContext, query handlerit ja repositoriotsrc/Digihoito.Domain/: domain-malli ja domain-logiikka
