Forum Replies Created
-
AuthorReplies
-
July 29, 2024 at 1:25 pm in reply to: Unable to get MSI index on msg [0.0.419971] for thread #121532
Stewart:
Did you get this issue resolved and, if so, how? I am getting the same error in the hcimonitord.log file in large quantities; it also extends the startup time for the container process that I am trying to start.
Thanks.
Migration Consultant
Coffee Regional Medical Center
Eastern Time ZoneHello all:
This is year 2018…any update on activities involving FHIR integration?
Migration Consultant
Coffee Regional Medical Center
Eastern Time ZoneJanuary 19, 2018 at 8:17 pm in reply to: Dropping xlate output msg not in RESEND_DEST_OVERRIDE list #84492Cloverleaf 6.1.2 on AIX.I am experiencing this issue but, using the example that Jim presented:
Code:A -> B_out
B_in -> C
-> DI am sending from the B_in smat file, setting the destination thread and unchecking the “include Metadata” checkbox. Still getting the RESEND_DEST_OVERRIDE response.Migration Consultant
Coffee Regional Medical Center
Eastern Time ZoneForgot a couple of details…sorry.The global array will be accessed by each instance of the tcl proc, but the data stored will be specific to the tcl instance that generated it. Multiple instances of the tcl proc access the global array within the same interpreter, but there is no sharing of data between them. The global array exists as a common resource by name only, simply because the same script is executing in different UPOCs.
My understanding is that the message and its metadata exist for the life of its passage through a single thread. Once the thread sends the message to an external system or another thread, the message and metadata are destroyed. The next thread then adds the message and new metadata into the database. Since each instance of the tcl proc will most likely have a unique argument, there is no common set of args that can be carried in metadata.
Thus, each instance of the tcl proc needs to be uniquely ID’d so that its entries in the global array are not accessed by any other instance of the tcl proc using the same global array.
Migration Consultant
Coffee Regional Medical Center
Eastern Time ZoneIn a single instance of the tcl proc, in startup mode, a global array will be created if it does not already exist, then populated with components needed by the tcl proc as part of its run mode processing. In run mode, each entry in the global array will be accessed during the tcl proc’s handling of the message data; no new rows will be created, so the array won’t eat up memory over time. In shutdown mode, each element in the global array that was created by that tcl proc instance will be removed and, if no more entries exist in global array, the array will be unset.The global array is accessed using a subscript in the form , where DataItem is one or more tokens used by all instances of the tcl proc and UniqueTclProcID is the ID assigned to the individual tcl proc instance.
The use of the CRC checksum sounds great; the only question I have left is if two instances of the tcl proc, which are in the same interpreter and use the same args, will end up using the same CRC checksum value. Using a namespace sounds cool, too, but I will want to benchmark each method to see which consumes fewer CPU clock ticks. Using the counter method might be great for simpler use cases, but my concern is that the counter value will be the same for two instances of the tcl proc at any chance point in time, based on the message volume that each instance is handling.
So the end goal is to create a tcl proc which can handle messages at the TPS, Pre- or Post-Xlate and store the information that it needs to handle each message in the same manner, but efficiently. I don’t envision this tcl proc being used within an Xlate.
Hope that answers your questions.
Migration Consultant
Coffee Regional Medical Center
Eastern Time ZoneSo, within a TPS tcl proc, the processing order using the CRC32 key value could beCode:
start {
convert user args into key
preparse user args
store preparsed user args: set global_var_array($key) $preparse
.
.
(other code)
.
.
}
run {
convert user args into key
retrieve preparsed args: set preparse $global_var_array($key)
.
.
(other code)
.
.
}
shutdown {
convert user args into key
purge preparsed args: unset $global_var_array($key)
.
.
(other code)
.
.
}How much CPU time is involved in the CRC32 conversion?
Migration Consultant
Coffee Regional Medical Center
Eastern Time ZoneResolved!My thanks to Jim and Robert for their great advice. There was no problem with either version of my xlate; the Testing Engine simply doesn’t identify the two output messages as Message 1 and Message 2. If you output the Testing Engine results to a file, they will be two separate and readable messages that can be read into a thread and processed.
The Infor development lead needs to read The Cat In The Hat…Thing 1 and Thing 2 were uniquely identified in the story, but they weren’t joined at the hip… 😕
Time for an Enhancement Request…
Migration Consultant
Coffee Regional Medical Center
Eastern Time Zone1. Using 1(%g1) in the basis has never generated a compile error, nor has it generated any erroneous outcome in actual use. I contend that there is no difference between 1 and 1(%g1) as a basis, as long as the variable is correct.
2. The sending system does populate the Prior Patient Location field
3. I tried your suggestion about excluding the iteration action and performing a straight-line set of actions. At this writing, I was attempting the same [suppress, iterate {populate, continue} on 1(%g1)] in another xlate on our 5.8 engine, then removed the iterate action and performed a straight line suppress-populate-continue-null out-populate-continue set of actions and the outcome was the same. I even saved my changes, recompiled the xlate and opened a new testing page, just to be sure that I was testing the most current revision. The outcome was the same on both 5.8 and 6.1.
Here is the xlate:
Code:prologue
xlt_infile: hl7 2.2 HBOCHI_22B ADT_A17
who: jblanchard
date: July 18, 2017 5:08:52 PM CDT
xlt_outfile: hl7 2.3 ADT_A08
type: xlt
version: 7.0
end_prologue{ { OP COMMENT }
{ COMMENT {File: abq_star_to_slink_a17.xlt (”slink” = Nuance ShadowLink)} }
}
{ { OP COMMENT }
{ COMMENT {Author: Unknown creator and creation date} }
}
{ { OP COMMENT }
{ COMMENT Revisions: }
}
{ { OP COMMENT }
{ COMMENT {2017 07 18 jeb: Added actions to convert an A17 to two A08s, for the ShadowLink server} }
}
{ { OP SUPPRESS } }
{ { OP DATECOPYOPT }
{ ADDPREC 0 }
{ FABRICATE 1 }
{ USECURTM 1 }
{ RANGE {49 20 19} }
{ TMDEFS {01 01 00 00 00 0000 +0000} }
{ DELIMIT {/ :} }
}
{ { OP PATHCOPY }
{ ERR 0 }
{ IN 0(0).MSH }
{ OUT 0(0).MSH }
}
{ { OP COPY }
{ ERR 2 }
{ IN =ADT^A08 }
{ OUT {{0(0).MSH(0).#9(0).[0]}} }
}
{ { OP PATHCOPY }
{ ERR 0 }
{ IN 0(0).EVN }
{ OUT 0(0).EVN }
}
{ { OP PATHCOPY }
{ ERR 0 }
{ IN 1(0).PID }
{ OUT 0(0).PID }
}
{ { OP COPY }
{ REM 1 }
{ ERR 0 }
{ IN {{1(0).PID.00106(0).[0]} 0(0).MSH.00004(0)} }
{ OUT {{0(0).PID.00106(0).[0]}} }
{ COPYSEP {} }
}
{ { OP COPY }
{ REM 1 }
{ ERR 0 }
{ IN {{1(0).PID.00121.[0]} 0(0).MSH.00004(0)} }
{ OUT {{0(0).PID.00121.[0]}} }
{ COPYSEP {} }
}
{ { OP COPY }
{ ERR 0 }
{ IN @null }
{ OUT {{0(0).PID.00106(0).[3]}} }
}
{ { OP COPY }
{ ERR 0 }
{ IN @null }
{ OUT {{0(0).PID.00106(0).[4]}} }
}
{ { OP COPY }
{ ERR 0 }
{ IN @null }
{ OUT {{0(0).PID.00121.[3]}} }
}
{ { OP COPY }
{ ERR 0 }
{ IN @null }
{ OUT {{0(0).PID.00121.[4]}} }
}
{ { OP PATHCOPY }
{ ERR 0 }
{ IN 1(0).PV1 }
{ OUT 0(0).PV1 }
}
{ { OP PATHCOPY }
{ ERR 0 }
{ IN 1(0).PD1 }
{ OUT 0(0).PD1 }
}
{ { OP CONTINUE } }
{ { OP PATHCOPY }
{ ERR 0 }
{ IN @null }
{ OUT 0(0).PID }
}
{ { OP PATHCOPY }
{ ERR 0 }
{ IN @null }
{ OUT 0(0).PD1 }
}
{ { OP PATHCOPY }
{ ERR 0 }
{ IN @null }
{ OUT 0(0).PV1 }
}
{ { OP PATHCOPY }
{ ERR 0 }
{ IN 1(1).PID }
{ OUT 0(0).PID }
}
{ { OP COPY }
{ REM 1 }
{ ERR 0 }
{ IN {{1(1).PID.00106(0).[0]} 0(0).MSH.00004(0)} }
{ OUT {{0(0).PID.00106(0).[0]}} }
{ COPYSEP {} }
}
{ { OP COPY }
{ REM 1 }
{ ERR 0 }
{ IN {{1(1).PID.00121.[0]} 0(0).MSH.00004(0)} }
{ OUT {{0(0).PID.00121.[0]}} }
{ COPYSEP {} }
}
{ { OP COPY }
{ ERR 0 }
{ IN @null }
{ OUT {{0(0).PID.00106(0).[3]}} }
}
{ { OP COPY }
{ ERR 0 }
{ IN @null }
{ OUT {{0(0).PID.00106(0).[4]}} }
}
{ { OP COPY }
{ ERR 0 }
{ IN @null }
{ OUT {{0(0).PID.00121.[3]}} }
}
{ { OP COPY }
{ ERR 0 }
{ IN @null }
{ OUT {{0(0).PID.00121.[4]}} }
}
{ { OP PATHCOPY }
{ ERR 0 }
{ IN 1(1).PV1 }
{ OUT 0(0).PV1 }
}
{ { OP PATHCOPY }
{ ERR 0 }
{ IN 1(1).PD1 }
{ OUT 0(0).PD1 }
}
{ { OP CONTINUE } }And here is the outcome:
Code:0(0).MSH(0) : >|^~&|ST01|M|PHS|M|20170716120701||ADT^A08|33539542|P|2.2|33539542||AL|A17|20170716120701|||as8987|1||0010635930M~0010635930^^^ST01P^M~00538647^^^ST01^PI||^^^””|””||||3|^^^^^””^P^NM001^NM001||^PRN^PH^^^^^^^^^5~””^ORN^PH^^^””^””^^^^^””~””^ORN^CP^^^””^””^^^^^””~^NET^X.400^|””^WPN^PH^^^””^””^^^^^””|E^ENGLISH^HL70296^E^ENGLISH^99CLAN|||1719300800M||||2^N|””|””|””||N|””|””|N||””||9384^RODRIGUEZ LUGO^MIRTA^M^^^MD^HL70010|1|I|2WM^207^01^M^OCC|1||2WM^209^01^M^^””^””|1303^PEREA^JOSEPH^R^^^MD^HL70010|1303^PEREA^JOSEPH^R^^^MD^HL70010|8473^HERNANDEZ^CAMILLE^””^^^NP^HL70010~12576^TOLIN^KIMBERLY^LYNN^^^CNP^HL70010|MD|||N|7||””|1303^PEREA^JOSEPH^R^^^MD^HL70010|IP||R||||||||||||||||””|||M|O|0|””||201707130127|””|| 20720.00|||””|^~&|ST01|M|PHS|M|20170716120701||ADT^A08|33539542|P|2.2|33539542||AL|A17|20170716120701|||as8987|2|HNE1769756948^^^NE^P|0015038291M~0015038291^^^ST01Q^M~0015038291^^^ST01P^M~00920079^^^ST01^PI||^^””^””|””||||3|^””^^^^USA^P^NM001^NM001||^PRN^PH^^^^^^^^^5~””^ORN^PH^^^””^””^^^^^””~””^ORN^CP^^^””^””^^^^^””~^NET^X.400^|””^WPN^PH^^^””^””^^^^^””|E^ENGLISH^HL70296^E^ENGLISH^99CLAN|||1719600347M||||2^N|””|””|””||N|””|””|N||””||12000^AYALA^SANTIAGO^””^^^MD^HL70010|2|I|2WM^209^01^M^OCC|1||2WM^207^01^M^^””^””|1303^PEREA^JOSEPH^R^^^MD^HL70010|88888^SELF^REFERRED^””^^^MD^HL70010|12576^TOLIN^KIMBERLY^LYNN^^^CNP^HL70010|MD|||N|7||””|1303^PEREA^JOSEPH^R^^^MD^HL70010|IP||R||||||||||||||||””|||M|O|0|””||201707160330|””|| 20720.00|||””<
Migration Consultant
Coffee Regional Medical Center
Eastern Time Zone<span style="color: #471A60]Add an indicator for a repeating field number as follows”>(segmentNumber)
~…Migration Consultant
Coffee Regional Medical Center
Eastern Time Zone<span style="color: #471A60]Here is the output from the Testing Engine”>
Code:Please Wait ……
Command Issued: hcixlttest -i -e ASCII -d 1 -f nl ama_epic_to_gemaclab_adt.xlt /cloverleaf/cis6.1/integrator/ama_adt_t/data/maclab_A08.nl
Command output:XLT is loaded from local site, read /cloverleaf/cis6.1/integrator/master_t/formats/hl7/2.5.1/Epic_AIP_711700_IB/fields from master
XLT is loaded from local site, read /cloverleaf/cis6.1/integrator/master_t/formats/hl7/2.3/GEMacLab_41_OB/fields from master
ama_epic_to_gemacllab_adt.xlt: @triggerEvent = A08
ama_epic_to_gemacllab_adt.xlt: @level1 = A18A34A35A36A39
ama_epic_to_gemacllab_adt.xlt: @level2 = A01A04A05A06A07A08A13A14
ama_epic_to_gemacllab_adt.xlt: @level3 = A01A02A03A04A05A06A07A08A11A12A13A14A17A18A34A35A36A38A39
ama_epic_to_gemacllab_adt.xlt: @level4 = A01A02A03A04A05A06A07A08A11A12A13A14A17A38
ama_epic_to_gemacllab_adt.xlt: @level5 = A01A02A04A05A06A07A08A11A12A13A14A17A38
ama_epic_to_gemacllab_adt.xlt: @level6 = A01A04A05A06A07A08A13A14
ama_epic_to_gemacllab_adt.xlt: @level7 = A01A03A04A05A06A07A08A11A12A13A14A38
ama_epic_to_gemacllab_adt.xlt: @level8 = A01A03A04A05A06A07A08A13A14
ama_epic_to_gemacllab_adt.xlt: @level9 = A01A04A05A06A07A08A13A14
abq_epic_to_gemaclab_adt.xlt: MSH Segment; 0(0).MSH(0).#9(0).[1] = A08
abq_epic_to_gemaclab_adt.xlt: PID Segment
abq_epic_to_gemaclab_adt.xlt: PD1 Segment
abq_epic_to_gemaclab_adt.xlt: MRG Segment
ama_epic_to_gemaclab_adt.xlt: @level1 ct @TriggerEvent contain operation failed
abq_epic_to_gemaclab_adt.xlt: NK1 Segment
abq_epic_to_gemaclab_adt.xlt: PV1 Segment
abq_epic_to_gemaclab_adt.xlt: PV2 Segment
MESSAGE 1
Fetch failure on ‘triggerEventA’Migration Consultant
Coffee Regional Medical Center
Eastern Time ZoneIs it possible to use a literal on the left side of the ct operator, such asCode:{=A01 A02 A03 A08} ct @hl7Event
When I attempt to compile the Xlate, the error returned is
Code:[0:TEST] IF expression parse failed: Expected a relational operator
Error occurred at: ‘1 A04 A05 A08} ct @hl7Event’I did stash the literal in an @ variable, but am still wondering.
Migration Consultant
Coffee Regional Medical Center
Eastern Time ZoneThis is still a problem in version 6.1.2, and made even worse after we set Open NetConfig as Read Only to true, then false. The host server is cycled each time.The lock management functionality needs some improvement.
Migration Consultant
Coffee Regional Medical Center
Eastern Time ZoneDecember 14, 2016 at 10:43 pm in reply to: Cloverleaf not loading the most current Netconfig file. #78725If changes were made to the NetConfig by user A, but not saved before user B breaks the lock, user A loses all changes made. This is made even more complex when more than two users are involved.That is why communication between teammates is important.
Migration Consultant
Coffee Regional Medical Center
Eastern Time ZoneIs there any way to configure the color features in the new jar file, such as through a config.xml file?Migration Consultant
Coffee Regional Medical Center
Eastern Time ZoneSeptember 23, 2016 at 9:22 pm in reply to: clovlerleaf GUI help document not functioning for ‘search ‘ #83846In IE 11, I opened the Compatibility View Settings dialog and added infor.com. Clicked the Close button, refeshed the page and the help files appeared correctly. This worked for the link listed in the Documents section of Clovertech; it did not work for the same help files that were stored on my local workstation computer.Migration Consultant
Coffee Regional Medical Center
Eastern Time Zone -
AuthorReplies