Ghid de utilizare
Actualizări Nexus
Pas cu pas, pe roluri. Același conținut se deschide din butonul „?” de pe fiecare pagină.
Actualizări Nexus
Pagina Administrare → Actualizări (/sistem/actualizari) e pentru administratorul IT al spitalului și cere dreptul actualizari.administrare (implicit numai grupa admin). Serviciul de actualizare de pe server (NexusUpdater) descarcă și verifică versiunile noi semnate de furnizor, dar nimic nu se instalează fără aprobarea unui administrator. Fiecare aprobare, anulare, decizie, import și schimbare de setări ajunge în jurnalul de audit.
Ghidul complet pentru IT (ce trebuie să existe pe server, regulile de revenire, depanarea): documentația de instalare, deploy/README.md §8, și docs/ACTUALIZARI.md.
Ce arată pagina
- Versiunea instalată: versiunea și commit-ul, când și de cine a fost instalată, runtime-ul .NET, baza (MariaDB), versiunea serviciului de actualizare (Updater) și canalul. Dedesubt: „Ultima verificare: azi 08:00 ✓”, „Nicio versiune publicată pe canalul …”, „Serverul de actualizări nu răspunde (spital fără internet?)” sau, fără server configurat, „doar import manual”. Cu roșu, „Indexul canalului a fost respins: <motivul>” înseamnă că serverul a răspuns, dar lista de versiuni nu trece verificarea (semnătură, certificat revocat, o listă mai veche decât una văzută deja): nu se descarcă nimic, evenimentul 1600 e în Event Log, anunțați furnizorul. Galben, „Indexul canalului și semnătura lui nu se potrivesc încă”: furnizorul publică chiar atunci; se reverifică singur după 15 minute. O linie roșie apare dacă versiunea instalată a fost retrasă de furnizor, dacă scanarea de integritate a găsit fișiere modificate, dacă serviciul de actualizare e un BUILD DE TEST sau dacă nu are fixată identitatea furnizorului („respinge ORICE pachet”: un kit construit înaintea primei versiuni semnate; se reinstalează Nexus din kitul nou, iar până atunci actualizarea e cea manuală). Verifică acum citește imediat lista de versiuni. „✓ Nexus e la zi.” când nu e nimic de instalat și ultima verificare a reușit (după un index respins sau un server care nu răspunde nu se știe, deci rândul verde nu apare).
- Versiune nouă disponibilă: notele în română (Noutăți, Corecturi și caseta galbenă Atenție), insigna verde „Semnătură verificată · semnată de: …”, mărimea pachetului și insignele: „Acces exclusiv la bază”, „Instalează .NET …”, întreruperea estimată, „Dacă eșuează: revenire automată completă (bază + aplicație)” sau, cu roșu, „Revenirea bazei NU e automată pe acest server: contul aplicației nu poate restaura baza”, și ce se mai poate după confirmare („revenire posibilă doar a aplicației” sau „revenire NU (schemă incompatibilă)”).
- Preverificări: fiecare rând are ✓ (în regulă), ⚠ (avertisment) sau ✗ (blochează), cu „Remediere: …”. Rulează preverificările le reface (verificarea bazei poate dura câteva minute). Orice ✗ dezactivează aprobarea și spune de ce. Când singurul ✗ e restaurarea bazei, apare bifa „Accept: dacă migrarea eșuează, Nexus rămâne oprit până intervine IT (fără revenire automată a bazei).”
- Programată, Progres, Importă pachet, Istoric, Conector laborator (LIS) și Setări, descrise mai jos.
Dacă serviciul de actualizare nu rulează, pagina spune „Starea actualizărilor nu se poate citi. Serviciul NexusUpdater nu rulează sau nu răspunde.”: anunțați IT-ul (serviciul NexusUpdater de pe server).
Notificări în clopoțel
Cine are dreptul actualizari.administrare primește în clopoțelul din bara de sus (cel mult câte una din fiecare, fără repetări):
- „Versiune nouă Nexus disponibilă: 2026.11.0”, cât timp versiunea așteaptă aprobarea. Dacă un administrator a apăsat Ignoră versiunea, notificarea dispare pentru toți administratorii; o versiune mai nouă apare din nou.
- „Actualizarea Nexus la 2026.11.0 e programată pe 06.11.2026 03:00 (aprobată de …)”, până începe fereastra. Utilizatorii obișnuiți văd bannerul de la 60 de minute înainte, nu notificarea.
- Rezultatul ultimei ferestre: „Nexus a fost actualizat la …” (24 de ore), „Actualizarea … a eșuat; s-a revenit automat la …” sau „Actualizarea … nu a rulat: fereastra programată a fost ratată” (72 de ore). Revenirile apar cu roșu.
- „Actualizarea Nexus … s-a oprit și cere intervenția IT” (cu roșu), cât timp starea durează.
Fiecare notificare duce la această pagină.
Pregătire pilot
Pregătire pilot (butonul din capul paginii, sau /sistem/actualizari/pregatire-pilot) verifică cele trei condiții fără de care un spital nu primește actualizări automate în siguranță. Fiecare are ✓, ⚠ sau ✗, rezultatul în cuvinte și ce e de făcut:
- Serviciul de actualizare (NexusUpdater) rulează și răspunde. Dacă nu: pe server, ca administrator,
sc query NexusUpdaterșisc start NexusUpdater; dacă serviciul lipsește, se reinstalează cu asistentul. Dacă API-ul nu are acces la el:sc sidtype NexusApi unrestrictedși repornirea NexusApi. Un updater „BUILD DE TEST” e tot ✗, la fel unul fără identitatea furnizorului fixată (respinge orice pachet: reinstalați din kitul nou). Garda lipsă (sarcina\Nexus\NexusUpdaterGarda) e ⚠: o recreează asistentul de instalare. - Revenirea automată e posibilă. Contul aplicației trebuie să poată restaura baza:
GRANT ALLpe baza MariaDB (pagina dă comandaGRANTexactă). Destinația backup-ului de dinainte de actualizare trebuie să aibă loc: după ultimul backup măsurat sau, la început, estimat din mărimea bazei (+30 %). - Un backup recent reușit. Sarcina programată „Nexus Backup” există, e activă și a reușit în ultimele 26 de ore. Codul 2 (baza salvată, documentele nu) e avertisment; orice alt cod e ✗.
Reverifică reface verificările. Verificarea e numai citire: nu schimbă nimic pe server sau în bază.
Repetiția migrării pe o copie a bazei
În cardul versiunii noi, Repetă migrarea pe o copie (opțional, înainte de fereastră): serviciul de actualizare copiază baza într-o bază temporară pe același server MariaDB (<baza>_repetitie), rulează pe copie migrarea versiunii noi, măsoară cât durează și șterge copia. Baza reală nu se modifică, iar aplicația merge mai departe; copia ocupă temporar spațiu cât baza. Rezultatul apare sub buton: reușită (cu durata copierii și a migrării, deci cât va dura și în fereastră) sau EȘUATĂ (cu motivul și codul; nu aprobați versiunea până nu e lămurit, cu jurnalul și furnizorul). Cât rulează repetiția, aprobarea așteaptă. Nu pornește cu mai puțin de 2 ore înaintea unei ferestre programate. Codul DREPT_LIPSA înseamnă că contul aplicației nu are voie să creeze copia: mesajul dă comanda GRANT exactă pentru administratorul MariaDB (asistentul de instalare o dă singur la instalările noi). Setarea Repetă automat… o pornește singură după ce o versiune cu migrări e pregătită.
Actualizarea MariaDB
O versiune Nexus poate aduce și o versiune MariaDB nouă din aceeași serie (de exemplu 11.4.13 → 11.4.14, corecturi de securitate). Cardul versiunii arată atunci insigna Actualizează MariaDB 11.4.14, iar preverificarea spune ce se întâmplă. Se actualizează numai serverul MariaDB instalat de asistentul de instalare pe serverul Nexus; un MariaDB instalat de spital sau pe alt calculator nu se atinge. În fereastră, după copia de siguranță: MariaDB se oprește, programele lui se înlocuiesc (datele rămân pe loc), pornește din nou și își actualizează tabelele de sistem. Dacă ceva nu merge, programele vechi se pun înapoi singure și serverul pornește pe ele; actualizarea Nexus revine ca la orice eșec. Întreruperea crește cu 1–3 minute.
Instalează acum
Dialogul arată câți utilizatori sunt conectați și preavizul: implicit 10 minute (minimum 1, pentru o actualizare urgentă; maximum 120), apoi ora la care începe și planul. Bifați „Am anunțat secțiile (UPU, ATI, bloc operator, laborator).”, scrieți parola contului (reautentificare) și apăsați Aprobă și pornește numărătoarea. Aprobarea leagă SHA-256-ul pachetului afișat. În cel mult o jumătate de minut utilizatorii văd bannerul (roșu, cu numărătoarea inversă, dacă preavizul e de cel mult 10 minute), apoi pagina de mentenanță.
Programează la…
- Implicit propune în noaptea aceasta la 03:00. Ora e mereu ora României, oricare ar fi fusul serverului; se salvează un moment UTC. Dialogul confirmă: „Începe la … (… UTC); utilizatorii sunt anunțați de la …”.
- Trecerea la ora de vară (ultima duminică din martie): 03:00–03:59 nu există, iar selectorul refuză ora și propune altă oră (de exemplu 04:00).
- Trecerea la ora de iarnă (ultima duminică din octombrie): 03:00–03:59 apare de două ori. Selectorul cere să alegeți explicit: prima dată (încă pe ora de vară, UTC+3) sau a doua oară (după trecere, UTC+2).
- Avertizează (fără să blocheze) dacă ora e în programul de lucru intens al spitalului (implicit luni–vineri, 07:00–20:00; se schimbă din Sistem → Platformă → Actualizări Nexus → „Programul de lucru intens”) sau dacă preavizul efectiv e mai scurt decât cel ales.
- Cardul Programată arată versiunea, ora, cine a aprobat și când, cu Mută (o aprobare nouă, tot cu parola) și Anulează. Anularea merge până la oprirea aplicației; după aceea fereastra merge până la capăt sau revine singură. Dacă între timp apare o versiune mai nouă, cardul spune „A apărut …; programarea rămâne pentru …” cu Înlocuiește (anulează programarea veche; versiunea nouă se aprobă separat).
- Dacă la ora programată serverul sau serviciul de actualizare erau opriți și au trecut peste 30 de minute, fereastra nu mai rulează („Fereastră ratată”): reprogramați.
- Ignoră versiunea ascunde cardul versiunii noi și notificarea din clopoțel pentru toți administratorii (se păstrează pe server și se notează în jurnalul de audit; Arată din nou o readuce).
Ce văd utilizatorii
| Când | Ce apare |
|---|---|
| De la 60 de minute înainte | Banner albastru sus: „Actualizare Nexus programată azi la 03:00 (~15 min indisponibil). Salvați lucrul în curs.” Se poate închide. |
| De la 15 minute înainte | Același banner, galben. |
| Ultimele 10 minute | Banner roșu, care nu se poate închide, cu numărătoare inversă: „Nexus se oprește în 04:59 pentru actualizare. Salvați acum ce lucrați.” |
| În fereastră | Orice pagină arată pagina de mentenanță: „Nexus se actualizează”, pasul curent („Pasul 6 din 8: actualizarea bazei.”), bara de progres și estimarea („Revenim în ~6 minute.”). Pagina se reîncarcă singură când Nexus revine. Dacă legătura cu serverul cade, fereastra de reconectare spune „Nexus se actualizează; pagina se reîncarcă automat”. La autentificare: „Nexus se actualizează: autentificarea revine după fereastra de actualizare.” |
| Oprit pentru intervenție | „Nexus este oprit pentru o intervenție tehnică. Anunțați IT: …” (telefonul din Setări). |
Bannerul apare și pe telefon (/m). Nu există mod „doar citire” înainte de oprire: numărătoarea inversă e semnalul de salvare. Ce s-a salvat înainte de oprire nu se pierde.
Progres
Anunț → Verificare finală → Oprire → Copie de siguranță → Componente .NET → Comutare → Migrarea bazei → Pornire și verificare → Finalizat. Copia de siguranță a bazei se face după oprirea aplicației. Dacă versiunea nouă nu trece verificările, Nexus revine automat la versiunea anterioară, inclusiv cu restaurarea bazei din această copie dacă migrarea a apucat să o modifice (fără pierderi: până la confirmare aplicația nu primește nicio scriere), iar progresul arată pașii revenirii. După confirmare baza nu se mai restaurează niciodată automat. Dacă la ora ferestrei pe bază sunt conectate alte programe și versiunea cere acces exclusiv, actualizarea se amână fără să oprească nimic. Cât timp fereastra e în curs, pagina de mentenanță acoperă tot Nexus, cu excepția acestei pagini (care arată doar starea porții: în fereastră API-ul nu răspunde).
Oprit – necesită intervenție
Când actualizarea s-a oprit într-o stare din care nu poate continua singură, utilizatorii văd „Nexus este oprit pentru o intervenție tehnică. Anunțați IT: …”. În această stare aplicația (NexusApi) e oprită și poarta de mentenanță rămâne activă, deci pagina Actualizări nu poate lua decizii: API-ul răspunde 503 până la o decizie. Nu porniți serviciile de mână. Decizia se ia pe server, dintr-o consolă PowerShell deschisă „ca administrator”, în folderul updater-ului (de exemplu cd D:\Nexus\updater\curent):
.\NexusUpdater.exe starearată motivul exact, rularea (idRulare) și numai deciziile pe care updater-ul le consideră sigure în această stare („Decizii sigure: …”).- Contactați furnizorul și trimiteți-i jurnalul rulării:
.\NexusUpdater.exe jurnal <idRulare> --iesire C:\Temp\jurnal.zip. - Alegeți una dintre deciziile oferite:
.\NexusUpdater.exe decizie reia-migrarea: migrarea e reluabilă; după ce ați înlăturat cauza (de exemplu o sesiune deschisă pe bază), se rulează din nou..\NexusUpdater.exe decizie restaureaza-si-revino: baza se restaurează din copia făcută la începutul ferestrei și pornește versiunea veche (fără pierderi: aplicația nu a primit scrieri după copie)..\NexusUpdater.exe decizie porneste-versiunea-noua/.\NexusUpdater.exe decizie porneste-versiunea-veche: ați rezolvat manual problema.
- Dacă nu e oferită nicio decizie, procedura continuă cu furnizorul (de exemplu
.\NexusUpdater.exe revino --cu-restaurare --confirm <idRulare>, cu pierderea datelor de după backup).
Fiecare decizie se notează în jurnalul updater-ului (cine, când), iar rezultatul rulării ajunge în jurnalul de audit Nexus când aplicația pornește din nou. Panoul roșu „Nexus este OPRIT: necesită intervenție” din pagina Actualizări (cu butoanele deciziilor, fiecare cu parola) apare numai în cazul rar în care API-ul încă răspunde.
Importă pachet (fără internet)
Alege fișierul .nxupd… încarcă pachetul de pe stick sau share (limita 1 GB), cu bară de progres, apoi „Verific semnătura…” și „✓ Pachet verificat: versiunea … e pregătită pentru aprobare.”. Pachetul e verificat exact ca unul descărcat: un fișier modificat sau nesemnat de furnizor e respins (și nu se schimbă nimic). Comparați „SHA-256 pachet” din cardul versiunii cu cel din CITESTE-MA.txt primit de la furnizor. Alternativ, pe server: copiați fișierul în C:\ProgramData\Nexus\Actualizari\import sau rulați .\NexusUpdater.exe importa <fișier>. Un singur pachet poate aștepta în import\: dacă serviciul de actualizare e oprit sau ocupat, pagina spune „Pachetul a fost depus în import\ (…); updater-ul îl verifică la pornire (…). Nu e nevoie să-l încărcați din nou.”, iar un alt pachet se poate încărca după ce primul a fost preluat.
Revenire
Revino la … apare numai dacă versiunea instalată e declarată compatibilă înapoi: repornește versiunea anterioară deja instalată, fără să atingă baza, cu aceeași fereastră scurtă de mentenanță (bifa „Am înțeles consecințele și am anunțat secțiile.” și parola).
Istoric
Fiecare rulare: de la → la, cine a aprobat, începutul, durata și rezultatul (Reușită, Revenit automat — motiv, Revenit cu restaurarea bazei, Oprit – intervenție, Fereastră ratată, Amânată, Pachet respins, Întreruptă, Anulată). Jurnal descarcă un zip pentru furnizor (jurnalul curățat, configurarea redactată și manifestul), fără date din bază. Rulările ajung și în jurnalul de audit (actualizari.rulare).
Conector laborator (LIS)
Versiunea raportată de fiecare PC de laborator (de la ultima pornire a aplicației) și verdictul de compatibilitate. În fereastră, conectorul ține rezultatele în coadă și le trimite după.
Actualizarea conectorului prin Nexus (agentul LIS). Pe un PC de laborator cu agentul instalat (NexusUpdater.exe agent-lis instaleaza --radacina C:\NexusLis --din <folderul conectorului>, ca administrator, o singură dată), tabelul arată calculatorul, versiunea conectorului și a agentului, starea și ultima actualizare. Când serverul are o versiune mai nouă, butonul Actualizează conectorul LIS pe <PC> (cu parola) aprobă versiunea serverului pentru acel calculator; agentul o preia la următorul raport (câteva minute): descarcă pachetul de la serverul Nexus, verifică semnătura furnizorului, oprește conectorul câteva secunde, îl înlocuiește și îl repornește. Dacă noul conector nu pornește, revine singur pe versiunea veche (✗ „revenit”). O versiune retrasă de furnizor nu se mai poate aproba, iar o aprobare a unei versiuni retrase între timp se anulează singură; agentul ține minte versiunile retrase și certificatele revocate primite de la server și le refuză. Rezultatele analizoarelor stau între timp în coadă (date\coada, în afara folderului versiunii). Anulează retrage o aprobare încă neinstalată. Fără agent, conectorul se actualizează manual din folderul lis\ al pachetului.
Dictarea locală
La fiecare actualizare, serviciul de actualizare aduce la zi și dictarea locală de pe server (serverul de voce și pachetele lui, numai dacă s-au schimbat). Dacă varianta nouă nu trece proba de transcriere, pune înapoi varianta anterioară: actualizarea Nexus rămâne reușită, iar cardul „Versiunea instalată” arată o avertizare (galbenă: dictarea merge pe varianta veche; roșie: nu pornește, reparați-o din Sistem). Dacă setările Nexus folosesc dictarea locală, dar ea nu e instalată, cardul spune „Dictarea locală nu e instalată”, cu legătura spre Sistem → AI și dictare → Instalează dictarea locală (vezi ghidul AI); cu dictarea online, pe un server din rețea sau fără dictare, nu apare. Cât rulează o instalare, o reparare sau o întreținere a dictării locale (până la 2 ore, cu descărcările), aprobarea unei versiuni e refuzată: aprobați după ce se termină.
Alerte prin e-mail
Serviciul de actualizare trimite e-mail la actualizare eșuată și revenită, la Nexus oprit pentru intervenție și, opțional, la versiune nouă disponibilă — și când aplicația e oprită. Serverul de e-mail, expeditorul și destinatarii se completează în Sistem → Comunicare → E-mail și alerte (acolo e și „Trimite un e-mail de test”, trimis de aplicație). Cardul de aici arată dacă alertele sunt configurate, ultima trimitere, ultima eroare și câte așteaptă (o alertă netrimisă se reîncearcă până la 24 de ore). Trimite o alertă de test o trimite chiar serviciul de actualizare de pe server, adică exact drumul alertelor reale.
Setări
Salvarea setărilor cere parola contului, iar jurnalul de audit primește fiecare câmp schimbat, cu valoarea veche și cea nouă.
- Serverul de actualizări (URL): adresa furnizorului (implicit
https://www.cyberland.ro/Nexus/); gol = doar import manual (spital fără internet). Din pagină se poate alege numai un serverhttps://; o oglindă internă (\\server\share,file://) se configurează pe server (mai jos). - Canal: Stabil sau Pilot (versiunile noi ajung întâi pe Pilot). Un server pe Pilot primește și versiunile publicate direct pe Stabil (cea mai nouă dintre cele două canale); un server pe Stabil le primește numai pe cele de pe Stabil. Până la prima versiune publicată pe canal, pagina arată „Nicio versiune publicată pe canalul …”.
- Proxy: al sistemului (WinHTTP), fără sau explicit (
http://sauhttps://gazdă:port), cu autentificare integrată sau Basic (parola rămâne criptată pe server; la schimbarea adresei proxy-ului se reintroduce). Un proxy explicit cu autentificare integrată (contul serverului) se configurează numai pe server. - Verificare la (ore) (1–48, implicit 6), Preaviz implicit (1–120 de minute, implicit 10), Telefon IT afișat pe pagina de mentenanță și retenția (versiuni anterioare, pachete și backup-uri pre-actualizare păstrate, implicit câte 2; backup-ul ultimei confirmări cel puțin 7 zile).
- Folderul backup-urilor pre-actualizare (aici ajunge o copie completă a bazei; implicit destinația backup-ului zilnic) se vede în pagină, dar se schimbă numai pe server.
- Repetă automat migrarea pe o copie a bazei după ce o versiune nouă (cu migrări) e pregătită (implicit nu).
- Heartbeat către furnizor (implicit oprit): un semnal anonim o dată pe zi și după fiecare actualizare. Vezi exact ce se trimite arată textul: un identificator generat la întâmplare pe server, versiunile, canalul, rezultatul ultimei actualizări, codul erorii, durata și versiunea Windows; fără numele spitalului, fără nume de calculatoare, niciodată date de pacient. Adresa receptorului e implicit cea a furnizorului (numai
https://).
Pe server, ca administrator (consola PowerShell „ca administrator”, în folderul updater-ului; dintr-o consolă obișnuită, comenzile care conduc actualizarea, de exemplu NexusUpdater.exe serviciu, se opresc cu un mesaj, fără să atingă ceva): .\NexusUpdater.exe setari --in C:\Temp\setari.json (updater-ul scrie fișierul în UTF-8, accesibil numai administratorilor), apoi notepad C:\Temp\setari.json din aceeași consolă, editați și salvați (UTF-8; Notepad îl păstrează așa), apoi .\NexusUpdater.exe setari --din C:\Temp\setari.json. Nu folosiți setari > fișier: în PowerShell 5.1 redirecționarea strică diacriticele (devin caractere ca „╚Ť”), iar setari --din refuză un astfel de fișier, la fel ca unul salvat „ANSI”, cu un mesaj care spune ce să faceți; un JSON greșit e refuzat cu linia și poziția. Așa se schimbă și câmpurile pe care pagina nu le poate schimba (oglinda internă, folderul backup-urilor, proxy-ul cu autentificare integrată, baza instalărilor adoptate); fiecare schimbare se notează în jurnalul updater-ului. Lista completă a comenzilor: .\NexusUpdater.exe ajutor.
Verificarea actualizărilor face doar descărcări anonime de fișiere statice; adresa IP a spitalului devine vizibilă serverului de actualizări.