I created a HL7 production, added JSON Passthrough File Service. Use BPL and DTL to transform Ens.StreamContainer to HL7 Message. Code is here:

Input test file I use this (no double double quotes):


I see PatientId in HL7 message, but not PatientName. Need to review the DTL ...

I think I get parsing error because of bad data in my input file:


I will try with removing the extra quotes.

I tried to implement in HL7 production created by New Production wizard. I think we cannot process Ens.StreamContainer using RoutingRule because Ens.StreamContainer does not have DocType property.

Going to try with a BPL Business Process ...

Class HS.Local.Example.ProcessBPL Extends Ens.BusinessProcessBPL
{ Storage Default
} /// BPL Definition
XData BPL [ XMLNamespace = "]
<process language='objectscript' request='EnsLib.HTTP.GenericMessage' response='EnsLib.HTTP.GenericMessage' height='2000' width='2000' >
<property name='SuccessResponse' type='%String' instantiate='0' >
<parameter name='MAXLEN'  value='50' />
<property name='ConvertedStream' type='Ens.StreamContainer' instantiate='0' />
<sequence xend='200' yend='1000' >
<code name='ConvertedStream' xpos='200' ypos='250' >
<![CDATA[ If 1=request.%IsA("Ens.StreamContainer") {
   Set context.ConvertedStream = request
 If 1=request.%IsA("EnsLib.HTTP.GenericMessage") {
   Set context.ConvertedStream = ##class(Ens.StreamContainer).%New()
   Set context.ConvertedStream.Stream = ##class(%GlobalCharacterStream).%New()
   Set tSC = context.ConvertedStream.Stream.CopyFrom(request.Stream)
   Set context.ConvertedStream.OriginalFilename = $Piece(request.HTTPHeaders.GetAt("RawParams"),"=",2)
 If 1=request.%IsA("EnsLib.Kafka.Message") {
   Set context.ConvertedStream = ##class(Ens.StreamContainer).%New()
   Set context.ConvertedStream.Stream = ##class(%GlobalCharacterStream).%New()
   Set tSC = context.ConvertedStream.Stream.Write(request.value)
   Set context.ConvertedStream.OriginalFilename = request.key
   Set tSC = context.ConvertedStream.%Save()
<if name='Check Test Transaction' condition='context.ConvertedStream.OriginalFilename="TEST.txt"' xpos='200' ypos='350' xend='200' yend='700' >
<code name='Store Document' xpos='335' ypos='500' disabled="false">
<![CDATA[ Set tSC = ##class(HS.Local.VA.eSCM.FMS.Util).StoreStream(context.ConvertedStream,context.ConvertedStream)]]>
<call name='Call ToIrisMail Operation' target='ToIrisMail' async='0' xpos='335' ypos='600' >
<request type='Ens.StreamContainer>
<assign property="callrequestvalue="context.ConvertedStreamaction="set" />
<response type='EnsLib.HTTP.GenericMessage/>
<code name='setting of success response' xpos='200' ypos='800' >
<![CDATA[ Set context.SuccessResponse = ""
 If 1=request.%IsA("EnsLib.HTTP.GenericMessage") {
   Set tmp = ##class(%Library.GlobalBinaryStream).%New()
   Set tSC = tmp.Write("File received successfully")
   Set tSC = tmp.%Save()
   Set context.SuccessResponse=##class(EnsLib.HTTP.GenericMessage).%New(tmp,,request.HTTPHeaders)
   Do context.SuccessResponse.HTTPHeaders.SetAt("HTTP/1.1 200 OK","StatusLine")
   Set tSC = context.SuccessResponse.%Save()
<assign name="send response back" property="responsevalue="context.SuccessResponseaction="set" xpos='200' ypos='900' />
} }

Hi, Martin,

You receive a request via EnsLib.Http.GenericService. I assume you pass the EnsLib.HTTP.GenericMessage request object to a business process. I think you look for an example how to return the response. Let me look for an example ...


If your input is a JSON file, the business service could be a File Service which passes Ens.StreamContainer request object to a business process where you could transform the request to an HL7 message which can be sent to a HL7 operation.

Hello, Scott, ZSTOP can be used to define additional code you want to run at shutdown. The normal shutdown will still happen if you have ZSTOP routine.

I just logged in from browser. Somehow podman login does not work. I see images under arbiter. I think you should try to add a tag to your run such as arbiter:2023. ...

I just searched history and found these commands somebody else had used. Maybe some could help you:

sudo podman login

sudo podman search

sudo podman image list

sudo podman pull

sudo podman search --list-tags