package at.medevit.elexis.ehc.vacdoc.service;
import java.util.List;
import org.ehealth_connector.cda.ch.vacd.CdaChVacd;
import org.ehealth_connector.common.Patient;
/**
* Service interface for communication with the ehealth interface provided by the meineimpfungen web
* service.
*
* @see <a href="https://www.meineimpfungen.ch/">meineimpfungen</a>
* @author thomas
*
*/
public interface MeineImpfungenService {
public static final String CONFIG_TRUSTSTORE_PATH = "meineimpfungen.truststorePath";
public static final String CONFIG_TRUSTSTORE_PASS = "meineimpfungen.truststorePass";
public static final String CONFIG_KEYSTORE_PATH = "meineimpfungen.keystorePath";
public static final String CONFIG_KEYSTORE_PASS = "meineimpfungen.keystorePass";
public static final String PDQ_REQUEST_PATID_OID = "2.16.756.5.30.1.147.1.1";
public static final String XDS_REPOSITORY_OID = "2.16.756.5.30.1.147.2.3.2";
/**
* Get all {@link CdaChVacd} instances available for the patient from the web service.
*
* @param ehcPatient
* @return
*/
public List<CdaChVacd> getDocuments(Patient ehcPatient);
/**
* Upload a document to the web service.
*
* @param document
* @return if the upload was successful
*/
public boolean uploadDocument(CdaChVacd document);
/**
* Get a list of {@link Patient} instances matching name and date of birth of the provided
* {@link ch.elexis.data.Patient} from the web service.
*
* @param elexisPatient
* @return
*/
public List<Patient> getPatients(ch.elexis.data.Patient elexisPatient);
/**
* Check if the configuration of this implementation is valid.
*
* @return
*/
boolean isVaild();
/**
* Get the base URL of the meineimpfungen web site.
*
* @return
*/
public String getBaseUrl();
/**
* Update the mandant specific configuration of the service.
*
* @return if the update was successful
*/
public boolean updateConfiguration();
}