Daniel Kutac · Feb 26, 2016 go to post

Well, there is no file available, just data that sits inside Ensmeble as Ensemble is also clinical system -> source of data, so it's not just a router in bvetween two systems.

Daniel Kutac · Feb 26, 2016 go to post

Thank you David,

but I have different problem. I admit my HL7v2 knowledge is limited. I have seen several scenarios where Ensemble acts as HL7 router, just accepting message at one end (service) and routing it to another end (operation) and eventually automatically sending ACK back to originator. 

But this case is different. Client is expecting immediate response - the ADR^A19 message. So I now have multiple ways of constructing response, but how do I actually return it back to the caller?

Dan 

Daniel Kutac · Feb 29, 2016 go to post

Ok, I thing I got it now.

I just need to subclass a service and implement OnConstrucRepply() method and compose the pReplyDoc as needed.

Dan

Daniel Kutac · May 9, 2016 go to post
 

I personally avoid doing larger modifications in the projection, other than eventually modifying / converting old data format of the (persistent) class in this type of project you describe. Larger changes I tend to leave up to %Installer package as it gives me more control (and more structured way of work via XML). Also, in many cases, when you compile a class, you only want to perform changes only once, not with every compilation.

[
 
 
But agreed, projections are a great feature, and not many Cache developers appreciate their potential
Daniel Kutac · May 16, 2016 go to post

Thank you all for responses.

I tried bootstrap and Angular, and after an indeed a painful period of trying to understand angular's javascript templates, I created some decent templates out of those available at web. This seems to be a good way forward and good to recommend to customers as an approach.

Dan

Daniel Kutac · May 31, 2016 go to post

Thank you Eduard!

You saved me a lot of time! I am working on a small project where I am implementing Google HeatMap as a new way of displaying DeepSee geographical data. and for that, I just want to supply the source of data - the saved pivot definition, retrieve the MDX and execute it and build array of GEO points.

Daniel Kutac · May 31, 2016 go to post

Cool!

the VM I was experimenting with, is still on 2015.2. Time to upgrade.

Thanks Joe!

Daniel Kutac · Jun 1, 2016 go to post

Cool!

Thanks Stefan, yes I used Apache that comes with Cache. Putting directive you suggested solved my issue.

Dan

PS: use case = pass pivot name into a rest service, I tend to use slashes to organize my DeepSee stuff into 'folders'

Daniel Kutac · Jun 1, 2016 go to post

Stefan's initial answer is the best for me. Everything else is just too much work.

Daniel Kutac · Jun 13, 2016 go to post

Thank you Markus for hint,

I have modified the code to read this way:

#dim vDoc as EnsLib.EDI.XML.Document=##class(EnsLib.EDI.XML.Document).ImportFromString("<Body><Topic>Temperature</Topic><Value>30</Value></Body>",.sc)
vDoc.DocType="message:Body"
vDoc.DocTypeCategory="message"
!,vDoc.GetValueAt("/Body/Value")
!,vDoc.GetValueAt("Value",,.sc)
if $$$ISERR(sc) $System.Status.DisplayError(sc)

but it throws :

ERROR <Ens>ErrGeneral: Can't evaluate DOM path '/Body/$2:Value' because xsd_2:Topic in /Body/xsd_2:Value is not an element, instead this node is a 'unknown' node.

this drives me mad...

BTW: you're still using DOM way and not property path way of retrieving data.

Daniel Kutac · Jun 13, 2016 go to post

got it. I was missing xmlns declaration.

this

#dim vDoc as EnsLib.EDI.XML.Document=##class(EnsLib.EDI.XML.Document).ImportFromString("<Body xmlns=""http://tempuri.org/ISC/JBH""><Topic>Temperature</Topic><Value>30</Value></Body>",.sc)
 

works as expected.

Daniel Kutac · Jun 21, 2016 go to post

My point was that if you can see at the INT (I was originally pointing to MAC) level, what actual ObjectScript code the rule (XML) generates, it would be easier to understand what's going on. You need to call View Other once more, from XML view, to get to the INT level.

it would also help, if you put TRACE element and evaluate the two message  properties there to see what Ensemble thinks of them.

Daniel Kutac · Jun 21, 2016 go to post

sure, supposed you have a class opened with the rule definition (the XML data you showed earlier) you just click a tiny icon with a little search glass in it. Or you can press Ctrl+Shift+V at the same time. This would bring the ObjectScript layer of the rule.

But my feeling is that condition is simply never called due to the constraint in the rule 1. the constraint is evaluated first before it let's you go and evaluate condition within rule.

You can also change level of tracing information produced by the rule, just makes sure that you production has "Log General Trace Events" turned on, then the Business process that uses the rule has "Log Trace Events: on and Rule logging set to "a" for collecting ALL details. This could also help in determining what is rule evaluating.

Dan

Daniel Kutac · Jun 27, 2016 go to post

Glad you sorted this out Murillo. However, one of great features of rules is that one can change them on the fly and as soon as they are compiled, the new version becomes active, without need to stop component/production. It would be difficult to find out now, why you needed to stop production. Perhaps Ensemble system developers can comments. On the other hand, it is true that you need (since 2010 or so) to stop/start production components (services, operations) when they are modified and compiled.

Daniel Kutac · Jul 15, 2016 go to post

I tried several variants, and it seems to me that "dummy numbers" were result of some data corruption in customer database as I could not reproduce it.

Daniel Kutac · Jul 19, 2016 go to post

Well, whilst it is true that we have much better ways of handling JSON today, this article mentions is by pure coincidence, driven by the fact that I had that problem some 3 years ago and when searching for solution, I found write redirection code withing the class mentioned in the article.

BTW: there is a %Device class available, that wraps redirection code, so no need to write your own mac code anymore.

Daniel Kutac · Sep 9, 2016 go to post

No prodlog opened yet, Timur. But it might be worthy asking at least to put the information about performance of the method into the class reference and documentation of file outbound adapter. I'll do that.

Dan

Daniel Kutac · Sep 9, 2016 go to post

You can store both structured and unstructured data in Cache. Thus you can retrieve this data. For structured data you can use regular SQL, XML or Object approach and others (JSON etc...). For unstructured data we have iKnow technology that allows to search such data. Please visit our documentation pages andf filter product to Cache.


Dan 

Daniel Kutac · Oct 6, 2016 go to post

I have never been into building electric circuits, but this Arduion toy really got me. Purchased one and now starting experimenting. Next phase - with Cache. Nice topic.

Daniel Kutac · Nov 17, 2016 go to post

Probably not, as long as it inherits from correct parent. But then you need to make sure it's visible where it should (either via mapping or just copying to all namespaces needed)

Daniel Kutac · Dec 2, 2016 go to post

Bill, I'm having troubles launching the new Atelier on Windows 10, it says this:

any idea?

I have this java:

java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) Client VM (build 25.111-b14, mixed mode)

Dan

PS: Actually, colleague of mine has the same problem on his machine.

Daniel Kutac · Dec 9, 2016 go to post

for me personally, the greatest benefit of custom SQL queries is that you don't need any (persistent) data, you can just generate it on the fly, either computing them or bringing from any arbitrary external system.

Dan

Daniel Kutac · Dec 16, 2016 go to post

Alessandro,

I'm trying to follow your example on Cache 2016.2.1. but with no luck. Respectively, when I drag and drop pivot table rows and columns, I always get "no result" in the (single) cell.

However, when using the MDX supplied, it works fine. Looking at generated MDX when using drag'n'drop, the MDX looks completely different.

What am I doing wrong?

Dan

Daniel Kutac · Dec 16, 2016 go to post

Thanks to Alexander, he found the potential bug (or a feature), the calculated measure definition shall not have "shared storage" selected!


Dan

Daniel Kutac · Dec 27, 2016 go to post

Excellent job!

it took me a little while, though, to figure out all dependencies, namely PYTHON that was not mentioned in the github instructions and fresh enough node.js.

But now everything works as expected now.

One wish: please add a button that would navigate back to the System Management Portal or open the dashboard in a new tab/window.

Daniel Kutac · Jan 19, 2017 go to post

Istvan, what if I have a habit of putting all XSL stylesheets into XDATA blocks?