It appears the servers have different hostnames (a and b), but the certificate has only the server a. You need a second SSL certificate for server b or get a certificate that includes both server names.
- Log in to post comments
It appears the servers have different hostnames (a and b), but the certificate has only the server a. You need a second SSL certificate for server b or get a certificate that includes both server names.
Thank you, Evgeny, for pointing out how to update user(s) by using CPF Merge. I still like to have an option to configure a group of users in a single file and import this group of users with their passwords into several different IRIS instances which may use different CFP Merge files already. If there is a change to my users, I just update the XML file which gets imported using %ZSTART routine whenever any IRIS instance starts.
I uploaded YouTube video about audit-consolidator:
I do not see any bonus for audit-consolidator. I wrote 3 articles. I created online demo. I am trying to upload my video.
I like that ZPM Package Manager automatically imports what is defined in requirements.txt for Python.
Hello, I have written two articles and I will write one more. I also deployed online demo for audit-consolidator. Thank you
I fixed the error running audit-consolidator in AWS by adjusting directory permissions. irisowner did not have write permissions on /home/irisowner/irisdev directory until I ran "chmod 777 ."
I decided to just send the filename and then the compute pod can Read the file on a shared volume.
My dynamic object contains three properties, like this:
Set dynObject1.Filename = "myzipfile.gz"
Set dynObject1.SiteId = "123"
But how can I say dynObject1.Stream = request.Stream which contains large binary stream?
The object is passed to the SQL Outbound operation. It is a Ens.StreamContainer and Ens.Request which are automatically persisted, meaning saved into the table.
I understand your original question was why the data was saved twice. I would try to comment out the %Save() and see if you get new data one time.
pInput As Patient.PatientDBReq is automatically persisted. You do not need to explicitly call %Save()
The error from Prepare will write to messages.log with this change:
Class otw.dynq
{
ClassMethod prepareQ() As %Status
{
Set result=##class(%ResultSet).%New("%DynamicQuery:SQL")
Set sc=result.Prepare("SELECT %ID, Name, Salary FROM Sample.Employee WHERE Salary > ?")
If $$$ISERR(sc) {
// here I want to capture the error details in trace , log , that I can see in production web page
Try {
Set x = $System.Status.GetOneStatusText(sc)
Do ##class(%SYS.System).WriteToConsoleLog("otw.dynq prepareQ: "_x)
} Catch exception {
Do BACK^%ETN // Log error in error log
}
}
Quit sc
}
}
I created a class for dynamic query:
Class otw.dynq
{
ClassMethod prepareQ() As %Status
{
Set result=##class(%ResultSet).%New("%DynamicQuery:SQL")
Set sc=result.Prepare("SELECT %ID, Name, Salary FROM Sample.Employee WHERE Salary > ?")
If $$$ISERR(sc) {
// here I want to capture the error details in trace , log , that I can see in production web page
Try {
Do ##class(%SYS.System).WriteToConsoleLog("%ZSTART Routine: "_"Import Users",0,0)
} Catch exception {
Do BACK^%ETN // Log error in error log
}
}
Quit sc
}
}
I call the Dynamic Query Prepare from BPL and Trace the Status Text from the Prepare:
///
Class otw.bplJSON2HL7 Extends Ens.BusinessProcessBPL
{
/// BPL Definition
XData BPL [ XMLNamespace = "http://www.intersystems.com/bpl" ]
{
}
Storage Default
{
<Type>%Storage.Persistent</Type>
}
}
The code is in this GitHub repo:
Joe, I just realized I had not updated the Production class with the business process in GitHub. It is now here:
https://github.com/oliverwilms/HL7/commit/ce501e84f603ecb30085cd41957b7…
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 ...
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.
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 ...
I provided a BPL example. Does that help?
{ Storage Default
{
<Type>%Storage.Persistent</Type>
} /// BPL Definition
XData 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>
} }
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 ...
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.
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 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 ...
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
I just tried the same command and I got unauthorized error. The client does not have permission for manifest. Did you login to containers.intersystems.com before you tried the podman run?
My team uses Podman to build images and run containers. What exactly are you trying to accomplish? podman and docker should be mostly interchangeable. If you have a docker run command, you should be able to do the same using podman instead of docker
Hello, I tried to add the video link to iris-log-viewer within Open Exchange, but I am not sure why it is not showing. Here is the link:
Thanks,
Oliver
Thank you very much, Eduard :-)
Thanks, Eduard. I do not need to close the file with file.close()?