001package ca.uhn.hl7v2.conf.store;
002import ca.uhn.hl7v2.conf.ProfileException;
003
004/**
005 * Created on 27-Aug-2003
006 * @author Neal Acharya
007 * Interface used retreiving and validating codes from user defined and HL7 specific tables
008 * that correspond to a conformance profile.
009 */
010public interface CodeStore {
011    
012    /**
013     * @param codeSystem a table of codes (for example, HL70001 for administrative sex)
014     *      valid tables are defined in the HL7 table 0396
015     * @return a list of valid codes 
016     * @throws ProfileException
017     *
018     * Retreives all codes for a given conformance profile and codeSystem.
019     */
020    public String[] getValidCodes(String codeSystem) throws ProfileException;
021    
022    /**
023     * @param codeSystem
024     * @return boolean
025     * boolean
026     *
027     * Validates the codeSystem against the input conformance profile. If valid then
028     * output is 'true' else 'false'.
029     */
030    public boolean knowsCodes(String codeSystem);
031    
032    /**
033     * @param codeSystem
034     * @param code
035     * @return boolean
036     * boolean
037     *
038     * Validates the input code value against the input conformance profile and corresponding input
039     * codeSystem. Returns true if the code is valid and false if it isn't.
040     */
041    public boolean isValidCode(String codeSystem, String code);
042    
043}//end interface