Skip to content

Installation

This page details the recommendations, requirements, and steps for installing Halo Link on a practice server or in a integration development environment.

For specific details regarding how Halo Link interacts with different PMS solutions, please see the relevant guides:

Jump to...

Recommendations Requirements For practices For integrators

Recommendations

  1. Halo Link should be installed on the same server as the PMS database unless installation in another location is required.
    • To install on a secondary server, configure the Database Hostname as appropriate during installation.
  2. Halo Link should not be installed on practice staff workstations or other practice computers.
  3. Halo Link should only be installed once per PMS database instance. The number of practices or locations connected to the database does not matter. If a group of practices share a PMS database, they will also share a single Halo Link installation.

Server configurations and changes

Halo Link is designed to operate on most server configurations, however backups, migrations, and more advanced setups can require extra steps. See Server config for more information.

Requirements

PMS requirements

To connect to a PMS database, Halo Link requires certain versions. Halo Link may also be bundled with the PMS database software, depending on the PMS and its version.

Minimum Recommended Bundled
Bp Premier October 2022 Data Update July 2023 Data Update From July 2023 Data Update
Zedmed v36.9 v36.9 From v36.9
D4W Any Any Not bundled

System requirements

Halo Link requires the following:

Minimum requirement Notes
.NET Framework .NET Framework 4.8 .NET Framework and .NET Core appear to be the same, but are different products. Installing .NET 6.0 won't satisfy the requirement of .NET Framework 4.8.
Microsoft Windows Any Microsoft Windows Server version supported by Microsoft Full support: Microsoft Windows Server 2022 and 2019. Security support: Microsoft Windows Server 2016.
Clock drift <60 seconds To fix clock drift >60 seconds, open PowerShell with Admin Privilege and resync the clock by running w32tm /resync.
Firewall/antivirus See Security requirements below See Security requirements below

Security requirements

Antivirus & Malware detection

To prevent Halo Link being falsely detected as malware, add the Halo Link installation and update directories to the antivirus's ignore/approve lists.

For the Halo Link Service:

C:\Program Files (x86)\Halo Connect\Halo Link

For the Halo Link Updater:

C:\ProgramData\Halo Connect\Halo Link

Halo Link requires the following URLs to be whitelisted by the server's firewall or proxy:

For the Halo Link Service:

https://am-haloapi-prod-001.azure-api.net   
https://api.haloconnect.io/
wss://wps-haloapi-prod.webpubsub.azure.com

For the Halo Link Updater:

https://prodhalolinkrelease.blob.core.windows.net
https://downloads.haloconnect.io/

Proxy server configuration

Halo Link is specifically designed for installation on servers within private networks, positioned behind routers and firewalls. However, Halo Link does not explicitly support proxy servers, and as a result, does not have a specific configuration option for proxy server settings.

It can be implicitly configured since Windows or the .NET framework provide solutions depending on your network configuration.

Proxy server configuration workarounds (click to expand)

HaloLinkService.config File

This method allows for specific configuration but may be susceptible to updates. It is recommended for testing before transitioning to a more permanent location. The configuration file is located at:

C:\Program Files (x86)\Halo Connect\Halo Link\HaloLinkService.config
Add the following configuration element to the XML:

<system.net>
<defaultProxy>
 <proxy proxyaddress="http(s)://<proxyhost>:<proxyport>" />
</defaultProxy>
</system.net>
Machine.Config for .NET

This option covers all .NET applications and persists through product updates. Locate the Machine.Config file at:

%WINDIR%\Microsoft.NET\Framework|Framework64[version]\Config\machine.config
Commonly found here:
C:\Windows\Microsoft.NET\framework\v4.0.30319\config\machine.config
Add the following configuration element to the XML:

<system.net>
<defaultProxy>
<proxy proxyaddress="http(s)://<proxyhost>:<proxyport>" />
</defaultProxy>
</system.net>
Setting WinHTTP Proxy with netsh

This method sets proxy settings for all Windows Services, offering robust persistence through application and .NET updates. Use the following command based on your system architecture and Windows version:

For 64-bit Windows:

C:\Windows\sysnative\netsh.exe winhttp set proxy http(s)://<proxyhost>:<proxyport>
For 32-bit Windows:

C:\Windows\syswow64\netsh.exe winhttp set proxy http(s)://<proxyhost>:<proxyport>
References:

Proxy Configuration: Element (Network Settings) - .NET Framework | Microsoft Learn

Configuration Files: Configuring Apps using Configuration Files - .NET Framework | Microsoft Learn

NetSH WinHTTP: Netsh Commands for Windows Hypertext Transfer Protocol (WINHTTP) | Microsoft Learn

Further examples: Thick Client Proxying - Part 8 - Notes on Proxying Windows Services

Installation prerequisites

To install Halo Link, you will need either:

  • A PMS database installer which includes Halo Link as part of the bundle, or
  • The appropriate Halo Link installer for the PMS solution you wish to connect to.

See PMS requirements to check if your PMS software includes Halo Link.

To request a Halo Link installer, contact our Support team.

If installing using the Halo Link MSI or via the command line, you may need to set the following variables:

Field Description Default
Database Hostname The database server and instance name in the format <SQLServerName>\<InstanceName> PMS dependent. See below.
Environment Which environment Halo Link should use. Practices should only use Production. Integrators usually need Staging. Production

Database hostname

The default database hostname depends on which PMS Halo Link is connecting to:

PMS Default Notes
Bp Premier .\BPSINSTANCE If Bp Premier and Halo Link are installed on the same server, the default value should be correct.
Zedmed N/A Halo Link detects Zedmed's databases automatically.
D4W N/A Halo Link detects D4W's database automatically.

Environment

Halo Link can be installed such that it targets either a Production or Staging environment.

  • Production is designed for live practice servers. This is the default.
  • Staging is designed for integrators developing and testing their integrations.

For practices and IT providers, environment does not need to be specified as live practice servers should use Production, as per the default.

For integrators, the recommended way to install Halo Link is via the command line, as it is the easiest way to specify Staging.

For practices

There are three options for installation:

Some PMS software includes Halo Link. For example, for Bp Premier customers, installing a Bp Premier Data Update or Service Pack will automatically install Halo Link.

See PMS requirements to check if your PMS software includes Halo Link.

Limitations:

  • Installing Halo Link via a PMS bundle does not allow for configuration of Database Hostname.
Installation steps (click to expand)

Installation steps:

  • See the PMS vendor's documentation for installation instructions.

Notes:

  • If Halo Link was already installed on the server, the PMS installer may re-install Halo Link using the bundled version.
  • If the bundled Halo Link version is older than the latest version, Halo Link will install then immediately update.
  • If Halo Link was already installed on another server, the PMS installer will also install it on the same server as the PMS database. Due to the restrictions around authoritative Halo Link instances, the newer installation of Halo Link will be marked non-authoritative. Integrators will continue to communicate with the database via the older authoritative Halo Link installation. See the documentation on authoritative Halo Link instances for how to change which server is authoritative.

Install via installation wizard

Installation steps (click to expand)

Installation steps:

  1. Download the Halo Link .msi file from the provided download URL.
  2. Find the .msi file and double-click the file to run it.
  3. Follow the installation wizard's prompts.
Screenshots of installation process (click to expand)

halo-link-install-01.png

halo-link-install-02.png

halo-link-install-04.png

halo-link-install-05.png

halo-link-install-06.png

halo-link-install-07.png

Notes:

  • Installation via installation wizard requires administrator permissions.

Install via command line

Installation steps (click to expand)

Installation steps:

  1. Download the Halo Link .msi file from the provided download URL.
  2. Open a new command prompt as an Administrator.
  3. Use the msiexec command to run the .msi file with the appropriate parameters. See the Microsoft msiexec docs for the full list of available parameters.
    1. Use /i to specify a normal installation.
    2. Specify the path to the .msi file
    3. Choose a display option.
    4. Optional: Specify Halo Link parameters:
      • DATABASE_HOSTNAME

Recommended display options:

Parameter Description
/qf Default. Full installation wizard UI.
/qr Reduced installation wizard UI that skips action steps.
/qb or /passive Basic UI with only a progress bar.
/qn or /quiet No UI.

Command example:

msiexec /i C:\path\to\halolink.latest.msi /quiet /qn
    DATABASE_HOSTNAME=<SQLServerName>\<InstanceName>

For integrators

Integrators should only run Halo Link in staging for development and test environments. Production should only be used for live practice servers.

There are a few things to note on installing Halo Link in non-production environments:

  • PMS software with Halo Link bundled will install in Production unless the registry is pre-set to Staging. When installing PMS software which has Halo Link bundled, it will default to Production and will set the registry values to reflect that unless the registry is already set to Staging. This is to simplify installation for practices, but does mean extra installation steps for integrators.
  • Switching Halo Link's environment requires removing registry values. To switch Halo Link from Production to Staging, you will need to remove uninstall it, remove its registry values, and reinstall it.
  • Halo Link will fail to bootstrap if it can't find a PMS database. Installing Halo Link before PMS software will cause it to fail to bootstrap, due to not being able to find a PMS database to connect to. Do not install Halo Link before PMS software.

Setting the environment

Setting Halo Link's environment to staging only needs to be done on first install on a new machine -- for subsequent installs or updates, provided the registry isn't cleared, Halo Link will honour the environment it was previously set to.

Installation options

Set registry before install

The easiest way to set Halo Link to staging is to set the registry before installing PMS software which includes Halo Link, as the bundled installer will then honour the registry entry for environment. However, provided the registry is set first, any of the installation methods listed in the For practices section will work.

Installation steps (click to expand)

Installation steps:

  1. Add the necessary value to the registry before installation. This can be done by running the following PowerShell script:
    $registryPath = "HKLM:\SOFTWARE\WOW6432Node\Halo Connect\Halo Link"
    If (-NOT (Test-Path $registryPath)){
        New-Item -Path $registryPath -Force | Out-Null
    }
    Set-ItemProperty -Path $registryPath -Name "Environment" -Value "Stage"
    Write-Host "Updated Registry."
    
  2. Install Halo Link using any of the methods described in the For practices section.

Updates and reinstalls

Once the registry has been set to Staging, any subsequent updates or reinstalls of Halo Link on the same machine will honour the registry values. So no extra steps are required to keep Halo Link on staging.


Prev: Halo Link introduction Next: Updating Halo Link