package ch.elexis.hl7; import java.util.List; import ch.elexis.core.model.IPatient; public abstract class HL7PatientResolver { /** * Search for an existing {@link IPatient} with the provided properties. If no {@link IPatient} * is found, the User is presented with a UI to select the {@link IPatient}. * * @param firstname * @param lastname * @param birthDate * @return */ public abstract IPatient resolvePatient(String firstname, String lastname, String birthDate); /** * Search for an existing {@link IPatient} with the provided properties. * * @param patient * @param firstname * @param lastname * @param birthDate * @return */ public abstract boolean matchPatient(IPatient patient, String firstname, String lastname, String birthDate); /** * Create a new {@link IPatient} with the provided properties. * * @param lastName * @param firstName * @param birthDate * @param sex * @return */ public abstract IPatient createPatient(String lastName, String firstName, String birthDate, String sex); /** * Search for an existing {@link IPatient} with the provided patient number. * * @param patient * number * @return */ public abstract List<? extends IPatient> getPatientById(String patid); /** * Search for existing list of {@link IPatient}s with the provided properties. * * @param lastName * @param firstName * @param birthDate * @return */ public abstract List<? extends IPatient> findPatientByNameAndBirthdate(String lastName, String firstName, String birthDate); }