Steve Williams

Forum Replies Created

Viewing 15 replies – 1 through 15 (of 74 total)
  • Author
    Replies
  • in reply to: Slack Workspace #86337
    Steve Williams
    Participant

      Austin, Infor is working on Clovertech v2.0. It’s currently in an alpha/beta testing phase. I do not know if Slack will provide any faster answers to Clvf questions as the folks on Slack will be the same as folks here on CT. Since our numbers are limited and we all have job responsibilities, some questions will simply suffer from resource availability.

      Just my 2 cents.

      in reply to: Route Details vs TPS Outbound data for TCL scripts #86352
      Steve Williams
      Participant

        A good example I have of using the post-Xlate UPoC is message modification. Most things can be done in an Xlate, but some things are just faster and easier to do in a TCL script.

        For my example, our system generates an ORU results with a single OBX segment where the entire body of text resides in OBX:5 (a repeating field). There are several recipients of this message, but one of them (McKesson) wanted the results in multiple OBX segments where OBX:5 was no more than 80 characters long. Yes, this was a long time ago…

        The script I wrote for that scenario broke up the body text into lines of 80 or less, but it also accounted for word wrapping and paragraph breaks. Theis is not something easily done in an Xlate, even today.

        By using this script post-Xlate, I did not have to change the general ORU Xlate variant we were already using for several other systems. Had I made it pre-Xlate, I would have had to changed the variant and the Xlate to iterate through the numerous OBXs created by the script.

        There are many more examples where having the script post-Xlate and not pre-Xlate or in the OB TPS made my day easier, but I hope you get the picture from this small one.

        in reply to: how to filter message based on patient gender? #86312
        Steve Williams
        Participant

          Amdy,

            I avoid using simple one off scripts for message filtering. Instead, I use a generic filter that uses arguments. That way, I have one script that can be reused over and over again. The script is considerably longer than a simple one, like the one posted by Sean. But the benefits highly out weigh the negatives. Send me PM if you’d like me to send you a copy of mine.

          Steve Williams
          Participant

            The FTP package that comes with Cloverleaf is quite old and is expecting certain behavior in output from given FTP commands. So, I suspect you’re dead on correct that the WS2016 output to a ls -l has changed and

            Steve Williams
            Participant

              Peter,

                 Microsoft has been pushing Powershell for over a decade now and just hates DOS and its simplistic legacy. I’ve ran into trouble with DOS commands on WinServ2012 this past year, so I’m not surprised at more issues in WS2016 and the DOS command line. In the past, I’ve also had issues with AIX v6 to v7, and moving from AIX to Linux. My point here is I’ve learned not to make system calls in my TCL and Perl scripts unless absolutely necessary.

              With that in mind, when writing TCL scripts, I do not use exec or system calls (like dir in Windows or ls -l in Unix) as this limits the platform the scripts can be used on.

              Since TCL provides native functions to handle most types of system calls. For example, file exists archive_201805 to see if your new directory already exists and file isdirectory archive_201805, just to be sure it’s a directory you can write into. You can also use glob for handling wildcards in other situations. This has made my TCL scripts more portable and reliable. I still make system calls for hcidbdump and hcicmd, etc.

              In short, I’m suggesting you nix the DOS calls and use TCL native functions for accessing/evaluating the file system. But, I suspect you already knew this. 😀

              Steve Williams
              Participant

                Duplicating the production environment and modifying all interfaces to be file input to file output adds a layer of complexity that I try to avoid as the tediousness of this method is much more time consuming. Of course, there are some engine deployments that are so chaotic and haphazard in their design that the only way to adequately test it is to go down the path you are taking.

                If you’re running a single message through the engine at a time, I suggest you check the box “Append to File” in the OB thread File Protocol properties. That’ll prevent the overwrite issue you’ve encountered.

                I’ll also point out that in using the Route Testing Tool to write to file, it automatically appends to the existing output file(s). This does bite me back as I do a quick one off test and sometimes forget to delete the output file(s) before running the entire data set I’m testing.

                Hope this helps.

                in reply to: setroot and setsite in a tcl proc for windows #70223
                Steve Williams
                Participant

                  I’m converting an old AIX script to TCL (portable to the Windows Server platform) on Clvf v6.1. I tested both Jim’s posted code and Keith’s posted code and here’s what I found on my WinServer 2012 environment.

                  The older code now generates a file not found error. I played around with it but could not get it to work. I can run it directly from the cmdline using the full path name, but from within the hcitcl environemnt it’s lost somehow.

                  The newer code posted by Keith, using NCFG:ChangeSite, worked right out of the box.

                  Disclaimer: Your mileage may vary…

                  Steve Williams
                  Participant

                    Hi Varun,

                      What I do is use cp, boxing and migration tools to make exact, upgraded versions of all production sites. Note that boxing alone may not capture all scripts or tables used in an interface. I capture production data from SMAT files (at least a couple of hundred for slow interfaces and several thousand for high volume interfaces like ADT). I run those messages through the route testing tool in both environments, capturing the output to files. I then compare those files using a program called ExamDiff Pro (runs on Windows). I log all interface files tested with comparison outcomes. The output should be exact in most all cases. Differences can indicate an difference in engine behavior or it could indicate a difference in interface configurations. Some interfaces may use the @now variable (xlates) or some other time sensitive scripts that can change the output accordingly.

                    I make note of those issues and use ExamDiff Pro to ignore those field components (via RegEx settings). I also use HL7Spy’s (3.x) built in message comparison tool for more difficult cases involving HL7 messages. It takes human testing to determine the difference and take appropriate action.

                    You can use Linux/Unix diff, which is great when there are no difference between the files. When there are differences, it becomes much more time consuming to isolate the issues.

                    You could automate the overall process, but I found that it can take much more effort to automate this process than to just do the work. Since major upgrades only come around every few years, it does not make much sense to spend so much time on automating (scripting/debugging) a one-off process that you’ll most likely never use again.

                    Disclaimer: Your mileage may vary… 🙂

                    Steve Williams
                    Participant

                      I believe the following animated screenshot illustrates Jim’s proposal…

                      Note the comments on lines 41-43 in the current display will become just one line in the proposed multiline comment display.

                      The animation cycles every 3 seconds.

                      in reply to: SmatHistory db resends #86238
                      Steve Williams
                      Participant

                        I use HL7Spy to slice and dice message dumps (dumping the entire smatdb sets to a file via either the GUI or Charlie’s hcismatdb tool) when I’ve run into the issue in the past. It’s faster and can be much more precise than the SMATDB GUI. But since we’ve upgraded to 6.1.3, the search issues have been mostly resolved. Performance on large DB sets can still be an issue, though.

                        in reply to: SMAT regular expression compound search #82491
                        Steve Williams
                        Participant

                          FYI – I tried replicating this issue on our updated engine (v6.1.3 on WinServer 2012) against HL7 messages stored in encrypted SMATDB. The search was ‘|ORU.*|RP|’ and it worked as expected. I tried many permutations and never needed to add the (?s) flag to work around the issue. 🙂

                          in reply to: SMAT regular expression compound search #82490
                          Steve Williams
                          Participant

                            For those who do not know this expression to work around the change to Cloverleaf’s regex when searching multiline strings (like HL7 messages):

                            (?s) – this tells the regex parser to run with effective flag: s

                            Where the s modifier means Dot expression matches newline characters.

                            Here’s a really good online tool I use to test complex regular expressions: regex101.com

                            Steve Williams
                            Participant

                              I still run into this issue from time to time. The latest incarnation occurred just last week for me and several members of my team. We are running CL v6.1.3 on Windows Server 2012 and on the local area network. I’ve looked into firewall setting impacting this issue before and never found a solid solution. The issue does not seem to be consistent and almost impossible to reproduce on demand.

                              The work around that always seems to works is to run the desired testing command via command line (Windows) or via telnet (Unix). It does not happen often, but it can be frustrating when it does happen. For less seasoned Cloverleaf users, the skills of using a command line to run testing may be underdeveloped. Which leads to more frustration.

                              Steve Williams
                              Participant

                                I like the current functionality.

                                It allows me to type a really long comment with embedded newlines that I use to explain something complicated and only shows as on line in the xlate.

                                To get multiline comments, I just add multiple comments lines

                                     when I want to show a longer on screen comment. Plus, I

                                     can indent the second+ lines on the comments to control the

                                     onscreen display. Just like I’ve done with this post. 🙂

                                Just my two cents…

                                in reply to: Use of new SMAT db #86061
                                Steve Williams
                                Participant

                                  Hi Diana,

                                    When you enable SMATdb encryption, the engine uses (at this time) the sitename as the encryption passcode. There is a request to Infor the make the passcode configurable, but I do not know if/when we will see this feature.

                                  In the meantime, you can use the hcismatdb tool (available from this forum) from Charlie Bursell to pull out messages into a file. With a little change, you can make the passcode a user supplied arg to make the files more portable.

                                  Since the encryption is really built into SQLite, you can write your own scripts to handle most situations. I even have a script I use to migrate encrypted smatdb’s from site to site updating the passcode on the fly.

                                Viewing 15 replies – 1 through 15 (of 74 total)