Está en la página 1de 14

/* * RegistroSignosVitalesPFBean.java * * Proyecto: Nuevo Expediente Clnico Electrnico (NECE) * * * Autor: EJCM Omnisys */ package mx.gob.imss.ctsm.nece.planificacionfamiliar.

presentacion; import import import import import import import import import import import import import import import import import import import import import import tor; import import import import import import import import import import import java.math.BigDecimal; java.text.DecimalFormat; java.text.NumberFormat; java.util.ArrayList; java.util.HashMap; java.util.Hashtable; java.util.List; javax.faces.application.FacesMessage; javax.faces.component.UIInput; javax.faces.component.html.HtmlInputText; javax.faces.context.FacesContext; mx.gob.imss.cia.framework.core.exception.AbstractException; mx.gob.imss.ctsm.nece.agenda.presentacion.CitaBean; mx.gob.imss.ctsm.nece.atencion.integracion.dto.SignosVitalesDto; mx.gob.imss.ctsm.nece.atencion.integracion.hbm.Atencion; mx.gob.imss.ctsm.nece.atencion.integracion.hbm.EnumMedidaMaxMin; mx.gob.imss.ctsm.nece.atencion.integracion.hbm.EnumTipoMedida; mx.gob.imss.ctsm.nece.atencion.integracion.hbm.Medida; mx.gob.imss.ctsm.nece.atencion.integracion.hbm.MedidaID; mx.gob.imss.ctsm.nece.atencion.integracion.hbm.MedidaReferencia; mx.gob.imss.ctsm.nece.atencion.integracion.hbm.TipoMedida; mx.gob.imss.ctsm.nece.atencion.presentacion.RegistraSignosVitalesCEValida mx.gob.imss.ctsm.nece.atencion.servicios.AtencionService; mx.gob.imss.ctsm.nece.atencion.servicios.MedidaService; mx.gob.imss.ctsm.nece.integracion.hbm.EnumNivelServicio; mx.gob.imss.ctsm.nece.paciente.integracion.hbm.Paciente; mx.gob.imss.ctsm.nece.presentacion.AbstractBaseBean; mx.gob.imss.ctsm.nece.presentacion.EnumNombreBeans; mx.gob.imss.ctsm.nece.presentacion.EnumNombreParams; org.ajax4jsf.component.html.HtmlAjaxCommandButton; org.apache.commons.lang.StringUtils; org.apache.log4j.Logger; org.richfaces.component.html.HtmlModalPanel;

public class RegistraSignosVitalesPFBean extends AbstractBaseBean{ private private private private private private private private private static static static static static static static static static final final final final final final final final final String CEROCOMACERO = "0,0"; String WITHE_SPACE = " "; String GUION = " - "; String CEROPUNTOCERO = "0.0"; String STRING_CERO = "0"; Double CERO_DEC = 0D; int DEC_PESO = 3; int DEC_TEMPERATURA = 1; int EDAD_REF = 5;

private private private private private private private private private private private private private private private private private private private private private private private private private private private private private private );

static final int SEMANAS_EN_UN_ANO = 52; static final long serialVersionUID = 5244455995602978861L; MedidaService medidaService; Boolean esObligatorio; Boolean noActivo; String leyPeso; String leyTalla; String leyImc; String leyTaDiastolica; String leyTaSistolica; Double valorPesoMax; Double valorPesoMin; Double valorTallaMax; Double valorTallaMin; Double valorTASistolicaMax; Double valorTASistolicaMin; Double valorTADiastolicaMax; Double valorTADiastolicaMin; Double selImc; Double selPeso; Double selTalla; Integer selTaDiastolica; Integer selTaSistolica; HtmlInputText htmlselPeso; HtmlInputText htmlselDiastolica; HtmlInputText htmlselSistolica; HtmlInputText htmlselTalla; HtmlAjaxCommandButton htmlAceptar; HtmlModalPanel panelConaultaExterna; HashMap<String, Double> hmConsExt = new HashMap<String, Double>(

private List<TipoMedida> tipoMedida = new ArrayList<TipoMedida>(); private Logger logger = Logger.getLogger(this.getClass()); /** * * Constructor del Bean. */ public RegistraSignosVitalesPFBean() { super(); this.getManejoSesionBean().getPilaNavegacion().push(this); this.cargarReferencias(); this.inicializar(); } public Boolean getEsObligatorio() { return esObligatorio; } public void setEsObligatorio(Boolean esObligatorio) { this.esObligatorio = esObligatorio; } public String getLeyPeso() { return leyPeso; } public void setLeyPeso(String leyPeso) {

this.leyPeso = leyPeso; } public String getLeyTalla() { return leyTalla; } public void setLeyTalla(String leyTalla) { this.leyTalla = leyTalla; } public String getLeyImc() { return leyImc; } public void setLeyImc(String leyImc) { this.leyImc = leyImc; } public String getLeyTaDiastolica() { return leyTaDiastolica; } public void setLeyTaDiastolica(String leyTaDiastolica) { this.leyTaDiastolica = leyTaDiastolica; } public String getLeyTaSistolica() { return leyTaSistolica; } public void setLeyTaSistolica(String leyTaSistolica) { this.leyTaSistolica = leyTaSistolica; } public Double getValorPesoMax() { return valorPesoMax; } public void setValorPesoMax(Double valorPesoMax) { this.valorPesoMax = valorPesoMax; } public Double getValorPesoMin() { return valorPesoMin; } public void setValorPesoMin(Double valorPesoMin) { this.valorPesoMin = valorPesoMin; } public Double getValorTallaMax() { return valorTallaMax; } public void setValorTallaMax(Double valorTallaMax) { this.valorTallaMax = valorTallaMax; } public Double getValorTallaMin() {

return valorTallaMin; } public void setValorTallaMin(Double valorTallaMin) { this.valorTallaMin = valorTallaMin; } public Double getValorTASistolicaMax() { return valorTASistolicaMax; } public void setValorTASistolicaMax(Double valorTASistolicaMax) { this.valorTASistolicaMax = valorTASistolicaMax; } public Double getValorTASistolicaMin() { return valorTASistolicaMin; } public void setValorTASistolicaMin(Double valorTASistolicaMin) { this.valorTASistolicaMin = valorTASistolicaMin; } public Double getValorTADiastolicaMax() { return valorTADiastolicaMax; } public void setValorTADiastolicaMax(Double valorTADiastolicaMax) { this.valorTADiastolicaMax = valorTADiastolicaMax; } public Double getValorTADiastolicaMin() { return valorTADiastolicaMin; } public void setValorTADiastolicaMin(Double valorTADiastolicaMin) { this.valorTADiastolicaMin = valorTADiastolicaMin; } public Double getSelImc() { return selImc; } public void setSelImc(Double selImc) { this.selImc = selImc; } public Double getSelPeso() { return selPeso; } public void setSelPeso(Double selPeso) { this.selPeso = selPeso; } public Double getSelTalla() { return selTalla; } public void setSelTalla(Double selTalla) {

this.selTalla = selTalla; } public Integer getSelTaDiastolica() { return selTaDiastolica; } public void setSelTaDiastolica(Integer selTaDiastolica) { this.selTaDiastolica = selTaDiastolica; } public Integer getSelTaSistolica() { return selTaSistolica; } public void setSelTaSistolica(Integer selTaSistolica) { this.selTaSistolica = selTaSistolica; } public HtmlInputText getHtmlselPeso() { return htmlselPeso; } public void setHtmlselPeso(HtmlInputText htmlselPeso) { this.htmlselPeso = htmlselPeso; } public HtmlInputText getHtmlselDiastolica() { return htmlselDiastolica; } public void setHtmlselDiastolica(HtmlInputText htmlselDiastolica) { this.htmlselDiastolica = htmlselDiastolica; } public HtmlInputText getHtmlselSistolica() { return htmlselSistolica; } public void setHtmlselSistolica(HtmlInputText htmlselSistolica) { this.htmlselSistolica = htmlselSistolica; } public HtmlInputText getHtmlselTalla() { return htmlselTalla; } public void setHtmlselTalla(HtmlInputText htmlselTalla) { this.htmlselTalla = htmlselTalla; } public void setPanelConaultaExterna(HtmlModalPanel panelConaultaExterna) { this.panelConaultaExterna = panelConaultaExterna; } public HtmlModalPanel getPanelConaultaExterna() { return panelConaultaExterna; } public void setNoActivo(Boolean noActivo) {

this.noActivo = noActivo; } public Boolean getNoActivo() { return noActivo; } public void setHtmlAceptar(HtmlAjaxCommandButton htmlAceptar) { this.htmlAceptar = htmlAceptar; } public HtmlAjaxCommandButton getHtmlAceptar() { return htmlAceptar; } public HashMap<String, Double> getHmConsExt() { return hmConsExt; } public void setHmConsExt(HashMap<String, Double> hmConsExt) { this.hmConsExt = hmConsExt; } public List<TipoMedida> getTipoMedida() { return tipoMedida; } public void setTipoMedida(List<TipoMedida> tipoMedida) { this.tipoMedida = tipoMedida; } /** * Establece el valor del atributo medidaService. * * @param medidaService * the medidaService to set */ public void setMedidaService(MedidaService medidaService) { this.medidaService = medidaService; } /** * * Inicializa los campos. */ public void inicializar() { this.selPeso = null; this.leyPeso = StringUtils.EMPTY; this.selTalla = null; this.leyTalla = StringUtils.EMPTY; this.selImc = null; this.leyImc = StringUtils.EMPTY; this.selTaSistolica = null; this.leyTaSistolica = StringUtils.EMPTY; this.selTaDiastolica = null; this.leyTaDiastolica = StringUtils.EMPTY; this.noActivo = Boolean.FALSE; this.esObligatorio = Boolean.TRUE; }

/** * * Cargo las referencias de las medidas. * */ public void cargarReferencias() { //this.ejecutarServTipoMedida(); try { this.hmConsExt = this.medidaService.cargarMinMax(); this.valorPesoMin = this.hmConsExt.get(EnumMedidaMaxMin. PESO_MIN .getValor()); this.valorPesoMax = this.hmConsExt.get(EnumMedidaMaxMin. PESO_MAX .getValor()); this.valorTallaMin = this.hmConsExt.get(EnumMedidaMaxMin .ALTRUA_MIN .getValor()); this.valorTallaMax = this.hmConsExt.get(EnumMedidaMaxMin .ALTURA_MAX .getValor()); this.valorTASistolicaMin = this.hmConsExt .get(EnumMedidaMaxMin.TENSION_ART_SIS_MI N.getValor()); this.valorTASistolicaMax = this.hmConsExt .get(EnumMedidaMaxMin.TENSION_ART_SIS_MA X.getValor()); this.valorTADiastolicaMin = this.hmConsExt .get(EnumMedidaMaxMin.TENSION_ART_DIA_MI N.getValor()); this.valorTADiastolicaMax = this.hmConsExt .get(EnumMedidaMaxMin.TENSION_ART_DIA_MA X.getValor()); } catch (AbstractException e) { logger.error(e); } }

/** * Valida la leyenda de IMC. * */ // public void validarLeyendaImc() { // if (this.selImc != null && this.selImc>0D) { // this.leyImc = RegistraSignosVitalesCEValidator.validarLe yendaImc( // this.selImc, this.tipoMedida); // } else { // this.leyImc = StringUtils.EMPTY; // } // } //

// /** // * Valida la leyenda de Tension Arterial Diastolica. // * // */ // public void validarLeyendaTaDiastolica() { // if (this.selTaDiastolica != null) { // if (validarRangosDiastolica()) { // this.leyTaDiastolica = RegistraSignosVitalesCEVa lidator // .validarLeyendaTaDiastolica(this .selTaDiastolica, // this.tipoMedida, this.edadPacienteSemanas); // } else { // this.leyTaDiastolica = StringUtils.EMPTY; // } // } else { // this.leyTaDiastolica = StringUtils.EMPTY; // } // } // // /** // * Valida la leyenda de Tension Arterial Sistolica. // * // */ // public void validarLeyendaTaSistolica() { // if (this.selTaSistolica != null) { // if (validarRangosSistolica()) { // this.leyTaSistolica = RegistraSignosVitalesCEVal idator // .validarLeyendaTaSistolica(this. selTaSistolica, // this.edad, this. tipoMedida); // } else { // this.leyTaSistolica = StringUtils.EMPTY; // } // } else { // this.leyTaSistolica = StringUtils.EMPTY; // } // } /** * Llama al servicio medidaService.validarRango para valida los rangos d el Peso. * * @return */ public Boolean validarRangosPeso() { Boolean ok = Boolean.FALSE; try { if (this.selPeso != null) { if (this.valorPesoMin != null && this.valorPesoM ax != null) { if (medidaService.validarRango(this.selP eso, this.hmConsExt, EnumTipo Medida.PESO.getValor())) { ok = Boolean.TRUE;

} else { NumberFormat formatterConDecimal es = new DecimalFormat( "#0.0"); NumberFormat formatter = new Dec imalFormat("#0"); String rangoMinStr = formatterCo nDecimales .format(this.val orPesoMin); String rangoMaxStr = formatter .format(this.val orPesoMax); StringBuffer respuesta = new Str ingBuffer(this.obtenerMensajesAtencion() .getString("medi da_msgRan_campos")); respuesta.append(WITHE_SPACE); respuesta.append(rangoMinStr); respuesta.append(GUION); respuesta.append(rangoMaxStr); agregarMensajeAComponente(respue sta.toString(), FacesMessage.SEV ERITY_ERROR, htmlselPeso .getClientId(FacesContext .getCurrentInstance())); this.selPeso = null; } } else { logger.error(this.obtenerMensajesAtencio n().getString( "medida_err_message")); return ok; } } return ok; } catch (NumberFormatException nfe) { logger.error(nfe); agregarMensajeAComponente(this.obtenerMensajesAtencion() .getString( "medida_msgNum_message"), FacesMessage.S EVERITY_ERROR, htmlselPeso.getClientId(FacesContext.get CurrentInstance())); this.selPeso = null; return ok; } } /** * Controla la cantidad de dgitos despues del "." para el peso. * */ public void validarDecimalesPeso() { if (this.selPeso != null) {

// //

// if (validarRangosPeso()) { // BigDecimal bd = new BigDecimal(selPeso.toString( )); // if (bd.scale() > DEC_PESO) { // agregarMensajeAComponente(this.obtenerMe nsajesAtencion() // .getString("medida_msgEr r_peso"), // FacesMessage.SEVERITY_ER ROR, htmlselPeso // .getClie ntId(FacesContext // .getCurrentInstance())); // this.selPeso = null; // } else { // if (this.selTalla != null // && this.valorTallaMin != null // && this.valorTallaMax != null // && medidaService.validar Rango(this.selTalla, // this.hmC onsExt, EnumTipoMedida.ALTURA.getValor())) { // // this.calcularImc(); // } // } // } // } else { // this.selPeso = null; // this.selImc = CERO_DEC; // this.leyImc = StringUtils.EMPTY; // } // } // // /** // * Llama al servicio medidaService.validarRango para valida los rangos d e la TA Diastolica. // * // * @return // */ // public Boolean validarRangosDiastolica() { // Boolean ok_ = Boolean.FALSE; // try { // if (this.selTaDiastolica != null) { // Double td_ = this.selTaDiastolica.doubleValue(); // if (medidaService.validarRango(td_, this.hmConsE xt, // EnumTipoMedida.TENSION_ARTERIAL_ DIASTOLICA.getValor())) { // ok_ = Boolean.TRUE; // } else { // int rangoMin_ = this.valorTADiastolicaMi n.intValue(); // int rangoMax_ = this.valorTADiastolicaMa x.intValue(); // StringBuffer respuesta = new StringBuffe r(this.obtenerMensajesAtencion() // .getString("medida_msgRa

n_campos")); // respuesta.append(WITHE_SPACE); // respuesta.append(String.valueOf(rangoMin _)); // respuesta.append(GUION); // respuesta.append(String.valueOf(rangoMax _)); // agregarMensajeAComponente(respuesta.toSt ring(), // FacesMessage.SEVERITY_ER ROR, htmlselDiastolica // .getClie ntId(FacesContext // .getCurrentInstance())); // this.selTaDiastolica = null; // } // } // return ok_; // } catch (NumberFormatException nfe) { // logger.error(nfe); // agregarMensajeAComponente(this.obtenerMensajesAtencion() .getString( // "medida_msgNum_message"), FacesMessage.S EVERITY_ERROR, // htmlselDiastolica.getClientId(FacesConte xt // .getCurrentInstance())); // this.selTaDiastolica = null; // return ok_; // } // } // // /** // * Llama al servicio medidaService.validarRango para valida los rangos d e la TA Sistolica. // * // * @return // */ // public Boolean validarRangosSistolica() { // Boolean ok_ = Boolean.FALSE; // try { // if (this.selTaSistolica != null) { // Double ts_ = this.selTaSistolica.doubleValue(); // if (medidaService.validarRango(ts_, this.hmConsE xt, // EnumTipoMedida.TENSION_ARTERIAL_ SISTOLICA.getValor())) { // ok_ = Boolean.TRUE; // } else { // int rangoMin_ = this.valorTASistolicaMin .intValue(); // int rangoMax_ = this.valorTASistolicaMax .intValue(); // StringBuffer respuesta = new StringBuffe r(this.obtenerMensajesAtencion() // .getString("medida_msgRa n_campos")); // respuesta.append(WITHE_SPACE); // respuesta.append(String.valueOf(rangoMin

_)); // respuesta.append(GUION); // respuesta.append(String.valueOf(rangoMax _)); // agregarMensajeAComponente(respuesta.toSt ring(), // FacesMessage.SEVERITY_ER ROR, htmlselSistolica // .getClie ntId(FacesContext // .getCurrentInstance())); // this.selTaSistolica = null; // } // } // return ok_; // } catch (NumberFormatException nfe) { // logger.error(nfe); // agregarMensajeAComponente(this.obtenerMensajesAtencion() .getString( // "medida_msgNum_message"), FacesMessage.S EVERITY_ERROR, // htmlselSistolica.getClientId(FacesContex t // .getCurrentInstance())); // this.selTaSistolica = null; // return ok_; // } // } // /** // * Llama al servicio medidaService.validarRango para valida los rangos d e la Talla. // * // * @return // */ // public Boolean validarRangosTalla() { // Boolean ok_ = Boolean.FALSE; // try { // if (this.selTalla != null) { // if (this.valorTallaMin != null && this.valorTall aMax != null) { // if (medidaService.validarRango(this.selT alla, // this.hmConsExt, EnumTipo Medida.ALTURA.getValor())) { // ok_ = Boolean.TRUE; // } else { // NumberFormat formatterConDecimal es = new DecimalFormat( // "#0.00"); // String rangoMinStr = formatterCo nDecimales // .format(this.val orTallaMin); // String rangoMaxStr = formatterCo nDecimales // .format(this.val orTallaMax); // StringBuffer respuesta = new Str

ingBuffer(this.obtenerMensajesAtencion() // .getString("medi da_msgRan_campos")); // respuesta.append(WITHE_SPACE); // respuesta.append(rangoMinStr); // respuesta.append(GUION); // respuesta.append(rangoMaxStr); // agregarMensajeAComponente(respue sta.toString(), // FacesMessage.SEV ERITY_ERROR, htmlselTalla // .getClientId(FacesContext // .getCurrentInstance())); // this.selTalla = null; // } // } else { // logger.error(this.obtenerMensajesAtencio n().getString( // "medida_err_message")); // return ok_; // } // } else { // this.selTalla = null; // this.selImc = CERO_DEC; // this.leyImc = StringUtils.EMPTY; // } // return ok_; // } catch (NumberFormatException nfe) { // logger.error(nfe); // agregarMensajeAComponente(this.obtenerMensajesAtencion() .getString( // "medida_msgNum_message"), FacesMessage.S EVERITY_ERROR, // htmlselTalla.getClientId(FacesContext.ge tCurrentInstance())); // this.selTalla = null; // // return ok_; // } // }

/** * Consulta Externa. * * Valida si es necesario realizar el clculo de IMC. En caso de ser neces ario, llama al servico que * realiza el clculo. */ // public void calcularImc() { // try { // if (this.validarRangosTalla() && validarRangosPeso()) { // this.selImc = this.medidaService.calcularImc(thi s.selTalla, // this.selPeso); // this.validarLeyendaImc(); // } else {

// // // // } catch // // .getString( // EVERITY_ERROR, // CurrentInstance())); // // // // // } // }

this.selImc = CERO_DEC; this.leyImc = StringUtils.EMPTY; } (AbstractException ae) { logger.error(ae); agregarMensajeAComponente(this.obtenerMensajesAtencion() "medida_msgNum_message"), FacesMessage.S htmlselPeso.getClientId(FacesContext.get this.selTalla = null; this.selPeso = null; this.leyImc = StringUtils.EMPTY; this.selImc = CERO_DEC;

También podría gustarte