package ch.elexis.hl7.model; import java.text.ParseException; import java.util.Date; import ch.elexis.core.exceptions.ElexisException; import ch.elexis.hl7.util.HL7Helper; public class LabResultData extends AbstractData { public enum LabResultStatus { UNDEFINED, FINAL, INTERMEDIATE, CHANGE; public static LabResultStatus getStatus(String code){ if("F".equals(code)) { return FINAL; } else if ("I".equals(code)) { return INTERMEDIATE; } else if ("C".equals(code)) { return CHANGE; } return UNDEFINED; } }; private String code; private String unit; private String value; private String range; private LabResultStatus resultStatus; private Date obrDateTime; private boolean flag; private boolean isNumeric = false; private boolean isFormatedText = false; private boolean isPlainText = false; public LabResultData(String code, String name, String unit, String value, String range, boolean flag, String obrDateTime, String dateStr, String comment, String group, String sequence, String resultStatus) throws ParseException{ super(name, dateStr, comment, group, sequence); this.setCode(code); this.setUnit(unit); this.setValue(value); this.setRange(range); this.setFlagged(flag); this.resultStatus = LabResultStatus.getStatus(resultStatus); if (obrDateTime != null && obrDateTime.length() > 0) { this.obrDateTime = HL7Helper.stringToDate(obrDateTime); } } public LabResultStatus getResultStatus(){ return resultStatus; } public String getCode(){ return code; } public void setCode(String code){ this.code = code; } public String getUnit(){ return unit; } public void setUnit(String unit){ this.unit = unit; } public String getValue(){ return value; } public void setValue(String value){ this.value = value; } public String getRange(){ return range; } public void setRange(String range){ this.range = range; } public Date getOBRDateTime(){ return obrDateTime; } public void setOBRDateTime(String obrDateTime) throws ElexisException{ try { if (obrDateTime != null && obrDateTime.length() > 0) { this.obrDateTime = HL7Helper.stringToDate(obrDateTime); } } catch (ParseException e) { throw new ElexisException(e.getMessage(), e); } } public boolean isFlagged(){ return flag; } public void setFlagged(boolean flag){ this.flag = flag; } public boolean isNumeric(){ return isNumeric; } public void setIsNumeric(boolean isNumeric){ this.isNumeric = isNumeric; } public boolean isFormatedText(){ return isFormatedText; } public void setIsFormatedText(boolean isFormatedText){ this.isFormatedText = isFormatedText; } public boolean isPlainText(){ return isPlainText; } public void setIsPlainText(boolean isPlainText){ this.isPlainText = isPlainText; } }