Preskoči na sadržaj
MCL

on-premise · LAN · Valjevo

Blog Bezbednost sajta A+
STATUS power …… off
MCL V4.0 AllInOne Windows servis · jedan .NET 9 proces · port 8090 · 1–10 ordinacija Jedna instalacija na Windows računaru u vašoj ustanovi. Prijem, 27 kabineta, laboratorija, apoteka, naplata — sve na lokalnoj mreži, radi i bez interneta.

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

MCL V5.0 Enterprise Linux · Docker Compose · 14 mikroservisa + Ocelot + Nginx (TLS) · HA po dogovoru Bolnice, klinike i regionalne mreže. Svaki domen je zaseban servis iza Ocelot gateway-a, podaci u vašem data centru, horizontalno skaliranje.

section: prednosti

Zašto MCL?

On-premise .NET 9 platforma sa PostgreSQL bazom, modularnim licencama i iskrenim statusom svakog modula (produkcija ili BETA).

hdd-stack On-premise, LAN

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 PostgreSQL

Database-First, ~185 SQL tabela (263 FK), UUID ključevi, AES-256-GCM za JMBG/LBO i PII kolone, backup dump + WAL arhiva.

shield-lock Bezbednost u kodu

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.

receipt Fiskalna i naplata

Cenovnik 1800+ stavki, računi, payroll API. Fiskal sandbox radi; produkcioni V-PFR Srbija — BETA.

shield-check GDPR principi

Consent, audit trail, maskiranje PII. Dizajn usklađen sa GDPR; DPIA i DPA po zahtevu. Nije ISO 27001 ni HIPAA sertifikat.

translate 9 jezika u aplikaciji

9 jezika definisano u sistemu; seed prevodi za 6 (sr, en, bs, hr, mk, sl). Proširivo kroz admin panel aplikacije.

section: statistike

14Mikroservisa (V5.0)
185+SQL tabela
110+UI ekrana
3Deploy modela
02
MODUL · PRIJEMINFOPULT · ŠALTER · RED

module: prijem …… ok

status: produkcija

Prijem pacijenata

Registracija pacijenta, red čekanja, KZO čitač (Gemalto USB), kalendar termina, pretraga, ordinacije 1–10 i dnevni protokol.

03
MODUL · KABINETORDINACIJA · RBAC · KARTON

module: kabinet …… ok

status: produkcija

Lekarski kabinet

27 medicinskih kabineta po specijalizaciji, pregled, kartoteka, MKB-10, dosije, vitalni parametri i PDF prijava. Sestra ne vidi tab dijagnoze.

04
MODUL · LABORATORIJALIS · UZORCI · NALAZI

module: lab …… ok

status: produkcija

Laboratorija

Lab analize, nalozi, grupe i rezultati po pacijentu. HL7/ASTM prijem — backend postoji; analyzer bridge u testiranju (BETA).

05
MODUL · APOTEKAMAGACIN · FIFO · RASHOD

module: apoteka …… ok

status: produkcija

Apoteka

Magacin, zalihe, lotovi, FIFO rashod, dobavljači, normativi i knjiga prijema. Recepti nisu u apoteci — modul eRecept je odvojen (EHealth, BETA).

06
MODUL · INTERVENCIJENALOZI · TERAPIJE · NORME

module: intervencije …… ok

status: produkcija

Intervencije

Nalozi, dijagnostika, terapije, specijalizovane forme (27 modula), rashod materijala iz apoteke i norme iz kataloga (~2130 stavki: 773 dijagnostika, 1126 intervencija, 232 terapija).

07
MODUL · FISKALNANAPLATA · SANDBOX · PU

module: fiskalna …… sandbox ready

status: sandbox 100% · čeka dozvolu Poreske uprave

Fiskalna 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.

08
MODUL · eZDRAVLJEeRECEPT · IZIS · RFZO

module: ezdravlje …… sandbox ready

status: sandbox 100% · čeka dozvole resornih ministarstava

eZdravlje integracija

EHealth mikroservis (:8093). Sandbox mock IZIS na :8193 u development okruženju. Produkciona RFZO integracija — roadmap.

09
MODUL · ADMINKORISNICI · CENE · SISTEM

module: admin …… ok

status: produkcija

Administracija sistema

Korisnici, lekari (veza korisnik ↔ lekar ↔ kabinet ↔ specijalizacija), radno vreme, katalog normi (~2131 stavki), backup, audit, postavke i i18n.

10
MODUL · KOMUNIKACIJESMS · VIBER · EMAIL

module: komunikacije …… ok

status: SMS / notifikacije

Komunikacije sa pacijentima

Communications MS (:8096). /api/Sms/status OK. Pun inbox i kampanje — u testiranju. Viber nije produkcioni kanal.

11
HOST · ALLINONEWINDOWS · TIP C · LAN

module: allinone …… ok

status: V4.0 AllInOne · Windows · Tip C

AllInOne host

Jedna instalacija na Windowsu. Podaci u zgradi. Bez cloud računa.

12
MODUL · DEMOULOGE · INTERFEJS

module: demo …… ok

status: uloge · demo

Demo — 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.

13
MAPA · IZDANJAALLINONE · ENTERPRISE

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

ZemljaAdapterStatus
SrbijaV-PFR (SBR)Sandbox radi; produkcija BETA / u testiranju
HrvatskaCISAdapter u kodu — nije produkcioni verifikovan
Bosna i HercegovinaFPUAdapter u kodu — nije produkcioni verifikovan
Crna GoraFPUAdapter 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)
14
KANAL · KONTAKTŠALTER · REFERENCA · VALJEVO

module: salter …… ok

Kontakt

MEDIC COD LABS DOO · Valjevo, Srbija

  • tel: +381 60 30 200 94
  • email: info@mcldhi.com
  • web: www.mcldhi.com

Slanjem forme obrađujemo vaše podatke u skladu sa Politikom privatnosti.

15
FIRMA · O NAMAMEDIC COD LABS · VALJEVO

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

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
Naša misija

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

On-premise prvo

LAN instalacija, AES-256 za JMBG, JWT — podaci ne moraju da napuštaju ustanovu.

Iskren status

Produkcija i BETA su označeni. FHIR, RFZO, AI i produkciona fiskalizacija nisu „gotovi“ dok nisu u produkciji.

Interoperabilnost (u toku)

FHIR R4 mapperi postoje; HTTP sloj je BETA (~15 REST + sync ruta). Pun R4 i HL7 v2 — roadmap.

Usklađenost

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.

16
DOCS · TEHNOLOGIJASTACK · DEPLOY · ROADMAP

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

SlojTehnologija
Backend.NET 9, C#, ASP.NET Core Web API
ORMEntity Framework Core (Database-First)
BazaPostgreSQL 16+ (obavezno; SQLite se ne koristi)
Frontend (primarni)HTML5, Bootstrap 5, vanilla JavaScript (wwwroot)
Desktop klijent.NET MAUI (10 ekrana)
Legacy webASP.NET MVC (MCL.Web) — navigacioni kostur, nije produkcioni UI
API GatewayOcelot (JSON routing), port 8090 u Enterprise Docker
Message busRabbitMQ + MassTransit (Enterprise Docker)
KešRedis (Enterprise; opciono u dev)
Real-timeSignalR (3 hub-a u backendu) — BETA: frontend još koristi polling
ObservabilityOpenTelemetry, Prometheus /metrics, Jaeger (zavisi od env)
WorkerMCL.Worker — outbox, reminders, LIS polling — BETA, nije u standardnom Windows dev stack-u

deploy

ModelOpisNamena
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)

ServisPortOdgovornostStatus
MCL.Api (monolit)8080UI shell, statički frontend, proxy, KZO, license, ordinacijeprodukcija
Identity8081JWT auth, BCrypt, TOTP setup, RFID loginprodukcija
Patients8082Pacijenti, dosije, consent, hronični bolesniciprodukcija
Appointments8083Termini, red čekanja, pregled, rasporedprodukcija
Laboratory8086Lab analize, nalozi, grupeprodukcija
Pharmacy8087Magacin, FIFO, zalihe, normativi, rashodprodukcija
MedicalRecords8088MKB-10, kabineti, lekari, specijalizacije, dokumentiprodukcija
Integrations8089AI predikcija, phase6 utilitybeta
Admin8091Korisnici, i18n, statistika, audit log UIprodukcija
Intervencije8092Nalozi, dijagnostika, terapije, rashod materijalaprodukcija
EHealth8093FHIR, eRecept, eUput, eFaktura, IZIS syncbeta
PACS8094DICOM studije, worklist, metadata exportbeta
IoT8095RFID sesije, clock-in/out, radno vremebeta
Communications8096SMS, email, notifikacije, mobile API stubbeta
Financial8097Cenovnik, računi, fiskalna, payroll APIprodukcija

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)

MeraStatusDetalj
JWT u httpOnly cookieprodukcijamcl_access 120 min — token nije u localStorage (XSS ne može da ga ukrade)
Refresh tokenprodukcijaSHA-256 hash u bazi, single-use, do 30 dana ("zapamti me")
BCrypt + istorija lozinkiprodukcijaworkFactor 12, pamti poslednjih 5 lozinki
Account lockoutprodukcija5 neuspešnih pokušaja → 30 min zaključavanje
TOTP 2FAbetaSetup/verify API postoji; login gate pre izdavanja tokena — u doradi
RFID SuperAdminprodukcijaACR122U/ACR1552U USB u MAUI; web RFID login
JMBG/PII enkripcijaprodukcijaAES-256-GCM, zaseban JmbgKey + sve PII *_enc kolone
GDPR maskiranjeprodukcijaGdprDataMaskingMiddleware — JMBG/telefon za ne-admin
Medicinski auditprodukcijaSvaki pristup kartonu — revizija (AuditInterceptor + MedicalAudit)
Tenant fail-closedprodukcijaNevažeći tenant → 403; X-Tenant override samo u Development
Configuration validatorprodukcijaOdbija start u produkciji sa dev ključevima / sandbox režimom
XSS sanitizacijaprodukcijamclEscapeHtml / rcEscAttr na svim kritičnim stranicama
JWT blacklistprodukcijajti blacklist pri logout — ukraden token ne važi posle odjave
Module licenseprodukcijaGateway + middleware blokiraju nelicencirane module
Doctor license checkprodukcijaLekar bez licence → 403 na medicinske rute

RBAC uloge

UlogaOpis
SuperAdminApsolutna prava, RFID, licence, remote unlock
AdminKorisnici, šifarnici, backup, cenovnik
LekariPregled, dijagnoza, kartoteka, eRecept (BETA)
SestraPrijem, red, vitalni, bez dijagnoze
RecepcionerTermini, naplata, računi
LabLaboratorija, verifikacija nalaza
ApotekaMagacin, 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 li MCL radi bez interneta?

Da. On-premise LAN; internet je potreban samo za eZdravlje/RFZO integracije (BETA).

Da li podržava PostgreSQL repliku?

Da — Patroni HA konfiguracija u docker/postgres/patroni.yml (Enterprise).

Da li je multi-tenant?

Tenant kontekst postoji u kodu (ITenantService); produkcioni multi-site WAN — roadmap.

Koji portovi moraju biti otvoreni u LAN-u?

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.

Da li postoji REST API dokumentacija?

Swagger/OpenAPI na /swagger u Development okruženju; u produkciji je onemogućen.

Kako se ažurira?

Docker: docker compose pull && up. Windows/Linux: dotnet publish + systemd restart. Backup pre update-a je obavezan.

Roadmap

V4.x u toku — Q4 2026
  • 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
V5.x plan
  • 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