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.

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]

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

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

Hi Klaus,

You have to proxy IRIS to use https. To do so, use this git :

Hi Tom,
You can have a look at this documentation : https://cedocs.intersystems.com/latest/csp/docbook/Doc.View.cls?KEY=EDIC... to help you to create a dicom production to send document to pacs.

If you are not on Ensemble, you have in the community installer for ENSDEMO production : https://openexchange.intersystems.com/package/irishealth-ensdemo

But in short, you have to create an EnsLib.DICOM.Document
Fill it with information about the patient, ect.
e.g

  Set pDocOut = ##class(EnsLib.DICOM.Document).%New()
  // Set patient data
  $$$THROWONERROR(tSC, pDocOut.SetValueAt("Toto^Toto", "DataSet.PatientName"))
  $$$THROWONERROR(tSC, pDocOut.SetValueAt(1, "DataSet.PatientID"))

  //Set pdf in EncapsulatedDocument
  $$$THROWONERROR(tSC, pDocOut.SetValueAt("application/pdf","DataSet.MIMETypeOfEncapsulatedDocument"))
  /// File is you binary pdf document
  IF '$IsObject(file) $$$THROWONERROR(tSC, $$$ERROR($$$FailedToNewClass, "%Stream.TmpBinary"))

  // DICOM Standard PS3.5: The Value Field containing Pixel Data, like all other Value Fields in DICOM, shall be an even number of bytes in length
  // Thanks Michel Liberado for this hack
  IF (($L(binary) # 2) '= 0) {
          // Any char would be fine but I want to have the End Of Transmission ASCII character
          $$$THROWONERROR(tSC, file.Write($CHAR(4)))
  }

  $$$THROWONERROR(tSC, pDocOut.SetValueAt(file,"DataSet.EncapsulatedDocument"))

Once you have your pDocOut you can send it to business process Demo.DICOM.Process.Storage

Hi Lucas,

All security settings are store in the %SYS databases.

You can access then with this query :

select * from Security.System

Or with this procedure

select * from Security.System_List()

If you want to do this in COS :

s ResultSet=##class(%ResultSet).%New("Security.System:List")
d ResultSet.Execute()
While ResultSet.Next() {
	zw ResultSet.Data("Name")
}

Like that you don't have to use the export function who only create files.

Now you can parse data and build your report directly from an homemade object.

Hi Blaise,

You can pass %OnNew expection to %New with this code snippet :

Class Test.PersitenceTest Extends %Persistent
{
 
Property mandatory As %String [ Required ];
 
Method %OnNew(mandatory As %String = "") As %Status
{
 
set ..mandatory = mandatory
 
$$$ThrowOnError(..%ValidateObject())
 
Quit $$$OK
}
 
}

 Now when you call the new method :

USER>set test = ##class(Test.PersitenceTest).%New()

  If $isobject($get(newerror))=1 Throw newerror
                                 ^
<THROW>%Construct+9^Test.PersitenceTest.1 *%Exception.StatusException ERROR #5659: Property 'Test.PersitenceTest::mandatory(10@Test.PersitenceTest,ID=)' required

Now you can catch you %OnNew expection anywhere :

ClassMethod test() As %Status
{
try {
set test = ##class(Test.PersitenceTest).%New()
}
catch ex {
Return ex.AsStatus()
}
Return $$$OK
}

Studio :

  • Like :
    • It's fast
    • Find in files directly on the server side
    • Intuitive
    • Debugging is not perfect but manageable
  • Dislike :
    • Only on windows
    • No easy to use with other third party file or software

Atelier :

  • Like :
    • Easy to use with source control
  • Dislike :
    • File synchronization with server especially BPL, DT, RecorMap
    • Complicate to configure
    • Slow

VS Code with Dmitriy's plugin

  • Like :
    • Modern UI
    • Crossplatform
    • Lite
    • Intuitive with no file synchronization concern
    • Fast
  • Dislike :
    • Can't edit, manage CSP files
    • No find in file on server side
    • Debugging not easy to use

Serenji :

I haven't tried it yet because you need to install some classes on the server side, but sound very promising for debugging.

Conclusion :

My main IDE is VSCode with Dmitriys's plugin and some times Studio for find in files, csp managment and debugging.

Do you expect to be writing code in a web-based editor five years from now?

Yes, why not, already a lot of people do it on Jupyter Notebook.