InterSystems Developer Community is a community of 22,334 amazing developers
We're a place where InterSystems IRIS programmers learn and share, stay up-to-date, grow together and have fun!

This code snippet provides a ZEN page that downloads a stream from its database directly:


/// We assume that you have stored your data within this schema:
/// MyApp.Model.Storage: Filename,FileSize,Content,ContentType
Class zen.downloadStream Extends (%ZEN.Component.page,%CSP.StreamServer)
{
 
    /// Wrapper to get the id of the download, we assume that the id is passed to this zen page
    /// as a URI parameter, i.e.: MyApp.Downloads.cls?OID=1234
    ClassMethod GetId()
    {
        Quit $Get(%request.Data("OID",1))
    }
     
    /// Set the appropriate header for the file.
    ClassMethod OnPreHTTP() As %Boolean
    {
        Set tId = ..GetId()
     
        If ##Class(MyApp.Model.Storage).%ExistsId(tId) {
            Set tStream = ##Class(MyApp.Model.Storage).%OpenId(tId)
            // You could "guess" the content type by its file extension
            // or you can store it (before) in the database separately (like in this example).
            // Set Extension = $Piece(tStream.Filename,".",$Length(tStream.Filename,"."))
            // Set ContentType = ..FileClassify(Extension)
     
            Set %response.ContentType = tStream.ContentType
            Do %response.SetHeader("content-disposition","attachment; filename="_tStream.Filename)
            Do %response.SetHeader("Content-Length",tStream.FileSize)
        }
        Else {
            Set %response.Status="404 File Not Found"
            Quit 0
        }
        Quit $$$OK
    }
     
    ClassMethod OnPage() As %Status
    {
        Set Download = ##Class(MyApp.Model.Storage).%OpenId(..GetId())
        Do Download.Content.OutputToDevice()
        Quit $$$OK
    }
 
}

Link to code on GitHub

2 1
2 612
Announcement
· Oct 5, 2018
Global Summit 2018 Highlights

Hi, Community!

Just came back from Global Summit 2018 and want to share my impressions.

Key highlights of my choice:

1. The announcement of a new InterSystem Data Platform: InterSystems IRIS for Health!

2. Community and Express licensing for InterSystems IRIS

3. The Launch of InterSystems Open Exchange - the gallery of InterSystems Solutions, Tools, Technology examples, Adapters, and Interfaces! E.g. test coverage tool and Ethereum Blockchain Adapter

2 4
0 716

Hello,

I am a beginner with Object Script and I hope anyone can help me solving my questions.

1. Is there a way to time a loop in Object Script?

2. My code leads to the following error, even though it executes the method.

Is there a way to ignore this specific error, so that I can repeat my code in a time loop over and over again without stopping?

1 3
1 968

Hi all. We are going to find duplicates in a dataset using Apache Spark Machine Learning algorithms.

Note: I have done the following on Ubuntu 18.04, Python 3.6.5, Zeppelin 0.8.0, Spark 2.1.1

Introduction

In previous articles we have done the following:

0 0
1 709

Hi

Anyone worked on "ccontrol list " command execution through Cache Object Scripting.

I executed through bat file passing this ../bin ccontrol list . Icould not get the results through COS but executed in command prompt

it pops up with notepad and list down Cache instances.

Need help here to address the same stuff through cache object scripting.

0 3
0 767
Question
· Jul 10, 2018
SOAP/Rest MPI call

Newbie question.

We have a desire to leverage apigee to do a call to our MPI system.

Not sure if this is something we can do via HealthShare.

Anyone doing a soap request or restful call from InterSystems through Apigee?

If I am overlooking the obvious (documentation) any guidance is greatly appreciated.

Thanks in advance

0 2
0 648
Question
· Oct 5, 2018
New to Caché

Can anyone tell me where to find good resources to learn Caché besides InterSystems. I am looking foe material (ie books, white paper, exercises, ect). There does not seem to be a lot of information on Caché.

Thank you for all of your help

Justin

0 2
0 330

Using our cool new debugging extension for Visual Studio Code I'm trying to debug a CreateProjection method of a class, but when I compile it the work apparently gets done in one of the worker jobs, so my breakpoint never triggers.

Is there a compiler flag or qualifier to force the compilation to be done in-process rather than getting handed off to a worker job?

2 4
0 474

You have a global ^CODE("TNO","BIO",291,"AKI") that may or may not exist. On the data side of the global ref it can have a boolean value of 0 (false) or 1 (true) and this global is wrapped up in a Caché class accessible from myobject.AKI property. At the object level, how do you check whether the property is defined ie. is there a $DATA equivalent for Cache Object properties? Also, how would you kill /null the property as opposed to making the value 0 (false) or an empty string?

0 10
0 3.7K
Question
· Oct 3, 2018
CreateProperty with curl

Hello,

I have a question about creating properties with curl.

I already did create properties in Java with the following command.

<DO db.%CreateProperty("TotalSteps","%Integer","$.TotalSteps")>

It created the property TotalSteps with the type %Integer and the data path $.TotalSteps (since the header of my data source is also TotalSteps).

Now I would like to create the same property in curl with the following command

0 2
0 486

Hi everyone,

I need submit a object have a json string as property of class, but I get an issue, object can't save to SQL table if I take json data to json property. I try making a test class with only json property and get the same issue, no data row in SQL table after run ClassMethod . Some one know what's problem, please help me. Here my test class:

1 2
0 800

Hello,

Atelier 1.2 as well 1.3 throws java.lang.NullPointerException when opening a class file.

Never mind how to open the class file, 1) witin project explorer 2) atelier explorer 3) open resources 4) switcing between tabs (open files) etc..., I get these errors every time.

Never seen this problem in Atelier 1.1.

Do I miss something within the Eclipse environment?

Does anyone has the same problem?

Best Regards,

Roger de Coninck.

0 5
0 730
Question
· Oct 2, 2018
%NOLOCK in insert query

I would like to know , if its safe to use %NOLOCK in insert query while doing some parallel processing in Ensemble. We will have pool size of more than 1 for a business process. The business process does an entry in internal meta data table , which will be used for some internal reporting. The same row might get updated by some other process later point of time. i could not produce any error or any issues . Looking forward to hear some opinion on this.

1 1
0 1.4K

Hi Community!

I'm pleased to announce that we've just launched the new product in the family of InterSystems Data Platforms:

InterSystems IRIS for Health

IRIS for Health — is the world’s first and only data platform engineered specifically for healthcare. It empowers you to rapidly create and scale the industry’s next breakthrough applications.

2 0
1 497

I have previously setup an Atelier project and it was running. I recently received the 1.3 release. Now, I am unable to click on the previously established connection to my Cache server (as seen in the Serve Explorer. I see the connection and the little arrow (implying that there is a hierarchy of items underneath). But, clicking that arrow opens nothing. Ultimately, I was trying to access files on the server so that I could add some new ones to my existing Atelier Project.

0 4
0 303