4 Followers · 342 Posts

Caché Server Pages (CSP) is both an architecture and toolset used to build an interactive web applications with the InterSystems Data Platform.

Question Alexander Rischke · Nov 22, 2024

Good morning dear community,

This is like my first post in this community. Let's see how this turns out.
I have a question about the Intersystems Kubernetes Operator and the deployment of the webgateways.
I am responsible for the hosting and deployment of the apps. For the future we are planning to host our application in a kubernetes cluster. I am using the IKO for this.
I am using webgateways, for external access as separate pods. And sidecar containers for internal access, like the management portal.

My current Problem is the configuration of the webgateways.

0
0 123
Question Joost Platenburg · Nov 13, 2024

I'm trying to rewrite a legacy portal created with all .csp files into a portal written in .cls files. The problem I have is that the old cap pages use "csp:include page='page.csp'> tags. I'm trying to use the Include method  that is in the %CSP.Page master page. It doesn't seem to insert the required file. Any suggestions?
 

<table width="100%">
<tr>
<script language="Cache" runat="server">
do ..Include("pubsub/portal/include/headLogoDXC.csp")
#; <!--csp:include page="/pubsub/portal/include/headLogoDXC.csp"-->
</script>
</tr>
</table>
1
0 126
Question Yone Moreno · Nov 4, 2024

Hello,
Please, we would need your help 🙂:

In a development environment, we have added quite a few presentation contexts to the DICOM configurations (the associations). We would need to find a way to export them from this environment to make it easier for us to import them in PRO (and avoid doing it by hand one by one).

We know that there is this method, the ImportAssociation(), that given a file, and the names of the local AET and the remote AET, creates it automatically:
    https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.U…

2
0 161
Article Guillaume Rongier · Jul 8, 2024 6m read

fastapi_logo

Description

This is a template for a FastApi application that can be deployed in IRIS as an native Web Application.

Installation

  1. Clone the repository
  2. Create a virtual environment
  3. Install the requirements
  4. Run the docker-compose file
git clone
cd iris-fastapi-template
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
docker-compose up

Usage

The base URL is http://localhost:53795/fastapi/.

Endpoints

  • /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.
  • /posts - A
3
0 590
Question Yone Moreno · Oct 18, 2024

Hello,

First of all: thanks for your help, and thank you for your time.

Thanks for your time.

We have the following situation:

We are in a BPL, and we have defined 4 <call> asynchronous as follows:

First one name: "Enviar a Proceso NEGRIN"

The second one, named as: "Enviar a Proceso HUNSC"

The third one, titled: "Enviar a Proceso CHUIMI 02"

And the fourth and last one names as: "Enviar a Proceso Fuertev"

Inmediately after the 4 calls, we have a <sync> instruction which should wait for all of them to finish.

It has in the calls text area the name of the four ones which it should wait for: "Enviar a

9
0 240
Question Chris Lambert · Oct 17, 2024

Hello,

I'm trying to carry a custom error from one business process to another.

BPL:LookupClass fails it's lookup and a custom error of "Lookup XYZ" is generated.

The class quits with that error, but upon quitting, the custom error gets wrapped in an Ensemble System error: 

ERROR <Ens>ErrBPTerminated: Terminating BP LookupClass # due to error: Lookup XYZ

This means, when I use the %LastError property to get the error message, it's not got the value I want to use. In this case, "Lookup XYZ". It instead has "Terminating BP LookupClass # due to error: Lookup XYZ"

Is there a way to prevent the

0
0 151
Question Martin Nielsen · Aug 21, 2024

We have a CSP pages script, which gets and sets a cookie for email tracking purposes, we had problems with cookies not being passed to this script when the URL was opened from an email client due to being cross-site, so I set Session Cookie Scope & User Cookie Scope to None instead of Strict.

This solved the issue with cookies not being passed, however the script entirely does not work anymore due to the error:

"Invalid CSP response cookie. SameSite cannot be set to None without Secure. : CSP Error"

Which doesn't make sense to me since the connection is indeed secure, I also have error logs from

3
0 288
Article Guillaume Rongier · Jul 8, 2024 8m read

django_logo

Description

This is a template for an Django application that can be deployed in IRIS as an native Web Application.

Installation

  1. Clone the repository
  2. Create a virtual environment
  3. Install the requirements
  4. Run the docker-compose file
git clone
cd iris-django-template
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
docker-compose up

Usage

The base URL is http://localhost:53795/django/.

Endpoints

  • /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.
  • /api/posts -
1
0 387
Question Yone Moreno · Jul 4, 2024

Hello,

First of all thanks for your time reading this question, and thank you for your help.

🎯 We would need to create an Ensemble HealthShare Operation to read files from a FTP / SFTP server.

We have coded:

Class Operaciones.FTP.ConsultaPDFv01r001 Extends Ens.BusinessOperation [ ProcedureBlock ]
{

Parameter ADAPTER = "EnsLib.FTP.InboundAdapter";

Method ConsultarDocumentoPDF(pRequest As Mensajes.Request.ConsultaPDFRequestv01r00, Output pResponse As Mensajes.Response.RecuperarDocumentoPDFv01r00) As%Library.Status
{
	set ftp = ##class(%Net.FtpSession).%New()
	
	set isConnected =
5
0 240
Question Aman · Jul 2, 2024

Hello Community,

I'm a beginner and currently working on a project to convert CCDA files to FHIR using InterSystems IRIS. I have developed a web form to upload CCDA files, and I'm attempting to convert the uploaded CCDA files to FHIR. However, I am encountering an issue where the conversion process results in an empty entry.
Here's the Output it displays on HTML page:

Size of CCDA Stream: 74152
vR4
{"resourceType":"Bundle","type":"transaction","entry":[]}

Here is my code: CCDtoFHIR.csp

<!DOCTYPE html><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=
9
0 231
Question Matheus Augusto · Jun 13, 2024

Is there any way to include a CSP page within a CLS?
Example: #Include file.csp 

Context: I work with a legacy that most screens are built using only CLS. I'm trying to change this by separating the frontend layers to be built only with CSP and backend layers using CLS. I improvised a method that injects an iframe to render the CSP in CLS through that iframe, but I'm still not happy. I need to know if there is any way to include this CSP using some specific resource for this.

15
0 247
Question Yone Moreno · Nov 22, 2023

Hello,

First of all thanks for your help.

We have the following scenario: some responses include special characters as ">" and "<" which are being put inside a property defined as:

Property PACPROBLEMAS As %String(MAXLEN = "", XMLNAME = "PAC_PROBLEMAS");

So then, when we observe the LOG SOAP it shows that the Target System replies to the ESB as follows:

➡️ <PAC_PROBLEMAS>46807#278.01#OBESIDAD INFANTIL GRAVE     ( Z-SCORE IMC &gt;2,70 ) #19/09/2019##N#</PAC_PROBLEMAS>

However when we observe the Visual Trace, the message being replied from the Operation to the Process has a CDATA section as you

5
0 934
Question Pascal Breugelmans · Jun 3, 2024

After upgrading we had 2 major problems with the new version:

- Resending messages adds blank lines.
Because we have many HL7 processes, we regulary have to resend messages if there is an outage of a server we connect with.

- IIS recycling causes webgateway connection problems, after change from PWS to IIS.
At unexpected times a connection can no longer be made.
The strange thing is that it does not occur with every recycle of the application pool.
Setting the password again in csp.ini usually works, but not always, which is of course a major problem.
I was wondering if there is a server component

2
0 215
Question Bransen Smith · Apr 23, 2024

I am attempting to configure an inbound service that utilizes the EnsLib.SOAP.GenericService class. This service receives HL7-v3 content wrapped in SOAP requests. Despite reading the documentation on configuring SOAP services, I am still confused.

In my current configuration item "Fr_Centrak_RTLS", I have ‘Enable Standard Requests’ checked, ‘Pool Size’ set to 0, and the port is unspecified.

I have also configured a web application with the following details:

My challenge is determining the correct URL address for sending SOAP traffic to this service.

7
0 505
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 399
Question Colin Gadumer · Apr 2, 2024

I'm currently fighting with SoapUI to get the HS WSDLs imported.

My first issue is, the IRISUsername and IRISPassword parameters don't seem to work.

i've tried the following url:

https://ifwap0661.ad.klinik.xxxyyy.de/ucrdev/csp/healthshare/hsreposito…

result:
Error loading: org.apache.xmlbeans.XmlException: org.apache.xmlbeans.XmlException: error: The entity name must immediately follow the '&' in the entity reference.   

not entirely sure what is happening here.

if i enter the URL

1
0 219
Article Hiroshi Sato · Apr 4, 2024 1m read

InterSystems FAQ rubric

The Web/CSP Gateway management page is typically configured so that it cannot be accessed from client machines.

To access from any client, do the following:

  1. Launch a browser from a system with access to the Web/CSP Gateway management page and access the Management Portal.
  2. Under Management Portal > System Administration > Configuration > click CSP Gateway Management.
  3. Click Default Parameters that appear in the left pane of the page that appears.
  4. Enter *.*.*.* in the system management machine and press the Save Settings button.

However, from a security perspective,

0
0 318
Question Yone Moreno · Feb 1, 2024

Hello,

First of all thanks for your time, and thanks for your help.

We have the following doubt: how HTTP status is being replied from a SOAP Service to the Outbund System?

Where in HealtShare 2020's classes is being replied an HTTP/200 OK or an HTTP/500 or any SOAP HTTP status code?

We ask this because some outbound systems do need to have an HTTP 200 to being able to process our SOAP responses.

We have been examining the following classes:

EnsLib.SOAP.Service

%SOAP.WebService

%SOAP.WebBase

We have also read:

https://docs.intersystems.com/irisforhealthlatest/csp/documatic/%25CSP…

2
0 386
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 296
Article Yuri Marx · Jan 29, 2024 12m read

The %CSP.Login class is the utility class provided by InterSystems IRIS to do custom login pages.If you want to control your IRIS application authentication UI, you must extend %CSP.Login and override some methods according to your needs.This article is going to detail those methods and what you can do with them.In addition to that, you will get an explanation of the delegated authentication mechanism provided by ZAUTHENTICATE.mac routine.

2
4 899
Question Yone Moreno · Jan 22, 2024

Good morning,

First of all thanks for reading this question.

We have been asked by a client to check if our Soap Service has charset / encoding "UTF-8".

We have been investigating the class "EnsLib.SOAP.InboundAdapter".

We only observe one reference to the charset as "Set tCT=$S(tCST:"binary/CST; charset=UTF-8"

Inside the method: WriteResp

We have read:

https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…

https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cl…

https://community.intersystems.com/smartsearch?search=SOAP+web+servi

2
0 251
Question Kevin B Lavallee · Sep 30, 2022

Hello,

I am trying to use the %ToJSON method on my dynamic object, calling it with a "DO" and not passing in outstrm parameter.

We are trying to avoid MAXSTRING errors that we get with some of our abnormally large messages.  In order to do this, I am trying to update my code to not call the socket's "Write" method after converting the dynamic object to a JSON string using the %ToString method's output.  Per the documentation on the %ToJSON method:
    If outstrm is not specified and the method is called via DO, the JSON string is written to the current output device

The previous code (extending

10
0 449
Discussion Stefan Cronje · Dec 15, 2023

Hi all,

The last time I used CSP was back in 2008, so I am very rusty on it.
This question might have been asked many times, and the answer probably is that it is a matter of preference.

Are there scenarios to which CSP pages is easier/better to use than classes extending from %CSP.Page?
I want to build a little thing and don't want to start at the wrong end.
Doing an API-based, heavy client-side framework is not a requirement, and I would prefer not to do it that way.

Some of the criteria

  • Users need to do a login.
  • RBAC per page using the instance's Users, Roles and Resources
  • Call some
4
0 388
Question Mark Scicluna · Jan 3, 2024

I wish to retrieve data from a cache table and then chart the results using javascript/chart.js.  I have had numerous iterations of the code attempting to do this (none of which worked) and my latest iteration is shown below.  

<html>
<head>
   <title>Cache Server Page</title>


   <!-- Include the Chart.js library -->
   <script src="chart.umd.min.js"></script>
   
<csp:SQLQUERY NAME='resultSet' P1='A'>
select Value, StatsDate from Stats 
</csp:SQLQUERY>


<script LANGUAGE="JavaScript">
// Initialize arrays to store data
var xValues [];
var yValues [];
</script>

<csp:WHILE CONDITION="resultSet.Next()">    

8
0 399
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