/*******************************************************************************
* Copyright (c) 2014 MEDEVIT.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* MEDEVIT <office@medevit.at> - initial API and implementation
*******************************************************************************/
package ch.elexis.impfplan.model;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import ch.elexis.core.jdt.NonNull;
import ch.elexis.core.jdt.Nullable;
/**
* @deprecated Copied from at.medevit.elexis.impfplan to avoid dependency
* @author Lucia
*
*/
public class DiseaseDefinitionModel {
public static final String VACCINATION_ATC_GROUP_TRAILER = "J07";
private static List<DiseaseDefinition> diseases = null;
public static List<DiseaseDefinition> getDiseaseDefinitions(){
if (diseases == null)
initDiseases();
return diseases;
}
private static void initDiseases(){
diseases = new ArrayList<>();
diseases.add(new DiseaseDefinition("J07AF", "Diphterie", "Diphteria"));
diseases.add(new DiseaseDefinition("J07AM", "Starrkrampf", "Tetanus"));
diseases.add(new DiseaseDefinition("J07AJ", "Keuchhusten", "Pertussis"));
diseases.add(new DiseaseDefinition("J07BF", "Kinderlähmung", "Poliomyelitis"));
diseases.add(new DiseaseDefinition("J07AG", "Haemophilus influenzae (Hib)"));
diseases.add(new DiseaseDefinition("J07BD", "Masern", "Measles"));
diseases.add(new DiseaseDefinition("J07BE", "Mumps"));
diseases.add(new DiseaseDefinition("J07BJ", "Röteln", "Rubella"));
diseases.add(new DiseaseDefinition("J07BC01", "Hepatitis B"));
diseases.add(new DiseaseDefinition("J07BM", "humanes PapillomaVirus"));
diseases.add(new DiseaseDefinition("J07BB", "Influenza"));
diseases.add(new DiseaseDefinition("J07BC02", "Hepatitis A*"));
diseases.add(new DiseaseDefinition("J07AL", "Pneumokokken", "Pneumococca"));
diseases.add(new DiseaseDefinition("J07AH", "Meningokokken", "Meningococca"));
diseases.add(new DiseaseDefinition("J07BA01", "FSME", "Encephalitis tick borne"));
diseases.add(new DiseaseDefinition("J07AP", "Typhus"));
diseases.add(new DiseaseDefinition("J07BK", "Varizellen", "Varicella zoster"));
diseases.add(new DiseaseDefinition("J07BL", "Gelbfieber", "Yellow fever"));
diseases.add(new DiseaseDefinition("J07AE", "Cholera"));
diseases.add(new DiseaseDefinition("J07BA02", "japanische Encephalitis",
"Encephalitis japanese"));
diseases.add(new DiseaseDefinition("J07BH", "Rotaviren", "Rota virus"));
diseases.add(new DiseaseDefinition("J07BG", "Tollwut", "Rabies"));
diseases.add(new DiseaseDefinition("J07AN", "Tuberkulose"));
diseases.add(new DiseaseDefinition("J07BK01", "Windpocken - Varizellen"));
diseases = Collections.unmodifiableList(diseases);
}
public static class DiseaseDefinition {
private final String ATCCode;
private final String diseaseLabel;
private final String diseaseSynonym;
public DiseaseDefinition(String atcCode, String diseaseLabel, String diseaseSynonym){
this.ATCCode = atcCode;
this.diseaseLabel = diseaseLabel;
this.diseaseSynonym = diseaseSynonym;
}
public DiseaseDefinition(String atcCode, String diseaseLabel){
this(atcCode, diseaseLabel, null);
}
public @NonNull String getDiseaseLabel(){
return diseaseLabel;
}
public @NonNull String getATCCode(){
return ATCCode;
}
public @Nullable String getDiseaseSynonym(){
return diseaseSynonym;
}
@Override
public String toString(){
if (diseaseSynonym == null) {
return diseaseLabel;
}
return diseaseLabel + " - " + diseaseSynonym;
}
}
/**
* retrieve the label for a specific disease ATC code
*
* @param diseaseAtcCode
* @return
*/
public static String getLabelForAtcCode(String diseaseAtcCode){
for (DiseaseDefinition dd : getDiseaseDefinitions()) {
if (diseaseAtcCode.equalsIgnoreCase(dd.ATCCode)) {
return dd.toString();
}
}
return "?????";
}
}