#Business Service

4 Followers · 214 Posts

A business service is part of InterSystems Ensemble interoperability production which is responsible for accepting requests from external applications.

Article Vicky Li · Nov 14, 2016 14m read

As we all know, Caché is a great database that accomplishes lots of tasks within itself. However, what do you do when you need to access an external database? One way is to use the Caché SQL Gateway via JDBC. In this article, my goal is to answer the following questions to help you familiarize yourself with the technology and debug some common problems.

Outline

2
8 4758
Article Yuri Marx · Nov 18, 2025 11m read

Modern data architectures utilize real-time data capture, transformation, movement, and loading solutions to build data lakes, analytical warehouses, and big data repositories. It enables the analysis of data from various sources without impacting the operations that use them. To achieve this, establishing a continuous, scalable, elastic, and robust data flow is essential. The most prevalent method for that is through the CDC (Change Data Capture)  technique. CDC monitors for small data set production, automatically captures this data, and delivers it to one or more recipients, including analytical data repositories. The major benefit is the elimination of the D+1 delay in analysis, as data is detected at the source as soon as it is produced, and later is replicated to the destination.

This article will demonstrate the two most common data sources for CDC scenarios, both as a source and a destination. For the data source (origin), we will explore the CDC in SQL databases and CSV files. For the data destination, we will use a columnar database (a typical high-performance analytical database scenario) and a Kafka topic (a standard approach for streaming data to the cloud and/or to multiple real-time data consumers).

 

Overview

This article will provide a sample for the following interoperability scenario:

 

0
4 223
Article Jenny Ames · Nov 14, 2016 2m read

Business services are powerful components that pull data in from external sources. In most cases, pre-built components do the job, but sometimes you need to code custom business services. There are a few best practices to keep in mind when doing this:

 
  1. Lean and Mean - Business services should be coded to have minimal processing. This is due to the fact that if any errors occur within the business service, no message will be sent, and thus no trace will be created. This makes it very difficult to troubleshoot.
4
0 1557
Article Slava Rahmatoulin · Nov 5, 2016 9m read

This article will provide tips and tricks on customizing Ensemble business hosts with configurable settings.

Ensemble production Settings are configurable values that control the behavior of a production and its hosts.

The documentation for adding and removing Settings and specifying categories and controls for Settings is provided at the link:

http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?

6
4 4941
Article Erin Spencer · Jan 24, 2024 9m read

The traditional use of an IRIS production is for an inbound adapter to receive input from an external source, send that input to an IRIS service, then have that service send that input through the production.

With a custom inbound adapter though, we can make an IRIS production do more. We can use an IRIS production to process data from our own database without any external trigger.

1
2 566
Article Yuri Marx · Aug 25, 2022 8m read

EHR (Electronic Health Record) systems are modeled in a proprietary format/structure and are not based on market models such as FHIR or HL7. Some of these systems can interoperate data in a proprietary format for FHIR and other market models, but others can not. InterSystems has two platforms that can interoperate proprietary formats for market ones: InterSystems HealthShare Connect and InterSystems IRIS for Health.

1
6 1254
Announcement Shane Nowack · Feb 14, 2023

Hello InterSystems HL7 Community,

InterSystems Certification is developing a certification exam for InterSystems HL7 interface specialists and, if you match the exam candidate description given below, we would like you to beta test the exam. The dates the exam will be available for beta testing are March 28 - April 30, 2023. Interested beta testers should sign up now by emailing certification@intersystems.com (see below for more details)

Note: The InterSystems HL7 Interface Specialist certification exam is version 2.

1
0 1127
Article Eduard Lebedyuk · Aug 7, 2020 5m read

In this article, I will show how you can easily containerize  .Net/Java Gateways.

For our example, we will develop an Integration with Apache Kafka.

And to interoperate with Java/.Net code we will use PEX .

 

Architecture

Our solution will run completely in docker and look like this:

 

 

Java Gateway

First of all, let's develop Java Operation to send messages into Kafka. The code can be written in your IDE of choice and it can look like this.

In short:

  • To develop new PEX Business Operation we need to implement  abstract com.intersystems.enslib.pex.
7
1 1477
Article Sanjib Pandey · Mar 3, 2025 5m read

Background:

This guideline provides an overview of how to design and implement a REST API interface for querying patient demographic data from an Electronic Patient Record (EPR) system using HealthConnect. The process involves sending a query request with the patient's identification number, retrieving the response from the EPR system, extracting the required patient demographic data from the HL7 message, and sending it as a JSON response to the supplier. The high-level process diagram is shown below (Screenshot 1).

5
2 356
Article Kurro Lopez · Apr 1, 2025 1m read

Hi all,

As part of the development an API to know what is the instance of IRIS is connected, I've found some methods to know information about the server that can help you.

Get the server name: $SYSTEM.INetInfo.LocalHostName()

Get the server IP: $SYSTEM.INetInfo.HostNameToAddr($SYSTEM.INetInfo.LocalHostName())

Get the instance name: $PIECE($SYSTEM,":",2)

So, I have created the following code as BS class:

Class St.Common.Api Extends (%CSP.REST, Ens.BusinessService)
{
{

XData UrlMap [ XMLNamespace = "http://www.intersystems.
2
0 371
Article Emil Polakiewicz · Dec 8, 2025 19m read

How to set up RAG for OpenAI agents using IRIS Vector DB in Python

In this article, I’ll walk you through an example of using InterSystems IRIS Vector DB to store embeddings and integrate them with an OpenAI agent.

To demonstrate this, we’ll create an OpenAI agent with knowledge of InterSystems technology. We’ll achieve this by storing embeddings of some InterSystems documentation in IRIS and then using IRIS vector search to retrieve relevant content—enabling a Retrieval-Augmented Generation (RAG) workflow.

Note: Section 1 details how process text into embeddings.

0
0 70
Article Muhammad Waseem · Nov 20, 2025 13m read

Hi Community,

In the first part of this series, we examined the fundamentals of Interoperability on Python (IoP), specifically how it enables us to construct such interoperability elements as business services, processes, and operations using pure Python.

Now, we are ready to take things a step further. Real-world integration scenarios extend beyond simple message handoffs.They involve scheduled polling, custom message structures, decision logic, filtering, and configuration handling.In this article, we will delve into these more advanced IoP capabilities and demonstrate how to create and run a more complex interoperability flow using only Python.

To make it practical, we will build a comprehensive example: The Reddit Post Analyzer Production. The concept is straightforward: continuously retrieving the latest submissions from a chosen subreddit, filtering them based on popularity, adding extra tags to them, and sending them off for storage or further analysis.

The ultimate goal here is a reliable, self-running data ingestion pipeline. All major parts (the Business Service, Business Process, and Business Operation) are implemented in Python, showcasing how to use IoP as a Python-first integration methodology.

2
1 241
Article Nikolay Solovyev · Jun 21, 2023 3m read

The Telegram Adapter for InterSystems IRIS serves as a bridge between the popular Telegram messaging platform and InterSystems IRIS, facilitating seamless communication and data exchange. By leveraging the capabilities of the Telegram API, the adapter allows developers to build robust chatbots, automate tasks, and integrate Telegram with InterSystems IRIS applications.

The most common scenarios where the Telegram Adapter can be used include:

  1. Real-Time System Notifications: Sending immediate notifications about specific events occurring in the system.
0
2 460
Article Eduard Lebedyuk · Aug 12, 2020 3m read

Productions often need to receive REST requests.

Here's how to do that.

1. Create proxy Service:

/// Empty BS we would use to send Produciton requests
Class production.ProxyService Extends Ens.BusinessService
{
}

2. Add it to production as RESTService (or any other name).

3. Write your rest broker (docs, more docs)

4. In your handler method create the message and call target BP/BO like this

Include Ensemble
Class test.REST Extends %CSP.REST
{

XData UrlMap [ XMLNamespace = "http://www.intersystems.
8
1 1167
Article Kate Lau · Dec 29, 2024 4m read

Git link: https://github.com/ecelg/InterSystems-IRIS-as-a-Spotify-REST-client

 

Recently, I come up an idea in my mind that how can I put my playlist on IRIS.🧐

At the same time, I was told to pay for my Spotify subscription💸💸... ooo.. how about to get some data from the Spotify API... so I started to do study about it.

 

Like most of the development, let's start from Documentation of  the API https://developer.spotify.com/documentation/web-api

In order to get the data, i am required to request an access token from for the token endpoint URL.🧐

curl -X POST "https://accounts.
2
2 323
Article Ashok Kumar T · Sep 8, 2025 19m read

FHIR Server

A FHIR Server is a software application that implements the FHIR (Fast Healthcare Interoperability Resources) standard, enabling healthcare systems to store, access, exchange, and manage healthcare data in a standardized manner.

Intersystems IRIS can store and retrieve the following FHIR resources:

  • Resource Repository – IRIS Native FHIR server can effortlessly store the FHIR bundles/resources directly in the FHIR repository.
  • FHIR Facade - the FHIR facade layer is a software architecture pattern used to expose a FHIR-compliant API on top of an existing one (often non-FHIR). It also streamlines the healthcare data system, including an electronic health record (EHR), legacy database, or HL7 v2 message store, without requiring the migration of all data into a FHIR-native system.

What is FHIR?

Fast Healthcare Interoperability Resources (FHIR) is a standardized framework created by HL7 International to facilitate the exchange of healthcare data in a flexible, developer-friendly, and modern way. It leverages contemporary web technologies to ensure seamless integration and communication across various healthcare systems.

0
3 395
Article Brendan Batchelder · Sep 20, 2016 4m read

Framing refers to the characters that mark the start and end of an HL7 message (or other types of framed messages).  Most HL7 services and operations have a Framing setting that allows the user to define this framing.  The most common choices are available as defaults, but with the AsciiMM/NN setting, components can be configured to recognize any framing characters.

The most common framing error is ErrEndBlock.  Other typical errors include a warning saying "Discarding received non-HL7 data", a warning saying "Returning unused unexpected n-char segment", and "Discarding leftover input ''".

0
2 2820
Question Joe Jones · Mar 13, 2023

Hi Community,

I am receiving a JSON file as input in ensemble and i need to convert the JSON message to HL7 message.

Can anyone share few points how to read a JSON file into Ensemble production by creating a Custom Business service?

I have created a custom business service as below but i am not aware which parameters i need to pass in  OnProcessInput method?

Method OnProcessInput(pInput As Ens.Request, Output pOutput As %RegisteredObject) As %Status

Do i need to Ens.Request or RegisteredObject or  Ens.StreamContainer?

 

Thanks,

Joe

14
0 1478
Article Oliver Wilms · Dec 18, 2024 4m read

Implements Idea DPI-I-456

Idea

What The Sample Does

This sample was cloned from iris-interoperability-template. I have reconfigured the interoperability Production with an Inbound HTTP Adapter which is used by a HTTP Business Service. The configuration details for the business service are specified in System Default Settings. I configured Call Interval setting to call HTTPServer once every hour. You can change both the URL and frequency in the service's settings. Screenshot

Originally the HTTP Service had two targets.

0
0 271
Question Kurro Lopez · Oct 30, 2019

Hello,

We need to create a versioning of an existing API, so we going to set a default version (so far) for current connections to version 1

My first attempt is:

XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]

{

<Routes>

    <Route Url="(?i)/check" Method="GET" Call="CheckApi"/>

    <Route Url="(?i)/getcustomer" Method="POST" Call="GetCustomerDefault"/>

    <Route Url="(?i)/revoke" Method="DELETE" Call="RevokeDefault"/>

    <Route Url="(?i)/:version/getcustomer" Method="POST" Call="GetCustomer"/>

    <Route Url="(?
5
0 551
Announcement Evgeny Shvarov · Dec 27, 2020

Good day, Developer Community!
 

As you know we have Company listings on Open Exchange. It lets publishing Open Exchange applications on behalf of companies so one can check which solutions in certain industries are being provided by companies.

Sometimes people are also looking for qualitative and proven implementation or consulting services on InterSystems products: IRIS, Caché, Ensemble, or HealthShare.

And recently we introduced a new option on Open Exchange to list the services your company provides related to InterSystems technology: implementation, consulting etc.

How to do that?

Open your company profile in the Services tab and create a service. Choose the type of service and give a description of what the service is about and why it is worth ordering it. Instructions.

Then publish the service by sending it for approval.

Screenshot 2020-09-21 at 16 24 36

0
0 249
Article David Loveluck · May 27, 2016 1m read

Java Business Services and Operations

In Ensemble 2016.3 ‘Java Business Hosts’ provides the means to create new Business Services and Business Operations using Java without need for any ObjectScript coding. There are two major reasons to use this capability:

  •  Add new protocols to Ensemble using available Java libraries.
  •  Allows Java developers to create custom business services and operations without needing to learn Caché ObjectScript..

At Global Summit there were two sessions and an experience lab covering Java Business Hosts that got a lot of attention and a very positive

0
0 552
Discussion Evgeny Shvarov · Sep 18, 2023

Hi Interoperability experts!

Recently noticed an interesting conceptual discussion in our Interoperability Discord channel to which I want to give more exposure.

All we know that typical InterSystems Interoperability production consists of the following chain:

Inbound adapter->Business Service->Business Process->Business Operation->Outbound adapter.

And Business Process (BO) here is always considered as a passive "listener" either on port/folder/rest API for an incoming data.

4
0 380