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)
@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