Application services
Results shared by ETL stages and orchestration.
- class acmad_uploader.application.results.StageResult(value, issues=())
Bases:
GenericValue and issues produced by one ETL stage.
- value: T | None
- issues: tuple[PipelineIssue, ...]
- property succeeded: bool
Return whether the stage produced a value without errors.
- classmethod success(value, *, issues=())
Create a successful result, optionally containing warnings.
- Return type:
StageResult[TypeVar(T)]
- classmethod failure(*issues)
Create a failed result.
- Return type:
StageResult[TypeVar(T)]
- class acmad_uploader.application.results.PipelineResult(extraction, transformation=None, loading=None)
Bases:
GenericResults of the stages reached during one pipeline execution.
- extraction: StageResult
- transformation: StageResult | None
- loading: StageResult | None
- property issues: tuple[PipelineIssue, ...]
Return issues from all stages in execution order.
- property succeeded: bool
Return whether every executed stage succeeded.
Pipeline orchestration independent of Excel and the ACMAD REST API.
- class acmad_uploader.application.pipeline.EtlPipeline(extractor, transformer, loader=None)
Bases:
GenericCoordinate extraction, transformation and optional loading.
The pipeline stops after the first failed stage. Loading is opt-in so a dry run is the safe default for clinical data.
- transformer: Transformer
- run(source, *, load=False)
Run reachable stages and return all stage results.
- Return type:
PipelineResult[TypeVar(ExtractedT),TypeVar(CanonicalT),TypeVar(LoadedT)]
Package-wide validation and upload orchestration.
- class acmad_uploader.application.package_upload.PackageRunOptions(site=None, api_url=None, realm_url=None, client_id=None, persist_tokens=True, open_browser=True, verify_tls=True, login_url_callback=None)
Bases:
objectOptions for package-wide validation and upload.
- site: str | None
- api_url: str | None
- realm_url: str | None
- client_id: str | None
- persist_tokens: bool
- open_browser: bool
- verify_tls: bool
- login_url_callback: Callable[[str], None] | None
- class acmad_uploader.application.package_upload.PackageStepResult(name, succeeded, issues=(), record_count=None, result=None)
Bases:
objectOutcome for one package-wide ETL step.
- name: str
- succeeded: bool
- issues: tuple[PipelineIssue, ...]
- record_count: int | None
- result: PipelineResult[Any, Any, Any] | None
- class acmad_uploader.application.package_upload.PackageRunResult(steps)
Bases:
objectOutcome for a package-wide validation or upload run.
- steps: tuple[PackageStepResult, ...]
- property issues: tuple[PipelineIssue, ...]
Return issues from all package steps in execution order.
- property succeeded: bool
Return whether every package step succeeded.
- acmad_uploader.application.package_upload.run_package_validation(path, options, *, on_step_started=None, on_step_finished=None)
Validate every known record type in dependency order.
- Return type:
- acmad_uploader.application.package_upload.run_package_upload(path, options, *, on_step_started=None, on_step_finished=None)
Validate and upload every known record type in dependency order.
- Return type:
Application service for loading a batch of patients.
- class acmad_uploader.application.patient.PatientLoadSummary(patients)
Bases:
objectSuccessful patient writes from a load attempt.
- patients: tuple[PatientUpsertResult, ...]
- class acmad_uploader.application.patient.PatientLoader(repository)
Bases:
objectLoad patients independently so one API rejection does not hide later ones.
- load(canonical)
Upsert every canonical patient and collect structured failures.
- Return type:
Application service for loading a batch of diagnoses.
- class acmad_uploader.application.diagnosis.DiagnosisLoadSummary(diagnoses)
Bases:
objectSuccessful diagnosis writes from a load attempt.
- diagnoses: tuple[DiagnosisUpsertResult, ...]
- class acmad_uploader.application.diagnosis.DiagnosisLoader(repository)
Bases:
objectLoad diagnoses independently so one API rejection does not hide later ones.
- load(canonical)
Upsert every canonical diagnosis and collect structured failures.
- Return type:
Application service for loading a batch of gait assessments.
- class acmad_uploader.application.gait_assessment.GaitAssessmentLoadSummary(assessments)
Bases:
objectSuccessful gait assessment writes from a load attempt.
- assessments: tuple[GaitAssessmentUpsertResult, ...]
- class acmad_uploader.application.gait_assessment.GaitAssessmentLoader(repository)
Bases:
objectLoad assessments independently so one API rejection does not hide later ones.
- load(canonical)
Upsert every canonical gait assessment and collect structured failures.
- Return type:
Application service for loading a batch of function assessments.
- class acmad_uploader.application.function_assessment.FunctionAssessmentLoadSummary(assessments)
Bases:
objectSuccessful function assessment writes from a load attempt.
- assessments: tuple[FunctionAssessmentUpsertResult, ...]
- class acmad_uploader.application.function_assessment.FunctionAssessmentLoader(repository)
Bases:
objectLoad assessments independently so one API rejection does not hide later ones.
- load(canonical)
Upsert every canonical function assessment, collecting failures.
- Return type:
Application service for loading a batch of mocap sessions.
- class acmad_uploader.application.mocap_data.MocapDataLoadSummary(sessions)
Bases:
objectSuccessful mocap session writes from a load attempt.
- sessions: tuple[MocapDataUpsertResult, ...]
- class acmad_uploader.application.mocap_data.MocapDataLoader(repository)
Bases:
objectLoad sessions independently so one API rejection does not hide later ones.
- load(canonical)
Upsert every canonical mocap session, collecting structured failures.
- Return type:
Application service for loading a batch of biomechanics artifacts.
- class acmad_uploader.application.biomechanics_artifact.BiomechanicsArtifactLoadSummary(artifacts)
Bases:
objectSuccessful biomechanics artifact writes from a load attempt.
- artifacts: tuple[BiomechanicsArtifactUpsertResult, ...]
- class acmad_uploader.application.biomechanics_artifact.BiomechanicsArtifactLoader(repository)
Bases:
objectLoad artifacts independently so one API rejection does not hide later ones.
- load(canonical)
Upsert every canonical artifact, collecting structured failures.
- Return type:
Application service for loading a batch of physical examinations.
- class acmad_uploader.application.physical_examination.PhysicalExaminationLoadSummary(examinations)
Bases:
objectSuccessful physical examination writes from a load attempt.
- examinations: tuple[PhysicalExaminationUpsertResult, ...]
- class acmad_uploader.application.physical_examination.PhysicalExaminationLoader(repository)
Bases:
objectLoad examinations independently so one API rejection does not hide later ones.
- load(canonical)
Upsert every canonical physical examination, collecting failures.
- Return type:
Application service for loading a batch of PROMs family responses.
- class acmad_uploader.application.proms.PromsLoadSummary(proms)
Bases:
objectSuccessful PROMs writes from a load attempt.
- proms: tuple[PromsUpsertResult, ...]
- class acmad_uploader.application.proms.PromsLoader(repository)
Bases:
objectLoad PROMs independently so one API rejection does not hide later ones.
- load(canonical)
Upsert every canonical PROMs record, collecting structured failures.
- Return type:
Application service for loading a batch of surgery episodes.
- class acmad_uploader.application.surgery.SurgeryLoadSummary(surgeries)
Bases:
objectSuccessful surgery episode writes from a load attempt.
- surgeries: tuple[SurgeryUpsertResult, ...]