Installation Guide
(Last updated: 2025-10-09, Created: 2025-08-18)
Prerequisites
Database Driver
- Download: Microsoft ODBC Driver for SQL Server
 - If installation fails, you may need to install Microsoft Visual C++ Redistributable first
 
Service Manager NSSM
- Download: nssm.cc/download
 - Ensure 
nssm.exeis added to your system PATH 
Application Files
- Download the deployment artifacts for Bliksund Analytics Data Processing EWA:
analytics-dp-ewa.exe(executable)wheels/folder (Python dependencies)
 
Installation
- 
If you already have a Data Processing service running, make sure to stop this by following Stopping the service.
 - 
Store the unpacked artifacts that you downloaded at the place where you want the installation to take place.
 - 
Set the system environment variable
BLIKSUND_ANALYTICS_DP_INITIAL_PATHto the full path of the folder where the exe-file is stored. This path will be used for the log folder and the .env file mentioned later. - 
Configure the installation directory by setting the system environment variable
PYAPP_INSTALL_DIR_BLIKSUND-DATA-PROCESSING-EWA. For example, if you set the value to\ProgramData\BliksundAnalyticsDP\installation\2.1.0, this directory is created and the installation will take place here. - 
Open a terminal (for example powershell) in administrator mode.
 - 
Navigate to the folder where the exe-file is stored:
cd <PATH_TO_EXE_FILE> - 
Add and update needed configurations
Create a file named .env in the same folder as the exe-file using New-Item -Path ".env" -ItemType File and add the following infromation to it:
BLIKSUND_RUN_SCHEDULED=true
BLIKSUND_RUN_SCHEDULED_FREQUENCY_MIN=60
BLIKSUND_LOAD_BATCH_SIZE=50000
BLIKSUND_LOAD_BATCH_WAIT_TIME=1
BLIKSUND_LOAD_FULL_ON_SCHEDULE=false
BLIKSUND_LOAD_FULL_ON_START=false
BLIKSUND_TRANSFORM_FULL_ON_SCHEDULE=false
BLIKSUND_TRANSFORM_FULL_ON_START=true
BLIKSUND_RUN_TAG=false
# Source database connection details (Operational database)
SOURCE__DATABASE__TYPE=mssql
SOURCE__DATABASE__USERNAME=
SOURCE__DATABASE__PASSWORD=
SOURCE__DATABASE__HOST=
SOURCE__DATABASE__PORT=
SOURCE__DATABASE__NAME=
SOURCE__DATABASE__TRUST_SERVER_CERTIFICATE=yes
SOURCE__DATABASE__ENCRYPT=yes
# Target database connection details (Analytics database)
TARGET__DATABASE__TYPE=mssql
TARGET__DATABASE__USERNAME=
TARGET__DATABASE__PASSWORD=
TARGET__DATABASE__HOST=
TARGET__DATABASE__PORT=
TARGET__DATABASE__NAME=
TARGET__DATABASE__TRUST_SERVER_CERTIFICATE=yes
TARGET__DATABASE__ENCRYPT=yes - 
Install the service. This might take some minutes:
.\analytics_dp_service.exe install - 
Start the service. The service will start right away, but it will take some munites before the API is up and running:
.\analytics_dp_service.exe startNote: A log folder (Logging) will be created and placed at the same location as the .exe file during the installation
 
Configuration options
The service can be configured with the following options:
| Setting Name | Description | default value | 
|---|---|---|
| BLIKSUND_RUN_SCHEDULED | true if running the service on a schedule, false if running once | false | 
| BLIKSUND_RUN_SCHEDULED_FREQUENCY_MIN | Minutes between each run | 60 | 
| BLIKSUND_LOAD_BATCH_SIZE | Number of rows fetched in each batch from the EWA Database | 50000 | 
| BLIKSUND_LOAD_BATCH_WAIT_TIME | Seconds to wait between each batch of data | 1 | 
| BLIKSUND_LOAD_FULL_ON_SCHEDULE | true for full load on schedule, false for incremental | false | 
| BLIKSUND_LOAD_FULL_ON_START | true for full load on service start, false for incremental | false | 
| BLIKSUND_TRANSFORM_FULL_ON_SCHEDULE | true for full transform on schedule, false for incremental | false | 
| BLIKSUND_TRANSFORM_FULL_ON_START | true for full transform on service start, false for incremental | false | 
| BLIKSUND_RUN_TAG | false if no run tag is used; otherwise, schemas are prefixed with the tag | false | 
| SOURCE__DATABASE__TYPE | Type of source database | (empty) | 
| SOURCE__DATABASE__USERNAME | Username for source database | (empty) | 
| SOURCE__DATABASE__PASSWORD | Password for source database | (empty) | 
| SOURCE__DATABASE__HOST | Host for source database | (empty) | 
| SOURCE__DATABASE__PORT | Port for source database | (empty) | 
| SOURCE__DATABASE__NAME | Name of source database | (empty) | 
| SOURCE__DATABASE__TRUST_SERVER_CERTIFICATE | Trust server certificate option yes og no | yes | 
| SOURCE__DATABASE__ENCRYPT | Enctyption option yes og no | yes | 
| TARGET__DATABASE__TYPE | Type of target database | (empty) | 
| TARGET__DATABASE__USERNAME | Username for target database | (empty) | 
| TARGET__DATABASE__PASSWORD | Password for target database | (empty) | 
| TARGET__DATABASE__HOST | Host for target database | (empty) | 
| TARGET__DATABASE__PORT | Port for target database | (empty) | 
| TARGET__DATABASE__NAME | Name of target database | (empty) | 
| TARGET__DATABASE__TRUST_SERVER_CERTIFICATE | Trust server certificate option yes og no | yes | 
| TARGET__DATABASE__ENCRYPT | Enctyption option yes og no | yes | 
Note: If it is a Major version update you normally have to use the setting BLIKSUND_TRANSFORM_FULL_ON_START=True
Logging
Logs are placed under logs/, and if you are running the code as a windows service, the log file will be placed in the same folder as analytics_dp_service.exe.
Stopping the service
Follow this guide if you want to stop an already running service
- 
Open a terminal (for example powershell) in administrator mode
 - 
Navigate to the folder where the old exe-file is stored:
cd <PATH_TO_EXE_FILE> - 
Stop the service. Use the name of the old file if it has changed:
.\analytics_dp_service.exe stop 
Removing old tables
We have some table name changes from v1 to v2. This can leave behind outdated tables that are no longer used, creating clutter and making the database harder to navigate.
These old tables are inactive and contain no new data, but keeping them can cause confusion. We recommend running the script below to remove them and keep your database clean and organized:
DROP TABLE IF EXISTS ewa_clean.billable_information;
DROP TABLE IF EXISTS ewa_clean.codes_status;
DROP TABLE IF EXISTS ewa_clean.contagion;
DROP TABLE IF EXISTS ewa_clean.drugs;
DROP TABLE IF EXISTS ewa_clean.gcs;
DROP TABLE IF EXISTS ewa_clean.history_of_presenting_complaint_legacy;
DROP TABLE IF EXISTS ewa_clean.infusions;
DROP TABLE IF EXISTS ewa_clean.interventions;
DROP TABLE IF EXISTS ewa_clean.miscellaneous_information;
DROP TABLE IF EXISTS ewa_clean.miscellaneous_medical;
DROP TABLE IF EXISTS ewa_clean.missions;
DROP TABLE IF EXISTS ewa_clean.news2;
DROP TABLE IF EXISTS ewa_clean.oxygen;
DROP TABLE IF EXISTS ewa_clean.patients;
DROP TABLE IF EXISTS ewa_clean.personnel;
DROP TABLE IF EXISTS ewa_clean.records_forms;
DROP TABLE IF EXISTS ewa_clean.record_urgency_levels;
DROP TABLE IF EXISTS ewa_clean.retts;
DROP TABLE IF EXISTS ewa_clean.sats;
DROP TABLE IF EXISTS ewa_clean.sepsis;
DROP TABLE IF EXISTS ewa_clean.time;
DROP TABLE IF EXISTS stage.records;