Upgrading InterSystems IRIS for Health
The process for upgrading InterSystems IRIS for Health is similar to upgrading the InterSystems IRIS product:
-
Read the special considerations for upgrading IRIS for Health listed below.
-
Complete the Upgrading InterSystems IRIS procedure in the InterSystems IRIS Installation Guide.
-
Return here and complete the post-upgrade steps below necessary for your situation.
Special Considerations for Upgrading IRIS for Health
Validate Production Interfaces
You can validate that your upgraded system behaves the way you expect it to by using the Production Validator. The Production Validator extracts HL7 V2 headers, messages, and operation messages to a temporary database, which is then copied to an upgraded InterSystems IRIS for Health instance and replayed. By comparing the original messages to the messages processed on the upgraded system, you can evaluate and address differences.
SSL/TLS Configuration in the Configure Secure Communication Dialog
If you are upgrading from a version prior to 2022.2 and your system is configured for secure communication, meaning that you had an Active configuration in the Configure SSL Access option in the Installer Wizard prior to your upgrade, note that the Configure SSL Access dialog in the Installer Wizard has been renamed to Configure Secure Communication. In the new dialog you must now specify an SSL/TLS Configuration in order to make the secure communication settings Active. A default value of HS.Secure.Demo was entered for the SSL/TLS Configuration setting when you upgraded.
If you previously had an Active configuration in the Configure SSL Access option, you must modify the default value to reflect the SSL/TLS configuration in use on your instance as follows:
-
Navigate to the Installer Wizard.
-
Select the new Configure Secure Communication option.
-
Confirm that your Secure Port is identified and the These Settings are Active checkbox is selected.
-
In the SSL/TLS Configuration field, select the name of the SSL/TLS configuration in use on your instance.
-
Click Save.
Post-Upgrade Steps
Final Step When Upgrading from 2018.1.2 to 2019.1
Running a post-installation method in the InterSystems Terminal is the final step in upgrading from InterSystems IRIS for Health 2018.1.2. You need to run this method multiple times if you have more than one user-created namespace. To complete the upgrade process:
-
Open the InterSystems Terminal.
-
To change the namespace to HSLIB, enter:
set $namespace="HSLIB"
-
Enter:
do ##class(HS.HC.Util.Installer.Upgrade.XFMapping).UpgradeHSXF("<namespace>")
Where <namespace> is the name of a user-created namespace. You must repeat this command for each user-created namespace.
Post-Upgrade Steps for Pre-2020.4 FHIR Endpoints
If you are upgrading from a version prior to 2020.4, the following steps that may be required depending upon on how you have customized your FHIR server. Perform these tasks in the following order:
-
If your FHIR server uses custom subclasses, you must modify your architecture subclasses.
-
If your FHIR endpoint uses custom search parameters, migrate them to a FHIR package and apply them to the endpoint.
Once you have completed these steps you can run re-index the search tables.
As part of the FHIR architecture that was introduced in InterSystems IRIS for Health 2020.1, you can use a custom InteractionsStrategy to implement a custom FHIR server. If your FHIR server’s endpoint uses a custom InteractionsStrategy, including if it uses a subclass of the Resource Repository, complete the following steps:
-
Complete the upgrade of your InterSystems IRIS for Health instance.
-
Using your IDE, do one of the following in your endpoint’s namespace:
-
If the InteractionsStrategy of your endpoint extended the Resource Repository (HS.FHIRServer.Storage.Json.InteractionsStrategy), create a subclass of HS.FHIRServer.Storage.Json.RepoManager.
-
If the InteractionsStrategy of your endpoint subclassed HS.FHIRServer.API.InteractionsStrategy directly, create a subclass of the HS.FHIRServer.API.RepoManager superclass.
-
-
Add the following parameters to your subclass of the Repo Manager:
-
StrategyClass — Specifies the subclass of your InteractionsStrategy.
-
StrategyKey — Specifies the unique identifier of the InteractionsStrategy. This must match the value of the StrategyKey parameter in the InteractionsStrategy subclass.
-
-
If your InteractionsStrategy subclass included custom code for the methods that manage the Service, you must move that logic to the new methods in the Repo Manager subclass that you created. Specifically, you must move custom code from the Create, Delete, Decommission, and Update methods to the corresponding methods in your Repo Manager subclass (CreateService, DeleteService, DecommissionService, and UpdateService ).
In versions of IRIS for Health before 2020.4, using custom FHIR search parameters required you to define a custom metadata set. In this version, defining FHIR metadata, including custom search parameters, has been migrated to FHIR packages. When you upgrade from an earlier version, the upgrade will remove any custom metadata sets, and configure the FHIR endpoint with the base FHIR package, either STU3 or R4, depending on what was in use before the upgrade.
If you use custom FHIR search parameters, you must manually migrate them to a FHIR package and apply them to the endpoint before they can be used. The instructions for creating and applying FHIR packages are in the “FHIR Profiles and Adaptations” chapter of FHIR Support in InterSystems Products. Using the files that you originally used to used to create the custom metadata set, perform the steps below in the recommended order:
-
Import your package or confirm that your package has been imported.
-
To complete this procedure, you must re-index the endpoint. You will do this in a later post-upgrade step.
Alternatively, you can perform these steps using the FHIR Package API.
Re-Indexing FHIR Search Tables
Re-index any FHIR search tables that require it:
-
In the Management Portal, navigate to Health > myFHIRnamespace > FHIR Configuration.
-
Select the Server Configuration card.
-
For each existing endpoint, select Reindex Now.
-
When prompted, click Select All, and then select Reindex.
Note:This step may take some time to complete.
Import SDA3 Schema
If you are using SDA3 or SDA3 transformations, you must import the SDA3 schema. For instructions, see the installation steps.
The HSSYS Mirroring Utility
The HSSYS database stores configuration data, metadata, and system-level information that is vital for the overall functionality of InterSystems IRIS for Health, specifically including a list of tasks to be executed on the backup member of a mirrored system.
Although it is required that HSSYS be mirrored, mirroring HSSYS is not a prerequisite of completing the upgrade; you can mirror HSSYS after the upgrade is complete.
You can automatically mirror HSSYS using the HSSYS mirroring terminal utility. The assumption is that mirroring is configured and currently in a good state, with both machines running. The utility validates that HSSYS can be mirrored, confirming that the data is consistent on each of the mirror members. There is are options to validate only or to validate and then complete the mirroring of HSSYS.
Follow these steps to validate and/or automatically mirror HSSYS using the HSSYS mirroring terminal utility:
-
On the backup member, switch to namespace HSCUSTOM.
NAMESPACE> ZN "HSCUSTOM"
-
Execute Run() or RunValidate():
-
RunValidate does not make any system changes; it only validates, reporting whether the HSSYS data is consistent across the primary and backup members.
HSCUSTOM> Set return = ##class(HS.HC.SYS.Mirror).RunValidate("<ip_or_dn>",<server_port>,"HSCUSTOM","<adm_user>","<adm_pwd>",<verbose>)
-
Run performs validation and then, if validation succeeds, performs the actual mirror setup on HSSYS.
HSCUSTOM> Set return = ##class(HS.HC.SYS.Mirror).Run("<ip_or_dn>",<server_port>,"HSCUSTOM","<adm_user>","<adm_pwd>",<verbose>)
-
The following argument descriptions apply to both methods:
ip_or_dnThe IP address or fully qualified domain name of the current primary member.
server_portThe Super Server port number of the primary member.
adm_userThe username of a user with the administrative privileges necessary to set up mirroring.
adm_pwdThe privileged user’s password.
verboseSpecify 1 for verbose output, or 0 if verbose output is not desired.
-
-
You can view the output on the terminal screen or by looking at the return variable:
HSCUSTOM> ZW return
-
If validation fails, mirroring setup will also fail. The return value will include helpful messages indicating how to resolve the issues causing setup to fail. Correct the issues and repeat these steps.
Converting a Non-Foundation Namespace to a Foundation Namespace
If you have a non-Foundation namespace and you want to use IRIS for Health or Health Connect interoperability functionality within that namespace, you must convert that namespace to a Foundation namespace. You can do so using the Installer Wizard, by picking the name of the namespace to be converted. In a mirrored environment, it is sufficient to convert the namespace on the primary member.