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)