WHO-FIC Content Model explained

The basic unit of the WHO-FIC classification is an entity—a concept with a unique identifier such as Tuberculosis (2072728114). Entities are grouped into poly-hierarchies in the Foundation or hierarchies (tree structures) in linearizations.

Below is the WHO-FIC Content Model represented using TypeScript types.

// The basic building block of the Foundation.
type FoundationEntity = {

  // Entity identifier.
  id: number;

  // A name that represents the entity, and which labels the entity in a meaningful and unambiguous way.
  titles: LanguageSpecificText[];

  // An unambiguous title that does not assume context. Its purpose is to uniquely designate an entity and to clarify
  // meaning rather than present a commonly used or natural phrase.
  fullySpecifiedNames: LanguageSpecificText[];

  // A short characterisation (maximum of 100 words) of the entity that states things that are always true about a
  // disease or condition and necessary to understand the scope of the rubric. 
  shortDescriptions: LanguageSpecificText[];

  // An optional text field that may contain any additional information and more context for the entity. For ICD, this
  // might contain characteristics of the diseases or conditions included in the entity.
  additionalInformations: LanguageSpecificText[];
  
  // A list of entities that are the direct parents of the entity (first-level ancestors or superclasses).
  parents: Entity[];
  
  // A list of direct child entities (first-level descendants or subclasses).
  children: Entity[];
  
  // A language term that has a similar meaning to the entity and it is also used to denote the entity.
  synonyms: LanguageSpecificText[];

  // A language term that has a narrower meaning than the entity, but it can still be used to refer to the entity for
  // coding purposes.
  narrowerTerms: LanguageSpecificText[];

  // Exemplary terms or phrases that are synonymous with the title of the entity or terms representing more specific
  // conditions.
  inclusions: (LanguageSpecificText | Entity)[];

  // Entities that might be thought to be children of a given entity but, because they occur elsewhere in the
  // classification, must be excluded from appearing under it.
  exclusions: Entity[];
  
  // A flag that encodes whether an entity that was previously released, is now obsolete and should not be used for
  // coding.
  obsolete?: boolean;
};


// Language specific text.
type LanguageSpecificText = {
  // Language code for the string.
  language: string;

  // Label in the given language.
  value: string;
};

See also

Made by Anton Vasetenkov.