go to post Oliver Wilms · 4 hr ago Joe, I created a HL7 production, added JSON Passthrough File Service. Use BPL and DTL to transform Ens.StreamContainer to HL7 Message. Code is here: https://github.com/oliverwilms/HL7 Input test file I use this (no double double quotes): {"Doctype":"ADT^A01","PatientId":"123","PatientName":"Alex"} I see PatientId in HL7 message, but not PatientName. Need to review the DTL ...
go to post Oliver Wilms · 5 hr ago I think I get parsing error because of bad data in my input file: {""Doctype"":""ADT^A01"",""PatientId"":""123"",""PatientName"":""Alex""} I will try with removing the extra quotes.
go to post Oliver Wilms · 16 hr ago 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 ...
go to post Oliver Wilms · Mar 14 Class HS.Local.Example.ProcessBPL Extends Ens.BusinessProcessBPL{ Storage Default{<Type>%Storage.Persistent</Type>} /// BPL DefinitionXData BPL [ XMLNamespace = "http://www.intersystems.com/bpl" ]{<process language='objectscript' request='EnsLib.HTTP.GenericMessage' response='EnsLib.HTTP.GenericMessage' height='2000' width='2000' ><context><property name='SuccessResponse' type='%String' instantiate='0' ><parameters><parameter name='MAXLEN' value='50' /></parameters></property><property name='ConvertedStream' type='Ens.StreamContainer' instantiate='0' /></context><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() }]]></code><if name='Check Test Transaction' condition='context.ConvertedStream.OriginalFilename="TEST.txt"' xpos='200' ypos='350' xend='200' yend='700' ><false><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)]]></code><call name='Call ToIrisMail Operation' target='ToIrisMail' async='0' xpos='335' ypos='600' ><request type='Ens.StreamContainer' ><assign property="callrequest" value="context.ConvertedStream" action="set" /></request><response type='EnsLib.HTTP.GenericMessage' /></call></false></if><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() }]]></code><assign name="send response back" property="response" value="context.SuccessResponse" action="set" xpos='200' ypos='900' /></sequence></process>} }
go to post Oliver Wilms · Mar 14 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 ...
go to post Oliver Wilms · Mar 13 Joe, 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.
go to post Oliver Wilms · Mar 7 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.
go to post Oliver Wilms · Feb 15 I just logged in containers.intersystems.com 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.1.0.185.0 ...
go to post Oliver Wilms · Feb 15 I just searched history and found these commands somebody else had used. Maybe some could help you: sudo podman login containers.intersystems.com sudo podman search containers.intersystems.com/intersystems/irishealth sudo podman image list containers.intersystems.com/intersystems/irishealth sudo podman pull containers.intersystems.com/intersystems/webgateway-arm64:2022.2.0.372.0 sudo podman search --list-tags containers.intersystems.com/intersystems/arbiter-arm64