4 Followers · 339 Posts

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

New
Article Sanjib Pandey · Feb 20 5m read

Project Overview:

The Clinical Staff Master Data Management (CSMDM) system is a full-stack healthcare integration application built on InterSystems IRIS for Health. It centralizes and standardizes clinical staff metadata into a single authoritative repository, exposed through RESTful CRUD APIs and reusable backend methods.

The platform eliminates fragmented lookup tables and hardcoded mappings that commonly cause errors in HL7 and FHIR integration workflows, ensuring data consistency and interface reliability.

Application to Other Domains:

0
0 16
Article Vachan C Rannore · Dec 28, 2025 1m read

SETassigns value to the variable at RUNTIME.

#DIM declare the variable and it's Data Type at COMPILE TIME.

SET #DIM
Makes the variables Dynamic. Improves Readability.
No Data Type Declaration. Enables IDE auto-completion.
Runtime Useful for Object references.
#DIM name As%StringSet name = "Micheal Scott"#DIM age As%NumericSet age = 36#DIM employer As App.Employer               ; compile timeSet employer = ##class(App.Employer).%New() ; runtime 

 

SETor #DIM? Your design, your rules.

18
4 279
Question Scott Roth · Oct 24, 2025

According to the Documentation  EnsLib.Workflow.TaskRequest has the following fields...

  • %Action
  • %Command
  • %FormFields
  • %FormTemplate
  • %FormValues
  • %Message
  • %Priority
  • %Subjext
  • %TaskHandler
  • %Title
  • %UserName

I want to be able to capture the Source, Session ID, and any other Identifiers outside of the Error so it will show up on the Task List.

I am struggling how to build a csp template for me to be able to capture additional fields to send to the Workflow Operation.

1
0 79
Question Nimisha Joseph · Dec 19, 2025

We have created a CSP application in the path /csp/ourapp. Due to some session handling issues, we created a new web application /csp/ourapp/hl7mapping that points to the sane namespace, and we now access the CSP pages using this new URL. This works fine in the local system.

After deploying the app to server, we are facing issues around compiling CSP pages.

We noticed that following compilation command works for CSP files located under the physical path /csp/ourapp, but it does not compile the CSP files placed under /CSP/ourapp/hl7mapping.

do $SYSTEM.CSP.LoadPageDir("/CSP/ourapp/","ck")

2
0 87
Article José Pereira · Dec 7, 2025 16m read

Project Overview / Introduction

Developing and testing REST APIs in InterSystems IRIS often requires a significant amount of boilerplate code. While ObjectScript provides powerful tools for building APIs, writing consistent and repeatable tests can be time‑consuming. This is where IrisOASTestGen comes in.

2
0 107
Article Roy Leonov · Mar 1, 2025 22m read

Introduction

In today's rapidly evolving threat landscape, organizations deploying mission-critical applications must implement robust security architectures that protect sensitive data while maintaining high availability and performance. This is especially crucial for enterprises utilizing advanced database management systems like InterSystems IRIS, which often powers applications handling highly sensitive healthcare, financial, or personal data.

4
1 372
Question PRAVIN T · Dec 4, 2025

I’m facing an issue with a CSP-based web application.
The default.csp page loads correctly on both servers. However, when I try to open or submit the login.csp page on one server, it shows the error:

"INVALID ACTION"

The exact same codebase is deployed on another IRIS server, and it works there without any issues.

Summary of the issue:

  • default.csp → Loads successfully
  • login.csp → Fails with “INVALID ACTION” only on one server
  • No code changes between the two servers
11
0 127
Question Scott Roth · Dec 1, 2025

Within Provider Data Management, I wanted a way to capture the Code Table mapping errors thrown by HSPD.MDM.FlowControl.Process into a Workflow Task for someone to work. However, because HSPD.MDM.FlowControl.Process can get overwritten during the upgrade process, I cloned it into another Business Process so we can use Workflow Tasks to troubleshoot mapping errors.

1
0 68
Article Parani.K · Mar 2, 2025 8m read

Parallel query hinting boosts certain query performances on multi-processor systems via parallel processing. The SQL optimizer determines when this is beneficial. On single-processor systems, this hint has no effect.

Parallel processing can be managed by:

  1.  Setting the auto parallel option system-wide.
    
  2. Using the %PARALLEL keyword in the FROM clause of specific queries.
    

%PARALLEL is ignored when it applied to:

4
5 349
Question Niklas Thilmont · Nov 17, 2021

Hey Intersystems Community!

I'm trying to get IRIS to serve static files, including security and redirect to login if no session is present.

This is the flow I am trying to accomplish:

  1. User Opens a page, <my-iris-instance>/my-app/index.html, index.html being a static file
  2. User is redirected to the default IRIS Login page since no session is present
  3. User logs in
  4. User gets redirected back to index.html
3
1 635
Question Yone Moreno Jiménez · Nov 10, 2025

Hello, thanks for your time reading this question.

We are receiving each day, alerts from one of our four Production nodes. It always has the same text:

[InterSystems IRIS SEVERE ERROR gchciris4.canariasalud:ENSEMBLE] [Utility.Event] [SYSTEM MONITOR] CSPGatewayLatency(127.0.0.1:443) Alert: CSPGatewayLatency = 5001.304, 5001.233, 5000.964 (Max value is 2000).

We have looked for it in the documentation here:

https://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KE…

We thought it was related to the following paragraph:

5
0 115
Article Kurro Lopez · Oct 23, 2025 1m read

Hi all,

This is a quick tip about how to use case insensitive URL in REST API.

If you have a class that extends from %CSP.REST and Ens.BusinessService, to create a REST API service, and you have defined your WebApplication in lowercase

XData UrlMap [ XMLNamespace = "http://www.intersystems.com/urlmap" ]
{
<Routes>
    <Route Url="/user" Method="POST" Call="User"/>
    <Route Url="/login" Method="POST" Call="Login"/>
</Routes>
}

Only accepts the url in lowercase, i.e. http://myserver/myproduction/user

If you have any uppercase character, the url doesn't work. http://MyServer/MyProduction/user

2
0 112
Question Mary George · Oct 8, 2025

Hi Team, 

Can I please check if anyone has built a simple web interface for maintaining custom SQL lookup class.   

We have a simple persistent class in HealthShare which is used for storing Pathology test codes. Test codes in this lookup class is used for message filtering and applying additional logic when processing pathology results/orders. 

We want to make this class available to external users from pathology (not the usual management portal users) to maintain so that they can add/edit/delete test codes as required. 

2
0 107
Question Ashok Kumar T · Oct 15, 2025

Hello Community,

When I compile the Sample.User class for the first time, and include an ObjectGenerator method intended to run certain logic during each compilation, it throws a <CLASS DOES NOT EXIST> error. However, recompiling the same class works as expected.

I understand this happens because the class hasn’t been fully compiled yet during the first pass. To overcome this issue, are there any specific callback methods available that can safely be used after the class is fully compiled?

2
0 91
Question Darima Budazhapova · Oct 2, 2025

Hi community,

A colleague gets ERROR #822: Access denied every time he tries to log in via Management portal. It is NOT the case of wrong credentials: I reset his password password to a temporary one so it would prompt him to create a new one upon first login. He did get the prompt, changed his password and his next attempt at logging in displayed the same error.

The audit log record displays this:
Error message: ERROR #862: User is restricted from running application /csp/sys/op, %Admin_Operate:U required -- cannot execute.
Web Application: /csp/sys/op
$I: |TCP|1972|1533396
$P: |TCP|1972|1533396

3
0 95
Question Ashok Kumar T · Sep 28, 2025

Hello Community

The InitialExpression keyword values does not to set default values for properties in classes that extend %CSP.Page, unlike in other class types such as %Persistent or %RegisteredObject, where it works as expected during object instantiation (typically via %New()).

  1. Is %CSP.Page instantiated using %New() under the hood, or does it use a different initialization mechanism?
  2. Are there specific limitations or behaviors in CSP pages that prevent InitialExpression from working as expected?

Thank you!

5
0 99
Article Patrick Dunn · Sep 15, 2020 2m read

In the WRC, we often see customers raise questions regarding a new Web Gateway setup where the Management Portal half-loads, but doesn’t show images. This article will explain why this error occurs, as well as how to fix it. This explanation is focused on the Web Gateway serving InterSystems IRIS instances, but the same explanation should apply to the CSP Gateway serving Caché instances as well.

The Problem:

You just installed the Web Gateway on a stand-alone Web Server. When you go to load the Management Portal, you find that it cannot display or load images, like so:

Why this happens:

6
0 969
Question Sébastien Demoustiez · Aug 22, 2025

Hello,

I have a main dispatcher (that extends%CSP.REST) that contains:
<Routes>
   <Map Prefix="/v([0-9]{1,2})/news"    Forward="API.Dispatch.news"/>
</Routes>

And I have the sub-dispatcher that contains:
<Routes>
   <Route Url="/:id"                        Method="GET"  Call="NewsGetItem"/>
</Routes>
If I try to access this route:
https://mydomain.com/mobile/api/v4/news/123
It doesn't work (404).

 

8
0 119
Question David Saunders · Aug 12, 2025

I am trying to use upload.csp as a template for choosing a CDV file to process. I am calling it from a zen page using this:
<button caption="Import Client Consultation Extract" 
       controlStyle="width:500px; height:100px; font-size:1.5em;"
         onclick="zenPage.importExtract();"/>

ClientMethod importExtract() [ Language = javascript ]
{
    // Open CSP popup to upload the CSV
    //alert('importExtract called.');
    zenPage.launchPopupWindow(zenLink('Upload.CSP'),'Upload Client Consultation extract',
                              'status,scrollbars,resizable,width=750,height=250');
}

8
0 165
Question David Saunders · Aug 8, 2025

I am writing a little app where I press a button on a Zen form. It calls a ZenMethod that uses zenPage.launchPopupWindow() to provide me a way to choose a file. I then click on an upload button that calls a csp cache language script file that runs on the server, that grabs the contents of the file and stuffs it into a global. I want it then close and return to the parent window to continue processing the contents of the file. I have tried placing the javascript code that closes the window and calls a function in the parent window in different places, but it is not closing the window or calling

1
0 99
Question Yone Moreno Jiménez · Aug 5, 2025

Hello, how are you?

First of all thanks for your time reading this question.

We are investigating how to validate the indexes of a global. We have read:

https://docs.intersystems.com/irisforhealth20251/csp/docbook/DocBook.UI…

And:

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

We want to validate the inxedes of the global titled "Ens.Util.LogD". We have executed on the ObjectScript terminal, on the desired namespace:

2
0 113
Article Harshitha · Aug 3, 2025 2m read

Working in healthcare IT as a young developer, especially on InterSystems TrakCare, you quickly realize one thing: it’s not just about HL7 messages or backend integrations. A hugepart of making TrakCare work smoothly for hospitals comes down to how it’s configured, customized, and supported on the application side.

That’s where people like me come in—techno-functional developers who understand both the tech and how it impacts actual hospital workflows.

We’re Not Just Techies (or Functional Consultants)

Our role sits right in the middle. We're the ones:

1
2 131
Article Guillaume Rongier · Jul 31, 2025 4m read

This article will introduce you to the concept of virtual environments in Python, which are essential for managing dependencies and isolating project from the OS.

What is a Virtual Environment?

A virtual environment is a folder that contains :

  • A specific version of Python
  • At start an empty site-packages directory

Virtual environments will help you to isolate your project from the OS Python installation and from other projects.

How to use it?

To use virtual environments, you can follow these steps:

3
2 205
Question André-Claude Gendron · Jul 31, 2025

Hi everyone,

I’m working with an existing InterSystems IRIS server that hosts several web applications and namespace-specific code and data. I’d like to reverse-engineer the current environment into a %Installer.Manifest file so I can store it in Git and manage its changes.

My goal is to:

  • Track the application setup and configuration in version control
  • Rebuild environments consistently (namespaces, CSP apps, security roles, etc.)
  • Possibly automate deployments later on
1
2 106
Article Guillaume Rongier · Jul 24, 2025 5m read

Modules what a topic! We don't have this notion in ObjectScript, but it's a fundamental concept in Python. Let's discover it together.

What is a Module?

I see modules as an intermediate layer between classes and packages. Let see it by example.

A bad example :

# MyClass.py
class MyClass:
    def my_method(self):
        print("Hello from MyClass!")

When you try to use this class in another script, you would do:

# class_usage.py
from MyClass import MyClass # weird, right?

my_instance = MyClass()
my_instance.my_method()

Why this is a bad example?

0
2 186
Question Ronaldo Nascimento · Jul 22, 2025

Working on wrapping an IRIS Cache ObjectScript method that runs for a few seconds. Trying to get UI updates to show BEFORE the method runs in an async/await function. But it seems to be running synchronously rather than asynchronously . So my question is does IRIS/ObjectScript CSP pages support futures with JavaScript or does it run all synchronously.

2
0 128