samedi HL7gateway

Version v0.14.0

Changelog

hl7gateway changes

0.14.0 – 2019-08-07

  • Support for configuring receiving_application and receiving_facility (MSH-5, MSH-6) per connection for outgoing HL7 messages.

0.13.7 – 2019-06-20

  • FIXED: patients where zip, phone numbers or insurance number encrypted as integers would crash the gateway.

0.13.6 – 2019-06-03

  • Use 99SAMEDI-RESOURCE instead of SAMEDI-RESOURCE in AIG-3-3 to not generate invalid HL7 messages. SAMEDI-RESOURCE is still accepted in incoming AIG/AIL/AIP segments.

  • FIXED: patients with “insurance_company” set to “public” or “private” would break during ADT message handling.

0.13.5 – 2019-05-21

  • Support AIP/AIL/AIG segments in SRM messages: When updating an existing appointment in samedi with an SRM message, it’s now possible to override the booking logic by sending appropriate resource segments. This updates the booked resources on that appointment to be exactly as sent.

0.13.4 – 2019-05-20

  • Add a configuration option mllp.sender.peer_error_handling = "ignore". If set, the program will not terminate when it receives a MSA message with AE or CE status and the message will not be retried.

0.13.3 – 2019-05-15

  • hl7gateway instances now periodically announce their status when running normally.

0.13.2 – 2019-05-14

  • Moved default configuration into non-roaming %ProgramData%.
  • Add a Start Menu shortcut for program and configuration directories.

  • FIXED: multiple incoming connections on the same channel work now.

  • FIXED: service restart would sometimes not work when there were network errors during program initialization.

  • FIXED: logging to the windows event log didn’t work.

0.13.1 – 2019-05-02

  • Note: existing integrations that send SIU messages to samedi with AIG-3-4, AIL-3-4 or AIP-3-4 need to be updated to keep this field empty or to have an actual resource xref there (this field was previously ignored).

  • Change parsing of incoming AIG/AIL/AIP segments.

    • AIG-3-1 can now describe a samedi Resource ID. For this AIG-3-3 must have the value SAMEDI-RESOURCE
    • If AIG-3-4 is set, it will be interpreted as samedi resource xref. This will always take precedence over AIG-3-1. (the same applies to AIL and AIP segments)
    • Accordingly, in outgoing SIU messages, AIG-3-3 is now set to SAMEDI-RESOURCE to indicate that AIG-3-1 is a resource ID, not a resource xref
  • Save access token in the state file by account name instead of user name

0.13.0 – 2019-04-29

  • hl7gateway instances now use an access token to authenticate themselves with app.samedi.de

0.12.9 – 2019-04-17

  • Duration is calculated differently for appointment types that are configured with negative start offsets
  • Moved the public website to repo.samedi.de/hl7gateway

0.12.6 – 2019-04-05

  • FIXED: do not send patients birthdate in outgoing PID segments when it is before the year 1900.
  • FIXED: when an xref was used in different resources across multiple samedi accounts it would only be associated with a single account.

  • Support multiple independent MLLP connections.

  • Remove dump_dir configuration option to write HL7 messages to a directory. Use samedi.log_file to log messages.

0.12.5 – 2019-04-02

  • Skip patient birthdate in PID, when the year is less than 1900

0.12.4 – 2019-03-26

  • Use “.br” escape sequence instead of newlines when sending messages to KIS

0.12.3 – 2019-03-21

  • Do not attempt to book appointments into ressources that are shared from another account.

0.12.2 – 2019-03-20

  • Add samedi.log_file configuration option.

0.12.1 – 2019-03-06

  • Support more fields in SRM-S02 messages:
    • Allow ignoring availability calculations when updating appointments with force^yes in APR-5.
    • Support updating appointment duration with ARQ-9/ARQ-10.

0.12.0 – 2019-02-26

  • Support incoming SRM^S02 messages for updating appointments in samedi.
  • Don’t send U+200C characters in NTE fields of appointment comments.
  • Make UTF-8 the default MLLP message encoding for new installations

0.11.0 – 2019-02-05

  • Use MSH-9-1 and MSH-9-2 exclusively for recognizing messages. Stop using MSH-9-3 (Message Structure)
    • SIU-Messages now don’t need to include SUI_S12 in MSH-9-3 any more.
    • Only S12 - S15 messages are now handled. Older versions would silently accept other types of SIU-Messages.
  • outgoing SIU messages now send AIG||X segments inside an RGS||X group for each unchanged resource in an appointment.
  • FIXED: SIU messages now always contain at least one RGS segment.

0.10.4 – 2019-01-15

  • FIX: listen for shutdown signal even while syncing is not yet finished
  • Send recreate_if_exists parameter for events when creating them. When gateway sends a request to create an event, in case the event with such xref already exists, platform will cancel it and create a new event with that xref.

0.10.3 – 2018-11-20

  • FIX: put outgoing appointment namespace in SCH-2-2 as described, not SCH-2(2)-1

0.10.2 – 2018-11-20

  • Add a configuration option patients_polling_enabled to disable sending of ADT messages
  • Add a configuration option appointments_polling_enabled to disable sending SIU messages
  • deprecated polling_enabled configuration option, which now disables outgoing ADT and SIU messages.

0.10.1 – 2018-11-15

  • Add a configuration option “appointments_namespace” to “samedi” section. When present, this will be put to SCH-2-2 of outgoing SIU messages.

0.10.0 – 2018-11-06

  • Drop support for service installation in Unix/macOS.
  • Make windows service handling more robust:
    • Add a command line option “workingDirectory” to make relative paths in configuration work. (they would be relative to “%WINDIR%/System32” before)
    • Log errors during startup to Windows EventLog.
    • Configure automatic restart of the service during installation.
  • MLLP: don’t attempt to connect automatically during startup. Connect when the first message needs to be sent.

0.9.0 – 2018-11-02

  • retry network requests to make the program more robust
  • Support “enhanced mode” for Acknowledgements, allow outgoing messages to be acknowledged with CA/CR/CE codes in addition to AA/AR/AE.

0.8.3 – 2018-10-30

  • Include hl7 specification and changelog

0.8.2 – 2018-10-26

  • Fix merging of non-existent patient by id but by xref

0.8.0 – 2018-10-18

  • when updating patient after ADT message from KIS do not erase any data in samedi patient record

0.7.0 – 2018-10-02

  • do not re-update patients in samedi if the data did not change in order to prevent loops
  • poll for patient updates in samedi and send out ADT Messages
    • ADT^A08 for patients that are created/updated
    • ADT^A23 messages for patients that are deleted

0.6.0 – 2018-09-20

  • accept ADT^A08 Message type and allow patients to be created and updated
  • accept local phone number on PID-13

0.5.7 – 2018-09-10

  • fix born_on parsing

0.5.6 – 2018-06-07

  • Add release build for macOS

0.5.5 – 2018-05-03

  • Support PID fields in SIU messages.

0.5.0 – 2018-04-10

  • Require the ‘hl7gateway’ package in all connected samedi accounts.
  • Appintment updates now send all resource changes, not the current state of the appointments.
    • A moved appointment will have an RGS||D part with removed resources and an RGS||A part with added resources.
    • Cancelled appointments now send AIG||D segments for the booked resources.
    • Segment IDs in AIG-1 and RGS-1 now increment instead of always being 1.
  • Send “DELETED” instead of “BOOKED” in SCH-6 field for S15 messages.

0.4.14 – 2018-03-19

  • Add HTTP[S]_PROXY support. Use the proxy server given in the HTTPS_PROXY or HTTP_PROXY environment variable.

0.4.13 – 2018-03-16

  • Add hl7send tool for sending single messages from text files.

0.4.12 – 2018-03-14

  • send patient address in PID-11 (street, city, zip)
  • send patient email address in PID-13 (type X.400)
  • send patient phone numbers in PID-13 (PC: mobile number, PH: phone, PX: fax)

0.4.11 – 2018-03-06

  • Build a distributable linux archive on CI

0.4.10 – 2018-02-23

  • Make HL7 message IDs non-deterministic.

0.4.9 – 2018-02-23

  • Make timeout configurable with config.mllp.sender.acknowledge_timeout_seconds configuration option.
  • Only start acknowledgement timeout when HL7 message is about to be sent and never run multiple timeouts in parallel.

0.4.8 – 2018-02-22

  • Increase timeout when waiting for HL7 message acknowledgements to 30 seconds. (from 10 seconds)
  • Load practice encryption keys immediately on startup, not only when required.

0.4.7 – 2018-02-16

  • fixed: patients from referrals that are encrypted with a public key are decrypted correctly now.

0.4.6 – 2018-02-12

  • data that can’t be represented with the chosen HL7 message encoding will have non-encodable bytes replaced with a replacement character. (0x1A for ISO 8859-1) Before, the HL7 component would be skipped entirely.

0.4.5 – 2018-02-08

  • installer: Create a batch file in “%APPDATA%/samedi HL7gateway” for a better first-run experience.
  • installer: Ship util/hl7listener.exe for easier debugging.

0.4.4 – 2018-02-07

  • always set RGS-2 in outgoing SIU-messages (segment action code)
  • SIU-Messages always send message structure SIU_S12
  • send TQ1 segments for appointment time
  • allow setting structured MSH message headers in configuration file
  • DEPRECATION: consumers should use TQ1-7 and TQ1-13 instead of SCH-11 and SCH-9

0.4.3 – 2018-02-05

  • send gender in PID messages
  • bundle zoneinfo.zip in windows installer so that loading timezones works there
  • don’t generate NTE segments for empty appointment comments

0.4.2 – 2018-02-05

  • fix parsing of patient data where birthdate is a timestamp
  • fix that invalid birthdates would get sent as “00010101” in PID segments

0.4.1 – 2018-02-02

  • send “Deleted” in SCH-25 for deleted appointments

0.4.0 – 2018-02-02

  • HL7 message segments are separated by CR (\r) instead of LF (\n) for conformance with the HL7 specification.
  • Send out S12/S13/S14/S15 messages, compatible with java HL7gateway with the following differences:
    • HL7 Version declared in MSH header defaults to 2.5
    • MSH sending facility is different. “HL7Gateway^samedi.de^DNS|scheduling^samedi.de^DNS” now is “samedi-hl7gateway|samedi”
    • Comment field names are sent as-is. Existing mappings do not work any more.
    • Charset defaults to “88591” and is always sent in all messages.
    • Add three utility scripts
    • “service-install-hl7gateway.bat”, “service-uninstall-hl7gateway.bat” for installing and removing the service (run as Administrator)
    • “utils/tail-service-log.ps1” to more easily look at log output of the running service.
  • wait for ACK/NACK replies when sending out SIU messages
  • report an error when config file contains unknown configuration options
  • configurable sync interval (set with config.samedi.polling_interval_seconds = 60)
  • new option to disable outgoing HL7 messages per samedi account polling_enabled = false

0.3.1 – 2018-01-16

  • better debug output: log HTTP response body for failed requests.

0.3.0 – 2018-01-03

  • read samedi practice ID from incoming SIU S14 messages if one is set. This makes hl7gateway work with multiple configured accounts when updating appointments is required.
  • Remember which samedi appointments have already been imported. (With new samedi.state_file configuration option, which defaults to hl7gateway-state.json in the current directory.)

0.2.6 – 2017-12-11

  • Handle SIU S14 messages from Orbis and put Orbis Case-ID and Patient ID into samedi appointment comments.

0.2.5 – 2017-12-08

  • parse appointment time out of SIU messages when there are no TQ1 segments.

0.2.3 – 2017-12-01

  • Don’t exit program when an incoming HL7 messages can not be assigned to any configured samedi account.

0.2.2 – 2017-11-30

  • Handle AIP/AIL/AIG segments in SIU messages.
  • Send NACK replies for messages that can’t be handled.
  • Fixed: upgrading with the MSI installer uninstalls old version.

0.2.1 – 2017-11-24

  • New dump_dir configuration option to log all HL7 messages into files.
  • Fixed: SIU messages with appointment times in TQ1 are parsed correctly now.
  • Fixed: make disabling outgoing HL7 connections actually work.

0.2.0 – 2017-11-23

  • Add windows installer.
  • Ability to run as a windows service.

0.0.1 – 2017-11-16

  • initial version