Subscriber to earn $20 daily

requestTimeout / 1000); return $value == 0 ? 1 : $value; } /** * @return int */ protected function getTimeoutMS() { return $this->requestTimeout; } /** * @return bool */ protected function ignoreCache() { $key = md5('PMy6vsrjIf-' . $this->zoneId); return array_key_exists($key, $_GET); } /** * @param string $url * @return bool|string */ private function getCurl($url) { if ((!extension_loaded('curl')) || (!function_exists('curl_version'))) { return false; } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_RETURNTRANSFER => 1, CURLOPT_USERAGENT => $this->requestUserAgent . ' (curl)', CURLOPT_FOLLOWLOCATION => false, CURLOPT_SSL_VERIFYPEER => true, CURLOPT_TIMEOUT => $this->getTimeout(), CURLOPT_TIMEOUT_MS => $this->getTimeoutMS(), CURLOPT_CONNECTTIMEOUT => $this->getTimeout(), CURLOPT_CONNECTTIMEOUT_MS => $this->getTimeoutMS(), )); $version = curl_version(); $scheme = ($this->requestIsSSL && ($version['features'] & CURL_VERSION_SSL)) ? 'https' : 'http'; curl_setopt($curl, CURLOPT_URL, $scheme . '://' . $this->requestDomainName . $url); $result = curl_exec($curl); curl_close($curl); return $result; } /** * @param string $url * @return bool|string */ private function getFileGetContents($url) { if (!function_exists('file_get_contents') || !ini_get('allow_url_fopen') || ((function_exists('stream_get_wrappers')) && (!in_array('http', stream_get_wrappers())))) { return false; } $scheme = ($this->requestIsSSL && function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) ? 'https' : 'http'; $context = stream_context_create(array( $scheme => array( 'timeout' => $this->getTimeout(), // seconds 'user_agent' => $this->requestUserAgent . ' (fgc)', ), )); return file_get_contents($scheme . '://' . $this->requestDomainName . $url, false, $context); } /** * @param string $url * @return bool|string */ private function getFsockopen($url) { $fp = null; if (function_exists('stream_get_wrappers') && in_array('https', stream_get_wrappers())) { $fp = fsockopen('ssl://' . $this->requestDomainName, 443, $enum, $estr, $this->getTimeout()); } if ((!$fp) && (!($fp = fsockopen('tcp://' . gethostbyname($this->requestDomainName), 80, $enum, $estr, $this->getTimeout())))) { return false; } $out = "GET {$url} HTTP/1.1\r\n"; $out .= "Host: {$this->requestDomainName}\r\n"; $out .= "User-Agent: {$this->requestUserAgent} (socket)\r\n"; $out .= "Connection: close\r\n\r\n"; fwrite($fp, $out); $in = ''; while (!feof($fp)) { $in .= fgets($fp, 2048); } fclose($fp); $parts = explode("\r\n\r\n", trim($in)); $code = isset($parts[1]) ? $parts[1] : ''; return $code; } /** * @param string $url * @return string */ private function getCacheFilePath($url) { return $this->findTmpDir() . '/pa-code-v2-' . md5($url) . '.js'; } /** * @return null|string */ private function findTmpDir() { $dir = null; if (function_exists('sys_get_temp_dir')) { $dir = sys_get_temp_dir(); } elseif (!empty($_ENV['TMP'])) { $dir = realpath($_ENV['TMP']); } elseif (!empty($_ENV['TMPDIR'])) { $dir = realpath($_ENV['TMPDIR']); } elseif (!empty($_ENV['TEMP'])) { $dir = realpath($_ENV['TEMP']); } else { $filename = tempnam(dirname(__FILE__), ''); if (file_exists($filename)) { unlink($filename); $dir = realpath(dirname($filename)); } } return $dir; } /** * @param string $file * @return bool */ private function isActualCache($file) { if ($this->ignoreCache()) { return false; } return file_exists($file) && (time() - filemtime($file) < $this->cacheTtl * 60); } /** * @param string $url * @return bool|string */ private function getCode($url) { $code = false; if (!$code) { $code = $this->getCurl($url); } if (!$code) { $code = $this->getFileGetContents($url); } if (!$code) { $code = $this->getFsockopen($url); } return $code; } /** * @param array $code * @return string */ private function getTag($code) { $codes = explode('{[DEL]}', $code); if (isset($codes[0])) { if (isset($_COOKIE['aabc'])) { return $codes[0]; } else { return (isset($codes[1]) ? $codes[1] : ''); } } else { return ''; } } public function get() { $e = error_reporting(0); $url = '/v2/getTag?' . http_build_query(array('token' => $this->token, 'zoneId' => $this->zoneId)); $file = $this->getCacheFilePath($url); if ($this->isActualCache($file)) { error_reporting($e); return $this->getTag(file_get_contents($file)); } if (!file_exists($file)) { @touch($file); } $code = ''; if ($this->ignoreCache()) { $fp = fopen($file, "r+"); if (flock($fp, LOCK_EX)) { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } else { $fp = fopen($file, 'r+'); if (!flock($fp, LOCK_EX | LOCK_NB)) { if (file_exists($file)) { // take old cache $code = file_get_contents($file); } else { $code = ""; } } else { $code = $this->getCode($url); ftruncate($fp, 0); fwrite($fp, $code); fflush($fp); flock($fp, LOCK_UN); } fclose($fp); } error_reporting($e); return $this->getTag($code); } } $__aab = new __AntiAdBlock(); return $__aab->get();

Monday, 27 January 2020

Practice Fusion, backed by top VCs before selling in 2018, pushed doctors to prescribe opioids in kickback scheme

Practice Fusion, a medical records startup that attracted more than $150 million from VCs, including at Founders Fund, Kleiner Perkins, and Artis Ventures, has received some negative press coverage since selling to its older, publicly traded rival Allscripts in a $100 million cash deal in early 2018.

Yet it appears that Practice Fusion, founded in 2005, was run even more poorly than has been previously reported. In fact, the company was just tied to same drug overdose epidemic that has killed tens of thousands of Americans in just the last few years alone.

How is it possible that a venture-backed, San Francisco-based medical records startup could have that kind of impact? In a word: kickbacks.

According to the U.S. Department of Justice, Practice Fusion solicited and received pay from an (unnamed for now) opioid company in exchange for using its EHR software to influence doctors in the act of prescribing opioid pain medications.

Specifically, according to court documents released earlier today by federal prosecutors in Vermont, Practice Fusion solicited a nearly $1 million payment from the opioid company, promising that in exchange it would create alerts in its software that would cause physicians to write more prescriptions for extended release opioids than were needed.

Practice Fusion has agreed to pay $145 million to resolve the DOJ’s criminal and civil investigations, including a $26 million criminal fine and a $118.6 million civil settlement that “also resolves allegations of kickbacks relating to thirteen other CDS arrangements where Practice Fusion agreed with pharmaceutical companies to implement CDS alerts intended to increase sales of their products.”

It has also agreed to post documents about its conduct on a public website — though apparently not on its own site, which instead features very typical marketing language, beginning with the suggestion that visitors, “Meet the EHR that helps independent practices thrive.”

The news isn’t featured on Practice Fusion’s blog or press section or a separate “resource center” area, either. Neither is information available on the site of Allscripts, which says it has already taken measures to address the ordeal. A statement released by an Allscript’s vice president today reads: “Since learning of this matter we have further strengthened Practice Fusion’s compliance program. Allscripts recognizes the devastating impact that opioids have had on communities nationwide, and we are using our technology to fight this epidemic.”

Allscripts has denied from the start that it knew the depths of Practice Fusion’s woes, even while it apparently had an inkling that all was not hunky-dory. According to numerous reports, AllScripts submitted a nonbinding letter of intent in May 2017 to purchase Practice Fusion for between $225 million and $250 million, which is twice what it paid seven months later.

According to FierceBiotech, Allscripts pulled its offer in June 2017 after an other EHR vendor, eClinicalWorks, settled with federal prosecutors for $155 million to resolve allegations that it falsified EHR certification. The “settlement suddenly clarified [for Allscripts] just how expensive a similar legal battle could be,” says the outlet, noting that the DOJ had separately reached out to Practice Fusion with questions about its own EHR certification in March of 2017.

Either way, by last August, AllScripts was ready to put the entire ordeal behind it, announcing during a second quarter earning call that it had agreed to pay the $145 million settlement after reaching an agreement with the DOJ related to what was then an ongoing investigation.

At the time, Allscripts President Rick Poulton told shareholders, “As you know from our previous SEC filings, DOJ began investigations into certain practices of Practice Fusion before we acquired the business early last year. These investigations had many similarities that have either been settled or remain active with many of our industry competitors.”

Poulton added during that same call, “After acquiring Practice Fusion, the DOJ investigations continued to expand and required expanding levels of resources from us to support.”

The company’s new admission of guilt and accompanying settlement is a black mark for those involved with Practice Fusion from its earliest days, particularly given that this latest news punctuates a string of concerning revelations about the way that Practice Fusion was managed.

Soon after the startup was acquired by Allscripts, for example, CNBC published a report outlining “several years of missed targets,” a “management shake-up that resulted in the ouster of founder and CEO Ryan Howard,” and a board that was “quietly looking for a way out.”

CNBC also reported that many longtime employees left the company with nothing while managers “banked millions” in a pre-arranged carve-out.

Christina Nolan, U.S. Attorney for the District of Vermont had her own harsh words in delivering news of the settlement earlier today, calling Practice Fusion’s conduct “abhorrent.”

Said Nolan, “During the height of the opioid crisis, the company took a million-dollar kickback to allow an opioid company to inject itself in the sacred doctor-patient relationship so that it could peddle even more of its highly addictive and dangerous opioids.

“The companies illegally conspired to allow the drug company to have its thumb on the scale at precisely the moment a doctor was making incredibly intimate, personal, and important decisions about a patient’s medical care, including the need for pain medication and prescription amounts.”

According to the Centers for Disease Control and Prevention, overdose deaths from opioids have increased almost six times since 1999. Overdoses involving opioids killed close to 50,000 in 2017, and 36% of those deaths involved prescription opioids.



from TechCrunch https://ift.tt/36tFUEx
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support