#Caché

30 Followers · 4.5K Posts

  

InterSystems Caché is a multi-model DBMS and application server. See more details here.

Documentation.

Announcement Laurel James (GJS) · May 23, 2024

George James Software is excited to announce that a new version of Deltanji source control is now available. 

Key updates in version 8 include: 
- UI refresh with a modern look and feel
- UX updates that provide a smoother and cleaner user experience
- Task Server II which is simpler to configure and provides more security granularity and control. 
Check out the release notes here.

 

Deltanji 8 is available now, so if you're a user looking to upgrade, please email support@georgejames.com.

If you're not a user but want to learn more about Deltanji, we'd love to give you a demo. Just email us a


3
1 309
Question Lee Butcher · Jul 17, 2024

Hi

Is there a way to generate an MD5 checksum of a file by performing a checksum against the file's parts? We potentially have to process large files and therefore cannot keep the entire file in memory. From what I understand checksum related logic is typically stateful, allowing file data to be passed through sequentially, however it appears cache script offers only stateless functions offering a simple method of generating a single checksum hash from a single string (or stream), correct me if I'm wrong?

2
0 216
Article Mihoko Iijima · Jul 11, 2024 2m read

InterSystems FAQ rubric

Use the ErrorList query of the SYS.ApplicationError class.

  • Note 1: Runs in the %SYS namespace.
  • Note 2: This is a non-stored utility, so we use the %ResultSet class rather than %SQL.Statement.

An example of command execution is as follows.

USER>set$namespace="%SYS"   //equal to zn "%SYS"%SYS>set rset=##class(%ResultSet).%New()

%SYS>set rset.ClassName="SYS.ApplicationError"%SYS>set rset.QueryName="ErrorList"// The first argument of the query is the namespace name, the second argument is the date (in MM/DD/YYYY format).%SYS>do rset.Execute("USER"
2
2 411
Question Lee Butcher · Jul 15, 2024

Hi

We have a use case whereby very large HL7 MDM messages, which contain many OBX segments, need to be processed by a custom business process. Part of the process is to iterate over each OBX segment and set a value in the same field for each segment.

Testing with a message that is ~500MB and contains over 8000 OBX segments I've encountered <STORE> errors, which surprisingly seems to be due to using SetValueAt. It appears to get through a few thousand segments before it falls over with the memory error, which I assume is because the SetValueAt method keeps in memory each preceding OBX segment

0
0 148
Article Daniel Aguilar · Jul 13, 2024 3m read

   

📜 Santa Tecla, verse 8: "Hover your mouse over the screen, and the sea of data will open a path before you!!"

Hello community, first of all, apologies if anyone was offended by the blasphemy 😔

Have you ever thought it would be interesting to have the source code separated from the database data? Perhaps you'd like to be able to back up your code without copying gigabytes of client data.

Below, I'll explain the steps to separate your sea formed by the source code and data into two different databases within a namespace.

For this example, I'll start with a new namespace that I'

0
0 412
InterSystems Official Bob Kuszewski · Jul 11, 2024

As of October 15, 2024, support for Caché & Ensemble on MacOS will be Deprecated.

Caché & Ensemble 2018.1.9 will continue to be supported, however there will be no further maintenance releases for MacOS. This means Caché & Ensemble 2018.1.9 will be the final version of these products on MacOS. 

As a reminder, maintenance releases for Caché and Ensemble on the other supported platforms will come to an end on March 31, 2027.  More details on that can be found in last year’s announcement.

0
0 267
Question Meenakshi Muthu · Jul 11, 2024

Could any one tell me, how the index  works in cache db, Consider for example, I have a table called "Employee" and the fields as "EMPID, EMPNAME, EMPAGE" and I am having index for EMPID as IDX_EMPID and trying to get the record using the following query as

SELECT * FROM EMPLOYEE WHERE EMPID="005"

and the table data be like

EMPID EMPNAME EMPAGE

001       ABC            20

002       AAA            21

003       ABB            23

004       BBB           20

005       BDF           24

006        EEE          22

Will SQL Engine directly hit the "005" record using ^EMPLOYEEI global, if so h

2
0 243
Question Martin Nielsen · Jul 4, 2024

Hi, I have a controller which handles accounts, and forwards to the relevant controller based on the path, example below:

XData UrlMap
{
<Routes>

<Map Prefix="/:accountId/anothercontroller" Forward="AnotherController"/>

</Routes>
}

Problem is that inside AnotherController, the accountId path parameter is lost, I assume that's because the map forward simply checks if there's a match then forwards.

AnotherController:

XData UrlMap
{
<Routes>

<Route Url="/:somethingId" Method="POST" Call="CreateSomething"/>

</Routes>
}
ClassMethod CreateSomething(somethingId)
{
}

The reas

2
0 174
Article Tomoko Furuzono · Jul 4, 2024 1m read

InterSystems FAQ rubric

$ZTIMESTAMP returns the date and time in UTC format, so to change it to the local time zone, use the following system method: 

$SYSTEM.Util.UTCtoLocalWithZTIMEZONE($ZTIMESTAMP)

The above output will be in the format ddddd,sssss.fff.

    ddddd: Same format as $HOROLOG dates
 sssss: An integer indicating the number of seconds elapsed since midnight on the current date
 fff: Variable number of digits indicating the fractional part of a second

* Similar to $HOROLOG, except that $HOROLOG does not include fractional seconds. 

SAMPLES>write$SYSTEM.Util.UTCtoLocalWithZTIME
1
0 250
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
9
0 230
Article Hiroshi Sato · Jun 27, 2024 1m read

InterSystems FAQ rubric

You can use the List query of the %SYS.Audit to output audit logs programmatically.

The sample code is as follows:

Set statement=##class(%SQL.Statement).%New()  
 Set status=statement.%PrepareClassQuery("%SYS.Audit","List")
 Set rs=statement.%Execute()  
 Set tab = $char(9)
 While rs.%Next() {    
   Write rs.%Get("TimeStamp")_tab_rs.%Get("Event")_tab_rs.%Get("Username"),!      
 }
0
0 279
Question Kurt Hofman · Oct 6, 2023

I've created a succesfull connection to Caché from SQL Server.

But when I run a SELECT on a table it gives an error on for example PrijsAkCatV.

Probably a datatype-error.

Does someone has a solution for this problem ?

Caché Table :

Property PrijsAkCatVm As Asci.Getal(CAPTION = "Aankoopprijs VM", HINT = "Bruto aankoopprijs in vreemde munt|De bruto aankoopprijs (catalogusprijs) in vreemde munt per eenheid van aankoop.#Prix d'achat brute en devise|Le prix d'achat brute en devise par unité d'achat.", SCALE = 4);
 

Class Asci.Getal Extends %Library.Numeric
{Parameter HINT;Parameter VIEW

4
0 475
Announcement Laurel James (GJS) · Jun 26, 2024

Migrate to VS Code this summer with our comprehensive Basics and Advanced Features training courses.

George James Software is offering migration strategies and training to support the adoption of VS Code with InterSystems IRIS, IRIS for Health, HealthShare, and Caché. We're in the unique position of having deep knowledge and understanding of both InterSystems platforms and VS Code, through our regular contributions to VS Code itself.
 

Studio to VS Code Migration - The Basics (2.5 hours)
An interactive training webinar for those who currently use Studio and wish to migrate to VS Code. Suitable

0
1 211
Question David.Satorres6134 · Jun 24, 2024

Hi everyone,

We have successfully configured the Patient Index and are now looking to bring it to upper environments. Our plan is to export the Linkage Definition and import it into higher environments to avoid any manual work. However, I am having trouble finding an export option in the Linkage Definition Designer and locating the globals that hold this setup.

I would greatly appreciate any tips or guidance on how to export/import the Patient Index configuration between environments.

Thank you in advance!

4
0 183
Article Tomoko Furuzono · Jun 13, 2024 4m read

InterSystems FAQ rubric

Data for InterSystems products (table row data, object instance data) is stored in global variables.
The data size of each global can be obtained by clicking the properties of the global you want to view from the Management Portal > System > Configuration > Local Database > Globals page, and then clicking the Calculate Size button on the Global Attributes page that appears.
To display the data sizes of globals in a namespace, you can call ^%GSIZE utility on the terminal.
The method of execution is as follows.

USER>do ^%GSIZE
 
Directory name: c:\intersystems\ensemble\mgr\u
2
1 768
Article Hiroshi Sato · Jun 20, 2024 2m read

InterSystems FAQ rubric

The procedure for uploading/downloading from an FTP server is as follows.

1. Upload the image file to the FTP server

 set tmpfile="c:\temp\test.jpg"
 set ftp=##class(%Net.FtpSession).%New() 
 // connect to FTP server
 do ftp.Connect("","<username>","<password>")
 // set transfer mode to BINARY
 do ftp.Binary()
 // Move to the directory to upload
 do ftp.SetDirectory("/temp/upload")
 // Prepare a stream of files to upload  
 set file=##class(%File).%New(tmpfile)
 do file.Open("UK\BIN\")
 // upload file
 // 1st argument: File name to create at upload destination
 // 2nd argument: F


0
1 334
Article Hiroshi Sato · Jun 6, 2024 1m read

InterSystems FAQ rubric

If you want to run an OS executable file, command, or a program created within an InterSystems product when the InterSystems product starts, write the processing in the SYSTEM^%ZSTART routine. (The %ZSTART routine is created in the %SYS namespace).

Before you write any code in SYSTEM^%ZSTART, make sure that it works properly under all conditions.

If the ^%ZSTART routine is written incorrectly, or if it is written correctly but the command does not return a response or an error occurs during processing, InterSystems products may not be able to start.

For more informa

1
0 182
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