Another good way is to set the header :

Prefer: return=representation

The payload will be sent you back with the id.

Example :

POST http://localhost:33783/fhir/r4/Patient HTTP/1.1
Content-Type: application/json+fhir
Accept: application/json+fhir
Prefer: return=representation

{
  "resourceType": "Patient",
  "active": true,
  "name": [
    {
      "use": "official",
      "family": "Donald",
      "given": [
        "Duck"
      ]
    }
  ]
}

Response :

HTTP/1.1 201 Created
Date: Wed, 29 Mar 2023 12:13:40 GMT
Server: Apache
CACHE-CONTROL: no-cache
ETAG: W/"1"
EXPIRES: Thu, 29 Oct 1998 17:04:19 GMT
LAST-MODIFIED: Wed, 29 Mar 2023 12:13:40 GMT
LOCATION: http://localhost:33783/fhir/r4/Patient/2011/_history/1
PRAGMA: no-cache
CONTENT-LENGTH: 177
Connection: close
Content-Type: application/fhir+json; charset=UTF-8

{
  "resourceType": "Patient",
  "active": true,
  "name": [
    {
      "use": "official",
      "family": "Donald",
      "given": [
        "Duck"
      ]
    }
  ],
  "id": "2011",
  "meta": {
    "lastUpdated": "2023-03-29T12:13:40Z",
    "versionId": "1"
  }
}

Great article, if your are looking for an approach without objectscript and making use of "irispyhton", check this code :

python code :

import pandas as pd

from sqlalchemy import create_engine,types

engine = create_engine('iris+emb:///')

df = pd.read_csv("/irisdev/app/notebook/Notebooks/date_panda.csv")
# change type of FullDate to date
df['FullDate'] = pd.to_datetime(df['FullDate'])
df.head()

df.to_sql('DateFact', engine, schema="Demo" ,if_exists='replace', index=True,
        dtype={'DayName': types.VARCHAR(50), 'FullDate': types.DATE, 'MonthName': types.VARCHAR(50),
        'MonthYear': types.INTEGER, 'Year': types.INTEGER})

requirements.txt :

pandas
sqlalchemy==1.4.22
sqlalchemy-iris==0.5.0
irissqlcli

date_panda.csv

ID,DayName,FullDate,MonthName,MonthYear,Year
1,Monday,1900-01-01,January,190001,1900
2,Tuesday,1900-01-02,January,190001,1900
3,Wednesday,1900-01-03,January,190001,1900
4,Thursday,1900-01-04,January,190001,1900
5,Friday,1900-01-05,January,190001,1900
6,Saturday,1900-01-06,January,190001,1900
7,Sunday,1900-01-07,January,190001,1900
8,Monday,1900-01-08,January,190001,1900
9,Tuesday,1900-01-09,January,190001,1900
nc -z -v localhost 1972

Use netcat, it will tell you if the port is open, if not then it's may be because superserver is not ready

Thank for the feedback.

I think I will continue to use my sunglasses to check the community at night for a while cool

Hi @Raj Singh , it does support float even is the readme is not up to date.

If you are looking for an objectscript / embedded python approach Alex Woodhead solution will fit you well.

If you are looking for an python only approach my module may help you.

have you tired this python module ?

pip3 install iris-dollar-list

it can convert $list to python list.

Sure you can, for example to retrieve all the patient with an observation based on the code : 8302-2

[FHIR EndPoint]/Patient?_has:Observation:patient:code=8302-2

More info here : https://www.hl7.org/fhir/search.html#has

For the python part have a look at this git :

https://github.com/LucasEnard/fhir-client-python

It's a simple example how to use python client to interact with a FHIR server.

For fhir-py to create the same query use raw search :

https://github.com/grongierisc/fhir-py#raw-parameters

Last but not least, check out our neat implementation of SQL On FHIR aka FHIR SQL Builder

Demo here : https://github.com/grongierisc/iris-fhirsqlbuilder

If I understand correctly, the trick is to load the "src/gbl/SYS.xml" file that holds the configuration of git-source-control module.

If we create a new file like a BP or a DTL, we still have to add it to the source control module with the UI.
Then, if we do so, we have to update the "src/gbl/SYS.xml" file with the new file.

Am I right ?