/*
* This code is made available under the terms of the Eclipse Public License v1.0
* in the github project https://github.com/project-husky/husky there you also
* find a list of the contributors and the license information.
*
* This project has been developed further and modified by the joined working group Husky
* on the basis of the eHealth Connector opensource project from June 28, 2021,
* whereas medshare GmbH is the initial and main contributor/author of the eHealth Connector.
*
*/
package org.projecthusky.common.enums;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable;
/*
*Nutzungszweck von Namen gemäss HL7 Vocabulary EntityNameUse [2.16.840.1.113883.5.45], derzeit nur wichtigste für die Schweiz
*
*/
/**
* Enum NameUse.
Enum NameUse.
* Enum NameUse.
*/
public enum NameUse implements ValueSetEnumInterface {
/**
* eCH-0011 V8.1 nameData: Other official person's family
* name
*/
ASSIGNED("ASGN", "Assigned"),
/**
* eCH-0011 V8.1 nameData: The person's pseudonym name
*/
PSEUDONYM("P", "Pseudonym"),
/**
* eCH-0011 V8.1 nameData: The person's legal name. This is
* the default. Thus, name elements without @use are legal names.
*/
LEGAL("L", "Legal");
/** The Constant CODE_SYSTEM_NAME. */
public static final String CODE_SYSTEM_NAME = "NameUse";
/** The Constant CODE_SYSTEM. */
public static final String CODE_SYSTEM_OID = "2.16.840.1.113883.5.1119";
/**
* Gets the Enum with a given code
* Liefert den Enum anhand eines gegebenen codes
*
* @param code
*
* code
* @return the enum
*/
public static NameUse getEnum(String code) {
for (final NameUse x : values()) {
if (x.getCodeValue().equals(code)) {
return x;
}
}
return null;
}
/**
* Checks if a given enum is part of this value set.
* Prüft, ob der gegebene enum Teil dieses Value Sets
* ist.
*
* @param enumName
*
* enumName
* @return true, if enum is in this value set
*/
public static boolean isEnumOfValueSet(String enumName) {
if (enumName == null) {
return false;
}
try {
Enum.valueOf(NameUse.class, enumName);
return true;
} catch (final IllegalArgumentException ex) {
return false;
}
}
/**
* Checks if a given code value is in this value set.
* Prüft, ob der gegebene code in diesem Value Set vorhanden
* ist.
*
* @param codeValue
* code
* @return true, if one enum of this valueset contains the given code
*/
public static boolean isInValueSet(String codeValue) {
for (NameUse x : values()) {
if (x.getCodeValue().equals(codeValue)) {
return true;
}
}
return false;
}
private String code;
private String displayName;
/**
* Instantiates this Enum Object with a given Code and
* Display Name
Instantiiert dieses Enum Object
* mittels eines Codes und einem Display Name
*
* @param code
*
* code
* @param displayName
*
* display name
*/
NameUse(String code, String displayName) {
this.code = code;
this.displayName = displayName;
}
/**
* Gets the code system name.
Liefert
* code system name.
*
* @return the code system name
*/
@Override
public @NonNull String getCodeSystemName() {
return CODE_SYSTEM_NAME;
}
/**
* Gets the code system id.
Liefert
* die code system id.
*
* @return the code system id
*/
@Override
public @NonNull String getCodeSystemId() {
return CODE_SYSTEM_OID;
}
/**
* Gets the actual Code as string
* Liefert den eigentlichen Code als String
*
* @return the code
*/
public String getCodeValue() {
return code;
}
/**
* Gets the display name.
Liefert
* display name.
*
* @return the display name
*/
@Override
public String getDisplayName() {
return displayName;
}
@Override
public @NonNull String getDisplayName(@Nullable LanguageCode languageCode) {
return getDisplayName();
}
@Override
public @NonNull String getValueSetId() {
return CODE_SYSTEM_OID;
}
@Override
public @NonNull String getValueSetName() {
return CODE_SYSTEM_NAME;
}
}