HL7 real-time feed · ClarityFlow pipeline
EugeneGI · Flow-MM-HL7-Processing
Overall Processing job for HL7 pipeline
trigger
How it's scheduled
New appointments land continuously on the HL7 real-time feed. Front-of-house work is time-boxed — the estimate and letter have to reach the patient before the visit — so the pipeline polls every 30 minutes to check eligibility, price the good-faith estimate, and send the patient letter within minutes of an appointment being booked, rather than waiting for an overnight batch. It stands down while HL7 - Processing - EugeneGI - Nightly runs (the heavier nightly pass).
| Scheduled task | Cadence | Server | State | Coordination |
|---|---|---|---|---|
\MDC\HL7 - Processing - EugeneGI | every 30 min (from 00:01) | prod-db-1 | enabled | yields to HL7 - Processing - EugeneGI - Nightly |
shape
Against the canonical Flow spine
Every Flow pipeline is a variation on one shape. Lit stages are the ones this pipeline runs; the labels match the capability lens.
computed concepts · from the SQL
What it computes
Business concepts mined from this pipeline's SQL text — the meaning behind the typed steps. Each links to the concept lens (who else computes it).
task tree
What the pipeline runs
Tasks in order, each with what it does — typed stepsfrom the MDClarity task docs (click to open the reference), sub-jobsyou can expand inline (▶) to reveal their own tasks, and SQL steps summarized by Gemini (✨). Every step shows the tables it writes/reads and which earlier step it feeds from(sqlglot lineage).
Flow-MM-HL7-Processing
- DownloadDownloadDownloads files from remote FTP or SFTP servers to local directories with support for archiving and parallel transfers.server=EugeneGI_ProdMirror-intva01-sftpremote directory=/local directory={HL7Download}
- Clean and Move HL7ExecuteProcesscommand="D:\ClientData\EugeneGI\py.bat"
- LoadHL7FilesLoadHL7FilesParses and imports patient demographics, visits, and charges from HL7 message files located in a specified directory.message folder path={HL7Directory}message processed folder path={HL7Archive}add timestamp to file name
- HL7ProcessLog + HL7Deltasql
flow_mm_hl7_processing__hl7processlog_hl7delta.sql✨ Identifies and stages new HL7 messages from the archive for processing while logging the start of the integration task.writesHL7ADTBatchHL7DeltaHL7ProcessLogHL7ProcessLogArchiveKeysHL7SIUBatch· readsHL7ADTBatchHL7ArchiveHL7SIUBatchTransformPatientTransformVisit ▶Flow-MM-HL7-Processing-Load-Entitiessub-job · 4↗Load Facility, Provider, InsuranceMap
- Load FacilityLoadEntitieswrites
Facility· readsFacilityHL7VisitMMFacilityMapentity type=Facilitycustom querykey prefix=F - Load Providersql
flow_mm_hl7_processing_load_entities__load_provider.sqldisabled✨ Loads provider information from HL7 order messages into the master provider table using the most recent record available.writesProvider· readsHL7Order - Load ProviderMergeSqlwrites
Provider· readsHL7VisitMMProviderMapProvidermerge data source type=ThisDatabasetable name=Providermerge mode=InsertUpdatebulk copy timeout seconds=300bulk copy use table lock - Load InsuranceMapLoadEntitieswrites
InsuranceMap· readsHL7PatientHL7VisitInsuranceMapentity type=InsuranceMapcustom querykey prefix=IM
▶Flow-MM-HL7-Transformsub-job · 9↗HL7 Transformation Layer
- TruncateVisitDeltasql
flow_mm_hl7_transform__truncatevisitdelta.sql✨ Clears the visit delta table to prepare for a fresh set of changed records in the current pipeline run.writesVisitDelta - ImportHL7ADTCombinedsql
flow_mm_hl7_transform__importhl7adtcombined.sql✨ Consolidates patient and visit information from various HL7 message types into a unified staging table for further transformation.writesImportHL7ADTCombined - TransformPatientsql
flow_mm_hl7_transform__transformpatient.sql✨ Synchronizes patient demographic information by updating existing records or inserting new ones based on the latest HL7 data.writesTransformPatient· readsImportHL7ADTCombined↳ feeds from ImportHL7ADTCombined - ImportTransformPatientInsurancesql
flow_mm_hl7_transform__importtransformpatientinsurance.sql✨ Extracts and stages the most recent insurance details for patients from combined HL7 message data.writesImportTransformPatientInsurance· readsImportHL7ADTCombinedInsuranceMap↳ feeds from ImportHL7ADTCombined - TransformPatientInsurance+VisitDeltasql
flow_mm_hl7_transform__transformpatientinsurance_visitdelta.sql✨ Updates patient insurance records and flags associated future visits in the delta table for reprocessing.writesTransformPatientInsuranceVisitDelta· readsInsuranceChangesTransformVisitimporttransformpatientinsurance↳ feeds from ImportTransformPatientInsurance, MergeTransformVisit+VisitDelta - ImportTransformVisitsql
flow_mm_hl7_transform__importtransformvisit.sql✨ Builds the visit import table by extracting the latest appointment data from HL7 messages while mapping facilities and providers.writesImportTransformVisit· readsFacilityHL7DeltaHL7VisitMMFacilityMapMMProviderMap - MergeTransformVisit+VisitDeltasql
flow_mm_hl7_transform__mergetransformvisit_visitdelta.sql✨ Updates the main visit transformation table with imported data and flags new visits in the delta tracking table.writesTransformVisitVisitDelta· readsImportTransformVisitVisitDelta↳ feeds from ImportTransformVisit, TransformPatientInsurance+VisitDelta, TruncateVisitDelta - ImportTransformVisitInsurancesql
flow_mm_hl7_transform__importtransformvisitinsurance.sql✨ Builds the insurance import table by linking the latest patient insurance details to visits identified in the delta tracking table.writesImportTransformVisitInsurance· readsHL7DeltaTransformPatientInsuranceVisitDelta↳ feeds from MergeTransformVisit+VisitDelta, TransformPatientInsurance+VisitDelta, TruncateVisitDelta - MergeTransformVisitInsurancesql
flow_mm_hl7_transform__mergetransformvisitinsurance.sql✨ Updates the visit insurance transformation table by merging the latest imported insurance records for each visit.writesTransformVisitInsurance· readsImportTransformVisitInsurance↳ feeds from ImportTransformVisitInsurance
- LoadPatientsLoadPatientsUpsert patient records into the patient dimension.· reads
PatientTransformPatientcustom patient query ▶Flow-MM-HL7-Processing-LoadDimensionMemberssub-job · 15↗
- Load Insurance Dimensionsql
flow_mm_hl7_processing_loaddimensionmembers__load_insurance_dimension.sqldisabled✨ Populates the insurance dimension with unique carrier keys to enable filtering and analysis by payer.writesDimensionMember· readsInsurance - Load EligibilityInsurance Dimensionsql
flow_mm_hl7_processing_loaddimensionmembers__load_eligibilityinsurance_dimension.sqldisabled✨ Loads insurance members that support electronic eligibility and benefits verification via API integration.writesDimensionMember· readsDimensionMemberInsurance - Load QuoteInsurance Dimensionsql
flow_mm_hl7_processing_loaddimensionmembers__load_quoteinsurance_dimension.sqldisabled✨ Builds a dimension of insurance providers associated with active contracts to facilitate accurate patient cost estimates.writesDimensionMember· readsContractMapInsurance - LoadInsuranceDimensionMembersLoadInsuranceDimensionMembersSynchronize insurance-specific dimension members from the insurance table to update contract and eligibility filtering options across the application.writes
DimensionMemberload insuranceload quote insuranceload eligibility insurance - Load Time Dimensionssql
flow_mm_hl7_processing_loaddimensionmembers__load_time_dimensions.sql✨ Builds and updates time-based dimension members, including days, months, and years, for reporting and analytical hierarchies.writesDimensionMember· readsTransformVisit - Load VisitStatus Dimensionsql
flow_mm_hl7_processing_loaddimensionmembers__load_visitstatus_dimension.sql✨ Loads unique visit status values into the dimension table to support standardized reporting on appointment states.writesDimensionMember· readsTransformVisit - Load Provider Dimensionsql
flow_mm_hl7_processing_loaddimensionmembers__load_provider_dimension.sql✨ Synchronizes provider details into the dimension member table to enable provider-based filtering and grouping in reports.writesDimensionMember· readsProvider - Load Facility Dimensionssql
flow_mm_hl7_processing_loaddimensionmembers__load_facility_dimensions.sql✨ Loads facility and facility group hierarchies into the dimension table to organize location-based data for analysis.writesDimensionMember· readsDimensionMemberFacility↳ feeds from Load Provider Dimension, Load State Dimensions, Load Time Dimensions, Load VisitStatus Dimension, Load VisitType Dimensions, LoadInsuranceDimensionMembers - Load VisitType Dimensionssql
flow_mm_hl7_processing_loaddimensionmembers__load_visittype_dimensions.sql✨ Builds and updates the VisitType dimension using the most recent appointment type descriptions from HL7 visit data.writesDimensionMember· readsHL7Visit - Load Diagnosis Code Dimensionsql
flow_mm_hl7_processing_loaddimensionmembers__load_diagnosis_code_dimension.sqldisabled✨ Loads and updates the DiagnosisCode dimension by extracting unique primary, secondary, and tertiary diagnosis codes from charge data.writesDimensionMember· readsTransformCharge - Load RadioIsotopes Code Dimensionsql
flow_mm_hl7_processing_loaddimensionmembers__load_radioisotopes_code_dimension.sqldisabled✨ Flags and updates the RadioIsotopes dimension to indicate the presence of radioisotope codes within the source risk data.writesDimensionMember· readsSourceCareRiskRadioIsotopeCodes - Load Modifier Dimensionsql
flow_mm_hl7_processing_loaddimensionmembers__load_modifier_dimension.sqldisabled✨ Loads and updates the Modifier dimension by collecting unique modifier codes from multiple charge record fields.writesDimensionMember· readsTransformCharge - Load Place of Service Dimensionsql
flow_mm_hl7_processing_loaddimensionmembers__load_place_of_service_dimension.sqldisabled✨ Builds and updates the PlaceOfService dimension using unique location codes extracted from charge transaction records.writesDimensionMember· readsTransformCharge - Load SourceInsurance Dimensionsql
flow_mm_hl7_processing_loaddimensionmembers__load_sourceinsurance_dimension.sqldisabled✨ Loads and updates the SourceInsurance dimension with mapped insurance provider details for specific data sources and active accounts.writesDimensionMember· readsAccountInsuranceInsuranceMap - Load State Dimensionssql
flow_mm_hl7_processing_loaddimensionmembers__load_state_dimensions.sql✨ Updates state dimensions using facility location data to allow for geographic segmentation of healthcare services and revenue.writesDimensionMember· readsFacility
▶Flow-MM-HL7-Processing-LoadVisitssub-job · 22↗
- Load TempBatchVisitsql
flow_mm_hl7_processing_loadvisits__load_tempbatchvisit.sqldisabled✨ Builds a temporary batch table to identify upcoming visits requiring initial or follow-up insurance eligibility and benefit verification.writesTempBatchVisitVisitEligServiceTypesVisitServiceTypes· readsDimensionMemberTempBatchVisitTransformVisitTransformVisitInsuranceTransformVisitInsuranceCoverageStatusVisitEligServiceTypesVisitServiceTypes - Augment Visit Deltasql
flow_mm_hl7_processing_loadvisits__augment_visit_delta.sqldisabled✨ Updates the visit delta table by adding records flagged as requiring new insurance eligibility lookups from the batch process.writesVisitDelta· readsTempBatchVisitVisitDelta - ReprocessChangedConfigurationsReprocessChangedConfigurationsIdentify and queue visits or accounts affected by configuration changes to ensure historical data reflects updated pricing or insurance rules.reprocess visits
- Augment VisitDelta - ReprocessChangedConfigssql
flow_mm_hl7_processing_loadvisits__augment_visitdelta_reprocesschangedconfigs.sql✨ Updates insurance mappings for queued visits and flags them in the delta table for downstream reprocessing.writesVisitDeltaVisitKeyLookup· readsTransformVisitVisitDeltaVisitKeyLookup - LoadVisitBatchLoadVisitBatchLoad scheduled visits and associated charges into the processing pipeline using custom SQL queries for pricing estimation and quote generation.writes
QuoteBatchVisitBatch· readsDimensionMemberInsuranceMapPatientTransformVisitTransformVisitInsuranceVisitVisitDelta↳ feeds from Augment VisitDelta - ReprocessChangedConfigs, Sync Visits and Quotescustom visit queryauto charge queryauto service type querycustom coverage queryadd zero charge - AutoApplyBundlesToVisitBatchAutoApplyBundlesToVisitBatchApplies matching charge bundles to batch visits based on facility and insurance to ensure consistent pricing across service types.
- CheckBenefitsflowVerifies insurance eligibility and retrieves detailed benefits information for visits by making real-time API calls to insurance providers.auto query
- Verifies insurance eligibility and retrieves detailed benefits information for visits by making real-time API calls to insurance providers.· reads
EligibilityStatusMapEligibilityTxnTempBatchVisitVisitBatchcustom queryDISABLED - AutoApplyBenefitsAutoApplyBenefitsPopulates insurance benefits like copays and deductibles on batch visits using data from eligibility verification transactions.
- CalculateVisitsflowCompute the good-faith estimate (CalculateVisits).· reads
DimensionMemberVisitBatch↳ feeds from LoadVisitBatchcustom querycalculate chargesbatch mode - LogVisitChangeEventsBatchLogVisitChangeEventsBatchCompare batch visits against production records to detect and log specific property changes for auditing and compliance tracking.
- ExportBatchVisitEligibilityflowPush the batch to the app / export results.· reads
EligibilityTxnvisitbatch↳ feeds from LoadVisitBatchcustom querytable name=BatchVisitEligibility - Load TransformVisitInsuranceCoverageStatussql
flow_mm_hl7_processing_loadvisits__load_transformvisitinsurancecoveragestatus.sql✨ Calculates and loads the latest insurance eligibility status and coverage details for visits in the current batch.writesTempEligibilityStatsTransformVisitInsuranceCoverageStatus· readsTempEligibilityStatsTransformVisitInsuranceVisitBatch↳ feeds from LoadVisitBatch ▶Flow-MM-HL7-Processing-CustomPropertysub-job · 8↗
- Load Primary Coverage StatusUpdateCustomPropertyFromQuery· reads
TransformVisitInsuranceCoverageStatusVisitBatchentity=Visitcustom property key=PrimaryCoverageStatuscustom querybatch mode - Load Secondary Coverage StatusUpdateCustomPropertyFromQuery· reads
TransformVisitInsuranceCoverageStatusVisitBatchentity=Visitcustom property key=SecondaryCoverageStatuscustom querybatch mode - Load Tertiary Coverage StatusUpdateCustomPropertyFromQuery· reads
TransformVisitInsuranceCoverageStatusVisitBatchentity=Visitcustom property key=TertiaryCoverageStatuscustom querybatch mode - LoadCustomNotesCustomPropertyLoadCustomNotesCustomProperty· reads
BundleNotesMappingHL7VisitVisitBatchentity=Visitcustom property key=CustomNotescustom querybatch mode - LoadPriorAuthCustomPropertyLoadPriorAuthCustomProperty· reads
CustomPropertyMapTransformVisitInsuranceVisitbatchsourcepriorauthdetailsentity=Visitcustom property key=PriorAuthcustom querybatch mode - LoadMedicaidRolloverCustomPropertyLoadMedicaidRolloverCustomProperty· reads
CustomPropertyMapTransformVisitInsuranceVisitBatchentity=Visitcustom property key=MedicaidRollovercustom querybatch mode - Load Has Active Medicaid/Medicare InsuranceUpdateCustomPropertyFromQuery· reads
DimensionMemberTransformVisitInsuranceCoverageStatusVisitBatchentity=Visitcustom property key=HasActiveMedicaid/MedicareInsurancecustom querybatch mode - Update HasMisMatchedMemberID Custom Property after recheckUpdateCustomPropertyFromQuery· reads
BatchVisitEligibilityEligibilityTxnVisitBatchentity=Visitcustom property key=HasMismatchedMemberIDcustom querybatch mode
- Sync Visits and QuotesSyncBatchSynchronizes processed data from batch staging tables to production tables, updating visits, quotes, and custom property mappings.writes
CustomPropertyMapQuoteVisitVisitChangeEvent· readsCustomPropertyMapBatchQuoteBatchVisitBatchVisitChangeEventBatch↳ feeds from LoadVisitBatchsync quotesync visitsync custom property mapsync visit change event - ExportBatchVisitEligibilityflowdisabledPush the batch to the app / export results.· reads
EligibilityTxnVisitBatchcustom querytable name=BatchEligibility_Resultsarchive table name=BatchEligibility_ResultsArchiveDISABLED - SearchForInsuranceflowdisabledFind coverage for visits missing insurance.· reads
EligibilityTxnBatchcustom querytable name=InsuranceSearch_Resultbatch modeDISABLED ▶Load-Visit-Factsub-job · 1↗
- Load VisitFactsql
load_visit_fact__load_visitfact.sql✨ Refreshes the visit fact table by recalculating statuses, payment flags, and letter activity for visits with recent updates or transactions.writesVisitFact· readsEligibilityStatusMapEligibilityTxnPatientLetterPaymentTxnVisit
▶Update-Dashboard-Tablessub-job · 1↗
- UpdateDashboardTablesUpdateDashboardTablesRegenerates optimized aggregate tables for all dashboard reports and updates their definitions to reflect the latest source data.
- LoadVisitBatchAutoSendsql
flow_mm_hl7_processing_loadvisits__loadvisitbatchautosend.sql✨ Populates the auto-send queue with visit data to facilitate automated end-of-day processing and communication.writesVisitBatchAutoSend· readsVisitBatch↳ feeds from LoadVisitBatch
- Update HL7ProcessLogsql
flow_mm_hl7_processing__update_hl7processlog.sql✨ Finalizes the HL7 processing log and updates the tracking pointer to the last successfully processed message.writesHL7ProcessLogLastArchiveKey· readsHL7DeltaHL7ProcessLogHL7ProcessLogLastArchiveKey↳ feeds from HL7ProcessLog + HL7Delta - WorkqueueAssignmentWorkqueueAssignmentAssigns accounts or visits to workqueue stacks by evaluating matching criteria and updating item lists based on search terms.
- Exports pending patient letters as HL7 messages with PDF attachments to a local directory for transmission to external systems.output file path=D:\ClientData\RIA\ORUpublish directory=D:\ClientData\RIA\ORUsending application=MDClaritysending facility=MDClarityreceiving application=Abbadox
markers
Why it classified as flow
Front-of-house actions found anywhere in the tree (including nested sub-jobs).