查找

Announcement
· Feb 6, 2024

Seeking Exam Design Feedback for InterSystems TrakCare Technical Integration Specialist Exam

Hello Everyone,

The Certification Team of InterSystems Learning Services is in the process of developing an exam focusing on creating and working with TrakCare Integration, and we need input from our InterSystems TrakCare community. Your input will be used to evaluate and establish the contents of the exam.

How do I provide my input? We will provide a list of job tasks. You will rate them on their importance as well as other factors.

How much effort is involved? It takes about 15-20 minutes to fill out the survey.

How can I access the survey? You can access it here: InterSystems TrakCare Technical Integration Specialist 

  • Survey does not work well on mobile devices - you can access it, but it will involve a lot of scrolling
  • Survey can be resumable if you return to it on the same device in the same browser - answers save with the Save/Next button
  • Survey will close on March 22, 2024

Here are the exam title and the definition of the target role:

InterSystems TrakCare Technical Integration Specialist

An IT specialist who is experienced with:

  • general TrakCare fundamentals, 
  • the TrakCare data model,
  • industry-standard integration messaging formats (HL7v2/FHIR/SDA3/IHE),
  • the HealthCare Messaging Framework (HMF), and 
  • has at least 6-12 months full-time experience working with TrakCare integrations.

Thank you,

InterSystems Certification

Discussion (0)1
Log in or sign up to continue
Article
· Jan 31, 2024 2m read

Become A Whiz At Investigating HL7v2 Interface Issues - It's THIS Easy

Do you ever spend an age entering criteria in the message viewer page, trying to find a message just to realise you're in the wrong instance of IRIS? 

Or get lost in a sea of message tabs struggling to spot that Visual Trace page your were JUST looking at?

Well, have you tried the IRIS WHIZ browser extension and its suite of tools designed to help you avoid such unpleasantness?


As you can see in the above screenshot, this web browser extension can automatically colour the header of your instance/namespace and group the tabs together into coloured tab groups. Whether you like bold and brave or plain and simple, you choose what colours and names to use in the extension's options page. So if that's a bit bright for you, your header could look like this instead: 

 

You don't have to have to change any code, or even have the same colours or names as the rest of your team. (Though if you do want the colours and names to be the same, you can easily share your config file with your team with the click of a button!)

You can even change the page titles that appear in your browser's tab using a right click context menu - it's persistent and you can then look them up/delete them in the extension's pop-up:
 

In fact the extension has a ton of features that make investigating HL7v2 interface issues a breeze.

For example, below is a screenshot where I'm viewing two messages in a splitscreen view while reading through the first message's schema - all on one page. You can see some of the IRIS Whiz buttons available to me in the top left corner too.

 

Or how about viewing all available HL7v2 messages in the Visual Trace window without having to click each message individually and view their Contents tab?

 

And there's so many more features. In fact I created so many features I was told my tutorial video was too long for InterSystems to publish on their YouTube channel!

So if you're interested in speeding up your interface investigations or want to learn more then watch my (heavily shortened) YouTube video and download the IRIS Whiz extension from the Open Exchange here.

If you need something fixed or just want to share the love, please leave me a review
and finally
Please vote for this extension in the latest Open Exchange contest!

1 Comment
Discussion (1)1
Log in or sign up to continue
InterSystems Official
· Jan 26, 2024 2m read

Cómo instalar Apache en sistemas operativos compatibles con IRIS

Para vuestra comodidad, InterSystems está publicando los pasos de instalación característicos de los sistemas operativos que son compatibles con InterSystems IRIS.

Para Microsoft Windows, consultad por favor la documentación de producto de InterSystems.

El instalador de IRIS detectará si hay un servidor web instalado en la misma máquina, lo que da la opción de tener configurado automáticamente el servidor web.

Todas las instalaciones de Apache requerirán permiso de sudo (recomendado) o de root para instalar el servidor web. Este requisito es compatible con las mejores prácticas recomendadas.

Para Red Hat (RHEL), InterSystems está instalando ficheros SELinux para admitir conexiones a través de http o https (si están configuradas).

Opcionalmente los scritps proporcionan instrucciones sobre cómo convertir los pasos de instalación en un fichero ejecutable (el nombre del fichero solo es una recomendación).

InterSystems ofrece tres vídeos y un podcast con información adicional y ejemplos de uso.

Esperamos que el nuevo proceso os resulte rápido, sencillo y claro. Cambiar el procedimiento no fue una decisión fácil, pero era requerido a menudo por los clientes y está en línea con las mejores prácticas.

Una vez que hayáis cambiado del Servidor Web Privado, probablemente es tan fácil como instalar apps en vuestros dispositivos móviles.

Instrucciones de instalación

Fichero script para Ubuntu

# instalar o actualizar apache2

sudo apt install apache2 -y

# habilitar e iniciar httpd

sudo service apache2 start --now

apache2 -v

Fichero script para RedHat

# instalar o actualizar httpd

sudo dnf install httpd -y

# habilitar e iniciar httpd

sudo systemctl enable --now httpd

sudo systemctl start httpd

httpd -v

# Confirmar el estado SELinux (que debería ser ejecuado)

getenforce

Fichero script para AIX

# instalar o actualizar httpd

sudo yum install httpd -y

# iniciará httpd

sudo /etc/rc.d/init.d/httpd start

httpd -v

Fichero script para SUSE

#  instalar o actualizar apache2

sudo systemctl enable apache2

# habilitará e iniciará apache2

sudo systemctl restart apache2

systemctl status apache2

Discussion (0)2
Log in or sign up to continue
Article
· Jan 22, 2024 7m read

KMS . Introduction to its use in IRIS and an example of setup on AWS EC2 system

IRIS can use a KMS (Key Managment Service) as of release 2023.3.  Intersystems documentation is a good resource on KMS implementation but does not go into details of the KMS set up on the system, nor provide an easily followable example of how one might set this up for basic testing.

The purpose of this article is to supplement the docs with a brief explanation of KMS, an example of its use in IRIS, and notes for setup of a testing system on AWS EC2 RedHat Linux system using the AWS KMS.  It is assumed in this document that the reader/implementor already has access/knowledge to set up an AWS EC2 Linux system running IRIS (2023.3 or later), and that they have proper authority to access the AWS KMS and AWS IAM (for creating roles and polices), or that they will be able to get this access either on their own or via their organizations Security contact in charge of their AWS access.

What is KMS and what does it do for IRIS?:

KMS means Key Management Service.   Briefly, it provides an external secure method of encrypting and decrypting IRIS encryption keys through a trusted service, the KMS.

In prior implementation, when using unattended startup, IRIS would never store unencrypted encryption keys; IRIS would encrypt a key with an encrypted copy of the key encryption key in that key itself.  It would then store a user ID and password in IRIS to unencrypt the encrypted key encryption key.  This leaves an unencrypted copy of the user ID and password stored in an IRIS database, which leaves extra burden on IRIS managers of securing that.  The key encryption key is encrypted/decrypted by a symmetric key that is based on a key admin’s password using PBKDF2 (Password-Based Key Derivation Function 2). So the key that encrypts the key encryption key is never stored anywhere – it’s derived on the fly when a key admin supplies their password. Since there can be multiple admins for keys in a given key file we store in the key file one encrypted copy of the key encryption key (per admin) and then a single encrypted copy of each database/data element encryption key (encrypted with the key encryption key).
 

With KMS we do not store the id and password in IRIS.  When we create the encryption key with KMS we get an encrypted encryption key, and the KMS keeps the key encryption key for us. We reach out to the kms server with the encrypted encryption key.  the kms server decrypts the encryption key.  The decrypted key is sent back to us and stored in memory.  The communications are secured using TLS.

We don't ever have access to the raw key encryption key.  We use it as a service via kms.  The key encryption key stays on the kms server.  This helps with key management and key security.

 

Current implementation (as of 1/22/2024) of KMS is Cloud Vendor Specific

In AWS you must specify creation of a symmetric key. 

In Azure you must specify creation of an RSA key

Future implementation my include google KMS.

 

---

Example of workflow setting up new encryption key in IRIS using KMS:

The following assumes you have set up an IRIS system to access an AWS KMS server and your instance has been authorized to access the keys there and you have set up a key for use.  (See Setup Notes following this example for an example of setting up KMS on AWS to connect with an AWS EC2 RedHat Linux instance.)

 

1.%SYS>D ^EncryptionKey

2.Create New Key

3.Name the key

4.Use KMS: yes

      Here you specify properties of the key.  Choose backup if you want a regular encryption key made to backup this KMS key.  This is the only place you can do this.  Treat this backup as you would a normal Encryption key. 

5. Select AWS for the kms server

6. Get the key ID and the region from your AWS Key Managed Service console

7. Env Key ; you should not need to specify anything here if your system is set up correctly (per this article). See AWS docs for further details if necessary for your needs.  Leave blank for the purpose of simplifying this for testing example.

8. You should receive a message like:

Encryption key file created: iriskmstest1
Encryption key created via KMS: 87A85627-9F8C-11EE-8839-0608ECAD1BAF

This key is NOT activated.

 

Key Activation and use are then usual encryption key setup steps.

 

If there are issues with the activation at startup it will error and go into interactive mode

For interactive startup if you pass in a kms key it will not prompt for username or password

If you put in the backup key (generated in step 14 above) then it will ask for the username and password you created at key creation time (just like normal key)

If there are issues you will see errors in your startup, or logged in messages.log if silent startup.

 

In general, your IRIS system does not need to be on AWS or other cloud system, it accesses the KMS for the key over TLS.

IRIS uses credentials of current user when accessing the KMS server, so you need to make sure that user has access to KMS

the AWS key policy defines who can use the key on AWS.  See following setup notes for an example.

 

----

Setup Notes: Getting an AWS EC2 Linux system running IRIS to work with an AWS KMS:

(The following assumes you already have an AWS EC2 RedHat Linux system running an IRIS version that supports KMS)

 

To set up the AWS EC2 system to use the AWS KMS server:

Follow Setup instructions in following link to install the AWS CLI on your EC2 system:  Install or update the latest version of the AWS CLI - AWS Command Line Interface (amazon.com) 

There are instructions for different OS types.  For the purpose of this instruction set I used an AWS RedHat Linux system.  It was fairly strait forward to follow that doc to install the AWS CLI on the system.

I also had to use 'sudo yum install unzip' to install unzip on the system in order to follow the instructions which had me use unzip on the AWS client download zip file.

 

 

Here are the steps to create a key that could be used by an IRIS instance for encryption key encryption:

1. In AWS Mgmnt Console go to Key Management Service.

2. Click on Customer Managed Keys

3. Click on Create Key

5. Accept the Defaults

6. Enter an Alias; this is the name for the key

7.Key Admin Options: default policy

8. Click Finish

 

 

The IRIS instance will also need to be authorization to use the KMS key. This is done either by running the instance as a user who has authenticated to AWS and is authorized to use the key, specifying a credentials file with the AWS_SHARED_CREDENTIALS_FILE environment variable or by assigning to the EC2 itself an IAM role that either has a policy attached to it that allows key usage or that has an explicit allowance specified in the key policy itself.

For the purpose of this instruction set we are following the 3rd as ISC Development has suggested this would be the most commonly used by customers in AWS.  In the following we will create an IAM role that can be assigned to the EC2 instance itself. The role can have a policy attached to it that gives it very targeted privileges to access a given key in the KMS (or even just allow specific operations with the key).  We are only exploring the most simple process to give us something to use for testing...

 

Here are the steps for Authorizing an Instance of IRIS on an AWS EC2 system to use the key on the KMS server:

1.In AWS Managment Console go to Key Management Service

2. Under "Customer managed keys" click on the Key ID of the key you want to use.

3. In the "General configuration" section click the "Copy" icon next to the ARN to copy the ARN to the clipboard. Paste this value somewhere to use later in the policy configuration.

4. In AWS Mgmnt Console go to IAM.
5. Under "Access Management">"Policies" click "Create policy".
6. Under "Select a service" choose KMS from the drop-down list. Click "Next".
7. Under "Actions allowed" click on the "Write" access level expander. Check the "Decrypt" and "Encrypt" checkboxes.
8. Under "Resources" click on the "Add ARNs" link.
9. Paste the entire ARN from Step 3 above into the "Resource ARN" text field. Click "Add ARNs". Click "Next".
10. Under "Policy details" provide a policy name and, if desired, a policy description. Click "Create policy".

11. In IAM under "Access Management">"Roles" click "Create role".
12. Under "Trusted entity type" click "AWS service". Under "Use case" select EC2 from the drop-down list. Click "Next".
13. Under "Permissions policies" start typing the policy name from Step 10 until it appears in the list. Click the checkbox next to it. Click "Next".
14. Under "Role details" provide a role name. Click "Create role".

15. In AWS Mgmnt Console go to EC2. Navigate to "Instances">"Instances".
16. If EC2 instance already exists:
    a. Click checkbox next to instance name.
    b. Click "Actions">"Security">"Modify IAM role".
    c. Choose the role from Step 15 from the drop-down list.
    d. Click "Update IAM role".
16. If launching new EC2 instance:
    a. Click "Launch instances".
    b. Under "Advanced details" choose role from Step 15 in "IAM instance profile" drop-down list.

17.You can now use the kms key in ^EncryptionKey

 

Notes:
 After creating policy/role you might need to refresh the Mgmt Console for these new resources to show up.

 

---

 

Supplemental:

Classes methods of interest:

%SYSTEM.Encryption.KMSCreatEncryptionKey()

%SYSTEM.Encryption.ActivateEncryptionKey() ;just supply the kms key, no need for username or password

do ReadFile^EncryptionKey(<key>,.data) zw data ;it will be obvious if the key is kms type from the data returned.

 

Doc link:

Key Management Tasks | InterSystems IRIS for Health 2023.3

Discussion (0)1
Log in or sign up to continue
Question
· Jan 19, 2024

How to Create Analyses, Transformation Specifications, and Projections in FHIR SQL Builder Using Commands?

Hello everyone,

I am working with InterSystems IRIS and seeking guidance on how to perform specific tasks related to the FHIR SQL Builder using commands or code, rather than the graphical user interface (GUI). The specific tasks I am trying to accomplish are:

  1. Creating Analyses: What is the recommended method or class in ObjectScript to analyze data in the FHIR repository?
  2. Transformation Specifications: How can I programmatically create transformation specifications? Is there a specific class or a series of commands for this?
  3. Creating Projections: Is there a standard procedure or a set of commands to create projections from transformation specifications?

Now, I am only using the GUI interface to create the Analyses, Transformations, and Projections. However, a method to export and import these configurations through code would also be suitable for me:

I am looking for an approach that doesn't rely on the GUI, but is effective for FHIR data manipulation in the context of InterSystems IRIS. Any code examples, relevant documentation, or practical guidance would be greatly appreciated

Thank you in advance for your assistance!

4 Comments
Discussion (4)5
Log in or sign up to continue