Error running docker image worldvista/vehu

91 views
Skip to first unread message

Sanjiv Jivan

unread,
Jan 19, 2023, 12:15:45 PM1/19/23
to Hardhats
Hi,
I need to run a VistA server with HL7 connectivity. For this my understanding is that I need to have VistA Link installed.

I was pointed to the docker image https://hub.docker.com/r/worldvista/vehu which has a HL7 listener however when I run the container I get an error "2023-01-19 10:33:41 assertion failed [metadata->shmid == kInvalidShmID]: splitting a shared memory entry not supported". More details at the bottom of this email. 

I'm unable to connect to this server using CPRS. When I run the docker image worldvista/worldvista-ehr it starts up successfully and I am able to connect to it via CPRS however this image does not expose a HL7 listener.

I'm running on OSX with an M1 chip however I have the setting "Use Rosetta for ×86/amd64 emulation on Apple Silicon" enabled which allows me to run the amd64 image on it.

What I'm trying to do is send a progress note to VistA server using HL7. The steps to manually install VistA link seem rather complex so I was really hoping to be able to use a docker image that has HL7 listeners.

Any suggestions would be greatly appreciated.

Thanks,
Sanjiv



2023-01-19 10:17:34 8YDB-I-MUFILRNDWNSUC, File /home/vehu/lib/gtm/gdehelp.dat successfully rundown
2023-01-19 10:17:34 8YDB-I-MUFILRNDWNSUC, File /home/vehu/lib/gtm/gtmhelp.dat successfully rundown
2023-01-19 10:17:34 8YDB-I-MUFILRNDWNSUC, File /home/vehu/lib/gtm/1kehelp.dat successfully rundown
2023-01-19 10:17:34 8YDB-I-MUFILRNDWNSUC, File /home/vehu/lib/gtm/mupiphelp.dat successfully rundown
2023-01-19 10:17:34 assertion failed [metadata->shmid == kInvalidShmID]: splitting a shared memory entry not supported
2023-01-19 10:17:34 (VMAllocationTracker.cp:376 operator ( ))
2023-01-19 10:17:34 Trace/breakpoint trap
2023-01-19 10:17:35 8YDB-E-ZLINKFILE, Error while linking "sydbgui"
2023-01-19 10:17:35 8YDB-E-FILENOTFND, File ydbgui.m not found
2023-01-19 10:17:35 8YDB-E-FILENOTFND, File _ydbgui.o not found
2023-01-19 10:33:41 assertion failed [metadata->shmid == kInvalidShmID]: splitting a shared memory entry not supported
2023-01-19 10:33:41 (VMAllocationTracker.cpp:390 operator ( ))
2023-01-19 10:33:41 /bin/bash: line 4: 49 Trace/breakpoint trap mumps -run ^8XCMD 'S U="^" D STOP^ZIMKU' <<EOF
2023-01-19 10:33:41 Y
2023-01-19 10:33:41 Y
2023-01-19 10:33:41 Y
2023-01-19 10:33:41 EOF
2023-01-19 10÷33:41 

Nancy Anthracite

unread,
Jan 19, 2023, 1:54:43 PM1/19/23
to Hardhats, Sanjiv Jivan
The HL7 listener is not the same as the VistALink listener, which I think you
already found out.

--
Nancy Anthracite

Sam Habiel

unread,
Jan 19, 2023, 2:08:36 PM1/19/23
to hard...@googlegroups.com, Sanjiv Jivan
Don't know why gmail decided your message was spam, but it did.

I am the author of the docker images.

VistALink has nothing to do with HL7. Completely different technologies.

On the docker image, the HL7 port is on 5001. It's not documented.

There is a small problem with it which I documented over here:
https://github.com/WorldVistA/docker-vista/issues/63.

--Sam
> --
> --
> http://groups.google.com/group/Hardhats
> To unsubscribe, send email to Hardhats+u...@googlegroups.com
>
> ---
> You received this message because you are subscribed to the Google Groups "Hardhats" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to hardhats+u...@googlegroups.com.
> To view this discussion on the web visit https://groups.google.com/d/msgid/hardhats/3736028.tyR4tEQs8b%40owl.

Sanjiv Jivan

unread,
Jan 19, 2023, 2:30:08 PM1/19/23
to Hardhats
Installing the ARM64 image fixed the problem and I no longer see startup errors.

Also when I tried sending an HL7 message to port 5001 it came back with a "Rejected" message which is good as it means HL7 seems to be working. I'll have to construct a more semantically correct message with correct patient references. 

Note that my CPRS client failed to connect to the new server as it says it needs CPRSChart.ext version 1.32.114.1 to match the server. Nancy provided the link to the appropriate client. For the benefit of others it is 32A to match this server version and can be found here: https://foia-vista.worldvista.org/Patches_By_Application/CPRS%20GUI%20FILES/CPRS_32A%20Files_scrubbed/

I'm still quite new to this system and don't quite know the differences between the HL7 listener in this image vs exposing a VistaALink endpoint. If I need to flow a progress note would I be able to do so on the HL7 listener on port 5001?

I did flow a dummy HL7 message to port 5001 and got a message from the server saying "Message Rejected" which is likely due to the dummy data I used. 

I'm using the HL7 format for a Progress Note specified here : https://www.va.gov/vdl/documents/Clinical/CPRS-Text_Integration_Utility_(TIU)/tiuhl7.pdf  The response only came back with a "Rejected" message. The TIU guide shows a text based interface that has a lot more details when there's an error message. Is there a way I can invoke the TIU by ssh into the docker container?  Patient ID is a required field for the progress note. How do I view this for the sample patients loaded by this image?  Clicking on the Patient Name in CRPS 1.32.114.1 results in a crash: https://share.cleanshot.com/l9P3kt4n

Thanks,
Sanjiv

Sam Habiel

unread,
Jan 19, 2023, 2:55:00 PM1/19/23
to hard...@googlegroups.com
Speaking from personal experience, what you want to do is hard and
will take time. It takes a while to become familiar with the
programming and debugging tools; and each of them is deep on its own.

This may help: https://www.hardhats.org/projects/New/SetUpHL7.html.

--Sam
> To view this discussion on the web visit https://groups.google.com/d/msgid/hardhats/50000be8-8f0b-458b-881a-969e52a1b926n%40googlegroups.com.

Sanjiv Jivan

unread,
Jan 19, 2023, 3:06:34 PM1/19/23
to Hardhats
Ah, I was hoping I was closer to accomplishing this than I really am. Perusing the link you shared I would need to setup sender and receiver applications as well as some other stuff. Does the vehu docker image also have VistALink? I asked ChatGPT the differences between HL7 listener and VistALink and it came up with what you see below. I wonder if what I really need is VistAlink for the usecase I mentioned.

When I ssh into the docker image using ssh -p2222 vehutied@localhost certain options display a table of messages like this: https://share.cleanshot.com/hPJVxLBw  However in the terminal my arrow keys or keyboard keypress has no effect. Do you know how this can be fixed?

Thanks,
Sanjiv

"HL7 listener is a software tool or application that is used to receive and process HL7 messages. It is typically used in healthcare systems to receive and process messages containing patient information from other systems.

VistALink, on the other hand, is a specific implementation of an HL7 listener that is used in the Veterans Health Information Systems and Technology Architecture (VistA) system. VistALink is used to receive and process HL7 messages that are sent to and from VistA systems. It provides an interface for VistA to receive and process messages containing patient information from other systems, as well as to send patient information to other systems.

In summary, HL7 listener is a general term referring to software that receives and processes HL7 messages, while VistALink is a specific implementation of an HL7 listener that is used in the VistA system."

Sam Habiel

unread,
Jan 19, 2023, 4:36:32 PM1/19/23
to hard...@googlegroups.com
1. ChatGPT is wrong. VistALink has NO LINK WHATSOEVER with HL7.
Completely different stuff. VistALink is a Remote Procedure wire
protocol for VistA plus various other extra utilities.
2. You need to use the famous "PF1" key then "E" for exit. "PF1" most
of the time just mapped to F1. But if you are using a Mac, your luck
may vary, as it may capture F1 for other purposes.

--Sam
> To view this discussion on the web visit https://groups.google.com/d/msgid/hardhats/88f0418b-302c-483b-89f6-a677cb06b8a8n%40googlegroups.com.

Sanjiv Jivan

unread,
Jan 19, 2023, 5:29:07 PM1/19/23
to Hardhats
Thanks for that. I am able to now ssh -p2222 and explore the menu system.

The document you pointed me to mentions setup of a single or multi listener with mention that 5001 is reserved for multi listeners. Does this docker image already have multi listener setup and if so I can skip this step.

The instructions have mention of things like below: 

FOIA201805>WRITE $ORDER(^HLCS(870,"E","M",0)) 4

Where are these entered? Is this a YottaDB command?

There's a script OSEHL7.m to add a new patient to VistA. Would I need a different one to write a progress note to VistA? Has this already been done? Where do I import / save this OSEHL7.m file?

Apologies if these are basic questions, I'm hoping get though the steps even if it takes a bit of time with the learning curve.

Thanks,
Sanjiv

Nancy Anthracite

unread,
Jan 19, 2023, 7:00:38 PM1/19/23
to Hardhats, Sanjiv Jivan
Take a look at VistAPedia.com to see if you can get some of the answers you
seek.

--
Nancy Anthracite
> > https://groups.google.com/d/msgid/hardhats/88f0418b-302c-483b-89f6-a677cb06b8a8n%40googlegroups.com
> > .
> >
>
>




Sam Habiel

unread,
Jan 19, 2023, 10:27:26 PM1/19/23
to hard...@googlegroups.com, Sanjiv Jivan
> Does this docker image already have multi listener setup and if so I can skip this step.
Yes it does.

I am unwilling to spend a lot of time helping you. It's a big learning
curve; and you haven't said why you are trying to do this. If you are
on a project, you can afford to pay somebody to do this; if you are a
student, I am actually willing to help, but you have to realize that
this is something that will take about 6 months to learn.

--Sam

On Thu, Jan 19, 2023 at 7:00 PM Nancy Anthracite
> To view this discussion on the web visit https://groups.google.com/d/msgid/hardhats/1735707.jLtGpzNhlv%40owl.

Sanjiv Jivan

unread,
Jan 20, 2023, 8:07:56 AM1/20/23
to Sam Habiel, hard...@googlegroups.com
Hi Sam,
I appreciate your help. I am working on a project to integrate with VA and wanted to be able to try out the integration flow of flowing a Progress Note in a local Vista environment and verifying it in CPRS because the VA dev systems too have restrictions on what the caller IP and last an elaborate process for whitelisting.

I went through the guilde and now have a reasonable understanding of the moving parts and was able to successfully flow an HL7 request to create a patient. I fully understand using FileMan interface, the setup of client receiving applications and subscribers etc and I'm pretty happy I've made such progress with the help I've received here. It's not a matter of paying someone to do this. I would like to do this myself and learn the details along the way by seeking some assistance from this community. It's only a couple of days that I've been working on setting up a local VistA environment + CPRS and trying to flow an HL7 message.

There are two things that I'm still unclear on. If it doesn't take much of your time and you're able to give me pointers that would be great. Hopefully it helps other community members as well. If not, I totally understand. 

1) I am able to connect to the YottaDB using the JDBC URL jdbc:postgresql://localhost:1338/VEHU using Squirrel DB and I see the various tables. However when I access it using the YottaDB web interface http://localhost:8089 as described in the Blog https://yottadb.com/happy-new-year-r1-36-released-new-gui/ I only see a YattaDB interface with no databases. https://share.cleanshot.com/cWdKz7Vv Any idea why?

2) The setup guide has a OSGHL7.m routine for parsing the incoming add-patient HL7 and adding it to the database. It talks about either importing this file or saving it via an editor. I figured the m file script import functionality was something on the YottaDB web interface but it's unavailable because of 1) and no databases are shown there.  Where does this file need to be saved in order for the Subscriber PROCESSING RTN call to find and execute it?   Right now the file is missing however VistA still says the message has been processed successfully. I was expecting to see an error with it complaining about a missing routine.

Thanks,
Sanjiv




Sam Habiel

unread,
Jan 20, 2023, 10:51:02 AM1/20/23
to Sanjiv Jivan, hard...@googlegroups.com
Well... I hope I got you to understand that this is difficult, and
it's a long road; and since this is a commercial project, you do have
the wherewithal to hire a consultant.

I am going to be on vacation by and large for most of the next month,
so I won't be responding mostly.

1. You are using the Safari browser. Use Firefox/Chrome. YottaDB GUI
does not work with Safari. We (YottaDB) will put a message to that
effect in the GUI so that it's clear to people that it's not supported
until we are able to devote time to figure the issue out.
2. Go to the file system using docker exec -it vehu su - vehu, and
create the file in the /home/vehu/r/ directory. The .m file is just
moved around using standard Linux tools. The GUI does not let you
create new code. You are thinking of Cache and how to import routines.

You can try https://docs.yottadb.com/AcculturationGuide/acculturation.html
for an introduction to YottaDB. YottaDB is VERY different from Cache.

If you are brand new to VistA, you may benefit by following all the
guides here: https://www.hardhats.org/projects/PROJECTSmain.html.

--Sam
Reply all
Reply to author
Forward
0 new messages