go to post Guillaume Rongier · May 16, 2022 Hi, BTW, starting with IRIS 2021.1+ you can enable the interoperability metrics with those command lines : // Enable Intero metrics for SAM zw ##class(Ens.Util.Statistics).EnableSAMForNamespace() zw ##class(Ens.Util.Statistics).EnableSAMIncludeHostLabel()
go to post Guillaume Rongier · May 12, 2022 Another solution can be with SAM : https://docs.intersystems.com/components/csp/docbook/DocBook.UI.Page.cls... https://community.intersystems.com/post/new-video-viewing-customizing-me... You can also enable interoperability metrics (only on IRIS 2021.1+) with : // Enable Intero metrics for SAM zw ##class(Ens.Util.Statistics).EnableSAMForNamespace() zw ##class(Ens.Util.Statistics).EnableSAMIncludeHostLabel()
go to post Guillaume Rongier · Apr 6, 2022 Since the launch of IRIS, ENSDEMO namespace is gone. Now to have demo or anything else you have to go with ZPM : https://community.intersystems.com/post/install-zpm-one-line (the package manager). Check the list here : https://openexchange.intersystems.com/ If you still want EnsDemo check those githubs : https://github.com/grongierisc/InstallEnsDemoLite https://github.com/grongierisc/InstallEnsDemoHealth https://github.com/OneLastTry/irishealth-ensdemo
go to post Guillaume Rongier · Apr 5, 2022 BTW, there were an issue on the transformation from FHIR to HL7 on the github demo. This has been fix with this commit : https://github.com/grongierisc/iris-healthtoolkit-service/commit/c9d68cc...
go to post Guillaume Rongier · Apr 5, 2022 Have a look those depots : https://github.com/grongierisc/FHIR-HL7v2-SQL-Demo https://github.com/grongierisc/iris-healthtoolkit-service
go to post Guillaume Rongier · Feb 28, 2022 If you want to discover IRIS for Health with some samples, the best way is to install ZPM (community package manager). More info here : https://community.intersystems.com/post/install-zpm-one-line Then, you have access of almost all application in OpenExchange. Let's have an example with csvgen-ui : https://openexchange.intersystems.com/package/csvgen-ui zpm "install csvgen-ui" In OpenExchange you will find may example about rest API, web app, and so.
go to post Guillaume Rongier · Feb 18, 2022 For now, it's not possible in pure python, because the select namespace is specified by the environment variable IRISNAMESPACE, and environment variable can't be change in the parent process, I have tried by reloading iris module with no success. To achieve that, for now, as Robert says, you have to create an helper method in objectscript ... :( Class Embedded.Utils { ClassMethod GetNameSpace() As %Status { Return $namespace } ClassMethod SetNameSpace(pNameSpace) As %Status { zn pNameSpace Return $namespace } } Python : import iris print(iris.cls("Embedded.Utils").GetNameSpace()) try: print(iris.cls("Security.Users").Exists("SuperUser")) except RuntimeError: print("Wrong NameSpace") print(iris.cls("Embedded.Utils").SetNameSpace("%SYS")) try: print(iris.cls("Security.Users").Exists("SuperUser")) except RuntimeError: print("Wrong NameSpace")
go to post Guillaume Rongier · Feb 18, 2022 I did a last PR. Many small fixes (check every commit). Now I can't help you more, it's java stuff and it's no more related to IRIS.
go to post Guillaume Rongier · Feb 17, 2022 I publish a PR to your repo. What I did, I removed your hibernate jar, doesn't know what is in, so I directly used dialect code. Then, in you property files you named the iris connection string : quarkus.datasource.reactive.url instead of quarkus.datasource.jdbc.url. That's it.
go to post Guillaume Rongier · Feb 17, 2022 the repository is updated to show you how to play with quarkus + iris + orm + iris dialect : https://github.com/grongierisc/quarkus-iris/tree/master/quarkus-iris-orm-quickstart Hope this help, can't help you more with just config files.
go to post Guillaume Rongier · Feb 16, 2022 You will find here a demo of a quarkus rest crud api with iris as a database. https://github.com/grongierisc/quarkus-iris It's not using the Hibernate ORM but this shouldn't be an issue.
go to post Guillaume Rongier · Feb 8, 2022 You still need the iris hibernate dialect. You can find it here : https://github.com/intersystems/quickstarts-java https://github.com/intersystems/quickstarts-java/tree/master/src/org/hib...
go to post Guillaume Rongier · Feb 8, 2022 If you don't want to create new data on the FHIR protocol, you must use the PUT verb with an ID instead of POST. PUT creates the resource with the specified ID if the ID does not exist, otherwise it replaces the pre-existing data. POST always creates a new resource with a new ID, that's why the ID is not mandatory when POSTing. For automatic transformations from HL7/CDA to FHIR, there is the possibility to define the ID for some resources and thus to avoid duplication. Below is an example of code to transform an HL7 payload to SDA by specifying the ID of the patient in order to avoid duplicating this resource, after that you can transform this SDA to FHIR with no duplication of patient. /// This is a custom business process that transforms an HL7 message to SDA format (an internal healthcare data format for InterSystems IRIS for Health). /// To use this class, add a business process with this class to the production and configure the target. The default target will send the SDA to a component /// that converts the data to FHIR. /// Class FHIRDemo.HL7TransformProcess Extends Ens.BusinessProcess [ ClassType = persistent ] { Parameter SETTINGS = "TargetConfigName:Basic:selector?context={Ens.ContextSearch/ProductionItems?targets=1&productionName=@productionId},TransformFile:Basic"; Property TargetConfigName As Ens.DataType.ConfigName [ InitialExpression = "HS.FHIR.DTL.Util.HC.SDA3.FHIR.Process" ]; /// Transforms an HL7 message to SDA, an internal healthcare format for InterSystems IRIS for Health. Method OnRequest(pRequest As EnsLib.HL7.Message, Output pResponse As Ens.Response) As %Status { set tSC = $$$OK try { $$$ThrowOnError(##class(HS.Gateway.HL7.HL7ToSDA3).GetSDA(pRequest,.tSDA)) $$$LOGINFO(tSDA.Read()) Set tQuickStream = ##class(HS.SDA3.QuickStream).%New() $$$ThrowOnError(tQuickStream.CopyFrom(tSDA)) Set tResponse = ##class(HS.Message.XMLMessage).%New() Do tResponse.AdditionalInfo.SetAt(tQuickStream.%Id(),"QuickStreamId") Do tResponse.AdditionalInfo.SetAt($P(pRequest.GetValueAt("PID:3:1"),"^"),"PatientResourceId") Set tSC = ..SendRequestSync(..TargetConfigName,tResponse,.pResponse) } catch ex { set tSC = ex.AsStatus() } quit tSC } Storage Default { <Data name="HL7TransformProcessDefaultData"> <Subscript>"HL7TransformProcess"</Subscript> <Value name="1"> <Value>TargetConfigName</Value> </Value> </Data> <DefaultData>HL7TransformProcessDefaultData</DefaultData> <Type>%Storage.Persistent</Type> } }
go to post Guillaume Rongier · Jan 25, 2022 check this repo https://github.com/grongierisc/iris-healthtoolkit-service, it may suit your need.
go to post Guillaume Rongier · Nov 30, 2021 Hi Mike, Indeed, there is no HealthConnect (HealthShare Connect) Community Edition, but with IRIS for Health Community edition you can do the same as HealthConnect and even more (FHIR server).
go to post Guillaume Rongier · Oct 21, 2021 The difference between a stored procedure and SQL inserts is that the business logic remains on the application side and not on the database side to keep the principles (storage/logic/representation) separate. Nevertheless, the problem doesn't seem to be at the SQL level but rather at the BPL level, so maybe it's due to the conversion of XML to object?If it is the case, use different technique to parse the XML, like the SAX Parser which avoids to mount all the XML document in memory.https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls...
go to post Guillaume Rongier · Aug 19, 2021 Hi Eric, First you are using &sql who is for internal SQL use : doc If you want to do an external query to a remote database you can do it with Ensemble : Include EnsSQLTypes Class Batch.Example.SqlInsertOperation Extends Ens.BusinessOperation { Parameter ADAPTER = "EnsLib.SQL.OutboundAdapter"; Property Adapter As EnsLib.SQL.OutboundAdapter; Parameter INVOCATION = "Queue"; Method SetResultSetView(pRequest As Ens.StringRequest, Output pResponse As Ens.StringResponse) As %Status { set tStatus = $$$OK try{ set pResponse = ##class(Ens.StringResponse).%New() set SqlInsertView = "INSERT into ODS_Products (ID,ProductName,Date_Alimentation) values (?,?,TO_DATE(?,'yyyy-mm-dd hh24:mi:ss'))" set param(1) = 1 set param(1,"SqlType")=$$$SqlInteger set param(2) = ##class(%PopulateUtils).Name() set param(2,"SqlType")=$$$SqlVarchar set param(3) = $ZDATETIME($NOW(),3) set param(3,"SqlType")=$$$SqlVarchar set param = 3 $$$ThrowOnError(..Adapter.ExecuteUpdateBatchParamArray(.nrows,SqlInsertView,.param)) } catch exp { Set tStatus = exp.AsStatus() } Quit tStatus } XData MessageMap { <MapItems> <MapItem MessageType="Ens.StringRequest"> <Method>SetResultSetView</Method> </MapItem> </MapItems> } } Or with the %SQLGatewayConnection : //Create new Gateway connection object set gc=##class(%SQLGatewayConnection).%New() If gc=$$$NULLOREF quit $$$ERROR($$$GeneralError,"Cannot create %SQLGatewayConnection.") //Make connection to target DSN s pDSN="Samples" s usr="_system" s pwd="SYS" set sc=gc.Connect(pDSN,usr,pwd,0) If $$$ISERR(sc) quit sc if gc.ConnectionHandle="" quit $$$ERROR($$$GeneralError,"Connection failed") set sc=gc.AllocateStatement(.hstmt) if $$$ISERR(sc) quit sc //Prepare statement for execution set pQuery= "select * from Sample.Person" set sc=gc.Prepare(hstmt,pQuery) if $$$ISERR(sc) quit sc //Execute statement set sc=gc.Execute(hstmt) if $$$ISERR(sc) quit sc
go to post Guillaume Rongier · Jul 7, 2021 Is Amir's solution not satisfactory? In some cases, it is preferable to use a < code > activity that directly calls the transformation and assigns the status code to the status variable, which will be processed by the try/catch. Set status = $classmethod(tTransformClass, "Transform", request, .normalizedRequest
go to post Guillaume Rongier · Jun 24, 2021 Hi Muhammad, We have our own fhir repository : https://docs.intersystems.com/irisforhealthlatest/csp/docbook/Doc.View.c... But if you still want to use HAPI FHIR from a production you can use this adaptor : https://docs.intersystems.com/irisforhealthlatest/csp/docbook/Doc.View.c...