Many ways to do it, my way:
USER>Set input=25
USER>Set ln=10
USER>Set $Piece(Pad,"0",ln-$Length(input))="0"
USER>Set Padded=Pad_input
USER>Write
Pad="00000000"
Padded="0000000025"
input=25
ln=10- Log in to post comments
Many ways to do it, my way:
USER>Set input=25
USER>Set ln=10
USER>Set $Piece(Pad,"0",ln-$Length(input))="0"
USER>Set Padded=Pad_input
USER>Write
Pad="00000000"
Padded="0000000025"
input=25
ln=10Ciao Pietro,
exactly for that scenario IRIS provides the Work Queue Manager, I suggest you to start with the documentation:
Introduction to the Work Queue Manager (and following chapters)
Then if you have doubts, come back with more specific questions.
I'm trying to convert date - 2023-09-28T20:35:41Z to BST/GMT format.
Please note that BST and GMT are not "format" and (may) have different values.
From your answer to @Robert Cemper it seems you need to covert to BST value (not GMT) and to "yyyymmddhhmmss" format.
To answer your question, is BST your system local timezone?
If you don't like the default behavior, change it. 😊
You can change it system wide from Management Portal, System Administration -> Security -> System Security -> System-wide Security Parameters
There you can change "Inactive limit" to 0 (zero), this way accounts never expire.
You can also change it for any individual user accounts in Management Portal, System Administration -> Security -> Users -> (select the user)
There you can enable the checkbox "Account Never Expires".
Instead of the $SYSTEM "shortcut", use the actual full syntax:
JOB ##class(%SYSTEM.OBJ).Export("RICHS.int","c:\AAA\richh.rtn")
HS.FHIR.DTL.vR4.Model.Resource.Encounter is a %RegisteredObject, it cannot be used as interoperability request/response.
An interoperability response/request MUST be a persistent class.
To loop/list all files within a directory, possibly with wildcard filter, you can use the FileSet class query in %Library.File class, see documentation on Query Directories and Drives, List the Contents of a Directory.
You have a superclass with some logging method. Now every time the logging method is called from a child class it logs the name of the superclass instead of the Child class?
No
If so the issue is that $CLASSNAME returns the name of the class where the method is located not where a method is called from.
Wrong, it returns the class name where it is called from.
Your first sample method works just fine, no need for method generator.
I suggest you to make a quick test.
Why modify the code when you can modify the SQL Gateway definition to point to the production system?
This way the code is the same (dev/prod) but only the configuration change.
In your example "xxxxx" is the SQL Gateway name, change in management portal to point to the required environment.
I don't understand what you refer with "the name of the item which created it", can you provide an example of what you expect as result?
$CLASSNAME($THIS) returns the actual class name of $this instance, not a superclass or the class where is executed (possibly a superclass).
You can use the ImportFromString() method in EnsLib.HL7.Message class:
Set HL7Message=##class(EnsLib.HL7.Message).ImportFromString(StringHL7,.Status)
With "pre-compiled parameter" you mean a class parameter? Of what class?
You may user the $paramater function:
$parameter(classname,parametername)
I can see the function %GetParameter available in the WYSIWIG rule editor
There is no %GetParameter function available in default functions provided by IRIS, to list available functions you need to press the "fx" button, it looks you have typed in %GetParameter.
Maybe you have developed a custom function called %GetParameter?
What parameter are you looking for within an HL7 routing rule?
EXCELLENT advise/suggestion! I fully agree that using global mapping is MUCH better. 👏
I don't think there is an official support way to achieve that.
However, if you temporary change ENSLIB database and remove read-only flag and then:
Set ^IRIS.Msg("EnsColumns","en","ServerName")="Server Name"
or maybe better:
s ^IRIS.Msg("EnsColumnsNAMESPACENAME,"en","ServerName")="Server Name"
where NAMESPACENAME is the name of your production.
And then you put back the read-only flag in ENSLIB database......you will find a surprise 😉
Note that this is a kind of a hack, you lose the "surprise" when you upgrade and may not work in future versions.
Edit: see @Eduard Lebedyuk advise below for a much better way to do it using global mapping instead of changing ENSLIB
The count syntax ("*") only works if used for the last repeating element and using curly braces, so this works:
HL7.{PIDgrpgrp(1).ORCgrp(1).OBXgrp("*")}
You need to loop in the two previous groups (PID and ORC) to get the total count of OBX segments in the message.
OK, it seems that I did not understood the challenge! 😂
BUT, the instructions read as:
"...build a program (using only printable ASCII characters, tabs and newlines) that prints out...."
What's your concept of "prints out"?
I understand that the provided sample solution doe not printout anything, but the instructions also says:
"....exactly the characters in the printable ASCII space (characters 32 to 126) that don't appear in your program's source code..."
Again, my concept of source code include...well, all the code, including string constants in the source code, so the provided sample solution does not satisfy the conditions because it contains ALL the printable ASCII space!
Maybe it correct because sing it contains all the printable ASCII space, it does not prints out anything?!
42 characters, but I don't like that code in a class....it's like cheating
43 characters, without feeling cheating 😂
It seems you are using Microsoft Internet Explorer.
Please note that it's not supported, please check Supported Web Browsers in the documentation.
What browser are you using?
Maybe you have issue with your web server, but you didn't provide any details so is impossible to guess.
Maybe you have an issue with the Web/CSP Application setup, but you didn't provide any details so is impossible to guess.
It's unlikely a security issue since you can access csl and zen (supposedly?) in the same Web/CSP application.
"...do I check the status for Prepare and Execute methods?"
No, you don't, but you should.
Set dynOBJ={}.%FromJSONFile("c:\temp\BundleSample.json")
Set firstResource=dynOBJ.entry.%Get(0).resource
Write firstResource.resourceType
Is your object a %DynamicObject?
In the Management Portal go to Interoperability (choose namespace if asked) -> List -> Productions
There, do you see the production you need to open?
If yes, select the production line from the list and click the "Open" button below the title bar.
What do you get?
USER>DO HELP^%G
The %G utility displays global nodes. A "?" at the "Global ^" prompt
displays the global directory. If you enter just the name of a global,
%G displays the entire global. You may also display a portion of the
global at different subscript levels or specific nodes.
A complete global reference, such as ^GLO(3,"BED",5) will display
only that particular node. You may specify a subtree, such as
^GLO(3,"BED", to display all descendants of that node. To display
both the node and its descendants, do not end your entry with a
comma or a right parenthesis.
You can leave a subscript field empty when you specify the subtree and
the %G utility displays any nodes matching the other subscripts:
^GLO(,"BED") will match any nodes with 'BED' as the second subscript.
You can specify a range of subscripts for a particular subscript
level by inserting a colon between the first and last subscript in the
range: ^PT(1,"ACC":"BIRTH"
You can use variables and simple expressions in a subscript
specification by assigning a value to the variable before calling %G.
For example SET ID=214 and enter something like ^PT(ID,0).
You don't provide enough information to help you.
Can you please provide some more detail on how you are "reading" "message_code"?
What kind of object/class and how you load/populate "response" when you mention "response.message_code"?
What product/version are you using?
Property sessionId As %String(XMLNAME="session_id";
WOW! That's subtle! Well spotted!