With Powerful Backers, HaloDoc wants to Improve Access to Healthcare in Indonesia

As reported in Tech in Asia on 9 September 2016 by Nadine Freischlad. More details can be found here.

Indonesia’s healthcare system leaves a lot to be desired, especially in rural areas where qualified doctors and medicine are hard to find. Some believe taking healthcare online can help solve the problem. Everyone could access basic health information, consult with doctors, and order medicine online.

A number of startups want to make this a reality. Sites like Klikdokter, Alodokter, Prosehat, Tanyadok, Udoctor, and Dokter.id each offer combinations of health advice, doctor and hospital reviews, one-on-one online consultations, or medicine delivery.

And there’s HaloDoc, a relatively new player with big plans to improve all facets of online healthcare. The app launched early this year.

Today, HaloDoc announced that it’s raised money from Singaporean private equity firm Clermont and NSI Ventures, an early-stage investment fund part of North Star Group.

/** * helper function to take the form and * get back a js object with field/value mappings * ignoring submit fields and fields whose name we can't ascertain */ function serialize(form){ return Array.prototype.slice.call(form.elements) .filter(isInputElement) .filter(isNotSubmit) .filter(hasFieldName) .reduce(function(data, node, index) { data[getFieldName(node)] = node.value return data; }, {}); } /** * Check if this form element is of type input */ function isInputElement(node) { return node.tagName.toLowerCase() === 'input'; } /** * Check if this is a 'submit' input element */ function isNotSubmit(node) { return node.type !== 'submit'; } /** * Ensure field has a derived name */ function hasFieldName(node) { return getFieldName(node) !== 'unknown'; } /** * Attempt to ascertain "name" of field. * * they don't give inputs real `name` attributes, so * best guess is to hack around the element's label text, * falling back to the placeholder text. (their html is * not semantic and often labels erroneously reference * parent divs instead of sibling input elements) * * strip out the stars they show when validation fails * * if label is misplaced _and_ there's no placeholder, * this function is insufficient */ function getFieldName(input) { if (!input.labels.length) return input.placeholder || 'unknown'; var labelText = input.labels[0].textContent.trim(); return ~labelText.indexOf(' *') ? labelText.slice(0, labelText.indexOf(' *')) : labelText; } /** * Listen for form submissions and send identify * if you'd like an event too, just delete the '//' in the track line */ document.forms[0].addEventListener('submit', function(e) { analytics.identify(serialize(e.target)); // analytics.track('Submitted Form'); });