Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

eGate seebeeyond

Status
Not open for further replies.

glo3trips

Programmer
Feb 23, 2006
13
0
0
US
I am using a file-eway to begin with. But, I have been asked to filter out certain docs ADT/ORM/ORU's, and send them once a day. I have this part happening. But, now they would like each docs messages to go into his own file. Is there a way to do this in either the eway or the collab? Thank you for your help.
 
How many docs? If it's a low number, I'd say add more file eways, a bob to ID, and new event type defs for each doc.

Are the files being stored as HL7 (ADT, orders, and results) in one file per doc?

Who is this nutty vendor that wants it this way (so I'll know to avoid)? --- You don't have to answer if you don't want.

Alright, here's my $.02, I would create my event type as so...
DR NUMBER***HL7 message (ex. 10110***MSH|001|...)
Then create a perl script which split the file on the "***" (or read the first 5 characters). Output $var[1] to the new file(s) (use a case statement, the if...then could get big). I would name the new file dr#####, where ##### is the dr's number. Don't forget to move the old files out of the way first.

Other than creating multiple eways and etd's, I can't think of a good way to do it in eGate.

Let us know what your plans are, I could throw together a quick script to handle that if you need help.

Mark

SELECT * FROM management WHERE clue > 1
> 0 rows returned

--ThinkGeek T-Shrit
 
Thank you for your reply. I have tried two eways. Yet, I am still receiving the same docs in the both files.

There is no vendor, this is the docs asking for this database..... So, of course if could grow.

The records are being stored as HL7.

This is how I have the regex statement coded basically. (or (regex Docs ~inputPV17..... and so on). I have a LET statement to represent the two different sets of docs.

Any further ideas.

thanks so much.
 
I would still consider saving everything in one file and parsing it externally. If I get a chance tomorrow, I'll test another option and see what I come up with.
Mark

SELECT * FROM management WHERE clue > 1
> 0 rows returned

--ThinkGeek T-Shrit
 
Thank you.

Right now I have two eways and two collabs. It just seems as though there should be a way. It is working great, but not the great solution.. if you know what I mean.. glo
 
Double-check...this is monk right? What version of eGate do you use?

I didn't get a chance to look at it today, but tomorrow may be promising.

Mark

SELECT * FROM management WHERE clue > 1
> 0 rows returned

--ThinkGeek T-Shrit
 
Yes, this is monk.. 4.5.3 I was looking at trying a iq-put. That is what I am going to try today. I so hate bothering you. but thanks.
 
It's no bother at all, I haven't given you anything you can use yet. Some day, I may call on you for a question.

I wanted to look at it today, but I was training one person, found an old lock file, had to delete it. At the same time, two of my partners in crime were copying live to test. They forgot to change the part. host ip and they caused live to hiccup. Spent the next 45 minutes fixing that issue. I thought it was something freaky with the lock file, but nope.

I need to bring the cd's home and run it. Hell I'm wasting two RS/6000's.

Mark

SELECT * FROM management WHERE clue > 1
> 0 rows returned

--ThinkGeek T-Shrit
 
Well my iq-put idea isn't working so far, but it sure seems like the way to go. Have you ever gone this route?????
 
I use iq-puts a lot. I just don't see how this will work without multiple eways. I just had a thought, maybe we could change the eway config to call an external function, or perhaps write a new function for the work slice of the eway to use.

SELECT * FROM management WHERE clue > 1
> 0 rows returned

--ThinkGeek T-Shrit
 
What is the server OS? I'm still leaning toward the idea of writing code outside of eGate. If it's Linux, I'd use PERL, it it's Windows (I'm sorry), I'd use VB.

SELECT * FROM management WHERE clue > 1
> 0 rows returned

--ThinkGeek T-Shrit
 
Okay, this is going to sound really stupid.... So forgive. What do you mean by external function. The only function I am familiar with it the one I select from the top. So please forgive.... Stop laughing....

The iq-put works with one of the e-ways, but not the other, while both are using the same collab. I am just get the ole "MONKE
 
Sorry it took so long to get back.

What I meant was, maybe we could create a monk function to handle this, but I doubt that would work. I think you'd be better off writing a program which runs outside of eGate to parse the file.

Create a program which moved the output file to another folder, read through and created new files for each doctor in the list you'd have to maintain. If you tell me which OS your server is running on, I caould probably write a quick program for you to handle it. It wouldn;t be my first HL7 parser.

As far as the iq-puts, make sure your syntax is perfect. Monk is very sensitive to case and punctuation.

Mark

SELECT * FROM management WHERE clue > 1
> 0 rows returned

--ThinkGeek T-Shrit
 
Let me ask you another question. I am using a Let statment. In it I have the PV1 values for the physicians fields. But, when it comes to PV1-9, it has the old [<i>], value. I know I have to set a variable. I have tried a couple different things. But, I keep getting MONKE exceptions. What is the value I put in the LET statement, I am so sorry to be asking a silly question.... I know this is so basic, but, it is really got me stumped. I know with this go-live that I am involved with, my mind is going a hundred miles an hour. Thanks so much.... glo
 
Is this in production? Can you set the debug flags to trace and run one transaction through, then post the results?

If you get this working like you want, I'd really like to see your schema. :)

The only thing I can think of is if this is running within a loop and you Let <i> equal the dr name or number, maybe <i> is confusing the loop. Have you tried a different variable name?

If this is for your go live, I'd be glad to take a look at your schema and see if I can help.

Mark

SELECT * FROM management WHERE clue > 1
> 0 rows returned

--ThinkGeek T-Shrit
 
Sorry, I haven't responed. I was thrown onto other things for the go-live.

The code that I am referring to does not pertain to go-live. So naturally, it is of less importance.

But, it is in my mind ALL the time. I will try setting the variable to a different name, and see if that helps. That was a good thought. If that doesn't work. I wouldn't mind doing a print screen, and sending you that and see if it is something you see really quick.

But, let me take a stab at setting the variable, when I get a second. Onto, other go-live items.

But, I wanted to send you a quick note.

glo
 
I appreciate your note. I'll wait to see your update.

Mark
 
May I ask you a Loop question? You don't have to answer, if you don't want to.,

Here goes, I have to stop after 30 DG1 segments, but only if the DG1-6 has "FN" in it, then send the message on. Most of the time there are going to be less than 30 DG1 segments. I have tried a few things. But, keep getting monke errors. This is a prod error, and everyone is giving me other things to fix. Just wanted to see if you could point me in the right direction.

Thanks so much.

glo
 
You'll need something like this...

IF (or (!= DG1-6 "FN") (<= i 30))
copy(~input... ~output)
ELSE
END IF

I'll have to look at the monk before I can say for sure. I have become a GUI "user".

Mark
 
Well, I figured, that out. Thanks for the pointer. Sometimes working in the GUI, is so nice, then again, other times it makes it a little harder.

Now for the next challenge. I have to check to see if the DOB is less than the Admit date by 30 days. So, that is my next mission. Wish me luck, any pointers on this one.

I actually set the value that I wanted to set in the DG1 segment, when I pulled it down into the loop it brings down the [<i>], and all I did was put my value in there. So it looked like this. [5] in along with the count-rep verbiage.

I have tested, less than, and more than 30 and it appears to be working. So now I am waiting for the coders. Why is it they always wait till the last minute to ask for this stuff to be fixed?

Talk to you later, glo
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top