#InterSystems IRIS for Health

0 Followers · 2.3K Posts

InterSystems IRIS for Health™ is the world’s first and only data platform engineered specifically for the rapid development of healthcare applications to manage the world’s most critical data. It includes powerful out-of-the-box features: transaction processing and analytics, an extensible healthcare data model, FHIR-based solution development, support for healthcare interoperability standards, and more. All enabling developers to realize value and build breakthrough applications, fast. Learn more.

Article Julian Matthews · Apr 14, 2021 3m read

Hey everyone.

I came across some issues when setting up Freeze and Thaw batch scripts for use with VMWare in a Windows ecosystem, and I wanted to share what I found in the hopes it can help others. This was undertaken in an environment using Healthconnect 2019.1.x.

IRIS not up (2)

It seems that the sample script from the documentation in my my case would tell me that the environment was not running (despite it running). To correct this, I provided the filepath to the Mgr location as so:

3
0 1356
Question Mike Yackanich · Jan 13, 2021

Hi all,

I have a passthru REST setup using EnsLib.HTTP.GenericService and EnsLib.HTTP.GenericOperation. Works well.

I am adding some logic to the Operation and for some scenarios I want to return an HTTP 40x response status code.

I create an httpResponse object within the Business Operation, but I can't figure out how to set the http response status code that is returned to my Posstman client that initiated the request. I set StatusCode=400, and StatusLine and ReasonPhrase properties - but when the ultimate requestor (Postman) receives the response back it is a 200 status code. I am quitting the OnMessage method with status of $$$OK - which I suspect is being interpreted as HTTP response status code of 200. But I thought the httpResponse.StatusCode property setting of 400 would override that (?)

So how do I control the status code of the response? Can that be done within the httpResponse object within the Business Operation? Or do I need to subclass the related Business Service?

10
0 2505
Question Thembelani Mlalazi · Feb 10, 2025

I have an operation using $ZF this operation ran and did not error but the job has been active and it can not be stopped I have tried stopping it from the front end and through the terminal using ##class(ENSLIB.Job).%New() Stop method. Now my production will not update even if I add a new item to the production I cannot update the item is there a way to force stop  this job.

4
0 175
Question Ali Chaib · Feb 7, 2025

I have a scenario where I send a GET request to a broker and receive a FHIR response. When I attempted to use the built-in InterSystems functions to convert this FHIR response into SDA, the transformation failed—likely because it is not a standard FHIR request.

How should I handle this situation? Is there a recommended approach to processing FHIR responses in this context?

3
0 124
Question Ali Chaib · Feb 7, 2025

I understand that InterSystems provides functions to facilitate transactions between FHIR and HL7 via the SDA segment. My question is:

  • Does this transformation only work when InterSystems receives FHIR requests and converts them into HL7, or does it also support responses?
  • Specifically, if our operation sends a GET request to a broker and receives a FHIR response, does InterSystems support transforming this response into an SDA segment automatically?
  • Or should we manually parse and modify the response to handle it according to our needs?
3
0 107
Article Ariel Glikman · Mar 6, 2024 3m read

The IKO allows for sidecars. The idea behind them is to have direct access to a specific instance of IRIS. If we have mirrored data nodes, the web gateway will (correctly) only give us access to the primary node. But perhaps we need access to a specific instance. The sidecar is the solution.

Building on the example from the previous article, we introduce the sidecar by using a mirrored data node and of course arbiter.

1
1 407
Question christopheS · Jan 28, 2025
"basedOn" : [{
    "reference" : "CarePlan?identifier=urn:ietf:rfc:3986|urn:uuid:3aae92e6-9c51-46ab-83bb-bc3a5a66d429"
  }],

Hello,

I am new to InterSystems FHIR server implementation and in process of evaluating it. (R5)

I try to create a Task referencing a CarePlan resource as above.

I got the following error message and I wonder what could be the mistake as it used to work against another FHIR server implementation. (the referenced CarePlan resource does not exist but I guess that in this case the error code would be different?)

1
0 86
Article Ashok Kumar T · Feb 7, 2025 6m read

In this article, exceptions are covered.

Working with Exceptions

Instead of returning a %Status response, you can raise and throw an Exception. You are then responsible for catching the exception and validating it. IRIS provides five main classes to handle exceptions effectively. Additionally, you can create custom exception class definition based on your needs.

0
2 341
Article Ashok Kumar T · Feb 7, 2025 4m read

You may encounter errors during any point of program execution, and there are several ways to raise and handle these exceptions. In this article, we'll explore how exceptions are handled efficiently in IRIS.

One of the most commonly used return types is %Status, which is used by methods to indicate success or failure. Let's begin by discussing %Status values.

Working with %Status

0
6 359
Question Thomas Haig · Feb 4, 2025

At the moment we're creating multiple BPLs are using a router (or another BPL) to direct to these based on a unique key modulo the amount of BPLs available, e.g. if we have 3 BPLs created.Message key = 1 mod 3 + 1 -> BPL02Message key = 2 mod 3 + 1 -> BPL03Message key = 3 mod 3 + 1 -> BPL01FIFO only matters in that each messages for each key is processed in order.What we were considering doing is increasing the pool size to 3 and programmatically creating a BPL on each thread that processes messages that would be directed to it, rather than having to create multiple BPLs into the

7
0 165
Question John McBride · Feb 5, 2025

Hello,

When setting up a new web app in iris (iris is in a container) iris complains that a WSGI framework is not installed. I have installed python into the container as well as both flask and django via the python virtual environment (see second screenshot) and the python language server is running

Is this the wrong way to install flask? How do I get the container version to recoginize that flask is installed?

2
0 94
Question Mark OReilly · Feb 4, 2025

When removing a segment in DTL for hl7 using foreach the segment doesn't actually get removed and leaves a blank segment. 

i.e. 

MSH|^~\&|SendingSystem|ReceivingSystem|202301241000||ADT^A01|12345|P|2.4
EVN|S|202301241000
PID|1|MRN12345|1^^^^KEEP~2^^^^Remove~3^^^^Keep|M|19800101|  
PD1|PatientAddress^Street^City^State^Zip
PV1|I|INPATIENT|BED123|DoctorID|202301241000|202301241000

This blank segment to be removed

2
0 169
Question Prasanth Annamreddy · Mar 23, 2024

Hi,

I found an issue while fetching records from FHIR DB, I am getting below error thou FHIR repository have the records with the corresponding id

{

    "resourceType": "OperationOutcome",

    "issue": [

        {

            "severity": "error",

            "code": "not-found",

            "diagnostics": "<HSFHIRErr>ResourceNotFound",

            "details": {

                "text": "No resource with type 'Appointment' and id '21'"

            }

        }

    ]

}

5
0 202
Question Phillip Wu · Feb 3, 2025

Hi,

I have Objectscript routine stored in an external Linux file which I've called /my/home/DisplayDB.int

This file does not include any Class definitions and is simply a set a Object script routines. I think this is called INT objectscript

The file looks like this:

set db=##class(Config.Databases).DatabasesByServer("",.dbList)
for i=1:1:$LENGTH(dbList,",") {
  set dbName= $PIECE(dbList,",",i)
  write dbName,!
}

How do I load and compile the Objectscript code?
Do $system.OBJ.Load("/my/home/DisplayDB.int", "ck")
How would I run the code?
do ^DisplayDB
Thanks in advance for any help

3
0 115
Article Ariel Glikman · Feb 2, 2025 3m read

All pods are assigned a Quality of Service (QoS). These are 3 levels of priority pods are assigned within a node.

The levels are as following:

1) Guaranteed: High Priority

2) Burstable: Medium Priority

3) BestEffort: Low Priority

It is a way of telling the kubelet what your priorities are on a certain node if resources need to be reclaimed. This great GIF below by Anvesh Muppeda explains it.

0
2 254
Question Marc Mundt · Jan 31, 2025

I have VS Code with extensions connected to IRIS for Health. One top-level ObjectScript package is not displayed in the workspace for this namespace. This package exists in the namespace and is visible in SMP. If I create a new class with a different top-level package name (package that didn't previously exist) it will immediately appear in the workspace.

Is there any debug logging I can enable to look for errors or do any other troubleshooting?

Forgot to mention: the missing package is custom, not a system package.

5
0 161
Article Sylvain Guilbaud · Jan 31, 2025 1m read

In a containerized environment, you can manage your container time via the TZ variable or via the /etc/timezone and /etc/localtime directories:

environment:
      - TZ=Europe/Paris
volumes:
    - "/etc/timezone:/etc/timezone:ro"
    - "/etc/localtime:/etc/localtime:ro"

You can find complete examples here:

IRIS Community

IRISHealth_Community

IRIS production

IRISHealth production

0
0 101
Article Daryl Flaming · Jan 31, 2025 9m read

My main goal of this article was to prove the use of InterSystems IRIS for Health for REST FHIR interoperability between multiple applications. In this use case, some initiating application makes a REST call to IRIS for Health (which is merely a passthrough for REST calls) to retrieve FHIR data from an Oracle Health R4 FHIR repository. Ideally, it simplifies the syntax for calling the Oracle Health APIs. 

0
2 311
Announcement Guillaume Rongier · Mar 16, 2022

Iris Healthtoolkit Service

Video

Easy to use HL7v2 to FHIR, CDA to FHIR, FHIR to HL7v2 as a Service.

The aim of this project is to provide an REST API that can convert easily various health formats. Post the desire format in the REST body, get the answer in the new format.

Install

Clone this repository

git clone https://github.com/grongierisc/iris-healthtoolkit-service.git

Docker

docker-compose up --build -d

Usage

Api details

HL7 to FHIR

POST http://localhost:32783/api/hl7/fhir

Example

Input

MSH|^~\&||^^NPI|||20211105165829+0000||ADT^A01|66053,61109.396628|P|2.5.1|||AL|AL|||||PH_SS-Ack^SS Sender^2.16.840.1.114222.4.10.3^ISO
EVN||202111051658|||||^^NPI
PID|1||060a6bd5-5146-4b08-a916-009858997bd3^^^https://github.com/synthetichealth/synthea^~060a6bd5-5146-4b08-a916-009858997bd3^^^http://hospital.smarthealthit.org^MR~999-97-4582^^^&^SS~S99986284^^^&^DL~X84330364X^^^&^PPN||Masson^Livia^^^Mrs.^^||19920820|F|Simon^Livia^^||615 Avenue Lemaire^^Lyon^Auvergne-Rhone-Alpes^63000||^PRN^PH^^^555^286|||||||||||||||||||||
PV1|1|O||424441002|||||||||||||||1^^^&&^VN|||||||||||||||||||||||||200812312325|20090101044004
PV2|||72892002^Grossesse normale^SCT
OBX|1||8302-2^Taille du corps^LN||20101014002504^^|cm^^UCUM|||||F|||20101014
OBX|2||72514-3^Gravite de la douleur - 0-10 evaluation numerique verbale [Score] - Signaleee^LN||20101014002504^^|{score}^^UCUM|||||F|||20101014
OBX|3||29463-7^Poids corporel^LN||20101014002504^^|kg^^UCUM|||||F|||20101014
OBX|4||39156-5^Indice de masse corporelle^LN||20101014002504^^|kg/m2^^UCUM|||||F|||20101014
OBX|5||72166-2^Statut du tabagisme^LN||20171026002504^Ancien fumeur^SCT^^^^^^Ancien fumeur||||||F|||20171026

Output

{
"resourceType": "Bundle",
"type": "transaction",
"entry": [
  {
    "request": {
      "method": "POST",
      "url": "Organization"
    },
    "fullUrl": "urn:uuid:347a0c88-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Organization",
      "identifier": [
        {
          "value": "https://github.com/synthetichealth/synthea"
        }
      ]
    }
  },
  {
    "request": {
      "method": "POST",
      "url": "Organization"
    },
    "fullUrl": "urn:uuid:34d03d1a-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Organization",
      "identifier": [
        {
          "value": "http://hospital.smarthealthit.org"
        }
      ]
    }
  },
  {
    "request": {
      "method": "POST",
      "url": "Patient"
    },
    "fullUrl": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Patient",
      "address": [
        {
          "city": "Lyon",
          "line": [
            "615 Avenue Lemaire"
          ],
          "postalCode": "63000",
          "state": "Auvergne-Rhone-Alpes"
        }
      ],
      "birthDate": "1992-08-20",
      "gender": "female",
      "identifier": [
        {
          "assigner": {
            "reference": "urn:uuid:347a0c88-e7fa-11ec-9601-0242ac1a0002"
          },
          "system": "https://github.com/synthetichealth/synthea",
          "value": "060a6bd5-5146-4b08-a916-009858997bd3"
        },
        {
          "assigner": {
            "reference": "urn:uuid:34d03d1a-e7fa-11ec-9601-0242ac1a0002"
          },
          "system": "http://hospital.smarthealthit.org",
          "type": {
            "coding": [
              {
                "code": "MR",
                "system": "http://terminology.hl7.org/CodeSystem/v2-0203"
              }
            ],
            "text": "MRN"
          },
          "value": "060a6bd5-5146-4b08-a916-009858997bd3"
        },
        {
          "extension": [
            {
              "url": "http://intersystems.com/fhir/extn/sda3/lib/patient-number-i-s-o-assigning-authority",
              "valueString": "&"
            }
          ],
          "type": {
            "coding": [
              {
                "code": "SS"
              }
            ],
            "text": "SS"
          },
          "value": "999-97-4582"
        },
        {
          "extension": [
            {
              "url": "http://intersystems.com/fhir/extn/sda3/lib/patient-number-i-s-o-assigning-authority",
              "valueString": "&"
            }
          ],
          "type": {
            "coding": [
              {
                "code": "DL",
                "system": "http://terminology.hl7.org/CodeSystem/v2-0203"
              }
            ],
            "text": "DL"
          },
          "value": "S99986284"
        },
        {
          "extension": [
            {
              "url": "http://intersystems.com/fhir/extn/sda3/lib/patient-number-i-s-o-assigning-authority",
              "valueString": "&"
            }
          ],
          "type": {
            "coding": [
              {
                "code": "PPN",
                "system": "http://terminology.hl7.org/CodeSystem/v2-0203"
              }
            ],
            "text": "PPN"
          },
          "value": "X84330364X"
        }
      ],
      "name": [
        {
          "family": "Simon",
          "given": [
            "Livia"
          ],
          "text": "Livia Simon"
        },
        {
          "family": "Masson",
          "given": [
            "Livia"
          ],
          "prefix": [
            "Mrs."
          ],
          "text": "Mrs. Livia Masson",
          "use": "official"
        }
      ],
      "telecom": [
        {
          "system": "phone",
          "use": "home",
          "value": "(555) 286"
        }
      ]
    }
  },
  {
    "request": {
      "method": "POST",
      "url": "Encounter"
    },
    "fullUrl": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Encounter",
      "class": {
        "code": "AMB",
        "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode"
      },
      "extension": [
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/encounter-encounter-type",
          "valueString": "O"
        },
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/encounter-entered-on",
          "valueDateTime": "2008-12-31T23:25:00+00:00"
        },
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/encounter-to-time",
          "valueDateTime": "2009-01-01T04:40:04+00:00"
        }
      ],
      "identifier": [
        {
          "type": {
            "text": "EncounterNumber"
          },
          "use": "official",
          "value": "1"
        }
      ],
      "period": {
        "start": "2008-12-31T23:25:00+00:00"
      },
      "reasonCode": [
        {
          "coding": [
            {
              "code": "72892002",
              "display": "Grossesse normale",
              "system": "http://snomed.info/sct"
            }
          ]
        }
      ],
      "status": "unknown",
      "subject": {
        "reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
      },
      "type": [
        {
          "coding": [
            {
              "code": "424441002"
            }
          ]
        }
      ]
    }
  },
  {
    "request": {
      "method": "POST",
      "url": "Observation"
    },
    "fullUrl": "urn:uuid:3a13745e-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Observation",
      "code": {
        "coding": [
          {
            "code": "72166-2",
            "display": "Statut du tabagisme",
            "system": "http://loinc.org"
          }
        ]
      },
      "effectiveDateTime": "2017-10-26T00:00:00+00:00",
      "encounter": {
        "reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
      },
      "extension": [
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
          "valueString": "1"
        },
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/observation-observation-coded-value",
          "valueCodeableConcept": {
            "coding": [
              {
                "code": "20171026002504",
                "display": "Ancien fumeur",
                "system": "http://snomed.info/sct"
              }
            ],
            "text": "Ancien fumeur"
          }
        }
      ],
      "status": "final",
      "subject": {
        "reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
      },
      "valueString": "Ancien fumeur"
    }
  },
  {
    "request": {
      "method": "POST",
      "url": "Observation"
    },
    "fullUrl": "urn:uuid:3b6212fc-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Observation",
      "category": [
        {
          "coding": [
            {
              "code": "vital-signs",
              "display": "Vital Signs",
              "system": "http://terminology.hl7.org/CodeSystem/observation-category"
            }
          ],
          "text": "Vital Signs"
        }
      ],
      "code": {
        "coding": [
          {
            "code": "8302-2",
            "display": "Taille du corps",
            "system": "http://loinc.org"
          }
        ],
        "extension": [
          {
            "url": "http://intersystems.com/fhir/extn/sda3/lib/code-table-detail-observation-observation-value-units",
            "valueCodeableConcept": {
              "coding": [
                {
                  "code": "cm",
                  "system": "http://unitsofmeasure.org"
                }
              ]
            }
          }
        ]
      },
      "effectiveDateTime": "2010-10-14T00:00:00+00:00",
      "encounter": {
        "reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
      },
      "extension": [
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
          "valueString": "1"
        }
      ],
      "status": "final",
      "subject": {
        "reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
      },
      "valueCodeableConcept": {
        "coding": [
          {
            "code": "20101014002504"
          }
        ]
      }
    }
  },
  {
    "request": {
      "method": "POST",
      "url": "Observation"
    },
    "fullUrl": "urn:uuid:3c8aba30-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Observation",
      "code": {
        "coding": [
          {
            "code": "72514-3",
            "display": "Gravite de la douleur - 0-10 evaluation numerique verbale [Score] - Signaleee",
            "system": "http://loinc.org"
          }
        ],
        "extension": [
          {
            "url": "http://intersystems.com/fhir/extn/sda3/lib/code-table-detail-observation-observation-value-units",
            "valueCodeableConcept": {
              "coding": [
                {
                  "code": "{score}",
                  "system": "http://unitsofmeasure.org"
                }
              ]
            }
          }
        ]
      },
      "effectiveDateTime": "2010-10-14T00:00:00+00:00",
      "encounter": {
        "reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
      },
      "extension": [
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
          "valueString": "1"
        }
      ],
      "status": "final",
      "subject": {
        "reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
      },
      "valueCodeableConcept": {
        "coding": [
          {
            "code": "20101014002504"
          }
        ]
      }
    }
  },
  {
    "request": {
      "method": "POST",
      "url": "Observation"
    },
    "fullUrl": "urn:uuid:3de455d0-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Observation",
      "category": [
        {
          "coding": [
            {
              "code": "vital-signs",
              "display": "Vital Signs",
              "system": "http://terminology.hl7.org/CodeSystem/observation-category"
            }
          ],
          "text": "Vital Signs"
        }
      ],
      "code": {
        "coding": [
          {
            "code": "29463-7",
            "display": "Poids corporel",
            "system": "http://loinc.org"
          }
        ],
        "extension": [
          {
            "url": "http://intersystems.com/fhir/extn/sda3/lib/code-table-detail-observation-observation-value-units",
            "valueCodeableConcept": {
              "coding": [
                {
                  "code": "kg",
                  "system": "http://unitsofmeasure.org"
                }
              ]
            }
          }
        ]
      },
      "effectiveDateTime": "2010-10-14T00:00:00+00:00",
      "encounter": {
        "reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
      },
      "extension": [
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
          "valueString": "1"
        }
      ],
      "status": "final",
      "subject": {
        "reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
      },
      "valueCodeableConcept": {
        "coding": [
          {
            "code": "20101014002504"
          }
        ]
      }
    }
  },
  {
    "request": {
      "method": "POST",
      "url": "Observation"
    },
    "fullUrl": "urn:uuid:3f501418-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Observation",
      "code": {
        "coding": [
          {
            "code": "39156-5",
            "display": "Indice de masse corporelle",
            "system": "http://loinc.org"
          }
        ],
        "extension": [
          {
            "url": "http://intersystems.com/fhir/extn/sda3/lib/code-table-detail-observation-observation-value-units",
            "valueCodeableConcept": {
              "coding": [
                {
                  "code": "kg/m2",
                  "system": "http://unitsofmeasure.org"
                }
              ]
            }
          }
        ]
      },
      "effectiveDateTime": "2010-10-14T00:00:00+00:00",
      "encounter": {
        "reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
      },
      "extension": [
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
          "valueString": "1"
        }
      ],
      "status": "final",
      "subject": {
        "reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
      },
      "valueCodeableConcept": {
        "coding": [
          {
            "code": "20101014002504"
          }
        ]
      }
    }
  }
]
}

FHIR to HL7 ADT

POST http://localhost:32783/api/fhir/hl7/adt

Example

{
"resourceType": "Bundle",
"type": "transaction",
"entry": [
  {
    "request": {
      "method": "POST",
      "url": "Organization"
    },
    "fullUrl": "urn:uuid:347a0c88-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Organization",
      "identifier": [
        {
          "value": "https://github.com/synthetichealth/synthea"
        }
      ]
    }
  },
  {
    "request": {
      "method": "POST",
      "url": "Organization"
    },
    "fullUrl": "urn:uuid:34d03d1a-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Organization",
      "identifier": [
        {
          "value": "http://hospital.smarthealthit.org"
        }
      ]
    }
  },
  {
    "request": {
      "method": "POST",
      "url": "Patient"
    },
    "fullUrl": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Patient",
      "address": [
        {
          "city": "Lyon",
          "line": [
            "615 Avenue Lemaire"
          ],
          "postalCode": "63000",
          "state": "Auvergne-Rhone-Alpes"
        }
      ],
      "birthDate": "1992-08-20",
      "gender": "female",
      "identifier": [
        {
          "assigner": {
            "reference": "urn:uuid:347a0c88-e7fa-11ec-9601-0242ac1a0002"
          },
          "system": "https://github.com/synthetichealth/synthea",
          "value": "060a6bd5-5146-4b08-a916-009858997bd3"
        },
        {
          "assigner": {
            "reference": "urn:uuid:34d03d1a-e7fa-11ec-9601-0242ac1a0002"
          },
          "system": "http://hospital.smarthealthit.org",
          "type": {
            "coding": [
              {
                "code": "MR",
                "system": "http://terminology.hl7.org/CodeSystem/v2-0203"
              }
            ],
            "text": "MRN"
          },
          "value": "060a6bd5-5146-4b08-a916-009858997bd3"
        },
        {
          "extension": [
            {
              "url": "http://intersystems.com/fhir/extn/sda3/lib/patient-number-i-s-o-assigning-authority",
              "valueString": "&"
            }
          ],
          "type": {
            "coding": [
              {
                "code": "SS"
              }
            ],
            "text": "SS"
          },
          "value": "999-97-4582"
        },
        {
          "extension": [
            {
              "url": "http://intersystems.com/fhir/extn/sda3/lib/patient-number-i-s-o-assigning-authority",
              "valueString": "&"
            }
          ],
          "type": {
            "coding": [
              {
                "code": "DL",
                "system": "http://terminology.hl7.org/CodeSystem/v2-0203"
              }
            ],
            "text": "DL"
          },
          "value": "S99986284"
        },
        {
          "extension": [
            {
              "url": "http://intersystems.com/fhir/extn/sda3/lib/patient-number-i-s-o-assigning-authority",
              "valueString": "&"
            }
          ],
          "type": {
            "coding": [
              {
                "code": "PPN",
                "system": "http://terminology.hl7.org/CodeSystem/v2-0203"
              }
            ],
            "text": "PPN"
          },
          "value": "X84330364X"
        }
      ],
      "name": [
        {
          "family": "Simon",
          "given": [
            "Livia"
          ],
          "text": "Livia Simon"
        },
        {
          "family": "Masson",
          "given": [
            "Livia"
          ],
          "prefix": [
            "Mrs."
          ],
          "text": "Mrs. Livia Masson",
          "use": "official"
        }
      ],
      "telecom": [
        {
          "system": "phone",
          "use": "home",
          "value": "(555) 286"
        }
      ]
    }
  },
  {
    "request": {
      "method": "POST",
      "url": "Encounter"
    },
    "fullUrl": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Encounter",
      "class": {
        "code": "AMB",
        "system": "http://terminology.hl7.org/CodeSystem/v3-ActCode"
      },
      "extension": [
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/encounter-encounter-type",
          "valueString": "O"
        },
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/encounter-entered-on",
          "valueDateTime": "2008-12-31T23:25:00+00:00"
        },
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/encounter-to-time",
          "valueDateTime": "2009-01-01T04:40:04+00:00"
        }
      ],
      "identifier": [
        {
          "type": {
            "text": "EncounterNumber"
          },
          "use": "official",
          "value": "1"
        }
      ],
      "period": {
        "start": "2008-12-31T23:25:00+00:00"
      },
      "reasonCode": [
        {
          "coding": [
            {
              "code": "72892002",
              "display": "Grossesse normale",
              "system": "http://snomed.info/sct"
            }
          ]
        }
      ],
      "status": "unknown",
      "subject": {
        "reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
      },
      "type": [
        {
          "coding": [
            {
              "code": "424441002"
            }
          ]
        }
      ]
    }
  },
  {
    "request": {
      "method": "POST",
      "url": "Observation"
    },
    "fullUrl": "urn:uuid:3a13745e-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Observation",
      "code": {
        "coding": [
          {
            "code": "72166-2",
            "display": "Statut du tabagisme",
            "system": "http://loinc.org"
          }
        ]
      },
      "effectiveDateTime": "2017-10-26T00:00:00+00:00",
      "encounter": {
        "reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
      },
      "extension": [
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
          "valueString": "1"
        },
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/observation-observation-coded-value",
          "valueCodeableConcept": {
            "coding": [
              {
                "code": "20171026002504",
                "display": "Ancien fumeur",
                "system": "http://snomed.info/sct"
              }
            ],
            "text": "Ancien fumeur"
          }
        }
      ],
      "status": "final",
      "subject": {
        "reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
      },
      "valueString": "Ancien fumeur"
    }
  },
  {
    "request": {
      "method": "POST",
      "url": "Observation"
    },
    "fullUrl": "urn:uuid:3b6212fc-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Observation",
      "category": [
        {
          "coding": [
            {
              "code": "vital-signs",
              "display": "Vital Signs",
              "system": "http://terminology.hl7.org/CodeSystem/observation-category"
            }
          ],
          "text": "Vital Signs"
        }
      ],
      "code": {
        "coding": [
          {
            "code": "8302-2",
            "display": "Taille du corps",
            "system": "http://loinc.org"
          }
        ],
        "extension": [
          {
            "url": "http://intersystems.com/fhir/extn/sda3/lib/code-table-detail-observation-observation-value-units",
            "valueCodeableConcept": {
              "coding": [
                {
                  "code": "cm",
                  "system": "http://unitsofmeasure.org"
                }
              ]
            }
          }
        ]
      },
      "effectiveDateTime": "2010-10-14T00:00:00+00:00",
      "encounter": {
        "reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
      },
      "extension": [
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
          "valueString": "1"
        }
      ],
      "status": "final",
      "subject": {
        "reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
      },
      "valueCodeableConcept": {
        "coding": [
          {
            "code": "20101014002504"
          }
        ]
      }
    }
  },
  {
    "request": {
      "method": "POST",
      "url": "Observation"
    },
    "fullUrl": "urn:uuid:3c8aba30-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Observation",
      "code": {
        "coding": [
          {
            "code": "72514-3",
            "display": "Gravite de la douleur - 0-10 evaluation numerique verbale [Score] - Signaleee",
            "system": "http://loinc.org"
          }
        ],
        "extension": [
          {
            "url": "http://intersystems.com/fhir/extn/sda3/lib/code-table-detail-observation-observation-value-units",
            "valueCodeableConcept": {
              "coding": [
                {
                  "code": "{score}",
                  "system": "http://unitsofmeasure.org"
                }
              ]
            }
          }
        ]
      },
      "effectiveDateTime": "2010-10-14T00:00:00+00:00",
      "encounter": {
        "reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
      },
      "extension": [
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
          "valueString": "1"
        }
      ],
      "status": "final",
      "subject": {
        "reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
      },
      "valueCodeableConcept": {
        "coding": [
          {
            "code": "20101014002504"
          }
        ]
      }
    }
  },
  {
    "request": {
      "method": "POST",
      "url": "Observation"
    },
    "fullUrl": "urn:uuid:3de455d0-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Observation",
      "category": [
        {
          "coding": [
            {
              "code": "vital-signs",
              "display": "Vital Signs",
              "system": "http://terminology.hl7.org/CodeSystem/observation-category"
            }
          ],
          "text": "Vital Signs"
        }
      ],
      "code": {
        "coding": [
          {
            "code": "29463-7",
            "display": "Poids corporel",
            "system": "http://loinc.org"
          }
        ],
        "extension": [
          {
            "url": "http://intersystems.com/fhir/extn/sda3/lib/code-table-detail-observation-observation-value-units",
            "valueCodeableConcept": {
              "coding": [
                {
                  "code": "kg",
                  "system": "http://unitsofmeasure.org"
                }
              ]
            }
          }
        ]
      },
      "effectiveDateTime": "2010-10-14T00:00:00+00:00",
      "encounter": {
        "reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
      },
      "extension": [
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
          "valueString": "1"
        }
      ],
      "status": "final",
      "subject": {
        "reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
      },
      "valueCodeableConcept": {
        "coding": [
          {
            "code": "20101014002504"
          }
        ]
      }
    }
  },
  {
    "request": {
      "method": "POST",
      "url": "Observation"
    },
    "fullUrl": "urn:uuid:3f501418-e7fa-11ec-9601-0242ac1a0002",
    "resource": {
      "resourceType": "Observation",
      "code": {
        "coding": [
          {
            "code": "39156-5",
            "display": "Indice de masse corporelle",
            "system": "http://loinc.org"
          }
        ],
        "extension": [
          {
            "url": "http://intersystems.com/fhir/extn/sda3/lib/code-table-detail-observation-observation-value-units",
            "valueCodeableConcept": {
              "coding": [
                {
                  "code": "kg/m2",
                  "system": "http://unitsofmeasure.org"
                }
              ]
            }
          }
        ]
      },
      "effectiveDateTime": "2010-10-14T00:00:00+00:00",
      "encounter": {
        "reference": "urn:uuid:38cf2d40-e7fa-11ec-9601-0242ac1a0002"
      },
      "extension": [
        {
          "url": "http://intersystems.com/fhir/extn/sda3/lib/observation-encounter-number",
          "valueString": "1"
        }
      ],
      "status": "final",
      "subject": {
        "reference": "urn:uuid:36dd6e2a-e7fa-11ec-9601-0242ac1a0002"
      },
      "valueCodeableConcept": {
        "coding": [
          {
            "code": "20101014002504"
          }
        ]
      }
    }
  }
]
}
Output
MSH|^~\&||^^NPI|||20220609134903+0000||^|66269,49743.388133779|P|2.5.1|||AL|AL|||||PH_SS-Ack^SS Sender^2.16.840.1.114222.4.10.3^ISO
EVN||202206091349|||||^^NPI
PID|1||060a6bd5-5146-4b08-a916-009858997bd3^^^https://github.com/s&&ISO^~060a6bd5-5146-4b08-a916-009858997bd3^^^http://hospital.smar&&ISO^MR~999-97-4582^^^&^SS~S99986284^^^&^DL~X84330364X^^^&^PPN||Masson^Livia^^^Mrs.^^||19920820|F|Simon^Livia^^||615 Avenue Lemaire^^^^||^PRN^PH^^^555^286|||||||||||||||||||||
PV1|1|O||424441002|||||||||||||||1^^^&&^VN|||||||||||||||||||||||||200812312325|
PV2|||72892002^Grossesse normale^SCT
OBX|1||72166-2^Statut du tabagisme^LN||^^||||||F|||20171026
OBX|2||8302-2^Taille du corps^LN||^^||||||F|||20101014
OBX|3||72514-3^Gravite de la douleur - 0-10 evaluation numerique verbale [Score] - Signaleee^LN||^^||||||F|||20101014
OBX|4||29463-7^Poids corporel^LN||^^||||||F|||20101014
OBX|5||39156-5^Indice de masse corporelle^LN||^^||||||F|||20101014

FHIR to HL7 ORU

POST http://localhost:32783/api/fhir/hl7/oru

FHIR to HL7 vxu

POST http://localhost:32783/api/fhir/hl7/vxu

CDA to FHIR

POST http://localhost:32783/api/cda/fhir

Example

FHIR repo

GET http://localhost:32783/api/fhir/metadata

Supported HL7 inbound format :

  • ADT_A01, ADT_A02, ADT_A03, ADT_A04, ADT_A05, ADT_A06, ADT_A07, ADT_A08, ADT_A09, ADT_A10, ADT_A11, ADT_A12, ADT_A13, ADT_A17, ADT_A18, ADT_A23, ADT_A25, ADT_A27, ADT_A28, ADT_A29, ADT_A30, ADT_A31, ADT_A34, ADT_A36, ADT_A39, ADT_A40, ADT_A41, ADT_A45, ADT_A47, ADT_A49, ADT_A50, ADT_A51, ADT_A60

  • BAR_P12

  • MDM_T02, MDM_T04, MDM_T08, MDM_T11

  • OMP_O09

  • ORM_O01

  • ORU_R01

  • PPR_PC1, PPR_PC2, PPR_PC3

  • RDE_O11

  • SIU_S12, SIU_S13, SIU_S14, SIU_S15, SIU_S16, SIU_S17, SIU_S26

  • VXU_V04

How it's working

This project works with the pivot diagram: SDA.

The SDA (Summary Document Architecture) is the InterSystems Clinical Data Format.

The SDA <-> FHIR correspondences can be consulted here, and those of the CDA -> SDA here.

gif sda pivot

9
1 1509
Article shan yue · May 15, 2024 2m read

You need to install the application first. If not installed, please refer to the previous article

Application demonstration

After successfully running the iris image vector search application, some data needs to be stored to support image retrieval as it is not initialized in the library.

Image storage

Firstly, drag and drop the image or click the upload icon, select the image, and click the upload button to upload and vectorize it. This process may be a bit slow.

This process involves using embedded Python to call the CLIP model and vectorize the image into 512 dimensional vector data.

3
1 278
Question Phillip Wu · Jan 28, 2025

Is it possible to get the length of queue for a production using Python code?

I'm using embedded Python at the moment.

I'd like to use the Python external language server later - the Python external server will not start in my environment.

If it is possible to query the production queue length programmically, please advise how?

It would also be nice to show the number of messages processed per second, if IRIS keeps track of this.

2
0 87