Se ha producido un error al procesar la plantilla.
Java method "com.sun.proxy.$Proxy484.getHospitalMedicos(long)" threw an exception when invoked on com.sun.proxy.$Proxy484 object "com.liferay.ph.service.impl.MedicoLocalServiceImpl@c0e60bc"; see cause exception in the Java stack trace. ---- FTL stack trace ("~" means nesting-related): - Failed at: #assign medicosHospital = medicoServi... [in template "20115#20151#PLANTILLA_ESPECIALIDAD" at line 46, column 5] ----
1<#-- ID del contenido actual -->
2<#assign journalArticleId = .vars['reserved-article-id'].data>
3
4<#--Se preparan las clases de utilidad -->
5<#assign journalArticleResourceLocalServiceUtil = staticUtil["com.liferay.journal.service.JournalArticleResourceLocalServiceUtil"]>
6<#assign assetCategoryLocalServiceUtil = staticUtil["com.liferay.asset.kernel.service.AssetCategoryLocalServiceUtil"]>
7<#assign hospitalService = serviceLocator.findService("com.liferay.ph.service.HospitalLocalService")>
8<#assign especialiadadService = serviceLocator.findService("com.liferay.ph.service.EspecialidadLocalService")>
9<#assign medicoService = serviceLocator.findService("com.liferay.ph.service.MedicoLocalService")>
10<#assign layoutLocalService = serviceLocator.findService("com.liferay.portal.kernel.service.LayoutLocalService")>
11<#assign journalArticleService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")/>
12<#assign localizationUtil = serviceLocator.findService("com.liferay.portal.kernel.util.LocalizationUtil")/>
13
14
15<#--Se obtienen las categorias del contenido, una de ellas es la del hospital al que pertenece el contenido especialidad -->
16<#assign articleResourcePK = journalArticleResourceLocalServiceUtil.getArticleResourcePrimKey(groupId, journalArticleId)/>
17<#assign categoryList=assetCategoryLocalServiceUtil.getCategories("com.liferay.journal.model.JournalArticle",articleResourcePK) >
18
19<#--Se recorrren las categorias buscando el objeto hospital de BBDD -->
20<#assign hospital = "">
21<#list categoryList as categoryList>
22 <#assign idCategoria = categoryList.getCategoryId() />
23
24 <#--Se busca el hospital -->
25 <#assign hospital = hospitalService.findHospitalByIdCategory(idCategoria)!"">
26 <#--si existe se deja de buscar -->
27 <#if hospital?has_content>
28 <#break>
29 </#if>
30</#list>
31
32<#--Se obtiene la Especialidad a partir de la URL SEO -->
33<#assign urlCompleta = themeDisplay.getLayout().getFriendlyURL()>
34
35<#assign especialidadSEO = "/" + urlCompleta?keep_after_last("/")>
36<#assign especialidadEnt = especialiadadService.findEspecialidadByIdUrlPagEspecialidad(especialidadSEO)!"">
37
38<#--Se obtiene la lista de medicos que ejercen la especialidad actual y estan en el hospital actual -->
39<#assign medicosEspecialidad = "" >
40<#assign medicosHospital = "" >
41<#assign medicosShow = [] >
42<#if especialidadEnt?has_content>
43 <#assign medicosEspecialidad = medicoService.getEspecialidadMedicos(especialidadEnt.idEspecialidad)!"">
44</#if>
45<#if hospital?has_content>
46 <#assign medicosHospital = medicoService.getHospitalMedicos(hospital.idHospital)!"">
47</#if>
48
49<#if medicosEspecialidad?has_content && medicosHospital?has_content>
50 <#list medicosEspecialidad as medicoE>
51 <#list medicosHospital as medicoH>
52 <#if medicoE.idMedico == medicoH.idMedico>
53 <#assign medicosShow = medicosShow + [medicoH]>
54 <#break>
55 </#if>
56 </#list>
57 </#list>
58</#if>
59
60<div class="container">
61 <!--Title-->
62 <h1 class="c-title u-mt2 u-mt4@lg u-mb2">
63 ${especialidad.getData()}
64 </h1>
65 <!--/.Title-->
66 <!--Grid-->
67 <div class="o-row">
68 <div class="o-col-12@xs o-col-9@lg u-d-block">
69 <section class="u-pb3 text-rich">
70 ${informacionEspecialidad.getData()!''}
71 </section>
72 <#if medicosShow?has_content>
73 <section class="u-pb3 u-pb4@lg">
74 <h2 class="c-title c-title--tertiary u-mb2">
75 ${languageUtil.get(locale, "ficha-especialidad-equipo-medico")}
76 </h2>
77 <!--Grid slider-->
78 <ul class="lightSlider-item" data-slide="3">
79 <#assign medUrl = "">
80 <#list medicosShow as medico>
81 <#--Se obtiene el contenido web del medico y el layout de la pagina detalle -->
82 <#assign pagMedico = layoutLocalService.getLayout(medico.idPagMedico?number)>
83 <#assign contMedico = journalArticleService.getLatestArticle(medico.idContenidoMedico)/>
84 <#assign docXml = saxReaderUtil.read(contMedico.getContent()) />
85 <#assign nombre = docXml.valueOf("//dynamic-element[@name='nombre']/dynamic-content/text()") />
86 <#assign especialidadTexto = docXml.valueOf("//dynamic-element[@name='Especialidad']/dynamic-content/text()") />
87 <#assign hospitalesTrabaja = hospitalService.getMedicoHospitals(medico.idMedico)!"">
88 <#assign imagen_listado = docXml.valueOf("//dynamic-element[@name='imagen']/dynamic-content/text()") />
89 <#if imagen_listado?? && imagen_listado!=''>
90 <#assign jsonImagen = jsonFactoryUtil.createJSONObject(imagen_listado)>
91 <#assign imagenMedico = "/documents/"+ jsonImagen.groupId +"/" +jsonImagen.fileEntryId +"/"+ jsonImagen.name +"/"+jsonImagen.uuid >
92 <#else>
93 <#assign imagenMedico = "" >
94 </#if>
95 <#if locale != "es_ES">
96 <#assign medUrl = "/"+locale.getLanguage() />
97 </#if>
98 <#assign medUrl = medUrl + pagMedico.getFriendlyURL(locale) />
99 <li>
100 <article>
101
102 <a href="${medUrl}" class="o-doctor c-doctor">
103 <div class="o-doctor c-doctor">
104 <figure class="o-doctor__image">
105 <#if imagenMedico?? && imagenMedico != "">
106 <img src="${imagenMedico}" alt="${nombre}" />
107 </#if>
108
109 <#if nombre != "">
110 <figcaption class="o-doctor__caption c-doctor__caption">
111 <span class="o-doctor__name c-doctor__name">
112 ${nombre}
113 </span>
114 </figcaption>
115 </#if>
116 </figure>
117 <div class="o-doctor__inner c-doctor__inner">
118 <h3 class="c-doctor__doctor">
119 ${nombre}
120 </h3>
121 <div class="o-doctor__info text-rich c-doctor__info">
122 <p>${especialidadTexto}</p>
123 <#if hospitalesTrabaja?has_content>
124 <ul>
125 <#list hospitalesTrabaja as h>
126 <li>${localizationUtil.getLocalization(h.nombre, locale)}</li>
127 </#list>
128 </ul>
129 </#if>
130 </div>
131 </div>
132 </div>
133 </a>
134
135 </article>
136 </li>
137 <#assign medUrl = "">
138 </#list>
139 </ul>
140 <!--/.Grid slider-->
141 </section>
142 </#if>
143
144 <#if tecnicas.nombreTecnica.getSiblings()?has_content && (tecnicas.nombreTecnica.getSiblings()[0]).getData()?? && (tecnicas.nombreTecnica.getSiblings()[0]).getData() != "">
145 <section class="u-pb5 u-pb4@lg">
146 <h2 class="c-title c-title--tertiary u-mb2">
147 ${tecnicas.getData()}
148 </h2>
149 <!--Accordion-->
150 <ul class="c-accordion">
151 <#list tecnicas.nombreTecnica.getSiblings() as cur_tecnicas_nombreTecnica>
152 <#if cur_tecnicas_nombreTecnica.getData()?has_content && cur_tecnicas_nombreTecnica.descripcionTecnica.getData()?has_content>
153 <li class="c-accordion__item">
154 <a class="o-accordion__link c-accordion__link js-open-accordion" aria-controls="content${cur_tecnicas_nombreTecnica?index}" aria-expanded="false">
155 ${cur_tecnicas_nombreTecnica.getData()}
156 <span class="c-accordion__arrow-space"></span>
157 <span class="o-accordion__arrow c-accordion__arrow"></span>
158 </a>
159 <div class="c-accordion__content js-content-accordion text-rich" id="content${cur_tecnicas_nombreTecnica?index}" aria-hidden="true" role="region">
160 ${cur_tecnicas_nombreTecnica.descripcionTecnica.getData()}
161 </div>
162 </li>
163 </#if>
164 </#list>
165 </ul>
166 <!--/.Accordion-->
167 </section>
168 </#if>
169
170
171 <#if nombreCita?has_content>
172 <#if nombreCita.idCita?has_content && nombreCita.idCita.getData()?has_content>
173 <#assign enlaceCita = "https://app.tuotempo.com/mop/index.php?dbName=" + nombreCita.getData() + "&activityid=" + nombreCita.idCita.getData() >
174
175 <button class="o-appointment-single c-appointment-single align-items-center u-mb3 border-0" onclick="displayIframe('${enlaceCita}')">
176 <i class="ibbc-icon-calendar c-appointment__icon mr-3"></i>
177 <div class="o-appointment-single__inner">
178 <span class="c-appointment-single__text">
179 Pedir Cita Online
180 </span>
181
182 </div>
183 </button>
184 <section class="container iframe-pide-cita-online" style='display: none;'>
185 <h2 class="c-title c-title--tertiary u-mb2">
186 ${languageUtil.get(locale, "pide-cita-online")}
187 </h2>
188 <div id='tuotempo'></div>
189 </section>
190
191 <!--Appointment single-->
192
193 </#if>
194
195 </#if>
196 </div>
197
198 <div class="o-col-12@xs o-col-3@lg u-d-block">
199 <aside>
200 <#if unidadesEspeciales.getData()?has_content &&
201 unidadesEspeciales.imagenUnidadEspecial.getData()?? &&
202 unidadesEspeciales.imagenUnidadEspecial.getData() != "" &&
203 unidadesEspeciales.nombreUnidadEspecial.getData()?has_content &&
204 unidadesEspeciales.enlaceUnidadEspecial.getFriendlyUrl()?has_content>
205
206 <#if unidadesEspeciales.getSiblings()?has_content>
207 <#list unidadesEspeciales.getSiblings() as cur_unidadesEspeciales>
208 <section class="u-pb5 u-pb4@lg">
209 <h2 class="c-title c-title--tertiary u-mb2">
210 ${cur_unidadesEspeciales.getData()}
211 </h2>
212 <!-- Repetible-->
213 <!--Card Specialty-->
214 <a href="${cur_unidadesEspeciales.enlaceUnidadEspecial.getFriendlyUrl()}" class="o-card-specialty c-card-specialty">
215 <!--Image-->
216 <div class="o-card-specialty__image c-card-specialty__image">
217 <img data-fileentryid="${cur_unidadesEspeciales.imagenUnidadEspecial.getAttribute("fileEntryId")}" alt="${cur_unidadesEspeciales.imagenUnidadEspecial.getAttribute("alt")}" src="${cur_unidadesEspeciales.imagenUnidadEspecial.getData()}" />
218 </div>
219 <!--/.Image-->
220 <!--Content-->
221 <div class="o-card-specialty__content c-card-specialty__content">
222 <!--Inner-->
223 <div class="o-card-specialty__inner">
224 <div class="o-card-specialty__inner-title">
225 <h3 class="c-card-specialty__title">
226 ${cur_unidadesEspeciales.nombreUnidadEspecial.getData()}
227 </h3>
228 </div>
229 <div class="o-card-specialty__inner-icon c-card-specialty__inner-icon">
230 <i class="ibbc-icon-arrow-right-large c-card-specialty__icon"></i>
231 </div>
232 </div>
233 <!--/.Inner-->
234 </div>
235 <!--/.Content-->
236 </a>
237 <!--/.Card Specialty-->
238 </section>
239 </#list>
240 </#if>
241
242 </#if>
243
244
245
246
247 <#if tituloSaberMas.textoEnlace.getSiblings()?has_content && tituloSaberMas.getData()?has_content && (tituloSaberMas.textoEnlace.getSiblings()[0]).getData()?? && (tituloSaberMas.textoEnlace.getSiblings()[0]).getData() != "">
248 <section class="u-pb4">
249 <h2 class="c-title c-title--tertiary u-mb2">
250 ${tituloSaberMas.getData()}
251 </h2>
252 <!--List links-->
253 <ul class="c-list-links">
254 <#list tituloSaberMas.textoEnlace.getSiblings() as cur_tituloSaberMas_textoEnlace>
255 <#if cur_tituloSaberMas_textoEnlace.getData() ?has_content && cur_tituloSaberMas_textoEnlace.urlSaberMas.getData()?has_content>
256 <li class="c-list-links__item">
257 <a href="${cur_tituloSaberMas_textoEnlace.urlSaberMas.getData()}" class="o-list-links__link c-list-links__link">
258 ${cur_tituloSaberMas_textoEnlace.getData()}
259 </a>
260 </li>
261 </#if>
262 </#list>
263 </ul>
264 <!--/.List links-->
265 </section>
266 </#if>
267 </aside>
268 </div>
269 </div>
270 <!--/.Grid-->
271</div>
272<script>
273
274
275 function displayIframe(url){
276
277 $('.iframe-pide-cita-online').show();
278
279 //Creamos iframe
280 var iframeTuotempo = document.createElement("iframe");
281 iframeTuotempo.id = "mop_iframe";
282 iframeTuotempo.name = "mop_iframe";
283 iframeTuotempo.frameBorder = 0;
284 iframeTuotempo.scrolling = "no";
285 iframeTuotempo.style.marginLeft = "0px";
286 iframeTuotempo.style.width = "100%";
287 iframeTuotempo.style.height = "inherit";
288 iframeTuotempo.style.border = "0px";
289 iframeTuotempo.allowTransparency = true;
290 iframeTuotempo.src = url;
291
292 // Creamos etiqueta script con la variable mop_source
293 var scriptMop = document.createElement("script");
294 scriptMop.setAttribute("type", "text/javascript");
295 // Creamos el contenido y lo agregamos el contenido al js
296 var contentMop = document.createTextNode('var mop_source = "'+url+'&dontLetMopIframeBecomeParentOnMobile=1"');
297 scriptMop.appendChild(contentMop);
298
299 //Creamos script para el loader de tuotempo
300 var scriptTuoTempo = document.createElement("script");
301 scriptTuoTempo.setAttribute("type", "text/javascript");
302 scriptTuoTempo.setAttribute("src", "https://app.tuotempo.com/js/mop_loader.js.php");
303
304 $('#tuotempo').html(iframeTuotempo);
305 $('#tuotempo').append(scriptMop);
306 $('#tuotempo').append(scriptTuoTempo);
307 }
308
309</script>
Especialidades relacionadas
Información general / Atención al Paciente
-
Teléfono: 900 101 798
-
Correo electrónico: atencionpaciente@hospitalesparque.es
Te interesa
Contáctanos
- Contacto Hospital Parque Tenerife
- Contacto Hospital Parque Vegas Altas
- Contacto Hospital Parque Fuerteventura
- Contacto Hospital Parque Vía de la Plata
- Contacto Centro Médico Parque Lanzarote
- Contacto Hospital Parque Llevant
- Contacto Centro Médico Láserclinic Manacor
- Contacto Hospital Parque Marazuela
- Contacto Hospital Parque San Francisco