Pět set praktiků už si pořídilo ultrazvuk. Pomůže odhalit třeba zápal plic

23. 5. 2025

Sdílet

Detail sondy ultrazvuku
Autor: Shutterstock
Aktualizováno: Text jsme doplnili o vyjádření Ministerstva zdravotnictví. (23. 5. 2025 13:50)
Přístroje velké jako servírovací vozík i ty, jež se vejdou do kapsy. Takové ultrazvuky si už pátým rokem pořizují někteří praktičtí lékaři jako doplněk k jiným vyšetřovacím metodám. Pochvalují si je, pojišťovny k úhradám ale zatím nepřesvědčili.

Ultrazvuk používají jak praktičtí lékaři pro dospělé, tak i někteří dětští lékaři. První se jím začali vybavovat před pěti lety. Soupis všech ordinací, které si jej už zakoupily, není dostupný, nicméně o této možnosti se zmiňují na svých webech. Mají jej například v Křtinách na Blanensku, ve středočeském Nymburce, Kyjově na Hodonínsku nebo ordinace v pražské Libni.

Co se dozvíte v článku
  1. Pacienti si novinku chválí
  2. Co vše lze vyšetřit
  3. Ultrazvuk velký i malý
  4. Kolik vyšetření stojí
  5. Když lékař ultrazvuk nemá
  6. Praktici vyšetřují jinak

Ultrazvukem už je vybavena desetina všech ordinací. Je to více než 500 praktických lékařů, shrnuje dosavadní vývoj pro Vitalia.cz David Halata, jenž je jedním z iniciátorů zavedení ultrazvuků do ordinací, také místopředsedou Pracovní skupiny pro ultrazvuk v primární péči a předsedou Pracovní skupiny venkovského lékařství Společnosti všeobecného lékařství.

Další přibývají, protože použití ultrazvuku je po zaškolení snadné, přináší řadu informací navíc a je opakovatelné, aniž by lékař vystavil pacienta, třeba dítě, dalšímu rentgenovému záření.

Pacienti si novinku chválí

V ordinaci testujeme několik typů ultrazvuků. První jsme si pořídili už v roce 2021. U diagnostiky zápalu plic jde o výbornou metodu, která předčí i rentgen, popisuje zkušenosti lékař Vojtěch Mucha, jenž pendluje mezi ordinacemi v pražských Kobylisích a Dejvicích.

Ultrazvuk máme asi dva roky a pacienti jsou s ním moc spokojení, protože dostávají komplexní balíček služeb. Nejvíce vyšetření děláme v době respiračních nákaz, kdy si snadno ověříme, zda jde o nekomplikovanou infekci nebo zánět plic, dodává Norbert Král. Ten ošetřuje pacienty v ordinaci v ulici Na Hřebenech na pražské Pankráci.

Žádný z pacientů vyšetření neodmítl, setkávám se ale s tím, že se diví, že jej mohou podstoupit i u praktického lékaře, říká David Halata, který má ordinaci Hošťálkové na Vsetínsku.

Co vše lze vyšetřit

I když vyšetření ultrazvukem u praktického lékaře nemůže nahradit to u specialisty, i praktičtí lékaři dokáží lokálně vyšetřit řadu orgánů a struktur.  Díky tomu mohou hledat mnohem lépe například příčinu dušnosti. 

V plicích s jeho pomocí vidí počínající pneumonii. Přístroj ji rozezná o několik dnů dříve než rentgen.

Ultrazvuk velký i malý

Ultrazvuky v ordinacích praktiků mají různou podobu. Některé se vejdou do kapsy, protože místo monitoru využívají tablet či displej mobilu, takže jsou přenosné. Jiné jsou stacionární a mají podobu menší skříňky s kolečky. Jedná se o stejné přístroje, jaké jsou v nemocnicích.

Kromě ultrazvuku si musí praktický lékař zakoupit speciální gel a absolvovat několikastupňový kurz organizovaný a garantovaný Společností všeobecného lékařství. Při vyšetření musí také dodržet celoevropsky stanovený postup. Jen snad ještě odvaha a chuť měnit primární péči, říká s úsměvem praktický lékař Davit Halata.

Vyšetříme i srdce, kde jsme schopni s pomocí ultrazvuku zhodnotit třeba funkci levé komory, odhalit perikardiální výpotek nebo přetlak v plicním řečišti, který může poukazovat na tromboembolickou nemoc, popisuje David Halata. Už teď se připravují i na to, že umělá inteligence jim pomůže natočit sondu správně tak, aby vyhodnotili všechny základní parametry funkce srdce.

Při vyšetření nohou může lékař vybavený ultrazvukem vyloučit nebo potvrdit hlubokou žilní trombózu, která pacienta může ohrozit na životě.

U břicha praktici ultrazvuk používají na odhalení žlučníkových kamenů, základních změn na játrech, obstrukce (překážky) v močových cestách, podívat se na naplnění močového měchýře, prostatu nebo najít volnou tekutinu v dutině břišní nebo a zhodnotit základní struktury ledvin.

U kostí a svalů hledají odpovědi například na to, zda nebyly poškozené vazy, zda došlo k lézi vazů nebo menisku kolene, zda má pacient výpotek v koleni, patní ostruhu, tenisový loket nebo syndrom karpálního tunelu.

Co naopak praktický lékař kvůli složitosti zobrazení nedokáže, je ultrazvukem vyšetřit slinivku, krční tepny nebo diagnostikovat zánět slepého střeva. Má obrovskou variabilitu nálezů a praktický lékař se při zjednodušení může velice lehce dopustit chyby, komentuje limity Davit Halata.

V tuto chvíli lékaři screeningově nevyšetřují ani prsa (screening umožňuje jen mamografii) nebo břišní aortu (o novém typu bezplatné prevence si přečtěte zde). Toto vyšetření je přitom velmi jednoduché, stát jej přesto zatím svěřil jen nemocnicím a akreditovaným klinikám.

Byla by to revoluce, říkají praktici o možnosti ultrazvuku v ordinacích Přečtěte si také:

Byla by to revoluce, říkají praktici o možnosti ultrazvuku v ordinacích

Kolik vyšetření stojí

Ultrazvukové vyšetření u praktického lékaře zatím nehradí žádná ze zdravotních pojišťoven, byť by o to lékaři stáli. Přestože jej používá nemálo všeobecných praktických lékařů a nejedná se už o nic převratného, úhradu do dnešního dne stanovenou nemáme. Je to pro nás velmi smutná kapitola, protože ji mají třeba Slovensko nebo Rakousko, podotýká Halata s tím, že vyjednávání s pojišťovnami dále pokračuje.

Chybějící úhradu vidí jako hlavní brzdu rozšíření ultrazvuku do dalších ordinací praktických lékařů.

Lékař by si proto mohl vyšetření zpoplatnit. Zatím to ale většina nedělá. Berou to jako sponzoring svých ordinací a zdraví pacientů, vysvětluje Halata. Je to určitý entuziazmus. Pro nás je to stále ještě nová a silná věc, ve které vidíme velkou budoucnost, míní Norbert Král, přednosta Ústavu všeobecného lékařství 1. lékařské fakulty Univerzity Karlovy.

Jsou ale i výjimky. Třeba na webu jedné z ordinací v Libni se lze dočíst, že vyšetření jedné oblasti stojí 500 Kč.

Ministerstvo zdravotnictví ale podotýká, že ačkoliv neexistuje samostatný kód pro vykazování ultrazvuku praktickými lékaři, neznamená to, že peníze za něj nemohou od pojišťoven dostat a že je nutné měnit vyhlášku. Ta obsahuje několik zdravotních výkonů ultrazvukového vyšetření, které jsou tzv. mezioborové. To znamená, že mohou být zařazeny do smlouvy se zdravotní pojišťovnou bez ohledu na smluvní odbornost lékaře, vysvětluje mluvčí ministerstva Ondřej JakobPodle dat dostupných Ministerstvu zdravotnictví poskytovatelé v odbornosti praktického lékařství vykazují těchto výkonů v součtu řádově tisíce ročně, dodává. V takovém případě lékař od pacienta požadovat peníze nesmí.

Takhle se liší kontrastní látky a radiofarmaka. Pomáhají vidět, co je uvnitř těla Přečtěte si také:

Takhle se liší kontrastní látky a radiofarmaka. Pomáhají vidět, co je uvnitř těla

Když lékař ultrazvuk nemá

Pacienti nemohou nutit praktického lékaře, aby si přístroj pořídil. Už jen proto, že výše investice není malá. Ultrazvuky do kapsy stojí od 150 tisíc korun výše, velké přístroje pak nad půl milionu korun.

Nejde jen o peníze, lékař si takémusí najít čas na kurz pořádaný Společností všeobecného lékařství. Bez certifikátu získaného po jeho absolvování ultrazvukem vyšetřovat nesmí.

Chce-li pacient, aby jej jeho praktický lékař sonograficky vyšetřoval, on ale ultrazvuk nemá, je dobré si ujasnit, zda plánuje jeho nákup. Nebo zda třeba tento přístroj nebude sdílet s jiným lékařem. Pokud ne, může se pacient přeregistrovat do jiné ordinace.

U tohoto typu vyšetření není pravděpodobné, že by lékaři sdíleli pacienty, jako je tomu například u denzitometrie, která je prevencí osteoporózy (o vybavování ordinací praktiků denzitometry jsme psali zde). Ultrazvukové vyšetření trvá velmi krátce – do pěti minut, a je součástí celkového vyšetření pacienta i jeho anamnézy, kterou zná nejlépe jeho registrující praktický lékař.

Praktici vyšetřují jinak

Praktici ultrazvuk používají v systému nazývaném point-of-care (POC). Právě kvůli tomu se nazývá zkratkou POCUS (point-of-care ultrasound ). Jde o rychlou diagnostickou, dílčí metodu. Ta jde pomyslně za pacientem, nikoliv on za ní, a její výsledky jsou k dispozici okamžitě.

V praxi to znamená, že praktický lékař může POCUS používat v ordinaci, ale stejně tak třeba i jeho přenosný typ doma u pacientova lůžka nebo třeba u postranní čáry fotbalového hřiště. Pacienta nemusíme nikam posílat, což je velká výhoda, pokud je třeba infekční, libuje si David Halata.

POCUS doplňuje jiné typy vyšetření včetně poslechu, pohmatu nebo poklepu. Desítky let jsme k takovému vyšetřování vychováváni, ale s ultrazvukem zjistíte, že jen poslechu či poklepu důvěřovat zcela nelze. Třeba atypický zápal plic fonendoskopem často neslyšíte, říká David Halata.

Galoše. Podzemní chráněný kryt – KO 17 slouží jako záložní zdravotnické pracoviště v případě nenadálých a krizových situací.

Sanopz, OÚNZ, MRI. Zkuste kvíz o zkratkách, které souvisí se zdravotnictvím.

Milujete knihy a seriály ze zdravotnického prostředí? Pak by pro vás náš test mohl být hračkou, protože zkratky týkající se medicíny vám nejsou cizí.

POCUS použití předpokládá, že lékař má nějakou hypotézu a s pomocí ultrazvuku hledá odpovědi na dílčí otázky, které mu ji potvrdí, nebo vyvrátí. Ultrazvuk je tedy jednou z vyšetřovací metod použitých při jedné návštěvě, jež praktickému lékaři pomůže správně se rozhodnout, jak se dále o pacienta postarat. 

Vyšetření ultrazvukem u praktického lékaře není shodné jako to vedené sonografistou nebo radiologem.Přirovnávám to k fotoaparátu. Buď máte perfektní zrcadlovku, s níž fotíte umělecká díla, nebo máte jednoduchý přístroj, kterým si zaznamenáváte třeba rodinu nebo svoji práci. A takto odlišné je použití ultrazvuku u speciality a POCUSu u praktického lékaře,popisuje Vojtěch Mucha, předseda spolku Mladí praktici.

Rozsah toho vyšetření nebude nikdy tak velký jako u specialisty. Praktický lékař neprovede ani tolik vyšetření, aby některá u něj byla zcela bezpečná a se spolehlivými výsledky, dodává David Halata. Rozdíl je také v tom, že na rozdíl od radiologů, praktičtí lékaři pracují jako jediní s pacienty, kteří neprošli takzvanou triáží, tedy tříděním závažnosti zdravotního stavu.

POC použití znamená, že ultrazvukové vyšetření je velmi krátké, protože lékař při něm neprohlíží všechny orgány v břiše nebo hrudníku, ale zaměří se jen na to místo, kde si potřebuje něco ověřit. Právě proto nikdy nenahradí vyšetření specialistou, podotýká David Halata. Ultrazvuk používáme jen v určitých případech, kde to dává mysl a kde byly stanovené vyšetřovací protokoly. Nikdy to nebude tak, že budeme třeba vyšetřovat celou dutinu břišní, potvrzuje Norbert Král.

Autor článku

Redaktorka Vitalia.cz. Vystudovala žurnalistiku a češtinu na Univerzitě Palackého v Olomouci, pracovala v Deníku, na webu TV Nova a iDNES.cz. Píše o zdravotnictví. Je držitelkou novinářských cen Psychiatrické společností ČLS JEP za rok 2021 a 2022. 

Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).
'; document.getElementById('outstream-iframe').onload = function () { setupIframe(); } replayScreen = document.getElementById('iinfoOutstreamReplay'); iinfoOutstreamPosition = document.getElementById('iinfoOutstreamPosition'); outstreamContainer = document.getElementsByClassName('outstream-container')[0]; setupReplayScreen(); } function setupIframe() { outstreamDocument = document.getElementById('outstream-iframe').contentWindow.document; let el = outstreamDocument.createElement('style'); outstreamDocument.head.appendChild(el); el.innerText = "#adContainer>div:nth-of-type(1),#adContainer>div:nth-of-type(1) > iframe { width: 99% !important;height: 99% !important;max-width: 100%;}#videoContent,body{ width:100vw;height:100vh}body{ font-family:'Helvetica Neue',Arial,sans-serif}#videoContent{ overflow:hidden;background:#000}#adMuteBtn{ width:35px;height:35px;border:0;background:0 0;display:none;position:absolute;fill:rgba(230,230,230,1);bottom:-5px;right:25px}"; videoContent = outstreamDocument.getElementById('contentElement'); videoContent.style.display = 'none'; videoContent.volume = 1; videoContent.muted = false; if ( location.href.indexOf('rejstriky.finance.cz') !== -1 || location.href.indexOf('finance-rejstrik') !== -1 || location.href.indexOf('firmy.euro.cz') !== -1 || location.href.indexOf('euro-rejstrik') !== -1 || location.href.indexOf('/rejstrik/') !== -1 || location.href.indexOf('/rejstrik-firem/') !== -1) { outstreamDirectPlayed = true; soundAllowed = true; iinfoVastUrlIndex = 0; } if (!outstreamDirectPlayed) { console.log('OUTSTREAM direct'); setUpIMA(true); } else { if (soundAllowed) { const playPromise = videoContent.play(); if (playPromise !== undefined) { playPromise.then(function () { console.log('OUTSTREAM sound allowed'); setUpIMA(false); }).catch(function () { console.log('OUTSTREAM sound forbidden'); renderBanner(); }); } } else { renderBanner(); } } } function getWrapper() { let articleWrapper = document.querySelector('.rs-outstream-placeholder'); // Outstream Placeholder from RedSys manipulation if (articleWrapper && articleWrapper.style.display !== 'block') { articleWrapper.innerHTML = ""; articleWrapper.style.display = 'block'; } // Don't render OutStream on homepages if (articleWrapper === null) { if (document.querySelector('body.p-index')) { return null; } } if (articleWrapper === null) { articleWrapper = document.getElementById('iinfo-outstream'); } if (articleWrapper === null) { articleWrapper = document.querySelector('.layout-main__content .detail__article p:nth-of-type(6)'); } if (articleWrapper === null) { // Euro, Autobible, Zdravi articleWrapper = document.querySelector('.o-article .o-article__text p:nth-of-type(6)'); } if (articleWrapper === null) { articleWrapper = document.getElementById('sidebar'); } if (!articleWrapper) { console.error("Outstream wrapper of article was not found."); } return articleWrapper; } function setupDimensions() { outstreamWidth = Math.min(iinfoOutstreamPosition.offsetWidth, 480); outstreamHeight = Math.min(iinfoOutstreamPosition.offsetHeight, 320); } /** * Sets up IMA ad display container, ads loader, and makes an ad request. */ function setUpIMA(direct) { google.ima.settings.setDisableCustomPlaybackForIOS10Plus(true); google.ima.settings.setLocale('cs'); google.ima.settings.setNumRedirects(10); // Create the ad display container. createAdDisplayContainer(); // Create ads loader. adsLoader = new google.ima.AdsLoader(adDisplayContainer); // Listen and respond to ads loaded and error events. adsLoader.addEventListener( google.ima.AdsManagerLoadedEvent.Type.ADS_MANAGER_LOADED, onAdsManagerLoaded, false); adsLoader.addEventListener( google.ima.AdErrorEvent.Type.AD_ERROR, onAdError, false); // An event listener to tell the SDK that our content video // is completed so the SDK can play any post-roll ads. const contentEndedListener = function () { adsLoader.contentComplete(); }; videoContent.onended = contentEndedListener; // Request video ads. const adsRequest = new google.ima.AdsRequest(); if (direct) { adsRequest.adTagUrl = directVast; console.log('Outstream DIRECT CAMPAING advert: ' + directVast); videoContent.muted = true; videoContent.volume = 0; outstreamDirectPlayed = true; } else { adsRequest.adTagUrl = iinfoVastUrls[iinfoVastUrlIndex]; console.log('Outstream advert: ' + iinfoVastUrls[iinfoVastUrlIndex]); videoContent.muted = false; videoContent.volume = 1; } // Specify the linear and nonlinear slot sizes. This helps the SDK to // select the correct creative if multiple are returned. // adsRequest.linearAdSlotWidth = outstreamWidth; // adsRequest.linearAdSlotHeight = outstreamHeight; adsRequest.nonLinearAdSlotWidth = 0; adsRequest.nonLinearAdSlotHeight = 0; adsLoader.requestAds(adsRequest); } function setupReplayScreen() { replayScreen.addEventListener('click', function () { iinfoOutstreamPosition.remove(); iinfoVastUrlIndex = 0; outstreamInit(); }); } /** * Sets the 'adContainer' div as the IMA ad display container. */ function createAdDisplayContainer() { // We assume the adContainer is the DOM id of the element that will house // the ads. outstreamDocument.getElementById('videoContent').style.display = 'none'; adDisplayContainer = new google.ima.AdDisplayContainer( outstreamDocument.getElementById('adContainer'), videoContent); } function unmuteAdvert() { adVolume = !adVolume; if (adVolume) { adsManager.setVolume(0.3); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } else { adsManager.setVolume(0); outstreamDocument.getElementById('adMuteBtn').innerHTML = ''; } } /** * Loads the video content and initializes IMA ad playback. */ function playAds() { // Initialize the container. Must be done through a user action on mobile // devices. videoContent.load(); adDisplayContainer.initialize(); // setupDimensions(); try { // Initialize the ads manager. Ad rules playlist will start at this time. adsManager.init(1920, 1080, google.ima.ViewMode.NORMAL); // Call play to start showing the ad. Single video and overlay ads will // start at this time; the call will be ignored for ad rules. adsManager.start(); // window.addEventListener('resize', function (event) { // if (adsManager) { // setupDimensions(); // adsManager.resize(outstreamWidth, outstreamHeight, google.ima.ViewMode.NORMAL); // } // }); } catch (adError) { // An error may be thrown if there was a problem with the VAST response. // videoContent.play(); } } /** * Handles the ad manager loading and sets ad event listeners. * @param { !google.ima.AdsManagerLoadedEvent } adsManagerLoadedEvent */ function onAdsManagerLoaded(adsManagerLoadedEvent) { // Get the ads manager. const adsRenderingSettings = new google.ima.AdsRenderingSettings(); adsRenderingSettings.restoreCustomPlaybackStateOnAdBreakComplete = true; adsRenderingSettings.loadVideoTimeout = 12000; // videoContent should be set to the content video element. adsManager = adsManagerLoadedEvent.getAdsManager(videoContent, adsRenderingSettings); // Add listeners to the required events. adsManager.addEventListener(google.ima.AdErrorEvent.Type.AD_ERROR, onAdError); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_PAUSE_REQUESTED, onContentPauseRequested); adsManager.addEventListener( google.ima.AdEvent.Type.CONTENT_RESUME_REQUESTED, onContentResumeRequested); adsManager.addEventListener( google.ima.AdEvent.Type.ALL_ADS_COMPLETED, onAdEvent); // Listen to any additional events, if necessary. adsManager.addEventListener(google.ima.AdEvent.Type.LOADED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.STARTED, onAdEvent); adsManager.addEventListener(google.ima.AdEvent.Type.COMPLETE, onAdEvent); playAds(); } /** * Handles actions taken in response to ad events. * @param { !google.ima.AdEvent } adEvent */ function onAdEvent(adEvent) { // Retrieve the ad from the event. Some events (for example, // ALL_ADS_COMPLETED) don't have ad object associated. const ad = adEvent.getAd(); console.log('Outstream event: ' + adEvent.type); switch (adEvent.type) { case google.ima.AdEvent.Type.LOADED: // This is the first event sent for an ad - it is possible to // determine whether the ad is a video ad or an overlay. if (!ad.isLinear()) { // Position AdDisplayContainer correctly for overlay. // Use ad.width and ad.height. videoContent.play(); } outstreamDocument.getElementById('adContainer').style.width = '100%'; outstreamDocument.getElementById('adContainer').style.maxWidth = '640px'; outstreamDocument.getElementById('adContainer').style.height = '360px'; break; case google.ima.AdEvent.Type.STARTED: window.addEventListener('scroll', onActiveView); // This event indicates the ad has started - the video player // can adjust the UI, for example display a pause button and // remaining time. if (ad.isLinear()) { // For a linear ad, a timer can be started to poll for // the remaining time. intervalTimer = setInterval( function () { // Example: const remainingTime = adsManager.getRemainingTime(); // adsManager.pause(); }, 300); // every 300ms } outstreamDocument.getElementById('adMuteBtn').style.display = 'block'; break; case google.ima.AdEvent.Type.ALL_ADS_COMPLETED: if (ad.isLinear()) { clearInterval(intervalTimer); } if (outstreamLastError === 303) { if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } } break; case google.ima.AdEvent.Type.COMPLETE: // This event indicates the ad has finished - the video player // can perform appropriate UI actions, such as removing the timer for // remaining time detection. if (ad.isLinear()) { clearInterval(intervalTimer); } if (isBanner) { renderBanner(); } else { replayScreen.style.display = 'flex'; } break; } } /** * Handles ad errors. * @param { !google.ima.AdErrorEvent } adErrorEvent */ function onAdError(adErrorEvent) { // Handle the error logging. console.log(adErrorEvent.getError()); outstreamLastError = adErrorEvent.getError().getErrorCode(); if (!loadNext()) { renderBanner(); } } function renderBanner() { if (isBanner) { console.log('Outstream: Render Banner'); iinfoOutstreamPosition.innerHTML = ""; iinfoOutstreamPosition.style.height = "330px"; iinfoOutstreamPosition.appendChild(bannerDiv); } else { console.log('Outstream: Banner is not set'); } } function loadNext() { iinfoVastUrlIndex++; if (iinfoVastUrlIndex < iinfoVastUrls.length) { iinfoOutstreamPosition.remove(); outstreamInit(); } else { return false; } adVolume = 1; return true; } /** * Pauses video content and sets up ad UI. */ function onContentPauseRequested() { videoContent.pause(); // This function is where you should setup UI for showing ads (for example, // display ad timer countdown, disable seeking and more.) // setupUIForAds(); } /** * Resumes video content and removes ad UI. */ function onContentResumeRequested() { videoContent.play(); // This function is where you should ensure that your UI is ready // to play content. It is the responsibility of the Publisher to // implement this function when necessary. // setupUIForContent(); } function onActiveView() { if (outstreamContainer) { const containerOffset = outstreamContainer.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight/1 && containerOffset.bottom > 0.0) { if (outstreamPaused) { adsManager.resume(); outstreamPaused = false; } return true; } else { if (!outstreamPaused) { adsManager.pause(); outstreamPaused = true; } } } return false; } let outstreamInitInterval; if (typeof cpexPackage !== "undefined") { outstreamInitInterval = setInterval(tryToInitializeOutstream, 100); } else { const wrapper = getWrapper(); if (wrapper) { let outstreamInitialized = false; window.addEventListener('scroll', () => { if (!outstreamInitialized) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { outstreamInit(); outstreamInitialized = true; } } }); } } function tryToInitializeOutstream() { const wrapper = getWrapper(); if (wrapper) { const containerOffset = wrapper.getBoundingClientRect(); const windowHeight = window.innerHeight; if (containerOffset.top < windowHeight / 1 && containerOffset.bottom > 0.0) { if (cpexPackage.adserver.displayed) { clearInterval(outstreamInitInterval); outstreamInit(); } } } else { clearInterval(outstreamInitInterval); } } }
OSZAR »