6 Followers · 332 Posts

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.

Learn more.

Question Michael Wood · Jun 6, 2024

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?

2
0 241
Question Harikumar V · May 19, 2024

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.Dispose();
iRISConnect

1
0 216
Article Kurro Lopez · May 21, 2024 9m read

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.

0
2 484
Article Lucas Fernandes · May 16, 2024 2m read

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.

Companies Search is a API REST, harnesses InterSystems Vector Search to

1
1 142
Question Victor Ferreira · Aug 6, 2019

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.

My problem is, when using Postman to test a operation the indentation appears as such:

{
    "authKey": "<string>",
    "authKeyType": "<string>",
    "birthDate": "<string>",
    "name": "<string>",
    "nameMother": "<string>",
    "zipCode": "<string>",
    "phone": "<string>",
    "token": "<string>",
    "senhaOrigem": "<string>",

5
0 520
Article David Hockenbroch · May 9, 2024 9m read

 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.

0
1 354
Article Rob Tweed · Apr 30, 2024 3m read

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.

The first thing to understand is

0
2 397
Question Kurro Lopez · Apr 9, 2024

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=$system.Encryption.Base64Encode(temp)
    set response = response_temp
}

The content is not correctly converted to Base64

Also, I've tried to convert it as dynamic JSon and get the stream as base64

do
6
0 680
Announcement Rob Tweed · Apr 5, 2024

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.

Designed with the use of mg-dbx-napi in mind, it's allows straightforward creation of robust, high-performance server-side JavaScript

1
3 362
Question Kurro Lopez · Mar 15, 2024

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.. I'm using a global variable to save this information.

ClassMethod OnPreDispatch(pUrl As%String, pMethod As%String, ByRef pContinue As%Boolean) As%Status
{
	set^CallApi($CLASSNAME(),$JOB,"url") = pUrl
	set^CallApi($CLASSNAME(),$JOB,"method") = pMethod
	set^CallApi($CLASSNAME(),$JOB,"Start") = $HOROLOGset^CallApi($C
5
0 294
Question Kurro Lopez · Feb 12, 2024

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)
	hang20breakQuit..OnInit()
}

Unfortunately, it seems to ignore this method because it doesn't show any traces

3
0 294
Question Kurro Lopez · Feb 8, 2024

Hi all,

We have a class response inherited from %JSON.Adaptor with the following properties, also dependent classes:

 

Kurro.app.Msg.Search.Response

 
3
0 230
Question Kurro Lopez · Feb 1, 2024

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 

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 

4
0 286
Question Kari Vatjus-Anttila · Jan 25, 2024

Hello,

How can I send a request via a SOCKS5 proxy in IRIS, using, for example, EnsLib.REST.Operation?

Background

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
2
0 358
Question Ali Chaib · Jan 15, 2024

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:

  1. Automatic Handling of Requests and Responses:
    • Is installing a FHIR server sufficient to handle requests (POST, GET, PUT) automatically without manual intervention? Can we expect automatic creation and updating of resources based on incoming requests?
  2. Storage of FHIR Resources:
    • Where are FHIR resources typically stored?
2
0 185
Question Yone Moreno · Nov 28, 2023

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",

[...]
"iris_wij_writes_per_sec": 0
}

We have currently developed a REST Operation

4
1 253
Article Zacchaeus Chok · Nov 28, 2023 3m read

Overview

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.


1
0 388
Question Yone Moreno · Nov 24, 2023

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.

0
1 211
Article Robert Cemper · Nov 19, 2023 1m read

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.  

This happens

1
0 259
Question Cyril Grosjean · Nov 15, 2023

Hello,

In response to the infrastructure needs of our company's service, I've created a small API that sends SNMP queries to InterSystems to visualize relevant data for retrieval when the infrastructure implements monitoring.

However, I'm experiencing a timeout issue when attempting to collect information using an SNMP walk. Here is the code for my API's SNMP service:

import snmp from"net-snmp";

const options = {
    port: 161,
    retries: 4,
    timeout: 3000,
    transport: "udp4", // Uniquement udp4 et udp6 possible
    trapPort: 162
};

const oids = [ "1.3.6.1.4.1.16563.4.1.15.1.
1
0 407
Article Robert Cemper · Nov 19, 2023 2m read

There are situations when your only access to a server is using a web browser,
and there is just no chance of a Terminal or Console access.
The Online Demo Server is such a case.

So you have WebTerminal. That's fine for ObjectScript and Embedded Python.

But my demo is straight Java. And is interactive.
$ZF(-100...) is some aproach. But it's rater batch-oriented and not interactive.
@Enrico Parisi  presented a nice extension to WebTerminal recently.
It's close to my own packageWebCommand that I presented a year ago.

They all act in the same way. It is always a single-shot approach:
Launch a command to

0
0 234
Article Robert Cemper · Nov 10, 2023 2m read

In my previous articles, I described my Command Line Extension to NativeAPI.
Of course, this is also available for any other NativeAPI package.
So I created this example as a demo for the actual Java Contest.
<--break->
The package contains also an IRIS server in Docker for the demo
It is evident that it also works with any remote IRIS server.
You just have to provide it with my NativeAPI CommandLine Extension.

I think this demo is easy to follow and shows the essential features.

  • First, you install the package and start the container
  • then you start the demo
    docker-compose exec iris java rcc
  • Next, you
2
0 322
Article Daniel Aguilar · Nov 8, 2023 9m read

   

Hello, community!

After creating the app IrisApiTester, I saw that it could have more potential, and with some adjustments, it could become a powerful collaborative tool.

I asked myself a few questions::

  • Could the API collections be shared with the entire team?
  • Could I use it to perform unit tests?
  • Is it beneficial for integration tests??
  • What will happen if I add a CI/CD continuous integration layer??

After considering possible answers, I decided to give it a try.

0
4 556
Question Tom Cross · Oct 19, 2023

Hi There, 

I am having issues trying to obtain a JDBC driver which is backwards compatible with java 6 for a solution which will call my IRIS instance, I have already logged a WRC ticket which is looking unlikely that there will be any development to create a driver for such legacy tech. 

The Java 6 app is end of life, however won't be replaced until after my project goes live, hence why I ask the question. 

I am also investigating the use of an adaptor to bridge between Java 6 and IRIS 2022.1 but was wondering if anyone out in the community has come across an issue like this before and whether

1
0 307
Article Claudio Devecchi · Nov 26, 2020 16m read

Introduction

We are in the age of the multiplatform economy and APIs are the "glue" in this digital scenario. Since they are so important, they are seen by developers as a service or product to be consumed. Therefore, usage experience is a crucial factor for its success.

In order to improve this experience, specification standards such as the OpenAPI Specification (OAS) are increasingly being adopted in the development of RESTFul APIs.

What is IRIS ApiPub?

IRIS ApiPub is an Open Source project whose main goal is to automatically publishRESTful APIs created with Intersystems IRIS technology, in

4
4 1408