package com.feisystems.provider.service; import java.util.Map; import com.feisystems.provider.service.dto.ProviderDto; /** * Contract for service to retrieve HIPPA providers * */ public interface ProviderService { public static final String SEARCH_STRING = "%"; /** * Get a single {@link ccom.feisystems.provider.ProviderDtobased on National Provider Id * @param npi unique National Provider Id * @return {@link cocom.feisystems.provider.ProviderDto */ public ProviderDto getProvider(String npi); /** * Retrieve {@link com.com.feisystems.provider.ProviderDtousing the * parameters described below. Since the postal code may be wildcarded, use * this method to do searches not pertaining to locaion by setting * * @code postalCode} to "%". * * @param genderCode * implementation should understand <b>m/f</b> and * <b>male/female</b> and may be wildcard to '%'. May or may not * be case sensitive. * @param postalCode * wildcard searchable if contains less than 9 characters * implementation should add '%' at the end for search i.e. * '12345%' May be wildcard to '%' * @param taxonomy * wildcard searchable speciality so implementaion should add '%' * at the end for search i.e. 'general%' May be wildcard to '%' * @param phone * phone number no partial wildcard but may be fully wildcard to * '%' * @param lastName * no partial wildcard but may be fully wildcard to '%' * @param firstName * no partial wildcard but may be fully wildcard to '%' * @param entityType * wildcard searchable speciality so implementation should add * '%' at the end for search i.e. 'general%' May be wildcard to * '%' * @param providerOrganizationName * wildcard searchable speciality so implementation should add * '%' at the end for search i.e. 'general%' May be wildcard to * '%' * @param pageNumber * page number to display * @return {@code java.util.List} of * {@link com.feisystems.provider.domain.service.dto.fcom.feisystems.provider.ProviderDto */ Map<String, Object> getByGenderCodeAndPostalCodeAndSpecialityAndTelephoneNumberAndLastNameAndFirstNameAndEntityTypeAndProviderOrganizationName( String genderCode, String postalCode, String taxonomy, String phone, String lastName, String firstName, String entityType, String providerOrganizationName, String pageNumber); Map<String, Object> getByGenderCodeAndPostalCodeAndSpecialityAndTelephoneNumberAndLastNameOrProviderOrganizationNameAndFirstNameAndEntityType( String genderCode, String postalCode, String taxonomy, String phone, String lastNameOrFacilityName, String firstName, String entityType, String pageNumber); /** * Retrieve {@link com.feicom.feisystems.provider.ProviderDtong the * parameters described below. In this case, {@code usStateAbbreviation} and * {@code city} together represent a compound key when seaarching so "%" for * {@code city} and {@code usStateAbbreviation} are not guarenteed to return * accurate results. * * @param genderCode * implementation should understand <b>m/f</b> and * <b>male/female</b> and may be wildcard to '%'. May or may not * be case sensitive. * @param usStateAbbreviation * no wildcard * @param city * city name no wildcard * @param taxonomy * wildcard searchable speciality so implementaion should add '%' * at the end for search i.e. 'general%' May be wildcard to '%' * @param phone * phone number no partial wildcard but may be fully wildcard to * '%' * @param lastName * no partial wildcard but may be fully wildcard to '%' * @param firstName * no partial wildcard but may be fully wildcard to '%' * @param entityType * wildcard searchable speciality so implementation should add * '%' at the end for search i.e. 'general%' May be wildcard to * '%' * @param providerOrganizationName * wildcard searchable speciality so implementation should add * '%' at the end for search i.e. 'general%' May be wildcard to * '% * @param pageNumber * page number to display * @return {@code java.util.List} of * {@link com.feisystems.provider.domain.service.dto.feiscom.feisystems.provider.ProviderDto */ public Map<String, Object> getByGenderCodeAndUSStateAbbreviationAndCityAndSpecialityAndTelephoneNumberAndLastNameAndFirstNameAndEntityTypeAndProviderOrganizationName( String genderCode, String usStateAbbreviation, String city, String taxonomy, String phone, String lastName, String firstName, String entityType, String providerOrganizationName, String pageNumber); public Map<String, Object> getByGenderCodeAndUSStateAbbreviationAndCityAndSpecialityAndTelephoneNumberAndLastNameOrProviderOrganizationNameAndFirstNameAndEntityType( String genderCode, String usStateAbbreviation, String city, String taxonomy, String phone, String lastNameOrFacilityName, String firstName, String entityType, String pageNumber); }