A NotreDame Intermédica oferece uma extensa rede de atendimento para a gestão integral à saúde de seus Clientes. Nossa Rede Própria possui 87 hospitais, 77 prontos-socorros autônomos, 339 centros clínicos, 293 unidades de diagnóstico por imagem e pontos de coleta de análises clínicas, 17 Unidades de Medicina Preventiva e 3 Centros de Saúde exclusivamente para beneficiários 50+. Temos pronto-socorro e maternidade em São Paulo, além de unidades de pronto-socorro em Barueri e Osasco, e em muitas outras localidades da Grande São Paulo e interior de São Paulo, além do Rio de Janeiro.
As Unidades da Rede Própria possuem diferentes certificações, tanto nossos hospitais em São Paulo quanto no interior de São Paulo, inclusive temos hospital com maternidade reconhecidamente qualificada. São elas: a acreditação internacional Qmentum; a ONA (Organização Nacional de Acreditação) - Níveis 1 a 3; a CQH (Controle de Qualidade Hospitalar); a ISO 14.001, que regulamenta as relações com o meio ambiente; e a ISO 9001:2008, de gestão e garantia da qualidade.
Java method "jdk.proxy72.$Proxy746.getLatestArticle(long)" threw an exception when invoked on jdk.proxy72.$Proxy746 object "br.com.gndi.institucional.custom.content.CustomJournalArticleLocalServiceWrapper@7d5dc56d"; see cause exception in the Java stack trace.
----
FTL stack trace ("~" means nesting-related):
- Failed at: #assign article = journalArticleLocal... [in template "20097#20123#5835516" at line 117, column 13]
----
1<link href="https://cdn.jsdelivr.net/npm/select2@4.0.13/dist/css/select2.min.css" rel="stylesheet" />
2<script src="https://cdn.jsdelivr.net/npm/select2@4.0.13/dist/js/select2.min.js"></script>
3<#assign aui = PortletJspTagLibs["/META-INF/liferay-aui.tld"] />
4<#if themeDisplay??>
5 <#assign urlAtual = themeDisplay.getURLCurrent() />
6</#if>
7<#if entries?has_content>
8 <div class="container">
9 <div class="hosp_mater">
10 <#assign
11 assetVocabularyLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetVocabularyLocalService")
12 vocabularies = assetVocabularyLocalService.getGroupVocabularies(themeDisplay.getScopeGroupId())?sequence
13 >
14
15 <#list vocabularies as vocabulary>
16 <#if (vocabulary.name == "unidades")>
17 <#assign vocabularyUnidadadesId = vocabulary.vocabularyId>
18 </#if>
19 <#if (vocabulary.name == "regioes")>
20 <#assign vocabularyRegioesId = vocabulary.vocabularyId>
21 </#if>
22 </#list>
23
24 <#assign
25 assetCategoryLocalService = serviceLocator.findService("com.liferay.asset.kernel.service.AssetCategoryLocalService")
26 categoriesUnidades = assetCategoryLocalService.getVocabularyCategories(vocabularyUnidadadesId, -1, -1, null)
27 categoriesRegioes = assetCategoryLocalService.getVocabularyCategories(vocabularyRegioesId, -1, -1, null)
28 >
29
30 <div class="row">
31
32 <div class="col-lg-6 col-12 camposelect">
33 <select class="form-control" aria-label="Default select example" name="unidade" id="unidade">
34 <option value="0">Selecione uma unidade</option>
35 <#if !urlAtual?contains("embedded")>
36 <#if categoriesUnidades?has_content>
37 <#list categoriesUnidades as categoryName>
38 <#assign categoriaNome = ''+categoryName.getName()
39 categoriaId = ''+categoryName.getCategoryId()
40 >
41 <#if categoriaNome != "Rede Integrada">
42 <option value="${categoriaId}">${categoriaNome}</option>
43 </#if>
44 </#list>
45 </#if>
46 <#else>
47 <#if categoriesUnidades?has_content>
48 <#list categoriesUnidades as categoryName>
49 <#assign categoriaNome = ''+categoryName.getName()
50 categoriaId = ''+categoryName.getCategoryId()
51 >
52 <option value="${categoriaId}">${categoriaNome}</option>
53 </#list>
54 </#if>
55 </#if>
56 </select>
57 </div>
58
59 <div class="col-lg-6 col-12 camposelect">
60 <select class="form-control" aria-label="Default select example "name="regiao" id="regiao">
61 <option value="0">Selecione uma região</option>
62 <#if categoriesRegioes?has_content>
63 <#list categoriesRegioes as categoryName>
64 <#assign categoriaNome = categoryName.getName()
65 categoriaId = categoryName.getCategoryId()
66 >
67 <option value="${categoriaId}">${categoriaNome}</option>
68 </#list>
69 </#if>
70 </select>
71 </div>
72 <article class="hosp_mater_section cpl-lg-12 col-12">
73 <h2 id="nameOfUnit">Nossas Unidades</h2>
74 </article>
75
76 <div class="col-lg-6 col-12 control_cards_hosp">
77 <div id="modelo_hosp" class="">
78 <div class="card control_cards_hosp_father">
79 <div class="lista_hosp" id="atualizacao-lista-hosp">
80 <div class="card-body">
81 <#if urlAtual?contains("embedded")>
82 <a href="_LINK_?embedded=true" data-senna-off="true">
83 <#else>
84 <a href="_LINK_" data-senna-off="true">
85 </#if>
86 <h3 class="">_NOME_UNIDADE_</h3>
87 <span>
88 <svg id="direita" xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20">
89 <g id="Grupo_1585" data-name="Grupo 1585" transform="translate(0 20) rotate(-90)">
90 <rect id="Retângulo_356" data-name="Retângulo 356" width="20" height="20" fill="none"/>
91 <path id="Caminho_382" data-name="Caminho 382" d="M0,7,6.737,0,13,7" transform="translate(16.5 14.5) rotate(180)" fill="none" stroke="#ec6e0c" stroke-linecap="round" stroke-linejoin="round" stroke-width="1.5"/>
92 </g>
93 </svg>
94 </span>
95 <p class="">_ENDERECO_UNIDADE_<br>_ENDERECO_UNIDADE_COMPLEMENTO_</p>
96 </a>
97 <p><a data-toggle="modal" data-target="#myModal" href="#">Confira aqui</a> os direitos e deveres dos pacientes e acompanhantes.</p>
98 </div>
99 </div>
100 </div>
101 </div>
102 </div>
103
104 <div class="col-lg-6 col-12 map">
105 <!-- imagem do mapa do google-->
106 <div id="map" style="width: 100%; height: 480px"></div>
107 </div>
108 </div>
109 </div>
110 </div>
111
112
113
114 <!-- Modal -->
115 <#assign journalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")>
116 <#assign resourcePrimKey = 1432785 >
117 <#assign article = journalArticleLocalService.getLatestArticle(resourcePrimKey)>
118
119 <#assign
120 docXml = saxReaderUtil.read(article.getContent())
121 title = docXml.valueOf("//dynamic-element[@name='Título']/dynamic-content/text()")
122 content = docXml.valueOf("//dynamic-element[@name='TextoComLink1qr7']/dynamic-content/text()")>
123 <div style="display: none;" class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
124 <div class="modal-dialog modal-dialog-centered" role="document">
125 <div class="modal-content">
126 <div class="modal-header">
127 <h4 class="modal-title" id="myModalLabel">${title}</h4>
128 <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
129 </div>
130 <div class="modal-body">
131 ${content}
132 </div>
133 <div class="modal-footer">
134 <button type="button" class="btn btn-primary2" data-dismiss="modal">Fechar</button>
135 </div>
136 </div><!-- /.modal-content -->
137 </div><!-- /.modal-dialog -->
138 </div><!-- /.modal -->
139
140</div>
141</#if>
142<!-- chave GNDI AIzaSyCrEDDVA3j6TTyFquaklGemB6l0ki2hyHI -->
143<script
144 async
145 defer
146 src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAQnL23eGYWlJvrtNcZCSrj_h97bs-iL8A&libraries=geometry&callback=initMap"
147 type="text/javascript"
148></script>
149
150<script>
151 var posicaoUsuario;
152 var bounds;
153 var marcadores = [];
154 var quadrantes = [];
155
156 if (navigator.geolocation) {
157 // Solicitar a permissão do usuário e obter a localização atual
158 navigator.geolocation.getCurrentPosition(function(position) {
159 // Armazenar a posição do usuário globalmente
160 posicaoUsuario = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
161 });
162 }
163
164 //inicializa o array para unidades
165 //var units=[];
166 var units = [
167 {
168 name: 'Unidade 1',
169 latitude: -23.5226787,
170 longitude: -46.8397149
171 }
172 ]
173
174 //Criar o mapa
175 function initMap() {
176 var map = new google.maps.Map(document.getElementById('map'), {
177 center: {lat: parseInt(units[0].latitude), lng: parseInt(units[0].longitude)},
178 zoom:10,
179 styles: [
180 {
181 featureType: 'all',
182 elementType: 'all',
183 stylers: [
184 {
185 border: '2px solid #ec6e0c'
186 }
187 ]
188 }
189 ]
190 });
191
192 bounds = new google.maps.LatLngBounds();
193
194 if(units.length>1){
195
196 units.forEach(function(unit) {
197 if(unit.latitude!="" || unit.longitude!=""){
198 var position = new google.maps.LatLng(parseFloat(unit.latitude), parseFloat(unit.longitude));
199 var marker = new google.maps.Marker({
200 position: position,
201 map: map,
202 title: unit.name,
203 icon: '/documents/5787792/5809006/marker.svg/18f5c545-892a-ed02-17b0-40240e326c99?version=1.0&t=1680253884022&imagePreview=1'
204 });
205
206 bounds.extend(marker.getPosition());
207 }
208
209 });
210
211 var center = bounds.getCenter();
212 // Verificar se o navegador suporta geolocalização
213 if (typeof posicaoUsuario === 'undefined' || posicaoUsuario === null) {
214
215 posicaoUsuario = center;
216 }
217 // Calcula a distância entre o marcador e a posição do usuário
218 var distance = google.maps.geometry.spherical.computeDistanceBetween(bounds.getCenter(), posicaoUsuario);
219 // Define o nível de zoom mínimo com base na distância calculada
220 var zoom = 10; // zoom mínimo padrão
221 if (distance < 5000) { // se a distância for menor que 5000 metros, aumente o zoom mínimo
222 zoom = 12;
223 }
224 map.setZoom(Math.max(zoom, 12));
225 map.setCenter(posicaoUsuario);
226 map.fitBounds(bounds);
227
228 } else{
229 var marker = new google.maps.Marker({
230 position: {lat: parseInt(units[0].latitude), lng: parseInt(units[0].longitude)},
231 map: map,
232 icon: '/documents/5787792/5809006/marker.svg'
233 });
234 zoom=5;
235 posicaocenter = {lat: parseInt(units[0].latitude), lng: parseInt(units[0].longitude)};
236 map.setZoom(zoom);
237 map.setCenter(posicaocenter);
238 }
239}
240
241 function isDmsCoordinate(str) {
242 var validos = ["S", "W", "N", "E"];
243 var caracteres = str.split("");
244 var resultado = false;
245 caracteres.forEach(function(caractere) {
246 if (validos.includes(caractere)) {
247 resultado = true;
248 }
249 });
250 return resultado;
251 }
252
253 function dmsToDecimal(dms) {
254 var parts = dms.split(/°|'|"| /);
255
256 var degrees = parseFloat(parts[0]);
257 var minutes = parseFloat(parts[1]);
258 var seconds = parseFloat(parts[2]);
259
260 var decimal = degrees + (minutes / 60) + (seconds / 3600);
261
262 if (parts[3] === 'S' || parts[3] === 'W') {
263 decimal *= -1;
264 }
265
266 return decimal.toString();
267 }
268
269 function addunit(nameunit,latitudeunit,longitudeunit){
270 latitudeunit = isDmsCoordinate(latitudeunit)?dmsToDecimal(latitudeunit):latitudeunit;
271 longitudeunit = isDmsCoordinate(longitudeunit)?dmsToDecimal(longitudeunit):longitudeunit;
272 var unit = {
273 name: nameunit,
274 latitude: latitudeunit,
275 longitude: longitudeunit
276 };
277
278 units.push(unit);
279 }
280</script>
281
282<script>
283$(document).ready(function() {
284 let selectUnidade = $('#unidade');
285 let selectRegiao = $('#regiao');
286 let selectUnidadeWrapper = $('.input-select-wrapper.select-campo.unidade');
287 let selectRegiaoWrapper = $('.input-select-wrapper.select-campo.regiao');
288 let listaHosp = $("#atualizacao-lista-hosp");
289 let modeloHospAtualizado = $("#modelo_hosp .card-body");
290 let numeros='12345';
291
292
293 var unidadeSelecionada = selectUnidade.val();
294 var regiaoSelecionada = selectRegiao.val();
295
296 listaHosp.empty();
297
298
299 selectUnidade.on("change", function() {
300 var selectElement = document.getElementById("nameOfUnit");
301 if (selectUnidade.val()!=0){
302 var selectText = selectUnidade[0].selectedOptions[0].textContent;
303
304 } else{
305 var selectText = "Nossas Unidades";
306 }
307 selectElement.innerHTML = selectText;
308 unidadeSelecionada = selectUnidade.val();
309 listaHosp.empty();
310 exibirUnidades();
311
312
313 });
314
315 selectRegiao.on("change", function() {
316
317 regiaoSelecionada = selectRegiao.val();
318 listaHosp.empty();
319 exibirUnidades();
320
321
322
323 });
324
325
326 function exibirUnidades() {
327 units.length = 0;
328 <#list entries as curEntry>
329
330 <#assign
331 assetRenderer = curEntry.getAssetRenderer()
332 serviceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()
333 dlAppLocalServiceUtil = staticUtil["com.liferay.document.library.kernel.service.DLAppLocalServiceUtil"]
334 dlUtil = staticUtil["com.liferay.document.library.kernel.util.DLUtil"]
335 themeDisplay = serviceContext.getThemeDisplay()
336 link = assetRenderer.getURLViewInContext(renderRequest, renderResponse, '')
337 docXml = saxReaderUtil.read(assetRenderer.getArticle().getContent())>
338
339 <#assign
340 nomeUnidade = docXml.valueOf("//dynamic-element[@name='NomedaUnidade']/dynamic-content/text()")
341 enderecoUnidade = docXml.valueOf("//dynamic-element[@name='EnderecoDaUnidade']/dynamic-content/text()")
342 enderecoUnidadeComplemento = docXml.valueOf("//dynamic-element[@name='ComplementoDaLocalizacaoDoCliente']/dynamic-content/text()")
343 latitudeDaUnidadezaeq = docXml.valueOf("//dynamic-element[@name='LatitudeDaUnidadezaeq']/dynamic-content/text()")
344 longitudeDaUnidade1gix = docXml.valueOf("//dynamic-element[@name='LongitudeDaUnidade1gix']/dynamic-content/text()")
345 >
346
347 <#assign originalLocale = locale>
348 <#setting locale = 'pt_BR'>
349
350 var nome="${nomeUnidade}";
351 var end="${enderecoUnidade}";
352 var endComp="${enderecoUnidadeComplemento}";
353
354 // link da página de detalhes
355 var link=removeWFromURL("${link}")
356
357 // cria array para o mapa - dados das unidade
358 var unitlat = "${latitudeDaUnidadezaeq?replace('"', '\\"')?replace("'", "\\'")}";
359 var unitlog = "${longitudeDaUnidade1gix?replace('"', '\\"')?replace("'", "\\'")}";
360
361 var adicionarFlag = 0;
362
363 if (unidadeSelecionada == '0' && regiaoSelecionada == '0') {
364 adicionarFlag = 1;
365 } else if (regiaoSelecionada > '0' && unidadeSelecionada > 0) {
366 <#assign categories = assetCategoryLocalService.getCategories(curEntry.classNameId,curEntry.classPK)>
367 <#if categories?has_content>
368 <#list categories as categoryName>
369
370 var categoryId = ${categoryName.getCategoryId()};
371
372 if (categoryId == regiaoSelecionada) {
373 adicionarFlag = 1;
374 }
375 </#list>
376 if( adicionarFlag == 1){
377 adicionarFlag = 0
378 <#list categories as categoryName>
379 var categoryId = ${categoryName.getCategoryId()};
380 if (categoryId == unidadeSelecionada){
381 adicionarFlag = 1;
382 }
383 </#list>
384 }
385 </#if>
386 } else {
387 <#assign categories = assetCategoryLocalService.getCategories(curEntry.classNameId,curEntry.classPK)>
388 if (unidadeSelecionada > '0') {
389 <#if categories?has_content>
390 <#list categories as categoryName>
391
392 var categoryId = ${categoryName.getCategoryId()};
393
394 if (categoryId == unidadeSelecionada) {
395 adicionarFlag = 1;
396 }
397
398 </#list>
399
400 </#if>
401 }
402
403 if (regiaoSelecionada > '0') {
404 adicionarFlag = 0;
405 <#if categories?has_content>
406 <#list categories as categoryName>
407
408 var categoryId = ${categoryName.getCategoryId()};
409
410 if (categoryId == regiaoSelecionada) {
411 adicionarFlag = 1;
412 }
413 </#list>
414 </#if>
415 }
416 }
417 if (adicionarFlag == 1) {
418 adicionarUnidade(nome, end, endComp,link);
419 //adiciona uma unidade ao vetor
420 addunit(nome,unitlat,unitlog);
421 }
422 </#list>
423 initMap();
424
425 }
426
427 function adicionarUnidade(nome, endereco, complemento,linkdocard) {
428
429 let modelo = modeloHospAtualizado.clone();
430 let htmlModelo = modelo.html();
431
432 htmlModelo = htmlModelo
433 .replace('_NOME_UNIDADE_', nome)
434 .replace('_ENDERECO_UNIDADE_',endereco)
435 .replace('_ENDERECO_UNIDADE_COMPLEMENTO_',complemento)
436 .replace('_LINK_',linkdocard);
437
438 modelo.html(htmlModelo);
439 modelo.appendTo(listaHosp);
440
441 }
442
443 function removeWFromURL(url){
444
445 if (!url.includes("/w/")) {
446 return url
447 }
448
449 return url.replace("/w/", "/")
450 }
451
452 exibirUnidades();
453 event.preventDefault();
454 $('#myModal').modal('toggle');
455});
456
457</script>
458
459<style>
460.card{
461 border: none;
462}
463.card-body{
464 border: 1px solid rgba(0,0,0,0.125);
465 margin-bottom: 15px;
466}
467.hosp_mater {
468 margin-bottom: 30px;
469 #modelo_hosp {
470 /*display: none;*/
471 }
472}
473
474.map svg{
475 overflow: visible !important;
476}
477/*contraste-body ajuste do mapa para alto contrate*/
478html .contraste-body #map img {
479 filter: saturate(5) grayscale(1) invert(1);
480}
481html .contraste-body div#map,
482html .contraste-body #map div {
483 background-color: transparent !important;
484}
485html .contraste-body #map img {
486 background-color: transparent !important;
487}
488
489.hosp_mater select{
490 border: 1px solid #5B5B5F66;
491 background-color: #fff !important;
492 height: 44px;
493 border-radius: 8px;
494 color: #5B5B5F
495}
496
497.control_cards_hosp_father a{
498 text-decoration: none;
499 color: #EC6E0C;
500}
501
502.hosp_mater .camposelect{
503 margin-bottom: 60px;
504}
505
506.control_cards_hosp {
507 max-height: 500px;
508 overflow-y: scroll;
509}
510
511.hosp_mater_section h2{
512 font-size: 24px;
513 font-family: "oxygen-bold";
514 text-align: left;
515 margin: 40px 17px 40px;
516 font-weight: bold;
517}
518
519.control_cards_hosp_father{
520 margin-top: 10px;
521 border-radius: 8px;
522 /*border: 1px solid #dbdbdd;
523 box-shadow: rgba(149, 157, 165, 0.2) 0px 8px 24px;*/
524 background-color: white;
525}
526.control_cards_hosp_father h3{
527 font-size: 18px;
528 font-family: "oxygen-bold";
529 color: #EC6E0C;
530 text-align: left;
531 padding-right: 10px;
532 font-weight: bold;
533}
534.control_cards_hosp_father span{
535 position: absolute;
536 right: 0;
537 margin-right: 40px;
538 margin-top: -7px;
539}
540.control_cards_hosp_father p{
541 font-size: 14px;
542 font-family: "oxygen-regular";
543 color: #5B5B5F;
544 text-align: left;
545 padding-top: 15px;
546 font-weight: 400;
547}
548.map{
549 margin-top: 10px;
550
551}
552
553
554@media (max-width:768px){
555 .control_cards_hosp_father p{
556 padding-right: 40px;
557 }
558}
559
560@media(max-width: 991px){
561 .hosp_mater .camposelect{
562 margin-bottom: 20px;
563}
564}
565
566@media (min-width: 576px) {
567 .modal-dialog {
568 max-width: 800px;
569 }
570}
571
572.modal-dialog {
573 position: relative !important;
574 width: auto;
575}
576
577.modal {
578 position: fixed;
579 top: 0;
580 left: 0;
581 z-index: 1050;
582 display: none;
583 width: 100%;
584 height: 100%;
585 overflow: hidden;
586 outline: 0;
587}
588
589.modal-content {
590 position: relative;
591 display: flex;
592 flex-direction: column;
593 width: 800px;
594 height: 623px;
595 pointer-events: auto;
596 background-color: #FFF;
597 background-clip: padding-box;
598 border: 1px solid rgba(0,0,0,0.2);
599 border-radius: 0.3rem;
600 outline: 0;
601}
602
603.btn-primary2 {
604 background-color: #EC6E0C;
605 outline: 1px solid #EC6E0C;
606 border: 1px solid #EC6E0C;
607 border-radius: 8px;
608 color: #fff;
609 min-width: 176px;
610 height: 44px;
611 font-size: 17px;
612 font-weight: 700;
613}
614
615
616.btn-primary2:hover {
617 background-color: #EC6E0C;
618 outline: 1px solid #EC6E0C;
619 border: 1px solid #EC6E0C;
620 border-radius: 8px;
621 color: #fff;
622 min-width: 176px;
623 height: 44px;
624 font-size: 17px;
625 font-weight: 700;
626}
627
628</style>

