Skip to main content

Release Notes - Analytics Data Processing

Release notes for Analytics Data Processing.

To get the best performance and security, we recommend running the latest version. Planned releases are added to the table below with an estimated release date. This is our current best estimate, and the date may change.

To see which versions of EWA, Analytics Data Processing and Analytics API work together, see Version Compatibility. Changes to the documentation itself are listed in Documentation Notes.

Versions​

VersionRelease DateRelease NotesConfigurationEnd of Support DateComments
v2.6.02026.10.12v2.6.0 Release NotesConfiguration-Recommended version
v2.3.62026.04.14v2.3.6 Release NotesWindows guide--
v2.3.02026.02.13v2.3.0 Release NotesWindows guide-Known issue
v2.2.02026.01.20v2.2.0 Release NotesWindows guide--
v2.1.02025.10.28v2.1.0 Release NotesWindows guide2026.12.31-
v2.0.12025.09.04v2.0.1 Release NotesWindows guide2026.06.01No longer supported
v1.7.32025.09.09v1.7.3 Release NotesWindows guide2026.04.22No longer supported
v1.7.22025.02.17v1.7.2 Release NotesWindows guide2025.04.01No longer supported

v2.6.0​

Improved, configurable logging, a more reliable incremental load, data quality fixes in Clean and Core, and internal improvements.

Notes

  • Required: before you start this version, delete the tables raw.measurements and ewa_clean.measurements from the Analytics database, if present. Their structure has changed, and the old tables conflict with the new ones. They are recreated by the full load below.
  • Required: set both BLIKSUND_LOAD_FULL_ON_START and BLIKSUND_TRANSFORM_FULL_ON_START to true for the first run after upgrading, and set them back to false when the service has started, see Upgrading. This version changes how data is loaded and the types of some columns, so existing tables must be rebuilt.
  • Required if you set DATABASE__ENCRYPT or DATABASE__TRUST_SERVER_CERTIFICATE: the encryption settings are now read per database, as SOURCE__DATABASE__ENCRYPT, SOURCE__DATABASE__TRUST_SERVER_CERTIFICATE, TARGET__DATABASE__ENCRYPT and TARGET__DATABASE__TRUST_SERVER_CERTIFICATE, all yes by default. DATABASE__ENCRYPT and DATABASE__TRUST_SERVER_CERTIFICATE are ignored without a warning, so a value of no becomes yes. Set the same values in the per-database settings. Earlier versions did the opposite: they ignored the per-database settings, so check those too if you have set them.
  • SOURCE__DATABASE__TYPE and TARGET__DATABASE__TYPE are validated at start. Use mssql.
  • This is the first version delivered as a Docker image, which is the recommended installation. To move an existing Windows installation, see Moving from Windows to Docker. If you stay on Windows, the log file is now logs\service.log instead of logs\analytics_dp_service.log.

Features

  • Added column resolved_mission_type_id to ewa_clean.records_missions: for older records that store the mission type as text, the id of the mission type with that name. Many older records store a translated name, for example in Norwegian, and these are not resolved yet, so the column is empty for them.
  • Configurable logging with the LOG__* settings: log level, plain or JSON console output, and log file size and rotation. See Configuration.
  • New optional setting BLIKSUND_LOAD_REPAIR_JSON repairs unescaped quotes in JSON text from the EWA database before it is loaded. See Configuration.

Bug fixes

  • The incremental load no longer skips, duplicates or repeats rows when several rows in the EWA database have the same change timestamp.
  • All timestamps are handled in UTC.
  • Fixed loading of ewa_clean.measurements.
  • Core tables no longer keep outdated rows when a record changes status, or when a list in a record gets shorter or is emptied.
  • Fixed rows that were dropped in some Clean and Core tables.
  • The RETTS priority for a record is chosen the same way on every run.
  • Postal codes (home_zip in ewa_clean.records_patients and ewa_core.dim_patients) are stored as text, so leading zeros are kept.
  • ewa_core.fact_records no longer leaves out records that have times registered but no ambulance alerted time.
  • Malformed data from the EWA database no longer stops a load.
  • metadata_inserted_at and metadata_updated_at are written in UTC in all tables.

Security patches

  • Software and dependencies are updated to avoid known vulnerabilities.

Other changes

  • The Clean and Core table descriptions are corrected: missing tables and columns are added, columns that never existed are removed, and record_id is documented as BigInt. See the v2.6.0 table descriptions.
  • The optional setting SOURCE__DATABASE__ALLOW_SNAPSHOT_ISOLATION is now documented. It reads from the EWA database without blocking it. The database must have snapshot isolation turned on.

v2.3.6​

A bug fix release for forms, triage and table types.

Notes

  • Set BLIKSUND_LOAD_FULL_ON_START to false and BLIKSUND_TRANSFORM_FULL_ON_START to true when upgrading.

Bug fixes

  • Responses to the PresentingComplaint form are now linked to their records in ewa_clean.records_forms.
  • Uses the correct field for sk_sats_priority_level in ewa_core.fact_records (priority_level_total instead of triage_total_score).
  • Removed invalid rows and duplicates from ewa_core.dim_form_elements.
  • Renamed column sk_form_ to sk_form in ewa_core.fact_form_responses.
  • Changed the type of response_state in ewa_clean.form_responses from VARCHAR to Int, to match the documentation.

Security patches

  • Security patches.

v2.3.0​

Adds measurement data from medical devices.

Notes

  • Set BLIKSUND_LOAD_FULL_ON_START to false and BLIKSUND_TRANSFORM_FULL_ON_START to true when upgrading. The first run takes much longer than usual.

Features

  • Reintroduced table ewa_clean.measurements, with measurement data from medical devices. This table was removed in v1.7.0.

Security patches

  • Security patches.

Known issues

  • If the database still has ewa_clean.measurements from v1.4.0, the load fails with a schema error. Drop measurements from both ewa_clean and raw, then start the service again.
  • Loading of ewa_clean.measurements can get stuck when a record has many measurements. Possible workaround: delete the table and increase BLIKSUND_LOAD_BATCH_SIZE. Fixed in v2.6.0.

v2.2.0​

Adds deletion reasons for records and links between copied forms.

Notes

  • Set BLIKSUND_LOAD_FULL_ON_START to false and BLIKSUND_TRANSFORM_FULL_ON_START to true when upgrading.

Features

  • Added table ewa_clean.audit_log with the reason for deletion of records.
  • Added column parent_form_id to ewa_clean.form_configurations, to connect copied forms together.

Other changes

  • Faster loading from the operational database to the Analytics database.

v2.1.0​

Adds patient data to the Core layer and requires an encrypted database connection.

Notes

  • Set BLIKSUND_LOAD_FULL_ON_START to false and BLIKSUND_TRANSFORM_FULL_ON_START to true when upgrading.
  • Removed table ewa_core.dim_oxygen and column sk_oxygen from ewa_core.fact_records.

Features

  • Added table ewa_core.dim_patients.
  • Added more columns to ewa_core.bridge_locations.

Security patches

  • Uses ODBC Driver 18 for SQL Server.
  • Database connections are always encrypted.
  • Security patches.

v2.0.1​

A security release.

Security patches

  • Upgraded to Python 3.12 and sqlite3 v3.50.4. Both versions are shown in the log file.
  • Improved handling of secrets.

v2.0.0​

Introduces the Core and Serve layers, and renames Clean tables so that everything connected to a record starts with records_.

Notes

  • Set BLIKSUND_TRANSFORM_FULL_ON_START to true when upgrading. Existing tables are deleted and new ones are created.
  • Because of the renames, tables that are no longer used can remain in the database. See Removing old tables for a script that deletes them.
  • All tables connected to a record now start with ewa_clean.records_:
    • ewa_clean.records_billable_information
    • ewa_clean.records_contagion
    • ewa_clean.records_drugs
    • ewa_clean.records_gcs
    • ewa_clean.records_infusions
    • ewa_clean.records_interventions
    • ewa_clean.records_locations
    • ewa_clean.records_miscellaneous_information
    • ewa_clean.records_miscellaneous_medical
    • ewa_clean.records_missions
    • ewa_clean.records_news2
    • ewa_clean.records_oxygen
    • ewa_clean.records_retts
    • ewa_clean.records_sats
    • ewa_clean.records_sepsis
    • ewa_clean.records_time
    • ewa_clean.records_patients
    • ewa_clean.records_personnel
    • ewa_clean.records_urgency_levels
  • Renamed columns:
    • ewa_clean.records_locations.id to ewa_clean.records_locations.location_id
    • ewa_clean.records_locations.municipality_or_country to ewa_clean.records_locations.municipality
    • ewa_clean.records_patients.id to ewa_clean.records_patients.patient_id

Features

  • Added the Core layer. This is an early version, and tables and columns may change significantly in later releases.
  • Added the Serve layer. This is an early version, and tables and columns may change significantly in later releases.
  • Added column predecessor to ewa_clean.configurable_mission_types, the id of the mission type it was created from.
  • Added table ewa_clean.history_of_presenting_complaint_legacy with the old History of Illness entries, for backward compatibility. The new History of Presenting Complaint data is in the forms tables.
  • Added table ewa_clean.unknown_patient_id_types, with labels for the identification types of unknown patients in ewa_clean.records_patients.unknown_patient_identification_type.
  • Added column unknown_patient_identification_type_name to ewa_clean.records_patients, with the type value from ewa_clean.unknown_patient_id_types.

Known issues

  • sk_sats_priority_level in ewa_core.fact_records is built from triage_total_score instead of priority_level_total, so it can point to the wrong SATS priority level. Fixed in v2.3.6.
  • Column sk_form in ewa_core.fact_form_responses is named sk_form_. Fixed in v2.3.6.

v1.7.3​

A security release.

Security patches

  • Upgraded sqlite3 to v3.50.4. The Python and sqlite3 versions are shown in the log file.

v1.7.2​

Bug fixes for records and forms, and removal of previously deprecated columns.

Notes

  • Set both BLIKSUND_TRANSFORM_FULL_ON_START and BLIKSUND_LOAD_FULL_ON_START to true when upgrading. Existing tables are deleted and loaded again.
  • Removed column ewa_clean.pr_medical_record_crews.name. Use ewa_clean.pr_users.full_name instead.
  • Removed column ewa_clean.missions.emmc_mission_id. Use ewa_clean.missions.emcc_mission_id instead.

Bug fixes

  • Records where ewa_clean.records.emcc_mission_id is NULL are now included.
  • The column type for record_id is int in all tables.
  • ewa_clean.form_configuration_elements.form_configuration_section_id holds the correct ids.

v1.7.0​

Adds RETTS and SATS priority levels.

Notes

  • Set BLIKSUND_TRANSFORM_FULL_ON_START to true when upgrading. Existing tables are deleted and loaded again.

Features

  • Added table ewa_clean.retts_priority_levels.
  • Added table ewa_clean.sats_priority_levels.

Bug fixes

  • No longer tries to send anonymous statistics.
  • Loading of measurements is turned off.

v1.6.4​

Timezone-aware timestamps, resources, and more NEWS2 and location details in the Clean layer.

Notes

  • Set both BLIKSUND_TRANSFORM_FULL_ON_START and BLIKSUND_LOAD_FULL_ON_START to true when upgrading. Existing tables are deleted and loaded again, which may take longer than usual.
  • All datetime2 columns are changed to datetimeoffset(7), so that timezone information is included.
  • Table ewa_clean.resources is renamed to ewa_clean.records_resources_stations, since it holds the resource and station filled out in the record.

Features

  • Added table ewa_clean.resources, with all resources registered in the system.
  • Added table ewa_clean.resource_type.
  • Added columns latitude and longitude to ewa_clean.locations.
  • Added columns scoring_params_id, scoring_params_item_id, scoring_params_item_score, scoring_params_item_text and scoring_params_title to ewa_clean.news2.
  • Added columns unknown_patient_identification_number and unknown_patient_identification_type to ewa_clean.patients.
  • Added column deleted_at to ewa_clean.stations, ewa_clean.organization and ewa_clean.configurable_mission_types.

Bug fixes

  • ewa_clean.sats.gcs now includes all data.
  • Duplicate measurements are no longer loaded.

Other changes

  • The type of ewa_clean.emcc_tickets.full_emcc_mission_id_updated_at is changed from varchar(max) to datetime2.
  • The default value for BLIKSUND_LOAD_BATCH_SIZE is changed from 500 to 10000.

v1.4.0​

Adds measurements and TEWS parameters to the Clean layer.

Notes

  • Set BLIKSUND_TRANSFORM_FULL_ON_START to true when upgrading. Existing tables are deleted and loaded again.
  • Measurements can contain many rows, which can make the first run of this version slower.

Features

  • Added table ewa_clean.measurements, with measurements taken from patients.
  • Added table ewa_clean.measurement_types, with the types of measurements and their ids.
  • Added columns triage_tews_selected_params_id, triage_tews_selected_params_title, triage_tews_selected_params_item_id, triage_tews_selected_params_item_text and triage_tews_selected_params_item_score to ewa_clean.sats.

Bug fixes

  • Fixed the spelling of columns first_heart_rhythm and prehospital_thrombolysis in ewa_clean.cardiac_arrest_forms.

Known issues

  • Measurements can be loaded more than once, giving duplicate rows in ewa_clean.measurements. Fixed in v1.6.4.

v1.3.1​

Adds EMCC tickets and checklists to the Clean layer.

Notes

  • Set BLIKSUND_TRANSFORM_FULL_ON_START to true when upgrading. Existing tables are deleted and loaded again.
  • Column ewa_clean.pr_medical_record_crews.name will be removed after 2025.02.01. Use ewa_clean.pr_users.full_name instead.
  • Column ewa_clean.missions.emmc_mission_id will be removed after 2025.02.01. Use ewa_clean.missions.emcc_mission_id instead.

Features

  • Added table ewa_clean.emcc_tickets, with ticket data for EMCC missions, including mission ids, urgency levels and dispatch codes.
  • Added table ewa_clean.records_emcc_tickets, linking EMCC tickets to their records.
  • Added table ewa_clean.codes_status, with the statuses of a mission and their codes.
  • Added table ewa_clean.checklist_configuration_items, with the configuration of checklists.
  • Added table ewa_clean.checklist_response_items, with the responses to checklists.
  • Added columns mission_resource_id and emcc_mission_id to ewa_clean.missions.

Bug fixes

  • Column ewa_clean.missions.dispatch_code now contains the dispatch code.

v1.2.0​

Adds cardiac arrest forms and urgency levels to the Clean layer.

Notes

  • Set BLIKSUND_TRANSFORM_FULL_ON_START to true when upgrading. Existing tables are deleted and loaded again.
  • Column ewa_clean.pr_medical_record_crews.name will be removed after 2025.02.01. Use ewa_clean.pr_users.full_name instead.

Features

  • Added table ewa_clean.cardiac_arrest_forms, with information from filled-out cardiac arrest forms.
  • Added table ewa_clean.urgency_levels.
  • Added table ewa_clean.record_urgency_levels, linking urgency levels to records.
  • Added column ewa_clean.pr_users.full_name.

Other changes

  • Faster incremental loading of ewa_clean.drugs, ewa_clean.locations and ewa_clean.time.
  • The type of ewa_clean.oxygen.quantity and ewa_clean.infusions.amount is changed from float to nvarchar(max).

Known issues

  • Columns first_heart_rhythm and prehospital_thrombolysis in ewa_clean.cardiac_arrest_forms are misspelled. Fixed in v1.4.0.

v1.1.0​

Adds organizations and stations to the Clean layer.

Notes

  • Set BLIKSUND_TRANSFORM_FULL_ON_START to true when upgrading. Existing tables are deleted and loaded again.

Features

  • Added organizations and stations to schema ewa_clean, to show which organization or health trust a record belongs to.

Other changes

  • Removed some personnel registration and configurable mission type tables from stage, to reduce transformation time and storage cost. The tables in ewa_clean are unchanged.

v1.0.3​

The first version.

Notes

  • This service replaces FormModuleData. If you have installed FormModuleData, set BLIKSUND_TRANSFORM_FULL_ON_START to true. The Forms tables are then deleted and loaded again.