ca.uhn.hl7v2.util.CodeMapper Maven / Gradle / Ivy
package ca.uhn.hl7v2.util;
import ca.uhn.hl7v2.HL7Exception;
/**
* Maps local codes to interface codes and vice versa. The default implementation
* of CodeMapper is FileCodeMapper. An instance of FileCodeMapper can be obtained
* by calling CodeMapper.getInstance()
. See FileCodeMapper for instructions
* on how to set up code map files.
* Please note that this class is not intended for the purpose of enumerating valid codes.
* If that is what you are looking for please see ca.uhn.hl7v2.TableRepository
* @author Bryan Tripp
*/
public abstract class CodeMapper {
private static CodeMapper codeMapper = null;
/**
* Returns a singleton instance of CodeMapper. This is currently
* a FileCodeMapper by default.
*/
public synchronized static CodeMapper getInstance() throws HL7Exception {
if (codeMapper == null) {
//create new file code mapper
codeMapper = new FileCodeMapper();
}
return codeMapper;
}
/**
* A convenience method that returns a local code from an underlying
* CodeMapper instance by calling CodeMapper.getInstance().getLocalCode(...)
*/
public static String getLocal(String interfaceName, int hl7Table, String interfaceCode) throws HL7Exception {
return CodeMapper.getInstance().getLocalCode(interfaceName, hl7Table, interfaceCode);
}
/**
* A convenience method that returns an interface code from an underlying
* CodeMapper instance by calling CodeMapper.getInstance().getInterfaceCode(...)
*/
public static String getInt(String interfaceName, int hl7Table, String localCode) throws HL7Exception {
return CodeMapper.getInstance().getInterfaceCode(interfaceName, hl7Table, localCode);
}
/**
* Returns the interface code for the given local code, for use in the context
* of the given interface.
*/
public abstract String getInterfaceCode(String interfaceName, int hl7Table, String localCode) throws HL7Exception;
/**
* Returns the local code for the given interface code as it appears in
* the given interface.
*/
public abstract String getLocalCode(String interfaceName, int hl7Table, String interfaceCode) throws HL7Exception;
/**
* Determines what happens if no matching code is found during a lookup. If set to true,
* an HL7Exception is thrown if there is no match. If false, null is returned. The default
* is false.
*/
public abstract void throwExceptionIfNoMatch(boolean throwException);
/**
* If values are cached in such a way that they are not guaranteed to be current, a call
* to this method refreshes the values.
*/
public abstract void refreshCache() throws HL7Exception;
/* may add these functions later to allow consistent maintenance e.g via a UI ...
public abstract String[] getInterfaceNames();
public abstract void addInterface(String name);
public abstract void addCodeMap(String interface, int hl7table, String localCode, String interfaceCode);
*/
}