Skip to content

Check diacos

Overview

Checks availability and response time of an ID DIACOS installation by performing a full login, diagnosis search, and logout cycle. Alerts if the total response time exceeds the configured thresholds. Useful for monitoring the health of DIACOS medical billing systems.

ID DIACOS is a coding software for accurate and fast invoicing in hospitals, allowing clinical services to be documented quickly and reliably within fee-payment systems such as G-DRG, SWISS-DRG, and EBM.

Important Notes:

  • Runs on any platform with network access to the ID DIACOS REST API
  • Plugin execution may take more than 10 seconds depending on network latency and server load
  • --login-name and --login-licence are required parameters
  • The session ID is validated for minimum expected length before proceeding with the search

Data Collection:

  • Performs three sequential API calls against the ID DIACOS REST API (/axis2/idlogikrest):
  • user.Login - authenticates with the provided licence and user name, returns a session ID
  • classification.SearchDiagnoses - performs a diagnosis search using configurable parameters
  • user.Logoff - terminates the session
  • Measures the total runtime across all three calls
  • Each API call reports its own totalTimeMillis from the server response

Fact Sheet

Fact Value
Check Plugin Download https://github.com/Linuxfabrik/monitoring-plugins/tree/main/check-plugins/diacos
Nagios/Icinga Check Name check_diacos
Check Interval Recommendation Every minute
Can be called without parameters No (--login-name and --login-licence are required)
Runs on Cross-platform
Compiled for Windows No

Help

usage: diacos [-h] [-V] [--always-ok] [-c CRITICAL] [--insecure]
              [--login-computer COMPUTER] [--login-ip IP]
              --login-licence LICENCE --login-name NAME [--no-proxy]
              [--search-concept-filter CONCEPT_FILTER]
              [--search-country COUNTRY] [--search-format FORMAT]
              [--search-searchtext SEARCHTEXT] [--search-sort-mode SORT_MODE]
              [--search-year YEAR] [--test TEST] [--timeout TIMEOUT]
              [--url URL] [-w WARNING]

Checks availability and response time of an ID DIACOS installation by
performing a full login, diagnosis search, and logout cycle. Alerts if the
total response time exceeds the configured thresholds. Useful for monitoring
the health of DIACOS medical billing systems.

options:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit
  --always-ok           Always returns OK.
  -c, --critical CRITICAL
                        CRIT threshold for the total duration of login,
                        search, and logout, in milliseconds. Default: 6000
  --insecure            This option explicitly allows insecure SSL
                        connections.
  --login-computer COMPUTER
                        COMPUTER argument for the user.Login API call.
                        Default: Brower_APP
  --login-ip IP         IP argument for the user.Login API call. Default:
                        127.0.0.1
  --login-licence LICENCE
                        LICENCE argument for the user.Login API call
                        (required).
  --login-name NAME     NAME argument for the user.Login API call (required).
  --no-proxy            Do not use a proxy.
  --search-concept-filter CONCEPT_FILTER
                        CONCEPT_FILTER argument for the
                        classification.SearchDiagnoses API call. Default:
                        %25R239%3BC%3BD99.99
  --search-country COUNTRY
                        COUNTRY argument for the
                        classification.SearchDiagnoses API call. Default: CH
  --search-format FORMAT
                        FORMAT argument for the classification.SearchDiagnoses
                        API call. Default: %25T0%25C%3F%25I%25R
  --search-searchtext SEARCHTEXT
                        SEARCHTEXT argument for the
                        classification.SearchDiagnoses API call. Default: Haut
  --search-sort-mode SORT_MODE
                        SORT_MODE argument for the
                        classification.SearchDiagnoses API call. Default: %25T
  --search-year YEAR    YEAR argument for the classification.SearchDiagnoses
                        API call. Default: 2020
  --test TEST           For unit tests. Needs "path-to-stdout-file,path-to-
                        stderr-file,expected-retc".
  --timeout TIMEOUT     Network timeout in seconds. Default: 7 (seconds)
  --url URL             ID DIACOS base URL. Default: http://localhost:9999
  -w, --warning WARNING
                        WARN threshold for the total duration of login,
                        search, and logout, in milliseconds. Default: 3000

Usage Examples

./diacos \
    --critical 6000 \
    --login-computer Brower_APP \
    --login-ip 127.0.0.1 \
    --login-licence 4b903485-1def-4f1b-a4d5-dd5464176954 \
    --login-name supervisor \
    --search-concept-filter '%25R239%3BC%3BD99.99' \
    --search-country 'CH' \
    --search-format '%25T0%25C%3F%25I%25R' \
    --search-searchtext Haut \
    --search-sort-mode '%25T' \
    --search-year 2020 \
    --timeout 7 \
    --url http://localhost:9999 \
    --warning 3000

Output:

7368ms for login, search and logout [CRITICAL]

States

  • OK if the total runtime is below --warning (default: 3000ms).
  • WARN if the total runtime is >= --warning (default: 3000ms).
  • CRIT if the total runtime is >= --critical (default: 6000ms).
  • UNKNOWN if the login fails, the session ID is too short, or API calls return errors.
  • --always-ok suppresses all alerts and always returns OK.

Perfdata / Metrics

Name Type Description
login_duration Milliseconds Duration of the login API call as reported by the server.
logout_duration Milliseconds Duration of the logout API call as reported by the server.
runtime Milliseconds Total wall-clock time for login, search, and logout combined.
search_duration Milliseconds Duration of the diagnosis search API call as reported by the server.

Credits, License