go to post Guillaume Rongier · Dec 2, 2020 Hi Alexender, I'll send you the WSDL in PM. But I guess I found a workaround : I created a new method that parse the XML with %XML.Reader and correlate the payload with my destination class : set reader = ##class(%XML.Reader).%New() // pRequest.GetPatientsByClinicResult.any.GetAt(1) <-- Header // pRequest.GetPatientsByClinicResult.any.GetAt(2) <-- Payload do reader.OpenString(pRequest.GetPatientsByClinicResult.any.GetAt(2)) do reader.Correlate("Patients","FME.Object.Patient") while reader.Next(.object,.status) { do pResponse.Patients.Insert(object) } Where FME.Object.Patient is : Class FME.Object.Patient Extends (%SerialObject, %XML.Adaptor) { Property LastName As %String; Property FirstName As %String; Property Datex0020ofx0020Birth As %String(XMLNAME = "Date_x0020_of_x0020_Birth"); Property Gender As %String; Property Code As %String; Property Insurance As %String; Property GUID As %String; Property CLINICGUID As %String; }
go to post Guillaume Rongier · Dec 2, 2020 Hi Yuri, Not now but it's plan to be in the future, may be next year.
go to post Guillaume Rongier · Nov 17, 2020 If you have license key for heathshare (no community version of healthshare is available), the installers and familiar with docker, check this git : https://github.com/grongierisc/healthshare-docker It's an unofficial version of HealthShare on docker, very useful to do test and build edge on the fly.
go to post Guillaume Rongier · Nov 17, 2020 If you need an how-to de develop an interoperability production check this git. https://github.com/grongierisc/formation-template It's in french but you will have a lot of gif to get throw the tuto and build a CSV parser and drop the file in the database with transformations.
go to post Guillaume Rongier · Nov 16, 2020 Great app, I'll will definitely take a look, this can be very useful. Thanks, and good luck for the contest.
go to post Guillaume Rongier · Nov 4, 2020 Hi Mike, To retrive multi-part from %resquest you have do to this in the %CSP.REST class : // Get properties set body = %request.Get("body") if '$d(body) { $$$ThrowOnError($$$ERROR(9200,"no parameters")) } set dynaBody = {}.%FromJSON(body) // Get stream set stream = %request.GetMimeData("file") if ('$IsObject(stream) { $$$ThrowOnError($$$ERROR(9200,"no file")) } To get property you have to use Get and for stream GetMimeData In my example my body is a json.
go to post Guillaume Rongier · Nov 4, 2020 Hi Yuri, Have a look at this : https://github.com/grongierisc/iris-csvgen-ui/blob/master/src/CSVGEN/API... Here you will find and example of a multi-part upload on a %CSP.REST class. To get the stream from the multi part you have to do this ligne 39 to 43 : // Get stream set stream = %request.GetMimeData("id") if ('$IsObject(stream) { $$$ThrowOnError($$$ERROR(9200,"no file")) } Where id is the name of you multi-part To send the stream to a business service : $$$ThrowOnError(##class(Ens.Director).CreateBusinessService(BsName,.tService)) $$$ThrowOnError(tService.ProcessInput(stream,.output)) Where BsName is the name of your business service in the active production of your namespace. And stream you stream.
go to post Guillaume Rongier · Nov 3, 2020 Hi Paul, Are you looking for theses classes : HS.Hub.Standalone.HL7.DTL.SubTransform.PD1ToSDA3 HS.Hub.Standalone.HL7.DTL.SubTransform.PIDToSDA3 and co ? And you can have a look at this code to convert any HL7 and all his segment into SDA : https://github.com/grongierisc/FHIR-HL7v2-SQL-Demo/blob/master/src/FHIRD...
go to post Guillaume Rongier · Oct 29, 2020 What a great idea :) Here is my contribution : { "Request Class": { "prefix": "ClassRequest", "body": [ "Class ${0:ClassName} Extends Ens.Request", "{", "\t$1", "}" ], "description": "Message helper" }, "Response Class": { "prefix": "ClassResponse", "body": [ "Class ${0:ClassName} Extends Ens.Response", "{", "\t$1", "}" ], "description": "Message helper" }, "Operation Class": { "prefix": "ClassOperation", "body": [ "Class ${0:ClassName} Extends Ens.BusinessOperation", "{", "\tParameter ADAPTER = \"${1:Adapter}\";", "\tProperty Adapter As ${1:Adapter};", "\tParameter INVOCATION = \"Queue\";", "\n", "Method ${2:Methode}(pRequest As ${3:Request}, Output pResponse As ${4:Response}) As %Status", "{", "\tset tStatus = $$$$OK", "\tset pResponse = ##class(${4:Response}).%New()", "", "\ttry{", "\t\t\n", "\t}", "\tcatch exp", "\t{", "\t\tset tStatus = exp.AsStatus()", "\t}", "\tQuit tStatus", "}", "XData MessageMap", "{", "<MapItems>", "\t<MapItem MessageType=\"${3:Request}\">", "\t\t<Method>${2:Methode}</Method>", "\t</MapItem>", "</MapItems>", "}", "}", ], "description": "Operation helper" }, "Service Class": { "prefix": "ClassService", "body": [ "Class ${0:ClassName} Extends Ens.BusinessService", "{", "Parameter ADAPTER = \"${1:Adapter}\";", "Property TargetConfigNames As %String(MAXLEN = 1000) [ InitialExpression = \"${2:BusinessProcess}\" ];", "Parameter SETTINGS = \"TargetConfigNames:Basic:selector?multiSelect=1&context={Ens.ContextSearch/ProductionItems?targets=1&productionName=@productionId}\";", "Method OnProcessInput(pDocIn As %RegisteredObject, Output pDocOut As %RegisteredObject) As %Status", "{", "\tset status = $$$$OK", "", "\ttry {", "", "\t\tfor iTarget=1:1:$L(..TargetConfigNames, \",\") {", "\t\t\tset tOneTarget=$ZStrip($P(..TargetConfigNames,\",\",iTarget),\"<>W\") Continue:\"\"=tOneTarget", "\t\t\t$$$$ThrowOnError(..SendRequestSync(tOneTarget,pDocIn,.pDocOut))", "\t\t}", "\t} catch ex {", "\t\tset status = ex.AsStatus()", "\t}", "", "\tQuit status", "}", "", "}", ], "description": "Operation helper" }, }
go to post Guillaume Rongier · Oct 28, 2020 Are you looking for thoses classes : HS.Hub.Standalone.HL7.DTL.SubTransform.PD1ToSDA3 HS.Hub.Standalone.HL7.DTL.SubTransform.PIDToSDA3 and co ? And you can have a look at this code to convert any HL7 and all his segment into SDA : https://github.com/grongierisc/FHIR-HL7v2-SQL-Demo/blob/master/src/FHIRD...
go to post Guillaume Rongier · Oct 27, 2020 Hi Yakov, Have you tried to extend you target message by %SerialObject rather than %RegistredObject. In fact, %RegistredObject are in memory object and can't be transmitted in Messages. More details in this documentation : https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.UI...
go to post Guillaume Rongier · Oct 25, 2020 Hi Ravikumar, All can be done in InterSystems IRIS with almost no code. Have a look at this demo to convert HL7v2 to FHIR : https://openexchange.intersystems.com/package/FHIR-HL7v2-SQL-Demo For JSON/XML to FHIR, you can have a look here : https://github.com/grongierisc/HL7ToJson For HL7 SIU, the same can be achieved with the first link. For CDA/FHIR you have example here : https://github.com/grongierisc/FHIRaaS/blob/master/src/Interop/BP/CCDATr... If you need more help, let me know.
go to post Guillaume Rongier · Oct 23, 2020 I agree with you in most cases. The most important announcement for me would be Embedded Python.This will bring to the community the power of python libraries, it's a giant step forward. https://www.youtube.com/embed/widxuV4Ov9s[This is an embedded link, but you cannot view embedded content directly on the site because you have declined the cookies necessary to access it. To view embedded content, you would need to accept all cookies in your Cookies Settings]
go to post Guillaume Rongier · Oct 23, 2020 Hi, you have to use irisinstall with elevated privileges. cf: https://docs.intersystems.com/irisforhealthlatest/csp/docbook/Doc.View.c...
go to post Guillaume Rongier · Oct 22, 2020 Thanks @Henrique Dias It is the principle of a community, between helping and sharing.BTW, I really liked the last video with the other members of the community about your NPM project. https://community.intersystems.com/post/promo-video-screencast-no-projec...
go to post Guillaume Rongier · Oct 20, 2020 Hi, SuperServer port since 2020.3 is 1972 : docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/iris-community:2020.3.0.221.0-zpm docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/iris-community:2020.4.0.521.0-zpm docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/irishealth-community:2020.3.0.221.0-zpm docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/irishealth-community:2020.4.0.521.0-zpm
go to post Guillaume Rongier · Oct 8, 2020 Don't forget that SuperServer port changed from 51773 to 1972 cf : https://irisdocs.intersystems.com/iris20203/csp/docbook/Doc.View.cls?KEY... docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/iris-community:2020.3.0.221.0-zpm docker run --rm --name my-iris -d --publish 9091:51773 --publish 9092:52773 intersystemsdc/iris-community:2020.2.0.204.0-zpm docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/irishealth-community:2020.3.0.221.0-zpm docker run --rm --name my-iris -d --publish 9091:51773 --publish 9092:52773 intersystemsdc/irishealth-community:2020.2.0.204.0-zpm
go to post Guillaume Rongier · Sep 1, 2020 Don't know if that can help, but with this module, you can do the other way around from swagger generate persitent classes. https://openexchange.intersystems.com/package/objectscript-openapi-defin...
go to post Guillaume Rongier · Jun 22, 2020 Hi Klaus, You have to proxy IRIS to use https. To do so, use this git : https://github.com/grongierisc/Https-Proxy-IRIS-Docker Simple https proyx https://github.com/lscalese/isc-webgateway-letsencrypt More robust Https proxy with certbot and https between proxy and IRIS https://github.com/grongierisc/IRIS-Oauth2-Server-Client An example of IRIS as an Oauth2 server + embedded apache https proxy + full implementation of those tutos : https://community.intersystems.com/post/intersystems-iris-open-authoriza...
go to post Guillaume Rongier · Jun 12, 2020 Hi Yuri, You have to use a proxy server to do that. Have a look at this git : https://github.com/grongierisc/Https-Proxy-IRIS-Docker or this one : https://github.com/lscalese/isc-webgateway-letsencrypt