diff --git a/404.md b/404.md new file mode 100644 index 0000000..a8a831d --- /dev/null +++ b/404.md @@ -0,0 +1,8 @@ +— +layout: default +title: “404: Page not found” +permalink: 404.html +— + +# 404: Page not found +Sorry, we’ve misplaced that URL or it’s pointing to something that doesn’t exist. [Head back home]({{ site.url }}) to try finding it again. diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..1657135 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,12 @@ +# https://github.com/envygeeks/jekyll-docker did not work +FROM ruby:3.2 +RUN gem install bundler +COPY Gemfile . +COPY Gemfile.lock . +RUN bundle install +WORKDIR /usr/src/app +COPY . . + +EXPOSE 4000 +ENTRYPOINT ["bundle","exec","jekyll"] +CMD ["serve","--incremental"] diff --git a/LICENSE.md b/LICENSE.md new file mode 100644 index 0000000..d531a3c --- /dev/null +++ b/LICENSE.md @@ -0,0 +1,9 @@ +Copyright (c) 2013 Mark Otto. +Copyright (c) 2024 Konrad Höffner +Copyright (c) 2024 Hannes Raphael Brunsch + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..2278df9 --- /dev/null +++ b/README.md @@ -0,0 +1,147 @@ +TOP + +# TOP Website + +[![deploy](https://github.com/Onto-Med/top.de/actions/workflows/deploy.yml/badge.svg)](https://github.com/Onto-Med/top.de/actions/workflows/deploy.yml) +[![License: CC0](https://img.shields.io/badge/license-CC0-blue)](LICENSE) + +Live on . +This is the website for TOP – a junior research group for [Developing a Terminology and Ontology-based Phenotyping Framework](https://www.gesundheitsforschung-bmbf.de/de/nachwuchsgruppe-entwicklung-eines-terminologie-und-ontologie-basierten-14115.php). +It uses [Hyde layout](https://github.com/poole/hyde/tree/v3), which itself is based on the [Poole theme](https://github.com/poole/poole) for [Jekyll, a static site generator](http://jekyllrb.com/). + +## GitHub does everything + +All the steps below are *only* necessary if you want to preview or build the page yourself. +GitHub Pages is powered by Jekyll and does all the building and hosting automatically. + +## Setup + +1. Install Ruby +2. Install Bundler +3. Use Bundler to install the dependencies + +### Example for Arch Linux + + $ sudo pacman -S ruby + +Add the following to your environment configuration file, such as `.profile` or `.zshrc` and reload (`source ~/.zshrc`) it: + + export GEM_HOME="$(ruby -e 'puts Gem.user_dir')" + export PATH="$PATH:$GEM_HOME/bin" + +Use bundler with the provided Gemfile: + + $ gem install bundler + $ bundle install + +However that resulted in the error `Bundler::GemNotFound: Could not find jekyll-4.2.1.gem for installation` in testing on one machine. + +### Example for MacOS (with Homebrew) + +Install Ruby: + + $ brew install ruby + +Add the brew ruby path to your shell configuration. +If you're using Zsh, add the following lines to `~/.zshrc` + + export GEM_HOME="$(ruby -e 'puts Gem.user_dir')" + export PATH="$PATH:$GEM_HOME/bin" + +Install bundler and the gems: + + $ gem install --user-install bundler + $ bundle install + +## Preview +Switch to the `master` branch and run `bundle exec jekyll serve --incremental`. +Check if everything looks normal. + +## Build +The GitHub workflow in `.github/workflows/deploy.yml` automatically builds the master branch and deploys it on the static branch. +To build locally, run `bundle exec jekyll build (--incremental)`, +This will put the static HTML content into the `_site` folder. + +## Deploy +We serve the content of the static branch at the official TOP website where it needs to be manually updated. +The static branch is also automatically served using GitHub pages at . + +## Using Docker +If you cannot or do not want to install Ruby and the gems on your system, or there is some problem with Ruby, you can also use the Dockerfile, which should work everywhere. +Use the following commands or execute the associated script. + +| goal | command | script | +|--------------|---------------------------------------------------------------------------|----------------------------| +| build image | docker build -t top.de . | scripts/docker-build | +| preview page | docker run --rm --network="host" top.de | scripts/docker-run-preview | +| build page | docker run --rm -it --volume="$PWD:/usr/src/app" -it top.de build | scripts/docker-run-build | + +## Troubleshooting + +### Ruby cannot find the native extensions + +#### Exemplary error message + + bundler: failed to load command: jekyll (/home/konrad/.local/share/gem/ruby/3.0.0/bin/jekyll) + /home/konrad/.local/share/gem/ruby/3.0.0/gems/ffi-1.15.1/lib/ffi.rb:5:in `require': libffi.so.7: cannot open shared object file: No such file or directory - /home/konrad/.local/share/gem/ruby/3.0.0/extensions/x86_64-linux/3.0.0/ffi-1.15.1/ffi_c.so (LoadError) + +This can happen if you already built the native extensions (e.g. via `bundle install`) with an older version of Ruby and then upgrade Ruby. +Even `bundle install` will not rebuild the native extensions in that case if they are already present. +To fix this, run `bundle pristine`. +It is also possible that you installed some dependencies using `gem install` system- or user-wide, which bundler will not overwrite by default. +In this case, even `bundle pristine` may not be enough. +In our experience, this can be fixed by deinstalling Ruby, deleting all leftover gem directories and reinstalling Ruby afterwards. + +### Preview URL not working in MacOS using Docker + +Docker may run in it's own virtual machine under MacOS and not thus not forward `--network="host"` to the network of the machine itself. +While the default way of port mapping in Docker using the `-p 4000:4000` gets forwarded to the local host under MacOS, this does not work with the underlying Jekyll server of this website. +Thus, there may not be a way to preview the docker build using `jekyll serve` on MacOS. +However you can still build it using Docker and use a local webserver to preview the _site folder. + +### Online Editing---Directly on Master +If you want to change content in a page on the website and your GitHub account has the required rights, you can log in to GitHub and edit the content using the pen symbol ("Edit this file") in one of the files, for example [index.md](https://github.com/Onto-Med/top.de/blob/master/index.md) for the home page. +GitHub will give you a basic idea of how it will turn out in the "Preview" tab next to "Edit file", however it will not include any of the styling of Jekyll, so the layout will be broken and there is no sidebar but you can at least see the text. +Then you can commit the changes to the master branch. +Normally you should always make sure that the master branch is in a functioning state, which you can't preview, but if you don't have any other option and you only make small textual changes it is relatively low risk. +There are automatic actions in place that will now build the website and deploy it on the ["static" branch](https://github.com/Onto-Med/top.de/tree/static) as HTML. +When the [actions are successfully finished (green checkmark)](https://github.com/Onto-Med/top.de/actions), the page is automatically published on GitHub pages at , where you can check if everything is working as expected. +Then someone with access to the server can do a `git pull` of the static branch. +It is also possible to circumvent the server entirely and [point a domain to GitHub pages](https://docs.github.com/en/pages/configuring-a-custom-domain-for-your-github-pages-site), however then you can't check between build and deploy. + +### Online Editing---Pull request +If you don't have edit rights, you can instead choose to create a pull request. +This is also good if you want to edit multiple files, such as an image and it's refering text, because then those with write access can perform a squash merge to combine your changes into a single commit. + +Delete and add images in the `public` folder as needed, change content in the appropriate `.md` files. + +1. Perform the first change on the website and create a pull request in a new branch with a note to not merge it yet. +2. Perform the other changes on the website on the same branch. +3. Use a "Squash Merge" to combine all commits into one into the master branch and delete the temporary branch. +4. Wait until the [build and deploy actions](https://github.com/Onto-Med/top.de/actions) are finished, then check if everything is correct. +5. Update the repository on the server. + +### GitHub Desktop +You can also use the [GitHub Desktop client on Windows](https://desktop.github.com/). +Modify the files using your normal tools like a file explorer and text editor and then commit the changes to the master branch. + +### Preview on Windows +There may be a more elegant way to accomplish this, if you know one, please create a pull request or an issue. +Needs the Windows package manager `winget` on your system. + + winget install RubyInstallerTeam.RubyWithDevKit + +Open a terminal as administrator + + ridk install + +Start `gem`, it will tell you a path for your gemfiles. +Open a new terminal so that the `gem` command is available. +Add that path your PATH environment variable but replace the slashes '/' with backslashes '\'. + +Open a new terminal in your project directory, e.g. using GitHub Desktop. + + gem install --user-install bundler + bundle install + +Then you should be able to run `bundle exec jekyll serve --incremental`, which shows a link like that you can enter in the browser to preview the page. diff --git a/contact/index.html b/contact/index.html new file mode 100644 index 0000000..a8e930b --- /dev/null +++ b/contact/index.html @@ -0,0 +1,188 @@ + + + + + + + + + + + + + + + Contact · TOP + + + + + + + + + + + + + + + + + +
+
+ +

Contact

+ + +

Group Leader

+
+
+ Photo of Alexandr Uciteli. © Swen Reichhold +
+
+Alexandr Uciteli
+Leipzig, Germany
+Group Leader, Ontologist, Programmer
+
+
+ + +

Team

+
+
+ Photo of Christoph Beger. © Swen Reichhold +
+
+Christoph Beger
+Leipzig, Germany
+Ontologist, Programmer
+
+ +
+ Photo of Franz Matthies. © Swen Reichhold +
+
+Franz Matthies
+Leipzig, Germany
+NLP, Programmer
+
+ +
+ Photo of Ralph Schäfermeier. © Swen Reichhold +
+
+Ralph Schäfermeier
+Leipzig, Germany
+Ontologist, Programmer
+
+ +
+ Photo of Konrad Höffner. © Swen Reichhold +
+
+Konrad Höffner
+Leipzig, Germany
+Ontologist, Programmer
+
+ +
+
+ Group photo © Swen Reichhold + Portraits © Swen Reichhold +
+ +

Webmaster

+ +

Konrad Höffner
+Please report website issues at the GitHub Issue Tracker.

+ +

Address

+

Institut für Medizinische Informatik, Statistik und Epidemiologie
+Leipzig University
+Härtelstraße 16-18
+04107 LEIPZIG
+GERMANY

+ +

IMISE Logo

+ +
+ +
+ + + diff --git a/design/index.html b/design/index.html new file mode 100644 index 0000000..7ba7dc7 --- /dev/null +++ b/design/index.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + Corporate Design · TOP + + + + + + + + + + + + + + + + + +
+
+ +

Corporate Design

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameBildDownload
BMBF LogoLogo Bundesministerium für Bildung und ForschungSVG, PDF
IMISE LogoLogo Institut für Medizinische Informatik, Statistik und EpidemiologieSVG, PDF
TOP Framework OverviewOverview of the TOP FrameworkSVG,PDF
TOP Logo (grey)Grey Logo Terminology- and Ontology-based PhenotypingSVG, PDF
TOP Logo (white)White Logo Terminology- and Ontology-based PhenotypingSVG
+ +
+ +
+ + + diff --git a/imprint/index.html b/imprint/index.html new file mode 100644 index 0000000..577579a --- /dev/null +++ b/imprint/index.html @@ -0,0 +1,153 @@ + + + + + + + + + + + + + + + Imprint · TOP + + + + + + + + + + + + + + + + + +
+
+ +

Imprint

+ + + + +

These pages are being maintained by the junior research group Developing a Terminology and Ontology-based Phenotyping Framework (TOP) of the Institute for Medical Informatics, Statistics and Epidemiology (IMISE) of the University of Leipzig.

+ +

Institut für Medizinische Informatik, Statistik und Epidemiologie
+Universität Leipzig
+Härtelstraße 16-18
+04107 LEIPZIG
+GERMANY

+ +

The University of Leipzig is a public body. It is legally represented by the acting chancellor. Further information, especially concerning supervisory authority, can be found in the imprint of the University of Leipzig.

+ +

Disclaimer

+ +

Every effort is taken to ensure that the information contained on this website is accurate at the time of creation and/or modification of the website. We cannot, however, guarantee that the contents provided will always be current, accurate or complete. The use of contents from this website is at your own risk. We reserve the right to remove, vary or amend any of the content which appears on the website at any time and without prior notice. Contributions identified by name reflect the opinions of the authors and not necessarily the opinion of MIG. The mere use of the website does not create any contractual relationship between the user and MIG. Further, we do not in any way guarantee that the website will be available, uninterrupted or error free.

+ +

According to §§8 to 10 of the TMG (German Tele-Media Act), we are not obligated to monitor third-party information provided or stored on our website. However, we shall promptly remove any content upon becoming aware that it violates the law. Our liability in such an instance shall commence at the time we become aware of the respective violation. External Links

+ +

This website provides links to other websites (“external links”), which are subject to the liability of the respective owners/providers. At the time these websites were linked to ours, we found NO GROUNDS WHATSOEVER of any likely violation. Likewise, we have no control over the current and future design and over the content of the pages linked with this website. The inclusion of external links should not be taken as an endorsement by MIG of the opinions expressed or services provided at those sites. Without concrete evidence of legal violations a permanent control of the external links is not reasonable. Should any violations become known, such external links will be deleted immediately.

+ +

The information published on this site (including, but not limited to, texts and graphics) is subject to the copyright laws of Germany. Any use not permitted by German copyright requires the prior written consent of MIG or the respective rights owners. This applies especially to duplication, adaptation, translation, storage, processing and reproduction of contents in databases or other electronic media and systems. Contents and rights of third parties are marked as such. The unauthorized reproduction or distribution of contents or entire sites is not allowed and liable to prosecution. Only the production of copies and downloads for personal, private and non-commercial use is allowed.

+ +

The presentation of this website in external frames is not allowed without the prior permission in writing of MIG. Privacy and Data Protection

+ +

Please be aware that there are inherent security risks in transmitting data over the Internet (e.g. communication by e-mail) since it is impossible to protect completely against unauthorized access by third parties.

+ +

Using the contact details of the imprint for commercial purposes is expressly not allowed, unless we have given our written consent or there is already a business relationship. MIG and all persons named on this website hereby object to any commercial use and disclosure of their data.

+ +

Jurisdiction

+ +

These terms and conditions will be governed by the laws of the Federal Republic of Germany.

+ +

Hosted by

+ +

Universität Leipzig

+ +
+ +
+ + + diff --git a/index.html b/index.html new file mode 100644 index 0000000..c2f1417 --- /dev/null +++ b/index.html @@ -0,0 +1,308 @@ + + + + + + + + + + + + + + + TOP · TOP Research Group + + + + + + + + + + + + + + + + + +
+
+ +

Terminology- and Ontology-based Phenotyping (TOP) Framework Overview: TOP enables phenotypic queries on patient or study database and ontology-based document search for medical documents.

+ +

Deutsche Version unten.

+ +
+ +

Junior Research Group TOP

+ +

The junior research group is working on the development of an ontology-based framework for the determination and analysis of phenotypes (phenotyping). +The project is based on the structured medical data of the data integration centres of the Medical Informatics Initiative. +The models and algorithms developed are published in a web portal and made available via standardized interfaces and formats.

+ +

OBJECTIVES OF THE JUNIOR RESEARCH GROUP WITHIN THE MEDICAL INFORMATICS INITIATIVE (MII)

+

The aim of the medical informatics funding concept is to support medical research +and the improvement of patient care through IT solutions. +The exchange and use of data from patient care, clinical and biomedical research across the boundaries of institutions and locations is to be made available. +In this way, the MII will help to ensure that doctors, patients and researchers will in future be able to and efficient access to the information they need. +This can support tailored and personalized diagnosis and treatment decisions, +create new insights for the effective and sustainable fight against diseases and contribute to the continuous improvement of care.

+ +

The determination and analysis of phenotypes on the basis of automated evaluation of data +from electronic health records and research databases using suitable IT solutions is key. +For this purpose, so-called phenotype algorithms are being developed, which consist of structured filter criteria and rules +and are used to identify individuals with certain characteristics or derive further characteristics. +The implementation effort of such algorithms in a programming language or statistical software (e.g. SPSS, R) can be very high: +Firstly, established medical terminologies must be integrated and referenced in order to identify relevant characteristics clearly and semantically, +to ensure the comparability of the input data and the results. +Secondly, it must be possible to connect various data sources and define queries in respective query languages. +This can normally only be done by IT specialists, but requires close collaboration with domain experts, who have the relevant specialised knowledge.

+ +

With this in mind, the MII junior research group Terminology- and Ontology-based Phenotyping (TOP) has set itself the goal of +implementing an easily accessible ontology-based framework (TOP Framework) for modelling and executing phenotype algorithms and making it available to the community. +The concept is being developed adjacent but not limited to the use cases in focus of the SMITH consortium +and will later be applicable to other use cases of the MII consortia +and comparable projects in the medical field. +The framework will be implemented as a modular web application that combines various software tools and services for algorithmic phenotyping.

+ +

CONCEPT

+

The junior research group has developed a modular approach that enables phenotype classes to be modelled ontologically at an abstract level +(Beger et al., Applied Sciences 2022; Uciteli et al., GMS MIBE 2021; +Uciteli et al., JBMS 2020). +Phenotype classes can be used to describe and classify observable characteristics of individuals (e.g. patients and study participants). +This knowledge can be integrated into existing query languages such as SPARQL for RDF- or OWL-based data, +SQL for relational database management systems (RDMS) or HL7 FHIR Search for FHIR systems. +The generated queries can be executed directly within corresponding data sources to search for persons with desired phenotypes. +To connect new data sources, adapters must be implemented that enable the data to be mapped to the phenotype classes +and translate the phenotypic knowledge into the desired query languages. +The most important advantage of this approach is a clear separation between the modelling of expert knowledge +(by medical staff, biometricians, etc., i.e. non-IT specialists) and the implementation of the adapters (by computer scientists). +The semantically or ontologically modelled phenotype algorithms are therefore independent of the structure of the data, query languages and other technical aspects, +while still being able to be executed on different source systems using suitable adapters.

+ +

Another module of the framework will support the semantic search and classification of text documents (e.g. doctor’s letters). +The Search Ontology (Uciteli et al., JBMS 2019) method for the specification and generation of search queries is combined +with an approach based on word embeddings for content-related document clustering (formation of sets of similar documents). +The Search Ontology supports efficient and structured management of search terms (i.e. keywords, concept labels, strings) +as well as their linking with the corresponding search concepts (i.e. search terms can be represented by several terms/labels), +which enables a semantic concept-based search. +The generation of word embeddings to extract inherent semantic relations between terms in texts can be done in different ways; +not least as a by-product of current and extremely powerful transformer models (Vaswani et al., Advances in Neural Information Processing Systems 2017). +The embeddings - i.e. in simple terms, the mathematical representations of words - +are in turn summarised into concept groups using common clustering methods (Agglomerative, KMeans). +In the next step, these concept clusters are used to generate network representations by applying various algorithms, +which should enable an efficient search for relevant documents.

+ +

RESULTS

+

For the modelling and classification of phenotypes, we have developed the Core Ontology of Phenotypes (COP) +(Uciteli et al., JBMS 2020). +We consider phenotypes as individual characteristics, such as the weight of a specific person, +but also complex (composite or derived) characteristics such as a person’s BMI or SOFA score. +We call abstract entities that are instantiated by phenotypes phenotype classes. +We distinguish between atomic (e.g. age, weight, height) and composite phenotypes (e.g. BMI, SOFA score, type 2 diabetes mellitus), +which consist of additional phenotypes. +The composite phenotypes are specified by an analysable expression, +which represents either a phenotype, a constant or a function with any number of arguments. +For example, the expression of the phenotype BMI can be represented as follows: +Divide (Weight, Power (Height, 2)). +Not only mathematical, but also logical and ontological functions are supported. +Phenotype algorithms can be defined by specifying (atomic or composite) phenotypes as inclusion/exclusion criteria. +We have developed the terminology and ontology-based (TOP) framework for modelling and executing phenotype algorithms. +The framework can be integrated into hospital information systems and thus enables the algorithms to be executed on care and research data. +A query is generated for each inclusion/exclusion criterion, which is translated into the corresponding query language of the source system +and executed with the help of an adapter (Beger et al., Applied Sciences 2022; Uciteli et al., GMS MIBE 2021). +For SQL and FHIR Search, we have developed generic Java-based adapters that can be configured with a mapping. +The query results are used to evaluate expressions of the composite phenotypes.

+ +

ACKNOWLEDGEMENT

+

Funded by the + +Federal Ministry of Education and Research (BMBF). +

+ +
+ +

Nachwuchsgruppe TOP

+ +

Die Nachwuchsgruppe arbeitet an der Entwicklung eines Ontologie-basierten Frameworks zur Bestimmung und Analyse von Phänotypen (Phänotypisierung). +Dabei bilden die im Rahmen der Medizininformatik-Initiative verfügbaren Daten +der Datenintegrationszentren die Grundlage. +Die entwickelten Modelle und Algorithmen werden in einem Webportal veröffentlicht und durch standardisierte Schnittstellen und Formate verfügbar gemacht.

+ +

ZIELE DER NACHWUCHSGRUPPE INNERHALB DER MEDIZININFORMATIK-INITIATIVE (MII)

+

Ziel des Förderkonzepts Medizininformatik ist die Unterstützung der medizinischen Forschung +und die Verbesserung der Versorgung von Patientinnen und Patienten durch IT-Lösungen. +Es soll der Austausch und die Nutzung von Daten aus Krankenversorgung, klinischer und biomedizinischer Forschung +über die Grenzen von Institutionen und Standorten hinweg ermöglicht werden. +Dadurch soll die MII daran mitwirken, dass Ärztinnen und Ärzte, Patientinnen und Patienten sowie Forschende in Zukunft +schnell und effizient den Zugang zu den für sie erforderlichen Informationen erhalten. +Dies kann passgenaue und personalisierte Diagnose- und Behandlungsentscheidungen unterstützen, +neue Erkenntnisse für die wirksame und nachhaltige Bekämpfung von Krankheiten schaffen und dazu beitragen, die Versorgung stetig zu verbessern.

+ +

Die Bestimmung und Analyse von Phänotypen auf der Basis einer automatisierten Auswertung von Daten aus elektronischen Gesundheitsakten +sowie Forschungsdatenbanken durch geeignete IT-Lösungen spielt dabei eine entscheidende Rolle. +Für diesen Zweck werden sogenannte Phänotyp-Algorithmen entwickelt, die aus strukturierten Filterkriterien und Regeln bestehen und dazu dienen, +Individuen mit bestimmten Merkmalen zu identifizieren, beziehungsweise weitere Merkmale abzuleiten. +Der Implementierungsaufwand solcher Algorithmen in einer Programmiersprache oder einer Statistik-Software (z. B. SPSS oder R) kann sehr hoch sein: +Zum einen müssen etablierte medizinische Terminologien integriert und referenziert werden, um relevante Merkmale eindeutig und semantisch zu identifizieren, +damit die Vergleichbarkeit der Eingangsdaten und der Ergebnisse sichergestellt wird. +Zum anderen müssen verschiedene Datenquellen angebunden und Abfragen in entsprechenden Abfragesprachen definiert werden können, +was normalerweise nur durch IT-Fachleute durchgeführt werden kann, aber eine enge Zusammenarbeit mit Domänenexpertinnen und Domänenexperten erfordert, +die über das entsprechende Fachwissen verfügen.

+ +

In diesem Sinne hat sich die MII-Nachwuchsgruppe Terminologie- und Ontologie-basierte Phänotypisierung (TOP) zum Ziel gesetzt, +ein einfach zugängliches Ontologie-basiertes Framework (TOP Framework) zur Modellierung und Ausführung von Phänotyp-Algorithmen zu implementieren +und der Community zur Verfügung zu stellen. +Das Konzept wird entlang der Use Cases entwickelt, die im Konsortium SMITH im Fokus stehen, bleibt aber nicht auf diese beschränkt +und soll später für andere Use Cases der MII-Konsortien +sowie vergleichbare Projekte im medizinischen Bereich anwendbar sein. +Das Framework wird als eine modulare Webanwendung implementiert, die verschiedene Software-Tools und Services zur algorithmischen Phänotypisierung vereint.

+ +

KONZEPT

+

In der Nachwuchsgruppe wurde ein modularer Ansatz entwickelt, der es ermöglicht, Phänotyp-Klassen auf einer abstrakten Ebene ontologisch zu modellieren +(Beger et al., Applied Sciences 2022; Uciteli et al., GMS MIBE 2021; +Uciteli et al., JBMS 2020). +Phänotyp-Klassen können genutzt werden, um beobachtbare Eigenschaften von Individuen (z. B. Patientinnen und Patienten sowie Teilnehmende an Studien) +zu beschreiben und zu klassifizieren. +Dieses Wissen kann in existierende Abfragesprachen wie SPARQL für RDF- oder OWL-basierte Daten, SQL für relationale Datenbankmanagementsysteme (RDMS) +oder HL7 FHIR Search für FHIR-Systeme transformiert werden. +Die generierten Abfragen lassen sich direkt innerhalb entsprechender Datenquellen ausführen, um nach Personen mit gewünschten Phänotypen zu suchen. +Für die Anbindung neuer Datenquellen müssen Adapter implementiert werden, die das Mapping der Daten auf die Phänotyp-Klassen ermöglichen +und das phänotypische Wissen in gewünschte Abfragesprachen übersetzen. +Der wichtigste Vorteil dieses Ansatzes ist eine klare Trennung zwischen der Modellierung des Fachwissens +(durch medizinisches Personal, Biometrikerinnen und Biometriker, etc., also Nicht-IT-Fachleute) +und der Implementierung der Adapter (durch Informatikerinnen oder Informatiker). +Die semantisch beziehungsweise ontologisch modellierten Phänotyp-Algorithmen sind dadurch unabhängig von der Struktur der Daten, Abfragesprachen +sowie weiteren technischen Aspekten und können durch geeignete Adapter auf verschiedenen Quellsystemen ausgeführt werden.

+ +

Ein weiteres Modul des Frameworks wird eine semantische Suche und Klassifikation von Textdokumenten (zum Beispiel Arztbriefe) unterstützen. +Dabei wird die Methode der Search Ontology (Uciteli et al., JBMS 2019) zur Spezifikation und Generierung von Suchanfragen +mit einem auf Word Embeddings basierenden Ansatz zum inhaltlichen Dokumenten-Clustering (Bildung von Mengen ähnlicher Dokumente) verknüpft. +Die Search Ontology unterstützt eine effiziente und strukturierte Verwaltung von Suchtermen (d.h. Schlüsselwörter, Labels von Konzepten, Strings) +sowie ihre Verknüpfung mit den entsprechenden Such-Konzepten (d.h. Suchbegriffe können durch mehrere Terme/Labels repräsentiert werden), +was eine semantische konzeptbasierte Suche ermöglicht. +Die Erzeugung der Word Embeddings, um inhärente semantische Relationen zwischen Begriffen in Texten zu extrahieren, kann auf unterschiedliche Art erfolgen; +nicht zuletzt als ein Nebenprodukt aktueller und äußerst potenter Transformer-Modelle +(Vaswani et al., Advances in Neural Information Processing Systems 2017). +Die Embeddings – also vereinfacht ausgedrückt, die mathematischen Repräsentationen von Wörtern – werden wiederum +unter anderem durch gängige Cluster-Verfahren (Agglomerative, KMeans) in Konzept-Gruppen zusammengefasst. +In einem nächsten Schritt werden aus diesen Konzept-Clustern durch die Anwendung verschiedener Algorithmen +Netzwerk-Repräsentationen erzeugt, die eine effiziente Suche nach relevanten Dokumenten ermöglichen sollen.

+ +

ERGEBNISSE

+

Zur Modellierung und Klassifikation von Phänotypen haben wir +die Core Ontology of Phenotypes (COP) entwickelt (Uciteli et al., JBMS 2020). +Dabei betrachten wir Phänotypen als individuelle Eigenschaften, wie z. B. das Gewicht einer konkreten Person, +aber auch komplexe (zusammengesetzte bzw. abgeleitete) Merkmale wie der BMI-Wert oder der SOFA-Score einer Person. +Abstrakte Entitäten, die durch Phänotypen instanziiert werden, nennen wir Phänotyp-Klassen. +Wir unterscheiden zwischen atomaren (z. B. Alter, Gewicht, Größe) und zusammengesetzten Phänotypen (z. B. BMI, SOFA-Score, Typ 2 Diabetes Mellitus), +die aus weiteren Phänotypen bestehen. +Die zusammengesetzten Phänotypen werden durch einen auswertbaren Ausdruck spezifiziert, +der entweder einen Phänotyp, eine Konstante oder eine Funktion mit einer beliebigen Anzahl von Argumenten repräsentiert. +Beispielsweise kann der Ausdruck des Phänotyp BMI wie folgt dargestellt werden: +Quotient (Gewicht, Potenz (Größe, 2)). +Es werden nicht nur mathematische, sondern auch logische und ontologische Funktionen unterstützt. +Phänotyp-Algorithmen können durch Angabe von (atomaren oder zusammengesetzten) Phänotypen als Ein-/Ausschlusskriterien definiert werden. +Zur Modellierung und Ausführung von Phänotyp-Algorithmen haben wir das Terminologie- und Ontologie-basierte (TOP) Framework entwickelt. +Das Framework kann in Krankenhausinformationssysteme integriert werden und ermöglicht somit die Ausführung der Algorithmen auf Versorgungs- und Forschungsdaten. +Dabei wird für jedes Ein-/Ausschlusskriterium eine Abfrage generiert, die mit Hilfe eines Adapters in die entsprechende Abfragesprache des Quellsystems übersetzt +und ausgeführt wird (Beger et al., Applied Sciences 2022; Uciteli et al., GMS MIBE 2021). +Für SQL und FHIR Search haben wir generische Java-basierte Adapter entwickelt, die mit einem Mapping konfiguriert werden können. +Die Abfrageergebnisse werden für die Auswertung von Ausdrücken der zusammengesetzten Phänotypen genutzt.

+ +

ACKNOWLEDGEMENT

+

Gefördert durch das + +Bundesministerium für Bildung und Forschung (BMBF). +

+ +

Text vorher erschienen in IMISE-Broschüre/text originally published in IMISE-brochure
+30 Jahre Institut für medizinische Informatik, Statistik und Epidemiologie und seine Wissenschaftsfamilie, S.77ff.

+ +

IMISE Logo +BMBF Logo

+ +
+ +
+ + + diff --git a/internal/index.html b/internal/index.html new file mode 100644 index 0000000..5461234 --- /dev/null +++ b/internal/index.html @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + Internal · TOP + + + + + + + + + + + + + + + + + +
+
+ +

Internal

+ + + + + + +
+ +
+ + + diff --git a/photos/Alle.jpg b/photos/Alle.jpg new file mode 100644 index 0000000..9a95950 Binary files /dev/null and b/photos/Alle.jpg differ diff --git a/photos/Beger_C.jpg b/photos/Beger_C.jpg new file mode 100644 index 0000000..aeca41a Binary files /dev/null and b/photos/Beger_C.jpg differ diff --git "a/photos/H\303\266ffner_K.jpg" "b/photos/H\303\266ffner_K.jpg" new file mode 100644 index 0000000..5806c46 Binary files /dev/null and "b/photos/H\303\266ffner_K.jpg" differ diff --git a/photos/Matthies_F.jpg b/photos/Matthies_F.jpg new file mode 100644 index 0000000..67d69fa Binary files /dev/null and b/photos/Matthies_F.jpg differ diff --git "a/photos/Sch\303\244fermeier_R.jpg" "b/photos/Sch\303\244fermeier_R.jpg" new file mode 100644 index 0000000..e9cb406 Binary files /dev/null and "b/photos/Sch\303\244fermeier_R.jpg" differ diff --git a/photos/Uciteli_A.jpg b/photos/Uciteli_A.jpg new file mode 100644 index 0000000..cbcd2bb Binary files /dev/null and b/photos/Uciteli_A.jpg differ diff --git a/projects/index.html b/projects/index.html new file mode 100644 index 0000000..11e64e0 --- /dev/null +++ b/projects/index.html @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + Projects · TOP + + + + + + + + + + + + + + + + + +
+
+ +

Projects

+ +

Projects

+ + + +
+ +
+ + + diff --git a/public/bmbf-logo.pdf b/public/bmbf-logo.pdf new file mode 100644 index 0000000..8205fb3 Binary files /dev/null and b/public/bmbf-logo.pdf differ diff --git a/public/bmbf-logo.svg b/public/bmbf-logo.svg new file mode 100644 index 0000000..e704c63 --- /dev/null +++ b/public/bmbf-logo.svg @@ -0,0 +1,207 @@ + +image/svg+xml diff --git a/public/browse.png b/public/browse.png new file mode 100644 index 0000000..1620abd Binary files /dev/null and b/public/browse.png differ diff --git a/public/catalogue.jpg b/public/catalogue.jpg new file mode 100644 index 0000000..65f05c0 Binary files /dev/null and b/public/catalogue.jpg differ diff --git a/public/css/collapse.css b/public/css/collapse.css new file mode 100644 index 0000000..c31209a --- /dev/null +++ b/public/css/collapse.css @@ -0,0 +1,72 @@ +.wrap-collapsible { + margin-bottom: 1.2rem; +} + +input[type='checkbox'] { + display: none; +} + +.lbl-toggle { + display: block; + + font-weight: bold; + font-family: monospace; + font-size: 1.2rem; + text-transform: uppercase; + text-align: center; + + padding: 1rem; + + color: #ffffff; + background: #ac4142; + + cursor: pointer; + + border-radius: 7px; + transition: all 0.25s ease-out; +} + +.lbl-toggle:hover { + color: #ffffff; +} + +.lbl-toggle::before { + content: ' '; + display: inline-block; + + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + border-left: 5px solid currentColor; + vertical-align: middle; + margin-right: .7rem; + transform: translateY(-2px); + + transition: transform .2s ease-out; +} + +.toggle:checked + .lbl-toggle::before { + transform: rotate(90deg) translateX(-3px); +} + +.collapsible-content { + max-height: 0px; + overflow: hidden; + transition: max-height .25s ease-in-out; +} + +.toggle:checked + .lbl-toggle + .collapsible-content { + max-height: 100vh; +} + +.toggle:checked + .lbl-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; +} + +.collapsible-content .content-inner { + background: rgba(250, 224, 66, .2); + border-bottom: 1px solid rgba(250, 224, 66, .45); + border-bottom-left-radius: 7px; + border-bottom-right-radius: 7px; + padding: .5rem 1rem; +} diff --git a/public/css/custom.css b/public/css/custom.css new file mode 100644 index 0000000..fd56ed9 --- /dev/null +++ b/public/css/custom.css @@ -0,0 +1,89 @@ +.portrait > img { + border-radius: 50%; + height: 8em; + width: 8em; + justify-self: center; +} + +.teamGrid { + display: grid; + align-items: center; + grid-template-columns: 8em 16em; + grid-gap: 1em; +} + +@media screen and (min-width: 48em) { + #logo { + background-image: url("../top-logo-white.svg"); + background-repeat: no-repeat; + background-size: contain; + background-position: center; + height: 20rem; + width: 100%; + } +} + +@media screen and (max-width: 48em) { + .container .sidebar-about h1 a { + display: none; + } + .sidebar-nav .sidebar-nav-item { + display: inline; + white-space: nowrap; + } + .sidebar { + padding: 0.1rem 1rem; + } + .content { + padding-top: 0.2rem; + padding-bottom: 0rem; + } + .content hr { + margin: 0; + } + .flex-item a { + font-size: 20px; + } +} + +.flex-item { + width: 15rem; + height: 15rem; + background-color: rgba(255, 255, 255, 0.8); + border: 1px solid rgba(255, 255, 255, 0.8); + padding: 10px; + font-size: 30px; + text-align: center; +} + +.flex-item img { + display: inline; + max-width: 100%; + max-height: 80%; + margin: auto; +} + +.flexy { + display: flex; + flex-wrap: wrap; + align-items: center; + justify-content: center; +} + +/* TOP Color scheme */ +.theme-base-top .sidebar { + background-color: #6e8fb1; +} +.theme-base-top .content a, +.theme-base-top .related-posts li a:hover { + color: #6e8fb1; +} + +.copyright { + font-size:50%; + color:#999999; +} + +.group-photo { + margin-top: 5em; +} \ No newline at end of file diff --git a/public/css/hyde.css b/public/css/hyde.css new file mode 100644 index 0000000..325e8a2 --- /dev/null +++ b/public/css/hyde.css @@ -0,0 +1,250 @@ +/* + * __ __ + * /\ \ /\ \ + * \ \ \___ __ __ \_\ \ __ + * \ \ _ `\/\ \/\ \ /'_` \ /'__`\ + * \ \ \ \ \ \ \_\ \/\ \_\ \/\ __/ + * \ \_\ \_\/`____ \ \___,_\ \____\ + * \/_/\/_/`/___/> \/__,_ /\/____/ + * /\___/ + * \/__/ + * + * Designed, built, and released under MIT license by @mdo. Learn more at + * https://github.com/poole/hyde. + */ + + +/* + * Contents + * + * Global resets + * Sidebar + * Container + * Reverse layout + * Themes + */ + + +/* + * Global resets + * + * Update the foundational and global aspects of the page. + */ + +html { + font-family: "PT Sans", Helvetica, Arial, sans-serif; +} +@media (min-width: 48em) { + html { + font-size: 16px; + } +} +@media (min-width: 58em) { + html { + font-size: 20px; + } +} + + +/* + * Sidebar + * + * Flexible banner for housing site name, intro, and "footer" content. Starts + * out above content in mobile and later moves to the side with wider viewports. + */ + +.sidebar { + text-align: center; + padding: 2rem 1rem; + color: rgba(255,255,255,.5); + background-color: #202020; +} +@media (min-width: 48em) { + .sidebar { + position: fixed; + top: 0; + left: 0; + bottom: 0; + width: 18rem; + text-align: left; + } +} + +/* Sidebar links */ +.sidebar a { + color: #fff; +} + +/* About section */ +.sidebar-about h1 { + color: #fff; + margin-top: 0; + font-family: "Abril Fatface", serif; + font-size: 3.25rem; +} + +/* Sidebar nav */ +.sidebar-nav { + margin-bottom: 1rem; +} +.sidebar-nav-item { + display: block; + line-height: 1.75; +} +a.sidebar-nav-item:hover, +a.sidebar-nav-item:focus { + text-decoration: underline; +} +.sidebar-nav-item.active { + font-weight: bold; +} + +/* Sticky sidebar + * + * Add the `sidebar-sticky` class to the sidebar's container to affix it the + * contents to the bottom of the sidebar in tablets and up. + */ + +@media (min-width: 48em) { + .sidebar-sticky { + position: absolute; + right: 1rem; + bottom: 1rem; + left: 1rem; + } +} + + +/* Container + * + * Align the contents of the site above the proper threshold with some margin-fu + * with a 25%-wide `.sidebar`. + */ + +.content { + padding-top: 4rem; + padding-bottom: 4rem; +} + +@media (min-width: 48em) { + .content { + max-width: 63rem; + margin-left: 20rem; + margin-right: 2rem; + } +} + +@media (min-width: 64em) { + .content { + margin-left: 22rem; + margin-right: 4rem; + } +} + + +/* + * Reverse layout + * + * Flip the orientation of the page by placing the `.sidebar` on the right. + */ + +@media (min-width: 48em) { + .layout-reverse .sidebar { + left: auto; + right: 0; + } + .layout-reverse .content { + margin-left: 2rem; + margin-right: 20rem; + } +} + +@media (min-width: 64em) { + .layout-reverse .content { + margin-left: 4rem; + margin-right: 22rem; + } +} + + + +/* + * Themes + * + * As of v1.1, Hyde includes optional themes to color the sidebar and links + * within blog posts. To use, add the class of your choosing to the `body`. + */ + +/* Base16 (http://chriskempson.github.io/base16/#default) */ + +/* Red */ +.theme-base-08 .sidebar { + background-color: #ac4142; +} +.theme-base-08 .content a, +.theme-base-08 .related-posts li a:hover { + color: #ac4142; +} + +/* Orange */ +.theme-base-09 .sidebar { + background-color: #d28445; +} +.theme-base-09 .content a, +.theme-base-09 .related-posts li a:hover { + color: #d28445; +} + +/* Yellow */ +.theme-base-0a .sidebar { + background-color: #f4bf75; +} +.theme-base-0a .content a, +.theme-base-0a .related-posts li a:hover { + color: #f4bf75; +} + +/* Green */ +.theme-base-0b .sidebar { + background-color: #90a959; +} +.theme-base-0b .content a, +.theme-base-0b .related-posts li a:hover { + color: #90a959; +} + +/* Cyan */ +.theme-base-0c .sidebar { + background-color: #75b5aa; +} +.theme-base-0c .content a, +.theme-base-0c .related-posts li a:hover { + color: #75b5aa; +} + +/* Blue */ +.theme-base-0d .sidebar { + background-color: #6a9fb5; +} +.theme-base-0d .content a, +.theme-base-0d .related-posts li a:hover { + color: #6a9fb5; +} + +/* Magenta */ +.theme-base-0e .sidebar { + background-color: #aa759f; +} +.theme-base-0e .content a, +.theme-base-0e .related-posts li a:hover { + color: #aa759f; +} + +/* Brown */ +.theme-base-0f .sidebar { + background-color: #8f5536; +} +.theme-base-0f .content a, +.theme-base-0f .related-posts li a:hover { + color: #8f5536; +} \ No newline at end of file diff --git a/public/css/poole.css b/public/css/poole.css new file mode 100644 index 0000000..38e1bdf --- /dev/null +++ b/public/css/poole.css @@ -0,0 +1,430 @@ +/* + * ___ + * /\_ \ + * _____ ___ ___\//\ \ __ + * /\ '__`\ / __`\ / __`\\ \ \ /'__`\ + * \ \ \_\ \/\ \_\ \/\ \_\ \\_\ \_/\ __/ + * \ \ ,__/\ \____/\ \____//\____\ \____\ + * \ \ \/ \/___/ \/___/ \/____/\/____/ + * \ \_\ + * \/_/ + * + * Designed, built, and released under MIT license by @mdo. Learn more at + * https://github.com/poole/poole. + */ + + +/* + * Contents + * + * Body resets + * Custom type + * Messages + * Container + * Masthead + * Posts and pages + * Pagination + * Reverse layout + * Themes + */ + + +/* + * Body resets + * + * Update the foundational and global aspects of the page. + */ + +* { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; +} + +html, +body { + margin: 0; + padding: 0; +} + +html { + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 16px; + line-height: 1.5; +} +@media (min-width: 38em) { + html { + font-size: 20px; + } +} + +body { + color: #515151; + background-color: #fff; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; +} + +/* No `:visited` state is required by default (browsers will use `a`) */ +a { + color: #268bd2; + text-decoration: none; +} +a strong { + color: inherit; +} +/* `:focus` is linked to `:hover` for basic accessibility */ +a:hover, +a:focus { + text-decoration: underline; +} + +/* Headings */ +h1, h2, h3, h4, h5, h6 { + margin-bottom: .5rem; + font-weight: bold; + line-height: 1.25; + color: #313131; + text-rendering: optimizeLegibility; +} +h1 { + font-size: 2rem; +} +h2 { + margin-top: 1rem; + font-size: 1.5rem; +} +h3 { + margin-top: 1.5rem; + font-size: 1.25rem; +} +h4, h5, h6 { + margin-top: 1rem; + font-size: 1rem; +} + +/* Body text */ +p { + margin-top: 0; + margin-bottom: 1rem; +} + +strong { + color: #303030; +} + + +/* Lists */ +ul, ol, dl { + margin-top: 0; + margin-bottom: 1rem; +} + +dt { + font-weight: bold; +} +dd { + margin-bottom: .5rem; +} + +/* Misc */ +hr { + position: relative; + margin: 1.5rem 0; + border: 0; + border-top: 1px solid #eee; + border-bottom: 1px solid #fff; +} + +abbr { + font-size: 85%; + font-weight: bold; + color: #555; + text-transform: uppercase; +} +abbr[title] { + cursor: help; + border-bottom: 1px dotted #e5e5e5; +} + +/* Code */ +code, +pre { + font-family: Menlo, Monaco, "Courier New", monospace; +} +code { + padding: .25em .5em; + font-size: 85%; + color: #bf616a; + background-color: #f9f9f9; + border-radius: 3px; +} +pre { + display: block; + margin-top: 0; + margin-bottom: 1rem; + padding: 1rem; + font-size: .8rem; + line-height: 1.4; + white-space: pre; + white-space: pre-wrap; + word-break: break-all; + word-wrap: break-word; + background-color: #f9f9f9; +} +pre code { + padding: 0; + font-size: 100%; + color: inherit; + background-color: transparent; +} + +/* Pygments via Jekyll */ +.highlight { + margin-bottom: 1rem; + border-radius: 4px; +} +.highlight pre { + margin-bottom: 0; +} + +/* Gist via GitHub Pages */ +.gist .gist-file { + font-family: Menlo, Monaco, "Courier New", monospace !important; +} +.gist .markdown-body { + padding: 15px; +} +.gist pre { + padding: 0; + background-color: transparent; +} +.gist .gist-file .gist-data { + font-size: .8rem !important; + line-height: 1.4; +} +.gist code { + padding: 0; + color: inherit; + background-color: transparent; + border-radius: 0; +} + +/* Quotes */ +blockquote { + padding: .5rem 1rem; + margin: .8rem 0; + color: #7a7a7a; + border-left: .25rem solid #e5e5e5; +} +blockquote p:last-child { + margin-bottom: 0; +} +@media (min-width: 30em) { + blockquote { + padding-right: 5rem; + padding-left: 1.25rem; + } +} + +img { + display: block; + max-width: 100%; + margin: 0 0 0; + border-radius: 0px; +} + +/* Tables */ +table { + margin-bottom: 1rem; + width: 100%; + border: 1px solid #e5e5e5; + border-collapse: collapse; +} +td, +th { + padding: .25rem .5rem; + border: 1px solid #e5e5e5; +} +tbody tr:nth-child(odd) td, +tbody tr:nth-child(odd) th { + background-color: #f9f9f9; +} + + +/* + * Custom type + * + * Extend paragraphs with `.lead` for larger introductory text. + */ + +.lead { + font-size: 1.25rem; + font-weight: 300; +} + + +/* + * Messages + * + * Show alert messages to users. You may add it to single elements like a `

`, + * or to a parent if there are multiple elements to show. + */ + +.message { + margin-bottom: 1rem; + padding: 1rem; + color: #717171; + background-color: #f9f9f9; +} + + +/* + * Container + * + * Center the page content. + */ + +.container { + max-width: 38rem; + padding-left: 1rem; + padding-right: 1rem; + margin-left: auto; + margin-right: auto; +} + + +/* + * Masthead + * + * Super small header above the content for site name and short description. + */ + +.masthead { + padding-top: 1rem; + padding-bottom: 1rem; + margin-bottom: 3rem; +} +.masthead-title { + margin-top: 0; + margin-bottom: 0; + color: #505050; +} +.masthead-title a { + color: #505050; +} +.masthead-title small { + font-size: 75%; + font-weight: 400; + color: #c0c0c0; + letter-spacing: 0; +} + + +/* + * Posts and pages + * + * Each post is wrapped in `.post` and is used on default and post layouts. Each + * page is wrapped in `.page` and is only used on the page layout. + */ + +.page, +.post { + margin-bottom: 4em; +} + +/* Blog post or page title */ +.page-title, +.post-title, +.post-title a { + color: #303030; +} +.page-title, +.post-title { + margin-top: 0; +} + +/* Meta data line below post title */ +.post-date { + display: block; + margin-top: -.5rem; + margin-bottom: 1rem; + color: #9a9a9a; +} + +/* Related posts */ +.related { + padding-top: 2rem; + padding-bottom: 2rem; + border-top: 1px solid #eee; +} +.related-posts { + padding-left: 0; + list-style: none; +} +.related-posts h3 { + margin-top: 0; +} +.related-posts li small { + font-size: 75%; + color: #999; +} +.related-posts li a:hover { + color: #268bd2; + text-decoration: none; +} +.related-posts li a:hover small { + color: inherit; +} + + +/* + * Pagination + * + * Super lightweight (HTML-wise) blog pagination. `span`s are provide for when + * there are no more previous or next posts to show. + */ + +.pagination { + overflow: hidden; /* clearfix */ + margin-left: -1rem; + margin-right: -1rem; + font-family: "PT Sans", Helvetica, Arial, sans-serif; + color: #ccc; + text-align: center; +} + +/* Pagination items can be `span`s or `a`s */ +.pagination-item { + display: block; + padding: 1rem; + border: 1px solid #eee; +} +.pagination-item:first-child { + margin-bottom: -1px; +} + +/* Only provide a hover state for linked pagination items */ +a.pagination-item:hover { + background-color: #f5f5f5; +} + +@media (min-width: 30em) { + .pagination { + margin: 3rem 0; + } + .pagination-item { + float: left; + width: 50%; + } + .pagination-item:first-child { + margin-bottom: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; + } + .pagination-item:last-child { + margin-left: -1px; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + } +} diff --git a/public/css/syntax.css b/public/css/syntax.css new file mode 100644 index 0000000..15ad797 --- /dev/null +++ b/public/css/syntax.css @@ -0,0 +1,65 @@ +.highlight .hll { background-color: #ffc; } +.highlight .c { color: #999; } /* Comment */ +.highlight .err { color: #a00; background-color: #faa } /* Error */ +.highlight .k { color: #069; } /* Keyword */ +.highlight .o { color: #555 } /* Operator */ +.highlight .cm { color: #09f; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #099 } /* Comment.Preproc */ +.highlight .c1 { color: #999; } /* Comment.Single */ +.highlight .cs { color: #999; } /* Comment.Special */ +.highlight .gd { background-color: #fcc; border: 1px solid #c00 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #f00 } /* Generic.Error */ +.highlight .gh { color: #030; } /* Generic.Heading */ +.highlight .gi { background-color: #cfc; border: 1px solid #0c0 } /* Generic.Inserted */ +.highlight .go { color: #aaa } /* Generic.Output */ +.highlight .gp { color: #009; } /* Generic.Prompt */ +.highlight .gs { } /* Generic.Strong */ +.highlight .gu { color: #030; } /* Generic.Subheading */ +.highlight .gt { color: #9c6 } /* Generic.Traceback */ +.highlight .kc { color: #069; } /* Keyword.Constant */ +.highlight .kd { color: #069; } /* Keyword.Declaration */ +.highlight .kn { color: #069; } /* Keyword.Namespace */ +.highlight .kp { color: #069 } /* Keyword.Pseudo */ +.highlight .kr { color: #069; } /* Keyword.Reserved */ +.highlight .kt { color: #078; } /* Keyword.Type */ +.highlight .m { color: #f60 } /* Literal.Number */ +.highlight .s { color: #d44950 } /* Literal.String */ +.highlight .na { color: #4f9fcf } /* Name.Attribute */ +.highlight .nb { color: #366 } /* Name.Builtin */ +.highlight .nc { color: #0a8; } /* Name.Class */ +.highlight .no { color: #360 } /* Name.Constant */ +.highlight .nd { color: #99f } /* Name.Decorator */ +.highlight .ni { color: #999; } /* Name.Entity */ +.highlight .ne { color: #c00; } /* Name.Exception */ +.highlight .nf { color: #c0f } /* Name.Function */ +.highlight .nl { color: #99f } /* Name.Label */ +.highlight .nn { color: #0cf; } /* Name.Namespace */ +.highlight .nt { color: #2f6f9f; } /* Name.Tag */ +.highlight .nv { color: #033 } /* Name.Variable */ +.highlight .ow { color: #000; } /* Operator.Word */ +.highlight .w { color: #bbb } /* Text.Whitespace */ +.highlight .mf { color: #f60 } /* Literal.Number.Float */ +.highlight .mh { color: #f60 } /* Literal.Number.Hex */ +.highlight .mi { color: #f60 } /* Literal.Number.Integer */ +.highlight .mo { color: #f60 } /* Literal.Number.Oct */ +.highlight .sb { color: #c30 } /* Literal.String.Backtick */ +.highlight .sc { color: #c30 } /* Literal.String.Char */ +.highlight .sd { color: #c30; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #c30 } /* Literal.String.Double */ +.highlight .se { color: #c30; } /* Literal.String.Escape */ +.highlight .sh { color: #c30 } /* Literal.String.Heredoc */ +.highlight .si { color: #a00 } /* Literal.String.Interpol */ +.highlight .sx { color: #c30 } /* Literal.String.Other */ +.highlight .sr { color: #3aa } /* Literal.String.Regex */ +.highlight .s1 { color: #c30 } /* Literal.String.Single */ +.highlight .ss { color: #fc3 } /* Literal.String.Symbol */ +.highlight .bp { color: #366 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #033 } /* Name.Variable.Class */ +.highlight .vg { color: #033 } /* Name.Variable.Global */ +.highlight .vi { color: #033 } /* Name.Variable.Instance */ +.highlight .il { color: #f60 } /* Literal.Number.Integer.Long */ + +.css .o, +.css .o + .nt, +.css .nt + .nt { color: #999; } diff --git a/public/download.png b/public/download.png new file mode 100644 index 0000000..ec795f9 Binary files /dev/null and b/public/download.png differ diff --git a/public/imise-logo.pdf b/public/imise-logo.pdf new file mode 100644 index 0000000..68e41b4 Binary files /dev/null and b/public/imise-logo.pdf differ diff --git a/public/imise-logo.svg b/public/imise-logo.svg new file mode 100644 index 0000000..8b11852 --- /dev/null +++ b/public/imise-logo.svg @@ -0,0 +1,74 @@ + +image/svg+xml + + \ No newline at end of file diff --git a/public/papers/app12105214.pdf b/public/papers/app12105214.pdf new file mode 100644 index 0000000..49d9c5c Binary files /dev/null and b/public/papers/app12105214.pdf differ diff --git a/public/papers/mibe000219.pdf b/public/papers/mibe000219.pdf new file mode 100644 index 0000000..99c07bc Binary files /dev/null and b/public/papers/mibe000219.pdf differ diff --git a/public/papers/mibe000256.pdf b/public/papers/mibe000256.pdf new file mode 100644 index 0000000..dd88598 Binary files /dev/null and b/public/papers/mibe000256.pdf differ diff --git a/public/papers/s13326-020-00230-0.pdf b/public/papers/s13326-020-00230-0.pdf new file mode 100644 index 0000000..6f183c5 Binary files /dev/null and b/public/papers/s13326-020-00230-0.pdf differ diff --git a/public/papers/shti230695.pdf b/public/papers/shti230695.pdf new file mode 100644 index 0000000..0f72b12 Binary files /dev/null and b/public/papers/shti230695.pdf differ diff --git a/public/papers/shti230710.pdf b/public/papers/shti230710.pdf new file mode 100644 index 0000000..fb26f94 Binary files /dev/null and b/public/papers/shti230710.pdf differ diff --git a/public/papers/shti240854.pdf b/public/papers/shti240854.pdf new file mode 100644 index 0000000..0f095ad Binary files /dev/null and b/public/papers/shti240854.pdf differ diff --git a/public/papers/shti240855.pdf b/public/papers/shti240855.pdf new file mode 100644 index 0000000..9e60902 Binary files /dev/null and b/public/papers/shti240855.pdf differ diff --git a/public/search.jpg b/public/search.jpg new file mode 100644 index 0000000..3b8fbeb Binary files /dev/null and b/public/search.jpg differ diff --git a/public/sparql.png b/public/sparql.png new file mode 100644 index 0000000..f454089 Binary files /dev/null and b/public/sparql.png differ diff --git a/public/top-framework-overview.pdf b/public/top-framework-overview.pdf new file mode 100644 index 0000000..cacb984 Binary files /dev/null and b/public/top-framework-overview.pdf differ diff --git a/public/top-framework-overview.svg b/public/top-framework-overview.svg new file mode 100644 index 0000000..6b09b11 --- /dev/null +++ b/public/top-framework-overview.svg @@ -0,0 +1,4820 @@ + + + + + TOP Framework Overview + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + MedicalDocuments + Patient or StudyDatabase + Ontology-basedDocument Search + PhenotypicQueries + + + + + + Terminology- andOntology-basedPhenotyping + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + TOP Framework Overview + + + + diff --git a/public/top-logo-grey.pdf b/public/top-logo-grey.pdf new file mode 100644 index 0000000..eaf44c3 Binary files /dev/null and b/public/top-logo-grey.pdf differ diff --git a/public/top-logo-grey.svg b/public/top-logo-grey.svg new file mode 100644 index 0000000..721e632 --- /dev/null +++ b/public/top-logo-grey.svg @@ -0,0 +1,206 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/top-logo-white.svg b/public/top-logo-white.svg new file mode 100644 index 0000000..fa69caf --- /dev/null +++ b/public/top-logo-white.svg @@ -0,0 +1,206 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/publications/index.html b/publications/index.html new file mode 100644 index 0000000..60ba71e --- /dev/null +++ b/publications/index.html @@ -0,0 +1,414 @@ + + + + + + + + + + + + + + + Publications · TOP + + + + + + + + + + + + + + +

+ + +
+
+ +

Publications

+ + + + +

Papers

+ +

2024

+ + + + +

+

+

Schäfermeier R, Beger C, Matthies F, Höffner K, Uciteli A +Tracking Changes for Inter-Version Interoperability in Heterogeneous Evolving Medical Terminologies +DOI: 10.3233/shti240855 +PMID: 39234722

+ +

Link

+
+ + +
+
+

+ @incollection{trackingchanges,
+ title={Tracking Changes for Inter-Version Interoperability in Heterogeneous Evolving Medical Terminologies},
+ author={Sch{\"a}fermeier, Ralph and Beger, Christoph and Matthies, Franz and H{\"o}ffner, Konrad and Uciteli, Alexandr},
+ doi={10.3233/shti240855},
+ booktitle={German Medical Data Sciences 2024},
+ editor={Rainer Röhrig and Niels Grabe and Ursula Hertha Hübner and Klaus Jung and Ulrich Sax and Carsten Oliver Schmidt and Martin Sedlmayr and Antonia Zapf},
+ organization={German Association of Medical Informatics, Biometry, and Epidemiology e.V. (GMDS)},
+ address={Dresden, Germany},
+ series={Studies in Health Technology and Informatics}, + volume={317},
+ pages={190--199},
+ year={2024},
+ publisher={IOS Press}
+ } +

+
+
+
+ + + +

+

+

Matthies F, Beger C, Schäfermeier R, Höffner K, Uciteli A +Extending the TOP Framework with an Ontology-Based Text Search Component +DOI: 10.3233/shti240854 +PMID: 39234721

+ +

Link

+
+ + +
+
+

+ @incollection{extendingtop,
+ title={Extending the {TOP} Framework with an Ontology-Based Text Search Component},
+ author={Matthies, Franz and Beger, Christoph and Sch{\"a}fermeier, Ralph and and H{\"o}ffner, Konrad and Uciteli, Alexandr},
+ doi={10.3233/shti240854},
+ booktitle={German Medical Data Sciences 2024},
+ editor={Rainer Röhrig and Niels Grabe and Ursula Hertha Hübner and Klaus Jung and Ulrich Sax and Carsten Oliver Schmidt and Martin Sedlmayr and Antonia Zapf},
+ organization={German Association of Medical Informatics, Biometry, and Epidemiology e.V. (GMDS)},
+ address={Dresden, Germany},
+ series={Studies in Health Technology and Informatics}, + volume={317},
+ pages={180--189},
+ year={2024},
+ publisher={IOS Press}
+ } +

+
+
+
+ + + +

+ +Beger C, Eberl M, Dietz Y, Matthies F, Schäfermeier R, Höffner K, Reusche M, Uciteli A +Improving the LIFE Research Data Request Workflow with the TOP Phenotyping Framework +DOI: 10.3205/24gmds114

+ +

Link

+
+ + +
+
+

+ @misc{improvinglife,
+ title={Improving the {LIFE} Research Data Request Workflow with the {TOP} Phenotyping Framework},
+ author={Beger, Christoph and Eberl, Melanie and Dietz, Yvonne and Matthies, Franz and Sch{\"a}fermeier, Ralph and Reusche, Matthias and H{\"o}ffner, Konrad and Uciteli, Alexandr},
+ doi={10.3205/24gmds114},
+ note={Abstract},
+ year={2024},
+ } +

+
+
+
+ +

2023

+ + + +

+

+

Beger C, Boehmer AM, Mussawy B, Redeker L, Matthies F, Schäfermeier R, Härdtlein A, Dreischulte T, Neumann D, Uciteli A +Modelling Adverse Events with the TOP Phenotyping Framework +DOI: 10.3233/shti230695 +PMID: 37697839

+ +

Link

+
+ + +
+
+

+ @incollection{modellingadverse,
+ title={Modelling Adverse Events with the {TOP} Phenotyping Framework},
+ author={Beger, Christoph and Boehmer, Anna Maria and Mussawy, Beate and Redeker, Louisa and Matthies, Franz and Sch{\"a}fermeier, Ralph and H{\"a}rdtlein, Annette and Dreischulte, Tobias and Neumann, Daniel and Uciteli, Alexandr},
+ doi={10.3233/shti230695},
+ booktitle={German Medical Data Sciences 2023---Science. Close to People},
+ editor={Rainer Röhrig and Niels Grabe and Martin Haag and Ursula Hübner and Ulrich Sax and Carsten Oliver Schmidt and Martin Sedlmayr and Antonia Zapf},
+ organization={German Association of Medical Informatics, Biometry, and Epidemiology e.V. (GMDS)},
+ address={Heilbronn, Germany},
+ series={Studies in Health Technology and Informatics}, + volume={307},
+ pages={69--77},
+ year={2023},
+ publisher={IOS Press}
+ } +

+
+
+
+ + +

+

+

Beger C, Matthies F, Schäfermeier R, Uciteli A +Model-driven execution of phenotype algorithms – introduction of the Terminology - and Ontology-based Phenotyping Framework +DOI: 10.3205/mibe000256

+ +

Link

+
+ + +
+
+

+ @article{modeldriven,
+ title={Model-driven execution of phenotype algorithms --- introduction of the Terminology --- and Ontology-based Phenotyping Framework},
+ author={Beger, Christoph and Matthies, Franz and Sch{\"a}fermeier, Ralph and Uciteli, Alexandr},
+ journal={GMS Medical Informatics, Biometry and Epidemiology},
+ volume={19},
+ year={2023},
+ } +

+
+
+
+ + + +

+

+

Matthies F, Beger C, Schäfermeier R, Uciteli A +Concept Graphs: A Novel Approach for Textual Analysis of Medical Documents +DOI: 10.3233/SHTI230710 +PMID: 37697851 +GitHub: Onto-Med/concept-graphs

+ +

Link

+
+ + +
+
+

+ @inproceedings{topconceptgraphs,
+ title={Concept Graphs: A Novel Approach for Textual Analysis of Medical Documents},
+ author={Matthies, Franz and Beger, Christoph and Sch{\"a}fermeier, Ralph and Uciteli, Alexandr},
+ doi={10.3233/SHTI230710},
+ booktitle={German Medical Data Sciences 2023---Science. Close to People},
+ editor={Rainer Röhrig and Niels Grabe and Martin Haag and Ursula Hübner and Ulrich Sax and Carsten Oliver Schmidt and Martin Sedlmayr and Antonia Zapf},
+ organization={German Association of Medical Informatics, Biometry, and Epidemiology e.V. (GMDS)},
+ address={Heilbronn, Germany},
+ volume={307},
+ pages={172-179},
+ year={2023},
+ mon={Sep},
+ } +

+
+
+
+ +

2022

+ +

+

+

Beger C and Matthies F and Schäfermeier R and Kirsten T and Herre H and Uciteli A +Towards an Ontology-Based Phenotypic Query Model +DOI: 10.3390/app12105214

+ +

Link

+
+ + +
+
+

+ @article{topframework,
+ author={Beger, Christoph and Matthies, Franz and Schäfermeier, Ralph and Kirsten, Toralf and Herre, Heinrich and Uciteli, Alexandr},
+ title={Towards an Ontology-Based Phenotypic Query Model},
+ journal={Applied Sciences},
+ volume={12},
+ year={2022},
+ number={10},
+ article-number={5214},
+ url={https://www.mdpi.com/2076-3417/12/10/5214},
+ issn={2076-3417},
+ doi={10.3390/app12105214}
+ } +

+
+
+
+ +

2021

+ +

+

+

Uciteli A and Beger C and Wagner J and Kirsten T and Meineke F A and Stäubert S and Löbe M and Herre H +Ontological modelling and FHIR Search based representation of basic eligibility criteria +DOI: 10.3205/mibe000219

+ +

Link

+
+ + +
+
+

+ @article{topsearch,
+ title={Ontological modelling and FHIR Search based representation of basic eligibility criteria.},
+ author={Uciteli, Alexandr and Beger, Christoph and Wagner, Jonas and Kirsten, Toralf and Meineke, Frank A and St{\"a}ubert, Sebastian and L{\"o}be, Matthias and Herre, Heinrich},
+ journal={GMS Medical Informatics, Biometry and Epidemiology},
+ volume={17},
+ number={2},
+ year={2021}
+ } +

+
+
+
+ +

2020

+ +

+

+
    +
  • Uciteli A and Beger C and Kirsten T and Meineke F A and Herre H* +Ontological representation, classification and data-driven computing of phenotypes +DOI: 10.1186/s13326-020-00230-0 +PMID: 33349245 +PMCID: PMC7751121
  • +
+ +

Link

+
+ + +
+
+

+ @article{cop,
+ author={Uciteli,Alexandr and Beger,Christoph and Kirsten,Toralf and Meineke,Frank A. and Herre,Heinrich},
+ year={2020},
+ title={Ontological representation, classification and data-driven computing of phenotypes},
+ journal={Journal of Biomedical Semantics},
+ volume={11},
+ pages={1--17},
+ language={English},
+ } +

+
+
+
+ + + +
+ +
+ + + diff --git a/run b/run new file mode 100755 index 0000000..732ccc5 --- /dev/null +++ b/run @@ -0,0 +1 @@ +bundle exec jekyll serve --incremental diff --git a/scripts/docker-build b/scripts/docker-build new file mode 100755 index 0000000..2f99587 --- /dev/null +++ b/scripts/docker-build @@ -0,0 +1 @@ +docker build -t top.de . diff --git a/scripts/docker-run-build b/scripts/docker-run-build new file mode 100755 index 0000000..f8dc955 --- /dev/null +++ b/scripts/docker-run-build @@ -0,0 +1 @@ +docker run --rm -it --volume="$PWD:/usr/src/app" -it top.de build diff --git a/scripts/docker-run-preview b/scripts/docker-run-preview new file mode 100755 index 0000000..c4af278 --- /dev/null +++ b/scripts/docker-run-preview @@ -0,0 +1 @@ +docker run --rm --network="host" top.de