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();

Tuesday, 14 January 2020

Oviva scores $21M Series B to bring its digital diabetes treatment to more of Europe

Oviva, the health tech startup that provides a digital solution for Type 2 diabetes treatment in Europe, has raised $21 million in Series B funding.

Leading the round is MTIP, with participation by new investor Earlybird, and existing investors AlbionVC, F-Prime Capital, Eight Roads Ventures and Partech.

Oviva says the new capital will be used to further develop its technology, and continue expanding in Europe to serve more patients not able to currently aaccess treatment. It brings the total raised by Oviva to date to $34 million.

Claiming to have treated 90,000 patients in the last three years across the U.K., Germany, France, Switzerland and the UAE, Oviva offers an “evidence-based” digital solution to stop the progression of and reverse Type 2 diabetes and obesity-related conditions. Patients receive tailored nutrition advice and personalised coaching via their phone, at lower costs and better outcomes compared to face-to-face therapy, says the startup.

“With your consent, your doctor sends Oviva your diagnosis, relevant lab reports, background and contact details,” explains Oviva co-founder and CEO Kai Eberhardt. “We then contact you, either directly to ask you to download our app or via phone, onboard you and initiate treatment. You are then treated typically for four to nine months, depending on your condition and local reimbursement. After that time you can continue, paying yourself, or get another referral (typically annually, as our behaviour-change treatment is recommended in most guidelines each year and reimbursement is provided each year)”.

Eberhardt says that in most of the countries Oviva currently operates in, it is the patients’ health insurance that pays for the service, and in the U.K. the NHS pays for access. “Typically for patients to access our treatment requires a doctors’ prescription,” he says. “Most referrals are made by the patient’s general practitioner, or in some cases also specialists, e.g, an endocrinologist. A typical scenario is that the patient’s doctor makes a referral when they are diagnosed, or as part of a regular check up for their chronic condition”.

Once Oviva has been sent the patient “goal,” such as losing weight, better blood sugar control etc., and the patient has been on-boarded, they start logging anything that is important related to their lifestyle and disease. This includes photos of meals, activity, weight and symptoms. They can also connect a step counter, weight scale or blood glucose meter to the app to complete most of the data collection automatically.

“You will agree specific behaviours you want to change over the course of the treatment with your dietitian (e.g. more vegetables and fruits, portion control, activity levels),” says Eberhardt. “Your dietitian and a group of peers will support you in achieving those goals. On the one hand that is motivation and emotional support, on the other hand with specific pointers targeted to your needs, e.g. around how you time meals and portion sizes over the day to avoid lows or hunger periods”.

Over the course of treatment, a patient can also have video-call appointments with their dietitian, and review a curriculum of videos and other content supporting the management of their condition, as part of a “behaviour change journey”.

Meanwhile, Christoph Ruedig, Partner at AlbionVC, says that despite compelling evidence that digital treatments improve patient access and outcomes while reducing costs for health systems, “Europe is investing a fraction” in digital health compared to the U.S. “We’re excited to continue to support Oviva’s accelerated roll out across Europe,” he says.



from TechCrunch https://ift.tt/30kAwCa
Share:
//]]>

0 comments:

Post a Comment

Blog Archive

Definition List

Unordered List

Support