Forum Replies Created
-
AuthorReplies
-
Hi Darrell,
you are most likely iterating through the OBX segments with an IF-Statement that looks for the PDF segment. Inside this IF-Statement, include a “SEND” and outside the iterate, include a “SURPRESS”.
Regards, Jim
February 24, 2026 at 1:22 am in reply to: Use database connection defined in site preferences #122304Hi Rick,
the database configuration is a straight forward jdbc URL:
jdbc:sqlserver://<server>:1433;DatabaseName=<database>;trustServerCertificate=true
and the table is an Advanced Database Lookup of type SQL:
select d.name_doc, t.extension as file_ext, m.name as medium
from object65 d, medien m, osmimetypes t
where d.feld32=<docid>
and d.flags in (1,2,16)
and m.id=d.medium_doc
and t.mimetypeid=d.mimetypeidWe also use stored procedures with MSSQL, if this is more what you are looking for.
Best Regards, Jim
February 23, 2026 at 1:37 am in reply to: Use database connection defined in site preferences #122300Hi Rick,
We are accessing details from an MSSQL Database both as a Table (Advanced Database Lookup) and as a stored procedure.
Are you looking for the Database configuration or the queries?
Regards, Jim
February 23, 2026 at 1:14 am in reply to: Best practices for Cloverleaf interface support tools #122299Hi Akadiy,
we are creating nightly exports of all NetConfigs into two CSV. One for the protocol details and one for the route details. We have been thinking about how we can present this information to our general support users in a more useful and friendly manner. So we are looking forward to how other respond.
Regards, Jim
Hi Collin,
If your XLate is dependant on meta-data from the message, this will not be present when running from the Testing Tool.
A better way to troubleshoot such scripts is to add pre and post proc echo statements (ex: echo [lindex $xlateInVals 0]) in the steps that might be causing the issue.
Good Luck! Jim
Hi Tim,
I didn’t really do much with this, but as SMAT are SQLite Databases, you can query them.
cd $HCIROOT/prod_oru_lab/exec/processes/ORU
sqlite3 GlucoTab_ORU_ob.smatdb
sqlite> .mode column
sqlite> .header on
sqlite> .table
smat_info smat_msgs
select MessageContent from smat_msgs where MessageContent like ‘%94728999%GLU%’;
select replace(MessageContent,X’0D’,’\r’) msg from smat_msgs where OrigSourceConn = ‘POCcelerator_ORU’ and MessageContent like ‘%94728999%GLU%’;The fields in the SMAT_MSGS table are basically what you see in the SMAT Database tool.
Regards, Jim
October 8, 2025 at 1:19 am in reply to: Trying to replace an entire message with msgset, still only sending old message #122189Two alternative solutions to your original issue:
- If you can access the Database of the system were the ADTs originate, create a DB-Lookup table to return the “best encounter” for the patient ID.
- Create an SQLite Database that is updated by an ADT feed, then query that DB for the “best encounter”.
Regards, Jim
Hi Timothy,
We have a similar issue with several systems sending many MDM messages in a row for the same document ID. For these systems, I write the message to a directory, with the document ID as the file name. Newer messages with the same document ID overwrite the previous version. A second thread then checks the folder and only processes those files that have not be updated in the last five minutes.
Best Regards, Jim
Hi Jason,
Two suggestions:
- If it is possible, do a database query direct in Epic to retrieve the needed data when the documents are generated.
- Write a semaphore (.sem) file containing the encounter details from the ADT events in the directory with your hold files. A file read thread would be configured to only trigger on .sem files. A parse directory TCL would read the contents of each .sem and search for the matching .hold file or files. The file list returned by the parse dir TCL to the engine would be the .hold files. Each file would be treated as a message.
Best regards from Germany, Jim Vilbrandt
Hi Omar,
I also wanted to setup Windows Tasks to perform daily tasks in Cloverleaf. After exetensive searching, I found the section “crontab in Windows” in the Infor Cloverleaf Integartion Services User Guide.
It appears that you can only run BAT files (PS1 files did not work for me).
The Windows Task Action is Start Program PowerShell with the Arguments “-Command Start-Process -Verb RunAs <path_to_your_batch.bat>”
Here is how a batch file for exporting the Site Documentation would look:
@echo off
call setroot
call hcisitedoc -s site1
call hcisitedoc -s site2I hope that helps!
Best Regards from Germany, Jim Vilbrandt
Hi Jason,
We utilize a third party product installed on a windows server that monitors a folder or folders for documents. These are then converted to the desired format and written to a secondary folder. The secondary folder is monitored by Cloverleaf.
In our case, the originating system writes an HL7 message to the secondary folder and the original document to the primary folder with the same file name. Cloverleaf has a IB-parse TPS that only processes documents when both files are present in the secondary folder.
There are several products that can be used for the document conversion, but most of the software that you can download for free are too limited.
Best Regards, Jim
-
This reply was modified 1 year, 1 month ago by
Jim Vilbrandt.
I have this issue with 22 as well. Set the encoding to “bypass” and you can then resend the message. Not sure why.
Hi Rin,
I would suggest using a directory parse TPS for this purpose. The “message” you receive in this script type is a list of files in the configured directory.
Below you will find some pseudo code for this purpose.
Best Regards, Jim
<pre>
# Get Input Path from NetConfig
set conndata [netconfig get connection data $HciConnName]
set ibdir [keylget conndata PROTOCOL.IBDIR]# List of files found
set listing [msgget $mh]
set newlist “”foreach entry $listing {
# Check contents of each file
set fileName [cconcat $ibdir “/” $entry]
set fh [open $fileName]
fconfigure $fh -translation binary
set msg {}; set msg [read $fh]
close $fh
<add your logic here to determine which files should be processed>
if {<keep>} {
lappend newlist $entry
} else {
file delete [cconcat $ibdir “/” $entry]
}
}
# Pass new list to engine
msgset $mh $newlist
lappend dispList “CONTINUE $mh”</pre>
Hi Rick,
Here is a simple join for a MSSQL Database:
select d.name_doc, lower(d.feld9) as file_ext, m.name as medium from object65 d, medien m where d.feld32 = <docid> and d.flags in (1,2,16) and m.id = d.medium_doc
The SQL will differ depending on what database you are trying to access (ie: Oracle, MSSQL, SQLite, PostgreSQL, etc.). I always develop the query in the native Database browser first. If it works there, then in should work from Cloverleaf.
Best Regards, Jim
August 20, 2024 at 4:24 am in reply to: Can Cloverleaf query Active Directory for additional data? #121565We have a system that exports personnel events to a CSV file. This file is then processed through a Windows Task and PowerShell. Each the personnel data in CSV is then augmented with information from Active Directory before it is written to a second CSV. This second CSV is then sent to various systems by Cloverleaf in the format they are expecting. This would be an easy work-around if you can’t get the TCL/AD connection to work.
-
AuthorReplies