Skip to content

Instantly share code, notes, and snippets.

@rafamayo
Forked from rajvansia/upload-fhir-bundle.py
Last active February 14, 2024 02:45
Show Gist options
  • Save rafamayo/1731e489b114a8cb1ac4c3f8fbc6e9fc to your computer and use it in GitHub Desktop.
Save rafamayo/1731e489b114a8cb1ac4c3f8fbc6e9fc to your computer and use it in GitHub Desktop.
import json
import os
import requests
# FHIR server endpoint
URL = "http://localhost:8080/fhir/"
# FHIR server json header content
headers = {"Content-Type": "application/fhir+json;charset=utf-8"}
# This path is specific to my setup
dirTestPatients = '../../Synthea/output/fhir/'
# Loop over all files in the output folder in order to upload each json file for each patient.
for dirpath, dirnames, files in os.walk(dirTestPatients):
for file_name in files:
# Make sure the encoding is utf-8
with open(dirTestPatients+file_name, "r", encoding='utf-8') as bundle_file:
data = bundle_file.read()
r = requests.post(url = URL, data = data, headers = headers)
# Output file name that was processed + the status code
print(file_name)
print(r.status_code)
@kunjulin
Copy link

kunjulin commented Apr 2, 2022

Hi Korkmatik,
Thanks for the update code, this works for me now!!

@bec1442
Copy link

bec1442 commented May 12, 2023

Running a docker HAPI FHIR container
When I tried the code, it lists all JSON files followed by a 404 error.
Restart the container and find only entries for “Location” and “Organization”
Any suggestions as to why the 404 errors.

404Errors

@rafamayo
Copy link
Author

Hi,
was anything loaded into the FHIR-Server?
Is there a / missing in your url to the server? I think it should be http://localhost:8080/fhir/. That's what the code is using as default. You could also try leaving out the argument.
Cheers

@bec1442
Copy link

bec1442 commented May 14, 2023

Hi
Many thanks for taking the time to reply.
-The –url argument is defined as “http://localhost:8080/fhir/ “ (if a copy this URL to the browser, I get the Swagger UI) so it is correct and running
-The Synthea output is correct because it is reading the correct files before the 404 error. It does create
Locations and Organization but should create more resources that that (including Patients)
Rebuild the docker image and rerun script
First time
FileNotFoundError: [Errno 2] No such file or directory: 'H:/FHIRE/synthea/output/fhirhospitalInformation1683749514854.json'
Runnit again
hospitalInformation1683749514854.json
200
practitionerInformation1683749514854.json
400
Adam_Hirthe_1b039e27-16f0-85f6-fea3-83f94a66a397.json
404
Adan_Kshlerin_703f7f12-396b-fd3d-11b4-62607351522e.json
404
..etc

@sbec100
Copy link

sbec100 commented Feb 14, 2024

was this ever fixed, getting same error where it just creates “Location” and “Organization”

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment