diff --git a/trunk/SiprpWebFichasClinicas/build.xml b/trunk/SiprpWebFichasClinicas/build.xml index 676fe270..ad0e25c5 100644 --- a/trunk/SiprpWebFichasClinicas/build.xml +++ b/trunk/SiprpWebFichasClinicas/build.xml @@ -10,6 +10,9 @@ + + + diff --git a/trunk/SiprpWebFichasClinicas/src/shst/medicina/fichasclinicas/beans/FichaBDDataBean.java b/trunk/SiprpWebFichasClinicas/src/shst/medicina/fichasclinicas/beans/FichaBDDataBean.java new file mode 100644 index 00000000..d80f9804 --- /dev/null +++ b/trunk/SiprpWebFichasClinicas/src/shst/medicina/fichasclinicas/beans/FichaBDDataBean.java @@ -0,0 +1,49 @@ +package shst.medicina.fichasclinicas.beans; + +import java.util.List; + +import shst.medicina.fichasclinicas.beans.fichasclinicas.FcMotivosBeanData; +import shst.medicina.fichasclinicas.beans.fichasclinicas.TrbEstadoCivilBeanData; +import shst.medicina.fichasclinicas.beans.fichasclinicas.TrbHabilitacoesBeanData; + +public class FichaBDDataBean +{ + private List motivos; + + private List habilitacoes; + private List estadosCivis; + + + public List getMotivos() + { + return motivos; + } + + public void setMotivos(List motivos) + { + this.motivos = motivos; + } + + public List getHabilitacoes() + { + return habilitacoes; + } + + public void setHabilitacoes(List habilitacoes) + { + this.habilitacoes = habilitacoes; + } + + public List getEstadosCivis() + { + return estadosCivis; + } + + public void setEstadosCivis(List estadosCivis) + { + this.estadosCivis = estadosCivis; + } + + + +} diff --git a/trunk/SiprpWebFichasClinicas/src/shst/medicina/fichasclinicas/logic/FichasClinicasLogic.java b/trunk/SiprpWebFichasClinicas/src/shst/medicina/fichasclinicas/logic/FichasClinicasLogic.java index c71d3084..fa95018f 100644 --- a/trunk/SiprpWebFichasClinicas/src/shst/medicina/fichasclinicas/logic/FichasClinicasLogic.java +++ b/trunk/SiprpWebFichasClinicas/src/shst/medicina/fichasclinicas/logic/FichasClinicasLogic.java @@ -16,6 +16,7 @@ import org.springframework.beans.factory.annotation.Autowired; import shst.medicina.fichasclinicas.beans.EvoMessageBean; import shst.medicina.fichasclinicas.beans.EvoMessageTypeBean; import shst.medicina.fichasclinicas.beans.EvoResponseBean; +import shst.medicina.fichasclinicas.beans.FichaBDDataBean; import shst.medicina.fichasclinicas.beans.FichaExchangeBean; import shst.medicina.fichasclinicas.beans.FichaResumeBean; import shst.medicina.fichasclinicas.beans.TrabalhadorResumeBean; @@ -35,6 +36,9 @@ import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaExameObjectivoBe import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaHabitosBeanData; import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaInformacaoPeriodicaBeanData; import shst.medicina.fichasclinicas.beans.fichasclinicas.FcFichaProblemasSolucoesBeanData; +import shst.medicina.fichasclinicas.beans.fichasclinicas.FcMotivosBeanData; +import shst.medicina.fichasclinicas.beans.fichasclinicas.TrbEstadoCivilBeanData; +import shst.medicina.fichasclinicas.beans.fichasclinicas.TrbHabilitacoesBeanData; import shst.medicina.fichasclinicas.beans.shst.EmpresasBeanData; import shst.medicina.fichasclinicas.beans.shst.EstabelecimentosBeanData; import shst.medicina.fichasclinicas.beans.shst.TrabalhadoresBeanData; @@ -54,6 +58,10 @@ import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaExameObjectivoDat import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaHabitosData; import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaInformacaoPeriodicaData; import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaProblemasSolucoesData; +import shst.medicina.fichasclinicas.data.fichasclinicas.FcMotivosData; +import shst.medicina.fichasclinicas.data.fichasclinicas.FcTipoFichaData; +import shst.medicina.fichasclinicas.data.fichasclinicas.TrbEstadoCivilData; +import shst.medicina.fichasclinicas.data.fichasclinicas.TrbHabilitacoesData; import shst.medicina.fichasclinicas.data.fichasclinicas.inner.FcTipoFicha; import shst.medicina.fichasclinicas.data.shst.EmpresasData; import shst.medicina.fichasclinicas.data.shst.EstabelecimentosData; @@ -199,6 +207,17 @@ public class FichasClinicasLogic FcFichaInformacaoPeriodica_D_to_B = tmp.toArray(new String[]{}); } + + private static final String ADM_COD = "ADMISSAO"; + private static final String PER_INI_COD = "PERIODICA_INICIAL "; + private static final String OCA_COD = "OCASIONAL"; + private static final String OCA_PREFIX = "OC_"; + private static final String ENF_COD = "ENFERMAGEM"; +// private static final String ENF_PREFIX = "MC_ENF_"; + private static final String MDC_COD = "MEDICINA_CURATIVA"; +// private static final String MDC_PREFIX = "MC_ENF_"; + private static final String MDC_ENF_PREFIX = "MC_ENF_"; + private Map filtra(Map in, String[] filtro) { Map out = new HashMap(); @@ -1099,6 +1118,90 @@ public class FichasClinicasLogic } + public EvoResponseBean getDadosFichaFromBD( EvoUsrUserData user, Integer tipoFichaID) + { + EvoResponseBean result = new EvoResponseBean(); + if(user != null) + { + try + { + FcTipoFichaData tipo_ficha = fichasProvider.getTipoFichaByID(tipoFichaID); + FichaBDDataBean resData = new FichaBDDataBean(); + + if(tipo_ficha != null) + { + if(ADM_COD.equalsIgnoreCase(tipo_ficha.getCodigo()) || PER_INI_COD.equalsIgnoreCase(tipo_ficha.getCodigo())) + { + { + List in_list = fichasProvider.getHabilitacoes(); + List out_list = new LinkedList(); + for(TrbHabilitacoesData in : in_list) + { + TrbHabilitacoesBeanData out = new TrbHabilitacoesBeanData(); + out.setMapData(in.getPropertiesValues(new String[]{TrbHabilitacoesData.ID,TrbHabilitacoesData.CODIGO,TrbHabilitacoesData.DESCRICAO,TrbHabilitacoesData.TEM_INFO_EXTRA})); + out_list.add(out); + } + resData.setHabilitacoes(out_list); + } + { + List in_list = fichasProvider.getEstadosCivis(); + List out_list = new LinkedList(); + for(TrbEstadoCivilData in : in_list) + { + TrbEstadoCivilBeanData out = new TrbEstadoCivilBeanData(); + out.setMapData(in.getPropertiesValues(new String[]{TrbEstadoCivilData.ID,TrbEstadoCivilData.CODIGO,TrbEstadoCivilData.DESCRICAO})); + out_list.add(out); + } + resData.setEstadosCivis(out_list); + } + } + else if( OCA_COD.equalsIgnoreCase(tipo_ficha.getCodigo()) || ENF_COD.equalsIgnoreCase(tipo_ficha.getCodigo()) || MDC_COD.equalsIgnoreCase(tipo_ficha.getCodigo()) ) + { + List in_list = null; + if( OCA_COD.equalsIgnoreCase(tipo_ficha.getCodigo()) ) + { + in_list = fichasProvider.getMotivos(OCA_PREFIX); + } + else + { + in_list = fichasProvider.getMotivos(MDC_ENF_PREFIX); + } + List out_list = new LinkedList(); + for(FcMotivosData in : in_list) + { + FcMotivosBeanData out = new FcMotivosBeanData(); + out.setMapData(in.getPropertiesValues(new String[]{FcMotivosData.ID,FcMotivosData.CODIGO,FcMotivosData.DESCRICAO,FcMotivosData.PRECISA_DETALHE})); + out_list.add(out); + } + resData.setMotivos(out_list); + } + } + + result.setSuccess(true); + result.setData(resData); + } + catch(Exception ex) + { + result.setSuccess(false); + EvoMessageBean msg = new EvoMessageBean(); + msg.setType(EvoMessageTypeBean.ERROR); + msg.setMessageData("Erro ao comunicar com a Base de dados!"); + result.addMessage(msg); + ErrorLogger.logException(ex, Level.SEVERE); + } + } + else + { + result.setSuccess(false); + EvoMessageBean msg = new EvoMessageBean(); + msg.setType(EvoMessageTypeBean.SESSIONTIMEOUT); + msg.setMessageData("Utilizador asssociado à sessão inválido/inexistente!"); + result.addMessage(msg); + } + return result; + } + + @@ -1115,4 +1218,5 @@ public class FichasClinicasLogic return true; } + } diff --git a/trunk/SiprpWebFichasClinicas/src/shst/medicina/fichasclinicas/provider/FichasClinicasDataProvider.java b/trunk/SiprpWebFichasClinicas/src/shst/medicina/fichasclinicas/provider/FichasClinicasDataProvider.java index d4bbac00..a7be5af3 100644 --- a/trunk/SiprpWebFichasClinicas/src/shst/medicina/fichasclinicas/provider/FichasClinicasDataProvider.java +++ b/trunk/SiprpWebFichasClinicas/src/shst/medicina/fichasclinicas/provider/FichasClinicasDataProvider.java @@ -11,7 +11,10 @@ import org.springframework.beans.factory.annotation.Qualifier; import pt.evolute.data.ProviderSpringBean; import shst.medicina.fichasclinicas.data.fichasclinicas.FcFichaData; +import shst.medicina.fichasclinicas.data.fichasclinicas.FcMotivosData; import shst.medicina.fichasclinicas.data.fichasclinicas.FcTipoFichaData; +import shst.medicina.fichasclinicas.data.fichasclinicas.TrbEstadoCivilData; +import shst.medicina.fichasclinicas.data.fichasclinicas.TrbHabilitacoesData; import shst.medicina.fichasclinicas.data.shst.EmpresasData; import shst.medicina.fichasclinicas.data.shst.EstabelecimentosData; import shst.medicina.fichasclinicas.data.shst.TrabalhadoresData; @@ -185,6 +188,32 @@ public class FichasClinicasDataProvider return rst; } + public FcTipoFichaData getTipoFichaByID(Integer tipoFichaID) throws Exception + { + return fichasProvidersBean.getENTITY_PROVIDER().load(FcTipoFichaData.class, new Object[]{tipoFichaID,null}, new String[]{FcTipoFichaData.ID,FcTipoFichaData.DELETED_STAMP}); + } + + public List getHabilitacoes() throws Exception + { + Expression dataFilter = new Field(TrbHabilitacoesData.DELETED_STAMP).isEqual(null); + + return fichasProvidersBean.getENTITY_PROVIDER().listLoad(TrbHabilitacoesData.class, dataFilter, new String[]{TrbHabilitacoesData.DESCRICAO}, null); + } + + public List getEstadosCivis() throws Exception + { + Expression dataFilter = new Field(TrbEstadoCivilData.DELETED_STAMP).isEqual(null); + + return fichasProvidersBean.getENTITY_PROVIDER().listLoad(TrbEstadoCivilData.class, dataFilter, new String[]{TrbEstadoCivilData.DESCRICAO}, null); + } + + public List getMotivos(String prefix) throws Exception + { + Expression dataFilter = new Field(FcMotivosData.DELETED_STAMP).isEqual(null).and(new Field("LEFT("+FcMotivosData.CODIGO+","+prefix.length()+")").isEqual(prefix)); + + return fichasProvidersBean.getENTITY_PROVIDER().listLoad(FcMotivosData.class, dataFilter, new String[]{FcMotivosData.DESCRICAO}, null); + } + diff --git a/trunk/SiprpWebFichasClinicas/src/shst/medicina/fichasclinicas/webservices/jaxrs/FichasClinicasImpl.java b/trunk/SiprpWebFichasClinicas/src/shst/medicina/fichasclinicas/webservices/jaxrs/FichasClinicasImpl.java index 603fee45..8fcca0ef 100644 --- a/trunk/SiprpWebFichasClinicas/src/shst/medicina/fichasclinicas/webservices/jaxrs/FichasClinicasImpl.java +++ b/trunk/SiprpWebFichasClinicas/src/shst/medicina/fichasclinicas/webservices/jaxrs/FichasClinicasImpl.java @@ -33,6 +33,7 @@ import pt.evolute.data.ProviderSpringBean; import shst.medicina.fichasclinicas.beans.EvoMessageBean; import shst.medicina.fichasclinicas.beans.EvoMessageTypeBean; import shst.medicina.fichasclinicas.beans.EvoResponseBean; +import shst.medicina.fichasclinicas.beans.FichaBDDataBean; import shst.medicina.fichasclinicas.beans.FichaExchangeBean; import shst.medicina.fichasclinicas.beans.TrabalhadorResumeBean; import shst.medicina.fichasclinicas.beans.fichasclinicas.FcTipoFichaBeanData; @@ -286,6 +287,17 @@ public class FichasClinicasImpl { return fichasClinicasLogic.loadTrabalhadorResume(user, trabalhadorID); } + @GET + @Path("/getDadosFichaFromBD") + @Produces(MediaType.APPLICATION_JSON) + public EvoResponseBean getDadosFichaFromBD(@Context HttpServletRequest req, @QueryParam("tipoFichaID") Integer tipoFichaID) + { + EvoUsrUserData user = (EvoUsrUserData) req.getSession().getAttribute(WebServicesConst.USER_SESSION_STORE_VAR); + return fichasClinicasLogic.getDadosFichaFromBD(user, tipoFichaID); + } + + + @GET @Path("/getViews") @Produces(MediaType.TEXT_HTML)