Hi, I am considering making my own swagger json generation based on my rest api implementing the %CSP.REST class.
Before I begin, I was wondering if there is already some kind of support, perhaps in IRIS already, or some tools that might help me.
Application Programming Interface (API) is a set of subroutine definitions, protocols, and tools for building application software. In general terms, it is a set of clearly defined methods of communication between various software components.
Hi, I am considering making my own swagger json generation based on my rest api implementing the %CSP.REST class.
Before I begin, I was wondering if there is already some kind of support, perhaps in IRIS already, or some tools that might help me.
The invention and popularization of Large Language Models (such as OpenAI's GPT-4) has launched a wave of innovative solutions that can leverage large volumes of unstructured data that was impractical or even impossible to process manually until recently. Such applications may include data retrieval (see Don Woodlock's ML301 course for a great intro to Retrieval Augmented Generation), sentiment analysis, and even fully-autonomous AI agents, just to name a few!
I have been using embedded python for more than 2 years now on a daily basis. May be it's time to share some feedback about this journey.
Why write this feedback? Because, I guess, I'm like most of the people here, an ObjectScript developer, and I think that the community would benefit from this feedback and could better understand the pros & cons of chosing embedded python for developing stuff in IRIS. And also avoid some pitfalls.

We recently moved from using the Private Web Server, to using an Apache/Web Gateway setup and moved towards using the built in LDAP functionality within IRIS. Since then, we have 1 user that uses VSCode (/api/atelier) heavily that continues to have issues signing into IRIS through VS Code and the /api/atelier extension.
I am trying to troubleshoot two issues..

This is a template for an Django application that can be deployed in IRIS as an native Web Application.
git clone
cd iris-django-template
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
docker-compose up
The base URL is http://localhost:53795/django/.
/iris - Returns a JSON object with the top 10 classes present in the IRISAPP namespace./interop - A ping endpoint to test the interoperability framework of IRIS.Up until recently, I have been toying around with REST/FHIR capabilities but only internally. Now I have a request to make REST API calls outside of our Network.
I am using an RSA 4096 key, because Microsoft Active Directory Services which generates the signed certificate could not handle the Elliptical Key (ECC) when I put the request in.
In this article we are going to see how we can use the WhatsApp instant messaging service from InterSystems IRIS to send messages to different recipients. To do this we must create and configure an account in Meta and configure a Business Operation to send the messages we want.
Let's look at each of these steps in more detail.
This is possibly the most complicated point of the entire configuration, since we will have to configure a series of accounts until we can have the messaging functionality.
Here you can read the official Meta documentation.
I have an API that does not have all the data. Like it is truncated. Magic number of characters seems to be 163,280
I do an <assign>
context.RawBundle=##class(%DynamicObject).%FromJSON(context.FHIRResponse.Body)
The error does not happen when the response is < 163,280 chars. And when < 163,280 chars, it is a complete FHIR Bundle. Have anyone experienced this? If so, what is the resolution?
.png)
Have written several worthless Conky's in my day, and this one is no exception, but it was fun.
I created a Dotnet api to connect with IRIS database to do some task.
"InterSystems.Data.IRISClient.dll" (NativeAPI) is used in dotnet api to connect IRIS.
I used following code in dotnet to open and close the IRIS connection.
Open Connection
---------------------------
IRISConnection iRISConnect = new IRISConnection();
IRISCommand command = new IRISCommand();
iRISConnect.ConnectionString = "Server=xxxx.com; Port=1972; Namespace=aaa; Password=yyyy; User ID=xxxxxx;";
IRIS NativeAPI = IRIS.CreateIRIS(iRISConnect);
iRISConnect.Open();
Connection Close
--------------------------
command.

Continuing with the series of articles on voice file management, we are going to see how we can convert text into audio and receive the file with the chosen voice.
We will also explore how a service from OpenAI can help us analyze a text and determine the mood expressed in it.
Let's analyze how you can create your own voice file and how it can “read” your feelings.
The introduction of InterSystems' "Vector Search" marks a paradigm shift in data processing. This cutting-edge technology employs an embedding model to transform unstructured data, such as text, into structured vectors, resulting in significantly enhanced search capabilities. Inspired by this breakthrough, we've developed a specialized search engine tailored to companies.
We harness generative artificial intelligence to generate comprehensive summaries of these companies, delivering users a powerful and informative tool.
Good Afternoon,
I'm working on a API documentation that wil be interactive, it's based on a BS class on Ensemble.
The objective on making the documentation is simplify the undestanding of the operation for those who are not acquainted with the Ensemble environment.
In our previous article, we explored how to send emails through Microsoft 365 using the Graph API. Since then, an anonymous client reached out to me about setting up some other methods of notifications through that API. He was particularly interested in Outlook’s tasks and calendar events.
If you still have your client ID, client secret, and application ID from the last exercise, you may continue utilizing them. We will reuse the globals we stored from before with the GetToken method. Most of the setup in Microsoft Entra will not need to be repeated.
A few weeks ago I posted an announcement about a JavaScript-based interface for our mg_web WebServer interfacing addon module. mg_web isn't just restricted to use by JavaScript developers though. Many readers will be ObjectScript developers who are more used to using CSP as their web gateway. Some may even have much older legacy WebLink-based applications (and be wondering how to support them given that IRIS does not support WebLink).
This article aims to provide some more information on mg_web and to explain why it's worth a look for ObjectScript developers.
Hi community,
I'm calling to a API that it is retrieving the content of a file as Content of response. I'm catching the binary but I need to convert this Stream to a Base64 string.
I'm trying to convert a %Stream.GlobaBinary to a Base64 string using the following code, but it doesn't work.
do stream1.Rewind()
set response = ""
while 'stream1.AtEnd {
set temp=stream.Read(4000)
set temp=$systemEncryption.Hot on the heels of our announcement last week about our ultra-high-performance mg-dbx-napi JavaScript interface for IRIS, we are now pleased to announce a significant new technology - mg_web - which not only represents a new paradigm for JavaScript Web Frameworks, but also delivers significantly higher performance than even the fastest of the established Node.js Web Frameworks, whilst leveraging all the benefits of the big-three industry-standard Web Servers.
Hi all,
For a requirement of the customer, we have a BS Rest api with a lot of methods, we need to get the IP of the caller, the method and what is the time that the API has taken to process.
I've found the event onPreDispatch where I can take the IP, ClassMethod, etc.
Hi all,
As you know, it is very complicated to debug a Business Service Rest API because the object is created when the applications receive a request, so we cannot have the JobId that we can use to debug.
https://docs.intersystems.com/iris20211/csp/docbook/DocBook.UI.Page.cls…
So, I'm trying to get the JobId when the class is being created, write a trace in OnInit() method and write the JobId in a log info
Method OnInit() As %Status
{
$$$LOGINFO("JobId: "_$JOB)
hang 20 break
Quit Hi all,
We have a class response inherited from %JSON.Adaptor with the following properties, also dependent classes:
Hi community.
I have an API that is deployed in my production (business service) and it calls to a business process to retrieve the information that is requested.
The problem that I have is that the calls are queued and it's creating a bottleneck
.png)
The business process is taking more time than needed.
Is possible to configure the BP to process parallely the requests?
I'm thinking to increase the pool parameter, but I'm not sure if it's a good idea.
Best regards
Hello,
How can I send a request via a SOCKS5 proxy in IRIS, using, for example, EnsLib.REST.Operation?
I need to access APIs inside my corporate network, to which I don't have direct access from my home office. I've set up a SOCKS5 proxy via SSH on my host machine like this:
ssh -D 9999 server.corporate.com
I can then make requests with curl to the APIs I need:
curl -x socks5h://localhost:9999 https://api.corporate.com/api/some/endpoint
And I receive a response. Simple!
Also, inside the containerized IRIS, I can execute the request:
curl -x socks5h://host.docker.internal:9999 https://api.So far, we have covered how to use ObjectScript to manage users, roles, resources, and applications. There are a few other classes in this package that work similarly to the ones mentioned above. However, these four classes are the ones everyone will have to use to manage their application security. Suppose you wanted to create your own Security management portal for this package. There would be some specific issues to think about for an API. Since the classes use similar methods, we can create fewer API endpoints using indirection.
We are in the process of installing a FHIR server on our InterSystems interface engine and have encountered a few questions. Your expertise and insights would be greatly appreciated:
Hey Developers,
Watch this video to learn how UC Davis Health uses InterSystems API Manager to satisfy business-partner demand for access to both custom and FHIR APIs:
⏯ How UC Davis Health Uses InterSystems API Manager @ Global Summit 2023
Does Using the %REST.API Class work with Swagger OpenAPI version 3? I got an error when I tried it on IRIS 2022.2
ERROR #8738: Correct OpenAPI 2.0 version was not specified: . <$.swagger>
Hello,
First of all thanks for your help, time, and answers.
We would like to know what are we doing wrong and how could we improve it and fix it.
We need to convert the Api Monitor Metrics which are a String with this format:
iris_cache_efficiency 13449.122
iris_cpu_pct{id="CSPDMN"} 0
iris_cpu_pct{id="ECPWorker"} 0
[...]
iris_wdwij_time 11
iris_wd_write_time 8
iris_wij_writes_per_sec 0
To JSON.
We would expect them to look like a normal JSON as follows:
{
"iris_cache_efficiency": "13449.122",
"iris_cpu_pct{id='CSPDMN'}": "0",
In our previous post, we discussed the motivation for developing a chatbot agent with access to FHIR resources. In this post, we will dive into the high-level design aspects of integrating a Streamlit-based chat interface with a Java SpringBoot backend, and enabling a LangChain agent with access to FHIR (Fast Healthcare Interoperability Resources) via APIs.
Hello,
First of all thanks for your time, thoughts, teaching and help:
We wonder how could we get the metrics from http://[Ip]:[Port]/api/monitor/metrics and use them in Kibana to chart statistics.
We would like to ask you how do you use the api monitor metrics, and as a second question, how would you suggest to utilize them in a third party software as Kibana to chart them.
We have thought to do the following:
1. Retrieve Metrics from Intersystems HealthShare API: Use a tool or script to make requests to the Intersystems HealthShare REST API and obtain the list of metrics.
Based on the successful solution for my 2nd contribution to the Contest
I used an adapted version for this package. And have some findings I'd like to share.
Multiple communication steps over CPIPE may take time.
You won't recognize it on a fast machine. But a slower box with
Windows + Docker Desktop + your browser (and more) is neither
"Speedy Gonzales" nor a "Road Runner". 🙂
First observation you launch your OS command and see NO result
On the console, you just sit there and expect a reply.
Establishing the Connection to IRIS is a typical case.
Jour redirected Output is just empty.