[2026-01-22 00:03:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-02144.xml
[2026-01-22 00:03:01] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-02144.xml for user: 68d56363ec1209189
[2026-01-22 00:03:01] [INFO] File size: 1324 bytes
[2026-01-22 00:03:02] [INFO] Created FTPFiles record with ID: 697169362c929eeec
[2026-01-22 00:03:02] [INFO] About to extract fields from XML. File size: 1324 bytes
[2026-01-22 00:03:02] [INFO] Number of mappings: 21
[2026-01-22 00:03:02] [INFO] Starting XML parsing. Content length: 1324
[2026-01-22 00:03:02] [INFO] XML parsed successfully. Root element: Incident
[2026-01-22 00:03:02] [INFO] Processing 21 field mappings
[2026-01-22 00:03:02] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-01-22 00:03:02] [INFO]   -> Found value: 26-02144
[2026-01-22 00:03:02] [INFO]   -> Set field 'dispatchRunNumber' = "26-02144"
[2026-01-22 00:03:02] [INFO]   -> Set field 'cADNumber' = "26-02144"
[2026-01-22 00:03:02] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-01-22 00:03:02] [INFO]   -> Found value: 201
[2026-01-22 00:03:02] [INFO]   -> Set field 'incidentLocationStreetNumber' = 201
[2026-01-22 00:03:02] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-01-22 00:03:02] [INFO]   -> Found value: S KINGSHIGHWAY
[2026-01-22 00:03:02] [INFO]   -> Set field 'streetName' = "S KINGSHIGHWAY"
[2026-01-22 00:03:02] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-01-22 00:03:02] [INFO]   -> No value found (null or empty)
[2026-01-22 00:03:02] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-01-22 00:03:02] [INFO]   -> Found value: SIKESTON
[2026-01-22 00:03:02] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-01-22 00:03:02] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-01-22 00:03:02] [INFO]   -> Found value: SIKESTON DPS
[2026-01-22 00:03:02] [INFO]   -> Set field 'businessName' = "SIKESTON DPS"
[2026-01-22 00:03:02] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-01-22 00:03:02] [INFO]   -> Found value: MO
[2026-01-22 00:03:02] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-01-22 00:03:02] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-01-22 00:03:02] [INFO]   -> Found value: 63801
[2026-01-22 00:03:02] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-01-22 00:03:02] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-01-22 00:03:02] [INFO]   -> No value found (null or empty)
[2026-01-22 00:03:02] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-01-22 00:03:02] [INFO]   -> No value found (null or empty)
[2026-01-22 00:03:02] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-01-22 00:03:02] [INFO]   -> Found value: WED 1800 HR PAGER TEST
[2026-01-22 00:03:02] [INFO]   -> Set field 'incidentTypeValue1' = "WED 1800 HR PAGER TEST"
[2026-01-22 00:03:02] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-01-22 00:03:02] [INFO]   -> Found value: 01-21-2026 18:00:00|WED EVENING PAGER TEST
[2026-01-22 00:03:02] [INFO]   -> Set field 'dispatchNotes' = "01-21-2026 18:00:00|WED EVENING PAGER TEST"
[2026-01-22 00:03:02] [INFO]   -> Set field 'cADLog' = "01-21-2026 18:00:00|WED EVENING PAGER TEST"
[2026-01-22 00:03:02] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-01-22 00:03:02] [INFO]   -> Found value: 01-21-2026T18:01:57
[2026-01-22 00:03:02] [INFO] Reformatted DD-MM-YYYY date '01-21-2026' (day=01, month=21) to ISO: 2026-21-01T18:01:57
[2026-01-22 00:03:02] [ERROR] Error formatting datetime '2026-21-01T18:01:57': Failed to parse time string (2026-21-01T18:01:57) at position 6 (1): Unexpected character
[2026-01-22 00:03:02] [INFO]   -> Set field 'alarm' = null
[2026-01-22 00:03:02] [INFO] Reformatted DD-MM-YYYY date '01-21-2026' (day=01, month=21) to ISO: 2026-21-01T18:01:57
[2026-01-22 00:03:02] [ERROR] Error formatting datetime '2026-21-01T18:01:57': Failed to parse time string (2026-21-01T18:01:57) at position 6 (1): Unexpected character
[2026-01-22 00:03:02] [INFO]   -> Set field 'dispatched' = null
[2026-01-22 00:03:02] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-01-22 00:03:02] [INFO]   -> No value found (null or empty)
[2026-01-22 00:03:02] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-01-22 00:03:02] [INFO]   -> No value found (null or empty)
[2026-01-22 00:03:02] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-01-22 00:03:02] [INFO]   -> Found value: RURAL PAGE
[2026-01-22 00:03:02] [INFO]   -> Set field 'cADVehicleID' = "RURAL PAGE"
[2026-01-22 00:03:02] [INFO]   -> Set field 'name' = "RURAL PAGE"
[2026-01-22 00:03:02] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-01-22 00:03:02] [INFO]   -> No value found (null or empty)
[2026-01-22 00:03:02] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-01-22 00:03:02] [INFO]   -> No value found (null or empty)
[2026-01-22 00:03:02] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-01-22 00:03:02] [INFO]   -> Found value: 01-21-2026T18:02:22
[2026-01-22 00:03:02] [INFO] Reformatted DD-MM-YYYY date '01-21-2026' (day=01, month=21) to ISO: 2026-21-01T18:02:22
[2026-01-22 00:03:02] [ERROR] Error formatting datetime '2026-21-01T18:02:22': Failed to parse time string (2026-21-01T18:02:22) at position 6 (1): Unexpected character
[2026-01-22 00:03:02] [INFO]   -> Set field 'timeunitclear' = null
[2026-01-22 00:03:02] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-01-22 00:03:02] [INFO]   -> Found value: 01-21-2026T18:02:03
[2026-01-22 00:03:02] [INFO] Reformatted DD-MM-YYYY date '01-21-2026' (day=01, month=21) to ISO: 2026-21-01T18:02:03
[2026-01-22 00:03:02] [ERROR] Error formatting datetime '2026-21-01T18:02:03': Failed to parse time string (2026-21-01T18:02:03) at position 6 (1): Unexpected character
[2026-01-22 00:03:02] [INFO]   -> Set field 'timedispatch' = null
[2026-01-22 00:03:02] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-01-22 00:03:02] [INFO]   -> Found value: SCRFD
[2026-01-22 00:03:02] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2026-01-22 00:03:02] [INFO] Finished extracting fields. Total fields extracted: 18
[2026-01-22 00:03:02] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-02144","cADNumber":"26-02144","incidentLocationStreetNumber":201,"streetName":"S KINGSHIGHWAY","incidentLocationCity":"SIKESTON","businessName":"SIKESTON DPS","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"incidentTypeValue1":"WED 1800 HR PAGER TEST","dispatchNotes":"01-21-2026 18:00:00|WED EVENING PAGER TEST","cADLog":"01-21-2026 18:00:00|WED EVENING PAGER TEST","alarm":null,"dispatched":null,"cADVehicleID":"RURAL PAGE","name":"RURAL PAGE","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SCRFD"}
[2026-01-22 00:03:02] [INFO] Number of extracted fields: 18
[2026-01-22 00:03:02] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2026-01-22 00:03:02] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SCRFD', Parsed IDs = ["SCRFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-01-22 00:03:02] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2026-01-22 00:03:02] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (index 0) within mailbox's assigned agencies
[2026-01-22 00:03:02] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) at INDEX 0 based on AgencyCode 'SCRFD'
[2026-01-22 00:03:02] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2026-01-22 00:03:02] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"], matchedAgencyIndex = 0
[2026-01-22 00:03:02] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2026-01-22 00:03:02] [INFO] Found existing IncidentTypeMapping with ID: 693a0a64a7bfdcdfa
[2026-01-22 00:03:03] [INFO] Found existing Dispatch with cADNumber '26-02144', ID: 6971692822077ecbc - will update instead of create
[2026-01-22 00:03:03] [INFO] Updated existing Dispatches record with ID: 6971692822077ecbc
[2026-01-22 00:03:03] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-01-22
[2026-01-22 00:03:03] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-02144.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-01-22/SCRFD_26-02144.xml
[2026-01-22 00:03:03] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-02144.xml
[2026-01-22 00:03:03] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-02144.xml
[2026-01-22 00:03:03] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-02144.xml for user: 68d56363ec1209189
[2026-01-22 00:03:03] [INFO] File size: 1327 bytes
[2026-01-22 00:03:03] [INFO] Created FTPFiles record with ID: 697169378e232bf29
[2026-01-22 00:03:03] [INFO] About to extract fields from XML. File size: 1327 bytes
[2026-01-22 00:03:03] [INFO] Number of mappings: 21
[2026-01-22 00:03:03] [INFO] Starting XML parsing. Content length: 1327
[2026-01-22 00:03:03] [INFO] XML parsed successfully. Root element: Incident
[2026-01-22 00:03:03] [INFO] Processing 21 field mappings
[2026-01-22 00:03:03] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-01-22 00:03:03] [INFO]   -> Found value: 26-02144
[2026-01-22 00:03:03] [INFO]   -> Set field 'dispatchRunNumber' = "26-02144"
[2026-01-22 00:03:03] [INFO]   -> Set field 'cADNumber' = "26-02144"
[2026-01-22 00:03:03] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-01-22 00:03:03] [INFO]   -> Found value: 201
[2026-01-22 00:03:03] [INFO]   -> Set field 'incidentLocationStreetNumber' = 201
[2026-01-22 00:03:03] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-01-22 00:03:03] [INFO]   -> Found value: S KINGSHIGHWAY
[2026-01-22 00:03:03] [INFO]   -> Set field 'streetName' = "S KINGSHIGHWAY"
[2026-01-22 00:03:03] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-01-22 00:03:03] [INFO]   -> No value found (null or empty)
[2026-01-22 00:03:03] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-01-22 00:03:03] [INFO]   -> Found value: SIKESTON
[2026-01-22 00:03:03] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-01-22 00:03:03] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-01-22 00:03:03] [INFO]   -> Found value: SIKESTON DPS
[2026-01-22 00:03:03] [INFO]   -> Set field 'businessName' = "SIKESTON DPS"
[2026-01-22 00:03:03] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-01-22 00:03:03] [INFO]   -> Found value: MO
[2026-01-22 00:03:03] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-01-22 00:03:03] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-01-22 00:03:03] [INFO]   -> Found value: 63801
[2026-01-22 00:03:03] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-01-22 00:03:03] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-01-22 00:03:03] [INFO]   -> No value found (null or empty)
[2026-01-22 00:03:03] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-01-22 00:03:03] [INFO]   -> No value found (null or empty)
[2026-01-22 00:03:03] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-01-22 00:03:03] [INFO]   -> Found value: WED 1800 HR PAGER TEST
[2026-01-22 00:03:03] [INFO]   -> Set field 'incidentTypeValue1' = "WED 1800 HR PAGER TEST"
[2026-01-22 00:03:03] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-01-22 00:03:03] [INFO]   -> Found value: 01-21-2026 18:00:00|WED EVENING PAGER TEST
[2026-01-22 00:03:03] [INFO]   -> Set field 'dispatchNotes' = "01-21-2026 18:00:00|WED EVENING PAGER TEST"
[2026-01-22 00:03:03] [INFO]   -> Set field 'cADLog' = "01-21-2026 18:00:00|WED EVENING PAGER TEST"
[2026-01-22 00:03:03] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-01-22 00:03:03] [INFO]   -> Found value: 01-21-2026T18:01:57
[2026-01-22 00:03:03] [INFO] Reformatted DD-MM-YYYY date '01-21-2026' (day=01, month=21) to ISO: 2026-21-01T18:01:57
[2026-01-22 00:03:03] [ERROR] Error formatting datetime '2026-21-01T18:01:57': Failed to parse time string (2026-21-01T18:01:57) at position 6 (1): Unexpected character
[2026-01-22 00:03:03] [INFO]   -> Set field 'alarm' = null
[2026-01-22 00:03:03] [INFO] Reformatted DD-MM-YYYY date '01-21-2026' (day=01, month=21) to ISO: 2026-21-01T18:01:57
[2026-01-22 00:03:03] [ERROR] Error formatting datetime '2026-21-01T18:01:57': Failed to parse time string (2026-21-01T18:01:57) at position 6 (1): Unexpected character
[2026-01-22 00:03:03] [INFO]   -> Set field 'dispatched' = null
[2026-01-22 00:03:03] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-01-22 00:03:03] [INFO]   -> No value found (null or empty)
[2026-01-22 00:03:03] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-01-22 00:03:03] [INFO]   -> No value found (null or empty)
[2026-01-22 00:03:03] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-01-22 00:03:03] [INFO]   -> Found value: SIK ALL PAGE
[2026-01-22 00:03:03] [INFO]   -> Set field 'cADVehicleID' = "SIK ALL PAGE"
[2026-01-22 00:03:03] [INFO]   -> Set field 'name' = "SIK ALL PAGE"
[2026-01-22 00:03:03] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-01-22 00:03:03] [INFO]   -> No value found (null or empty)
[2026-01-22 00:03:03] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-01-22 00:03:03] [INFO]   -> No value found (null or empty)
[2026-01-22 00:03:03] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-01-22 00:03:03] [INFO]   -> Found value: 01-21-2026T18:02:22
[2026-01-22 00:03:03] [INFO] Reformatted DD-MM-YYYY date '01-21-2026' (day=01, month=21) to ISO: 2026-21-01T18:02:22
[2026-01-22 00:03:03] [ERROR] Error formatting datetime '2026-21-01T18:02:22': Failed to parse time string (2026-21-01T18:02:22) at position 6 (1): Unexpected character
[2026-01-22 00:03:03] [INFO]   -> Set field 'timeunitclear' = null
[2026-01-22 00:03:03] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-01-22 00:03:03] [INFO]   -> Found value: 01-21-2026T18:02:07
[2026-01-22 00:03:03] [INFO] Reformatted DD-MM-YYYY date '01-21-2026' (day=01, month=21) to ISO: 2026-21-01T18:02:07
[2026-01-22 00:03:03] [ERROR] Error formatting datetime '2026-21-01T18:02:07': Failed to parse time string (2026-21-01T18:02:07) at position 6 (1): Unexpected character
[2026-01-22 00:03:03] [INFO]   -> Set field 'timedispatch' = null
[2026-01-22 00:03:03] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-01-22 00:03:03] [INFO]   -> Found value: SDPSFD
[2026-01-22 00:03:03] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-01-22 00:03:03] [INFO] Finished extracting fields. Total fields extracted: 18
[2026-01-22 00:03:03] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-02144","cADNumber":"26-02144","incidentLocationStreetNumber":201,"streetName":"S KINGSHIGHWAY","incidentLocationCity":"SIKESTON","businessName":"SIKESTON DPS","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"incidentTypeValue1":"WED 1800 HR PAGER TEST","dispatchNotes":"01-21-2026 18:00:00|WED EVENING PAGER TEST","cADLog":"01-21-2026 18:00:00|WED EVENING PAGER TEST","alarm":null,"dispatched":null,"cADVehicleID":"SIK ALL PAGE","name":"SIK ALL PAGE","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD"}
[2026-01-22 00:03:03] [INFO] Number of extracted fields: 18
[2026-01-22 00:03:03] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-01-22 00:03:03] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-01-22 00:03:03] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-01-22 00:03:03] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-01-22 00:03:03] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-01-22 00:03:03] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-01-22 00:03:03] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-01-22 00:03:03] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-01-22 00:03:04] [INFO] Found existing IncidentTypeMapping with ID: 691e5c32443e1aa70
[2026-01-22 00:03:05] [INFO] Created new Dispatches record with ID: 697169385db00f6b5
[2026-01-22 00:03:05] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-02144.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-01-22/SDPSFD_26-02144.xml
[2026-01-22 00:03:05] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-02144.xml
[2026-01-22 00:21:15] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260007890_20260122_002115.XML
[2026-01-22 00:21:15] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260007890_20260122_002115.XML for user: 68f1466aed072ad4a
[2026-01-22 00:21:15] [INFO] File size: 5527 bytes
[2026-01-22 00:21:15] [INFO] Created FTPFiles record with ID: 69716d7bb48d02a74
[2026-01-22 00:21:15] [INFO] About to extract fields from XML. File size: 5527 bytes
[2026-01-22 00:21:15] [INFO] Number of mappings: 28
[2026-01-22 00:21:15] [INFO] Starting XML parsing. Content length: 5527
[2026-01-22 00:21:15] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-22 00:21:15] [INFO] Processing 28 field mappings
[2026-01-22 00:21:15] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-22 00:21:15] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-22 00:21:15] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-01-22 00:21:15] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-01-22 00:21:15] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-01-22 00:21:15] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-01-22 00:21:15] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-22 00:21:15] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-01-22 00:21:15] [INFO]   -> Found value: 2026000196
[2026-01-22 00:21:15] [INFO]   -> Set field 'incidentInternalId' = "2026000196"
[2026-01-22 00:21:15] [INFO]   -> Set field 'dispatchRunNumber' = "2026000196"
[2026-01-22 00:21:15] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-22 00:21:15] [INFO]   -> Found value: UNCONSCIOUS
[2026-01-22 00:21:15] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-01-22 00:21:15] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-22 00:21:15] [INFO]   -> Found value: 7233
[2026-01-22 00:21:15] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7233
[2026-01-22 00:21:15] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-22 00:21:15] [INFO]   -> Found value: TN
[2026-01-22 00:21:15] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-22 00:21:15] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-22 00:21:15] [INFO]   -> Found value: 38582
[2026-01-22 00:21:15] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38582
[2026-01-22 00:21:15] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-22 00:21:15] [INFO]   -> No value found (null or empty)
[2026-01-22 00:21:15] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-22 00:21:15] [INFO]   -> No value found (null or empty)
[2026-01-22 00:21:15] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-22 00:21:15] [INFO]   -> Found value: 36.08482
[2026-01-22 00:21:15] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.08482000000000056161297834478318691253662109375
[2026-01-22 00:21:15] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-22 00:21:15] [INFO]   -> Found value: -85.69831
[2026-01-22 00:21:15] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6983100000000064255800680257380008697509765625
[2026-01-22 00:21:15] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-22 00:21:15] [INFO]   -> Found value: 2026-01-21 18:20:33
[2026-01-22 00:21:15] [INFO]   -> Set field 'alarm' = "2026-01-21 18:20:33"
[2026-01-22 00:21:15] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-22 00:21:15] [INFO]   -> Found value: 2026-01-21 18:21:07
[2026-01-22 00:21:15] [INFO]   -> Set field 'dispatched' = "2026-01-21 18:21:07"
[2026-01-22 00:21:15] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-22 00:21:15] [INFO]   -> No value found (null or empty)
[2026-01-22 00:21:15] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-22 00:21:15] [INFO]   -> No value found (null or empty)
[2026-01-22 00:21:15] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-22 00:21:15] [INFO]   -> No value found (null or empty)
[2026-01-22 00:21:15] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-22 00:21:15] [INFO]   -> Found value: CARRS CHAPEL RD
[2026-01-22 00:21:15] [INFO]   -> Set field 'incidentLocationCross' = "CARRS CHAPEL RD"
[2026-01-22 00:21:15] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-22 00:21:15] [INFO]   -> Found value: PCFR
[2026-01-22 00:21:15] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-01-22 00:21:15] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-22 00:21:15] [INFO]   -> Found value: 2026-01-21 18:21:07
[2026-01-22 00:21:15] [INFO]   -> Set field 'timedispatch' = "2026-01-21 18:21:07"
[2026-01-22 00:21:15] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-22 00:21:15] [INFO]   -> No value found (null or empty)
[2026-01-22 00:21:15] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-22 00:21:15] [INFO]   -> No value found (null or empty)
[2026-01-22 00:21:15] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-22 00:21:15] [INFO]   -> No value found (null or empty)
[2026-01-22 00:21:15] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-22 00:21:15] [INFO]   -> No value found (null or empty)
[2026-01-22 00:21:15] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-22 00:21:15] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-01-22 00:21:15] [INFO]   -> Found value: 20260007890
[2026-01-22 00:21:15] [INFO]   -> Set field 'policeReportNumber' = "20260007890"
[2026-01-22 00:21:15] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-22 00:21:15] [INFO]   -> Found value: [LAW] PCSO ENRT  [01/21/26 18:21:01 ECLEMENS] [EMS] PHIL LOFTIS  [01/21/26 18:20:56 EALMENDAREZ] [LA...
[2026-01-22 00:21:15] [INFO]   -> Set field 'dispatchNotes' = "[LAW] PCSO ENRT  [01\/21\/26 18:21:01 ECLEMENS] [EMS] PHIL LOFTIS  [01\/21\/26 18:20:56 EALMENDAREZ] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/21\/26 18:20:44 ECLEMENS] [EMS] BREATHING UNKN DOWN TIME  [01\/21\/26 18:20:43 EALMENDAREZ] Event spawned from UNCONSCIOUS.  [01\/21\/2026 18:20:33 EALMENDAREZ]"
[2026-01-22 00:21:15] [INFO]   -> Set field 'cADLog' = "[LAW] PCSO ENRT  [01\/21\/26 18:21:01 ECLEMENS] [EMS] PHIL LOFTIS  [01\/21\/26 18:20:56 EALMENDAREZ] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/21\/26 18:20:44 ECLEMENS] [EMS] BREATHING UNKN DOWN TIME  [01\/21\/26 18:20:43 EALMENDAREZ] Event spawned from UNCONSCIOUS.  [01\/21\/2026 18:20:33 EALMENDAREZ]"
[2026-01-22 00:21:15] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-22 00:21:15] [INFO]   -> Found value: SILVER POINT
[2026-01-22 00:21:15] [INFO]   -> Set field 'incidentLocationCity' = "SILVER POINT"
[2026-01-22 00:21:15] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-22 00:21:15] [INFO]   -> Found value: HICKEY
[2026-01-22 00:21:15] [INFO]   -> Set field 'streetName' = "HICKEY"
[2026-01-22 00:21:15] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-22 00:21:15] [INFO]   -> Found value: RD
[2026-01-22 00:21:15] [INFO]   -> Set field 'streetType' = "RD"
[2026-01-22 00:21:15] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-22 00:21:15] [INFO]   -> Found value: 7233 HICKEY RD
[2026-01-22 00:21:15] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7233 HICKEY RD"
[2026-01-22 00:21:15] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-01-22 00:21:15] [INFO] Concatenating street name and type
[2026-01-22 00:21:15] [INFO]   -> Combined street name: HICKEY RD
[2026-01-22 00:21:15] [INFO] Built locationCoordinates from lat/lng: 36.08482,-85.69831
[2026-01-22 00:21:15] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000196","dispatchRunNumber":"2026000196","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":7233,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38582,"nERISIncidentLatitude":36.08482000000000056161297834478318691253662109375,"nERISIncidentLongitude":-85.6983100000000064255800680257380008697509765625,"alarm":"2026-01-21 18:20:33","dispatched":"2026-01-21 18:21:07","incidentLocationCross":"CARRS CHAPEL RD","cADVehicleID":"PCFR","timedispatch":"2026-01-21 18:21:07","policeReportNumber":"20260007890","dispatchNotes":"[LAW] PCSO ENRT  [01\/21\/26 18:21:01 ECLEMENS] [EMS] PHIL LOFTIS  [01\/21\/26 18:20:56 EALMENDAREZ] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/21\/26 18:20:44 ECLEMENS] [EMS] BREATHING UNKN DOWN TIME  [01\/21\/26 18:20:43 EALMENDAREZ] Event spawned from UNCONSCIOUS.  [01\/21\/2026 18:20:33 EALMENDAREZ]","cADLog":"[LAW] PCSO ENRT  [01\/21\/26 18:21:01 ECLEMENS] [EMS] PHIL LOFTIS  [01\/21\/26 18:20:56 EALMENDAREZ] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/21\/26 18:20:44 ECLEMENS] [EMS] BREATHING UNKN DOWN TIME  [01\/21\/26 18:20:43 EALMENDAREZ] Event spawned from UNCONSCIOUS.  [01\/21\/2026 18:20:33 EALMENDAREZ]","incidentLocationCity":"SILVER POINT","streetName":"HICKEY RD","incidentAddressTextVersionStreet":"7233 HICKEY RD","locationCoordinates":"36.08482,-85.69831"}
[2026-01-22 00:21:15] [INFO] Number of extracted fields: 21
[2026-01-22 00:21:15] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-01-22 00:21:15] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-01-22 00:21:15] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-01-22 00:21:15] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-01-22 00:21:15] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-01-22 00:21:15] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-01-22 00:21:16] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-01-22 00:21:16] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-01-22 00:21:16] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-01-22 00:21:16] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-01-22 00:21:16] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-01-22 00:21:16] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-01-22 00:21:25] [INFO] Created new Dispatches record with ID: 69716d7c7c95ca64c
[2026-01-22 00:21:25] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-01-22 00:21:25] [INFO] Using FTPS (SSL/TLS) connection
[2026-01-22 00:21:28] [INFO] Successfully uploaded file to V2 FTP server: /PCFD_20260007890_20260122_002115.XML
[2026-01-22 00:21:28] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-22
[2026-01-22 00:21:28] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260007890_20260122_002115.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-22/PCFD_20260007890_20260122_002115.XML
[2026-01-22 00:21:28] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260007890_20260122_002115.XML
[2026-01-22 01:14:05] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260007907_20260122_011405.XML
[2026-01-22 01:14:05] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260007907_20260122_011405.XML for user: 68f1466aed072ad4a
[2026-01-22 01:14:05] [INFO] File size: 5203 bytes
[2026-01-22 01:14:05] [INFO] Created FTPFiles record with ID: 697179dd5ede1f70f
[2026-01-22 01:14:05] [INFO] About to extract fields from XML. File size: 5203 bytes
[2026-01-22 01:14:05] [INFO] Number of mappings: 28
[2026-01-22 01:14:05] [INFO] Starting XML parsing. Content length: 5203
[2026-01-22 01:14:05] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-22 01:14:05] [INFO] Processing 28 field mappings
[2026-01-22 01:14:05] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-22 01:14:05] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-22 01:14:05] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-01-22 01:14:05] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-01-22 01:14:05] [INFO]   -> Found value: BFD
EMS
[2026-01-22 01:14:05] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nEMS"
[2026-01-22 01:14:05] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-22 01:14:05] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-01-22 01:14:05] [INFO]   -> Found value: 2026000024
[2026-01-22 01:14:05] [INFO]   -> Set field 'incidentInternalId' = "2026000024"
[2026-01-22 01:14:05] [INFO]   -> Set field 'dispatchRunNumber' = "2026000024"
[2026-01-22 01:14:05] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-22 01:14:05] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-01-22 01:14:05] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-01-22 01:14:05] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-22 01:14:05] [INFO]   -> Found value: 415
[2026-01-22 01:14:05] [INFO]   -> Set field 'incidentLocationStreetNumber' = 415
[2026-01-22 01:14:05] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-22 01:14:05] [INFO]   -> Found value: TN
[2026-01-22 01:14:05] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-22 01:14:05] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-22 01:14:05] [INFO]   -> Found value: 38544
[2026-01-22 01:14:05] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-01-22 01:14:05] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-22 01:14:05] [INFO]   -> No value found (null or empty)
[2026-01-22 01:14:05] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-22 01:14:05] [INFO]   -> No value found (null or empty)
[2026-01-22 01:14:05] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-22 01:14:05] [INFO]   -> Found value: 36.15894
[2026-01-22 01:14:05] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.158940000000001191438059322535991668701171875
[2026-01-22 01:14:05] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-22 01:14:05] [INFO]   -> Found value: -85.64935
[2026-01-22 01:14:05] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.649349999999998317434801720082759857177734375
[2026-01-22 01:14:05] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-22 01:14:05] [INFO]   -> Found value: 2026-01-21 19:12:58
[2026-01-22 01:14:05] [INFO]   -> Set field 'alarm' = "2026-01-21 19:12:58"
[2026-01-22 01:14:05] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-22 01:14:05] [INFO]   -> Found value: 2026-01-21 19:13:51
[2026-01-22 01:14:05] [INFO]   -> Set field 'dispatched' = "2026-01-21 19:13:51"
[2026-01-22 01:14:05] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-22 01:14:05] [INFO]   -> No value found (null or empty)
[2026-01-22 01:14:05] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-22 01:14:05] [INFO]   -> No value found (null or empty)
[2026-01-22 01:14:05] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-22 01:14:05] [INFO]   -> No value found (null or empty)
[2026-01-22 01:14:05] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-22 01:14:05] [INFO]   -> Found value: CHESTNUT ST/CHESTNUT ST
[2026-01-22 01:14:05] [INFO]   -> Set field 'incidentLocationCross' = "CHESTNUT ST\/CHESTNUT ST"
[2026-01-22 01:14:05] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-22 01:14:05] [INFO]   -> Found value: BEN2
[2026-01-22 01:14:05] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-01-22 01:14:05] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-22 01:14:05] [INFO]   -> Found value: 2026-01-21 19:13:51
[2026-01-22 01:14:05] [INFO]   -> Set field 'timedispatch' = "2026-01-21 19:13:51"
[2026-01-22 01:14:05] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-22 01:14:05] [INFO]   -> No value found (null or empty)
[2026-01-22 01:14:05] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-22 01:14:05] [INFO]   -> No value found (null or empty)
[2026-01-22 01:14:05] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-22 01:14:05] [INFO]   -> No value found (null or empty)
[2026-01-22 01:14:05] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-22 01:14:05] [INFO]   -> No value found (null or empty)
[2026-01-22 01:14:05] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-22 01:14:05] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-01-22 01:14:05] [INFO]   -> Found value: 20260007907
[2026-01-22 01:14:05] [INFO]   -> Set field 'policeReportNumber' = "20260007907"
[2026-01-22 01:14:05] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-22 01:14:05] [INFO]   -> Found value: [EMS] CARPORT DOOR  [01/21/26 19:13:41 DSWINK] [EMS] NO BOWEL MOVEMENT IN 2 WEEKS 76 YOF HAVING TROU...
[2026-01-22 01:14:05] [INFO]   -> Set field 'dispatchNotes' = "[EMS] CARPORT DOOR  [01\/21\/26 19:13:41 DSWINK] [EMS] NO BOWEL MOVEMENT IN 2 WEEKS 76 YOF HAVING TROUBLE BREATHING HEART ATTACK LAST WEEK  [01\/21\/26 19:13:25 DSWINK] Event spawned from BREATHING PROBLEMS.  [01\/21\/2026 19:12:58 DSWINK]"
[2026-01-22 01:14:05] [INFO]   -> Set field 'cADLog' = "[EMS] CARPORT DOOR  [01\/21\/26 19:13:41 DSWINK] [EMS] NO BOWEL MOVEMENT IN 2 WEEKS 76 YOF HAVING TROUBLE BREATHING HEART ATTACK LAST WEEK  [01\/21\/26 19:13:25 DSWINK] Event spawned from BREATHING PROBLEMS.  [01\/21\/2026 19:12:58 DSWINK]"
[2026-01-22 01:14:05] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-22 01:14:05] [INFO]   -> Found value: BAXTER
[2026-01-22 01:14:05] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-01-22 01:14:05] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-22 01:14:05] [INFO]   -> Found value: FIRST
[2026-01-22 01:14:05] [INFO]   -> Set field 'streetName' = "FIRST"
[2026-01-22 01:14:05] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-22 01:14:05] [INFO]   -> Found value: AVE
[2026-01-22 01:14:05] [INFO]   -> Set field 'streetType' = "AVE"
[2026-01-22 01:14:05] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-22 01:14:05] [INFO]   -> Found value: 415 FIRST AVE N
[2026-01-22 01:14:05] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "415 FIRST AVE N"
[2026-01-22 01:14:05] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-01-22 01:14:05] [INFO] Concatenating street name and type
[2026-01-22 01:14:05] [INFO]   -> Combined street name: FIRST AVE
[2026-01-22 01:14:05] [INFO] Built locationCoordinates from lat/lng: 36.15894,-85.64935
[2026-01-22 01:14:05] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nEMS","incidentInternalId":"2026000024","dispatchRunNumber":"2026000024","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":415,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.158940000000001191438059322535991668701171875,"nERISIncidentLongitude":-85.649349999999998317434801720082759857177734375,"alarm":"2026-01-21 19:12:58","dispatched":"2026-01-21 19:13:51","incidentLocationCross":"CHESTNUT ST\/CHESTNUT ST","cADVehicleID":"BEN2","timedispatch":"2026-01-21 19:13:51","policeReportNumber":"20260007907","dispatchNotes":"[EMS] CARPORT DOOR  [01\/21\/26 19:13:41 DSWINK] [EMS] NO BOWEL MOVEMENT IN 2 WEEKS 76 YOF HAVING TROUBLE BREATHING HEART ATTACK LAST WEEK  [01\/21\/26 19:13:25 DSWINK] Event spawned from BREATHING PROBLEMS.  [01\/21\/2026 19:12:58 DSWINK]","cADLog":"[EMS] CARPORT DOOR  [01\/21\/26 19:13:41 DSWINK] [EMS] NO BOWEL MOVEMENT IN 2 WEEKS 76 YOF HAVING TROUBLE BREATHING HEART ATTACK LAST WEEK  [01\/21\/26 19:13:25 DSWINK] Event spawned from BREATHING PROBLEMS.  [01\/21\/2026 19:12:58 DSWINK]","incidentLocationCity":"BAXTER","streetName":"FIRST AVE","incidentAddressTextVersionStreet":"415 FIRST AVE N","locationCoordinates":"36.15894,-85.64935"}
[2026-01-22 01:14:05] [INFO] Number of extracted fields: 21
[2026-01-22 01:14:05] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
EMS'
[2026-01-22 01:14:05] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
EMS', Parsed IDs = ["BFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-01-22 01:14:05] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","EMS"]
[2026-01-22 01:14:05] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-01-22 01:14:05] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-01-22 01:14:05] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-01-22 01:14:05] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-01-22 01:14:05] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-01-22 01:14:05] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-01-22 01:14:05] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-01-22 01:14:05] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-01-22 01:14:05] [INFO] Found existing IncidentTypeMapping with ID: 6945b068937da743b
[2026-01-22 01:14:09] [INFO] Created new Dispatches record with ID: 697179de4ec83de9e
[2026-01-22 01:14:09] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-01-22 01:14:09] [INFO] Using FTPS (SSL/TLS) connection
[2026-01-22 01:14:12] [INFO] Successfully uploaded file to V2 FTP server: /BFD_20260007907_20260122_011405.XML
[2026-01-22 01:14:12] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260007907_20260122_011405.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-22/BFD_20260007907_20260122_011405.XML
[2026-01-22 01:14:12] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260007907_20260122_011405.XML
[2026-01-22 01:20:15] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260007911_20260122_012015.XML
[2026-01-22 01:20:15] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260007911_20260122_012015.XML for user: 68f1466aed072ad4a
[2026-01-22 01:20:15] [INFO] File size: 4631 bytes
[2026-01-22 01:20:15] [INFO] Created FTPFiles record with ID: 69717b4fb45c9d2f5
[2026-01-22 01:20:15] [INFO] About to extract fields from XML. File size: 4631 bytes
[2026-01-22 01:20:15] [INFO] Number of mappings: 28
[2026-01-22 01:20:15] [INFO] Starting XML parsing. Content length: 4631
[2026-01-22 01:20:15] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-22 01:20:15] [INFO] Processing 28 field mappings
[2026-01-22 01:20:15] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-22 01:20:15] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-22 01:20:15] [INFO]   -> Found value: PCFD
[2026-01-22 01:20:15] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-01-22 01:20:15] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-22 01:20:15] [INFO]   -> Found value: 2026000197
[2026-01-22 01:20:15] [INFO]   -> Set field 'incidentInternalId' = "2026000197"
[2026-01-22 01:20:15] [INFO]   -> Set field 'dispatchRunNumber' = "2026000197"
[2026-01-22 01:20:15] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-22 01:20:15] [INFO]   -> Found value: NATURAL GAS LEAK
[2026-01-22 01:20:15] [INFO]   -> Set field 'incidentTypeValue1' = "NATURAL GAS LEAK"
[2026-01-22 01:20:15] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-22 01:20:15] [INFO]   -> Found value: 7963
[2026-01-22 01:20:15] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7963
[2026-01-22 01:20:15] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-22 01:20:15] [INFO]   -> Found value: TN
[2026-01-22 01:20:15] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-22 01:20:15] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-22 01:20:15] [INFO]   -> Found value: 38544
[2026-01-22 01:20:15] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-01-22 01:20:15] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-22 01:20:15] [INFO]   -> No value found (null or empty)
[2026-01-22 01:20:15] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-22 01:20:15] [INFO]   -> No value found (null or empty)
[2026-01-22 01:20:15] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-22 01:20:15] [INFO]   -> Found value: 36.13334
[2026-01-22 01:20:15] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.13333999999999690544427721761167049407958984375
[2026-01-22 01:20:15] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-22 01:20:15] [INFO]   -> Found value: -85.66121
[2026-01-22 01:20:15] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6612099999999969668351695872843265533447265625
[2026-01-22 01:20:15] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-22 01:20:15] [INFO]   -> Found value: 2026-01-21 19:18:27
[2026-01-22 01:20:15] [INFO]   -> Set field 'alarm' = "2026-01-21 19:18:27"
[2026-01-22 01:20:15] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-22 01:20:15] [INFO]   -> Found value: 2026-01-21 19:20:07
[2026-01-22 01:20:15] [INFO]   -> Set field 'dispatched' = "2026-01-21 19:20:07"
[2026-01-22 01:20:15] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-22 01:20:15] [INFO]   -> No value found (null or empty)
[2026-01-22 01:20:15] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-22 01:20:15] [INFO]   -> No value found (null or empty)
[2026-01-22 01:20:15] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-22 01:20:15] [INFO]   -> No value found (null or empty)
[2026-01-22 01:20:15] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-22 01:20:15] [INFO]   -> Found value: /OLD BAXTER RD
[2026-01-22 01:20:15] [INFO]   -> Set field 'incidentLocationCross' = "\/OLD BAXTER RD"
[2026-01-22 01:20:15] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-22 01:20:15] [INFO]   -> Found value: EN32
[2026-01-22 01:20:15] [INFO]   -> Set field 'cADVehicleID' = "EN32"
[2026-01-22 01:20:15] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-22 01:20:15] [INFO]   -> Found value: 2026-01-21 19:20:07
[2026-01-22 01:20:15] [INFO]   -> Set field 'timedispatch' = "2026-01-21 19:20:07"
[2026-01-22 01:20:15] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-22 01:20:15] [INFO]   -> No value found (null or empty)
[2026-01-22 01:20:15] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-22 01:20:15] [INFO]   -> No value found (null or empty)
[2026-01-22 01:20:15] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-22 01:20:15] [INFO]   -> No value found (null or empty)
[2026-01-22 01:20:15] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-22 01:20:15] [INFO]   -> No value found (null or empty)
[2026-01-22 01:20:15] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-22 01:20:15] [INFO]   -> Found value: 20260007911
[2026-01-22 01:20:15] [INFO]   -> Set field 'policeReportNumber' = "20260007911"
[2026-01-22 01:20:15] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-22 01:20:15] [INFO]   -> Found value: STRONG SMELL OF GAS IN THE HOME  [01/21/26 19:18:44 DSWINK]]
[2026-01-22 01:20:15] [INFO]   -> Set field 'dispatchNotes' = "STRONG SMELL OF GAS IN THE HOME  [01\/21\/26 19:18:44 DSWINK]]"
[2026-01-22 01:20:15] [INFO]   -> Set field 'cADLog' = "STRONG SMELL OF GAS IN THE HOME  [01\/21\/26 19:18:44 DSWINK]]"
[2026-01-22 01:20:15] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-22 01:20:15] [INFO]   -> Found value: BAXTER
[2026-01-22 01:20:15] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-01-22 01:20:15] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-22 01:20:15] [INFO]   -> Found value: VERGIE HARRIS
[2026-01-22 01:20:15] [INFO]   -> Set field 'streetName' = "VERGIE HARRIS"
[2026-01-22 01:20:15] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-22 01:20:15] [INFO]   -> Found value: RD
[2026-01-22 01:20:15] [INFO]   -> Set field 'streetType' = "RD"
[2026-01-22 01:20:15] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-22 01:20:15] [INFO]   -> Found value: 7963 VERGIE HARRIS RD
[2026-01-22 01:20:15] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7963 VERGIE HARRIS RD"
[2026-01-22 01:20:15] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-01-22 01:20:15] [INFO] Concatenating street name and type
[2026-01-22 01:20:15] [INFO]   -> Combined street name: VERGIE HARRIS RD
[2026-01-22 01:20:15] [INFO] Built locationCoordinates from lat/lng: 36.13334,-85.66121
[2026-01-22 01:20:15] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000197","dispatchRunNumber":"2026000197","incidentTypeValue1":"NATURAL GAS LEAK","incidentLocationStreetNumber":7963,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.13333999999999690544427721761167049407958984375,"nERISIncidentLongitude":-85.6612099999999969668351695872843265533447265625,"alarm":"2026-01-21 19:18:27","dispatched":"2026-01-21 19:20:07","incidentLocationCross":"\/OLD BAXTER RD","cADVehicleID":"EN32","timedispatch":"2026-01-21 19:20:07","policeReportNumber":"20260007911","dispatchNotes":"STRONG SMELL OF GAS IN THE HOME  [01\/21\/26 19:18:44 DSWINK]]","cADLog":"STRONG SMELL OF GAS IN THE HOME  [01\/21\/26 19:18:44 DSWINK]]","incidentLocationCity":"BAXTER","streetName":"VERGIE HARRIS RD","incidentAddressTextVersionStreet":"7963 VERGIE HARRIS RD","locationCoordinates":"36.13334,-85.66121"}
[2026-01-22 01:20:15] [INFO] Number of extracted fields: 21
[2026-01-22 01:20:15] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-01-22 01:20:15] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-01-22 01:20:15] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-01-22 01:20:15] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-01-22 01:20:15] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-01-22 01:20:16] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-01-22 01:20:16] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-01-22 01:20:16] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-01-22 01:20:16] [INFO] Found existing IncidentTypeMapping with ID: 695276993a4d83287
[2026-01-22 01:20:24] [INFO] Created new Dispatches record with ID: 69717b5074ff2abaf
[2026-01-22 01:20:24] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-01-22 01:20:24] [INFO] Using FTPS (SSL/TLS) connection
[2026-01-22 01:20:28] [INFO] Successfully uploaded file to V2 FTP server: /PCFD_20260007911_20260122_012015.XML
[2026-01-22 01:20:28] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260007911_20260122_012015.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-22/PCFD_20260007911_20260122_012015.XML
[2026-01-22 01:20:28] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260007911_20260122_012015.XML
[2026-01-22 01:47:38] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 01:47:38] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml for user: 69320e6a9e3e5ef71
[2026-01-22 01:47:38] [INFO] File size: 10260 bytes
[2026-01-22 01:47:38] [INFO] Created FTPFiles record with ID: 697181ba8d87cb98b
[2026-01-22 01:47:38] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-22 01:47:38] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-22
[2026-01-22 01:47:38] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-22/cfs_2026-004568.xml
[2026-01-22 01:47:38] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 01:47:38] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 01:47:38] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml for user: 69320e6a9e3e5ef71
[2026-01-22 01:47:38] [INFO] File size: 12158 bytes
[2026-01-22 01:47:39] [INFO] Created FTPFiles record with ID: 697181bb03db1796d
[2026-01-22 01:47:39] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-22 01:47:39] [INFO] File already exists in archive, using unique name: cfs_2026-004568_1769046459.xml
[2026-01-22 01:47:39] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-22/cfs_2026-004568_1769046459.xml
[2026-01-22 01:47:39] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 01:47:39] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 01:47:39] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml for user: 69320e6a9e3e5ef71
[2026-01-22 01:47:39] [INFO] File size: 12158 bytes
[2026-01-22 01:47:40] [INFO] Created FTPFiles record with ID: 697181bc214843d51
[2026-01-22 01:47:40] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-22 01:47:40] [INFO] File already exists in archive, using unique name: cfs_2026-004568_1769046460.xml
[2026-01-22 01:47:40] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-22/cfs_2026-004568_1769046460.xml
[2026-01-22 01:47:40] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 01:47:40] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 01:47:40] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml for user: 69320e6a9e3e5ef71
[2026-01-22 01:47:40] [INFO] File size: 12158 bytes
[2026-01-22 01:47:41] [INFO] Created FTPFiles record with ID: 697181bd201b9ae74
[2026-01-22 01:47:41] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-22 01:47:41] [INFO] File already exists in archive, using unique name: cfs_2026-004568_1769046461.xml
[2026-01-22 01:47:41] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-22/cfs_2026-004568_1769046461.xml
[2026-01-22 01:47:41] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 01:49:38] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 01:49:38] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml for user: 69320e6a9e3e5ef71
[2026-01-22 01:49:38] [INFO] File size: 14390 bytes
[2026-01-22 01:49:38] [INFO] Created FTPFiles record with ID: 69718232a66640f60
[2026-01-22 01:49:38] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-22 01:49:38] [INFO] File already exists in archive, using unique name: cfs_2026-004568_1769046578.xml
[2026-01-22 01:49:38] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-22/cfs_2026-004568_1769046578.xml
[2026-01-22 01:49:38] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 01:49:43] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 01:49:43] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml for user: 69320e6a9e3e5ef71
[2026-01-22 01:49:43] [INFO] File size: 15973 bytes
[2026-01-22 01:49:43] [INFO] Created FTPFiles record with ID: 69718237be2fbd23c
[2026-01-22 01:49:43] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-22 01:49:43] [INFO] File already exists in archive, using unique name: cfs_2026-004568_1769046583.xml
[2026-01-22 01:49:43] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-22/cfs_2026-004568_1769046583.xml
[2026-01-22 01:49:43] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 01:50:53] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 01:50:53] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml for user: 69320e6a9e3e5ef71
[2026-01-22 01:50:53] [INFO] File size: 18216 bytes
[2026-01-22 01:50:53] [INFO] Created FTPFiles record with ID: 6971827d77376d7d2
[2026-01-22 01:50:53] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-22 01:50:53] [INFO] File already exists in archive, using unique name: cfs_2026-004568_1769046653.xml
[2026-01-22 01:50:53] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-22/cfs_2026-004568_1769046653.xml
[2026-01-22 01:50:53] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 01:54:10] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 01:54:10] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml for user: 69320e6a9e3e5ef71
[2026-01-22 01:54:10] [INFO] File size: 19827 bytes
[2026-01-22 01:54:11] [INFO] Created FTPFiles record with ID: 697183434305e764c
[2026-01-22 01:54:11] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-22 01:54:11] [INFO] File already exists in archive, using unique name: cfs_2026-004568_1769046851.xml
[2026-01-22 01:54:11] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-22/cfs_2026-004568_1769046851.xml
[2026-01-22 01:54:11] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 01:57:10] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 01:57:10] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml for user: 69320e6a9e3e5ef71
[2026-01-22 01:57:10] [INFO] File size: 21437 bytes
[2026-01-22 01:57:10] [INFO] Created FTPFiles record with ID: 697183f6ea7ca7206
[2026-01-22 01:57:10] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-22 01:57:10] [INFO] File already exists in archive, using unique name: cfs_2026-004568_1769047030.xml
[2026-01-22 01:57:10] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-22/cfs_2026-004568_1769047030.xml
[2026-01-22 01:57:10] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 02:00:02] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 02:00:02] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml for user: 69320e6a9e3e5ef71
[2026-01-22 02:00:02] [INFO] File size: 23024 bytes
[2026-01-22 02:00:02] [INFO] Created FTPFiles record with ID: 697184a277f663bee
[2026-01-22 02:00:02] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-22 02:00:02] [INFO] File already exists in archive, using unique name: cfs_2026-004568_1769047202.xml
[2026-01-22 02:00:02] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-22/cfs_2026-004568_1769047202.xml
[2026-01-22 02:00:02] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 02:09:40] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 02:09:40] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml for user: 69320e6a9e3e5ef71
[2026-01-22 02:09:40] [INFO] File size: 24612 bytes
[2026-01-22 02:09:40] [INFO] Created FTPFiles record with ID: 697186e4af3a23170
[2026-01-22 02:09:40] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-22 02:09:40] [INFO] File already exists in archive, using unique name: cfs_2026-004568_1769047780.xml
[2026-01-22 02:09:40] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-22/cfs_2026-004568_1769047780.xml
[2026-01-22 02:09:40] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 02:09:44] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 02:09:44] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml for user: 69320e6a9e3e5ef71
[2026-01-22 02:09:44] [INFO] File size: 26195 bytes
[2026-01-22 02:09:44] [INFO] Created FTPFiles record with ID: 697186e8e52a08666
[2026-01-22 02:09:44] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-22 02:09:44] [INFO] File already exists in archive, using unique name: cfs_2026-004568_1769047784.xml
[2026-01-22 02:09:44] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-22/cfs_2026-004568_1769047784.xml
[2026-01-22 02:09:44] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-004568.xml
[2026-01-22 04:39:50] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-02166.xml
[2026-01-22 04:39:50] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-02166.xml for user: 68d56363ec1209189
[2026-01-22 04:39:50] [INFO] File size: 2624 bytes
[2026-01-22 04:39:50] [INFO] Created FTPFiles record with ID: 6971aa16e59da757a
[2026-01-22 04:39:50] [INFO] About to extract fields from XML. File size: 2624 bytes
[2026-01-22 04:39:50] [INFO] Number of mappings: 21
[2026-01-22 04:39:50] [INFO] Starting XML parsing. Content length: 2624
[2026-01-22 04:39:50] [INFO] XML parsed successfully. Root element: Incident
[2026-01-22 04:39:50] [INFO] Processing 21 field mappings
[2026-01-22 04:39:50] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-01-22 04:39:50] [INFO]   -> Found value: 26-02166
[2026-01-22 04:39:50] [INFO]   -> Set field 'dispatchRunNumber' = "26-02166"
[2026-01-22 04:39:50] [INFO]   -> Set field 'cADNumber' = "26-02166"
[2026-01-22 04:39:50] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-01-22 04:39:50] [INFO]   -> Found value: 430
[2026-01-22 04:39:50] [INFO]   -> Set field 'incidentLocationStreetNumber' = 430
[2026-01-22 04:39:50] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-01-22 04:39:50] [INFO]   -> Found value: W SALCEDO RD
[2026-01-22 04:39:50] [INFO]   -> Set field 'streetName' = "W SALCEDO RD"
[2026-01-22 04:39:50] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-01-22 04:39:50] [INFO]   -> No value found (null or empty)
[2026-01-22 04:39:50] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-01-22 04:39:50] [INFO]   -> Found value: SIKESTON
[2026-01-22 04:39:50] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-01-22 04:39:50] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-01-22 04:39:50] [INFO]   -> Found value: CLEARVIEW NURSING HOME
[2026-01-22 04:39:50] [INFO]   -> Set field 'businessName' = "CLEARVIEW NURSING HOME"
[2026-01-22 04:39:50] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-01-22 04:39:50] [INFO]   -> No value found (null or empty)
[2026-01-22 04:39:50] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-01-22 04:39:50] [INFO]   -> No value found (null or empty)
[2026-01-22 04:39:50] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-01-22 04:39:50] [INFO]   -> Found value: 0
[2026-01-22 04:39:50] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-01-22 04:39:50] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-01-22 04:39:50] [INFO]   -> Found value: 0
[2026-01-22 04:39:50] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-01-22 04:39:50] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-01-22 04:39:50] [INFO]   -> Found value: FIRE-ALARM MECH
[2026-01-22 04:39:50] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-ALARM MECH"
[2026-01-22 04:39:50] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-01-22 04:39:50] [INFO]   -> Found value: 01-21-2026 21:27:00|ROOM 107 SMOKE DETECTOR
BY ROOM 105 SMOKE DETECTOR ZONE 11 
ATTEMPING KEYHOLDER ...
[2026-01-22 04:39:50] [INFO]   -> Set field 'dispatchNotes' = "01-21-2026 21:27:00|ROOM 107 SMOKE DETECTOR\nBY ROOM 105 SMOKE DETECTOR ZONE 11 \nATTEMPING KEYHOLDER CONTACT AFTER THIS CALL 01-21-2026 21:31:17|SMOKE IN THE HALLWAY PER JESSICA MINEHART 01-21-2026 21:33:00|566 ON SCENE SINGLE STORY NOTHING SHOWING 01-21-2026 21:33:27|C89 HAS COMMAND 01-21-2026 21:51:54|L3, IN SRVC 01-21-2026 21:56:52|ISSUE WITH HVAC 01-21-2026 21:57:07|ALL UNITS IN SERVICE COMMAND TERMINATED 01-21-2026 21:57:32|Disposition - SDPS PD:  NRN 01-21-2026 22:12:50|NURSING HOME TURNED BACK OVER TO ADMINISTRATOR"
[2026-01-22 04:39:50] [INFO]   -> Set field 'cADLog' = "01-21-2026 21:27:00|ROOM 107 SMOKE DETECTOR\nBY ROOM 105 SMOKE DETECTOR ZONE 11 \nATTEMPING KEYHOLDER CONTACT AFTER THIS CALL 01-21-2026 21:31:17|SMOKE IN THE HALLWAY PER JESSICA MINEHART 01-21-2026 21:33:00|566 ON SCENE SINGLE STORY NOTHING SHOWING 01-21-2026 21:33:27|C89 HAS COMMAND 01-21-2026 21:51:54|L3, IN SRVC 01-21-2026 21:56:52|ISSUE WITH HVAC 01-21-2026 21:57:07|ALL UNITS IN SERVICE COMMAND TERMINATED 01-21-2026 21:57:32|Disposition - SDPS PD:  NRN 01-21-2026 22:12:50|NURSING HOME TURNED BACK OVER TO ADMINISTRATOR"
[2026-01-22 04:39:50] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-01-22 04:39:50] [INFO]   -> Found value: 01-21-2026T21:30:44
[2026-01-22 04:39:50] [INFO] Reformatted DD-MM-YYYY date '01-21-2026' (day=01, month=21) to ISO: 2026-21-01T21:30:44
[2026-01-22 04:39:50] [ERROR] Error formatting datetime '2026-21-01T21:30:44': Failed to parse time string (2026-21-01T21:30:44) at position 6 (1): Unexpected character
[2026-01-22 04:39:50] [INFO]   -> Set field 'alarm' = null
[2026-01-22 04:39:50] [INFO] Reformatted DD-MM-YYYY date '01-21-2026' (day=01, month=21) to ISO: 2026-21-01T21:30:44
[2026-01-22 04:39:50] [ERROR] Error formatting datetime '2026-21-01T21:30:44': Failed to parse time string (2026-21-01T21:30:44) at position 6 (1): Unexpected character
[2026-01-22 04:39:50] [INFO]   -> Set field 'dispatched' = null
[2026-01-22 04:39:50] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-01-22 04:39:50] [INFO]   -> Found value: 01-21-2026T21:32:27
[2026-01-22 04:39:50] [INFO] Reformatted DD-MM-YYYY date '01-21-2026' (day=01, month=21) to ISO: 2026-21-01T21:32:27
[2026-01-22 04:39:50] [ERROR] Error formatting datetime '2026-21-01T21:32:27': Failed to parse time string (2026-21-01T21:32:27) at position 6 (1): Unexpected character
[2026-01-22 04:39:50] [INFO]   -> Set field 'onScene' = null
[2026-01-22 04:39:50] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-01-22 04:39:50] [INFO]   -> Found value: 01-21-2026T22:39:00
[2026-01-22 04:39:50] [INFO] Reformatted DD-MM-YYYY date '01-21-2026' (day=01, month=21) to ISO: 2026-21-01T22:39:00
[2026-01-22 04:39:50] [ERROR] Error formatting datetime '2026-21-01T22:39:00': Failed to parse time string (2026-21-01T22:39:00) at position 6 (1): Unexpected character
[2026-01-22 04:39:50] [INFO]   -> Set field 'cleared' = null
[2026-01-22 04:39:50] [INFO] Reformatted DD-MM-YYYY date '01-21-2026' (day=01, month=21) to ISO: 2026-21-01T22:39:00
[2026-01-22 04:39:50] [ERROR] Error formatting datetime '2026-21-01T22:39:00': Failed to parse time string (2026-21-01T22:39:00) at position 6 (1): Unexpected character
[2026-01-22 04:39:50] [INFO]   -> Set field 'inService' = null
[2026-01-22 04:39:50] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-01-22 04:39:50] [INFO]   -> Found value: ENG2
[2026-01-22 04:39:50] [INFO]   -> Set field 'cADVehicleID' = "ENG2"
[2026-01-22 04:39:50] [INFO]   -> Set field 'name' = "ENG2"
[2026-01-22 04:39:50] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-01-22 04:39:50] [INFO]   -> No value found (null or empty)
[2026-01-22 04:39:50] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-01-22 04:39:50] [INFO]   -> No value found (null or empty)
[2026-01-22 04:39:50] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-01-22 04:39:50] [INFO]   -> Found value: 01-21-2026T22:39:00
[2026-01-22 04:39:50] [INFO] Reformatted DD-MM-YYYY date '01-21-2026' (day=01, month=21) to ISO: 2026-21-01T22:39:00
[2026-01-22 04:39:50] [ERROR] Error formatting datetime '2026-21-01T22:39:00': Failed to parse time string (2026-21-01T22:39:00) at position 6 (1): Unexpected character
[2026-01-22 04:39:50] [INFO]   -> Set field 'timeunitclear' = null
[2026-01-22 04:39:50] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-01-22 04:39:50] [INFO]   -> No value found (null or empty)
[2026-01-22 04:39:50] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-01-22 04:39:50] [INFO]   -> Found value: SDPSFD
[2026-01-22 04:39:50] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-01-22 04:39:50] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-01-22 04:39:50] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-01-22 04:39:50] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-02166","cADNumber":"26-02166","incidentLocationStreetNumber":430,"streetName":"W SALCEDO RD","incidentLocationCity":"SIKESTON","businessName":"CLEARVIEW NURSING HOME","nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-ALARM MECH","dispatchNotes":"01-21-2026 21:27:00|ROOM 107 SMOKE DETECTOR\nBY ROOM 105 SMOKE DETECTOR ZONE 11 \nATTEMPING KEYHOLDER CONTACT AFTER THIS CALL 01-21-2026 21:31:17|SMOKE IN THE HALLWAY PER JESSICA MINEHART 01-21-2026 21:33:00|566 ON SCENE SINGLE STORY NOTHING SHOWING 01-21-2026 21:33:27|C89 HAS COMMAND 01-21-2026 21:51:54|L3, IN SRVC 01-21-2026 21:56:52|ISSUE WITH HVAC 01-21-2026 21:57:07|ALL UNITS IN SERVICE COMMAND TERMINATED 01-21-2026 21:57:32|Disposition - SDPS PD:  NRN 01-21-2026 22:12:50|NURSING HOME TURNED BACK OVER TO ADMINISTRATOR","cADLog":"01-21-2026 21:27:00|ROOM 107 SMOKE DETECTOR\nBY ROOM 105 SMOKE DETECTOR ZONE 11 \nATTEMPING KEYHOLDER CONTACT AFTER THIS CALL 01-21-2026 21:31:17|SMOKE IN THE HALLWAY PER JESSICA MINEHART 01-21-2026 21:33:00|566 ON SCENE SINGLE STORY NOTHING SHOWING 01-21-2026 21:33:27|C89 HAS COMMAND 01-21-2026 21:51:54|L3, IN SRVC 01-21-2026 21:56:52|ISSUE WITH HVAC 01-21-2026 21:57:07|ALL UNITS IN SERVICE COMMAND TERMINATED 01-21-2026 21:57:32|Disposition - SDPS PD:  NRN 01-21-2026 22:12:50|NURSING HOME TURNED BACK OVER TO ADMINISTRATOR","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"ENG2","name":"ENG2","timeunitclear":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-01-22 04:39:50] [INFO] Number of extracted fields: 21
[2026-01-22 04:39:50] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-01-22 04:39:50] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-01-22 04:39:50] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-01-22 04:39:50] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-01-22 04:39:51] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-01-22 04:39:51] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-01-22 04:39:51] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-01-22 04:39:51] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-01-22 04:39:51] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e872e5ae13
[2026-01-22 04:39:53] [INFO] Created new Dispatches record with ID: 6971aa17a6da588d2
[2026-01-22 04:39:53] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-02166.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-01-22/SDPSFD_26-02166.xml
[2026-01-22 04:39:53] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-02166.xml
[2026-01-22 10:58:59] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-02189.xml
[2026-01-22 10:58:59] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-02189.xml for user: 68d56363ec1209189
[2026-01-22 10:58:59] [INFO] File size: 2156 bytes
[2026-01-22 10:59:00] [INFO] Created FTPFiles record with ID: 697202f4418b8365d
[2026-01-22 10:59:00] [INFO] About to extract fields from XML. File size: 2156 bytes
[2026-01-22 10:59:00] [INFO] Number of mappings: 21
[2026-01-22 10:59:00] [INFO] Starting XML parsing. Content length: 2156
[2026-01-22 10:59:00] [INFO] XML parsed successfully. Root element: Incident
[2026-01-22 10:59:00] [INFO] Processing 21 field mappings
[2026-01-22 10:59:00] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-01-22 10:59:00] [INFO]   -> Found value: 26-02189
[2026-01-22 10:59:00] [INFO]   -> Set field 'dispatchRunNumber' = "26-02189"
[2026-01-22 10:59:00] [INFO]   -> Set field 'cADNumber' = "26-02189"
[2026-01-22 10:59:00] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-01-22 10:59:00] [INFO]   -> Found value: 378
[2026-01-22 10:59:00] [INFO]   -> Set field 'incidentLocationStreetNumber' = 378
[2026-01-22 10:59:00] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-01-22 10:59:00] [INFO]   -> Found value: S MT AUBURN
[2026-01-22 10:59:00] [INFO]   -> Set field 'streetName' = "S MT AUBURN"
[2026-01-22 10:59:00] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-01-22 10:59:00] [INFO]   -> No value found (null or empty)
[2026-01-22 10:59:00] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-01-22 10:59:00] [INFO]   -> Found value: CAPE GIRARDEAU
[2026-01-22 10:59:00] [INFO]   -> Set field 'incidentLocationCity' = "CAPE GIRARDEAU"
[2026-01-22 10:59:00] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-01-22 10:59:00] [INFO]   -> No value found (null or empty)
[2026-01-22 10:59:00] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-01-22 10:59:00] [INFO]   -> No value found (null or empty)
[2026-01-22 10:59:00] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-01-22 10:59:00] [INFO]   -> No value found (null or empty)
[2026-01-22 10:59:00] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-01-22 10:59:00] [INFO]   -> Found value: 0
[2026-01-22 10:59:00] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-01-22 10:59:00] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-01-22 10:59:00] [INFO]   -> Found value: 0
[2026-01-22 10:59:00] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-01-22 10:59:00] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-01-22 10:59:00] [INFO]   -> Found value: FIRE-MUTUAL AID
[2026-01-22 10:59:00] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-MUTUAL AID"
[2026-01-22 10:59:00] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-01-22 10:59:00] [INFO]   -> Found value: 01-22-2026 00:49:48|SCOTT CO RURAL TO CAPE STATION 2
MUTUAL AID BACKFILL 01-22-2026 00:55:05|SECOND ...
[2026-01-22 10:59:00] [INFO]   -> Set field 'dispatchNotes' = "01-22-2026 00:49:48|SCOTT CO RURAL TO CAPE STATION 2\nMUTUAL AID BACKFILL 01-22-2026 00:55:05|SECOND PAGE 01-22-2026 00:59:13|3RD PAGE 01-22-2026 00:59:59|EN ROUTE TO STATION 4 FOR TOWER 01-22-2026 01:11:07|1791 RESPONDING TO CAPE TEAM OF 4 01-22-2026 01:19:06|WORK ON CAPE GIRARDEAU FD MAIN CHANNEL PER KATE"
[2026-01-22 10:59:00] [INFO]   -> Set field 'cADLog' = "01-22-2026 00:49:48|SCOTT CO RURAL TO CAPE STATION 2\nMUTUAL AID BACKFILL 01-22-2026 00:55:05|SECOND PAGE 01-22-2026 00:59:13|3RD PAGE 01-22-2026 00:59:59|EN ROUTE TO STATION 4 FOR TOWER 01-22-2026 01:11:07|1791 RESPONDING TO CAPE TEAM OF 4 01-22-2026 01:19:06|WORK ON CAPE GIRARDEAU FD MAIN CHANNEL PER KATE"
[2026-01-22 10:59:00] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-01-22 10:59:00] [INFO]   -> Found value: 01-22-2026T00:50:56
[2026-01-22 10:59:00] [INFO] Reformatted DD-MM-YYYY date '01-22-2026' (day=01, month=22) to ISO: 2026-22-01T00:50:56
[2026-01-22 10:59:00] [ERROR] Error formatting datetime '2026-22-01T00:50:56': Failed to parse time string (2026-22-01T00:50:56) at position 6 (2): Unexpected character
[2026-01-22 10:59:00] [INFO]   -> Set field 'alarm' = null
[2026-01-22 10:59:00] [INFO] Reformatted DD-MM-YYYY date '01-22-2026' (day=01, month=22) to ISO: 2026-22-01T00:50:56
[2026-01-22 10:59:00] [ERROR] Error formatting datetime '2026-22-01T00:50:56': Failed to parse time string (2026-22-01T00:50:56) at position 6 (2): Unexpected character
[2026-01-22 10:59:00] [INFO]   -> Set field 'dispatched' = null
[2026-01-22 10:59:00] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-01-22 10:59:00] [INFO]   -> Found value: 01-22-2026T02:13:52
[2026-01-22 10:59:00] [INFO] Reformatted DD-MM-YYYY date '01-22-2026' (day=01, month=22) to ISO: 2026-22-01T02:13:52
[2026-01-22 10:59:00] [ERROR] Error formatting datetime '2026-22-01T02:13:52': Failed to parse time string (2026-22-01T02:13:52) at position 6 (2): Unexpected character
[2026-01-22 10:59:00] [INFO]   -> Set field 'onScene' = null
[2026-01-22 10:59:00] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-01-22 10:59:00] [INFO]   -> Found value: 01-22-2026T04:58:25
[2026-01-22 10:59:00] [INFO] Reformatted DD-MM-YYYY date '01-22-2026' (day=01, month=22) to ISO: 2026-22-01T04:58:25
[2026-01-22 10:59:00] [ERROR] Error formatting datetime '2026-22-01T04:58:25': Failed to parse time string (2026-22-01T04:58:25) at position 6 (2): Unexpected character
[2026-01-22 10:59:00] [INFO]   -> Set field 'cleared' = null
[2026-01-22 10:59:00] [INFO] Reformatted DD-MM-YYYY date '01-22-2026' (day=01, month=22) to ISO: 2026-22-01T04:58:25
[2026-01-22 10:59:00] [ERROR] Error formatting datetime '2026-22-01T04:58:25': Failed to parse time string (2026-22-01T04:58:25) at position 6 (2): Unexpected character
[2026-01-22 10:59:00] [INFO]   -> Set field 'inService' = null
[2026-01-22 10:59:00] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-01-22 10:59:00] [INFO]   -> Found value: 1701
[2026-01-22 10:59:00] [INFO]   -> Set field 'cADVehicleID' = 1701
[2026-01-22 10:59:00] [INFO]   -> Set field 'name' = "1701"
[2026-01-22 10:59:00] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-01-22 10:59:00] [INFO]   -> Found value: 01-22-2026T00:59:42
[2026-01-22 10:59:00] [INFO] Reformatted DD-MM-YYYY date '01-22-2026' (day=01, month=22) to ISO: 2026-22-01T00:59:42
[2026-01-22 10:59:00] [ERROR] Error formatting datetime '2026-22-01T00:59:42': Failed to parse time string (2026-22-01T00:59:42) at position 6 (2): Unexpected character
[2026-01-22 10:59:00] [INFO]   -> Set field 'timeenroutetoscene' = null
[2026-01-22 10:59:00] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-01-22 10:59:00] [INFO]   -> No value found (null or empty)
[2026-01-22 10:59:00] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-01-22 10:59:00] [INFO]   -> Found value: 01-22-2026T02:14:07
[2026-01-22 10:59:00] [INFO] Reformatted DD-MM-YYYY date '01-22-2026' (day=01, month=22) to ISO: 2026-22-01T02:14:07
[2026-01-22 10:59:00] [ERROR] Error formatting datetime '2026-22-01T02:14:07': Failed to parse time string (2026-22-01T02:14:07) at position 6 (2): Unexpected character
[2026-01-22 10:59:00] [INFO]   -> Set field 'timeunitclear' = null
[2026-01-22 10:59:00] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-01-22 10:59:00] [INFO]   -> No value found (null or empty)
[2026-01-22 10:59:00] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-01-22 10:59:00] [INFO]   -> Found value: SCRFD
[2026-01-22 10:59:00] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2026-01-22 10:59:00] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-01-22 10:59:00] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-01-22 10:59:00] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-02189","cADNumber":"26-02189","incidentLocationStreetNumber":378,"streetName":"S MT AUBURN","incidentLocationCity":"CAPE GIRARDEAU","nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-MUTUAL AID","dispatchNotes":"01-22-2026 00:49:48|SCOTT CO RURAL TO CAPE STATION 2\nMUTUAL AID BACKFILL 01-22-2026 00:55:05|SECOND PAGE 01-22-2026 00:59:13|3RD PAGE 01-22-2026 00:59:59|EN ROUTE TO STATION 4 FOR TOWER 01-22-2026 01:11:07|1791 RESPONDING TO CAPE TEAM OF 4 01-22-2026 01:19:06|WORK ON CAPE GIRARDEAU FD MAIN CHANNEL PER KATE","cADLog":"01-22-2026 00:49:48|SCOTT CO RURAL TO CAPE STATION 2\nMUTUAL AID BACKFILL 01-22-2026 00:55:05|SECOND PAGE 01-22-2026 00:59:13|3RD PAGE 01-22-2026 00:59:59|EN ROUTE TO STATION 4 FOR TOWER 01-22-2026 01:11:07|1791 RESPONDING TO CAPE TEAM OF 4 01-22-2026 01:19:06|WORK ON CAPE GIRARDEAU FD MAIN CHANNEL PER KATE","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":1701,"name":"1701","timeenroutetoscene":null,"timeunitclear":null,"cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2026-01-22 10:59:00] [INFO] Number of extracted fields: 21
[2026-01-22 10:59:00] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2026-01-22 10:59:00] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SCRFD', Parsed IDs = ["SCRFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-01-22 10:59:00] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2026-01-22 10:59:00] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (index 0) within mailbox's assigned agencies
[2026-01-22 10:59:00] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) at INDEX 0 based on AgencyCode 'SCRFD'
[2026-01-22 10:59:00] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2026-01-22 10:59:00] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"], matchedAgencyIndex = 0
[2026-01-22 10:59:00] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2026-01-22 10:59:00] [INFO] Created new IncidentTypeMapping Data: {"cADIncidentType":"FIRE-MUTUAL AID","saasclientId":"6643bdb30659f00d8","name":"FIRE-MUTUAL AID"}
[2026-01-22 10:59:00] [INFO] Created new IncidentTypeMapping with ID: 697202f4ed4b628a9
[2026-01-22 10:59:01] [INFO] Found existing Dispatch with cADNumber '26-02189', ID: 6971c8fc7197f0d44 - will update instead of create
[2026-01-22 10:59:01] [INFO] Updated existing Dispatches record with ID: 6971c8fc7197f0d44
[2026-01-22 10:59:01] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-02189.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-01-22/SCRFD_26-02189.xml
[2026-01-22 10:59:01] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-02189.xml
[2026-01-22 12:31:26] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260008007_20260122_123126.XML
[2026-01-22 12:31:26] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260008007_20260122_123126.XML for user: 68f1466aed072ad4a
[2026-01-22 12:31:26] [INFO] File size: 5117 bytes
[2026-01-22 12:31:26] [INFO] Created FTPFiles record with ID: 6972189e81bbdc4b9
[2026-01-22 12:31:26] [INFO] About to extract fields from XML. File size: 5117 bytes
[2026-01-22 12:31:26] [INFO] Number of mappings: 28
[2026-01-22 12:31:26] [INFO] Starting XML parsing. Content length: 5117
[2026-01-22 12:31:26] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-22 12:31:26] [INFO] Processing 28 field mappings
[2026-01-22 12:31:26] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-22 12:31:26] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-22 12:31:26] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-01-22 12:31:26] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-01-22 12:31:26] [INFO]   -> Found value: BFD
EMS
[2026-01-22 12:31:26] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nEMS"
[2026-01-22 12:31:26] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-22 12:31:26] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-01-22 12:31:26] [INFO]   -> Found value: 2026000025
[2026-01-22 12:31:26] [INFO]   -> Set field 'incidentInternalId' = "2026000025"
[2026-01-22 12:31:26] [INFO]   -> Set field 'dispatchRunNumber' = "2026000025"
[2026-01-22 12:31:26] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-22 12:31:26] [INFO]   -> Found value: FALL VICTIM
[2026-01-22 12:31:26] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-01-22 12:31:26] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-22 12:31:26] [INFO]   -> Found value: 110
[2026-01-22 12:31:26] [INFO]   -> Set field 'incidentLocationStreetNumber' = 110
[2026-01-22 12:31:26] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-22 12:31:26] [INFO]   -> Found value: TN
[2026-01-22 12:31:26] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-22 12:31:26] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-22 12:31:26] [INFO]   -> Found value: 38544
[2026-01-22 12:31:26] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-01-22 12:31:26] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-22 12:31:26] [INFO]   -> No value found (null or empty)
[2026-01-22 12:31:26] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-22 12:31:26] [INFO]   -> No value found (null or empty)
[2026-01-22 12:31:26] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-22 12:31:26] [INFO]   -> Found value: 36.15469
[2026-01-22 12:31:26] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1546900000000022146195988170802593231201171875
[2026-01-22 12:31:26] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-22 12:31:26] [INFO]   -> Found value: -85.64832
[2026-01-22 12:31:26] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6483199999999982310328050516545772552490234375
[2026-01-22 12:31:26] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-22 12:31:26] [INFO]   -> Found value: 2026-01-22 06:30:04
[2026-01-22 12:31:26] [INFO]   -> Set field 'alarm' = "2026-01-22 06:30:04"
[2026-01-22 12:31:26] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-22 12:31:26] [INFO]   -> Found value: 2026-01-22 06:31:16
[2026-01-22 12:31:26] [INFO]   -> Set field 'dispatched' = "2026-01-22 06:31:16"
[2026-01-22 12:31:26] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-22 12:31:26] [INFO]   -> No value found (null or empty)
[2026-01-22 12:31:26] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-22 12:31:26] [INFO]   -> No value found (null or empty)
[2026-01-22 12:31:26] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-22 12:31:26] [INFO]   -> No value found (null or empty)
[2026-01-22 12:31:26] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-22 12:31:26] [INFO]   -> Found value: /GRACE AVE
[2026-01-22 12:31:26] [INFO]   -> Set field 'incidentLocationCross' = "\/GRACE AVE"
[2026-01-22 12:31:26] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-22 12:31:26] [INFO]   -> Found value: BEN2
[2026-01-22 12:31:26] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-01-22 12:31:26] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-22 12:31:26] [INFO]   -> Found value: 2026-01-22 06:31:16
[2026-01-22 12:31:26] [INFO]   -> Set field 'timedispatch' = "2026-01-22 06:31:16"
[2026-01-22 12:31:26] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-22 12:31:26] [INFO]   -> No value found (null or empty)
[2026-01-22 12:31:26] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-22 12:31:26] [INFO]   -> No value found (null or empty)
[2026-01-22 12:31:26] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-22 12:31:26] [INFO]   -> No value found (null or empty)
[2026-01-22 12:31:26] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-22 12:31:26] [INFO]   -> No value found (null or empty)
[2026-01-22 12:31:26] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-22 12:31:26] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-01-22 12:31:26] [INFO]   -> Found value: 20260008007
[2026-01-22 12:31:26] [INFO]   -> Set field 'policeReportNumber' = "20260008007"
[2026-01-22 12:31:26] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-22 12:31:26] [INFO]   -> Found value: [EMS] 55 YOF/STEPHANIE SNEVECOR  [01/22/26 06:30:34 KMORGAN2] [EMS] 300LBS  [01/22/26 06:30:08 KMORG...
[2026-01-22 12:31:26] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 55 YOF\/STEPHANIE SNEVECOR  [01\/22\/26 06:30:34 KMORGAN2] [EMS] 300LBS  [01\/22\/26 06:30:08 KMORGAN2] Event spawned from FALL VICTIM.  [01\/22\/2026 06:30:04 KMORGAN2] SLIPPED ON ICE ON RAMP KNEE INJURY  [01\/22\/26 06:30:00 KMORGAN2]]"
[2026-01-22 12:31:26] [INFO]   -> Set field 'cADLog' = "[EMS] 55 YOF\/STEPHANIE SNEVECOR  [01\/22\/26 06:30:34 KMORGAN2] [EMS] 300LBS  [01\/22\/26 06:30:08 KMORGAN2] Event spawned from FALL VICTIM.  [01\/22\/2026 06:30:04 KMORGAN2] SLIPPED ON ICE ON RAMP KNEE INJURY  [01\/22\/26 06:30:00 KMORGAN2]]"
[2026-01-22 12:31:26] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-22 12:31:26] [INFO]   -> Found value: BAXTER
[2026-01-22 12:31:26] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-01-22 12:31:26] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-22 12:31:26] [INFO]   -> Found value: GRANDVIEW
[2026-01-22 12:31:26] [INFO]   -> Set field 'streetName' = "GRANDVIEW"
[2026-01-22 12:31:26] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-22 12:31:26] [INFO]   -> Found value: DR
[2026-01-22 12:31:26] [INFO]   -> Set field 'streetType' = "DR"
[2026-01-22 12:31:26] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-22 12:31:26] [INFO]   -> Found value: 110 GRANDVIEW DR
[2026-01-22 12:31:26] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "110 GRANDVIEW DR"
[2026-01-22 12:31:26] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-01-22 12:31:26] [INFO] Concatenating street name and type
[2026-01-22 12:31:26] [INFO]   -> Combined street name: GRANDVIEW DR
[2026-01-22 12:31:26] [INFO] Built locationCoordinates from lat/lng: 36.15469,-85.64832
[2026-01-22 12:31:26] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nEMS","incidentInternalId":"2026000025","dispatchRunNumber":"2026000025","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":110,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.1546900000000022146195988170802593231201171875,"nERISIncidentLongitude":-85.6483199999999982310328050516545772552490234375,"alarm":"2026-01-22 06:30:04","dispatched":"2026-01-22 06:31:16","incidentLocationCross":"\/GRACE AVE","cADVehicleID":"BEN2","timedispatch":"2026-01-22 06:31:16","policeReportNumber":"20260008007","dispatchNotes":"[EMS] 55 YOF\/STEPHANIE SNEVECOR  [01\/22\/26 06:30:34 KMORGAN2] [EMS] 300LBS  [01\/22\/26 06:30:08 KMORGAN2] Event spawned from FALL VICTIM.  [01\/22\/2026 06:30:04 KMORGAN2] SLIPPED ON ICE ON RAMP KNEE INJURY  [01\/22\/26 06:30:00 KMORGAN2]]","cADLog":"[EMS] 55 YOF\/STEPHANIE SNEVECOR  [01\/22\/26 06:30:34 KMORGAN2] [EMS] 300LBS  [01\/22\/26 06:30:08 KMORGAN2] Event spawned from FALL VICTIM.  [01\/22\/2026 06:30:04 KMORGAN2] SLIPPED ON ICE ON RAMP KNEE INJURY  [01\/22\/26 06:30:00 KMORGAN2]]","incidentLocationCity":"BAXTER","streetName":"GRANDVIEW DR","incidentAddressTextVersionStreet":"110 GRANDVIEW DR","locationCoordinates":"36.15469,-85.64832"}
[2026-01-22 12:31:26] [INFO] Number of extracted fields: 21
[2026-01-22 12:31:26] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
EMS'
[2026-01-22 12:31:26] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
EMS', Parsed IDs = ["BFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-01-22 12:31:26] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","EMS"]
[2026-01-22 12:31:26] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-01-22 12:31:26] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-01-22 12:31:26] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-01-22 12:31:26] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-01-22 12:31:26] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-01-22 12:31:26] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-01-22 12:31:26] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-01-22 12:31:26] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-01-22 12:31:27] [INFO] Found existing IncidentTypeMapping with ID: 6945b69c07316b158
[2026-01-22 12:31:30] [INFO] Created new Dispatches record with ID: 6972189f6433c00f7
[2026-01-22 12:31:30] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-01-22 12:31:30] [INFO] Using FTPS (SSL/TLS) connection
[2026-01-22 12:31:33] [INFO] Successfully uploaded file to V2 FTP server: /BFD_20260008007_20260122_123126.XML
[2026-01-22 12:31:33] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260008007_20260122_123126.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-22/BFD_20260008007_20260122_123126.XML
[2026-01-22 12:31:33] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260008007_20260122_123126.XML
[2026-01-22 12:50:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260008014_20260122_125046.XML
[2026-01-22 12:50:46] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260008014_20260122_125046.XML for user: 68f1466aed072ad4a
[2026-01-22 12:50:46] [INFO] File size: 5353 bytes
[2026-01-22 12:50:46] [INFO] Created FTPFiles record with ID: 69721d26bac28fa98
[2026-01-22 12:50:46] [INFO] About to extract fields from XML. File size: 5353 bytes
[2026-01-22 12:50:46] [INFO] Number of mappings: 28
[2026-01-22 12:50:46] [INFO] Starting XML parsing. Content length: 5353
[2026-01-22 12:50:46] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-22 12:50:46] [INFO] Processing 28 field mappings
[2026-01-22 12:50:46] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-22 12:50:46] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-22 12:50:46] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-01-22 12:50:46] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-01-22 12:50:46] [INFO]   -> Found value: AFD
EMS
APD
[2026-01-22 12:50:46] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nEMS\nAPD"
[2026-01-22 12:50:46] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-22 12:50:46] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-01-22 12:50:46] [INFO]   -> Found value: 2026000026
[2026-01-22 12:50:46] [INFO]   -> Set field 'incidentInternalId' = "2026000026"
[2026-01-22 12:50:46] [INFO]   -> Set field 'dispatchRunNumber' = "2026000026"
[2026-01-22 12:50:46] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-22 12:50:46] [INFO]   -> Found value: UNCONSCIOUS
[2026-01-22 12:50:46] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-01-22 12:50:46] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-22 12:50:46] [INFO]   -> Found value: 235
[2026-01-22 12:50:46] [INFO]   -> Set field 'incidentLocationStreetNumber' = 235
[2026-01-22 12:50:46] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-22 12:50:46] [INFO]   -> Found value: TN
[2026-01-22 12:50:46] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-22 12:50:46] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-22 12:50:46] [INFO]   -> Found value: 38506
[2026-01-22 12:50:46] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-01-22 12:50:46] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-22 12:50:46] [INFO]   -> No value found (null or empty)
[2026-01-22 12:50:46] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-22 12:50:46] [INFO]   -> No value found (null or empty)
[2026-01-22 12:50:46] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-22 12:50:46] [INFO]   -> Found value: 36.20650
[2026-01-22 12:50:46] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20649999999999835154085303656756877899169921875
[2026-01-22 12:50:46] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-22 12:50:46] [INFO]   -> Found value: -85.45971
[2026-01-22 12:50:46] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.459710000000001173248165287077426910400390625
[2026-01-22 12:50:46] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-22 12:50:46] [INFO]   -> Found value: 2026-01-22 06:49:30
[2026-01-22 12:50:46] [INFO]   -> Set field 'alarm' = "2026-01-22 06:49:30"
[2026-01-22 12:50:46] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-22 12:50:46] [INFO]   -> Found value: 2026-01-22 06:50:41
[2026-01-22 12:50:46] [INFO]   -> Set field 'dispatched' = "2026-01-22 06:50:41"
[2026-01-22 12:50:46] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-22 12:50:46] [INFO]   -> No value found (null or empty)
[2026-01-22 12:50:46] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-22 12:50:46] [INFO]   -> No value found (null or empty)
[2026-01-22 12:50:46] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-22 12:50:46] [INFO]   -> No value found (null or empty)
[2026-01-22 12:50:46] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-22 12:50:46] [INFO]   -> No value found (null or empty)
[2026-01-22 12:50:46] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-22 12:50:46] [INFO]   -> Found value: AFR
[2026-01-22 12:50:46] [INFO]   -> Set field 'cADVehicleID' = "AFR"
[2026-01-22 12:50:46] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-22 12:50:46] [INFO]   -> Found value: 2026-01-22 06:50:41
[2026-01-22 12:50:46] [INFO]   -> Set field 'timedispatch' = "2026-01-22 06:50:41"
[2026-01-22 12:50:46] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-22 12:50:46] [INFO]   -> No value found (null or empty)
[2026-01-22 12:50:46] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-22 12:50:46] [INFO]   -> No value found (null or empty)
[2026-01-22 12:50:46] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-22 12:50:46] [INFO]   -> No value found (null or empty)
[2026-01-22 12:50:46] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-22 12:50:46] [INFO]   -> No value found (null or empty)
[2026-01-22 12:50:46] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-22 12:50:46] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-01-22 12:50:46] [INFO]   -> Found value: 20260008014
[2026-01-22 12:50:46] [INFO]   -> Set field 'policeReportNumber' = "20260008014"
[2026-01-22 12:50:46] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-22 12:50:46] [INFO]   -> Found value: [EMS] POSS DOA  [01/22/26 06:50:40 KMORGAN2] [EMS] LKW LAST NIGHT  [01/22/26 06:50:27 KMORGAN2] [EMS...
[2026-01-22 12:50:46] [INFO]   -> Set field 'dispatchNotes' = "[EMS] POSS DOA  [01\/22\/26 06:50:40 KMORGAN2] [EMS] LKW LAST NIGHT  [01\/22\/26 06:50:27 KMORGAN2] [EMS] BLUE\/\/COLD  [01\/22\/26 06:50:07 KMORGAN2] [EMS] WIFE ISNT BREATHING  [01\/22\/26 06:49:57 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/22\/26 06:49:38 BWILSON] Event spawned from UNCONSCIOUS.  [01\/22\/2026 06:49:30 KMORGAN2]"
[2026-01-22 12:50:46] [INFO]   -> Set field 'cADLog' = "[EMS] POSS DOA  [01\/22\/26 06:50:40 KMORGAN2] [EMS] LKW LAST NIGHT  [01\/22\/26 06:50:27 KMORGAN2] [EMS] BLUE\/\/COLD  [01\/22\/26 06:50:07 KMORGAN2] [EMS] WIFE ISNT BREATHING  [01\/22\/26 06:49:57 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/22\/26 06:49:38 BWILSON] Event spawned from UNCONSCIOUS.  [01\/22\/2026 06:49:30 KMORGAN2]"
[2026-01-22 12:50:46] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-22 12:50:46] [INFO]   -> Found value: ALGOOD
[2026-01-22 12:50:46] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-01-22 12:50:46] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-22 12:50:46] [INFO]   -> Found value: CYPRESS RIDGE
[2026-01-22 12:50:46] [INFO]   -> Set field 'streetName' = "CYPRESS RIDGE"
[2026-01-22 12:50:46] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-22 12:50:46] [INFO]   -> No value found (null or empty)
[2026-01-22 12:50:46] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-22 12:50:46] [INFO]   -> Found value: 235 CYPRESS RIDGE
[2026-01-22 12:50:46] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "235 CYPRESS RIDGE"
[2026-01-22 12:50:46] [INFO] Finished extracting fields. Total fields extracted: 19
[2026-01-22 12:50:46] [INFO] Built locationCoordinates from lat/lng: 36.2065,-85.45971
[2026-01-22 12:50:46] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nEMS\nAPD","incidentInternalId":"2026000026","dispatchRunNumber":"2026000026","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":235,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.20649999999999835154085303656756877899169921875,"nERISIncidentLongitude":-85.459710000000001173248165287077426910400390625,"alarm":"2026-01-22 06:49:30","dispatched":"2026-01-22 06:50:41","cADVehicleID":"AFR","timedispatch":"2026-01-22 06:50:41","policeReportNumber":"20260008014","dispatchNotes":"[EMS] POSS DOA  [01\/22\/26 06:50:40 KMORGAN2] [EMS] LKW LAST NIGHT  [01\/22\/26 06:50:27 KMORGAN2] [EMS] BLUE\/\/COLD  [01\/22\/26 06:50:07 KMORGAN2] [EMS] WIFE ISNT BREATHING  [01\/22\/26 06:49:57 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/22\/26 06:49:38 BWILSON] Event spawned from UNCONSCIOUS.  [01\/22\/2026 06:49:30 KMORGAN2]","cADLog":"[EMS] POSS DOA  [01\/22\/26 06:50:40 KMORGAN2] [EMS] LKW LAST NIGHT  [01\/22\/26 06:50:27 KMORGAN2] [EMS] BLUE\/\/COLD  [01\/22\/26 06:50:07 KMORGAN2] [EMS] WIFE ISNT BREATHING  [01\/22\/26 06:49:57 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/22\/26 06:49:38 BWILSON] Event spawned from UNCONSCIOUS.  [01\/22\/2026 06:49:30 KMORGAN2]","incidentLocationCity":"ALGOOD","streetName":"CYPRESS RIDGE","incidentAddressTextVersionStreet":"235 CYPRESS RIDGE","locationCoordinates":"36.2065,-85.45971"}
[2026-01-22 12:50:46] [INFO] Number of extracted fields: 20
[2026-01-22 12:50:46] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
EMS
APD'
[2026-01-22 12:50:46] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
EMS
APD', Parsed IDs = ["AFD","EMS","APD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-01-22 12:50:46] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","EMS","APD"]
[2026-01-22 12:50:46] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-01-22 12:50:46] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-01-22 12:50:46] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","APD"]
[2026-01-22 12:50:47] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-01-22 12:50:47] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-01-22 12:50:47] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-01-22 12:50:47] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-01-22 12:50:47] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-01-22 12:50:47] [INFO] Found existing IncidentTypeMapping with ID: 6956c7c8653a23dfd
[2026-01-22 12:50:52] [INFO] Created new Dispatches record with ID: 69721d279d241e7bf
[2026-01-22 12:50:52] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-01-22 12:50:53] [INFO] Using FTPS (SSL/TLS) connection
[2026-01-22 12:50:56] [INFO] Successfully uploaded file to V2 FTP server: /AFD_20260008014_20260122_125046.XML
[2026-01-22 12:50:56] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260008014_20260122_125046.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-22/AFD_20260008014_20260122_125046.XML
[2026-01-22 12:50:56] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260008014_20260122_125046.XML
[2026-01-22 18:25:08] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260008139_20260122_182507.XML
[2026-01-22 18:25:08] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260008139_20260122_182507.XML for user: 68f1466aed072ad4a
[2026-01-22 18:25:08] [INFO] File size: 5571 bytes
[2026-01-22 18:25:08] [INFO] Created FTPFiles record with ID: 69726b84742039d1c
[2026-01-22 18:25:08] [INFO] About to extract fields from XML. File size: 5571 bytes
[2026-01-22 18:25:08] [INFO] Number of mappings: 28
[2026-01-22 18:25:08] [INFO] Starting XML parsing. Content length: 5571
[2026-01-22 18:25:08] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-22 18:25:08] [INFO] Processing 28 field mappings
[2026-01-22 18:25:08] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-22 18:25:08] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-22 18:25:08] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-01-22 18:25:08] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-01-22 18:25:08] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-01-22 18:25:08] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-01-22 18:25:08] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-22 18:25:08] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-01-22 18:25:08] [INFO]   -> Found value: 2026000198
[2026-01-22 18:25:08] [INFO]   -> Set field 'incidentInternalId' = "2026000198"
[2026-01-22 18:25:08] [INFO]   -> Set field 'dispatchRunNumber' = "2026000198"
[2026-01-22 18:25:08] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-22 18:25:08] [INFO]   -> Found value: UNCONSCIOUS
[2026-01-22 18:25:08] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-01-22 18:25:08] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-22 18:25:08] [INFO]   -> Found value: 696
[2026-01-22 18:25:08] [INFO]   -> Set field 'incidentLocationStreetNumber' = 696
[2026-01-22 18:25:08] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-22 18:25:08] [INFO]   -> Found value: TN
[2026-01-22 18:25:08] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-22 18:25:08] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-22 18:25:08] [INFO]   -> Found value: 38544
[2026-01-22 18:25:08] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-01-22 18:25:08] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-22 18:25:08] [INFO]   -> No value found (null or empty)
[2026-01-22 18:25:08] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-22 18:25:08] [INFO]   -> No value found (null or empty)
[2026-01-22 18:25:08] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-22 18:25:08] [INFO]   -> Found value: 36.18153
[2026-01-22 18:25:08] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18153000000000218960849451832473278045654296875
[2026-01-22 18:25:08] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-22 18:25:08] [INFO]   -> Found value: -85.67255
[2026-01-22 18:25:08] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.672550000000001091393642127513885498046875
[2026-01-22 18:25:08] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-22 18:25:08] [INFO]   -> Found value: 2026-01-22 12:24:29
[2026-01-22 18:25:08] [INFO]   -> Set field 'alarm' = "2026-01-22 12:24:29"
[2026-01-22 18:25:08] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-22 18:25:08] [INFO]   -> Found value: 2026-01-22 12:25:04
[2026-01-22 18:25:08] [INFO]   -> Set field 'dispatched' = "2026-01-22 12:25:04"
[2026-01-22 18:25:08] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-22 18:25:08] [INFO]   -> No value found (null or empty)
[2026-01-22 18:25:08] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-22 18:25:08] [INFO]   -> No value found (null or empty)
[2026-01-22 18:25:08] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-22 18:25:08] [INFO]   -> No value found (null or empty)
[2026-01-22 18:25:08] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-22 18:25:08] [INFO]   -> Found value: JESSIE MAHAN RD/MCBROOM BRANCH RD
[2026-01-22 18:25:08] [INFO]   -> Set field 'incidentLocationCross' = "JESSIE MAHAN RD\/MCBROOM BRANCH RD"
[2026-01-22 18:25:08] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-22 18:25:08] [INFO]   -> Found value: PCFR
[2026-01-22 18:25:08] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-01-22 18:25:08] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-22 18:25:08] [INFO]   -> Found value: 2026-01-22 12:25:04
[2026-01-22 18:25:08] [INFO]   -> Set field 'timedispatch' = "2026-01-22 12:25:04"
[2026-01-22 18:25:08] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-22 18:25:08] [INFO]   -> No value found (null or empty)
[2026-01-22 18:25:08] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-22 18:25:08] [INFO]   -> No value found (null or empty)
[2026-01-22 18:25:08] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-22 18:25:08] [INFO]   -> No value found (null or empty)
[2026-01-22 18:25:08] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-22 18:25:08] [INFO]   -> No value found (null or empty)
[2026-01-22 18:25:08] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-22 18:25:08] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-01-22 18:25:08] [INFO]   -> Found value: 20260008139
[2026-01-22 18:25:08] [INFO]   -> Set field 'policeReportNumber' = "20260008139"
[2026-01-22 18:25:08] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-22 18:25:08] [INFO]   -> Found value: [EMS] FELL YESTERDAY AND HIT HEAD NOT RESPONDING NOW  [01/22/26 12:24:55 KMORGAN2] [LAW] UDTS: LAW C...
[2026-01-22 18:25:08] [INFO]   -> Set field 'dispatchNotes' = "[EMS] FELL YESTERDAY AND HIT HEAD NOT RESPONDING NOW  [01\/22\/26 12:24:55 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/22\/26 12:24:37 SBALLARD] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/22\/26 12:24:37 BWILSON] Event spawned from UNCONSCIOUS.  [01\/22\/2026 12:24:29 KMORGAN2]"
[2026-01-22 18:25:08] [INFO]   -> Set field 'cADLog' = "[EMS] FELL YESTERDAY AND HIT HEAD NOT RESPONDING NOW  [01\/22\/26 12:24:55 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/22\/26 12:24:37 SBALLARD] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/22\/26 12:24:37 BWILSON] Event spawned from UNCONSCIOUS.  [01\/22\/2026 12:24:29 KMORGAN2]"
[2026-01-22 18:25:08] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-22 18:25:08] [INFO]   -> Found value: BAXTER
[2026-01-22 18:25:08] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-01-22 18:25:08] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-22 18:25:08] [INFO]   -> Found value: BRYANT RIDGE
[2026-01-22 18:25:08] [INFO]   -> Set field 'streetName' = "BRYANT RIDGE"
[2026-01-22 18:25:08] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-22 18:25:08] [INFO]   -> Found value: RD
[2026-01-22 18:25:08] [INFO]   -> Set field 'streetType' = "RD"
[2026-01-22 18:25:08] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-22 18:25:08] [INFO]   -> Found value: 696 BRYANT RIDGE RD
[2026-01-22 18:25:08] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "696 BRYANT RIDGE RD"
[2026-01-22 18:25:08] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-01-22 18:25:08] [INFO] Concatenating street name and type
[2026-01-22 18:25:08] [INFO]   -> Combined street name: BRYANT RIDGE RD
[2026-01-22 18:25:08] [INFO] Built locationCoordinates from lat/lng: 36.18153,-85.67255
[2026-01-22 18:25:08] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000198","dispatchRunNumber":"2026000198","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":696,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.18153000000000218960849451832473278045654296875,"nERISIncidentLongitude":-85.672550000000001091393642127513885498046875,"alarm":"2026-01-22 12:24:29","dispatched":"2026-01-22 12:25:04","incidentLocationCross":"JESSIE MAHAN RD\/MCBROOM BRANCH RD","cADVehicleID":"PCFR","timedispatch":"2026-01-22 12:25:04","policeReportNumber":"20260008139","dispatchNotes":"[EMS] FELL YESTERDAY AND HIT HEAD NOT RESPONDING NOW  [01\/22\/26 12:24:55 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/22\/26 12:24:37 SBALLARD] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/22\/26 12:24:37 BWILSON] Event spawned from UNCONSCIOUS.  [01\/22\/2026 12:24:29 KMORGAN2]","cADLog":"[EMS] FELL YESTERDAY AND HIT HEAD NOT RESPONDING NOW  [01\/22\/26 12:24:55 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/22\/26 12:24:37 SBALLARD] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/22\/26 12:24:37 BWILSON] Event spawned from UNCONSCIOUS.  [01\/22\/2026 12:24:29 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"BRYANT RIDGE RD","incidentAddressTextVersionStreet":"696 BRYANT RIDGE RD","locationCoordinates":"36.18153,-85.67255"}
[2026-01-22 18:25:08] [INFO] Number of extracted fields: 21
[2026-01-22 18:25:08] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-01-22 18:25:08] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-01-22 18:25:08] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-01-22 18:25:08] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-01-22 18:25:08] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-01-22 18:25:08] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-01-22 18:25:08] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-01-22 18:25:08] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-01-22 18:25:08] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-01-22 18:25:08] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-01-22 18:25:08] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-01-22 18:25:09] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-01-22 18:25:18] [INFO] Created new Dispatches record with ID: 69726b8555fdd0d0a
[2026-01-22 18:25:18] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-01-22 18:25:18] [INFO] Using FTPS (SSL/TLS) connection
[2026-01-22 18:25:22] [INFO] Successfully uploaded file to V2 FTP server: /PCFD_20260008139_20260122_182507.XML
[2026-01-22 18:25:22] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260008139_20260122_182507.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-22/PCFD_20260008139_20260122_182507.XML
[2026-01-22 18:25:22] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260008139_20260122_182507.XML
[2026-01-22 20:04:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260008203_20260122_200447.XML
[2026-01-22 20:04:47] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260008203_20260122_200447.XML for user: 68f1466aed072ad4a
[2026-01-22 20:04:47] [INFO] File size: 4637 bytes
[2026-01-22 20:05:21] [INFO] Created FTPFiles record with ID: 69728301d8ccb1176
[2026-01-22 20:05:21] [INFO] About to extract fields from XML. File size: 4637 bytes
[2026-01-22 20:05:21] [INFO] Number of mappings: 28
[2026-01-22 20:05:21] [INFO] Starting XML parsing. Content length: 4637
[2026-01-22 20:05:21] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-22 20:05:21] [INFO] Processing 28 field mappings
[2026-01-22 20:05:21] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-22 20:05:21] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-22 20:05:21] [INFO]   -> Found value: PCFD
[2026-01-22 20:05:21] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-01-22 20:05:21] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-22 20:05:21] [INFO]   -> Found value: 2026000199
[2026-01-22 20:05:21] [INFO]   -> Set field 'incidentInternalId' = "2026000199"
[2026-01-22 20:05:21] [INFO]   -> Set field 'dispatchRunNumber' = "2026000199"
[2026-01-22 20:05:21] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-22 20:05:21] [INFO]   -> Found value: FIRE ALARM
[2026-01-22 20:05:21] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-01-22 20:05:21] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-22 20:05:21] [INFO]   -> Found value: 2215
[2026-01-22 20:05:21] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2215
[2026-01-22 20:05:21] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-22 20:05:21] [INFO]   -> Found value: TN
[2026-01-22 20:05:21] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-22 20:05:21] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-22 20:05:21] [INFO]   -> Found value: 38506
[2026-01-22 20:05:21] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-01-22 20:05:21] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-22 20:05:21] [INFO]   -> No value found (null or empty)
[2026-01-22 20:05:21] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-22 20:05:21] [INFO]   -> No value found (null or empty)
[2026-01-22 20:05:21] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-22 20:05:21] [INFO]   -> Found value: 36.13592
[2026-01-22 20:05:21] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.13591999999999870851752348244190216064453125
[2026-01-22 20:05:21] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-22 20:05:21] [INFO]   -> Found value: -85.42376
[2026-01-22 20:05:21] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4237600000000014688339433632791042327880859375
[2026-01-22 20:05:21] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-22 20:05:21] [INFO]   -> Found value: 2026-01-22 14:03:43
[2026-01-22 20:05:21] [INFO]   -> Set field 'alarm' = "2026-01-22 14:03:43"
[2026-01-22 20:05:21] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-22 20:05:21] [INFO]   -> Found value: 2026-01-22 14:04:40
[2026-01-22 20:05:21] [INFO]   -> Set field 'dispatched' = "2026-01-22 14:04:40"
[2026-01-22 20:05:21] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-22 20:05:21] [INFO]   -> No value found (null or empty)
[2026-01-22 20:05:21] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-22 20:05:21] [INFO]   -> No value found (null or empty)
[2026-01-22 20:05:21] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-22 20:05:21] [INFO]   -> No value found (null or empty)
[2026-01-22 20:05:21] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-22 20:05:21] [INFO]   -> Found value: ROCKY POINT RD/JUANITA DR
[2026-01-22 20:05:21] [INFO]   -> Set field 'incidentLocationCross' = "ROCKY POINT RD\/JUANITA DR"
[2026-01-22 20:05:21] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-22 20:05:21] [INFO]   -> Found value: TK15
[2026-01-22 20:05:21] [INFO]   -> Set field 'cADVehicleID' = "TK15"
[2026-01-22 20:05:21] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-22 20:05:21] [INFO]   -> Found value: 2026-01-22 14:04:40
[2026-01-22 20:05:21] [INFO]   -> Set field 'timedispatch' = "2026-01-22 14:04:40"
[2026-01-22 20:05:21] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-22 20:05:21] [INFO]   -> No value found (null or empty)
[2026-01-22 20:05:21] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-22 20:05:21] [INFO]   -> No value found (null or empty)
[2026-01-22 20:05:21] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-22 20:05:21] [INFO]   -> No value found (null or empty)
[2026-01-22 20:05:21] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-22 20:05:21] [INFO]   -> No value found (null or empty)
[2026-01-22 20:05:21] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-22 20:05:21] [INFO]   -> Found value: 20260008203
[2026-01-22 20:05:21] [INFO]   -> Set field 'policeReportNumber' = "20260008203"
[2026-01-22 20:05:21] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-22 20:05:21] [INFO]   -> Found value: ZONE 995 KEY PAD  [01/22/26 14:04:11 DSTEPHENS]
[2026-01-22 20:05:21] [INFO]   -> Set field 'dispatchNotes' = "ZONE 995 KEY PAD  [01\/22\/26 14:04:11 DSTEPHENS]"
[2026-01-22 20:05:21] [INFO]   -> Set field 'cADLog' = "ZONE 995 KEY PAD  [01\/22\/26 14:04:11 DSTEPHENS]"
[2026-01-22 20:05:21] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-22 20:05:21] [INFO]   -> Found value: COOKEVILLE
[2026-01-22 20:05:21] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-01-22 20:05:21] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-22 20:05:21] [INFO]   -> Found value: SHELBY
[2026-01-22 20:05:21] [INFO]   -> Set field 'streetName' = "SHELBY"
[2026-01-22 20:05:21] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-22 20:05:21] [INFO]   -> Found value: DR
[2026-01-22 20:05:21] [INFO]   -> Set field 'streetType' = "DR"
[2026-01-22 20:05:21] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-22 20:05:21] [INFO]   -> Found value: 2215 SHELBY DR
[2026-01-22 20:05:21] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2215 SHELBY DR"
[2026-01-22 20:05:21] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-01-22 20:05:21] [INFO] Concatenating street name and type
[2026-01-22 20:05:21] [INFO]   -> Combined street name: SHELBY DR
[2026-01-22 20:05:21] [INFO] Built locationCoordinates from lat/lng: 36.13592,-85.42376
[2026-01-22 20:05:21] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000199","dispatchRunNumber":"2026000199","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":2215,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.13591999999999870851752348244190216064453125,"nERISIncidentLongitude":-85.4237600000000014688339433632791042327880859375,"alarm":"2026-01-22 14:03:43","dispatched":"2026-01-22 14:04:40","incidentLocationCross":"ROCKY POINT RD\/JUANITA DR","cADVehicleID":"TK15","timedispatch":"2026-01-22 14:04:40","policeReportNumber":"20260008203","dispatchNotes":"ZONE 995 KEY PAD  [01\/22\/26 14:04:11 DSTEPHENS]","cADLog":"ZONE 995 KEY PAD  [01\/22\/26 14:04:11 DSTEPHENS]","incidentLocationCity":"COOKEVILLE","streetName":"SHELBY DR","incidentAddressTextVersionStreet":"2215 SHELBY DR","locationCoordinates":"36.13592,-85.42376"}
[2026-01-22 20:05:21] [INFO] Number of extracted fields: 21
[2026-01-22 20:05:21] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-01-22 20:05:21] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-01-22 20:05:21] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-01-22 20:05:21] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-01-22 20:05:22] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-01-22 20:05:50] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-01-22 20:05:50] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-01-22 20:05:50] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-01-22 20:05:50] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-01-22 20:06:12] [INFO] Created new Dispatches record with ID: 6972832ad76e2945d
[2026-01-22 20:06:12] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-01-22 20:06:12] [INFO] Using FTPS (SSL/TLS) connection
[2026-01-22 20:06:16] [INFO] Successfully uploaded file to V2 FTP server: /PCFD_20260008203_20260122_200447.XML
[2026-01-22 20:06:16] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260008203_20260122_200447.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-22/PCFD_20260008203_20260122_200447.XML
[2026-01-22 20:06:16] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260008203_20260122_200447.XML
[2026-01-22 20:29:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260008219_20260122_202947.XML
[2026-01-22 20:29:47] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260008219_20260122_202947.XML for user: 68f1466aed072ad4a
[2026-01-22 20:29:47] [INFO] File size: 5415 bytes
[2026-01-22 20:29:48] [INFO] Created FTPFiles record with ID: 697288bc476c98421
[2026-01-22 20:29:48] [INFO] About to extract fields from XML. File size: 5415 bytes
[2026-01-22 20:29:48] [INFO] Number of mappings: 28
[2026-01-22 20:29:48] [INFO] Starting XML parsing. Content length: 5415
[2026-01-22 20:29:48] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-22 20:29:48] [INFO] Processing 28 field mappings
[2026-01-22 20:29:48] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-22 20:29:48] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-22 20:29:48] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-01-22 20:29:48] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-01-22 20:29:48] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-01-22 20:29:48] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-01-22 20:29:48] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-22 20:29:48] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-01-22 20:29:48] [INFO]   -> Found value: 2026000200
[2026-01-22 20:29:48] [INFO]   -> Set field 'incidentInternalId' = "2026000200"
[2026-01-22 20:29:48] [INFO]   -> Set field 'dispatchRunNumber' = "2026000200"
[2026-01-22 20:29:48] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-22 20:29:48] [INFO]   -> Found value: CHEST PAIN
[2026-01-22 20:29:48] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-01-22 20:29:48] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-22 20:29:48] [INFO]   -> Found value: 108
[2026-01-22 20:29:48] [INFO]   -> Set field 'incidentLocationStreetNumber' = 108
[2026-01-22 20:29:48] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-22 20:29:48] [INFO]   -> Found value: TN
[2026-01-22 20:29:48] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-22 20:29:48] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-22 20:29:48] [INFO]   -> Found value: 38544
[2026-01-22 20:29:48] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-01-22 20:29:48] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-22 20:29:48] [INFO]   -> No value found (null or empty)
[2026-01-22 20:29:48] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-22 20:29:48] [INFO]   -> Found value: B
[2026-01-22 20:29:48] [INFO]   -> Set field 'incidentLocationApt' = "B"
[2026-01-22 20:29:48] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-22 20:29:48] [INFO]   -> Found value: 36.17129
[2026-01-22 20:29:48] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.171289999999999054125510156154632568359375
[2026-01-22 20:29:48] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-22 20:29:48] [INFO]   -> Found value: -85.61344
[2026-01-22 20:29:48] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.613439999999997098711901344358921051025390625
[2026-01-22 20:29:48] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-22 20:29:48] [INFO]   -> Found value: 2026-01-22 14:28:56
[2026-01-22 20:29:48] [INFO]   -> Set field 'alarm' = "2026-01-22 14:28:56"
[2026-01-22 20:29:48] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-22 20:29:48] [INFO]   -> Found value: 2026-01-22 14:29:43
[2026-01-22 20:29:48] [INFO]   -> Set field 'dispatched' = "2026-01-22 14:29:43"
[2026-01-22 20:29:48] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-22 20:29:48] [INFO]   -> No value found (null or empty)
[2026-01-22 20:29:48] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-22 20:29:48] [INFO]   -> No value found (null or empty)
[2026-01-22 20:29:48] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-22 20:29:48] [INFO]   -> No value found (null or empty)
[2026-01-22 20:29:48] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-22 20:29:48] [INFO]   -> Found value: NASHVILLE HWY/PROSPERITY DR
[2026-01-22 20:29:48] [INFO]   -> Set field 'incidentLocationCross' = "NASHVILLE HWY\/PROSPERITY DR"
[2026-01-22 20:29:48] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-22 20:29:48] [INFO]   -> Found value: PCFR
[2026-01-22 20:29:48] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-01-22 20:29:48] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-22 20:29:48] [INFO]   -> Found value: 2026-01-22 14:29:43
[2026-01-22 20:29:48] [INFO]   -> Set field 'timedispatch' = "2026-01-22 14:29:43"
[2026-01-22 20:29:48] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-22 20:29:48] [INFO]   -> No value found (null or empty)
[2026-01-22 20:29:48] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-22 20:29:48] [INFO]   -> No value found (null or empty)
[2026-01-22 20:29:48] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-22 20:29:48] [INFO]   -> No value found (null or empty)
[2026-01-22 20:29:48] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-22 20:29:48] [INFO]   -> No value found (null or empty)
[2026-01-22 20:29:48] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-22 20:29:48] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-01-22 20:29:48] [INFO]   -> Found value: 20260008219
[2026-01-22 20:29:48] [INFO]   -> Set field 'policeReportNumber' = "20260008219"
[2026-01-22 20:29:48] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-22 20:29:48] [INFO]   -> Found value: [EMS] TROUBLE BREATHING  30 YOF  [01/22/26 14:29:20 KMORGAN2] Event spawned from CHEST PAIN.  [01/22...
[2026-01-22 20:29:48] [INFO]   -> Set field 'dispatchNotes' = "[EMS] TROUBLE BREATHING  30 YOF  [01\/22\/26 14:29:20 KMORGAN2] Event spawned from CHEST PAIN.  [01\/22\/2026 14:28:56 KMORGAN2]"
[2026-01-22 20:29:48] [INFO]   -> Set field 'cADLog' = "[EMS] TROUBLE BREATHING  30 YOF  [01\/22\/26 14:29:20 KMORGAN2] Event spawned from CHEST PAIN.  [01\/22\/2026 14:28:56 KMORGAN2]"
[2026-01-22 20:29:48] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-22 20:29:48] [INFO]   -> Found value: BAXTER
[2026-01-22 20:29:48] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-01-22 20:29:48] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-22 20:29:48] [INFO]   -> Found value: FALCON
[2026-01-22 20:29:48] [INFO]   -> Set field 'streetName' = "FALCON"
[2026-01-22 20:29:48] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-22 20:29:48] [INFO]   -> Found value: PT
[2026-01-22 20:29:48] [INFO]   -> Set field 'streetType' = "PT"
[2026-01-22 20:29:48] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-22 20:29:48] [INFO]   -> Found value: 108-B FALCON PT
[2026-01-22 20:29:48] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "108-B FALCON PT"
[2026-01-22 20:29:48] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-01-22 20:29:48] [INFO] Concatenating street name and type
[2026-01-22 20:29:48] [INFO]   -> Combined street name: FALCON PT
[2026-01-22 20:29:48] [INFO] Built locationCoordinates from lat/lng: 36.17129,-85.61344
[2026-01-22 20:29:48] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000200","dispatchRunNumber":"2026000200","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":108,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"incidentLocationApt":"B","nERISIncidentLatitude":36.171289999999999054125510156154632568359375,"nERISIncidentLongitude":-85.613439999999997098711901344358921051025390625,"alarm":"2026-01-22 14:28:56","dispatched":"2026-01-22 14:29:43","incidentLocationCross":"NASHVILLE HWY\/PROSPERITY DR","cADVehicleID":"PCFR","timedispatch":"2026-01-22 14:29:43","policeReportNumber":"20260008219","dispatchNotes":"[EMS] TROUBLE BREATHING  30 YOF  [01\/22\/26 14:29:20 KMORGAN2] Event spawned from CHEST PAIN.  [01\/22\/2026 14:28:56 KMORGAN2]","cADLog":"[EMS] TROUBLE BREATHING  30 YOF  [01\/22\/26 14:29:20 KMORGAN2] Event spawned from CHEST PAIN.  [01\/22\/2026 14:28:56 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"FALCON PT","incidentAddressTextVersionStreet":"108-B FALCON PT","locationCoordinates":"36.17129,-85.61344"}
[2026-01-22 20:29:48] [INFO] Number of extracted fields: 22
[2026-01-22 20:29:48] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-01-22 20:29:48] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-01-22 20:29:48] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-01-22 20:29:48] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-01-22 20:29:48] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-01-22 20:29:48] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-01-22 20:29:48] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-01-22 20:29:48] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-01-22 20:29:48] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-01-22 20:29:48] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-01-22 20:29:48] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-01-22 20:29:48] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-01-22 20:29:57] [INFO] Created new Dispatches record with ID: 697288bd1a29e972e
[2026-01-22 20:29:57] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-01-22 20:29:57] [INFO] Using FTPS (SSL/TLS) connection
[2026-01-22 20:30:00] [INFO] Successfully uploaded file to V2 FTP server: /PCFD_20260008219_20260122_202947.XML
[2026-01-22 20:30:00] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260008219_20260122_202947.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-22/PCFD_20260008219_20260122_202947.XML
[2026-01-22 20:30:00] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260008219_20260122_202947.XML
[2026-01-22 23:10:50] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-02256.xml
[2026-01-22 23:10:50] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-02256.xml for user: 68d56363ec1209189
[2026-01-22 23:10:50] [INFO] File size: 2367 bytes
[2026-01-22 23:10:51] [INFO] Created FTPFiles record with ID: 6972ae7b89f20b2da
[2026-01-22 23:10:51] [INFO] About to extract fields from XML. File size: 2367 bytes
[2026-01-22 23:10:51] [INFO] Number of mappings: 21
[2026-01-22 23:10:51] [INFO] Starting XML parsing. Content length: 2367
[2026-01-22 23:10:51] [INFO] XML parsed successfully. Root element: Incident
[2026-01-22 23:10:51] [INFO] Processing 21 field mappings
[2026-01-22 23:10:51] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-01-22 23:10:51] [INFO]   -> Found value: 26-02256
[2026-01-22 23:10:51] [INFO]   -> Set field 'dispatchRunNumber' = "26-02256"
[2026-01-22 23:10:51] [INFO]   -> Set field 'cADNumber' = "26-02256"
[2026-01-22 23:10:51] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-01-22 23:10:51] [INFO]   -> Found value: 810
[2026-01-22 23:10:51] [INFO]   -> Set field 'incidentLocationStreetNumber' = 810
[2026-01-22 23:10:51] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-01-22 23:10:51] [INFO]   -> Found value: S MAIN ST
[2026-01-22 23:10:51] [INFO]   -> Set field 'streetName' = "S MAIN ST"
[2026-01-22 23:10:51] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-01-22 23:10:51] [INFO]   -> No value found (null or empty)
[2026-01-22 23:10:51] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-01-22 23:10:51] [INFO]   -> Found value: SIKESTON
[2026-01-22 23:10:51] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-01-22 23:10:51] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-01-22 23:10:51] [INFO]   -> Found value: TACO JOHN'S
[2026-01-22 23:10:51] [INFO]   -> Set field 'businessName' = "TACO JOHN'S"
[2026-01-22 23:10:51] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-01-22 23:10:51] [INFO]   -> Found value: MO
[2026-01-22 23:10:51] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-01-22 23:10:51] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-01-22 23:10:51] [INFO]   -> Found value: 63801
[2026-01-22 23:10:51] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-01-22 23:10:51] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-01-22 23:10:51] [INFO]   -> Found value: 0
[2026-01-22 23:10:51] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-01-22 23:10:51] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-01-22 23:10:51] [INFO]   -> Found value: 0
[2026-01-22 23:10:51] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-01-22 23:10:51] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-01-22 23:10:51] [INFO]   -> Found value: FIRE-ALARM MECH
[2026-01-22 23:10:51] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-ALARM MECH"
[2026-01-22 23:10:51] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-01-22 23:10:51] [INFO]   -> Found value: 01-22-2026 17:03:46|FIRE SMOKE ALARM 01-22-2026 17:07:45|SINGLE STORY COMMERICIAL STRUCTURE NOTHING ...
[2026-01-22 23:10:51] [INFO]   -> Set field 'dispatchNotes' = "01-22-2026 17:03:46|FIRE SMOKE ALARM 01-22-2026 17:07:45|SINGLE STORY COMMERICIAL STRUCTURE NOTHING SHOWING 01-22-2026 17:08:17|ACCIDENTAL ALARM 01-22-2026 17:08:31|556 ADVISED ALL UNITS COULD DISREGARD"
[2026-01-22 23:10:51] [INFO]   -> Set field 'cADLog' = "01-22-2026 17:03:46|FIRE SMOKE ALARM 01-22-2026 17:07:45|SINGLE STORY COMMERICIAL STRUCTURE NOTHING SHOWING 01-22-2026 17:08:17|ACCIDENTAL ALARM 01-22-2026 17:08:31|556 ADVISED ALL UNITS COULD DISREGARD"
[2026-01-22 23:10:51] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-01-22 23:10:51] [INFO]   -> Found value: 01-22-2026T17:05:32
[2026-01-22 23:10:51] [INFO] Reformatted DD-MM-YYYY date '01-22-2026' (day=01, month=22) to ISO: 2026-22-01T17:05:32
[2026-01-22 23:10:51] [ERROR] Error formatting datetime '2026-22-01T17:05:32': Failed to parse time string (2026-22-01T17:05:32) at position 6 (2): Unexpected character
[2026-01-22 23:10:51] [INFO]   -> Set field 'alarm' = null
[2026-01-22 23:10:51] [INFO] Reformatted DD-MM-YYYY date '01-22-2026' (day=01, month=22) to ISO: 2026-22-01T17:05:32
[2026-01-22 23:10:51] [ERROR] Error formatting datetime '2026-22-01T17:05:32': Failed to parse time string (2026-22-01T17:05:32) at position 6 (2): Unexpected character
[2026-01-22 23:10:51] [INFO]   -> Set field 'dispatched' = null
[2026-01-22 23:10:51] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-01-22 23:10:51] [INFO]   -> Found value: 01-22-2026T17:07:27
[2026-01-22 23:10:51] [INFO] Reformatted DD-MM-YYYY date '01-22-2026' (day=01, month=22) to ISO: 2026-22-01T17:07:27
[2026-01-22 23:10:51] [ERROR] Error formatting datetime '2026-22-01T17:07:27': Failed to parse time string (2026-22-01T17:07:27) at position 6 (2): Unexpected character
[2026-01-22 23:10:51] [INFO]   -> Set field 'onScene' = null
[2026-01-22 23:10:51] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-01-22 23:10:51] [INFO]   -> Found value: 01-22-2026T17:09:47
[2026-01-22 23:10:51] [INFO] Reformatted DD-MM-YYYY date '01-22-2026' (day=01, month=22) to ISO: 2026-22-01T17:09:47
[2026-01-22 23:10:51] [ERROR] Error formatting datetime '2026-22-01T17:09:47': Failed to parse time string (2026-22-01T17:09:47) at position 6 (2): Unexpected character
[2026-01-22 23:10:51] [INFO]   -> Set field 'cleared' = null
[2026-01-22 23:10:51] [INFO] Reformatted DD-MM-YYYY date '01-22-2026' (day=01, month=22) to ISO: 2026-22-01T17:09:47
[2026-01-22 23:10:51] [ERROR] Error formatting datetime '2026-22-01T17:09:47': Failed to parse time string (2026-22-01T17:09:47) at position 6 (2): Unexpected character
[2026-01-22 23:10:51] [INFO]   -> Set field 'inService' = null
[2026-01-22 23:10:51] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-01-22 23:10:51] [INFO]   -> Found value: ENG2
[2026-01-22 23:10:51] [INFO]   -> Set field 'cADVehicleID' = "ENG2"
[2026-01-22 23:10:51] [INFO]   -> Set field 'name' = "ENG2"
[2026-01-22 23:10:51] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-01-22 23:10:51] [INFO]   -> Found value: 01-22-2026T17:05:45
[2026-01-22 23:10:51] [INFO] Reformatted DD-MM-YYYY date '01-22-2026' (day=01, month=22) to ISO: 2026-22-01T17:05:45
[2026-01-22 23:10:51] [ERROR] Error formatting datetime '2026-22-01T17:05:45': Failed to parse time string (2026-22-01T17:05:45) at position 6 (2): Unexpected character
[2026-01-22 23:10:51] [INFO]   -> Set field 'timeenroutetoscene' = null
[2026-01-22 23:10:51] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-01-22 23:10:51] [INFO]   -> No value found (null or empty)
[2026-01-22 23:10:51] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-01-22 23:10:51] [INFO]   -> Found value: 01-22-2026T17:08:41
[2026-01-22 23:10:51] [INFO] Reformatted DD-MM-YYYY date '01-22-2026' (day=01, month=22) to ISO: 2026-22-01T17:08:41
[2026-01-22 23:10:51] [ERROR] Error formatting datetime '2026-22-01T17:08:41': Failed to parse time string (2026-22-01T17:08:41) at position 6 (2): Unexpected character
[2026-01-22 23:10:51] [INFO]   -> Set field 'timeunitclear' = null
[2026-01-22 23:10:51] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-01-22 23:10:51] [INFO]   -> Found value: 01-22-2026T17:05:42
[2026-01-22 23:10:51] [INFO] Reformatted DD-MM-YYYY date '01-22-2026' (day=01, month=22) to ISO: 2026-22-01T17:05:42
[2026-01-22 23:10:51] [ERROR] Error formatting datetime '2026-22-01T17:05:42': Failed to parse time string (2026-22-01T17:05:42) at position 6 (2): Unexpected character
[2026-01-22 23:10:51] [INFO]   -> Set field 'timedispatch' = null
[2026-01-22 23:10:51] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-01-22 23:10:51] [INFO]   -> Found value: SDPSFD
[2026-01-22 23:10:51] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-01-22 23:10:51] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-01-22 23:10:51] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-01-22 23:10:51] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-02256","cADNumber":"26-02256","incidentLocationStreetNumber":810,"streetName":"S MAIN ST","incidentLocationCity":"SIKESTON","businessName":"TACO JOHN'S","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-ALARM MECH","dispatchNotes":"01-22-2026 17:03:46|FIRE SMOKE ALARM 01-22-2026 17:07:45|SINGLE STORY COMMERICIAL STRUCTURE NOTHING SHOWING 01-22-2026 17:08:17|ACCIDENTAL ALARM 01-22-2026 17:08:31|556 ADVISED ALL UNITS COULD DISREGARD","cADLog":"01-22-2026 17:03:46|FIRE SMOKE ALARM 01-22-2026 17:07:45|SINGLE STORY COMMERICIAL STRUCTURE NOTHING SHOWING 01-22-2026 17:08:17|ACCIDENTAL ALARM 01-22-2026 17:08:31|556 ADVISED ALL UNITS COULD DISREGARD","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"ENG2","name":"ENG2","timeenroutetoscene":null,"timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-01-22 23:10:51] [INFO] Number of extracted fields: 25
[2026-01-22 23:10:51] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-01-22 23:10:51] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-01-22 23:10:51] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-01-22 23:10:51] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-01-22 23:10:51] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-01-22 23:10:51] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-01-22 23:10:51] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-01-22 23:10:51] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-01-22 23:10:52] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e872e5ae13
[2026-01-22 23:10:53] [INFO] Created new Dispatches record with ID: 6972ae7c524fe176f
[2026-01-22 23:10:53] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-02256.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-01-22/SDPSFD_26-02256.xml
[2026-01-22 23:10:53] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-02256.xml
