Non HL7 File Outbount Adaptor

14 views
Skip to first unread message

R Ali

unread,
Oct 21, 2010, 12:04:07 PM10/21/10
to InterSystems: Ensemble in Healthcare
We currently have a File outbound adaptor. However I am wanting to
record a single link ACK FRL response from our PAS system. Now I have
managed to set up the adaptors and belive I have it pointing to pass
on the ACK/NACK to an operation, using an existing FRL file adaptor.

Unfortunately seeing the ACK/NACK is a single line and not HL7, nor
FRL am having trouble recording it.

Does anyone have any examples of a simple class, which just records a
string to txt?

What I have now is:

Class MEHT.PAS.RISACKtoFILEOperation Extends Ens.BusinessOperation
[ ProcedureBlock ]
{

Parameter INVOCATION = "Queue";

/// The type of adapter used to communicate with external systems
Parameter ADAPTER = "EnsLib.File.OutboundAdapter";

Method CreateFRL(pRequest As MEHT.PAS.MainRequest, Output pResponse As
EnsLib.HL7.Message) As %Status
{
set tCount=pRequest.Fragments.Count()

for i=1:1:tCount {
//
do ..Adapter.PutLine(pRequest.Target_".txt",pRequest.Fragments.GetAt(i))

do ..Adapter.PutLine("RIS_FRL_ACK_T_OUT.txt",pRequest.Fragments.GetAt(i))
}
Quit $$$OK
}

XData MessageMap
{
<MapItems>
<MapItem MessageType="MEHT.PAS.RISMainRequest">
<Method>CreateFRL</Method>
</MapItem>
</MapItems>
}

}

This isnt working unfortunately. Any examples or ideas?

Many Thanks

Simpson, Matt

unread,
Oct 21, 2010, 12:18:16 PM10/21/10
to InterSystems: Ensemble in Healthcare

Without actually diving into your code, which looks like it should work, here are a couple suggestions:

 

Try to capture the error that is occurring so that you can diagnose the problem by changing your code like this:

 

 

                for i=1:1:tCount {

                                //

set tSC = ..Adapter.PutLine(pRequest.Target_".txt",pRequest.Fragments.GetAt(i))

if $$$ISERR(tSC) Quit

               

set tSC =..Adapter.PutLine("RIS_FRL_ACK_T_OUT.txt",pRequest.Fragments.GetAt(i))

if $$$ISERR(tSC) Quit

                }

                Quit tSC

 

Also – it looks like you might be passing a path for your file into the PutLine method – is that your intention?

 

 

Thanks!

 

Matt Simpson

Information Systems | Inland Imaging Business Associates

Tel: 509.363.7759 | Cell: 509.370.7141 | Fax: 509.363.7082

--

You received this message because you are subscribed to the Google Groups "InterSystems: Ensemble in Healthcare Community" group.

To post to this group, send email to Ensemble-in...@googlegroups.com

To unsubscribe from this group, send email to Ensemble-in-Healt...@googlegroups.com

For more options, visit this group at http://groups.google.com/group/Ensemble-in-Healthcare?hl=en





This electronic transmission and any documents accompanying this electronic transmission may contain information that is confidential and/or legally privileged. The information is intended only for the use of the individual or entity named above. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or the taking of any action in reliance on or regarding the contents of this electronically transmitted information is strictly prohibited. If you have received this e-mail in error, please notify the sender and delete this message immediately.

Ali Ruhul (RQ8) Mid Essex Hospital

unread,
Oct 22, 2010, 4:57:29 AM10/22/10
to ensemble-in...@googlegroups.com

Many Thanks for that Matt,

 

Have updated but the error being posted is the same of that, that was before?

 

1

 2082100

 2010-10-22
09:46:14.230

 Error

 7776

 

 CRIS_PAS_FRL_ACK_T_OUT

 MEHT.PAS.CRISACKtoFILEOperation
.MessageHeaderHandler()

 ERROR <Ens>ErrGeneral: No MessageBody classname for MessageHeader #662711

 2

 2082097

 2010-10-22
09:46:14.121

 Error

 7776

 

 CRIS_PAS_FRL_ACK_T_OUT

 MEHT.PAS.CRISACKtoFILEOperation
.MessageHeaderHandler()

 ERROR <Ens>ErrGeneral: No MessageBody classname for MessageHeader #662710

 3

 2082094

 2010-10-22
09:46:14.074

 Error

 7776

 

 CRIS_PAS_FRL_ACK_T_OUT

 MEHT.PAS.CRISACKtoFILEOperation
.MessageHeaderHandler()

 ERROR <Ens>ErrGeneral: No MessageBody classname for MessageHeader #662709

 4

 2082091

 2010-10-22
09:46:14.027

 Error

 7776

 

 CRIS_PAS_FRL_ACK_T_OUT

 MEHT.PAS.CRISACKtoFILEOperation
.MessageHeaderHandler()

 ERROR <Ens>ErrGeneral: No MessageBody classname for MessageHeader #662708

 5

 2082088

 2010-10-22
09:46:08.980

 Error

 7776

 

 CRIS_PAS_FRL_ACK_T_OUT

 MEHT.PAS.CRISACKtoFILEOperation
.MessageHeaderHandler()

 ERROR <Ens>ErrGeneral: No MessageBody classname for MessageHeader #662707

 6

 2082085

 2010-10-22
09:46:08.980

 Error

 7776

 

 CRIS_PAS_FRL_ACK_T_OUT

 MEHT.PAS.CRISACKtoFILEOperation
.MessageHeaderHandler()

 ERROR <Ens>ErrGeneral: No MessageBody classname for MessageHeader #662706

 7

 2082072

 2010-10-22
09:45:52.574

 Info

 7776

 

 CRIS_PAS_FRL_ACK_T_OUT

 Ens.Job.Start()

 ConfigItem 'CRIS_PAS_FRL_ACK_T_OUT' (MEHT.PAS.CRISACKtoFILEOperation) started in job 7776


Mid Essex Hospital Services NHS Trust Caring for you, Caring about you.

Information in this message may contain confidential and privileged information. If you are not the intended recipient please accept our apologies; please do not disclose, copy or distribute information in this e-mail or take any action in reliance on its contents: to do so is strictly prohibited and may be unlawful. Please inform us that this message has gone astray before deleting it.

Content of emails received by this Trust will be subject to disclosure under the Freedom of Information Act 2000. Unless the information is legally exempt from disclosure, confidentiality of this e-mail and your reply cannot be guaranteed. Thank you for your co-operation.

Louise Parberry

unread,
Oct 22, 2010, 6:09:22 AM10/22/10
to InterSystems: Ensemble in Healthcare
Is this a message map issue?

<MapItems>
<MapItem MessageType="MEHT.PAS.RISMainRequest">
<Method>CreateFRL</Method>
</MapItem>
</MapItems>

but this looks like it was edited from the original:

<MapItems>
<MapItem MessageType="MEHT.PAS.MainRequest">
<Method>CreateFRL</Method>
</MapItem>
</MapItems>

With your method being unchanged:

Method CreateFRL(pRequest As MEHT.PAS.MainRequest...

Now presumably you must be sending a RISMainRequest or you would be
getting a "Message Type Not Handled" or whatever that particular error
is.

However, this error is thrown if there is no MessageBodyClassName for
your message header, which is not something I have seen before. Have
a look at the message trace and see what the MessageBody type is.

This problem might go away if you change the Method to:

Method CreateFRL(pRequest As MEHT.PAS.RISMainRequest...

though I wouldn't have thought that if RISMainRequest is a subclass of
MainRequest that this would be an issue.





On 22 Oct, 09:57, "Ali Ruhul (RQ8) Mid Essex Hospital"
> Also - it looks like you might be passing a path for your file into the PutLine method - is that your intention?
> To post to this group, send email to Ensemble-in...@googlegroups.com<mailto:Ensemble-in-Healthcare@googl­egroups.com>
>
> To unsubscribe from this group, send email to Ensemble-in-Healt...@googlegroups.com<mailto:Ensemble-in-Heal­thcare-un...@googlegroups.com>
>
> For more options, visit this group athttp://groups.google.com/group/Ensemble-in-Healthcare?hl=en
>
> ________________________________
>
> This electronic transmission and any documents accompanying this electronic transmission may contain information that is confidential and/or legally privileged. The information is intended only for the use of the individual or entity named above. If you are not the intended recipient, you are hereby notified that any disclosure, copying, distribution or the taking of any action in reliance on or regarding the contents of this electronically transmitted information is strictly prohibited. If you have received this e-mail in error, please notify the sender and delete this message immediately.
> --
> You received this message because you are subscribed to the Google Groups "InterSystems: Ensemble in Healthcare Community" group.
> To post to this group, send email to Ensemble-in...@googlegroups.com
> To unsubscribe from this group, send email to Ensemble-in-Healt...@googlegroups.com
> For more options, visit this group athttp://groups.google.com/group/Ensemble-in-Healthcare?hl=en
>
> Mid Essex Hospital Services NHS Trust Caring for you, Caring about you.
>
> Information in this message may contain confidential and privileged information. If you are not the intended recipient please accept our apologies; please do not disclose, copy or distribute information in this e-mail or take any action in reliance on its contents: to do so is strictly prohibited and may be unlawful. Please inform us that this message has gone astray before deleting it.
>
> Content of emails received by this Trust will be subject to disclosure under the Freedom of Information Act 2000. Unless the information is legally exempt from disclosure, confidentiality of this e-mail and your reply cannot be guaranteed. Thank you for your co-operation.- Hide quoted text -
>
> - Show quoted text -

Ali Ruhul (RQ8) Mid Essex Hospital

unread,
Oct 22, 2010, 6:43:59 AM10/22/10
to ensemble-in...@googlegroups.com
Hi Louise, good spot, I had copied another class, and renamed pointing to the right classes specific to the interface in this case, so just updated.

We do have a 'RISMainRequest' but this is however a copy of 'MainRequest' so both would work in the scenario I would have thought.

Its currently looks like:

Class MEHT.PAS.CRISACKtoFILEOperation Extends Ens.BusinessOperation [ ProcedureBlock ]
{

Parameter INVOCATION = "Queue";

/// The type of adapter used to communicate with external systems
Parameter ADAPTER = "EnsLib.File.OutboundAdapter";

Method CreateFRL(pRequest As MEHT.PAS.RISMainRequest, Output pResponse As EnsLib.HL7.Message) As %Status
{
set tCount=pRequest.Fragments.Count()

for i=1:1:tCount {
//do ..Adapter.PutLine(pRequest.Target_".txt",pRequest.Fragments.GetAt(i))

set tSC=..Adapter.PutLine("CRIS_FRL_ACK_T_OUT.txt",pRequest.Fragments.GetAt(i))


if $$$ISERR(tSC) Quit
}
Quit tSC

//Quit $$$OK
}

XData MessageMap
{
<MapItems>
<MapItem MessageType="MEHT.PAS.RISMainRequest">
<Method>CreateFRL</Method>
</MapItem>
</MapItems>
}

}


Having just updated:

Method CreateFRL(pRequest As MEHT.PAS.RISMainRequest

And adding a few edition to the name, without any joy.

RISMainRequest looks like:

Class MEHT.PAS.RISMainRequest Extends Ens.Request [ ClassType = persistent, ProcedureBlock ]
{

Property MessageType As %String(MAXLEN = 32000);

Property Fragments As list Of %String(MAXLEN = 32000);

Property DateTimeReceived As %StringTimeStamp [ InitialExpression = {$ZDateTime($Horolog,3)} ];

Property Source As %String(MAXLEN = 32000);

Index RISDateTimeReceivedIndex On DateTimeReceived;

Property Target As %String;

}

I was thinking it was this, as the ACK I am recording is a single string/line (only really a single fragment) and may not conform to this, yet not sure why?

Many Thanks

Method CreateFRL(pRequest As MEHT.PAS.MainRequest...

Method CreateFRL(pRequest As MEHT.PAS.RISMainRequest...

For more options, visit this group at http://groups.google.com/group/Ensemble-in-Healthcare?hl=en

Reply all
Reply to author
Forward
0 new messages