37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
#!/usr/bin/env python3
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
Validation rules for the FHIR to PAD converter.
|
|
"""
|
|
|
|
from typing import Any, Dict, List, Tuple
|
|
|
|
|
|
from datetime import datetime
|
|
from typing import Any, Dict, List
|
|
from utils import collect_effective_dates
|
|
|
|
def validate_temporal_consistency(grouped_resources: List[Dict[str, Any]]) -> List[str]:
|
|
"""Checks for temporal consistency within a group of resources."""
|
|
warnings = []
|
|
now = datetime.now()
|
|
for resource in grouped_resources:
|
|
dates = collect_effective_dates(resource)
|
|
for d in dates:
|
|
if d.timestamp() > now.timestamp():
|
|
warnings.append(f"Resource {resource.get('id')} has an effective date in the future: {d.isoformat()}")
|
|
return warnings
|
|
|
|
def validate_codes(grouped_resources: List[Dict[str, Any]]) -> List[str]:
|
|
"""Checks for the validity of codes (e.g., ICD-10, GOÄ)."""
|
|
warnings = []
|
|
# Placeholder for code validation logic
|
|
return warnings
|
|
|
|
def run_validation(grouped_resources: List[Dict[str, Any]]) -> List[str]:
|
|
"""Runs all validation checks on a group of resources."""
|
|
all_warnings = []
|
|
all_warnings.extend(validate_temporal_consistency(grouped_resources))
|
|
all_warnings.extend(validate_codes(grouped_resources))
|
|
return all_warnings
|