Report
Overview
The Report domain encompasses the full lifecycle of data extraction, transformation, evaluation, and delivery for reporting workflows. It orchestrates the flow of raw clinical data into structured, validated, and submitted quality reports. Each service plays a specialized role in enabling modularity, traceability, and performance at scale.
Definitions
| Concept | Description | |
|---|---|---|
| Report | The output of Link's evaluation of data. A report can be submitted to NHSN, it can be evaluated in Power BI, it can be visualized in a custom UI. | |
| Evaluation | The process of doing something with data within Link (i.e. acquire, normalize, check criteria, submit). | |
| Reporting Requirement | A description of the need for data in a report. (i.e. "Bed capacity reporting during a pandemic" or "Hypoglycemic patients") | |
| Reporting Orchestration | Indicates the steps to take within the Link system to produce reportable data. |
Stakeholder Requirements
- Reporting functionality SHALL be modular so that it can be used for multiple use cases
- Link acquires (either via PUSH or PULL) and evaluates the data in a reporting pipeline.
- Reporting pipelines SHALL be orchestrated via configuration of services
- As a reporting organization and reporting consumer, I want the system to retain version history of IGs used during reporting in a reporting period, so that deleted reports can be accurately regenerated using their original definitions.
Functional Requirements
TODO
Diagrams
State
stateDiagram-v2 state "Report Scheduled" as ReportScheduled state "Data Acquisition Requested" as DataAcquisitionRequested state "Patient Lists Acquired" as PatientListsAcquired state "Resource Evaluated" as ResourceEvaluated state "Validation Complete" as ValidationComplete state "Report Submitted" as ReportSubmitted state "Report Generation Failed" as ReportGenerationFailed state "Submission Failed" as SubmissionFailed ReportScheduled --> DataAcquisitionRequested : GenerateReportValue DataAcquisitionRequested --> PatientListsAcquired : PatientListsAcquiredValue PatientListsAcquired --> ResourceEvaluated : ResourceEvaluatedValue (for each patient) ResourceEvaluated --> ValidationComplete : ReadyForValidationValue ValidationComplete --> ReportSubmitted : ReportSubmittedValue DataAcquisitionRequested --> ReportGenerationFailed : Error PatientListsAcquired --> ReportGenerationFailed : Error ResourceEvaluated --> ReportGenerationFailed : Error ValidationComplete --> ReportGenerationFailed : Error ReportSubmitted --> SubmissionFailed : Error ReportGenerationFailed --> ReportScheduled : Retry (GenerateReport) SubmissionFailed --> ReportSubmitted : Retry (SubmitReport) state "Initial" as Initial Initial --> ReportScheduled : Report Scheduled
Relationships
flowchart LR
subgraph nReport_4D4FBBDA_domain["Domain: Report"]
nMeasureEvalService_67DBAC12["Service: Measure Evaluation Service"]
nNormalizationService_4A3628B6["Service: Normalization Service"]
nQueryDispatchService_31DDE349["Service: Query Dispatch Service"]
nReportService_1ECFD801["Service: Report Service"]
nSubmissionService_8367A27["Service: Submission Service"]
nPatientCensusScheduled_2383C0C6["Event: Patient Census Scheduled"]
nPatientEvent_34D33665["Event: Patient Event"]
nReportScheduled_BC6D32E["Event: Report Scheduled"]
nSubmitPayload_2F556666["Event: Submit Payload"]
nPayloadSubmitted_2E346CAB["Event: Payload Submitted"]
nGenerateReportRequested_7BC99734["Command: Generate Report Requested"]
end