#Caché

30 Followers · 4.5K Posts

  

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

Documentation.

Article Laurel James (GJS) · Jul 25, 2024 4m read

An effective source control solution allows organizations to manage complex codebases, facilitate seamless collaboration within development teams, and streamline deployment processes.

Sonic Healthcare, a leading provider of pathology, radiology, general practice, and corporate medical services, has significantly enhanced visibility and control over its complex environment by implementing Deltanji source control. The tight integration Deltanji provides with InterSystems IRIS and IRIS for Health has been central in achieving these improvements.

0
0 278
Article John Murray · Jul 24, 2024 2m read

I encountered this quirk when investigating an unrelated issue affecting how Studio projects are handled in VS Code.

When you add the top level of the webapp to a %Studio.Project this inserts a %Studio.ProjectItem with a .DIR suffix. For example, if Studio or VS Code is connected to the USER namespace and you add the /csp/user webapp to a project the new ProjectItem name is "csp/user.DIR".

When you export this project to XML from the project's context menu in Studio, or by calling the %Studio.Project.

2
0 238
Question Anna Golitsyna · Jul 24, 2024

As I was trying to create a routine search query via RoutineList, I discovered that documentation both for Cache and Iris offers only ABC* and ABC? syntax for including routine names and, unlike %RO, does not offer name ranges. Is that indeed so?

After some system files reading, I discovered that you can EXCLUDE certain routines with ', by using the 'ABC or 'ABC* syntax. That is not documented but it should be. Any other non-documented RoutineList syntax capabilities? 

Example:

list="ABC*,'ABCD*,XYZ"
;Iterate through routine list
rs=##class(%ResultSet).%New("%Routine:RoutineList")
x=rs.

1
0 172
Article Katherine Reid · Apr 24, 2019 5m read

The %Net.SSH.Session class lets you connect to servers using SSH. It's most commonly used with SFTP, especially in the FTP inbound and outbound adaptors.

In this article, I'm going to give a quick example of how to connect to an SSH server using the class, describe your options for authenticating, and how to debug when things go wrong.

Here's an example of making the connection:

Set SSH = ##class(%Net.SSH.Session).%New()
Set return=SSH.Connect("ftp.intersystems.com")​

This creates a new connection, and then connects to the ftp.intersystems.com SFTP server on the default port.

4
2 6789
Question Anna Golitsyna · Jul 16, 2024

I have a few routines in ^rINDEX that are missing in ^ROUTINE. At least some of those routines lack a timestamp, probably Date and Time Modified in ^rINDEX. It causes D %RO crash when such a routine is referenced by a routine range, since "" is an illegal $ZDTH value.

Healthy entry (note the timestamp): ^rINDEX("ABC,"INT")    =    $lb("2021-06-15 15:08:38.846885",)   ;The second argument is sometimes present and sometimes not, likely the routine size.

Unhealthy entry (note an empty timestamp): ^rINDEX("DEF,"INT")    =    $lb("",21) 

Finally, a question, not only for this situation.

3
0 193
Job Gabriel Diaz · Jul 17, 2024

Hi Everyone,

We are looking for a Senior Database Manager for a contract position with a state agency. It's a two and a half year contract, fully remote.

Please review the opportunity by clicking the link below and if you qualify, please let me know if you are interested in speaking about the opportunity.

More info here: https://teckpert.applytojob.com/apply/NT9Sn55Blf/Senior-Database-Manage…;

Best,

Gabriel

TECKpert

0
0 183
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.

3
1 317
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 219
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.
2
2 421
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 150
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

0
0 416
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 272
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 how it is happening,

2
0 249
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.

2
0 175
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 $SYSTEMUtil.
1
0 255
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

<!
9
0 235
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 282
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.

4
0 480
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.

0
1 213