go to post Marc Mundt · Oct 1, 2021 If this code is being run in FileXmlTransLaboIn, you can get the name of the config item from %Ensemble("ConfigName") and then query based on that. set configName=%Ensemble("ConfigName") &sql(SELECT Category INTO :itemCat FROM Ens_Config.Item WHERE Name=:configName)
go to post Marc Mundt · Sep 30, 2021 Your code looks good and works for me. Are you having troubles with it or what are you looking to add next?
go to post Marc Mundt · Sep 29, 2021 Yep, RawContent is potentially truncated and isn't meant for accessing the full message. You can use the OutputTo* methods to get the whole message. OutputToLibraryStream is going to be the best option because a stream object can be of unlimited size. OutputToString will work, but only for messages that are smaller than the maximum string size (around 3 megabytes, assuming you have long strings enabled in the Caché config. If not, then 32k).
go to post Marc Mundt · Sep 23, 2021 This query will list changes to layouts: SELECT UserDR->SSUSR_Initials,AuditDate, AuditTime, ReferencedClass FROM websys.log WHERE sourcetype='LAYOUT' AND type='Update' This works in HealthShare 2021.1 -- it may also work in older versions but I haven't tested.
go to post Marc Mundt · Aug 31, 2021 You can view the source for %syPidtab.inc in the System Management Portal using System Explorer >> Routines or by opening it in Studio.
go to post Marc Mundt · Aug 31, 2021 You can use the %Dictionary classes to get details of the class and methods: USER>do $System.SQL.Shell() SQL Command Line Shell ---------------------------------------------------- The command prefix is currently set to: <<nothing>>. Enter <command>, 'q' to quit, '?' for help. [SQL]USER>>SELECT FormalSpec FROM %Dictionary.MethodDefinition WHERE parent='My.Test.Class' AND Name='TestMethod' 1. SELECT FormalSpec FROM %Dictionary.MethodDefinition WHERE parent='My.Test.Class' AND Name='TestMethod' FormalSpec param1:%String,param2:%Numeric 1 Rows(s) Affected statement prepare time(s)/globals/cmds/disk: 0.0033s/321/1482/0ms execute time(s)/globals/cmds/disk: 0.0006s/3/385/0ms cached query class: %sqlcq.USER.cls14 --------------------------------------------------------------------------- [SQL]USER>>
go to post Marc Mundt · Aug 22, 2021 Create a BS that sends messages to BO every X seconds - it makes production more complex and also queues might not guarantee that the method is executed on schedule. You could try submitting the message to the head of the queue to be sure it gets processed right away.
go to post Marc Mundt · Jul 29, 2021 I'll be interested to see others' thoughts on this as well, but one approach is: Create a new empty database for the globals Use GBLOCKCOPY or MERGE to copy each of the globals from the current DB to the new globals DB. I believe GBLOCKCOPY is faster than MERGE. After they are copied/merged to the new DB kill the globals in the currrent DB. This then becomes your routines DB. Or you can do the opposite and export all of your routines from the current DB, import them into a new routines DB, then delete them from the current DB which becomes your globals DB. This would be faster than the first approach unless your globals are really small.
go to post Marc Mundt · Jul 28, 2021 %System.OBJ.Load() imports and compiles classes and can be run from another routine or class.
go to post Marc Mundt · Jul 27, 2021 You've written a pretty good description of the Production Generator included in IRIS for Health:https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.UI... This presentation may be of interest:https://learning.intersystems.com/course/view.php?id=1192
go to post Marc Mundt · Jul 19, 2021 Have a look at $SCONVERT:https://cedocs.intersystems.com/ens201513/csp/docbook/DocBook.UI.Page.cl... USER>set tIEEE=$c(0,0,220,67) // bytes representing 0000000 00000000 11011100 01000011 USER>write $SCONVERT(tIEEE,"F4") 440
go to post Marc Mundt · Jul 12, 2021 Here's a working example using <img> in a <table>. I don't think you can put an <img> inside an <item> or inside another <img>. <table orient="col"> <block width="40%"> <img src="http://localhost/logo.jpg" contentHeight="0.56in" contentWidth="2.33in" style="text-align:left"/> </block> <block width="40%"> <table orient="col"> <item field='#(..pagetitle)#'/> </table> </block> <block width="20%" style="text-align:right;"> <item field='#(..subtitle)#'/> </block> </table>
go to post Marc Mundt · Jun 23, 2021 Here is the section in the docs that explains why this is happening and why @Eduard Lebedyuk asked if that class is persistent. Business Process Execution Context The life cycle of a business process requires it to have certain state information saved to disk and restored from disk, whenever the business process suspends or resumes execution. This feature is especially important for long-running business processes, which may take days or weeks to complete. A BPL business process supports the business process life cycle with a group of variables known as the execution context. InterSystems IRIS automatically save the variables in the execution context and restores them each time the BPL business process suspends and resumes execution.
go to post Marc Mundt · Jun 14, 2021 It seems like this approach would still work with a poolsize > 1. Of course each worker job will decide on its own if it should throttle or not.
go to post Marc Mundt · Jun 10, 2021 There's no option for %DisplayFormatted to split the results into multiple parts automatically. You would need to write a custom method to do your CSV output with the logic you need. I can post some sample code that outputs CSV if that would be helpful. 8 hours for 16 million records at ~140 bytes/record seems really slow. I just did a test on a slow Windows VM and for a simple "SELECT *" for 16 million records @ 150 bytes/record, %DisplayFormatted took about 18 minutes to output the 2.4 GB CSV. I suggest you contact the WRC to help look at where the bottleneck is.
go to post Marc Mundt · Jun 9, 2021 In your assign action, there is a leading space in the property name: <assign value='source.AttendingClinicians.GetAt(st).Code' property=' npicode' action='set' />
go to post Marc Mundt · May 24, 2021 %XML.Reader and %XML.Document won't automatically update the original stream. You need to use %XML.Writer to output the %XML.Document into a stream. set writer=##class(%XML.Writer).%New() set outStream=##class(%Stream.GlobalCharacter).%New() set tSC=writer.OutputToStream(.outStream) set tSC=writer.Document(document) write "Stream:[",outStream.Read(3000000),"]",!
go to post Marc Mundt · May 24, 2021 The HL7 organization offers training:http://www.hl7.org/training/index.cfm And there are other organizations that offer HL7 classes as well:https://www.pathlms.com/hl7/courses/8159I haven't taken these courses myself so I can't say if these are good or not.
go to post Marc Mundt · May 20, 2021 File Specs for services support wildcards, but not the complex time stamp specifications that are used for outputting filenames from an operation. File SpecFilename or wildcard file specification for file(s) to retrieve. For the wildcard specification, use the convention that is appropriate for the operating system on the local InterSystems IRIS Interoperability machine. https://docs.intersystems.com/irisforhealthlatest/csp/docbook/Doc.View.c...