-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
NGS machine analysis associated w file output (Observations w DocumentReference as focus) #34
Comments
Incorporate file extension vs update for Observations. ex: import os
import orjson
from fhir.resources import get_fhir_model_class
def is_valid_fhir_resource_type(resource_type):
try:
model_class = get_fhir_model_class(resource_type)
return model_class is not None
except KeyError:
return False
def create_or_extend(new_items, folder_path='META', resource_type='Observation', update_existing=False):
assert is_valid_fhir_resource_type(resource_type), f"Invalid resource type: {resource_type}"
file_name = "".join([resource_type, ".ndjson"])
file_path = os.path.join(folder_path, file_name)
file_existed = os.path.exists(file_path)
existing_data = {}
if file_existed:
with open(file_path, 'r') as file:
for line in file:
try:
item = orjson.loads(line)
existing_data[item.get("id")] = item
except orjson.JSONDecodeError:
continue
for new_item in new_items:
new_item_id = new_item["id"]
if new_item_id not in existing_data or update_existing:
existing_data[new_item_id] = new_item
with open(file_path, 'w') as file:
for item in existing_data.values():
file.write(orjson.dumps(item).decode('utf-8') + '\n')
if file_existed:
if update_existing:
print(f"{file_name} has new updates to existing data.")
else:
print(f"{file_name} has been extended, without updating existing data.")
else:
print(f"{file_name} has been created.") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
No description provided.
The text was updated successfully, but these errors were encountered: