{"id":745,"date":"2026-04-28T01:39:13","date_gmt":"2026-04-28T05:39:13","guid":{"rendered":"https:\/\/atacamas.cl\/atc\/?page_id=745"},"modified":"2026-04-28T23:48:34","modified_gmt":"2026-04-29T03:48:34","slug":"farmacia-de-turno","status":"publish","type":"page","link":"https:\/\/atacamas.cl\/atc\/farmacia-de-turno\/","title":{"rendered":"Farmacia de Turno"},"content":{"rendered":"    <div id=\"farmacias-turno\">\n        <h3>Farmacias - Region de Atacama<\/h3>\n        <div style=\"display:flex;gap:10px;flex-wrap:wrap;margin-bottom:15px;\">\n            <select id=\"tipo-selector\">\n                <option value=\"1\">Farmacia de Turno<\/option>\n                <option value=\"3\">24 Horas<\/option>\n                <option value=\"2\">Urgencia<\/option>\n                <option value=\"0\">Todas<\/option>\n            <\/select>\n            <select id=\"comuna-selector\">\n                <option value=\"\">Todas las comunas<\/option>\n                <option value=\"21\">Copiapo<\/option>\n                <option value=\"22\">Caldera<\/option>\n                <option value=\"23\">Tierra Amarilla<\/option>\n                <option value=\"24\">Chanaral<\/option>\n                <option value=\"25\">Diego de Almagro<\/option>\n                <option value=\"26\">Vallenar<\/option>\n                <option value=\"28\">Freirina<\/option>\n                <option value=\"29\">Huasco<\/option>\n                <option value=\"502\">Alto del Carmen<\/option>\n            <\/select>\n            <button id=\"buscar-farmacias\" style=\"padding:5px 15px;background:#005f8e;color:white;border:none;cursor:pointer;border-radius:4px;\">Buscar<\/button>\n        <\/div>\n        <div id=\"farmacias-resultado\">Selecciona los filtros y haz click en Buscar.<\/div>\n    <\/div>\n    <script>\n    var comunasMap = {\"21\":\"Copiapo\",\"22\":\"Caldera\",\"23\":\"Tierra Amarilla\",\"24\":\"Chanaral\",\"25\":\"Diego de Almagro\",\"26\":\"Vallenar\",\"28\":\"Freirina\",\"29\":\"Huasco\",\"502\":\"Alto del Carmen\"};\n    var tiposMap = {\"1\":\"Turno\",\"2\":\"Urgencia\",\"3\":\"24 Horas\",\"5\":\"Farmacia\",\"6\":\"Almacen\"};\n\n    function capWords(str) {\n        return str.split(\" \").map(function(w){ return w.charAt(0).toUpperCase()+w.slice(1).toLowerCase(); }).join(\" \");\n    }\n\n    function procesarLotes(items, fecha, hora, comuna, tipo, callback) {\n        var chunks = [];\n        for (var i=0; i<items.length; i+=10) chunks.push(items.slice(i,i+10));\n        var todos = [];\n        function siguiente(idx) {\n            if (idx >= chunks.length) { callback(todos); return; }\n            Promise.all(chunks[idx].map(function(f) {\n                return fetch(\"\/atc\/farmacias-proxy.php\", {\n                    method: \"POST\",\n                    headers: {\"Content-Type\": \"application\/x-www-form-urlencoded\"},\n                    body: \"func=local&im=\"+f.im+\"&fecha=\"+fecha+\"&hora=\"+hora\n                }).then(function(r){ return r.json(); });\n            })).then(function(res){ todos = todos.concat(res); siguiente(idx+1); });\n        }\n        siguiente(0);\n    }\n\n    document.getElementById(\"buscar-farmacias\").addEventListener(\"click\", function() {\n        var tipo = document.getElementById(\"tipo-selector\").value;\n        var comuna = document.getElementById(\"comuna-selector\").value;\n        document.getElementById(\"farmacias-resultado\").innerHTML = \"Cargando...\";\n        var now = new Date();\n        var fecha = now.getFullYear()+\"-\"+String(now.getMonth()+1).padStart(2,\"0\")+\"-\"+String(now.getDate()).padStart(2,\"0\");\n        var hora = String(now.getHours()).padStart(2,\"0\")+\":\"+String(now.getMinutes()).padStart(2,\"0\")+\":\"+String(now.getSeconds()).padStart(2,\"0\");\n        var dias = [\"Domingo\",\"Lunes\",\"Martes\",\"Miercoles\",\"Jueves\",\"Viernes\",\"Sabado\"];\n        var meses = [\"Enero\",\"Febrero\",\"Marzo\",\"Abril\",\"Mayo\",\"Junio\",\"Julio\",\"Agosto\",\"Septiembre\",\"Octubre\",\"Noviembre\",\"Diciembre\"];\n        var fechaStr = dias[now.getDay()]+\" \"+now.getDate()+\" de \"+meses[now.getMonth()]+\" \"+now.getFullYear();\n\n        fetch(\"\/atc\/farmacias-proxy.php\", {\n            method: \"POST\",\n            headers: {\"Content-Type\": \"application\/x-www-form-urlencoded\"},\n            body: \"func=region&region=3&filtro=todos&fecha=\"+fecha+\"&hora=\"+hora\n        })\n        .then(function(r){ return r.json(); })\n        .then(function(data) {\n            var locales = data.respuesta.locales;\n            if (tipo !== \"0\") locales = locales.filter(function(f){ return f.tp == tipo; });\n            if (comuna) locales = locales.filter(function(f){\n                return true;\n            });\n            if (!locales.length) {\n                document.getElementById(\"farmacias-resultado\").innerHTML = \"<p>No se encontraron farmacias.<\/p>\";\n                return;\n            }\n            procesarLotes(locales, fecha, hora, comuna, tipo, function(detalles) {\n                var filtrados = detalles.filter(function(d){ return d.correcto; });\n                if (comuna) filtrados = filtrados.filter(function(d){ return d.respuesta.local.cm == comuna; });\n                if (!filtrados.length) {\n                    document.getElementById(\"farmacias-resultado\").innerHTML = \"<p>No se encontraron farmacias.<\/p>\";\n                    return;\n                }\n                var html = \"<p style='color:#666;font-size:13px;'>Datos MINSAL FARMANET - \"+fechaStr+\"<\/p>\";\n                html += \"<ul style='list-style:none;padding:0;'>\";\n                filtrados.forEach(function(d) {\n                    var l = d.respuesta.local;\n                    var h = d.respuesta.horario;\n                    var tp = locales.find(function(f){ return f.im == l.im; });\n                    var badge = tp ? (tiposMap[tp.tp] || \"\") : \"\";\n                    html += \"<li style='border:1px solid #ddd;padding:10px;margin-bottom:10px;border-radius:4px;'>\"+\n                            \"<strong>\"+capWords(l.nm)+\"<\/strong> <span style='color:#005f8e;'>[\"+badge+\"]<\/span><br>\"+\n                            capWords(l.dr)+\", \"+(comunasMap[l.cm]||\"\")+\"<br>\"+\n                            \"Tel: \"+l.tl+\"<br>\"+\n                            \"<small>\"+h.dia+\"<\/small><\/li>\";\n                });\n                html += \"<\/ul>\";\n                document.getElementById(\"farmacias-resultado\").innerHTML = html;\n            });\n        })\n        .catch(function(){ document.getElementById(\"farmacias-resultado\").innerHTML = \"Error al cargar datos.\"; });\n    });\n    <\/script>\n    \n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-745","page","type-page","status-publish","hentry"],"acf":[],"_links":{"self":[{"href":"https:\/\/atacamas.cl\/atc\/wp-json\/wp\/v2\/pages\/745","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/atacamas.cl\/atc\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/atacamas.cl\/atc\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/atacamas.cl\/atc\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/atacamas.cl\/atc\/wp-json\/wp\/v2\/comments?post=745"}],"version-history":[{"count":0,"href":"https:\/\/atacamas.cl\/atc\/wp-json\/wp\/v2\/pages\/745\/revisions"}],"wp:attachment":[{"href":"https:\/\/atacamas.cl\/atc\/wp-json\/wp\/v2\/media?parent=745"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}