MCL V4.0 AllInOne / MCL V5.0 Enterprise · on-premise · dva izdanja · Valjevo, Srbija
MCL
Softver za vašu polikliniku, ordinaciju ili laboratoriju. Kartoni pacijenata ostaju u vašoj zgradi — ne na tuđem serveru. Radi i kad pukne internet.
Medicinski informacioni softver za zdravstvene ustanove — rad lokalno, podaci u zgradi. Dva izdanja: AllInOne i Enterprise.
Vaši pacijenti nisu u cloud-u, zašto bi bili njihovi kartoni?
Obilazak = mapa softvera · demo AllInOne toka · nivoi u obilasku
SESSION
Izaberi ulogu
Ulaziš u demo prikaz programa — pun ekran.
Podaci su fiktivni. Izaberite ulogu i prođite module.
entering LAN ……
section: prednosti
Zašto MCL?
On-premise .NET 9 platforma sa PostgreSQL bazom, modularnim licencama i iskrenim statusom svakog modula (produkcija ili BETA).
Podaci ostaju u ustanovi. Dva izdanja: V4.0 AllInOne (jedan Windows proces) i V5.0 Enterprise (Docker, 14 mikroservisa). Bare-metal Linux po dogovoru.
Database-First, ~185 SQL tabela (263 FK), UUID ključevi, AES-256-GCM za JMBG/LBO i PII kolone, backup dump + WAL arhiva.
JWT u httpOnly cookie (120 min), BCrypt, refresh token single-use, lockout 5/30 min, GDPR maskiranje, medicinski audit, licence po modulu. TOTP 2FA — BETA.
Cenovnik 1800+ stavki, računi, payroll API. Fiskal sandbox radi; produkcioni V-PFR Srbija — BETA.
Consent, audit trail, maskiranje PII. Dizajn usklađen sa GDPR; DPIA i DPA po zahtevu. Nije ISO 27001 ni HIPAA sertifikat.
9 jezika definisano u sistemu; seed prevodi za 6 (sr, en, bs, hr, mk, sl). Proširivo kroz admin panel aplikacije.
section: statistike
module: prijem …… ok
status: produkcijaPrijem pacijenata
Registracija pacijenta, red čekanja, KZO čitač (Gemalto USB), kalendar termina, pretraga, ordinacije 1–10 i dnevni protokol.
module: kabinet …… ok
status: produkcijaLekarski kabinet
27 medicinskih kabineta po specijalizaciji, pregled, kartoteka, MKB-10, dosije, vitalni parametri i PDF prijava. Sestra ne vidi tab dijagnoze.
module: lab …… ok
status: produkcijaLaboratorija
Lab analize, nalozi, grupe i rezultati po pacijentu. HL7/ASTM prijem — backend postoji; analyzer bridge u testiranju (BETA).
module: apoteka …… ok
status: produkcijaApoteka
Magacin, zalihe, lotovi, FIFO rashod, dobavljači, normativi i knjiga prijema. Recepti nisu u apoteci — modul eRecept je odvojen (EHealth, BETA).
module: intervencije …… ok
status: produkcijaIntervencije
Nalozi, dijagnostika, terapije, specijalizovane forme (27 modula), rashod materijala iz apoteke i norme iz kataloga (~2130 stavki: 773 dijagnostika, 1126 intervencija, 232 terapija).
module: fiskalna …… sandbox ready
status: sandbox 100% · čeka dozvolu Poreske upraveFiskalna naplata
Cenovnik (1800+ aktivnih stavki), usluge, paketi, računi i obračun plata. Fiskalna kasa: sandbox test (JIKR simulacija) radi; produkcioni V-PFR Srbija — BETA / u testiranju. Adapteri RS/BA/HR/ME u kodu — produkcija nije verifikovana.
module: ezdravlje …… sandbox ready
status: sandbox 100% · čeka dozvole resornih ministarstavaeZdravlje integracija
EHealth mikroservis (:8093). Sandbox mock IZIS na :8193 u development okruženju. Produkciona RFZO integracija — roadmap.
module: admin …… ok
status: produkcijaAdministracija sistema
Korisnici, lekari (veza korisnik ↔ lekar ↔ kabinet ↔ specijalizacija), radno vreme, katalog normi (~2131 stavki), backup, audit, postavke i i18n.
module: komunikacije …… ok
status: SMS / notifikacijeKomunikacije sa pacijentima
Communications MS (:8096). /api/Sms/status OK. Pun inbox i kampanje — u testiranju. Viber nije produkcioni kanal.
module: allinone …… ok
status: V4.0 AllInOne · Windows · Tip CAllInOne host
Jedna instalacija na Windowsu. Podaci u zgradi. Bez cloud računa.
module: demo …… ok
status: uloge · demoDemo — izaberi ulogu
Interaktivna simulacija MCL-a na sajtu (cPanel). Sidebar, moduli, tabovi — klikabilno, bez servera. Za prezentacije.
Podaci su fiktivni. Izaberite ulogu i prođite module.
module: oprema …… ok
Izdanja softvera
Dva izdanja, jedan princip: podaci u zgradi. Cene nisu javne — ponuda po ustanovi.
Licenciranje je po modulima preko License Manager-a — SuperAdmin aktivira module. Cene nisu javne; ponuda se radi po ustanovi. Paketi ispod opisuju obuhvat licence i način deploy-a, ne maloprodajnu cenu.
Fiskalizacija po zemljama
| Zemlja | Adapter | Status |
|---|---|---|
| Srbija | V-PFR (SBR) | Sandbox radi; produkcija BETA / u testiranju |
| Hrvatska | CIS | Adapter u kodu — nije produkcioni verifikovan |
| Bosna i Hercegovina | FPU | Adapter u kodu — nije produkcioni verifikovan |
| Crna Gora | FPU | Adapter u kodu — nije produkcioni verifikovan |
Dodatne usluge
- Migracija podataka iz starog sistema
- Implementacija i puštanje u rad
- Obuka osoblja (dan)
- Godišnja podrška i ažuriranja
- LIS integracija sa laboratorijskim analizatorom
- Prilagođavanje modula (custom razvoj)
module: salter …… ok
Kontakt
MEDIC COD LABS DOO · Valjevo, Srbija
- tel: +381 60 30 200 94
- email: info@mcldhi.com
- web: www.mcldhi.com
company: medic-cod-labs …… ok
O firmi
MEDIC COD LABS DOO — razvoj kliničkog informacionog sistema MCL za ordinacije, klinike i domove zdravlja u Srbiji i regionu.

MEDIC COD LABS DOO je softverska kuća iz Valjeva. MCL je modularna .NET 9 platforma — V4.0 AllInOne (jedan proces, Windows) i V5.0 Enterprise (14 mikroservisa, Docker/Linux) — sa PostgreSQL bazom i on-premise deploy-om. Softversko rešenje je prijavljeno kod Zavoda za intelektualnu svojinu Republike Srbije (A-466/2026). Podrška kroz Inovacioni fond — po važećim programima.
Podaci o firmi
- MEDIC COD LABS DOO
- slogan: Klinički informacioni sistem nove generacije
- tagline: digitalna inovacija u zdravstvu — drugo vreme za druge pristupe
- adresa: Valjevo, Srbija
- telefon: +381 60 30 200 94
- email: info@mcldhi.com
- web: www.mcldhi.com
- PIB: 115842883
- MB: 22320475
- godina: 2026
Digitalizacija zdravstvenih ustanova kroz siguran, on-premise softver koji poštuje privatnost pacijenata i zakone Republike Srbije i GDPR, bez nerealnih sertifikacionih tvrdnji.
Naše vrednosti
LAN instalacija, AES-256 za JMBG, JWT — podaci ne moraju da napuštaju ustanovu.
Produkcija i BETA su označeni. FHIR, RFZO, AI i produkciona fiskalizacija nisu „gotovi“ dok nisu u produkciji.
FHIR R4 mapperi postoje; HTTP sloj je BETA (~15 REST + sync ruta). Pun R4 i HL7 v2 — roadmap.
Dizajn usklađen sa GDPR principima. DPIA i DPA po zahtevu. Nismo ISO 27001 ni HIPAA sertifikovani.
Naše reference
Reference se objavljuju samo uz ugovor sa ustanovom.
docs: arhitektura …… ok
Tehnologija
Arhitektura, mikroservisi, baza, bezbednost, deploy i roadmap — usklađeno sa stanjem koda (avgust 2026).
Arhitektura
MCL — isti codebase, tri načina pokretanja: V4.0 AllInOne monolit na Windows, V5.0 Enterprise sa 14 mikroservisa (Docker/Linux) i bare-metal Linux.
Tok zahteva (Enterprise)
Browser / MAUI klijent → MCL.AllInOne Windows servis (:8090) — UI shell + svi kontroleri + KZO/RFID/Print agenti → PostgreSQL 18 (baza mcl). U V5.0 Enterprise: Browser → Nginx (:80/443, TLS, jedini javni port) → Ocelot Gateway (:8090) → mikroservis (:8081–8097) → PostgreSQL 16 + Redis + RabbitMQ.
Tehnološki stack
| Sloj | Tehnologija |
|---|---|
| Backend | .NET 9, C#, ASP.NET Core Web API |
| ORM | Entity Framework Core (Database-First) |
| Baza | PostgreSQL 16+ (obavezno; SQLite se ne koristi) |
| Frontend (primarni) | HTML5, Bootstrap 5, vanilla JavaScript (wwwroot) |
| Desktop klijent | .NET MAUI (10 ekrana) |
| Legacy web | ASP.NET MVC (MCL.Web) — navigacioni kostur, nije produkcioni UI |
| API Gateway | Ocelot (JSON routing), port 8090 u Enterprise Docker |
| Message bus | RabbitMQ + MassTransit (Enterprise Docker) |
| Keš | Redis (Enterprise; opciono u dev) |
| Real-time | SignalR (3 hub-a u backendu) — BETA: frontend još koristi polling |
| Observability | OpenTelemetry, Prometheus /metrics, Jaeger (zavisi od env) |
| Worker | MCL.Worker — outbox, reminders, LIS polling — BETA, nije u standardnom Windows dev stack-u |
deploy
| Model | Opis | Namena |
|---|---|---|
| V4.0 AllInOne (Windows) | Jedan .NET 9 proces kao Windows servis (:8090) + PostgreSQL 18 Windows servis. Inno Setup installer — servis auto-start, prvobitna lozinka, bez Dockera. | Ordinacije, poliklinike, mali DZ — ~60% ciljnih kupaca |
| V5.0 Enterprise (Docker) | 14 mikroservisa + PostgreSQL 16 + Redis + RabbitMQ + Nginx :80 (TLS, jedini javni port) + Ocelot :8090 + Prometheus/Grafana/Alertmanager. | Bolnice i veće ustanove, LAN/DC |
| Bare-metal (Linux) | systemd + Kestrel, bez Dockera — isti codebase. | Produkcija na Linux serveru bez kontejnera |
Mikroservisi (14 aktivnih + monolit)
| Servis | Port | Odgovornost | Status |
|---|---|---|---|
| MCL.Api (monolit) | 8080 | UI shell, statički frontend, proxy, KZO, license, ordinacije | produkcija |
| Identity | 8081 | JWT auth, BCrypt, TOTP setup, RFID login | produkcija |
| Patients | 8082 | Pacijenti, dosije, consent, hronični bolesnici | produkcija |
| Appointments | 8083 | Termini, red čekanja, pregled, raspored | produkcija |
| Laboratory | 8086 | Lab analize, nalozi, grupe | produkcija |
| Pharmacy | 8087 | Magacin, FIFO, zalihe, normativi, rashod | produkcija |
| MedicalRecords | 8088 | MKB-10, kabineti, lekari, specijalizacije, dokumenti | produkcija |
| Integrations | 8089 | AI predikcija, phase6 utility | beta |
| Admin | 8091 | Korisnici, i18n, statistika, audit log UI | produkcija |
| Intervencije | 8092 | Nalozi, dijagnostika, terapije, rashod materijala | produkcija |
| EHealth | 8093 | FHIR, eRecept, eUput, eFaktura, IZIS sync | beta |
| PACS | 8094 | DICOM studije, worklist, metadata export | beta |
| IoT | 8095 | RFID sesije, clock-in/out, radno vreme | beta |
| Communications | 8096 | SMS, email, notifikacije, mobile API stub | beta |
| Financial | 8097 | Cenovnik, računi, fiskalna, payroll API | produkcija |
Uklonjeno iz aktivnog stack-a: legacy Billing (:8084) i Fiscal (:8085) — spojeno u Financial (:8097). Gateway: Ocelot :8090 (Enterprise Docker). Laboratory analyzer i Financial fiskal — BETA gde je označeno.
Baza podataka
- sistem: PostgreSQL 16 (V5 Docker) / 18 (V4)
- ime: mcl
- tabele: ~185 u šemi (~203 sa particijama logova), 263 FK
- ef: 100 mapiranih DbSet entiteta u AppDbContext
- pristup: Database-First (bez EF migracija u produkciji)
- pk: UUID (Guid) za pacijente, dokumente, račune
- jmbg: AES-256-GCM (authenticated), zaseban JmbgKey iz env varijable + PII *_enc kolone
- backup: SQL dump + WAL arhiva
Bezbednost (implementirano u kodu)
| Mera | Status | Detalj |
|---|---|---|
| JWT u httpOnly cookie | produkcija | mcl_access 120 min — token nije u localStorage (XSS ne može da ga ukrade) |
| Refresh token | produkcija | SHA-256 hash u bazi, single-use, do 30 dana ("zapamti me") |
| BCrypt + istorija lozinki | produkcija | workFactor 12, pamti poslednjih 5 lozinki |
| Account lockout | produkcija | 5 neuspešnih pokušaja → 30 min zaključavanje |
| TOTP 2FA | beta | Setup/verify API postoji; login gate pre izdavanja tokena — u doradi |
| RFID SuperAdmin | produkcija | ACR122U/ACR1552U USB u MAUI; web RFID login |
| JMBG/PII enkripcija | produkcija | AES-256-GCM, zaseban JmbgKey + sve PII *_enc kolone |
| GDPR maskiranje | produkcija | GdprDataMaskingMiddleware — JMBG/telefon za ne-admin |
| Medicinski audit | produkcija | Svaki pristup kartonu — revizija (AuditInterceptor + MedicalAudit) |
| Tenant fail-closed | produkcija | Nevažeći tenant → 403; X-Tenant override samo u Development |
| Configuration validator | produkcija | Odbija start u produkciji sa dev ključevima / sandbox režimom |
| XSS sanitizacija | produkcija | mclEscapeHtml / rcEscAttr na svim kritičnim stranicama |
| JWT blacklist | produkcija | jti blacklist pri logout — ukraden token ne važi posle odjave |
| Module license | produkcija | Gateway + middleware blokiraju nelicencirane module |
| Doctor license check | produkcija | Lekar bez licence → 403 na medicinske rute |
RBAC uloge
| Uloga | Opis |
|---|---|
| SuperAdmin | Apsolutna prava, RFID, licence, remote unlock |
| Admin | Korisnici, šifarnici, backup, cenovnik |
| Lekari | Pregled, dijagnoza, kartoteka, eRecept (BETA) |
| Sestra | Prijem, red, vitalni, bez dijagnoze |
| Recepcioner | Termini, naplata, računi |
| Lab | Laboratorija, verifikacija nalaza |
| Apoteka | Magacin, FIFO, rashod (recepti su EHealth modul) |
Minimalni server (srednja ordinacija)
- V4.0 AllInOne (Windows): CPU 4+ jezgra · RAM 16 GB · 500 GB SSD · Windows 10/11 ili Server
- V5.0 Enterprise (Docker): CPU 8+ jezgara · RAM 32 GB · 1 TB NVMe + HDD backup · Ubuntu 22.04+
- Mreža: Gigabit LAN, UPS preporučen
V4.0 AllInOne: 8090 (UI+API, LAN), 5432 (PostgreSQL — samo interno). V5.0 Enterprise: 80/443 (Nginx, jedini javni), 8090 (Ocelot, interno), 8081–8097 (mikroservisi, interno), 5432/6379/5672 (interno, nikad na internet).
FAQ za IT
Da. On-premise LAN; internet je potreban samo za eZdravlje/RFZO integracije (BETA).
Da — Patroni HA konfiguracija u docker/postgres/patroni.yml (Enterprise).
Tenant kontekst postoji u kodu (ITenantService); produkcioni multi-site WAN — roadmap.
V4.0 AllInOne: 8090 (UI+API), 5432 (PostgreSQL — samo interno). V5.0 Enterprise: 80/443 (Nginx javni), 8090 (Ocelot), 8081–8097 (MS), 5432/6379/5672 — svi interno, nikad na internet.
Swagger/OpenAPI na /swagger u Development okruženju; u produkciji je onemogućen.
Docker: docker compose pull && up. Windows/Linux: dotnet publish + systemd restart. Backup pre update-a je obavezan.
Roadmap
- Pun browser E2E test suite
- SignalR umesto polling-a u red čekanja
- Produkciona fiskalizacija RS (V-PFR)
- RFZO / IZIS produkciona integracija
- TOTP login gate (2FA obavezan za admin)
- SQL migracija racun_broj_seq u install skripte
- MinIO DICOM skladište
- Edge-AI CDSS na LAN-u (bez PHI u cloud)
- GraphQL karton
- Zero-trust / multi-ustanova (VPN, mTLS, tenant RLS)
- Kubernetes enterprise deploy