Java tutorial
/* * Copyright (C) 2016 Dominion Global * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ package com.dominion.salud.mpr.negocio.service.acuerdos.impl; import ca.uhn.hl7v2.HL7Exception; import ca.uhn.hl7v2.model.v25.segment.MSH; import ca.uhn.hl7v2.util.idgenerator.NanoTimeGenerator; import com.dominion.salud.mpr.hl7.v25.datatype.ZCE; import com.dominion.salud.mpr.hl7.v25.group.ZFN_M13_ACUERDO; import com.dominion.salud.mpr.hl7.v25.group.ZFN_M13_EVALUACIONES; import com.dominion.salud.mpr.hl7.v25.message.ZFN_M13; import com.dominion.salud.mpr.hl7.v25.segment.ZFA; import com.dominion.salud.mpr.hl7.v25.segment.ZFE; import com.dominion.salud.mpr.hl7.v25.segment.ZGA; import com.dominion.salud.mpr.hl7.v25.segment.ZGE; import com.dominion.salud.mpr.negocio.entities.acuerdos.AcuCentros; import com.dominion.salud.mpr.negocio.entities.acuerdos.AcuDiagnosticos; import com.dominion.salud.mpr.negocio.entities.acuerdos.AcuEdades; import com.dominion.salud.mpr.negocio.entities.acuerdos.AcuIndicaciones; import com.dominion.salud.mpr.negocio.entities.acuerdos.AcuLineasTrat; import com.dominion.salud.mpr.negocio.entities.acuerdos.AcuMarcaBio; import com.dominion.salud.mpr.negocio.entities.acuerdos.AcuMarcas; import com.dominion.salud.mpr.negocio.entities.acuerdos.AcuPesos; import com.dominion.salud.mpr.negocio.entities.acuerdos.AcuProgramas; import com.dominion.salud.mpr.negocio.entities.acuerdos.AcuRazonFin; import com.dominion.salud.mpr.negocio.entities.acuerdos.AcuSitClinica; import com.dominion.salud.mpr.negocio.entities.acuerdos.AcuValMarcaBio; import com.dominion.salud.mpr.negocio.entities.acuerdos.AcuValSitClinica; import com.dominion.salud.mpr.negocio.entities.acuerdos.Acuerdos; import com.dominion.salud.mpr.negocio.entities.equivalencias.EvalDatosExt; import com.dominion.salud.mpr.negocio.entities.equivalencias.EvalMedidasExt; import com.dominion.salud.mpr.negocio.entities.equivalencias.EvalValDatosExt; import com.dominion.salud.mpr.negocio.entities.equivalencias.EvalValFaculExt; import com.dominion.salud.mpr.negocio.entities.equivalencias.IndicacionesExt; import com.dominion.salud.mpr.negocio.entities.equivalencias.LineasTratExt; import com.dominion.salud.mpr.negocio.entities.equivalencias.MarcaBioExt; import com.dominion.salud.mpr.negocio.entities.equivalencias.ProgramasExt; import com.dominion.salud.mpr.negocio.entities.equivalencias.RazonFinExt; import com.dominion.salud.mpr.negocio.entities.equivalencias.SexosExt; import com.dominion.salud.mpr.negocio.entities.equivalencias.SitClinicaExt; import com.dominion.salud.mpr.negocio.entities.equivalencias.ValMarcaBioExt; import com.dominion.salud.mpr.negocio.entities.equivalencias.ValSitClinicaExt; import com.dominion.salud.mpr.negocio.entities.evaluaciones.AcuEvalDatos; import com.dominion.salud.mpr.negocio.entities.evaluaciones.AcuEvalFacul; import com.dominion.salud.mpr.negocio.entities.evaluaciones.AcuEvalValDatos; import com.dominion.salud.mpr.negocio.entities.evaluaciones.AcuEvaluaciones; import com.dominion.salud.mpr.negocio.entities.integracion.BuzonErrores; import com.dominion.salud.mpr.negocio.entities.integracion.BuzonOut; import com.dominion.salud.mpr.negocio.repositories.acuerdos.AcuCentrosRepository; import com.dominion.salud.mpr.negocio.service.acuerdos.AcuCentrosService; import com.dominion.salud.mpr.negocio.service.equivalencias.EvalDatosExtService; import com.dominion.salud.mpr.negocio.service.equivalencias.EvalMedidasExtService; import com.dominion.salud.mpr.negocio.service.equivalencias.EvalValDatosExtService; import com.dominion.salud.mpr.negocio.service.equivalencias.EvalValFaculExtService; import com.dominion.salud.mpr.negocio.service.equivalencias.IndicacionesExtService; import com.dominion.salud.mpr.negocio.service.equivalencias.LineasTratExtService; import com.dominion.salud.mpr.negocio.service.equivalencias.MarcaBioExtService; import com.dominion.salud.mpr.negocio.service.equivalencias.ProgramasExtService; import com.dominion.salud.mpr.negocio.service.equivalencias.RazonFinExtService; import com.dominion.salud.mpr.negocio.service.equivalencias.SexosExtService; import com.dominion.salud.mpr.negocio.service.equivalencias.SitClinicaExtService; import com.dominion.salud.mpr.negocio.service.equivalencias.ValMarcaBioExtService; import com.dominion.salud.mpr.negocio.service.equivalencias.ValSitClinicaExtService; import com.dominion.salud.mpr.negocio.service.exception.NoExisteEquivalenciaException; import com.dominion.salud.mpr.negocio.service.integracion.BuzonErroresService; import com.dominion.salud.mpr.negocio.service.integracion.BuzonOutService; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; /** * * @author jcgonzalez */ @Service("acuCentrosService") public class AcuCentrosServiceImpl extends AbstractAcuerdosServiceImpl<AcuCentros, Long> implements AcuCentrosService { private static final Logger logger = LoggerFactory.getLogger(AcuCentrosServiceImpl.class); @Autowired private AcuCentrosRepository acuCentrosRepository; @Autowired private SexosExtService sexosExtService; @Autowired private IndicacionesExtService indicacionesExtService; @Autowired private LineasTratExtService lineasTratExtService; @Autowired private ProgramasExtService programasExtService; @Autowired private RazonFinExtService razonFinExtService; @Autowired private SitClinicaExtService sitClinicaExtService; @Autowired private ValSitClinicaExtService valSitClinicaExtService; @Autowired private MarcaBioExtService marcaBioExtService; @Autowired private ValMarcaBioExtService valMarcaBioExtService; @Autowired private EvalMedidasExtService evalMedidasExtService; @Autowired private EvalDatosExtService evalDatosExtService; @Autowired private EvalValDatosExtService evalValDatosExtService; @Autowired private EvalValFaculExtService evalValFaculExtService; @Autowired private BuzonOutService buzonOutService; @Autowired private BuzonErroresService buzonErroresService; /** * Retorna AcuCentros asociados a un Acuerdo * * @param acuCentros * @return */ @Override public final List<AcuCentros> selectAllByIdAcuerdo(AcuCentros acuCentros) { return acuCentrosRepository.selectAllByIdAcuerdo(acuCentros); } /** * Elimina AcuCentros asociados a un Acuerdo * * @param acuerdos */ @Override public final void deleteAllByIdAcuerdo(Acuerdos acuerdos) { acuCentrosRepository.deleteAllByIdAcuerdo(acuerdos); } /** * Retorna AcuCentros asociados a una lista de Centros * * @param idsCentros * @return */ @Override public final List<AcuCentros> selectAllByCentros(List<Long> idsCentros) { return acuCentrosRepository.selectAllByCentros(idsCentros); } /** * Salva la lista de AcuCentros * * @param <S> * @param acuCentroses * @return */ @Override @Transactional public <S extends AcuCentros> List<S> save(Iterable<S> acuCentroses) { if (acuCentroses != null) { //Obtenemos el ID_ACUERDO para buscar AcuCentros acuCentros = null; Iterator<AcuCentros> iteradorAcuCentroses = (Iterator<AcuCentros>) acuCentroses.iterator(); while (iteradorAcuCentroses.hasNext()) { acuCentros = iteradorAcuCentroses.next(); break; } //Obtenemos los registros antiguos List<AcuCentros> acuCentrosesOld = selectAllByIdAcuerdo(acuCentros); //Si esta en acuCentrosOld y no en acuCentros ha sido eliminado. ENVIAR BAJA Iterator<AcuCentros> iteradorAcuCentrosesOld1 = acuCentrosesOld.iterator(); while (iteradorAcuCentrosesOld1.hasNext()) { AcuCentros acuCentrosOld = iteradorAcuCentrosesOld1.next(); boolean encontrado = false; Iterator<AcuCentros> iteradorAcuCentrosesNoEnOld = (Iterator<AcuCentros>) acuCentroses.iterator(); while (iteradorAcuCentrosesNoEnOld.hasNext()) { AcuCentros acuCentrosEnOld = iteradorAcuCentrosesNoEnOld.next(); if (acuCentrosEnOld.getCentros().getIdCentro() .equals(acuCentrosOld.getCentros().getIdCentro())) { encontrado = true; } } if (!encontrado) { super.delete(acuCentrosOld); toBuzonOut(acuCentrosOld); } } //Si esta en acuCentros y no en acuCentrosOld es nuevo, hay que enviar el alta Iterator<AcuCentros> iteradorAcuCentrosesEnOldNo = (Iterator<AcuCentros>) acuCentroses.iterator(); while (iteradorAcuCentrosesEnOldNo.hasNext()) { AcuCentros acuCentrosEnOldNo = iteradorAcuCentrosesEnOldNo.next(); boolean encontrado = false; Iterator<AcuCentros> iteradorAcuCentrosesOld2 = acuCentrosesOld.iterator(); while (iteradorAcuCentrosesOld2.hasNext()) { AcuCentros acuCentrosOld = iteradorAcuCentrosesOld2.next(); if (acuCentrosEnOldNo.getCentros().getIdCentro() .equals(acuCentrosOld.getCentros().getIdCentro())) { encontrado = true; } } if (!encontrado) { super.save(acuCentrosEnOldNo); toBuzonOut(acuCentrosEnOldNo); } } return (List<S>) selectAllByIdAcuerdo(acuCentros); } return (List<S>) acuCentroses; } /** * * @param acuCentroses */ @Override @Transactional public void suspend(List<AcuCentros> acuCentroses) { Iterator<AcuCentros> iteradorAcuCentros = acuCentroses.iterator(); while (iteradorAcuCentros.hasNext()) { AcuCentros acuCentros = iteradorAcuCentros.next(); if (acuCentros.getAcuerdos().getFecBaja() == null) { toBuzonOut(acuCentros); } else { toBuzonOut(acuCentros); } } } /** * Inserta AcuCentros en BuzonOut para procesos de integracion * * @param acuCentros */ @Override @Transactional public void toBuzonOut(AcuCentros acuCentros) { if (acuCentros != null) { logger.debug("INSERTANDO ACUERDO EN BUZON_OUT: [" + acuCentros.getAcuerdos().toString() + "]"); BuzonOut buzonOut = new BuzonOut(); buzonOut.setCentros(acuCentros.getCentros()); buzonOut.setFechaOut(new Date()); buzonOut.setTipo("ZFN_O13"); try { ZFN_M13 zfn_m13 = toHL7(acuCentros); buzonOut.setIdMensaje(zfn_m13.getMSH().getMessageControlID().getValue()); //MSH.10 logger.debug(" MessageControlID: " + buzonOut.getIdMensaje()); buzonOut.setMensaje(zfn_m13.encode()); buzonOut.setEstado(BuzonOut.MENSAJE_NO_PROCESADO); buzonOutService.save(buzonOut); } catch (HL7Exception | IOException e) { logger.error("Se han producido errores al generar el mensaje del ACUERDO:\n " + (StringUtils.isNotBlank(e.getMessage()) ? e.getMessage() : e.toString())); buzonOut.setIdMensaje("NO GENERADO (" + new Date().getTime() + ")"); buzonOut.setEstado(BuzonOut.MENSAJE_ERRONEO); buzonOut.setMensaje("El mensaje ZFN_M13 no ha podido ser generado"); buzonOutService.save(buzonOut); BuzonErrores buzonErrores = new BuzonErrores(); buzonErrores.setBuzonOut(buzonOut); buzonErrores.setParametros(acuCentros.getIdAcuCentro().toString()); buzonErrores.setFechaError(new Date()); buzonErrores.setEstado(BuzonErrores.MENSAJE_NO_PROCESADO); buzonErrores.setMensaje("<b>Se han producido errores al generar el mensaje del ACUERDO:</b><br> " + (StringUtils.isNotBlank(e.getMessage()) ? StringUtils.replace(e.getMessage(), "\n", "<br>") : e.toString())); buzonErroresService.save(buzonErrores); } logger.debug("FINALIZANDO LA INSERCION DEL ACUERDO: [" + acuCentros.getAcuerdos().toString() + "] EN BUZON_OUT: [" + buzonOut.toString() + "]"); } } /** * * @param acuCentros * @return * @throws ca.uhn.hl7v2.HL7Exception * @throws java.io.IOException */ @Override public ZFN_M13 toHL7(AcuCentros acuCentros) throws HL7Exception, IOException { logger.debug(" Iniciando la generacion del mensaje ZFN_M13"); SimpleDateFormat yyyymmdd = new SimpleDateFormat("yyyyMMdd"); SimpleDateFormat yyyymmddhhmmss = new SimpleDateFormat("yyyyMMddhhmmss"); List<String> resultado = new ArrayList<>(); ZFN_M13 zfn_m13 = new ZFN_M13(); zfn_m13.initQuickstart("ZFN", "M13", "P"); //MSH - Message Header Segment logger.debug(" Generando el segmento MSH - Message Header Segment"); MSH msh = zfn_m13.getMSH(); msh.getSendingApplication().getNamespaceID().setValue("MPR"); //MSH.3.1 msh.getSendingFacility().getNamespaceID().setValue("mpr-ws"); //MSH.4.1 msh.getReceivingApplication().getNamespaceID().setValue("FARMATOOLS"); //MSH.5.1 msh.getReceivingFacility().getNamespaceID().setValue("integraciones"); //MSH.6.1 msh.getDateTimeOfMessage().getTime().setValue(yyyymmddhhmmss.format(new Date())); //MSH.7 msh.getMessageControlID().setValue(new NanoTimeGenerator().getID()); //MSH.10 msh.getVersionID().getVersionID().setValue("2.5"); //MSH.12.1 msh.getAcceptAcknowledgmentType().setValue("AL"); //MSH.15 msh.getApplicationAcknowledgmentType().setValue("ER"); //MSH.16 msh.getCountryCode().setValue("ESP"); //MSH.17 msh.getCharacterSet(0).setValue("UTF-8"); //MSH.18 logger.debug(" " + msh.encode()); //ACUERDO logger.debug(" Generando datos del ACUERDO"); //ZFN_M13_ACUERDO ZFN_M13_ACUERDO zfn_m13_acuerdo = zfn_m13.getACUERDO(); //ZFA - Master file identification (Acuerdos) logger.debug(" Generando el segmento ZFA - Master file identification (Acuerdos)"); ZFA zfa = zfn_m13_acuerdo.getZFA(); zfa.getMasterIdentifier().getIdentifier().setValue(acuCentros.getAcuerdos().getIdAcuerdo().toString()); //ZFA.1.1 zfa.getMasterIdentifier().getText().setValue(acuCentros.getAcuerdos().getTxtNombre()); //ZFA.1.2 zfa.getMasterIdentifier().getAlternateIdentifier().setValue(acuCentros.getAcuerdos().getCodAcuerdo()); //ZFA.1.4 zfa.getMasterIdentifier().getAlternateText() .setValue(StringUtils.replace(acuCentros.getAcuerdos().getTxtDescripcion(), "\n", "<br>")); //ZFA.1.5 zfa.getMasterFileApplicationIdentifier().getNamespaceID().setValue(acuCentros.getCentros().getCodCentro()); //ZFA.2.1 zfa.getMasterFileApplicationIdentifier().getUniversalID().setValue(acuCentros.getCentros().getTxtCentro()); //ZFA.2.2 zfa.getFileLevelEventCode().setValue("REP"); //ZFA.3 zfa.getResponseLevelCode().setValue("AL"); //ZFA.6 logger.debug(" " + zfa.encode()); //ZGA - Master file entry (Acuerdos) logger.debug(" Generando los segmentos ZGA - Master file entry (Acuerdos)"); //ACU_REQUERIDO ZGA zgaAcuRequerido = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuRequerido.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_REQUERIDO); //ZGA.1.1 zgaAcuRequerido.getDescripcion() .setValue(StringUtils.isNotBlank(acuCentros.getAcuerdos().getRequerido()) ? acuCentros.getAcuerdos().getRequerido() : "N"); //ZGA.4 logger.debug(" " + ZGA.ACU_REQUERIDO + ": " + zgaAcuRequerido.encode()); //ACU_FEC_BAJA ZGA zgaAcuFecBaja = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuFecBaja.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_FECHA_BAJA); //ZGA.1.1 zgaAcuFecBaja.getDescripcion() .setValue(acuCentros.getAcuerdos().getFecBaja() != null ? yyyymmdd.format(acuCentros.getAcuerdos().getFecBaja()) : null); //ZGA.4 logger.debug(" " + ZGA.ACU_FECHA_BAJA + ": " + zgaAcuFecBaja.encode()); //ACU_NUM_DIAS ZGA zgaAcuNumDias = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuNumDias.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_NUM_DIAS); //ZGA.1.1 zgaAcuNumDias.getDescripcion() .setValue(acuCentros.getAcuerdos().getNumDias() != null ? acuCentros.getAcuerdos().getNumDias().toString() : "0"); //ZGA.4 logger.debug(" " + ZGA.ACU_NUM_DIAS + ": " + zgaAcuNumDias.encode()); //ACU_NUM_CICLOS ZGA zgaAcuNumCiclos = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuNumCiclos.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_NUM_CICLOS); //ZGA.1.1 zgaAcuNumCiclos.getDescripcion() .setValue(acuCentros.getAcuerdos().getNumCiclos() != null ? acuCentros.getAcuerdos().getNumCiclos().toString() : "0"); //ZGA.4 logger.debug(" " + ZGA.ACU_NUM_CICLOS + ": " + zgaAcuNumCiclos.encode()); //ACU_NIVEL ZGA zgaAcuNivel = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuNivel.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_NIVEL); //ZGA.1.1 zgaAcuNivel.getDescripcion().setValue( acuCentros.getAcuerdos().getNivel() != null ? acuCentros.getAcuerdos().getNivel().toString() : "0"); //ZGA.4 logger.debug(" " + ZGA.ACU_NIVEL + ": " + zgaAcuNivel.encode()); //ACU_FECHA_INI ZGA zgaAcuFechaIni = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuFechaIni.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_FECHA_INI); //ZGA.1.1 zgaAcuFechaIni.getDescripcion() .setValue(acuCentros.getAcuerdos().getFecIniAcuerdo() != null ? yyyymmdd.format(acuCentros.getAcuerdos().getFecIniAcuerdo()) : yyyymmdd.format(new Date())); //ZGA.4 logger.debug(" " + ZGA.ACU_FECHA_INI + ": " + zgaAcuFechaIni.encode()); //ACU_FECHA_FIN ZGA zgaAcuFechaFin = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuFechaFin.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_FECHA_FIN); //ZGA.1.1 zgaAcuFechaFin.getDescripcion() .setValue(acuCentros.getAcuerdos().getFecFinAcuerdo() != null ? yyyymmdd.format(acuCentros.getAcuerdos().getFecFinAcuerdo()) : "31/12/9999"); //ZGA.4 logger.debug(" " + ZGA.ACU_FECHA_FIN + ": " + zgaAcuFechaFin.encode()); //ACU_FECHA_INI_TRAT ZGA zgaAcuFechaIniTrat = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuFechaIniTrat.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_FECHA_INI_TRAT); //ZGA.1.1 zgaAcuFechaIniTrat.getDescripcion() .setValue(acuCentros.getAcuerdos().getFecIniTrat() != null ? yyyymmdd.format(acuCentros.getAcuerdos().getFecIniTrat()) : null); //ZGA.4 logger.debug(" " + ZGA.ACU_FECHA_INI_TRAT + ": " + zgaAcuFechaIniTrat.encode()); //ACU_FECHA_FIN_TRAT ZGA zgaAcuFechaFinTrat = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuFechaFinTrat.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_FECHA_FIN_TRAT); //ZGA.1.1 zgaAcuFechaFinTrat.getDescripcion() .setValue(acuCentros.getAcuerdos().getFecFinTrat() != null ? yyyymmdd.format(acuCentros.getAcuerdos().getFecFinTrat()) : null); //ZGA.4 logger.debug(" " + ZGA.ACU_FECHA_FIN_TRAT + ": " + zgaAcuFechaFinTrat.encode()); //ACU_LABORATORIOS ZGA zgaAcuLaboratorios = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuLaboratorios.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_LABORATORIOS); //ZGA.1.1 zgaAcuLaboratorios.getIdentificador() .setValue(acuCentros.getAcuerdos().getLaboratorios().getIdLaboratorio().toString()); //ZGA.2 zgaAcuLaboratorios.getCodigo().setValue(acuCentros.getAcuerdos().getLaboratorios().getCodLaboratorio()); //ZGA.3 zgaAcuLaboratorios.getDescripcion() .setValue(acuCentros.getAcuerdos().getLaboratorios().getTxtLaboratorio()); //ZGA.4 logger.debug(" " + ZGA.ACU_LABORATORIOS + ": " + zgaAcuLaboratorios.encode()); //ACU_SEXOS if (acuCentros.getAcuerdos().getSexos() != null) { ZGA zgaSexos = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaSexos.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_SEXOS); //ZGA.1.1 try { List<SexosExt> sexosExts = sexosExtService.findEquivalencia(acuCentros.getCentros(), acuCentros.getAcuerdos().getSexos()); if (sexosExts.size() == 1) { SexosExt sexosExt = sexosExts.get(0); zgaSexos.getIdentificador() .setValue(acuCentros.getAcuerdos().getSexos().getIdSexo().toString()); //ZGA.2 zgaSexos.getCodigo().setValue(sexosExt.getCodSexoExt()); //ZGA.3 zgaSexos.getDescripcion().setValue(sexosExt.getTxtSexoExt()); //ZGA.4 logger.debug(" " + ZGA.ACU_SEXOS + ": " + zgaSexos.encode()); } else if (sexosExts.size() > 1) { logger.error(" Existen multiples equivalencias para el SEXO: " + acuCentros.getAcuerdos().getSexos().toString()); resultado.add("Existen multiples equivalencias para el SEXO: " + acuCentros.getAcuerdos().getSexos().toString()); } } catch (NoExisteEquivalenciaException neee) { logger.error(" No existe equivalencia para el SEXO: " + acuCentros.getAcuerdos().getSexos().toString()); resultado.add( "No existe equivalencia para el SEXO: " + acuCentros.getAcuerdos().getSexos().toString()); } } //ACU_CENTROS ZGA zgaAcuCentros = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuCentros.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_CENTROS); //ZGA.1.1 zgaAcuCentros.getCodigoRegistro().getUniversalID().setValue(acuCentros.getIdAcuCentro().toString()); //ZGA.1.2 zgaAcuCentros.getIdentificador().setValue(acuCentros.getCentros().getIdCentro().toString()); //ZGA.2 zgaAcuCentros.getCodigo().setValue(acuCentros.getCentros().getCodCentro()); //ZGA.3 zgaAcuCentros.getDescripcion().setValue(acuCentros.getCentros().getTxtCentro()); //ZGA.4 logger.debug(" " + ZGA.ACU_CENTROS + ": " + zgaAcuCentros.encode()); //ACU_DIAGNOSTICOS List<AcuDiagnosticos> acuDiagnosticoses = acuCentros.getAcuerdos().getAcuDiagnosticoses(); if (acuDiagnosticoses != null && !acuDiagnosticoses.isEmpty()) { Iterator<AcuDiagnosticos> iteratorAcuDiagnosticoses = acuDiagnosticoses.iterator(); while (iteratorAcuDiagnosticoses.hasNext()) { AcuDiagnosticos acuDiagnosticos = iteratorAcuDiagnosticoses.next(); ZGA zgaAcuDiagnosticos = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuDiagnosticos.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_DIAGNOSTICOS); //ZGA.1.1 zgaAcuDiagnosticos.getCodigoRegistro().getUniversalID() .setValue(acuDiagnosticos.getIdAcuDiagnostico().toString()); //ZGA.1.2 zgaAcuDiagnosticos.getIdentificador() .setValue(acuDiagnosticos.getDiagnosticos().getIdDiagnostico().toString()); //ZGA.2 zgaAcuDiagnosticos.getCodigo().setValue(acuDiagnosticos.getDiagnosticos().getCodDiagnostico()); //ZGA.3 zgaAcuDiagnosticos.getDescripcion().setValue(acuDiagnosticos.getDiagnosticos().getTxtDiagnostico()); //ZGA.4 logger.debug(" " + ZGA.ACU_DIAGNOSTICOS + ": " + zgaAcuDiagnosticos.encode()); } } //ACU_MARCAS List<AcuMarcas> acuMarcases = acuCentros.getAcuerdos().getAcuMarcases(); if (acuMarcases != null && !acuMarcases.isEmpty()) { Iterator<AcuMarcas> iteratorAcuMarcases = acuMarcases.iterator(); while (iteratorAcuMarcases.hasNext()) { AcuMarcas acuMarcas = iteratorAcuMarcases.next(); ZGA zgaAcuMarcas = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuMarcas.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_MARCAS); //ZGA.1.1 zgaAcuMarcas.getCodigoRegistro().getUniversalID().setValue(acuMarcas.getIdAcuMarca().toString()); //ZGA.1.2 zgaAcuMarcas.getIdentificador().setValue(acuMarcas.getMarcas().getIdMarca().toString()); //ZGA.2 zgaAcuMarcas.getCodigo().setValue(acuMarcas.getMarcas().getCodNac()); //ZGA.3 zgaAcuMarcas.getDescripcion().setValue(acuMarcas.getMarcas().getTxtMarca()); //ZGA.4 logger.debug(" " + ZGA.ACU_MARCAS + ": " + zgaAcuMarcas.encode()); } } //ACU_INDICACIONES List<AcuIndicaciones> acuIndicacioneses = acuCentros.getAcuerdos().getAcuIndicacioneses(); if (acuIndicacioneses != null && !acuIndicacioneses.isEmpty()) { Iterator<AcuIndicaciones> iteratorAcuIndicacioneses = acuIndicacioneses.iterator(); while (iteratorAcuIndicacioneses.hasNext()) { AcuIndicaciones acuIndicaciones = iteratorAcuIndicacioneses.next(); try { List<IndicacionesExt> indicacionesExts = indicacionesExtService .findEquivalencia(acuCentros.getCentros(), acuIndicaciones.getIndicaciones()); for (IndicacionesExt indicacionesExt : indicacionesExts) { ZGA zgaAcuIndicaciones = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuIndicaciones.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_INDICACIONES); //ZGA.1.1 zgaAcuIndicaciones.getCodigoRegistro().getUniversalID() .setValue(acuIndicaciones.getIdAcuIndicacion().toString()); //ZGA.1.2 zgaAcuIndicaciones.getIdentificador() .setValue(acuIndicaciones.getIndicaciones().getIdIndicacion().toString()); //ZGA.2 zgaAcuIndicaciones.getCodigo().setValue(indicacionesExt.getCodIndicacionExt()); //ZGA.3 zgaAcuIndicaciones.getDescripcion().setValue(indicacionesExt.getTxtIndicacionExt()); //ZGA.4 logger.debug( " " + ZGA.ACU_INDICACIONES + ": " + zgaAcuIndicaciones.encode()); } } catch (NoExisteEquivalenciaException neee) { logger.error(" No existe equivalencia para la INDICACION: " + acuIndicaciones.getIndicaciones().toString()); resultado.add("No existe equivalencia para la INDICACION: " + acuIndicaciones.getIndicaciones().toString()); } } } //ACU_LINEAS_TRAT List<AcuLineasTrat> acuLineasTrats = acuCentros.getAcuerdos().getAcuLineasTrats(); if (acuLineasTrats != null && !acuLineasTrats.isEmpty()) { Iterator<AcuLineasTrat> iteratorAcuLineasTrats = acuLineasTrats.iterator(); while (iteratorAcuLineasTrats.hasNext()) { AcuLineasTrat acuLineasTrat = iteratorAcuLineasTrats.next(); try { List<LineasTratExt> lineasTratExts = lineasTratExtService .findEquivalencia(acuCentros.getCentros(), acuLineasTrat.getLineasTrat()); for (LineasTratExt lineasTratExt : lineasTratExts) { ZGA zgaAcuLineasTrat = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuLineasTrat.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_LINEAS_TRAT); //ZGA.1.1 zgaAcuLineasTrat.getCodigoRegistro().getUniversalID() .setValue(acuLineasTrat.getIdAcuLineaTrat().toString()); //ZGA.1.2 zgaAcuLineasTrat.getIdentificador() .setValue(acuLineasTrat.getLineasTrat().getIdLineaTrat().toString()); //ZGA.2 zgaAcuLineasTrat.getCodigo().setValue(lineasTratExt.getCodLineaTratExt()); //ZGA.3 zgaAcuLineasTrat.getDescripcion().setValue(lineasTratExt.getTxtLineaTratExt()); //ZGA.4 logger.debug( " " + ZGA.ACU_LINEAS_TRAT + ": " + zgaAcuLineasTrat.encode()); } } catch (NoExisteEquivalenciaException neee) { logger.error(" No existe equivalencia para la LINEA DE TRATAMIENTO: " + acuLineasTrat.getLineasTrat().toString()); resultado.add("No existe equivalencia para la LINEA DE TRATAMIENTO: " + acuLineasTrat.getLineasTrat().toString()); } } } //ACU_PROGRAMAS List<AcuProgramas> acuProgramases = acuCentros.getAcuerdos().getAcuProgramases(); if (acuProgramases != null && !acuProgramases.isEmpty()) { Iterator<AcuProgramas> iteratorAcuProgramases = acuProgramases.iterator(); while (iteratorAcuProgramases.hasNext()) { AcuProgramas acuProgramas = iteratorAcuProgramases.next(); try { List<ProgramasExt> programasExts = programasExtService.findEquivalencia(acuCentros.getCentros(), acuProgramas.getProgramas()); for (ProgramasExt programasExt : programasExts) { ZGA zgaAcuProgramas = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuProgramas.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_PROGRAMAS); //ZGA.1.1 zgaAcuProgramas.getCodigoRegistro().getUniversalID() .setValue(acuProgramas.getIdAcuPrograma().toString()); //ZGA.1.2 zgaAcuProgramas.getIdentificador() .setValue(acuProgramas.getProgramas().getIdPrograma().toString()); //ZGA.2 zgaAcuProgramas.getCodigo().setValue(programasExt.getCodProgramaExt()); //ZGA.3 zgaAcuProgramas.getDescripcion().setValue(programasExt.getTxtProgramaExt()); //ZGA.4 logger.debug(" " + ZGA.ACU_PROGRAMAS + ": " + zgaAcuProgramas.encode()); } } catch (NoExisteEquivalenciaException neee) { logger.error(" No existe equivalencia para el PROGRAMA: " + acuProgramas.getProgramas().toString()); resultado.add( "No existe equivalencia para el PROGRAMA: " + acuProgramas.getProgramas().toString()); } } } //ACU_RAZON_FIN List<AcuRazonFin> acuRazonFins = acuCentros.getAcuerdos().getAcuRazonFins(); if (acuRazonFins != null && !acuRazonFins.isEmpty()) { Iterator<AcuRazonFin> iteratorAcuRazonFins = acuRazonFins.iterator(); while (iteratorAcuRazonFins.hasNext()) { AcuRazonFin acuRazonFin = iteratorAcuRazonFins.next(); try { List<RazonFinExt> razonFinExts = razonFinExtService.findEquivalencia(acuCentros.getCentros(), acuRazonFin.getRazonFin()); for (RazonFinExt razonFinExt : razonFinExts) { ZGA zgaAcuRazonFin = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuRazonFin.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_RAZON_FIN); //ZGA.1.1 zgaAcuRazonFin.getCodigoRegistro().getUniversalID() .setValue(acuRazonFin.getIdAcuRazonFin().toString()); //ZGA.1.2 zgaAcuRazonFin.getIdentificador() .setValue(acuRazonFin.getRazonFin().getIdRazonFin().toString()); //ZGA.2 zgaAcuRazonFin.getCodigo().setValue(razonFinExt.getCodRazonFinExt()); //ZGA.3 zgaAcuRazonFin.getDescripcion().setValue(razonFinExt.getTxtRazonFinExt()); //ZGA.4 logger.debug(" " + ZGA.ACU_RAZON_FIN + ": " + zgaAcuRazonFin.encode()); } } catch (NoExisteEquivalenciaException neee) { logger.error(" No existe equivalencia para la RAZON DE FIN DE TRATAMIENTO: " + acuRazonFin.getRazonFin().toString()); resultado.add("No existe equivalencia para la RAZON DE FIN DE TRATAMIENTO: " + acuRazonFin.getRazonFin().toString()); } } } //ACU_EDADES List<AcuEdades> acuEdadeses = acuCentros.getAcuerdos().getAcuEdadeses(); if (acuEdadeses != null && !acuEdadeses.isEmpty()) { Iterator<AcuEdades> iteratorAcuEdadeses = acuEdadeses.iterator(); while (iteratorAcuEdadeses.hasNext()) { AcuEdades acuEdades = iteratorAcuEdadeses.next(); ZGA zgaAcuEdades = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuEdades.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_EDADES); //ZGA.1.1 zgaAcuEdades.getCodigoRegistro().getUniversalID().setValue(acuEdades.getIdAcuEdad().toString()); //ZGA.1.2 logger.debug(" " + ZGA.ACU_EDADES + ": " + zgaAcuEdades.encode()); ZCE zceAcuEdadesDesde = zgaAcuEdades .getElementoCodificado(zgaAcuEdades.getElementoCodificadoReps()); //ZGA.5 zceAcuEdadesDesde.getDescripcion() .setValue(acuEdades.getEdadDesde() != null ? acuEdades.getEdadDesde().toString() : "0"); //ZGA.5.3 zceAcuEdadesDesde.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_EDAD_DESDE); //ZGA.5.4.1 logger.debug(" " + ZGA.ACU_EDAD_DESDE + ": " + zceAcuEdadesDesde.encode()); ZCE zceAcuEdadesHasta = zgaAcuEdades .getElementoCodificado(zgaAcuEdades.getElementoCodificadoReps()); //ZGA.5 zceAcuEdadesHasta.getDescripcion() .setValue(acuEdades.getEdadHasta() != null ? acuEdades.getEdadHasta().toString() : "0"); //ZGA.5.3 zceAcuEdadesHasta.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_EDAD_HASTA); //ZGA.5.4.1 logger.debug(" " + ZGA.ACU_EDAD_HASTA + ": " + zceAcuEdadesHasta.encode()); } } //ACU_PESOS List<AcuPesos> acuPesoses = acuCentros.getAcuerdos().getAcuPesoses(); if (acuPesoses != null && !acuPesoses.isEmpty()) { Iterator<AcuPesos> iteratorAcuPesoses = acuPesoses.iterator(); while (iteratorAcuPesoses.hasNext()) { AcuPesos acuPesos = iteratorAcuPesoses.next(); ZGA zgaAcuPesos = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuPesos.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_PESOS); //ZGA.1.1 zgaAcuPesos.getCodigoRegistro().getUniversalID().setValue(acuPesos.getIdAcuPeso().toString()); //ZGA.1.2 logger.debug(" " + ZGA.ACU_PESOS + ": " + zgaAcuPesos.encode()); ZCE zceAcuPesosDesde = zgaAcuPesos.getElementoCodificado(zgaAcuPesos.getElementoCodificadoReps()); //ZGA.5 zceAcuPesosDesde.getDescripcion() .setValue(acuPesos.getPesoDesde() != null ? acuPesos.getPesoDesde().toString() : "0"); //ZGA.5.3 zceAcuPesosDesde.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_PESO_DESDE); //ZGA.5.4.1 logger.debug(" " + ZGA.ACU_PESO_DESDE + ": " + zceAcuPesosDesde.encode()); ZCE zceAcuPesosHasta = zgaAcuPesos.getElementoCodificado(zgaAcuPesos.getElementoCodificadoReps()); //ZGA.5 zceAcuPesosHasta.getDescripcion() .setValue(acuPesos.getPesoHasta() != null ? acuPesos.getPesoHasta().toString() : "0"); //ZGA.5.3 zceAcuPesosHasta.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_PESO_HASTA); //ZGA.5.4.1 logger.debug(" " + ZGA.ACU_PESO_HASTA + ": " + zceAcuPesosHasta.encode()); } } //ACU_SIT_CLINICAS List<AcuSitClinica> acuSitClinicas = acuCentros.getAcuerdos().getAcuSitClinicas(); if (acuSitClinicas != null && !acuSitClinicas.isEmpty()) { Iterator<AcuSitClinica> iteratorAcuSitClinicas = acuSitClinicas.iterator(); while (iteratorAcuSitClinicas.hasNext()) { AcuSitClinica acuSitClinica = iteratorAcuSitClinicas.next(); try { List<SitClinicaExt> sitClinicaExts = sitClinicaExtService .findEquivalencia(acuCentros.getCentros(), acuSitClinica.getSitClinica()); for (SitClinicaExt sitClinicaExt : sitClinicaExts) { ZGA zgaAcuSitClinica = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuSitClinica.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_SIT_CLINICA); //ZGA.1.1 zgaAcuSitClinica.getCodigoRegistro().getUniversalID() .setValue(acuSitClinica.getIdAcuSitClinica().toString()); //ZGA.1.2 zgaAcuSitClinica.getIdentificador() .setValue(acuSitClinica.getSitClinica().getIdSitClinica().toString()); //ZGA.2 zgaAcuSitClinica.getCodigo().setValue(sitClinicaExt.getCodSitClinicaExt()); //ZGA.3 zgaAcuSitClinica.getDescripcion().setValue(sitClinicaExt.getTxtSitClinicaExt()); //ZGA.4 logger.debug( " " + ZGA.ACU_SIT_CLINICA + ": " + zgaAcuSitClinica.encode()); //ACU_VAL_SIT_CLINICA if (acuSitClinica.getAcuValSitClinicas() != null && !acuSitClinica.getAcuValSitClinicas().isEmpty()) { for (AcuValSitClinica acuValSitClinica : acuSitClinica.getAcuValSitClinicas()) { try { List<ValSitClinicaExt> valSitClinicaExts = valSitClinicaExtService .findEquivalencia(acuCentros.getCentros(), acuValSitClinica.getValSitClinica()); for (ValSitClinicaExt valSitClinicaExt : valSitClinicaExts) { ZCE zceAcuValSitClinica = zgaAcuSitClinica.getElementoCodificado( zgaAcuSitClinica.getElementoCodificadoReps()); zceAcuValSitClinica.getIdentificador().setValue(acuValSitClinica .getValSitClinica().getIdValSitClinica().toString()); //ZGA.5.1 zceAcuValSitClinica.getCodigo() .setValue(valSitClinicaExt.getCodValSitClinicaExt()); //ZGA.5.2 zceAcuValSitClinica.getDescripcion() .setValue(valSitClinicaExt.getTxtValSitClinicaExt()); //ZGA.5.3 zceAcuValSitClinica.getCodigoRegistro().getNamespaceID() .setValue(ZGA.ACU_VAL_SIT_CLINICA); //ZGA.5.4.1 zceAcuValSitClinica.getCodigoRegistro().getUniversalID() .setValue(acuValSitClinica.getIdAcuValSitClinica().toString()); //ZGA.5.4.2 logger.debug(" " + ZGA.ACU_VAL_SIT_CLINICA + ": " + zceAcuValSitClinica.encode()); } } catch (NoExisteEquivalenciaException neee) { logger.error( " No existe equivalencia para el VALOR DE LA SITUACION CLINICA DE PARTIDA: " + acuValSitClinica.getValSitClinica().toString()); resultado.add( "No existe equivalencia para el VALOR DE LA SITUACION CLINICA DE PARTIDA: " + acuValSitClinica.getValSitClinica().toString()); } } } } } catch (NoExisteEquivalenciaException neee) { logger.error(" No existe equivalencia para la SITUACION CLINICA DE PARTIDA: " + acuSitClinica.getSitClinica().toString()); resultado.add("No existe equivalencia para la SITUACION CLINICA DE PARTIDA: " + acuSitClinica.getSitClinica().toString()); } } } //ACU_MARCA_BIO List<AcuMarcaBio> acuMarcaBios = acuCentros.getAcuerdos().getAcuMarcaBios(); if (acuMarcaBios != null && !acuMarcaBios.isEmpty()) { Iterator<AcuMarcaBio> iteratorAcuMarcaBios = acuMarcaBios.iterator(); while (iteratorAcuMarcaBios.hasNext()) { AcuMarcaBio acuMarcaBio = iteratorAcuMarcaBios.next(); try { List<MarcaBioExt> marcaBioExts = marcaBioExtService.findEquivalencia(acuCentros.getCentros(), acuMarcaBio.getMarcaBio()); for (MarcaBioExt marcaBioExt : marcaBioExts) { ZGA zgaAcuMarcaBio = zfn_m13_acuerdo.getZGA(zfn_m13_acuerdo.getZGAAll().size()); zgaAcuMarcaBio.getCodigoRegistro().getNamespaceID().setValue(ZGA.ACU_MARCA_BIO); //ZGA.1.1 zgaAcuMarcaBio.getCodigoRegistro().getUniversalID() .setValue(acuMarcaBio.getIdAcuMarcaBio().toString()); //ZGA.1.2 zgaAcuMarcaBio.getIdentificador() .setValue(acuMarcaBio.getMarcaBio().getIdMarcaBio().toString()); //ZGA.2 zgaAcuMarcaBio.getCodigo().setValue(marcaBioExt.getCodMarcaBioExt()); //ZGA.3 zgaAcuMarcaBio.getDescripcion().setValue(marcaBioExt.getTxtMarcaBioExt()); //ZGA.4 logger.debug(" " + ZGA.ACU_MARCA_BIO + ": " + zgaAcuMarcaBio.encode()); //ACU_VAL_MARCA_BIO if (acuMarcaBio.getAcuValMarcaBios() != null && !acuMarcaBio.getAcuValMarcaBios().isEmpty()) { for (AcuValMarcaBio acuValMarcaBio : acuMarcaBio.getAcuValMarcaBios()) { try { List<ValMarcaBioExt> valMarcaBioExts = valMarcaBioExtService.findEquivalencia( acuCentros.getCentros(), acuValMarcaBio.getValMarcaBio()); for (ValMarcaBioExt valMarcaBioExt : valMarcaBioExts) { ZCE zceAcuValMarcaBio = zgaAcuMarcaBio .getElementoCodificado(zgaAcuMarcaBio.getElementoCodificadoReps()); zceAcuValMarcaBio.getIdentificador().setValue( acuValMarcaBio.getValMarcaBio().getIdValMarcaBio().toString()); //ZGA.5.1 zceAcuValMarcaBio.getCodigo() .setValue(valMarcaBioExt.getCodValMarcaBioExt()); //ZGA.5.2 zceAcuValMarcaBio.getDescripcion() .setValue(valMarcaBioExt.getTxtValMarcaBioExt()); //ZGA.5.3 zceAcuValMarcaBio.getCodigoRegistro().getNamespaceID() .setValue(ZGA.ACU_VAL_MARCA_BIO); //ZGA.5.4.1 zceAcuValMarcaBio.getCodigoRegistro().getUniversalID() .setValue(acuValMarcaBio.getIdAcuValMarcaBio().toString()); //ZGA.5.4.2 logger.debug(" " + ZGA.ACU_VAL_MARCA_BIO + ": " + zceAcuValMarcaBio.encode()); } } catch (NoExisteEquivalenciaException neee) { logger.error( " No existe equivalencia para el VALOR DEL MARCADOR BIOLOGICO: " + acuValMarcaBio.getValMarcaBio().toString()); resultado.add("No existe equivalencia para el VALOR DEL MARCADOR BIOLOGICO: " + acuValMarcaBio.getValMarcaBio().toString()); } } } } } catch (NoExisteEquivalenciaException neee) { logger.error(" No existe equivalencia para el MARCADOR BIOLOGICO: " + acuMarcaBio.getMarcaBio().toString()); resultado.add("No existe equivalencia para el MARCADOR BIOLOGICO: " + acuMarcaBio.getMarcaBio().toString()); } } } logger.debug(" Datos del ACUERDO generados CORRECTAMENTE"); //EVALUACIONES List<AcuEvaluaciones> acuEvaluacioneses = acuCentros.getAcuerdos().getAcuEvaluacioneses(); if (acuEvaluacioneses != null && !acuEvaluacioneses.isEmpty()) { logger.debug(" Generando datos de las EVALUACIONES"); Iterator<AcuEvaluaciones> iteradorAcuEvaluacioneses = acuEvaluacioneses.iterator(); while (iteradorAcuEvaluacioneses.hasNext()) { AcuEvaluaciones acuEvaluaciones = iteradorAcuEvaluacioneses.next(); //ZFN_M13_EVALUACIONES ZFN_M13_EVALUACIONES zfn_m13_evaluaciones = zfn_m13_acuerdo .getEVALUACIONES(zfn_m13_acuerdo.getEVALUACIONESReps()); //ZFE - Master file identification (Evaluaciones) logger.debug( " Generando el segmento ZFE - Master file identification (Evaluaciones)"); ZFE zfeAcuEvaluaciones = zfn_m13_evaluaciones.getZFE(); zfeAcuEvaluaciones.getMasterIdentifier().getIdentifier() .setValue(acuEvaluaciones.getIdAcuEvaluacion().toString()); //ZFE.1 zfeAcuEvaluaciones.getFileLevelEventCode().setValue("REP"); //ZFA.3 zfeAcuEvaluaciones.getResponseLevelCode().setValue("AL"); //ZFA.6 logger.debug(" " + zfeAcuEvaluaciones.encode()); //ZGE - Master file entry (Evaluaciones) logger.debug(" Generando los segmentos ZGE - Master file entry (Evaluaciones)"); //ACU_EVAL_REQUERIDO ZGE zgeAcuEvalRequerido = zfn_m13_evaluaciones.getZGE(zfn_m13_evaluaciones.getZGEReps()); zgeAcuEvalRequerido.getCodigoRegistro().getNamespaceID().setValue(ZGE.ACU_EVAL_REQUERIDO); //ZGE.1.1 zgeAcuEvalRequerido.getDescripcion() .setValue(StringUtils.isNotBlank(acuEvaluaciones.getRequerido()) ? acuEvaluaciones.getRequerido() : "N"); //ZGE.4 logger.debug(" " + ZGE.ACU_EVAL_REQUERIDO + ": " + zgeAcuEvalRequerido.encode()); //ACU_EVAL_MAXIMO ZGE zgeAcuEvalMaximo = zfn_m13_evaluaciones.getZGE(zfn_m13_evaluaciones.getZGEReps()); zgeAcuEvalMaximo.getCodigoRegistro().getNamespaceID().setValue(ZGE.ACU_EVAL_MAXIMO); //ZGE.1.1 zgeAcuEvalMaximo.getDescripcion().setValue( acuEvaluaciones.getMaximo() != null ? acuEvaluaciones.getMaximo().toString() : "0"); //ZGE.4 logger.debug(" " + ZGE.ACU_EVAL_MAXIMO + ": " + zgeAcuEvalMaximo.encode()); //ACU_EVAL_NUM_DIAS ZGE zgeAcuEvalNumDias = zfn_m13_evaluaciones.getZGE(zfn_m13_evaluaciones.getZGEReps()); zgeAcuEvalNumDias.getCodigoRegistro().getNamespaceID().setValue(ZGE.ACU_EVAL_NUM_DIAS); //ZGE.1.1 zgeAcuEvalNumDias.getDescripcion().setValue( acuEvaluaciones.getNumDias() != null ? acuEvaluaciones.getNumDias().toString() : "0"); //ZGE.4 logger.debug(" " + ZGE.ACU_EVAL_NUM_DIAS + ": " + zgeAcuEvalNumDias.encode()); //ACU_EVAL_NUM_CICLOS ZGE zgeAcuEvalNumCiclos = zfn_m13_evaluaciones.getZGE(zfn_m13_evaluaciones.getZGEReps()); zgeAcuEvalNumCiclos.getCodigoRegistro().getNamespaceID().setValue(ZGE.ACU_EVAL_NUM_CICLOS); //ZGE.1.1 zgeAcuEvalNumCiclos.getDescripcion().setValue( acuEvaluaciones.getNumCiclos() != null ? acuEvaluaciones.getNumCiclos().toString() : "0"); //ZGE.4 logger.debug( " " + ZGE.ACU_EVAL_NUM_CICLOS + ": " + zgeAcuEvalNumCiclos.encode()); //ACU_EVAL_MEDIDAS ZGE zgeAcuEvalMedidas = zfn_m13_evaluaciones.getZGE(zfn_m13_evaluaciones.getZGEReps()); zgeAcuEvalMedidas.getCodigoRegistro().getNamespaceID().setValue(ZGE.ACU_EVAL_MEDIDAS); //ZGE.1.1 try { List<EvalMedidasExt> evalMedidasExts = evalMedidasExtService .findEquivalencia(acuCentros.getCentros(), acuEvaluaciones.getEvalMedidas()); if (evalMedidasExts.size() == 1) { EvalMedidasExt evalMedidasExt = evalMedidasExts.get(0); zgeAcuEvalMedidas.getIdentificador() .setValue(acuEvaluaciones.getEvalMedidas().getIdEvalMedida().toString()); //ZGE.2 zgeAcuEvalMedidas.getCodigo().setValue(evalMedidasExt.getCodEvalMedidaExt()); //ZGE.3 zgeAcuEvalMedidas.getDescripcion().setValue(evalMedidasExt.getTxtEvalMedidaExt()); //ZGE.4 logger.debug( " " + ZGE.ACU_EVAL_MEDIDAS + ": " + zgeAcuEvalMedidas.encode()); } else if (evalMedidasExts.size() > 1) { logger.error( " Existen multiples equivalencias para la MEDIDA DE EVALUACION: " + acuEvaluaciones.getEvalMedidas().toString()); resultado.add("Existen multiples equivalencias para la MEDIDA DE EVALUACION: " + acuEvaluaciones.getEvalMedidas().toString()); } } catch (NoExisteEquivalenciaException neee) { logger.error(" No existe equivalencia para la MEDIDA DE EVALUACION: " + acuEvaluaciones.getEvalMedidas().toString()); resultado.add("No existe equivalencia para la MEDIDA DE EVALUACION: " + acuEvaluaciones.getEvalMedidas().toString()); } List<AcuEvalDatos> acuEvalDatoses = acuEvaluaciones.getAcuEvalDatoses(); if (acuEvalDatoses != null && !acuEvalDatoses.isEmpty()) { Iterator<AcuEvalDatos> iteradorAcuEvalDatoses = acuEvalDatoses.iterator(); while (iteradorAcuEvalDatoses.hasNext()) { AcuEvalDatos acuEvalDatos = iteradorAcuEvalDatoses.next(); try { List<EvalDatosExt> evalDatosExts = evalDatosExtService .findEquivalencia(acuCentros.getCentros(), acuEvalDatos.getEvalDatos()); for (EvalDatosExt evalDatosExt : evalDatosExts) { ZGE zgeAcuEvalDatos = zfn_m13_evaluaciones .getZGE(zfn_m13_evaluaciones.getZGEReps()); zgeAcuEvalDatos.getCodigoRegistro().getNamespaceID().setValue(ZGE.ACU_EVAL_DATOS); //ZGE.1.1 zgeAcuEvalDatos.getCodigoRegistro().getUniversalID() .setValue(acuEvalDatos.getIdAcuEvalDato().toString()); //ZGE.1.2 zgeAcuEvalDatos.getIdentificador() .setValue(acuEvalDatos.getEvalDatos().getIdEvalDato().toString()); //ZGE.2 zgeAcuEvalDatos.getCodigo().setValue(evalDatosExt.getCodEvalDatoExt()); //ZGE.3 zgeAcuEvalDatos.getDescripcion().setValue(evalDatosExt.getTxtEvalDatoExt()); //ZGE.4 logger.debug(" " + ZGE.ACU_EVAL_DATOS + ": " + zgeAcuEvalDatos.encode()); //ACU_EVAL_VAL_DATOS if (acuEvalDatos.getAcuEvalValDatoses() != null && !acuEvalDatos.getAcuEvalValDatoses().isEmpty()) { for (AcuEvalValDatos acuEvalValDatos : acuEvalDatos.getAcuEvalValDatoses()) { try { List<EvalValDatosExt> evalValDatosExts = evalValDatosExtService .findEquivalencia(acuCentros.getCentros(), acuEvalValDatos.getEvalValDatos()); for (EvalValDatosExt evalValDatosExt : evalValDatosExts) { ZCE zceAcuEvalValDatos = zgeAcuEvalDatos.getElementoCodificado( zgeAcuEvalDatos.getElementoCodificadoReps()); zceAcuEvalValDatos.getIdentificador().setValue(acuEvalValDatos .getEvalValDatos().getIdEvalValDato().toString()); //ZCE.1 zceAcuEvalValDatos.getCodigo() .setValue(evalValDatosExt.getCodEvalValDatoExt()); //ZCE.2 zceAcuEvalValDatos.getDescripcion() .setValue(evalValDatosExt.getTxtEvalValDatoExt()); //ZCE.3 zceAcuEvalValDatos.getCodigoRegistro().getNamespaceID() .setValue(ZGE.ACU_EVAL_VAL_DATOS); //ZCE.4.1 zceAcuEvalValDatos.getCodigoRegistro().getUniversalID() .setValue(acuEvalValDatos.getIdAcuEvalValDato().toString()); //ZCE.4.2 logger.debug(" " + ZGE.ACU_EVAL_VAL_DATOS + ": " + zceAcuEvalValDatos.encode()); } } catch (NoExisteEquivalenciaException neee) { logger.error( " No existe equivalencia para el VALOR DE DATO DE EVALUACION: " + acuEvalValDatos.getEvalValDatos().toString()); resultado.add( "No existe equivalencia para el VALOR DE DATO DE EVALUACION: " + acuEvalValDatos.getEvalValDatos().toString()); } } } } } catch (NoExisteEquivalenciaException neee) { logger.error(" No existe equivalencia para el DATO DE EVALUACION: " + acuEvalDatos.getEvalDatos().toString()); resultado.add("No existe equivalencia para el DATO DE EVALUACION: " + acuEvalDatos.getEvalDatos().toString()); } } } //ACU_EVAL_FACUL List<AcuEvalFacul> acuEvalFaculs = acuEvaluaciones.getAcuEvalFaculs(); if (acuEvalFaculs != null && !acuEvalFaculs.isEmpty()) { Iterator<AcuEvalFacul> iteradorAcuEvalFaculs = acuEvalFaculs.iterator(); while (iteradorAcuEvalFaculs.hasNext()) { AcuEvalFacul acuEvalFacul = iteradorAcuEvalFaculs.next(); try { List<EvalValFaculExt> evalValFaculExts = evalValFaculExtService .findEquivalencia(acuCentros.getCentros(), acuEvalFacul.getEvalValFacul()); for (EvalValFaculExt evalValFaculExt : evalValFaculExts) { ZGE zgeAcuEvalFacul = zfn_m13_evaluaciones .getZGE(zfn_m13_evaluaciones.getZGEReps()); zgeAcuEvalFacul.getCodigoRegistro().getNamespaceID().setValue(ZGE.ACU_EVAL_FACUL); //ZGE.1.1 zgeAcuEvalFacul.getCodigoRegistro().getUniversalID() .setValue(acuEvalFacul.getIdAcuEvalFacul().toString()); //ZGE.1.2 zgeAcuEvalFacul.getIdentificador() .setValue(acuEvalFacul.getEvalValFacul().getIdEvalValFacul().toString()); //ZGE.2 zgeAcuEvalFacul.getCodigo().setValue(evalValFaculExt.getCodEvalValFaculExt()); //ZGE.3 zgeAcuEvalFacul.getDescripcion().setValue(evalValFaculExt.getTxtEvalValFaculExt()); //ZGE.4 logger.debug(" " + ZGE.ACU_EVAL_FACUL + ": " + zgeAcuEvalFacul.encode()); } } catch (NoExisteEquivalenciaException neee) { logger.error( " No existe equivalencia para la EVALUACION FACULTATIVA: " + acuEvalFacul.getEvalValFacul().toString()); resultado.add("No existe equivalencia para la EVALUACION FACULTATIVA: " + acuEvalFacul.getEvalValFacul().toString()); } } } } logger.debug(" Datos de las EVALUACIONES generados CORRECTAMENTE"); } //RESULTADO GENERAL DEL PROCESADO DEL MOVIMIENTO String mensaje = ""; if (!resultado.isEmpty()) { for (String linea : resultado) { mensaje += " - " + linea + "\n"; } } if (StringUtils.isNotBlank(mensaje)) { throw new HL7Exception(mensaje); } logger.debug(" Finalizando la generacion del mensaje ZFN_M13"); return zfn_m13; } }