forked from Coded/SIPRP
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
225 lines
7.9 KiB
225 lines
7.9 KiB
package shst.medicina.fichasclinicas.provider;
|
|
|
|
import java.util.Date;
|
|
import java.util.HashMap;
|
|
import java.util.List;
|
|
import java.util.Map;
|
|
import java.util.Set;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
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;
|
|
|
|
import com.evolute.utils.arrays.Virtual2DArray;
|
|
import com.evolute.utils.sql.Expression;
|
|
import com.evolute.utils.sql.Field;
|
|
import com.evolute.utils.sql.Select;
|
|
|
|
|
|
public class FichasClinicasDataProvider
|
|
{
|
|
@Autowired(required = true)
|
|
@Qualifier("defaultProvider")
|
|
ProviderSpringBean fichasProvidersBean;
|
|
|
|
@Autowired(required = true)
|
|
@Qualifier("siprpProvider")
|
|
ProviderSpringBean siprpProvidersBean;
|
|
|
|
|
|
public List<EmpresasData> getEmpresas(Integer userID, String filter) throws Exception
|
|
{
|
|
|
|
Expression dataFilter = new Field(EmpresasData.INACTIVO).isDifferent("y").and(new Field(EmpresasData.DATA_CANCELAMENTO).isEqual(null));
|
|
if(!filter.isEmpty())
|
|
{
|
|
dataFilter = dataFilter.and(new Field(EmpresasData.DESIGNACAO_SOCIAL).isILike("%"+filter+"%")) ;
|
|
}
|
|
|
|
/* filtros do utilizador */
|
|
|
|
return siprpProvidersBean.getENTITY_PROVIDER().listLoad(EmpresasData.class, dataFilter, new String[]{EmpresasData.DESIGNACAO_SOCIAL}, null);
|
|
|
|
}
|
|
|
|
public List<EstabelecimentosData> getEstabelecimentos(Integer userID, Integer empresaID, String filter) throws Exception
|
|
{
|
|
|
|
Expression dataFilter = new Field(EstabelecimentosData.INACTIVO).isDifferent("y").and(new Field(EstabelecimentosData.EMPRESA_ID).isEqual(empresaID));
|
|
if(!filter.isEmpty())
|
|
{
|
|
dataFilter = dataFilter.and(new Field(EstabelecimentosData.NOME).isILike("%"+filter+"%")) ;
|
|
}
|
|
|
|
/* filtros do utilizador */
|
|
|
|
return siprpProvidersBean.getENTITY_PROVIDER().listLoad(EstabelecimentosData.class, dataFilter, new String[]{EstabelecimentosData.NOME}, null);
|
|
|
|
}
|
|
|
|
public List<TrabalhadoresData> getTrabalhadores(Integer userID, Integer estabelecimentoID, String filter) throws Exception
|
|
{
|
|
|
|
Expression dataFilter = new Field(TrabalhadoresData.INACTIVO).isDifferent("y")
|
|
.and(new Field(TrabalhadoresData.ESTABELECIMENTO_ID).isEqual(estabelecimentoID))
|
|
.and(new Field(TrabalhadoresData.DATA_DEMISSAO).isEqual(null));
|
|
if(!filter.isEmpty())
|
|
{
|
|
dataFilter = dataFilter.and(new Field("PLAIN("+TrabalhadoresData.NOME+")").isILike("%"+filter+"%")) ;
|
|
}
|
|
|
|
/* filtros do utilizador */
|
|
|
|
return siprpProvidersBean.getENTITY_PROVIDER().listLoad(TrabalhadoresData.class, dataFilter, new String[]{TrabalhadoresData.NOME}, null);
|
|
|
|
}
|
|
|
|
public List<FcTipoFichaData> getTiposFicha(Integer userID) throws Exception
|
|
{
|
|
|
|
Expression dataFilter = new Field(FcTipoFichaData.DELETED_STAMP).isEqual(null);
|
|
|
|
/* filtros do utilizador */
|
|
|
|
return fichasProvidersBean.getENTITY_PROVIDER().listLoad(FcTipoFichaData.class, dataFilter, new String[]{FcTipoFichaData.DESCRICAO}, null);
|
|
|
|
}
|
|
|
|
public TrabalhadoresData getTrabalhador(Integer userID, Integer trabalhadorID, boolean forceLoad) throws Exception
|
|
{
|
|
Expression dataFilter = new Field(TrabalhadoresData.ID).isEqual(trabalhadorID);
|
|
if(!forceLoad)
|
|
{
|
|
dataFilter = dataFilter.and(new Field(TrabalhadoresData.INACTIVO).isDifferent("y")).and(new Field(TrabalhadoresData.DATA_DEMISSAO).isEqual(null));
|
|
}
|
|
|
|
/* filtros do utilizador */
|
|
|
|
TrabalhadoresData result = null;
|
|
List<TrabalhadoresData> trabs = siprpProvidersBean.getENTITY_PROVIDER().listLoad(TrabalhadoresData.class, dataFilter, new String[]{TrabalhadoresData.NOME}, null);
|
|
if(trabs.size() > 0)
|
|
{
|
|
result = trabs.get(0);
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
public List<FcFichaData> getFichasTrabalhador(Integer userID, Integer trabalhadorID) throws Exception
|
|
{
|
|
Expression dataFilter = new Field(FcFichaData.TRABALHADOR_ID).isEqual(trabalhadorID).and(new Field(FcFichaData.DELETED_STAMP).isEqual(null));
|
|
|
|
/* filtros do utilizador */
|
|
//dataFilter = dataFilter.and(new Field(FcFichaData.CREATED_USER_ID).isEqual(userID));
|
|
|
|
return fichasProvidersBean.getENTITY_PROVIDER().listLoad(FcFichaData.class, dataFilter, new String[]{FcFichaData.ID}, null);
|
|
}
|
|
|
|
public FcFichaData getFicha(Integer fichaID) throws Exception
|
|
{
|
|
return fichasProvidersBean.getENTITY_PROVIDER().load(FcFichaData.class, new Object[]{fichaID,null}, new String[]{FcFichaData.ID,FcFichaData.DELETED_STAMP}, null);
|
|
}
|
|
|
|
public FcFichaData atomSave(FcFichaData fichaBD,Set<com.evolute.entity.evo.EvoDataObject<com.evolute.entity.utils.IntegerPrimaryKey>> others) throws Exception
|
|
{
|
|
Object trx = null;
|
|
try
|
|
{
|
|
trx = fichasProvidersBean.getENTITY_PROVIDER().begin();
|
|
//fichasProvidersBean.getENTITY_PROVIDER().save(fichaBD, trx);
|
|
fichaBD.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
|
|
fichaBD.save(trx);
|
|
for(com.evolute.entity.evo.EvoDataObject<com.evolute.entity.utils.IntegerPrimaryKey> other : others)
|
|
{
|
|
//fichasProvidersBean.getENTITY_PROVIDER().save(other, trx);
|
|
other.setProvider(fichasProvidersBean.getENTITY_PROVIDER());
|
|
other.save(trx);
|
|
}
|
|
fichasProvidersBean.getENTITY_PROVIDER().commit(trx);
|
|
trx = null;
|
|
return fichaBD;
|
|
}
|
|
catch(Exception ex)
|
|
{
|
|
if(trx != null)
|
|
{
|
|
try
|
|
{
|
|
fichasProvidersBean.getENTITY_PROVIDER().rollback(trx);
|
|
}
|
|
catch(Exception i_ex)
|
|
{
|
|
;// silent fall
|
|
}
|
|
}
|
|
throw ex;
|
|
}
|
|
|
|
}
|
|
|
|
|
|
public Map<Integer,Date> getServerDateFichaConclusion(Integer fichaID) throws Exception
|
|
{
|
|
|
|
String queryString =
|
|
"SELECT 0 AS "+FcFichaData.ID+", NOW() AS"+FcFichaData.DATA_CONCLUSAO;
|
|
if(fichaID != null)
|
|
{
|
|
queryString = queryString + " UNION " +
|
|
"SELECT "+FcFichaData.ID+" , "+FcFichaData.DATA_CONCLUSAO+" FROM "+FcFichaData.TABLENAME+" WHERE "+FcFichaData.ID+" = "+fichaID ;//+" AND "+FcFichaData.DATA_CONCLUSAO+" IS NULL"+
|
|
//" ORDER BY "+FcFichaData.ID+" DESC";
|
|
}
|
|
Virtual2DArray queryResult = fichasProvidersBean.getDBMANAGER().getSharedExecuter(this).executeQuery(new Select(queryString));
|
|
Map<Integer,Date> rst = new HashMap<Integer, Date>();
|
|
for(int i = 0 ; i < queryResult.rowCount(); i++)
|
|
{
|
|
rst.put((Integer)queryResult.get(i, 0), (Date)queryResult.get(i, 1));
|
|
}
|
|
|
|
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<TrbHabilitacoesData> 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<TrbEstadoCivilData> 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<FcMotivosData> 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);
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|