Summary Table
Categories |
Total Count |
PII |
0 |
URL |
0 |
DNS |
0 |
EKL |
0 |
IP |
0 |
PORT |
0 |
VsID |
0 |
CF |
0 |
AI |
0 |
VPD |
0 |
PL |
0 |
Other |
0 |
File Content
/*
* GenericServiceImpl.java
* Copyright (c) 2017 Veterans Affairs.
*/
package gov.va.oneconsult.seoc.api.service.impl;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Optional;
import java.util.Set;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import gov.va.oneconsult.seoc.api.model.BillingCode;
import gov.va.oneconsult.seoc.api.model.CategoryOfCare;
import gov.va.oneconsult.seoc.api.model.ClinicalService;
import gov.va.oneconsult.seoc.api.model.Hptc;
import gov.va.oneconsult.seoc.api.model.Qasp;
import gov.va.oneconsult.seoc.api.model.SeocConfig;
import gov.va.oneconsult.seoc.api.model.ServiceLine;
import gov.va.oneconsult.seoc.api.model.Status;
import gov.va.oneconsult.seoc.api.repository.BillingCodeRepository;
import gov.va.oneconsult.seoc.api.repository.CategoryOfCareRepository;
import gov.va.oneconsult.seoc.api.repository.ClinicalServiceRepository;
import gov.va.oneconsult.seoc.api.repository.HptcRepository;
import gov.va.oneconsult.seoc.api.repository.QaspRepository;
import gov.va.oneconsult.seoc.api.repository.SeocConfigRepository;
import gov.va.oneconsult.seoc.api.repository.ServiceLineRepository;
import gov.va.oneconsult.seoc.api.repository.StatusRepository;
import gov.va.oneconsult.seoc.api.service.GenericService;
import gov.va.oneconsult.seoc.api.util.Constants;
import gov.va.oneconsult.seoc.api.util.EncodeLoggerFactory;
/**
* @author AbleVets
*/
@Component
public class GenericServiceImpl implements GenericService
{
public static final Logger logger = EncodeLoggerFactory.getLogger(GenericServiceImpl.class);
@Autowired
public CategoryOfCareRepository categoryOfCareRepository;
@Autowired
public BillingCodeRepository billingCodeRepository;
@Autowired
public ServiceLineRepository serviceLineRepository;
@Autowired
public ClinicalServiceRepository clinicalServiceRepository;
@Autowired
public StatusRepository statusRepository;
@Autowired
public SeocConfigRepository seocConfigRepository;
@Autowired
public QaspRepository qaspRepository;
@Autowired
public HptcRepository hptcRepository;
/**
* {@inheritDoc}
*/
@Override
public Set<CategoryOfCare> getAllCategoryOfCare()
{
Set<CategoryOfCare> categoriesOfCare = categoryOfCareRepository.findAllCategoriesOfCare();
return categoriesOfCare != null ? (Set<CategoryOfCare>) categoriesOfCare
: (new HashSet<CategoryOfCare>());
}
/**
* {@inheritDoc}
*/
@Override
public Set<ServiceLine> getAllServiceLine()
{
Set<ServiceLine> serviceLines = serviceLineRepository.findAllServiceLines();
return serviceLines != null ? (Set<ServiceLine>) serviceLines
: (new HashSet<ServiceLine>());
}
/**
* {@inheritDoc}
*/
@Override
public Set<ClinicalService> getAllClinicalService()
{
Set<ClinicalService> clinicalServices = clinicalServiceRepository.findAllClinicalServices();
return clinicalServices != null ? (Set<ClinicalService>) clinicalServices
: (new HashSet<ClinicalService>());
}
/**
* {@inheritDoc}
*/
@Override
public Set<ServiceLine> getServiceLineByDescription(String description)
{
return serviceLineRepository.fetchByDescription(description) != null
? (Set<ServiceLine>) serviceLineRepository.fetchByDescription(description)
: (new HashSet<ServiceLine>());
}
/**
* {@inheritDoc}
*/
@Override
public Set<BillingCode> getAllBillingCode()
{
Set<BillingCode> billingCodes = billingCodeRepository.findAllBillingCodes();
return billingCodes != null ? billingCodes : (new HashSet<>());
}
/**
* {@inheritDoc}
*/
@Override
public Set<BillingCode> getBillingCodeBybillingCode(String billingcode)
{
return billingCodeRepository.fetchBybillingCode(billingcode) != null
? billingCodeRepository.fetchBybillingCode(billingcode)
: (new HashSet<>());
}
/**
* {@inheritDoc}
*/
@Override
public BillingCode getActiveBillingCode(String code)
{
Set<BillingCode> billingCodes = billingCodeRepository.findByBillingCode(code);
if (billingCodes != null)
{
Optional<BillingCode> billingCode = billingCodes
.stream().filter(
bc -> bc.getDeactivated() == null
|| bc.getDeactivated().booleanValue() == false)
.findAny();
if (billingCode.isPresent())
{
return billingCode.get();
}
}
return null;
}
/**
* {@inheritDoc}
*/
@Override
public Set<BillingCode> getActiveBillingCodes(Set<String> codes)
{
Set<BillingCode> billingCodes = billingCodeRepository.findBillingCodesFromList(codes);
return billingCodes;
}
/**
* {@inheritDoc}
*/
@Override
public ServiceLine getServiceLineByFullDescription(String description)
{
return serviceLineRepository.findByDescription(description);
}
/**
* {@inheritDoc}
*/
@Override
public CategoryOfCare getCategoryOfCareByDescription(String description)
{
return categoryOfCareRepository.findByDescription(description);
}
/**
* {@inheritDoc}
*/
@Override
public Set<ClinicalService> getClinicalServices(Set<String> descriptions)
{
return clinicalServiceRepository.findMultipleClinicalServices(descriptions);
}
/**
* {@inheritDoc}
*/
@Override
public Set<ClinicalService> getActiveClinicalServices(Set<String> descriptions)
{
return clinicalServiceRepository.findMultipleActiveClinicalServices(descriptions);
}
/**
* {@inheritDoc}
*/
@Override
public Status getStatusByDescription(String description)
{
return statusRepository.findByDescription(description);
}
/**
* {@inheritDoc}
*/
@Override
public int getCurrentSeocConfigVersion()
{
int currProgramVersion = 0;
List<SeocConfig> configurations = (ArrayList<SeocConfig>) seocConfigRepository.findAll();
if (configurations != null && configurations.size() > 0)
{
SeocConfig config = configurations.stream().findFirst()
.filter(c -> c.getCurrProgram().equalsIgnoreCase(Constants.PROGRAM_NAME)).get();
return config.getCurrProgramVersion();
}
return currProgramVersion;
}
/**
* {@inheritDoc}
*/
@Override
public Set<Qasp> getAllQasp()
{
Set<Qasp> qasp = qaspRepository.findAllQasps();
return qasp != null ? (Set<Qasp>) qasp
: (new HashSet<Qasp>());
}
/**
* {@inheritDoc}
*/
@Override
public Qasp getQaspByDescription(String description)
{
return qaspRepository.findByDescription(description);
}
/**
* {@inheritDoc}
*/
@Override
public BillingCode saveBillingCode(final BillingCode billingCode)
{
BillingCode returnBC = billingCodeRepository.save(billingCode);
return returnBC;
}
/**
* {@inheritDoc}
*/
@Override
public Set<Hptc> getAllHptc()
{
Set<Hptc> hptc = hptcRepository.findAllHptcs();
if (hptc != null)
{
return (Set<Hptc>) hptc;
} else
{
return new HashSet<Hptc>();
}
}
/**
* {@inheritDoc}
*/
@Override
public Set<Hptc> getHptcs(Set<String> hptCodes)
{
Set<Hptc> hptcs = hptcRepository.findMultipleHptcs(hptCodes);
return hptcs;
}
/**
* {@inheritDoc}
*/
@Override
public String getMaintenanceBy()
{
String inMaintenanceBy = "";
List<SeocConfig> configurations = (ArrayList<SeocConfig>) seocConfigRepository.findAll();
if (configurations != null && configurations.size() > 0)
{
SeocConfig config = configurations.stream().findFirst()
.filter(c -> c.getCurrProgram().equalsIgnoreCase(Constants.PROGRAM_NAME)).get();
return config.getInMaintenanceBy();
}
return inMaintenanceBy;
}
/**
* {@inheritDoc}
*/
@Override
public String updateMaintenanceBy(String user)
{
List<SeocConfig> configurations = (ArrayList<SeocConfig>) seocConfigRepository.findAll();
SeocConfig config = null;
if (configurations != null && configurations.size() > 0)
{
config = configurations.stream().findFirst()
.filter(c -> c.getCurrProgram().equalsIgnoreCase(Constants.PROGRAM_NAME)).get();
if (config == null)
{
//Configuration is not available in the DB
return "";
}
} else
{
//Configurations are not available in the DB
return "";
}
config.setInMaintenanceBy(user);
config = seocConfigRepository.save(config);
return config.getInMaintenanceBy();
}
}