package com.nortal.jroad.client.tam;
//import com.nortal.jroad.client.ehis.database.EhisXRoadDatabase;
import java.util.Calendar;
import java.util.List;
import org.springframework.stereotype.Service;
import com.nortal.jroad.client.exception.XRoadServiceConsumptionException;
import com.nortal.jroad.client.service.XRoadDatabaseService;
import com.nortal.jroad.client.tam.types.ee.riik.xtee.tam.producers.producer.tam.MuudatusKoodVastus;
import com.nortal.jroad.client.tam.types.ee.riik.xtee.tam.producers.producer.tam.MuudatuseType;
import com.nortal.jroad.client.tam.types.ee.riik.xtee.tam.producers.producer.tam.Registriisik;
import com.nortal.jroad.client.tam.types.ee.riik.xtee.tam.producers.producer.tam.RegistriisikParing;
import com.nortal.jroad.client.tam.types.ee.riik.xtee.tam.producers.producer.tam.RegistriisikVastus;
import com.nortal.jroad.client.tam.types.ee.riik.xtee.tam.producers.producer.tam.TervishoiutootajaMuudatusParing;
import com.nortal.jroad.model.XRoadMessage;
import com.nortal.jroad.model.XmlBeansXRoadMessage;
/**
* Queries to Health Board (Terviseamet -- TAM)
*
* @author Klaus-Eduard Runnel
*/
@Service("tamXTeeService")
public class TamXTeeServiceImpl extends XRoadDatabaseService implements TamXTeeService {
/**
* <code>tam.registriisik</code> service.
*/
public List<Registriisik> findRegistriisik(String kood) throws XRoadServiceConsumptionException {
RegistriisikParing request = RegistriisikParing.Factory.newInstance();
request.setIsikukood(kood);
XRoadMessage<RegistriisikVastus> response =
send(new XmlBeansXRoadMessage<RegistriisikParing>(request), "registriisik");
RegistriisikVastus vastus = response.getContent();
return vastus.getRegistriisikud().getRegistriisikList();
}
/**
* <code>tam.tervishoiutootajamuudatuskood</code> service.
*/
// TODO: types are integers, should use enum map?
public List<String> findTervishoiutootajamuudatuskood(Calendar startDate, Calendar endDate, int... types) throws XRoadServiceConsumptionException {
TervishoiutootajaMuudatusParing request = TervishoiutootajaMuudatusParing.Factory.newInstance();
request.setMuudatusedAlates(startDate);
request.setMuudatusedKuni(endDate);
MuudatuseType changeType = request.addNewMuudatuseTyybid();
for (int type : types) {
changeType.addMuudatus(type);
}
XRoadMessage<MuudatusKoodVastus> response =
send(new XmlBeansXRoadMessage<TervishoiutootajaMuudatusParing>(request), "tervishoiutootajamuudatuskood");
MuudatusKoodVastus vastus = response.getContent();
return vastus.getKoodid().getRegistriKoodList();
}
}