Developed by: Tessa Ohlsen

WASP is an acronym for Web Application supporting SNOMED CT Postcoordination. For this, WASP utilizes the SNOMED CT Machine Readable Concept Model and supports the SNOMED CT Expression Template Language. This work was published in a 2023 paper in Applied Sciences.

With the national licence, the interest and use of SNOMED CT in Germany is increasing. Post-coordination of concepts is often avoided due to its complexity and lack of software support, although it is precisely this that makes SNOMED CT a flexible and powerful interlingua. Therefore, a web application called WASP was developed that supports the creation of post-coordinated SNOMED CT expressions (PCE). The syntactic and semantic rules specified by SNOMED CT (Compositional Grammar and Concept Model) are ensured. The prerequisites for using WASP and the individual functionalities are described below.


A folder called wasp is required to use WASP. This is provided in Gitlab and must be located locally on the computer:

└─── wasp
    └─── templates
            └─── template_1.json
            └─── ...
            └─── template_n.json
    └─── conceptModelObjectAttributes.csv
    └─── mrcm.json
    └─── server.json

The following files are located in the wasp folder:

  • templates
  • conceptModelObjectAttributes.csv
    • Contains all SNOMED CT attributes of the Concept Model as well as a description of these and the associated value ranges
  • mrcm.json
    • Pre-processed MRCM (version 2024-05-01, option to generate your own version in WASP) in JSON format, which is of central relevance for the generation of PCE based on the Concept Model and template generation
  • server.json
    • Contains the URL of an ontoserver (hosted by MeDIC, University Hospital Cologne) by default; can be extended by other custom terminology servers

It is also a prerequisite that at least one SNOMED CT version and edition is available on the chosen terminology server.

Init: Settings

After WASP was started, the modal window shown appears. The necessary data in the wasp folder must be made available to WASP here. The first time or after making changes to the wasp folder, it must be uploaded here. These can also be stored automatically in the browser cache for further use. The terminology servers defined in the server.json file are displayed here. Users can select from these. It is also possible to define a different terminology server via URL (by clicking on ‘Other’). Users can also select an existing SNOMED CT version and edition on the terminology server.

Extract from the WASP start modal window.

Creation of a PCE based on the Concept Model

With this PCE creation option, the <span style=‘colour:#17A2B8’>focus concept</span>, which describes the primary clinical idea, is first entered in the input field.

Based on the entered character combination, possible concepts are displayed in a list. The focus concept is selected from this list. Alternatively, a SNOMED CT Identifier can also be entered.

The respective Concept Model Domain for the focus concept is then automatically identified by WASP. This allows all SNOMED CT attributes defined in the Domain and the associated value ranges to be determined. From these SNOMED CT attributes, users can select the attributes that are relevant for the respective use case. In addition, the attribute relationships that exist in the concept definition of the focus concept are loaded automatically. The attributes are displayed or selected in the ‘Attribute name’ table column in the illustration.

Furthermore, an attribute value must be selected for a PCE. This is shown at the bottom right in the ‘Attribute value’ section. The concepts of the attribute relations are shown here by default. These can be refined by the user in order to represent the respective facts. To do this, the user again enters a letter combination or the SNOMED CT Identifier of a concept that lies within the value range in the input field. It is possible to display all possible SNOMED CT concepts for the respective attribute in order to select a concept from this list (see ‘Additional help to find concept’ in the information field). With this function, it must be considered that the result set can be very large, which leads to longer response times. This applies, for example, to the value ranges of the attributes, such as ‘Due to’ or ‘Associated morphology’. This option should therefore only be used in moderation. In addition, reference is made to the ‘Expression Constraint Queries’ function of the SNOMED CT browser from SNOMED International for the search for suitable concepts. In this, the ECL expression shown in WASP could be executed as a value range in order to also find a suitable SNOMED CT concept as an attribute value.

It is also possible to define additional Role Groups for a PCE if this is possible due to the constraints of a Concept Model Domain. This is possible using the + symbol in the turquoise bar for the Role Groups. The attributes and attribute values are selected according to the same principle as described above. Once all attributes and attribute values have been selected, they are summarised in the ‘Summary’ tab. Finally, the PCE is created on the basis of the compositional grammar. This can be saved in a FHIR CodeSystem Supplement.

Extract from WASP for PCE creation based on the Concept Model.

Creation of a PCE based on a template

This is another option for creating a PCE. Here, the user first selects a template. The selection is facilitated by the internal repository, which is located in the wasp folder. This contains the templates defined by SNOMED International as well as the templates generated by the users themselves. A filter mechanism according to the category or semantic tag of the focus concept can be used to limit the number of selection options.

The user form is then loaded. In contrast to the variant described above, only SNOMED CT attributes that have been defined in the template can be used to create the PCE based on the templates. Click on the name of the attribute or on the i next to the input field of an attribute to open the information field.

Based on the value ranges defined in the template, a SNOMED CT concept is selected as the attribute value. The attribute value is selected according to the same principle as described above (entering a letter combination or entering a SNOMED CT identifier). With ‘Additional help to find concept’ in the information field, all possible concepts based on a value range can be displayed again. The same instructions apply here as for the previous variant.

Finally, the PCE is created again and can also be stored in a FHIR CodeSystem Supplement.

Extract from WASP for PCE creation based on a template.

Generation of own templates

Templates are used in the previously explained method for creating a PCE. SNOMED International provides approximately 90 templates for various circumstances. However, these are not sufficient to code all medical circumstances. For this reason, it is important to generate own templates.

The generation of custom templates is methodically similar to the creation of PCE based on the Concept Model. Once again, a focus concept is selected depending on the use case as well as relevant attributes based on the respective Concept Model Domain. Instead of a specific attribute value, a value range is defined based on the Concept Model Domain or the concept definition of the focus concept, which are loaded by default, by using constraint operators. It is also possible to use logical operators such as ‘AND’ or ‘OR’.

Another difference is that cardinalities must be defined for attribute relationships and Role Groups. By default, these are set to the cardinalities specified in the Concept Model Domain for self-selected attributes; the cardinalities for attribute relations of the focus concept are specified as 1..1.

All attribute relations used are displayed in the ‘Summary’ tab. The aforementioned cardinalities for Role Groups are specified here. A so-called term template is then created. This is a fill-in text that can be used as a template for generating a description for a PCE expression. A file name must also be entered for the template. The template created is saved locally in the download folder and can be added to the repository of other templates and data must be saved again in the cache.

Extract from WASP for generating own templates.

Generation of a WASP-compatible MRCM

As already described, the Concept Model is of central importance. This is provided in the montal release of SNOMED International as MRCM in the form of a text file. To enable WASP to work with this, the text file was processed and all relevant information was provided in JSON format. This is located in the wasp folder for SNOMED CT version 2024-05-01. However, it is possible that users may wish to work with a different SNOMED CT version. For this purpose, WASP has an option to process the MRCM. As already mentioned, the text file serves as input and the processed MRCM is automatically saved in the download folder (mrcm.json). The file mrcm.json in the local WASP folder must be replaced by the newly generated file from the download folder. The data must also be saved again in the cache.

Extract from WASP for generating a WASP-compatible MRCM.


Creation of a PCE based on the Concept Model

Creation of a PCE based on a template

Generation of own templates