Sari la conținut
Nexus Administrare clinică

Ghid de utilizare

Asistent AI

Pas cu pas, pe roluri. Același conținut se deschide din butonul „?” de pe fiecare pagină.

Asistent AI

Nexus poate cere unui model de limbaj sugestii de coduri CIM-10 din textul clinic al episodului (motivul prezentării, examenul clinic, concluziile / epicriza, notele de evoluție). Modelul doar sugerează: medicul alege ce preia, ca la orice diagnostic adăugat manual.

Pentru întrebări și căutări rapide („unde e internat…”, „deschide fișa…”, „cum fac…”) există și asistentul din colț, bulina din dreapta jos.

Cum se folosește

În fișa episodului, în panoul Diagnostice, butonul Sugestii AI trimite textul și afișează până la cinci coduri cu o scurtă motivare. Folosește completează codul și denumirea în formular; apoi apeși Adaugă diagnostic ca de obicei. Codurile care nu există în catalogul CIM-10 al unității sunt marcate și nu se pot prelua.

Sub sugestii se vede exact textul trimis, după anonimizare.

Ciorne de text (epicriză, recomandări, scrisoare medicală, concluzii)

Lângă câmpurile de epicriză, recomandări și concluzii apare ✨ Ciornă AI. Modelul primește datele fișei (diagnostice, motiv, examen clinic, note de evoluție, parametri vitali, analize cu valorile anormale, imagistică, tratamentul din condici, proceduri, transferuri), anonimizate, și scrie o ciornă în stil clinic. Textul se adaugă în câmp (după ce e deja scris, dacă e cazul); medicul îl citește, corectează și salvează ca de obicei. Modelul nu inventează investigații sau tratamente care nu sunt în fișă, dar poate greși formulări: ciorna nu se salvează necitită.

Pe scrisoarea medicală (tipăritură), butonul „Ciornă AI scrisoare” adaugă un „Rezumat pentru medicul de familie” editabil direct în pagină, înainte de tipărire sau arhivare.

Lângă aceste ciorne — epicriză, recomandări, concluzii, scrisoare medicală, concluzie și recomandări imagistice — este bifa cu istoricul, oprită implicit. Bifată, modelul vede și prezentările anterioare: diagnostic, analize anormale, tratamente și ce s-a notat la administrare. Nu apare la formulare, la predarea gărzii și la explicațiile pentru pacient.

Ciornă pentru anamneză

Pe Pacienți → fișa pacientului → Anamneză, la antecedentele personale patologice, la medicația de fond și la factorii de risc apare ✨ Ciornă AI. Anamneza nu ține de o internare, așa că modelul primește tot ce știe Nexus despre pacient: diagnosticele tuturor prezentărilor (de câte ori și din ce lună), intervențiile, recomandările de la externare și de la consult, anamneza scrisă la ultimele prezentări, tratamentul din condici, alergiile și atenționările de pe fișă, plus ce ai scris deja în celelalte câmpuri ale anamnezei. Totul anonimizat, ca la celelalte ciorne. Dacă pacientul nu are date în Nexus sau datele nu spun nimic despre câmpul cerut, nu se scrie nimic în câmp și primești un mesaj: informația vine atunci din discuția cu pacientul. Antecedentele fiziologice, heredo-colaterale și condițiile de viață nu au ciornă, fiindcă nu apar în alte date. Butonul îl folosesc cei care pot salva anamneza (administrare pacienți, episoade, gardă sau ambulator).

Pe pagina de istoric a pacientului, Generează rezumat cu AI scrie un rezumat al prezentărilor (probleme care revin, internări, analize anormale, tratament). Același buton e pe analize, grafic, medicație, infecții, PNS, aparținători și transfuzii: rezumă pagina deschisă, nu inventează valori sau un efect al medicamentului. Textul apare deasupra listei și nu se salvează în fișă.

Verificarea fișei

În panoul Diagnostice, Verifică fișa (AI) citește toată fișa și semnalează: diagnostic principal care nu se potrivește cu tabloul clinic, afecțiuni din text necodificate, proceduri sau tratamente fără diagnostic care să le justifice, contradicții între epicriză și note, valori anormale nemenționate, plus lipsurile formale (fără diagnostic principal, fără epicriză sau tip de externare la o internare finalizată). Sunt avertismente de verificat, nu verdicte; merită rulată înainte de externare și înainte de raportarea DRG.

Explicații pentru pacient și rezumat de gardă

  • Pe biletul de externare (tipăritură), butonul „Ciornă AI explicații pentru pacient” adaugă secțiunea „Pe înțelesul dumneavoastră”: ce a avut, ce ia acasă, regim, semne de alarmă, control. Editabilă în pagină înainte de tipărire.
  • În Registre → Predare-primire gardă, „Rezumate AI pentru predare” scrie, pentru fiecare internat, două-trei propoziții din ultimele 24 h (stare, evoluție, probleme deschise, ce se urmărește). Rezumatele se generează pe rând (pe procesor, circa 10 secunde fiecare), se pot opri oricând și intră în exportul Excel.

Tradu în română (textele pacienților din portal)

Pacienții scriu în portal în limba lor (română, engleză, franceză, germană, spaniolă, italiană, ucraineană, maghiară). Sub textul liber scris de un pacient în altă limbă decât româna apare legătura Tradu în română: comentariile din chestionarele de satisfacție, mesajele către secții (și subiectul), sesizările trimise din portal, răspunsurile scrise din formularele de dinaintea vizitei, titlurile documentelor aduse și nota cererilor de programare din portal.

  • Traducerea apare sub original, cu eticheta „Traducere automată (AI) — verificați originalul”. Originalul rămâne afișat și nu se schimbă; traducerea nu se salvează nicăieri (la redeschiderea paginii se cere din nou, iar un text tradus de curând vine imediat din memoria serverului).
  • Legătura apare numai când: asistentul pentru text e pornit (ai.activ) și traducerea e pornită (ai.traducere, implicit da); utilizatorul are dreptul paginii; limba textului e cunoscută și nu e româna (limba salvată a răspunsului sau a formularului, altfel limba portalului celui care a scris). Textul cu ă, ș, ț e considerat românesc; literele chirilice înseamnă ucraineană, iar ő / ű maghiară, oricare ar fi limba portalului.
  • Se traduc cel mult 4000 de caractere (restul e semnalat). Modelul are instrucțiuni stricte: traducere fidelă, termenii medicali păstrați, fără adăugiri și fără să „răspundă” textului.
  • Fiecare cerere intră în jurnalul AI și în jurnalul de audit: cine, ce fel de text, care element, câte caractere, din ce limbă — fără textul pacientului.

Dictare (microfon)

Lângă câmpurile de text clinic apare 🎤 Dictează: examen clinic, epicriză, recomandări, note de evoluție, concluzii, rezultate imagistice, protocol operator, observații, formulare, anamneza (antecedente, medicație de fond, factori de risc, condiții de viață, observații), macroscopia, microscopia și diagnosticul de anatomie patologică, motivul prezentării (gardă, internare, consult, UPU, inclusiv pe mobil), acuzele și observațiile din UPU, indicația imagistică, indicația și complicațiile operatorii, observațiile de la administrarea medicației și din foaia de temperatură, consulturile interdisciplinare (și răspunsul pe mobil), plus câmpurile narative din modulele de specialitate: paliativ, psihiatrie, oncologie, maternitate, neonatologie, vaccinări, dializă, stomatologie, spitalizare de zi, TBC, COVID, epidemiologie, hemovigilență și transfuzii, decedați, transplant, diabet, infecții, anexa 1C, memoriul justificativ și fișa de solicitare, evenimentele adverse și audituri (calitate), dosarele juridice. Lista completă, cu motivul pentru fiecare câmp, e în docs/CAMPURI-TEXT.md. Apeși, vorbești, apeși oprește: înregistrarea (maximum 2 minute) merge la serviciul de recunoaștere a vorbirii (local sau online, vezi mai jos) și textul se adaugă la sfârșitul câmpului. Funcționează în română, cu termeni medicali; corectezi ce nu a înțeles, ca la orice dictare.

  • Comenzi vocale: „punct”, „virgulă”, „două puncte”, „punct și virgulă”, „semnul întrebării”, „linie nouă”, „paragraf nou”, „deschide / închide paranteză”, „cratimă”, „șterge ultima propoziție”.
  • Corectare automată: după transcriere, textul trece prin model pentru punctuație, diacritice, termeni medicali și abrevieri (TA, SpO2, mmHg), fără să schimbe sensul. Se oprește din setarea ai.dictare_corectare = nu dacă vrei textul brut. Corectarea folosește asistentul pentru text: cu textul oprit, textul dictat se adaugă așa cum a fost recunoscut.
  • Browserul cere o dată permisiunea pentru microfon; pe alt calculator decât serverul e nevoie de HTTPS (Chrome și Edge permit microfonul doar pe pagini sigure sau pe localhost).
  • Dictarea are comutatorul ei, separat de asistentul pentru text: în Sistem → AI și dictare, secțiunea „Dictare (microfon)”, bifa Pornită (ai.dictare_activ). Poți avea numai dictarea, fără butoanele de ciornă și sugestii, sau invers.
  • Butonul apare doar când dictarea e pornită și poate fi folosită: serverul local răspunde, sau dictarea online are cheie API.
  • În câmpurile fără bară de formatare (cele de un rând sau casetele simple) textul dictat rămâne text simplu; în cele cu editor se adaugă ca alineat.

Dictare locală sau online

Lista Dictare (Sistem → AI și dictare, secțiunea „Dictare (microfon)”: „Locală — serverul de voce din rețea” sau „Online — OpenAI / Azure”) e separată de alegerea pentru text. Setările celeilalte variante rămân păstrate: treci înapoi oricând, fără să reintroduci adresa sau modelul.

  • Locală (implicit): serverul de voce din rețea (faster-whisper, instalat de asistentul de instalare pe serverul Nexus; detectează singur placa NVIDIA). Vocea nu iese din spital. Pe procesor, 20 de secunde de dictare se transcriu în 5–10 secunde; cu placă video NVIDIA, aproape instantaneu. Setări: ai.stt_url, ai.stt_model.
  • Online: OpenAI sau Azure OpenAI, cu aceeași adresă și cheie ca textul în cloud (ai.openai_url, ai.cheie). Model implicit gpt-4o-mini-transcribe (rapid și ieftin); gpt-4o-transcribe recunoaște ceva mai bine termenii, la cost mai mare; whisper-1 e modelul vechi. Pe Azure, modelul e numele deployment-ului. Răspunde în câteva secunde și pe un server fără placă video.
  • Verifică serverele arată, pentru dictarea online, dacă cheia e acceptată și dacă modelul există pe cont (o listare de modele, fără audio și fără cost). Pe Azure, numele deployment-ului nu apare în listă: se verifică la prima dictare.
  • Mesajele de eroare spun cauza: cheie refuzată (401), cont fără credit sau limită de cereri (429), deployment inexistent pe Azure (404), timp depășit (ai.timeout_secunde). Cheia nu apare niciodată în mesaje sau în jurnal.
  • Textul și dictarea se pot combina: de exemplu text local (Ollama) și dictare online, sau invers.

Protecția datelor

  • Înainte de trimitere se scot: CNP-ul, numele și prenumele pacientului, numerele de telefon, adresele de email, datele calendaristice. Rămân vârsta, sexul și textul clinic.
  • Fiecare cerere se păstrează în jurnal (cine, când, ce text a plecat, ce a răspuns modelul, ce s-a confirmat).
  • Recomandat când datele nu trebuie să iasă din rețea: model local (Ollama) și dictare locală. Din Sistem → AI și dictare se poate trece pe OpenAI (GPT-4.1 mini) și pe dictare online fără să se piardă setările locale; înapoi se revine din aceleași comutatoare.
  • Dictarea online trimite înregistrarea vocii la furnizor, așa cum a fost rostită: vocea nu se poate anonimiza ca textul. Nu se dictează nume, CNP sau alte date de identificare ale pacientului.
  • Traducerea textelor pacienților: cu modelul local textul nu iese din spital. Cu OpenAI / Azure textul pleacă la furnizor (resursa din UE, sub acordul de prelucrare al spitalului, ca celelalte funcții AI), după ce se scot CNP-ul, telefoanele și adresele de e-mail; datele calendaristice rămân, fiindcă fără ele traducerea și-ar pierde sensul.
  • Pentru cloud (text sau dictare) se completează cheia API și e nevoie de acord de prelucrare a datelor (DPA) cu furnizorul. Ca datele să rămână în UE, adresa se înlocuiește cu o resursă Azure OpenAI din Suedia sau Franța (https://NUME.openai.azure.com/openai/v1), nu OpenAI direct.

Memoria de cazuri

Când medicul preia o sugestie, perechea text → cod se reține ca răspuns validat. La cererile următoare, cazurile asemănătoare (după cuvintele comune) se dau modelului ca exemple, așa că sugestiile se apropie de practica unității fără reantrenare. Aceleași perechi sunt setul de date pentru un antrenament ulterior.

Configurare (Sistem → AI și dictare)

Cheie Sens
ai.activ da pornește asistentul pentru text: butoanele de ciornă, sugestii CIM-10, verificarea fișei și corectarea după dictare
ai.dictare_activ da pornește dictarea (microfonul), independent de ai.activ; o instalare actualizată păstrează ce avea (valoarea lui ai.activ de dinainte)
ai.asistent_activ asistentul din colț (bulina): da / nu, implicit nu; folosește furnizorul de text de mai jos (ghidul lui)
ai.furnizor local sau openai; se alege din Sistem → AI și dictare
ai.url / ai.model serverul local (Ollama: http://localhost:11434/v1, qwen2.5:7b)
ai.openai_url / ai.openai_model OpenAI sau Azure; implicit https://api.openai.com/v1 și gpt-4.1-mini. Azure: https://NUME.openai.azure.com/openai/v1 (recomandat; dictarea merge acolo cu ?api-version=preview, operație în previzualizare la Azure) sau adresa resursei, https://NUME.openai.azure.com (ruta pe deployment); ambele acceptă ?api-version=…
ai.cheie cheia API, când textul sau dictarea sunt online; pe Azure merge în antetul api-key
ai.stt_furnizor dictarea: local sau openai (online); se alege din Sistem → AI și dictare
ai.stt_url / ai.stt_model serverul local de dictare (http://localhost:8765/v1, large-v3-turbo)
ai.stt_openai_model modelul dictării online: gpt-4o-mini-transcribe (implicit), gpt-4o-transcribe, whisper-1; pe Azure, numele deployment-ului
ai.dictare_corectare da: după dictare, textul trece prin modelul de text (punctuație, diacritice)
ai.traducere da (implicit): „Tradu în română” la textele scrise de pacienți în portal în altă limbă; merge numai cu ai.activ pornit
ai.timeout_secunde pe procesor, fără placă video, un răspuns poate dura 30–60 s

Starea serverului (dacă răspunde și ce modele are) se vede în Sistem → AI și dictare.

Instalare

Asistentul de instalare al serverului Nexus (instalare.ps1, pasul „Asistent AI și dictare”) le configurează pe toate, fiecare componentă separat:

  • AI local: Ollama și modelul ales (implicit qwen2.5:7b), pornite automat cu serverul (sarcina programată „Nexus AI Ollama”, contul LOCAL SERVICE, fără drepturi de administrator).
  • Dictare locală: serverul de voce faster-whisper (sarcina „Nexus Dictare”, același cont); cu o placă NVIDIA cu CUDA 12 rulează pe placă, altfel pe procesor (int8). La instalare face o transcriere de probă; dacă pe placă nu merge, trece singur pe procesor. Implicit la prima configurare: dacă dictarea nu e configurată deloc, asistentul o instalează local (modelul large-v3-turbo, sau small pe un server cu puțină memorie; pe un server prea mic, fără internet sau cu portul ocupat sare peste ea, cu o avertizare, fără să oprească instalarea).
  • Online: cere adresa (OpenAI sau Azure OpenAI), modelele și cheia API (nu se afișează și nu se scrie în jurnal), verifică cheia și pune comutatoarele pe online. Afișează nota de protecție a datelor și cere confirmarea acordului de prelucrare (DPA).
  • Asistentul pornește numai ce configurează: textul (ai.activ = da) când configurează textul, dictarea (ai.dictare_activ = da) când configurează dictarea. Pe un server nou, unde se instalează implicit numai dictarea, butoanele asistentului pentru text nu apar până nu configurezi și textul.
  • Asistentul schimbă o componentă numai când i se cere explicit (excepție: dictarea încă neconfigurată, de mai sus). La o nouă rulare fără alegere, ce s-a ales între timp din Sistem → AI și dictare rămâne neschimbat.

Dictarea locală din Sistem (instalare, reparare, dezinstalare)

În Sistem → AI și dictare → Dictare, panoul „Dictarea locală pe acest server” arată ce e instalat (modelul, procesor sau placa NVIDIA, portul) și ultima operație. Butoanele cer dreptul admin.sistem și dreptul actualizari.administrare (ca aprobarea unei actualizări), iar fiecare operație se confirmă cu parola contului dumneavoastră:

  • Instalează dictarea locală / Reinstalează / Repară: alegi modelul (large-v3-turbo recomandat, medium, small pentru servere slabe) și unde rulează (automat, procesor, placa NVIDIA). Instalarea o face serviciul de actualizare NexusUpdater de pe server, cu aceleași fișiere fixate și verificate ca asistentul de instalare (Python, pachetele, modelul, fiecare cu SHA256); durează câteva minute (descărcarea modelului: ~1,6 GB), iar Nexus merge normal între timp. Pașii apar în panou pe măsură ce se fac. La final, setările dictării (ai.dictare_activ = da, ai.stt_url, ai.stt_model, ai.stt_furnizor = local) se scriu singure, fără să pornească asistentul pentru text; dacă dictarea era pe online, comutatorul trece pe local numai dacă bifezi asta (altfel serverul local se instalează, iar dictarea rămâne pe online). Când operația se termină, setările noi apar singure în formular (modificările nesalvate din pagină rămân).
  • Dezinstalează: oprește și șterge serverul de voce și sarcina lui; modelele descărcate rămân (o reinstalare nu le mai descarcă), decât dacă bifezi ștergerea lor. Dacă Nexus folosea chiar acest server pentru dictare, dictarea se oprește și în setări (ai.dictare_activ = nu); o dictare online sau un server de voce din rețea rămân pornite. Celelalte setări rămân.
  • Serverul are nevoie de acces la internet către python.org, pypi.org / files.pythonhosted.org și huggingface.co. Fără internet: asistentul de instalare cu kitul offline (publish.ps1 -CuPrerechizite -CuAi).
  • Fiecare cerere se notează în jurnalul de audit (sistem.dictare-locala.instalare / .dezinstalare) și în jurnalul serviciului de actualizare.

La fiecare actualizare Nexus, serviciul de actualizare verifică singur dictarea locală instalată și o aduce la versiunea nouă (serverul de voce și pachetele, numai dacă s-au schimbat). Dacă noua variantă nu trece proba de transcriere, pune înapoi varianta anterioară; actualizarea Nexus rămâne reușită oricum, iar pagina Actualizări arată o avertizare. Dacă setările folosesc dictarea locală, dar ea nu e instalată, pagina Actualizări spune „Dictarea locală nu e instalată”, cu legătura spre panou (cu dictarea online, pe un server din rețea sau fără dictare, nu apare). Cât rulează o operație pe dictare, aprobarea unei actualizări așteaptă să se termine.

Setările scrise sunt cele din tabelul de mai sus; se pot schimba oricând din Sistem → AI și dictare. Pe o stație de dezvoltare: ollama.com, apoi ollama pull qwen2.5:7b; dictarea: tools/stt.

A apărut o eroare. Reîncarcă ×

Se reconectează la server…

Reconectarea a eșuat… se reîncearcă în secunde.

Reconectarea a eșuat.
Reîncearcă sau reîncarcă pagina.

Formularele de rezervă pentru lucrul pe hârtie

Sesiunea a fost pusă pe pauză de server.

Reluarea sesiunii a eșuat.
Reîncearcă sau reîncarcă pagina.

Nexus se actualizează; pagina se reîncarcă automat.
Ce ați salvat rămâne salvat.