CodeTip

CodeTip ist eine Javascript-Anwendung, die ICD- und OPS-Kodes im Text einer Webseite erkennt und den zugehörigen Text des Diagnosen- bzw. Prozedurenschlüssels anzeigt, wenn der Benutzer einen Kode mit der Maus überfährt.

Screenshot

Inhaltsverzeichnis

  1. Lizenzierung
  2. Download
  3. Installation
    1. Voraussetzungen
    2. Einbinden des Ajax-Proxy
    3. Einbinden des JavaScripts
    4. Einbinden des Stylesheets
  4. CodeTip Webservice
  5. CodeTip Javascript-Objekt

1 Lizenzierung

Die CodeTip Javascript-Anwendung ist gemeinfreie Software, die von jedem verändert, erweitert und auf beliebigen Webseiten eingebunden werden kann. Die einzige Bedingung ist, dass der Hinweis auf den ursprünglichen Autor nicht aus den Quellcode-Dateien entfernt wird.

2 Download

Die benötigten Dateien können Sie hier als Zip-Archiv herunter laden.

3 Installation

3.1 Voraussetzungen

Idealerweise sollte PHP 4 oder höher auf Ihrem Webserver eingerichtet sein und zur Verfügung stehen. Sollte dies nicht der Fall sein, ist dies allerdings noch kein K.O.-Kriterium: Sie müssen dann lediglich Ihr eigenes Proxy-Script in der auf Ihrem Server unterstützten Skriptsprache schreiben.

Darüber hinaus erfordert CodeTip keine besonderen Voraussetzungen. CodeTip selbst nutzt kein Javascript-Framework und kann daher konfliktlos zusammen mit allen gängigen Frameworks wie z.B. Prototype oder JQuery eingesetzt werden.

3.2 Einbinden des Ajax-Proxys

Kopieren Sie die Datei proxy.php in das Stammverzeichnis der Domain, für die Sie CodeTip installieren wollen. Sie können als Ziel auch ein anderes Verzeichnis wählen, müssen dann aber im nächsten Schritt eine Pfadangabe im Javascript-Code editieren.

Hintergrund: Die Texte zu den auf Ihrer Seite gefundenen ICD- und OPS-Kodes werden mittels Ajax-Aufrufen an den Webservice codetip.de geladen. Da Ajax-Aufrufe nur zu Seiten derselben Domains zugelassen sind, brauchen Sie ein Proxy-Skript, das die Anfrage an den Webservice weiterleitet.

Falls Sie eine andere serverseitige Skriptsprache als PHP verwenden, müssen Sie sich Ihr eigenes Proxy-Skript schreiben, das die Ajax-Anfragen an den Webservice von codetip.de weiterleitet. Eine Dokumentation des Webservice finden Sie weiter unten.

3.4 Einbinden des Stylesheets

Kopieren Sie die Datei codetip.css in den Stylesheet-Ordner Ihrer Website. Die vorgegebene Formatierung sollte in der Regel mit den übrigen Stylesheet-Definitionen Ihrer Website funktionieren. Wenn Sie nach der Installation Ihre Seite mit CodeTip aufrufen, werden Sie vielleicht die ein oder andere Formatierung anpassen wollen. Das Stylesheet ist mit erklärenden Kommentaren versehen, die Sie bei der Bearbeitung unterstützen sollen.

3.3 Einbinden des Javascripts

Kopieren Sie die Datei codetip.js in einen beliebigen Ordner Ihrer Website. Fügen Sie nun im <Head>-Abschnitt der Seiten, auf denen Sie CodeTip verwenden wollen, folgende Zeilen ein und passen Sie ggf. den Pfad zu den Dateien codetip.js und codetip.css an:

  1. <script type="text/javascript" src="/js/codetip.js" charset="utf-8">
  2. </script>
  3.  
  4. <script type="text/javascript">
  5.   //<![CDATA[
  6.     var ct1 = new CodeTip(
  7.       'icd',
  8.       '/proxy.php?t=icd&q=%q'
  9.     );
  10.     var ct2 = new CodeTip(
  11.       'ops',
  12.       '/proxy.php?t=ops&q=%q'
  13.     );
  14.     addEvent_ct(window, 'load', function() {
  15.       ct1.scan(document.body);
  16.     });
  17.     addEvent_ct(window, 'load', function() {
  18.       ct2.scan(document.body);
  19.     });
  20.   //]]>
  21. </script>
  22.  
  23. <link rel="stylesheet" href="css/codetip.css" type="text/css">

Falls Sie nur Tooltips für ICD-Kodes anzeigen wollen, können Sie die Zeilen 10-13 und 17-19 löschen. Umgekehrt können Sie die Zeilen 6-9 und 14-16 löschen, falls Sie nur Tooltips für OPS-Kodes benötigen.

4 CodeTip Webservice

Der CodeTip-Webservice gibt zu einem ICD oder OPS-Kode gehörige Bezeichnung als JSON-Objekt zurück. Sie können den Webservice in begrenztem Umfang kostenfrei für eigene Anwendungen nutzen. Falls Sie mehr als 500 Zugriffe pro Tag durch Ihre Anwendung erwarten, sprechen Sie mich bitte vorab an.

Der Aufruf erfolgt über folgende Syntax:

http://codetip.de/get_text.php?t=%suchtyp%&q=%code%
%suchtyp% Gibt an, ob nach einem Text für einen ICD- oder einen OPS-Kode gesucht werden soll.
Mögliche Werte:
  • icd
  • ops
%code% Kode, nach dessen Beschreibung gesucht werden soll. Der Kode kann, muss aber nicht mit Punkten und/oder Strichen formatiert sein.

Beispiel für den ICD-Code C81.0: http://codetip.de/get_text.php?t=icd&q=C81.0

Zurückgegeben wird ein JSON-Objekt, das aus einem Status-Kode, dem zur Suche verwendeten Kode sowie einem Feld mit den gefundenen Treffern besteht.

QueryResult
status
0 O.k. - es ist kein Fehler aufgetreten.
20 Fehler: der Parameter t für den Suchtyp wurde nicht übergeben.
21 Fehler: der übergebene Wert im Parameter t entspricht keinem gültigen Suchtyp. Zulässige Werte sind lediglich die beiden Ausdrücke icd und ops.
query Der aufbereitete Kode, der für die Suche verwendet wurde (ohne Punkt und Bindestrich).
matches Ein Datenfeld, das die gefundenen Treffer als Match-Objekte enthält. Wenn einem Kode in einzelnen Versionen des ICD- bzw. OPS-Kataloges unterschiedliche Beschreibungen zugeordnet sind, wird für jede Beschreibung ein Eintrag im Datenfeld matches erzeugt. Ein Beschreibung des Match-Objekts finden sie in der folgende Tabelle.
Match
code Der genaue Kode, ggf. formatiert mit Punkt und/oder Bindestrichen.
minVersion Die erste Version, in welcher dem gefundenen Kode der genannte Beschreibungstext zugeordnet ist.
maxVersion Die letzte Version, in welcher dem gefundenen Kode der genannte Beschreibungstext zugeordnet ist.
text Der Beschreibungstext, der dem gefundenen Kode in den zuvor aufgeführten Versionen zugeordnet ist.

Im Folgenden sehen Sie die formatierte Ausgabe des oben erwähnten Beispielaufrufes für den ICD-Kode C81.0:

{
  "status" : 0,
  "query" : "C810",  
  "matches" : [
    {
      "code" : "C81.0",
      "minVersion" : "2007",
      "maxVersion" : "2010",
      "text" : "Hodgkin-Krankheit [Lymphogranulomatose]: Lymphozytenreiche
                Form"

    },
    {
      "code" : "C81.0",
      "minVersion" : "2011",
      "maxVersion" : "2011",
      "text" : "Noduläres lymphozytenprädominantes Hodgkin-Lymphom"
    }
  ]
}

5 CodeTip Javascript-Objekt

Das Parsen des aktuellen Dokuments nach ICD- bzw. OPS-Kodes, das Laden der zugehörigen Beschreibungstexte sowie die Anzeige der Tooltips werden von Javascript-Objekten der Klasse CodeTip übernommen. Sollen auf einer Seite sowohl ICD- als auch OPS-Kodes nachgeschlagen werden, muss für beide jeweils ein CodeTip erstellt werden. Dabei müssen bzw. können folgende Parameter übergeben werden:

pattern Erforderlich. Entweder
  • ein regulärer Ausdruck, nachdem das aktuelle Dokument durchsucht werden soll, oder
  • eines der beiden Literale "icd" oder "ops". In diesem Fall werden die regulären Ausdrücke
    • /([A-Z][0-9][0-9][^A-Za-z]\.?[0-9a-z-!*+]?[0-9a-z-!*+]?)/mg für ICD-Kodes bzw.
    • /([135689]-[0-9][0-9][0-9abcdefghjkmnx]\.?[0-9a-z-!*+]?[0-9a-z-!*+]?)/mg für OPS-Kodes
    verwendet.
Es werden nur Textknoten durchsucht, wobei Textknoten innerhalb eines <textarea>-Elements unberücksichtigt bleiben, um zu verhindern, dass Markup in Formularfelder eingefügt wird.
Durch Verwenden abgewandelter regulärer Ausdrücke ist es beispielsweise möglich, OPS-Kodes je nach OPS-Kapitel im Text unterschiedlich hervorzuheben.
lookupUrl Erforderlich. Die URL zum Proxy-Skript, das die Suchanfrage an den CodeTip-Webservice weiterleitet, von diesem das Suchergebnis entgegen nimmt und an das CodeTip-Javascript-Objekt zurückgibt. Die URL muss die Parameter q (Kode, für den die Beschreibung gesucht wird) und t (Angabe, ob es sich um einen ICD- oder OPS-Kode handelt) enthalten, wobei als Platzhalter für den Parameterwert die Literale %code% bzw. %suchtyp% zu verwenden sind. Ein Beispiel für den Parameter lookupUrl ist im Abschnitt Einbinden des Javscripts weiter oben aufgeführt.
wrapperClass Optional. Name der CSS-Klasse, die auf gefundene Kodes angewendet werden soll. Sie können für jedes CodeTip-Objekt einen separaten Klassennamen angeben, um z.B. ICD- und OPS-Kodes unterschiedlich hervorzuheben.
Wenn dieses Argument nicht übergeben wird, wird ct_code als Klassenname verwendet.
tooltipContainerId Optional. Id des Block-Elementes, das als Behälter für den Tooltip standardmäßig ausgeblendet und beim Überfahren eines ICD- bzw. OPS-Kodes mit der Maus positioniert und eingeblendet wird. Dieses Element kann statisches HTML enthalten, welches in jedem Tooltip angezeigt wird.
Wenn ein Element mit der angegebenen Id im Dokument vorhanden ist, wird automatisch ein neues <div>-Element erzeugt.
Wenn dieses Argument nicht übergeben wird, wird ct_container als Id verwendet.
tooltipContentId Optional. Id des Block-Elementes, dessen Inhalt vor der Anzeige des Tooltips komplett mit der Beschreibung des entsprechenden Kodes überschrieben wird. Im Unterschied zu tooltipContainerId kann dieses Element keinen benutzerdefinierten HTML-Code enthalten. Ein Element mit der angegebenen Id wird nur dann automatisch erzeugt, wenn kein Element mit der Id von tooltipContainerId vorhanden ist. Wenn Sie das Container-Element selbst erstellen, definieren Sie bitte auch ein Block-Element mit der Id von tooltipContentId.
Wenn dieses Argument nicht übergeben wird, wird ct_content als Id verwendet.

Die folgende Abbildung zeigt am Beispiel des ICD-Kodes C81.0 die Struktur des für den Tooltip generierten HTML-Codes:

Struktur des generierten HTML-Codes