Article Zhong Li · Apr 12, 2019 11m read

1. Purpose

This is a 10-minute simple step-by-step guide on how to quickly set up various flavors of HealthShare docker containers from scratch on a Win10 laptop. 

For example, we can build a couple of  HealthShare "global edition vs UK Edition" demos as shown below.  

There are a couple of frequently asked questions from HealthShare colleagues and partners:

  • "I am no Docker guy, but is there a quick way to build various flavors of HealthShare containers simply for demo/PoC/dev/training or troubleshooting purpose?"
  • "I just can't make "Docker for Windows" work on my Win10 laptop - how did you
3
2 928
Question David.Satorres6134 · Sep 12, 2019

Hi all,

I recently discovered the Monitoring Activity Volume feature in IRIS and I was amazed by it. So, I put it to work in one of our productions. It is nice how easy it is to set up and all the possibilites that came with it.

But there's something weird: the numbers. Actually, one of the BP is stating a time of more than 6 seconds to process:

But it is not really possible, as our production is running at a pace of about 40 msg/second, being this one the first step. So my question is: how is this avg. duration calculated? What does this time include? Is it in seconds?

Thanks a lot,

6
1 441
Question Amit Prajapati · Sep 12, 2019

Hi,

I am implementing free search text box, which can search data in all columns of tables.

I have created DisplayName column by concatinating two column data with space.

SELECT TOP ALL FirstName||' '||LastName AS DisplayName, UserType, IsActive, RoleName, DOB FROM LISDB.ExternalUsers

Now, in where condition I want to do like search in DisplayName column but it not working.

I have tried both fn CONCAT and  || in like query but both are not working for me. 

If ((RefineSearchText'="") && ($Length($ZStrip(RefineSearchText,"<>W",""))>0)) {

        Set args($Increment(args)) = RefineSearchText
5
0 1883
Question Scott Roth · Sep 12, 2019

After upgrading I ran a $SYSTEM.OBJ.CompileAllNamespaces("u"). What I got in return was kind of a shock.

In reviewing errors I am seeing code being referenced but no longer applies. It is referring to stuff that might of been defined in the Context , Formal Spec ,Thread , etc.

ERROR #5373: Class 'osuwmc.CPD.DataStructures.TblPharmacyDEA', used by 'osuwmc.CPD.BusinessOperation:SelectProviderTempDEA:FormalSpec', does not exist

ERROR #5373: Class 'osuwmc.FeederPat3BPLTest4', used by 'osuwmc.FeederPat3BPLTest4.Thread1:compileafter', does not exist

ERROR #5373: Class

1
1 609
Question Lawrence Grace · Sep 12, 2019

We have a rest service that collects production status information like whether a connection is disabled, enabled, etc.

I would like to present that data in a DeepSee dashboard but do not know how to create a pivot that accesses the data gathered by the service.

Does anyone have any information or documentation about how a dashboard would be configured to use use a Rest service?

Thank you

2
1 357
Question Gunwant Kapade · Sep 11, 2019

Hello everyone,

I am trying to use @() and SYSTEM() from Cache Terminal. I am searching for blinking text . I have found -5 as a Screen Display Option but not aware like how to use on terminal. Can any one please help ?

Thanks, Gunwant

8
0 439
Question Virat Sharma · Sep 10, 2019

I am new to cache programming language . I am facing below issue . please assist.

Question: One persistent class ID column is a combination of its properties (Roll No and Marks) [ Exact: RollNo||Marks]. When i am running the query from Management portal it is displaying data in the same format and data is there. But in the code if i am making below statement, i am getting null value.

Set ExistsID=##Class(User.School).%ExistsId(RollNo_"||"_Marks)

set ID=##Class(User.School).%OpenId(RollNo_"||"_Marks)

ExistsID showing 1, but ID is always displaying as Null but data is there in class with that

8
0 1309
Announcement Jacquie Clermont · Sep 11, 2019

Hi Community,

There are a couple of new activities planned for this year's Global Summit that you won't want to miss:

1. Meet the Experts in the Tech Exchange
Schedule one-on-one meetings with implementation team members or developers of a product feature in our Tech Exchange area.  LEARN MORE 


2. Not Your Random Table
During our Monday and Tuesday lunches, you'll get to interact directly with InterSystems product managers, who are moderating conversations about such topics as master-data management, the HL7® FHIR® standard, and server-side languages. PICK YOUR TABLE

So have you registered yet for

0
0 342
Question Sylvie Greverend · Aug 25, 2019

Trying to modernize tasks I have to do on cache like change global variables on different servers, different namespaces....

Actually, I have a bash script  doing ssh on each server and running bash  script on each server like this

echo "zn \"namespace\"
s ^Var=1
"|csession ensapp

But this is not clean/modular/..... I was thinking about using Ansible - as it is exactly what I need to do all the git pull. But I am not sure how to interact with cache. A shell ansible module - no way as it does not manage state...... Is there a way to interact with cache in a command line other than csession?

Any

3
1 877
Announcement Jeff Fried · Sep 10, 2019

Preview kits are now published via the WRC's preview download site for:

  • InterSystems IRIS 2019.1.1
  • InterSystems IRIS for Health 2019.1.1
  • HealthShare Health Connect 2019.1.1

The build number for these releases is 2019.1.1.608.0.

 

This is a maintenance release and includes changes in a number of areas, as described in the online documentation here.

It also includes three new features, described in the online documentation here:

  • Support for the InterSystems API Manager,
  • In-place conversion from Caché and Ensemble to InterSystems IRIS
  • X12 element validation.

 

This release also adds

0
0 441
Announcement Eduard Lebedyuk · Sep 10, 2019

Code golf is a type of recreational computer programming competition in which participants strive to achieve the shortest possible source code that implements a certain algorithm.

Here's a list of Code Golf competitions we had on Developers Community.

And some interesting challenges:

Did I miss something? Add more challenges in comments.

0
0 518
Question Scott Roth · Sep 9, 2019

We have a customer that is not able to accept HL7 result messages that are missing OBX:3.1. I have been trying to create a function that could return a boolean value of 0 if the message didn't meet the expectations of the function.

ClassMethod IsValued(pHL7Msg As EnsLib.HL7.Message, pSegment As %String, pField As %String) As %Boolean
{
            #dim tSeg as EnsLib.HL7.Segment
            
            set tSegCount = pHL7Msg.SegCountGet()
            set = 1
            Set tFound = 0
            while ((<= tSegCount) && (tval="")) {
                         
                        set tSeg = pH

7
0 547
Question Carlos Salomao · Sep 9, 2019
Would anyone please have an example of how to use the WriteSOAPBodyMethod method?

 

The webservice method I'm trying to overwrite the body looks like this:

Method RecepcionarLoteRps(EnviarLoteRpsEnvio As %String(CONTENT="MIXED")) As %String(CONTENT="MIXED",XMLNAME="EnviarLoteRpsResposta") [ Final, ProcedureBlock = 1, SoapBindingStyle = document, SoapBodyUse = literal, WebMethod ]
{
 Set ..WriteSOAPBodyMethod = "override"
 Quit ..WebMethod("RecepcionarLoteRps").Invoke($this,"",.EnviarLoteRpsEnvio)
 Set ..WriteSOAPBodyMethod=""
}
Method override(proxy As %SOAP.ProxyDescriptor, tag As %String) As %String

2
0 322
Article Eduard Lebedyuk · Sep 9, 2019 1m read

Just wanted to share my Zabbix template for monitoring InterSystems IRIS on Linux servers.

It monitors irisusr (configurable) memory consumption:

  • Virtual memory size
  • Percentage of real memory
  • Resident set size
  • Size of data segment
  • Size of code segment
  • Peak resident set size
  • Size of locked memory
  • Size of shared libraries
  • Peak virtual memory size
  • Size of pinned pages
  • Size of page table entries
  • Size of process code + data + stack segments
  • Size of stack segment
  • Size of swap space used

How to use:

  1. Check that you have Zabbix installed (I'm using version 4.2)
  2. Import template file:
  3. Add template to a server with
5
0 1614
Question Eduard Lebedyuk · Sep 8, 2019

Is there a way to set null in dynamic object without using %Set methods?

I have this method and I need to set NULL as, well, null and not string.

ClassMethod node(name) [ CodeMode = expression ]
{
{
    "name":(name),
    "content":($case(##class(%Dictionary.ClassDefinition).%ExistsId(name), $$$YES:"mycontent", $$$NO:"NULL"))
}
}
3
0 816
Announcement Jacquie Clermont · Sep 9, 2019

Hi Community:

Interested in getting hands-on with our technology? Come to Global Summit, where you'll find five experiences to choose from in the Experience Lab:

  • The Machine Learning Toolkit on OpenExchange
  • The Next Evolution of APIs
  • Working with the FHIR Resource Repository
  • Using AI Services to Build Intelligent Apps
  • Containerizing Apps with InterSystems IRIS

If you've never tried these out, Experiences are guided exercises in which you engage with our technology.

0
0 258
Question Rubens Silva · Sep 6, 2019

Hello,

I had an issue when using the method Exists, I noticed that if you provide a directory for this method it returns 1. This is really misleading, because sometimes the input could be a directory and the only way to predict this is to also test if the file is a directory.

I didn't tested using the Attributes method, but I supposed that this means could also be a solution for that issue. But still, I expected the Exists method to return 1 for files and 0 for directories, since there's also method called DirectoryExists already.

write ##class(%File).Exists("/InterSystems")
1

Would you guys

4
0 578
Question Eduard Lebedyuk · Sep 8, 2019

I'm writing "Finder"-like dialog and need to get list of BPL classes.

The query is dependent on current "path" - it outputs all BPLs in the current path (if any) and all sub-packages which contains BPLs.

So far I have this query:

Query getBPL(path, needPlus = {(path'="")}) As %SQLQuery
{
SELECT DISTINCT $PIECE(Name, '.', 1, $LENGTH(:path, '.') + :needPlus) Name
FROM %Dictionary.ClassDefinitionQuery_SubclassOf('Ens.BusinessProcessBPL')
WHERE Name %STARTSWITH :path
}

My problem is, if I'm not in "root" path I need to add additional dot level, but in root path I only need to add one.

Currently

2
0 515
Question Chip Gore · Sep 6, 2019

Hi -

I'm wondering if there is any sort of experience with trying to leverage things like fingerprint readers into any identity management interface. I'm wondering if the "output" of some fingerprint scanner (or face scanner, or eyeball scanner for that matter) is something that HealthShare Patient Index might be able to use?

1
1 228
Announcement Jacquie Clermont · Sep 6, 2019

Hi Community,

Our latest issues of Developments  and Developments Healthcare Edition have been posted to the Developments Archive site, where you'll also find other previous issues. Learn about InterSystems API Manager, preview releases of InterSystem IRIS and IRIS for Health, and live webinars this month about how you can easily move your Ensemble or Caché applications to InterSystems IRIS. 
 

Optimize your investment in InterSystems technology by subscribing to these and other InterSystems publications.

0
0 285
Question Robert Hanna · Aug 23, 2019

Hi all, 

I am trying to create a method to count the number of entries in a global, including all subscripts. I am having a bit of trouble getting the code to make it to the second subscript. When I get to the position where my key is "Canada" and I add a comma and empty quotes to it, it returns USA as the new key when I do the order function. Is the $Order or the global not able to use a single string to represent multiple subscripts?

Here is my global structure:

^Locations("Canada",1)="Montreal"
^Locations("Canada",2)="Vancouver"
^Locations("USA",1)="Michigan"
^Locations("USA",2)="Ohio"
^Location

20
0 849
Question Amit Prajapati · Sep 6, 2019

Hi,

I want to do ordering dynamically in Query. I mean to say that order by value will not be hard coded in query, it will be passed in parameter.

I have tried to it following way, but it is not working for me. Can you please advise me how can I achieve it?

In below code, Order by :objSearch.SortingField is not working.

Class Query.ExternalUsers Extends %Library.RegisteredObject [ ClassType = "", DdlAllowed, Owner = {_SYSTEM}, Not ProcedureBlock ]

{



Query Search(objSearch As LISSystem.ModelView.UserSearch) As %SQLQuery [ SqlName = ExternalUsersSearch, SqlProc ]

{

select * from (
7
0 420
Announcement John Murray · Sep 6, 2019

We've just published an update to the Serenji extension for VS Code. Starting with this version (3.0.7) you can now debug the code that implements your REST services. Here's a taster:

Read more about Serenji on Open Exchange.

0
2 554
Question Token Ibragimov · Feb 11, 2019

Hello,
Having difficulty with sending POST request.

How I can send parameters in the body of request, if i'm using ContentType:"application/x-www-form-urlencoded".

Version of ensemble: 2010

My code is bellow:

Set httpRequest=##class(%Net.HttpRequest).%New()
set httpRequest.SSLConfiguration="1"
Set httpRequest.ContentCharset="utf-8"
Set httpRequest.Server="test.oath.com"
Set httpRequest.Port=443
Set httpRequest.Https=1
Set httpRequest.Location = "/auth/key"
set httpRequest.ContentType="application/x-www-form-urlencoded"
Set httpRequest.ContentCharset="utf-8"    
do

2
0 11373