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.

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.

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.

My guess is that you are concatenating string with the operator "&" (AND) instead of "_".

If you do so, ObjectScript will cast your string as boolean false, the result of (false and false and false) equals 0, the result you see in your question.

Method PatientInfo(ID As %String) As %Status#dim status as %Status=$$$OK
  SET myquery="SELECT GUID, IDType,IDValue FROM MergeHyland.TypeTwoDimesionCollection WHERE GUID ="_ID
  SET rset=##class(%ResultSet.SQL).%Prepare(myquery,.err,"")
    WHILE rset.%Next() {
    WRITE !,rset.GUID _ ":" _ rset.IDType_ ":" _ rset.IDValue
    }
  WRITE "End of data"
    return status
}