top of page
bottom of page
script>(()=>{"use strict";if(new URLSearchParams(location.search).get("siteRevision")!=="703")return;window.XBXBIO_CHATBOT_DATA={C:[["Platform & Architecture",20],["Virtual Heart & Modeling",20],["ECG/EKG & Rhythm",20],["Cardiac Conditions",21],["Imaging & Equipment",20],["Lab, Genetics & NGS",15],["Clinical Modules & Care",20],["Interoperability & Data",20],["Security, Privacy & Governance",20],["Quality, Six Sigma & Robustness",15],["Operations, Communication & Access",9]],T:"xBxBio Platform overview|Enterprise SaaS architecture|Multi-tenant design|Modular platform architecture|Patient-specific workflow|Longitudinal patient timeline|1-year timeline|3-year timeline|5-year timeline|Connected cardiovascular intelligence|Clinical workflow support|Clinician-centered design|Patient pathway orchestration|P6 overview|Predictive care|Preventive care|Personalized care|Participatory care|Precision care|Patient Pathway|Virtual Heart overview|Patient-specific Virtual Heart|Cardiac reconstruction|Measured anatomy|Calculated geometry|Inferred cardiac features|Missing-data representation|Electrical modeling|Contraction modeling|Blood-flow modeling|Biomechanical modeling|Hemodynamic modeling|Parameter estimation|Model uncertainty|Confidence communication|Historical reconstruction|Evidence-aware updating|2D heart visualization|3D heart visualization|4D heart visualization|Static ECG|Live ECG|12-lead EKG|ECG viewer|Live rhythm strip|Rate analysis|PR interval|QRS duration|QT/QTc interval|Cardiac axis|Rhythm interpretation support|ECG chronology|Wearable ECG|Holter monitoring|Telemetry interface|Stress ECG|ECG annotations|ECG provenance|ECG quality checks|ECG-to-Virtual-Heart linkage|Atrial fibrillation|Atrial flutter|Supraventricular tachycardia|Premature atrial contractions|Ventricular fibrillation|Ventricular flutter|Premature ventricular contractions|Ventricular tachycardia|Myocarditis|STEMI|NSTEMI|Hypertrophic cardiomyopathy|Cardiac enlargement|Pericarditis|First-degree AV block|Second-degree AV block Mobitz I|Second-degree AV block Mobitz II|Third-degree AV block|Old anterior wall myocardial infarction|Angina|Heart failure|Echocardiography|Stress echocardiography|Cardiac CT|Cardiac MRI|Nuclear cardiology|SPECT|PET cardiac imaging|CPET|Cardiac imaging viewer|DICOM imaging|DICOMweb|CVIS integration|PACS integration|Epic Cupid integration|GE MUSE integration|Philips ECG integration|Equipment interface|Medical-device connectivity|Wearable-device interface|Image-to-Virtual-Heart linkage|Laboratory module|LIS integration|Laboratory trends|Biomarkers|Cardiac biomarkers|Genetics module|Genomics|NGS|Variant interpretation support|Genetic risk factors|Pharmacogenomics|Family history|Marfan syndrome genetics|Loeys-Dietz genetics|Genetics-to-Virtual-Heart linkage|Drug-drug interactions|Medication review|All Drug module|Insurance module|CPT support|HCPCS support|CMS forms|Billing workflow|Clinical Trials module|Trial matching|Telemedicine|Remote patient monitoring|Medical Advisor|Knowledge Graph|Third Eye geolocation|Geolocation events|What-if medication scenarios|Care recommendations support|Patient participation|Clinical decision support|HL7 FHIR|FHIR resources|FHIR APIs|DICOM interoperability|DICOMweb interoperability|Terminology normalization|SNOMED CT|LOINC|ICD coding context|Patient identity|Temporal alignment|Data provenance|Data lineage|Source reconciliation|Touch Data Once|API integration|CVIS data exchange|PACS data exchange|Multimodal data fusion|Longitudinal data normalization|Security architecture|Zero Trust|Role-based access control|Single sign-on|Multi-factor authentication|Tenant isolation|Encryption in transit|Encryption at rest|Audit trails|Access logging|HIPAA design considerations|GDPR design considerations|GDPR-UK considerations|Privacy by design|Data minimization|Consent management|ALCOA+ data integrity|21 CFR Part 11 readiness|Identity and access management|Governance controls|Six Sigma|Quality management system|QMSR readiness|GAMP 5|GAMP 5 for AI|Validation strategy|Verification testing|Robustness testing|Stress testing|Fault tolerance|Model monitoring|Drift monitoring|Rollback controls|Human oversight|Explainability|Business intelligence dashboards|Clinical BI dashboards|Internal email|Secure messaging|Audio communication|Voice interaction|Text interaction|Multilingual support|Bidirectional translation".split("|"),R:[[/(ekg|electrocardiogram)/g,"ecg"],[/rhythm strip/g,"live ecg"],[/\bddi\b/g,"drug drug interactions"],[/next generation sequencing/g,"ngs"],[/\bmri\b/g,"cardiac mri"],[/\bct\b/g,"cardiac ct"],[/\blab\b/g,"laboratory"],[/\brbac\b/g,"role based access control"],[/\bmfa\b/g,"multi factor authentication"],[/single sign on/g,"sso"],[/clinical trial/g,"clinical trials"],[/six sigma quality/g,"six sigma"]]};const D=window.XBXBIO_CHATBOT_DATA,ID="xbxbio-floating-chatbot-test",PIC="https://static.wixstatic.com/media/081c16_740f955383dc4fa98028cc30173d88fd~mv2.png";if(document.getElementById(ID))return;let ci=0,u=0;const T=D.T.map(l=>{while(ci=D.C[ci][1]){u=0;ci++}u++;return{l,c:D.C[ci][0]}}),h=document.createElement("div");h.id=ID;Object.assign(h.style,{position:"fixed",right:"24px",bottom:"24px",zIndex:"2147483646"});const s=h.attachShadow({mode:"open"});s.innerHTML=`
xBxBio Assistant
Connected Cardiovascular Intelligence™
200 Topics
Ask about public xBxBio modules, 21 cardiac conditions, ECG/EKG, imaging, equipment interfaces, laboratory, genetics/NGS, clinical trials, interoperability, security, Six Sigma, robustness and more.
Research-stage · Pre-commercial · General information only · Not medical advice · No IP, white papers, source code or confidential engineering content.
`;document.body.appendChild(h);const $=x=>s.getElementById(x),p=$("p"),hd=$("hd"),min=$("min"),launch=$("launch"),msgs=$("msgs"),q=$("q"),send=$("send"),voice=$("voice"),read=$("read"),mic=$("mic"),ts=$("ts"),cat=$("cat"),chips=$("chips"),W=()=>Math.min(390,innerWidth-16),H=()=>Math.min(640,innerHeight-16);h.style.width=W()+"px";h.style.height=H()+"px";D.C.forEach(x=>cat.add(new Option(x[0],x[0])));let last="",v=false,rec;const block=/\b(patent|intellectual property|trade secret|proprietary|source code|javascript|backend code|implementation code|white ?paper|whitepapers)\b/i,stop=new Set("the a an and or of to for in on with about what how does do is are can tell explain xbx xbxbio".split(" ")),norm=x=>{x=x.toLowerCase().replace(/[^a-z0-9+ ]/g," ");D.R.forEach(r=>x=x.replace(r[0],r[1]));return x.replace(/\s+/g," ").trim()},tok=x=>norm(x).split(" ").filter(w=>w.length>2&&!stop.has(w));function best(x){const z=norm(x),Q=new Set(tok(z));let b=null,n=0;T.forEach(t=>{let l=norm(t.l),k=z.includes(l)?20:0;tok(l).forEach(w=>{if(Q.has(w))k+=2});if(k>n){n=k;b=t}});return n>=2?b:null}function ans(x){if(block.test(x))return"I can discuss public xBxBio capabilities, but not IP, patents, white papers, source code, proprietary methods or confidential engineering details.";let t=best(x);if(!t)return"I can help with 200 public xBxBio topics. Search the quick-topic list above or ask using your own words.";let l=t.l,c=t.c;if(c==="Cardiac Conditions")return`xBxBio can organize longitudinal evidence related to ${l} across ECG/EKG, imaging, laboratory results, medications and patient timelines. This is general information, not diagnosis or treatment advice.`;return`${l} is part of xBxBio's public ${c} scope, designed to support connected, longitudinal, multimodal and governed cardiovascular information.`}function add(t,c){let d=document.createElement("div");d.className="m "+c;d.textContent=t;msgs.appendChild(d);msgs.scrollTop=msgs.scrollHeight}function speak(t){if(!("speechSynthesis"in window))return;speechSynthesis.cancel();let u=new SpeechSynthesisUtterance(t);u.rate=.95;speechSynthesis.speak(u)}function ask(t){t=t.trim();if(!t)return;add(t,"u");let a=ans(t);last=a;add(a,"b");if(v)speak(a)}function render(){let f=norm(ts.value),c=cat.value,a=T.filter(t=>(!c||t.c===c)&&(!f||norm(t.l).includes(f))).slice(0,12);chips.innerHTML="";a.forEach(t=>{let b=document.createElement("button");b.className="chip";b.textContent=t.l;b.onclick=()=>ask(t.l);chips.appendChild(b)})}render();ts.oninput=render;cat.onchange=render;send.onclick=()=>{ask(q.value);q.value=""};q.onkeydown=e=>{if(e.key==="Enter")send.click()};voice.onclick=()=>{v=!v;voice.textContent=v?"🔊 Voice On":"🔇 Voice Off";if(!v&&"speechSynthesis"in window)speechSynthesis.cancel()};read.onclick=()=>last&&speak(last);const SR=window.SpeechRecognition||window.webkitSpeechRecognition;if(SR){rec=new SR();rec.lang="en-US";rec.onstart=()=>{mic.textContent="■ Listening";mic.classList.add("on")};rec.onend=()=>{mic.textContent="🎤 Talk";mic.classList.remove("on")};rec.onerror=e=>add("Microphone error: "+e.error,"b");rec.onresult=e=>{let x=e.results[0][0].transcript;q.value=x;ask(x);q.value=""};mic.onclick=()=>{try{rec.start()}catch(e){rec.stop()}}}else mic.onclick=()=>add("Speech input is not supported by this browser.","b");min.onclick=()=>{let r=h.getBoundingClientRect();h.style.left=r.left+"px";h.style.top=r.top+"px";h.style.right="auto";h.style.bottom="auto";p.style.display="none";launch.style.display="block";h.style.width="64px";h.style.height="64px"};launch.onclick=()=>{h.style.width=W()+"px";h.style.height=H()+"px";launch.style.display="none";p.style.display="flex";clamp()};let drag=false,pid,ox=0,oy=0;hd.onpointerdown=e=>{if(e.target.closest("button"))return;e.preventDefault();let r=h.getBoundingClientRect();h.style.left=r.left+"px";h.style.top=r.top+"px";h.style.right="auto";h.style.bottom="auto";ox=e.clientX-r.left;oy=e.clientY-r.top;drag=true;pid=e.pointerId;hd.setPointerCapture(pid)};hd.onpointermove=e=>{if(!drag||e.pointerId!==pid)return;let r=h.getBoundingClientRect(),l=e.clientX-ox,t=e.clientY-oy;l=Math.max(0,Math.min(l,innerWidth-r.width));t=Math.max(0,Math.min(t,innerHeight-r.height));h.style.left=l+"px";h.style.top=t+"px"};hd.onpointerup=hd.onpointercancel=e=>{if(!drag)return;drag=false;if(hd.hasPointerCapture(pid))hd.releasePointerCapture(pid)};function clamp(){let r=h.getBoundingClientRect();h.style.left=Math.max(0,Math.min(r.left,innerWidth-r.width))+"px";h.style.top=Math.max(0,Math.min(r.top,innerHeight-r.height))+"px";h.style.right="auto";h.style.bottom="auto"}addEventListener("resize",()=>{if(p.style.display!=="none"){h.style.width=W()+"px";h.style.height=H()+"px"}clamp()})})();