// /inject/cere-fisa.js // Integrare completă: UI local + trimitere cerere către backend JSON (function(){ /* ------------------------- UTILITARE ------------------------- */ function gv(id){var e=document.getElementById(id);return e?e.value:"";} function isPacientPage(){return document.getElementById("alerta") && document.getElementById("nume") && document.getElementById("cnp");} function getPacient(){ return { nume: gv("nume"), prenume: gv("prenume"), cnp: gv("cnp"), id_fisa: gv("id_fisa"), nr_fisa_sps: gv("nr_fisa_sps"), alerta: gv("alerta") }; } function getUserId(){ var key="sps_uid"; var id=localStorage.getItem(key); if(!id){ id="u_"+Date.now()+"_"+Math.floor(Math.random()*999999); localStorage.setItem(key,id); } return id; } /* ------------------------- PANOU ISTORIC ------------------------- */ function showPanel(){ var cereri=JSON.parse(localStorage.getItem("cereri_arhiva")||"[]"); var overlay=document.createElement("div"); overlay.style.position="fixed"; overlay.style.top="0"; overlay.style.left="0"; overlay.style.width="100%"; overlay.style.height="100%"; overlay.style.background="rgba(0,0,0,0.45)"; overlay.style.zIndex="999998"; overlay.style.opacity="0"; overlay.style.transition="opacity 0.25s ease"; document.body.appendChild(overlay); setTimeout(()=>overlay.style.opacity="1",10); var panel=document.createElement("div"); panel.style.position="fixed"; panel.style.top="50%"; panel.style.left="50%"; panel.style.transform="translate(-50%, -50%) scale(0.9)"; panel.style.width="600px"; panel.style.maxHeight="70%"; panel.style.overflowY="auto"; panel.style.background="white"; panel.style.borderRadius="10px"; panel.style.padding="20px"; panel.style.zIndex="999999"; panel.style.opacity="0"; panel.style.transition="opacity 0.25s ease, transform 0.25s ease"; panel.innerHTML="

Istoric cereri arhivă

"; cereri.slice().reverse().forEach(function(c){ panel.innerHTML+=`
${c.data} — ${c.pacient.nume} ${c.pacient.prenume} — CNP: ${c.pacient.cnp} — Fișa: ${c.pacient.nr_fisa_sps} — Alerta: ${c.pacient.alerta} — ${c.status}
`; }); var btnClose=document.createElement("button"); btnClose.innerText="Închide"; btnClose.style.marginTop="10px"; btnClose.style.padding="8px 16px"; btnClose.style.background="#2563eb"; btnClose.style.color="white"; btnClose.style.border="none"; btnClose.style.borderRadius="6px"; btnClose.style.cursor="pointer"; btnClose.onclick=function(){overlay.remove();panel.remove();}; panel.appendChild(btnClose); var btnClear=document.createElement("button"); btnClear.innerText="Șterge istoricul"; btnClear.style.marginLeft="10px"; btnClear.style.padding="8px 16px"; btnClear.style.background="#d9534f"; btnClear.style.color="white"; btnClear.style.border="none"; btnClear.style.borderRadius="6px"; btnClear.style.cursor="pointer"; btnClear.onclick=function(){ localStorage.removeItem("cereri_arhiva"); overlay.remove(); panel.remove(); updateBadge(); }; panel.appendChild(btnClear); document.body.appendChild(panel); setTimeout(()=>{ panel.style.opacity="1"; panel.style.transform="translate(-50%, -50%) scale(1)"; },10); overlay.onclick=function(){overlay.remove();panel.remove();}; } /* ------------------------- BADGE ISTORIC ------------------------- */ function updateBadge(){ var cereri=JSON.parse(localStorage.getItem("cereri_arhiva")||"[]"); if(!window.badgeArhiva){ let b=document.createElement("div"); b.style.position="fixed"; b.style.bottom="110px"; b.style.right="20px"; b.style.zIndex="1000000"; b.style.background="#ff3b30"; b.style.color="white"; b.style.fontSize="12px"; b.style.fontWeight="700"; b.style.padding="2px 6px"; b.style.borderRadius="9999px"; b.style.display="none"; window.badgeArhiva=b; document.body.appendChild(b); } window.badgeArhiva.style.display=cereri.length>0?"block":"none"; window.badgeArhiva.innerText=cereri.length; } /* ------------------------- BUTON ISTORIC (GLOBAL) ------------------------- */ if(!window.butonIstoric){ let btn2=document.createElement("button"); btn2.innerText="Istoric arhivă"; btn2.style.position="fixed"; btn2.style.bottom="80px"; btn2.style.right="30px"; btn2.style.zIndex="999999"; btn2.style.padding="8px 14px"; btn2.style.background="#444"; btn2.style.color="white"; btn2.style.border="none"; btn2.style.borderRadius="6px"; btn2.style.cursor="pointer"; btn2.style.fontSize="13px"; btn2.style.boxShadow="0 4px 12px rgba(0,0,0,0.2)"; document.body.appendChild(btn2); btn2.onclick=function(){showPanel();}; window.butonIstoric=btn2; } updateBadge(); /* ------------------------- BUTON "Cere fișa" (DOAR în pagina pacientului) ------------------------- */ if(isPacientPage() && !window.butonArhiva){ let btn=document.createElement("button"); btn.innerText="Cere fișa la arhivă"; btn.style.position="fixed"; btn.style.bottom="30px"; btn.style.right="30px"; btn.style.zIndex="999999"; btn.style.padding="12px 20px"; btn.style.background="#2563eb"; btn.style.color="white"; btn.style.border="none"; btn.style.borderRadius="8px"; btn.style.cursor="pointer"; btn.style.fontSize="15px"; btn.style.boxShadow="0 4px 12px rgba(0,0,0,0.2)"; document.body.appendChild(btn); window.butonArhiva=btn; btn.onclick=function(){ var pacient=getPacient(); var cereri=JSON.parse(localStorage.getItem("cereri_arhiva")||"[]"); var entry={ pacient: pacient, data: new Date().toLocaleString(), status: "în curs" }; cereri.push(entry); localStorage.setItem("cereri_arhiva",JSON.stringify(cereri)); updateBadge(); showPanel(); // ------------------------- // TRIMITERE CERERE CĂTRE BACKEND JSON // ------------------------- var formData=new FormData(); formData.append("user_id", getUserId()); formData.append("nume", pacient.nume); formData.append("prenume", pacient.prenume); formData.append("cnp", pacient.cnp); formData.append("nr_fisa_sps", pacient.nr_fisa_sps); formData.append("alerta", pacient.alerta); formData.append("created_at", new Date().toISOString().slice(0,19).replace("T"," ")); fetch("https://arhiva.sps-stoma.ro/api/cere-fisa.php",{ method:"POST", body:formData }) .then(r=>r.json()) .then(d=>{ entry.status="trimis"; localStorage.setItem("cereri_arhiva",JSON.stringify(cereri)); updateBadge(); }) .catch(e=>{ entry.status="eroare"; localStorage.setItem("cereri_arhiva",JSON.stringify(cereri)); updateBadge(); }); }; } })();