[2026-02-26 00:07:38] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-05866.xml
[2026-02-26 00:07:38] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-05866.xml for user: 68d56363ec1209189
[2026-02-26 00:07:38] [INFO] File size: 1324 bytes
[2026-02-26 00:07:39] [INFO] Created FTPFiles record with ID: 699f8ecb284545ad5
[2026-02-26 00:07:39] [INFO] About to extract fields from XML. File size: 1324 bytes
[2026-02-26 00:07:39] [INFO] Number of mappings: 21
[2026-02-26 00:07:39] [INFO] Starting XML parsing. Content length: 1324
[2026-02-26 00:07:39] [INFO] XML parsed successfully. Root element: Incident
[2026-02-26 00:07:39] [INFO] Processing 21 field mappings
[2026-02-26 00:07:39] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-02-26 00:07:39] [INFO]   -> Found value: 26-05866
[2026-02-26 00:07:39] [INFO]   -> Set field 'dispatchRunNumber' = "26-05866"
[2026-02-26 00:07:39] [INFO]   -> Set field 'cADNumber' = "26-05866"
[2026-02-26 00:07:39] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-02-26 00:07:39] [INFO]   -> Found value: 201
[2026-02-26 00:07:39] [INFO]   -> Set field 'incidentLocationStreetNumber' = 201
[2026-02-26 00:07:39] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-02-26 00:07:39] [INFO]   -> Found value: S KINGSHIGHWAY
[2026-02-26 00:07:39] [INFO]   -> Set field 'streetName' = "S KINGSHIGHWAY"
[2026-02-26 00:07:39] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-02-26 00:07:39] [INFO]   -> No value found (null or empty)
[2026-02-26 00:07:39] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-02-26 00:07:39] [INFO]   -> Found value: SIKESTON
[2026-02-26 00:07:39] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-02-26 00:07:39] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-02-26 00:07:39] [INFO]   -> Found value: SIKESTON DPS
[2026-02-26 00:07:39] [INFO]   -> Set field 'businessName' = "SIKESTON DPS"
[2026-02-26 00:07:39] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-02-26 00:07:39] [INFO]   -> Found value: MO
[2026-02-26 00:07:39] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-02-26 00:07:39] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-02-26 00:07:39] [INFO]   -> Found value: 63801
[2026-02-26 00:07:39] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-02-26 00:07:39] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-02-26 00:07:39] [INFO]   -> No value found (null or empty)
[2026-02-26 00:07:39] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-02-26 00:07:39] [INFO]   -> No value found (null or empty)
[2026-02-26 00:07:39] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-02-26 00:07:39] [INFO]   -> Found value: WED 1800 HR PAGER TEST
[2026-02-26 00:07:39] [INFO]   -> Set field 'incidentTypeValue1' = "WED 1800 HR PAGER TEST"
[2026-02-26 00:07:39] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-02-26 00:07:39] [INFO]   -> Found value: 02-25-2026 18:00:01|WED EVENING PAGER TEST
[2026-02-26 00:07:39] [INFO]   -> Set field 'dispatchNotes' = "02-25-2026 18:00:01|WED EVENING PAGER TEST"
[2026-02-26 00:07:39] [INFO]   -> Set field 'cADLog' = "02-25-2026 18:00:01|WED EVENING PAGER TEST"
[2026-02-26 00:07:39] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-02-26 00:07:39] [INFO]   -> Found value: 02-25-2026T18:03:40
[2026-02-26 00:07:39] [INFO] Reformatted DD-MM-YYYY date '02-25-2026' (day=02, month=25) to ISO: 2026-25-02T18:03:40
[2026-02-26 00:07:39] [ERROR] Error formatting datetime '2026-25-02T18:03:40': Failed to parse time string (2026-25-02T18:03:40) at position 6 (5): Unexpected character
[2026-02-26 00:07:39] [INFO]   -> Set field 'alarm' = null
[2026-02-26 00:07:39] [INFO] Reformatted DD-MM-YYYY date '02-25-2026' (day=02, month=25) to ISO: 2026-25-02T18:03:40
[2026-02-26 00:07:39] [ERROR] Error formatting datetime '2026-25-02T18:03:40': Failed to parse time string (2026-25-02T18:03:40) at position 6 (5): Unexpected character
[2026-02-26 00:07:39] [INFO]   -> Set field 'dispatched' = null
[2026-02-26 00:07:39] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-02-26 00:07:39] [INFO]   -> No value found (null or empty)
[2026-02-26 00:07:39] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-02-26 00:07:39] [INFO]   -> No value found (null or empty)
[2026-02-26 00:07:39] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-02-26 00:07:39] [INFO]   -> Found value: RURAL PAGE
[2026-02-26 00:07:39] [INFO]   -> Set field 'cADVehicleID' = "RURAL PAGE"
[2026-02-26 00:07:39] [INFO]   -> Set field 'name' = "RURAL PAGE"
[2026-02-26 00:07:39] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-02-26 00:07:39] [INFO]   -> No value found (null or empty)
[2026-02-26 00:07:39] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-02-26 00:07:39] [INFO]   -> No value found (null or empty)
[2026-02-26 00:07:39] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-02-26 00:07:39] [INFO]   -> Found value: 02-25-2026T18:07:00
[2026-02-26 00:07:39] [INFO] Reformatted DD-MM-YYYY date '02-25-2026' (day=02, month=25) to ISO: 2026-25-02T18:07:00
[2026-02-26 00:07:39] [ERROR] Error formatting datetime '2026-25-02T18:07:00': Failed to parse time string (2026-25-02T18:07:00) at position 6 (5): Unexpected character
[2026-02-26 00:07:39] [INFO]   -> Set field 'timeunitclear' = null
[2026-02-26 00:07:39] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-02-26 00:07:39] [INFO]   -> Found value: 02-25-2026T18:05:13
[2026-02-26 00:07:39] [INFO] Reformatted DD-MM-YYYY date '02-25-2026' (day=02, month=25) to ISO: 2026-25-02T18:05:13
[2026-02-26 00:07:39] [ERROR] Error formatting datetime '2026-25-02T18:05:13': Failed to parse time string (2026-25-02T18:05:13) at position 6 (5): Unexpected character
[2026-02-26 00:07:39] [INFO]   -> Set field 'timedispatch' = null
[2026-02-26 00:07:39] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-02-26 00:07:39] [INFO]   -> Found value: SCRFD
[2026-02-26 00:07:39] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2026-02-26 00:07:39] [INFO] Finished extracting fields. Total fields extracted: 18
[2026-02-26 00:07:39] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-05866","cADNumber":"26-05866","incidentLocationStreetNumber":201,"streetName":"S KINGSHIGHWAY","incidentLocationCity":"SIKESTON","businessName":"SIKESTON DPS","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"incidentTypeValue1":"WED 1800 HR PAGER TEST","dispatchNotes":"02-25-2026 18:00:01|WED EVENING PAGER TEST","cADLog":"02-25-2026 18:00:01|WED EVENING PAGER TEST","alarm":null,"dispatched":null,"cADVehicleID":"RURAL PAGE","name":"RURAL PAGE","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SCRFD"}
[2026-02-26 00:07:39] [INFO] Number of extracted fields: 18
[2026-02-26 00:07:39] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2026-02-26 00:07:39] [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-02-26 00:07:39] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2026-02-26 00:07:39] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (index 0) within mailbox's assigned agencies
[2026-02-26 00:07:39] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) at INDEX 0 based on AgencyCode 'SCRFD'
[2026-02-26 00:07:39] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2026-02-26 00:07:39] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"], matchedAgencyIndex = 0
[2026-02-26 00:07:39] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2026-02-26 00:07:39] [INFO] Found existing IncidentTypeMapping with ID: 693a0a64a7bfdcdfa
[2026-02-26 00:07:40] [INFO] Found existing Dispatch with cADNumber '26-05866', ID: 699f8e54bcadc2543 - will update instead of create
[2026-02-26 00:07:40] [INFO] Updated existing Dispatches record with ID: 699f8e54bcadc2543
[2026-02-26 00:07:40] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-02-26
[2026-02-26 00:07:40] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-05866.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-02-26/SCRFD_26-05866.xml
[2026-02-26 00:07:40] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-05866.xml
[2026-02-26 00:07:40] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-05866.xml
[2026-02-26 00:07:40] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-05866.xml for user: 68d56363ec1209189
[2026-02-26 00:07:40] [INFO] File size: 1327 bytes
[2026-02-26 00:07:40] [INFO] Created FTPFiles record with ID: 699f8ecc93ff3f82a
[2026-02-26 00:07:40] [INFO] About to extract fields from XML. File size: 1327 bytes
[2026-02-26 00:07:40] [INFO] Number of mappings: 21
[2026-02-26 00:07:40] [INFO] Starting XML parsing. Content length: 1327
[2026-02-26 00:07:40] [INFO] XML parsed successfully. Root element: Incident
[2026-02-26 00:07:40] [INFO] Processing 21 field mappings
[2026-02-26 00:07:40] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-02-26 00:07:40] [INFO]   -> Found value: 26-05866
[2026-02-26 00:07:40] [INFO]   -> Set field 'dispatchRunNumber' = "26-05866"
[2026-02-26 00:07:40] [INFO]   -> Set field 'cADNumber' = "26-05866"
[2026-02-26 00:07:40] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-02-26 00:07:40] [INFO]   -> Found value: 201
[2026-02-26 00:07:40] [INFO]   -> Set field 'incidentLocationStreetNumber' = 201
[2026-02-26 00:07:40] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-02-26 00:07:40] [INFO]   -> Found value: S KINGSHIGHWAY
[2026-02-26 00:07:40] [INFO]   -> Set field 'streetName' = "S KINGSHIGHWAY"
[2026-02-26 00:07:40] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-02-26 00:07:40] [INFO]   -> No value found (null or empty)
[2026-02-26 00:07:40] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-02-26 00:07:40] [INFO]   -> Found value: SIKESTON
[2026-02-26 00:07:40] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-02-26 00:07:40] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-02-26 00:07:40] [INFO]   -> Found value: SIKESTON DPS
[2026-02-26 00:07:40] [INFO]   -> Set field 'businessName' = "SIKESTON DPS"
[2026-02-26 00:07:40] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-02-26 00:07:40] [INFO]   -> Found value: MO
[2026-02-26 00:07:40] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-02-26 00:07:40] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-02-26 00:07:40] [INFO]   -> Found value: 63801
[2026-02-26 00:07:40] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-02-26 00:07:40] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-02-26 00:07:40] [INFO]   -> No value found (null or empty)
[2026-02-26 00:07:40] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-02-26 00:07:40] [INFO]   -> No value found (null or empty)
[2026-02-26 00:07:40] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-02-26 00:07:40] [INFO]   -> Found value: WED 1800 HR PAGER TEST
[2026-02-26 00:07:40] [INFO]   -> Set field 'incidentTypeValue1' = "WED 1800 HR PAGER TEST"
[2026-02-26 00:07:40] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-02-26 00:07:40] [INFO]   -> Found value: 02-25-2026 18:00:01|WED EVENING PAGER TEST
[2026-02-26 00:07:40] [INFO]   -> Set field 'dispatchNotes' = "02-25-2026 18:00:01|WED EVENING PAGER TEST"
[2026-02-26 00:07:40] [INFO]   -> Set field 'cADLog' = "02-25-2026 18:00:01|WED EVENING PAGER TEST"
[2026-02-26 00:07:40] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-02-26 00:07:40] [INFO]   -> Found value: 02-25-2026T18:03:40
[2026-02-26 00:07:40] [INFO] Reformatted DD-MM-YYYY date '02-25-2026' (day=02, month=25) to ISO: 2026-25-02T18:03:40
[2026-02-26 00:07:40] [ERROR] Error formatting datetime '2026-25-02T18:03:40': Failed to parse time string (2026-25-02T18:03:40) at position 6 (5): Unexpected character
[2026-02-26 00:07:40] [INFO]   -> Set field 'alarm' = null
[2026-02-26 00:07:40] [INFO] Reformatted DD-MM-YYYY date '02-25-2026' (day=02, month=25) to ISO: 2026-25-02T18:03:40
[2026-02-26 00:07:40] [ERROR] Error formatting datetime '2026-25-02T18:03:40': Failed to parse time string (2026-25-02T18:03:40) at position 6 (5): Unexpected character
[2026-02-26 00:07:40] [INFO]   -> Set field 'dispatched' = null
[2026-02-26 00:07:40] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-02-26 00:07:40] [INFO]   -> No value found (null or empty)
[2026-02-26 00:07:40] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-02-26 00:07:40] [INFO]   -> No value found (null or empty)
[2026-02-26 00:07:40] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-02-26 00:07:40] [INFO]   -> Found value: SIK ALL PAGE
[2026-02-26 00:07:40] [INFO]   -> Set field 'cADVehicleID' = "SIK ALL PAGE"
[2026-02-26 00:07:40] [INFO]   -> Set field 'name' = "SIK ALL PAGE"
[2026-02-26 00:07:40] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-02-26 00:07:40] [INFO]   -> No value found (null or empty)
[2026-02-26 00:07:40] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-02-26 00:07:40] [INFO]   -> No value found (null or empty)
[2026-02-26 00:07:40] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-02-26 00:07:40] [INFO]   -> Found value: 02-25-2026T18:07:00
[2026-02-26 00:07:40] [INFO] Reformatted DD-MM-YYYY date '02-25-2026' (day=02, month=25) to ISO: 2026-25-02T18:07:00
[2026-02-26 00:07:40] [ERROR] Error formatting datetime '2026-25-02T18:07:00': Failed to parse time string (2026-25-02T18:07:00) at position 6 (5): Unexpected character
[2026-02-26 00:07:40] [INFO]   -> Set field 'timeunitclear' = null
[2026-02-26 00:07:40] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-02-26 00:07:40] [INFO]   -> Found value: 02-25-2026T18:03:40
[2026-02-26 00:07:40] [INFO] Reformatted DD-MM-YYYY date '02-25-2026' (day=02, month=25) to ISO: 2026-25-02T18:03:40
[2026-02-26 00:07:40] [ERROR] Error formatting datetime '2026-25-02T18:03:40': Failed to parse time string (2026-25-02T18:03:40) at position 6 (5): Unexpected character
[2026-02-26 00:07:40] [INFO]   -> Set field 'timedispatch' = null
[2026-02-26 00:07:40] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-02-26 00:07:40] [INFO]   -> Found value: SDPSFD
[2026-02-26 00:07:40] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-02-26 00:07:40] [INFO] Finished extracting fields. Total fields extracted: 18
[2026-02-26 00:07:40] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-05866","cADNumber":"26-05866","incidentLocationStreetNumber":201,"streetName":"S KINGSHIGHWAY","incidentLocationCity":"SIKESTON","businessName":"SIKESTON DPS","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"incidentTypeValue1":"WED 1800 HR PAGER TEST","dispatchNotes":"02-25-2026 18:00:01|WED EVENING PAGER TEST","cADLog":"02-25-2026 18:00:01|WED EVENING PAGER TEST","alarm":null,"dispatched":null,"cADVehicleID":"SIK ALL PAGE","name":"SIK ALL PAGE","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD"}
[2026-02-26 00:07:40] [INFO] Number of extracted fields: 18
[2026-02-26 00:07:40] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-02-26 00:07:40] [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-02-26 00:07:40] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-02-26 00:07:40] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-02-26 00:07:40] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-02-26 00:07:40] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-02-26 00:07:40] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-02-26 00:07:40] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-02-26 00:07:41] [INFO] Found existing IncidentTypeMapping with ID: 691e5c32443e1aa70
[2026-02-26 00:07:43] [INFO] Created new Dispatches record with ID: 699f8ecd613dd515a
[2026-02-26 00:07:43] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-05866.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-02-26/SDPSFD_26-05866.xml
[2026-02-26 00:07:43] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-05866.xml
[2026-02-26 01:38:23] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021165_20260226_013823.XML
[2026-02-26 01:38:23] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021165_20260226_013823.XML for user: 68f1466aed072ad4a
[2026-02-26 01:38:23] [INFO] File size: 5548 bytes
[2026-02-26 01:38:42] [INFO] Created FTPFiles record with ID: 699fa4220f8f4c9b1
[2026-02-26 01:38:42] [INFO] About to extract fields from XML. File size: 5548 bytes
[2026-02-26 01:38:42] [INFO] Number of mappings: 28
[2026-02-26 01:38:42] [INFO] Starting XML parsing. Content length: 5548
[2026-02-26 01:38:42] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 01:38:42] [INFO] Processing 28 field mappings
[2026-02-26 01:38:42] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 01:38:42] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 01:38:42] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-26 01:38:42] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-02-26 01:38:42] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-02-26 01:38:42] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-02-26 01:38:42] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 01:38:42] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-02-26 01:38:42] [INFO]   -> Found value: 2026000530
[2026-02-26 01:38:42] [INFO]   -> Set field 'incidentInternalId' = "2026000530"
[2026-02-26 01:38:42] [INFO]   -> Set field 'dispatchRunNumber' = "2026000530"
[2026-02-26 01:38:42] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 01:38:42] [INFO]   -> Found value: MVC WITH INJURY
[2026-02-26 01:38:42] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-02-26 01:38:42] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 01:38:42] [INFO]   -> Found value: 270
[2026-02-26 01:38:42] [INFO]   -> Set field 'incidentLocationStreetNumber' = 270
[2026-02-26 01:38:42] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 01:38:42] [INFO]   -> Found value: TN
[2026-02-26 01:38:42] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 01:38:42] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 01:38:42] [INFO]   -> No value found (null or empty)
[2026-02-26 01:38:42] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 01:38:42] [INFO]   -> Found value: MM270W
[2026-02-26 01:38:42] [INFO]   -> Set field 'businessName' = "MM270W"
[2026-02-26 01:38:42] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 01:38:42] [INFO]   -> No value found (null or empty)
[2026-02-26 01:38:42] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 01:38:42] [INFO]   -> Found value: 36.11446
[2026-02-26 01:38:42] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.11446000000000111640474642626941204071044921875
[2026-02-26 01:38:42] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 01:38:42] [INFO]   -> Found value: -85.77334
[2026-02-26 01:38:42] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.7733400000000045793058234266936779022216796875
[2026-02-26 01:38:42] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 01:38:42] [INFO]   -> Found value: 2026-02-25 19:37:06
[2026-02-26 01:38:42] [INFO]   -> Set field 'alarm' = "2026-02-25 19:37:06"
[2026-02-26 01:38:42] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 01:38:42] [INFO]   -> Found value: 2026-02-25 19:38:13
[2026-02-26 01:38:42] [INFO]   -> Set field 'dispatched' = "2026-02-25 19:38:13"
[2026-02-26 01:38:42] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 01:38:42] [INFO]   -> No value found (null or empty)
[2026-02-26 01:38:42] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 01:38:42] [INFO]   -> No value found (null or empty)
[2026-02-26 01:38:42] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 01:38:42] [INFO]   -> No value found (null or empty)
[2026-02-26 01:38:42] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 01:38:42] [INFO]   -> No value found (null or empty)
[2026-02-26 01:38:42] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 01:38:42] [INFO]   -> Found value: EN33
[2026-02-26 01:38:42] [INFO]   -> Set field 'cADVehicleID' = "EN33"
[2026-02-26 01:38:42] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 01:38:42] [INFO]   -> Found value: 2026-02-25 19:38:13
[2026-02-26 01:38:42] [INFO]   -> Set field 'timedispatch' = "2026-02-25 19:38:13"
[2026-02-26 01:38:42] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 01:38:42] [INFO]   -> No value found (null or empty)
[2026-02-26 01:38:42] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 01:38:42] [INFO]   -> No value found (null or empty)
[2026-02-26 01:38:42] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 01:38:42] [INFO]   -> No value found (null or empty)
[2026-02-26 01:38:42] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 01:38:42] [INFO]   -> No value found (null or empty)
[2026-02-26 01:38:42] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 01:38:42] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-02-26 01:38:42] [INFO]   -> Found value: 20260021165
[2026-02-26 01:38:42] [INFO]   -> Set field 'policeReportNumber' = "20260021165"
[2026-02-26 01:38:42] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 01:38:42] [INFO]   -> Found value: Event spawned from MVC WITH INJURY.  [02/25/2026 19:37:06 EROACH] SINGLE VEHICLE  [02/25/26 19:36:47...
[2026-02-26 01:38:42] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from MVC WITH INJURY.  [02\/25\/2026 19:37:06 EROACH] SINGLE VEHICLE  [02\/25\/26 19:36:47 EROACH] UNSURE OF INJURIES \/\/ UNKOWN HAZARDS  [02\/25\/26 19:36:32 EROACH] 2 MILES EAST OF CENTER HILL DAMN EXIT  [02\/25\/26 19:36:06 EROACH] CAR DID 360 AND HIT THE MEDIAN  [02\/25\/26 19:35:28 EROACH]"
[2026-02-26 01:38:42] [INFO]   -> Set field 'cADLog' = "Event spawned from MVC WITH INJURY.  [02\/25\/2026 19:37:06 EROACH] SINGLE VEHICLE  [02\/25\/26 19:36:47 EROACH] UNSURE OF INJURIES \/\/ UNKOWN HAZARDS  [02\/25\/26 19:36:32 EROACH] 2 MILES EAST OF CENTER HILL DAMN EXIT  [02\/25\/26 19:36:06 EROACH] CAR DID 360 AND HIT THE MEDIAN  [02\/25\/26 19:35:28 EROACH]"
[2026-02-26 01:38:42] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 01:38:42] [INFO]   -> Found value: BUFFALO VALLEY
[2026-02-26 01:38:42] [INFO]   -> Set field 'incidentLocationCity' = "BUFFALO VALLEY"
[2026-02-26 01:38:42] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 01:38:42] [INFO]   -> Found value: I 40
[2026-02-26 01:38:42] [INFO]   -> Set field 'streetName' = "I 40"
[2026-02-26 01:38:42] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 01:38:42] [INFO]   -> No value found (null or empty)
[2026-02-26 01:38:42] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 01:38:42] [INFO]   -> Found value: 270 W I 40
[2026-02-26 01:38:42] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "270 W I 40"
[2026-02-26 01:38:42] [INFO] Finished extracting fields. Total fields extracted: 19
[2026-02-26 01:38:42] [INFO] Built locationCoordinates from lat/lng: 36.11446,-85.77334
[2026-02-26 01:38:42] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000530","dispatchRunNumber":"2026000530","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":270,"incidentLocationStateName":"TN","businessName":"MM270W","nERISIncidentLatitude":36.11446000000000111640474642626941204071044921875,"nERISIncidentLongitude":-85.7733400000000045793058234266936779022216796875,"alarm":"2026-02-25 19:37:06","dispatched":"2026-02-25 19:38:13","cADVehicleID":"EN33","timedispatch":"2026-02-25 19:38:13","policeReportNumber":"20260021165","dispatchNotes":"Event spawned from MVC WITH INJURY.  [02\/25\/2026 19:37:06 EROACH] SINGLE VEHICLE  [02\/25\/26 19:36:47 EROACH] UNSURE OF INJURIES \/\/ UNKOWN HAZARDS  [02\/25\/26 19:36:32 EROACH] 2 MILES EAST OF CENTER HILL DAMN EXIT  [02\/25\/26 19:36:06 EROACH] CAR DID 360 AND HIT THE MEDIAN  [02\/25\/26 19:35:28 EROACH]","cADLog":"Event spawned from MVC WITH INJURY.  [02\/25\/2026 19:37:06 EROACH] SINGLE VEHICLE  [02\/25\/26 19:36:47 EROACH] UNSURE OF INJURIES \/\/ UNKOWN HAZARDS  [02\/25\/26 19:36:32 EROACH] 2 MILES EAST OF CENTER HILL DAMN EXIT  [02\/25\/26 19:36:06 EROACH] CAR DID 360 AND HIT THE MEDIAN  [02\/25\/26 19:35:28 EROACH]","incidentLocationCity":"BUFFALO VALLEY","streetName":"I 40","incidentAddressTextVersionStreet":"270 W I 40","locationCoordinates":"36.11446,-85.77334"}
[2026-02-26 01:38:42] [INFO] Number of extracted fields: 20
[2026-02-26 01:38:42] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-02-26 01:38:42] [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-02-26 01:38:42] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-02-26 01:38:42] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-26 01:38:42] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-26 01:38:42] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-02-26 01:38:42] [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-02-26 01:38:42] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-26 01:38:42] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-02-26 01:38:42] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-26 01:38:42] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-26 01:38:42] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-02-26 01:38:53] [INFO] Created new Dispatches record with ID: 699fa422c8ddd5c6a
[2026-02-26 01:38:53] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 01:38:54] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 01:38:57] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 01:38:57] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021165_20260226_013823.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 01:38:57] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 01:54:43] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260021173_20260226_015443.XML
[2026-02-26 01:54:43] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260021173_20260226_015443.XML for user: 68f1466aed072ad4a
[2026-02-26 01:54:43] [INFO] File size: 5433 bytes
[2026-02-26 01:54:43] [INFO] Created FTPFiles record with ID: 699fa7e3598830574
[2026-02-26 01:54:43] [INFO] About to extract fields from XML. File size: 5433 bytes
[2026-02-26 01:54:43] [INFO] Number of mappings: 28
[2026-02-26 01:54:43] [INFO] Starting XML parsing. Content length: 5433
[2026-02-26 01:54:43] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 01:54:43] [INFO] Processing 28 field mappings
[2026-02-26 01:54:43] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 01:54:43] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 01:54:43] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-26 01:54:43] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-02-26 01:54:43] [INFO]   -> Found value: MFD
EMS
MPD
[2026-02-26 01:54:43] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nMPD"
[2026-02-26 01:54:43] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 01:54:43] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-02-26 01:54:43] [INFO]   -> Found value: 2026000071
[2026-02-26 01:54:43] [INFO]   -> Set field 'incidentInternalId' = "2026000071"
[2026-02-26 01:54:43] [INFO]   -> Set field 'dispatchRunNumber' = "2026000071"
[2026-02-26 01:54:43] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 01:54:43] [INFO]   -> Found value: CHEST PAIN
[2026-02-26 01:54:43] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-02-26 01:54:43] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 01:54:43] [INFO]   -> Found value: 602
[2026-02-26 01:54:43] [INFO]   -> Set field 'incidentLocationStreetNumber' = 602
[2026-02-26 01:54:43] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 01:54:43] [INFO]   -> Found value: TN
[2026-02-26 01:54:43] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 01:54:43] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 01:54:43] [INFO]   -> Found value: 38574
[2026-02-26 01:54:43] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-26 01:54:43] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 01:54:43] [INFO]   -> No value found (null or empty)
[2026-02-26 01:54:43] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 01:54:43] [INFO]   -> No value found (null or empty)
[2026-02-26 01:54:43] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 01:54:43] [INFO]   -> Found value: 36.14728
[2026-02-26 01:54:43] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14728000000000207592165679670870304107666015625
[2026-02-26 01:54:43] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 01:54:43] [INFO]   -> Found value: -85.25827
[2026-02-26 01:54:43] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2582699999999960027707857079803943634033203125
[2026-02-26 01:54:43] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 01:54:43] [INFO]   -> Found value: 2026-02-25 19:52:24
[2026-02-26 01:54:43] [INFO]   -> Set field 'alarm' = "2026-02-25 19:52:24"
[2026-02-26 01:54:43] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 01:54:43] [INFO]   -> Found value: 2026-02-25 19:54:36
[2026-02-26 01:54:43] [INFO]   -> Set field 'dispatched' = "2026-02-25 19:54:36"
[2026-02-26 01:54:43] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 01:54:43] [INFO]   -> No value found (null or empty)
[2026-02-26 01:54:43] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 01:54:43] [INFO]   -> No value found (null or empty)
[2026-02-26 01:54:43] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 01:54:43] [INFO]   -> No value found (null or empty)
[2026-02-26 01:54:43] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 01:54:43] [INFO]   -> Found value: SPECK AVE/E LOUIS AVE
[2026-02-26 01:54:43] [INFO]   -> Set field 'incidentLocationCross' = "SPECK AVE\/E LOUIS AVE"
[2026-02-26 01:54:43] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 01:54:43] [INFO]   -> Found value: MFR
[2026-02-26 01:54:43] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-02-26 01:54:43] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 01:54:43] [INFO]   -> Found value: 2026-02-25 19:54:36
[2026-02-26 01:54:43] [INFO]   -> Set field 'timedispatch' = "2026-02-25 19:54:36"
[2026-02-26 01:54:43] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 01:54:43] [INFO]   -> No value found (null or empty)
[2026-02-26 01:54:43] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 01:54:43] [INFO]   -> No value found (null or empty)
[2026-02-26 01:54:43] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 01:54:43] [INFO]   -> No value found (null or empty)
[2026-02-26 01:54:43] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 01:54:43] [INFO]   -> No value found (null or empty)
[2026-02-26 01:54:43] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 01:54:43] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-02-26 01:54:43] [INFO]   -> Found value: 20260021173
[2026-02-26 01:54:43] [INFO]   -> Set field 'policeReportNumber' = "20260021173"
[2026-02-26 01:54:43] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 01:54:43] [INFO]   -> Found value: [EMS] ENTER THROUGH THE FRONT DOOR  [02/25/26 19:54:01 EROACH] [EMS] 25 YO MALE  DAKOTAW HUGHES  [02...
[2026-02-26 01:54:43] [INFO]   -> Set field 'dispatchNotes' = "[EMS] ENTER THROUGH THE FRONT DOOR  [02\/25\/26 19:54:01 EROACH] [EMS] 25 YO MALE  DAKOTAW HUGHES  [02\/25\/26 19:53:31 EROACH] [EMS] LEFT ARM FEELS NUMB AND IS COMPLAINING OF CHEST PAIN  FEELS PAIN IN CENTER OF HIS CHEST RADIATING DOWN HIS LEFT ARM TO HIS RING FINGER NO MEDCIAL HX  [02\/25\/26 19:53:13 EROACH] Event spawned from CHEST PAIN.  [02\/25\/2026 19:52:24 EROACH]"
[2026-02-26 01:54:43] [INFO]   -> Set field 'cADLog' = "[EMS] ENTER THROUGH THE FRONT DOOR  [02\/25\/26 19:54:01 EROACH] [EMS] 25 YO MALE  DAKOTAW HUGHES  [02\/25\/26 19:53:31 EROACH] [EMS] LEFT ARM FEELS NUMB AND IS COMPLAINING OF CHEST PAIN  FEELS PAIN IN CENTER OF HIS CHEST RADIATING DOWN HIS LEFT ARM TO HIS RING FINGER NO MEDCIAL HX  [02\/25\/26 19:53:13 EROACH] Event spawned from CHEST PAIN.  [02\/25\/2026 19:52:24 EROACH]"
[2026-02-26 01:54:43] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 01:54:43] [INFO]   -> Found value: MONTEREY
[2026-02-26 01:54:43] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-26 01:54:43] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 01:54:43] [INFO]   -> Found value: ELMORE
[2026-02-26 01:54:43] [INFO]   -> Set field 'streetName' = "ELMORE"
[2026-02-26 01:54:43] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 01:54:43] [INFO]   -> Found value: ST
[2026-02-26 01:54:43] [INFO]   -> Set field 'streetType' = "ST"
[2026-02-26 01:54:43] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 01:54:43] [INFO]   -> Found value: 602 ELMORE ST
[2026-02-26 01:54:43] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "602 ELMORE ST"
[2026-02-26 01:54:43] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-26 01:54:43] [INFO] Concatenating street name and type
[2026-02-26 01:54:43] [INFO]   -> Combined street name: ELMORE ST
[2026-02-26 01:54:43] [INFO] Built locationCoordinates from lat/lng: 36.14728,-85.25827
[2026-02-26 01:54:43] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nMPD","incidentInternalId":"2026000071","dispatchRunNumber":"2026000071","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":602,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.14728000000000207592165679670870304107666015625,"nERISIncidentLongitude":-85.2582699999999960027707857079803943634033203125,"alarm":"2026-02-25 19:52:24","dispatched":"2026-02-25 19:54:36","incidentLocationCross":"SPECK AVE\/E LOUIS AVE","cADVehicleID":"MFR","timedispatch":"2026-02-25 19:54:36","policeReportNumber":"20260021173","dispatchNotes":"[EMS] ENTER THROUGH THE FRONT DOOR  [02\/25\/26 19:54:01 EROACH] [EMS] 25 YO MALE  DAKOTAW HUGHES  [02\/25\/26 19:53:31 EROACH] [EMS] LEFT ARM FEELS NUMB AND IS COMPLAINING OF CHEST PAIN  FEELS PAIN IN CENTER OF HIS CHEST RADIATING DOWN HIS LEFT ARM TO HIS RING FINGER NO MEDCIAL HX  [02\/25\/26 19:53:13 EROACH] Event spawned from CHEST PAIN.  [02\/25\/2026 19:52:24 EROACH]","cADLog":"[EMS] ENTER THROUGH THE FRONT DOOR  [02\/25\/26 19:54:01 EROACH] [EMS] 25 YO MALE  DAKOTAW HUGHES  [02\/25\/26 19:53:31 EROACH] [EMS] LEFT ARM FEELS NUMB AND IS COMPLAINING OF CHEST PAIN  FEELS PAIN IN CENTER OF HIS CHEST RADIATING DOWN HIS LEFT ARM TO HIS RING FINGER NO MEDCIAL HX  [02\/25\/26 19:53:13 EROACH] Event spawned from CHEST PAIN.  [02\/25\/2026 19:52:24 EROACH]","incidentLocationCity":"MONTEREY","streetName":"ELMORE ST","incidentAddressTextVersionStreet":"602 ELMORE ST","locationCoordinates":"36.14728,-85.25827"}
[2026-02-26 01:54:43] [INFO] Number of extracted fields: 21
[2026-02-26 01:54:43] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
MPD'
[2026-02-26 01:54:43] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
MPD', Parsed IDs = ["MFD","EMS","MPD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-02-26 01:54:43] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","MPD"]
[2026-02-26 01:54:43] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-02-26 01:54:43] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-02-26 01:54:43] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MPD"]
[2026-02-26 01:54:43] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-02-26 01:54:43] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-02-26 01:54:43] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-02-26 01:54:43] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-02-26 01:54:43] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-02-26 01:54:44] [INFO] Found existing IncidentTypeMapping with ID: 694ff5f932f4685e7
[2026-02-26 01:54:47] [INFO] Created new Dispatches record with ID: 699fa7e44c7154332
[2026-02-26 01:54:47] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 01:54:47] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 01:54:51] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 01:54:51] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260021173_20260226_015443.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 01:54:51] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 01:55:13] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021175_20260226_015513.XML
[2026-02-26 01:55:13] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021175_20260226_015513.XML for user: 68f1466aed072ad4a
[2026-02-26 01:55:13] [INFO] File size: 5861 bytes
[2026-02-26 01:55:46] [INFO] Created FTPFiles record with ID: 699fa822a8d069cd4
[2026-02-26 01:55:46] [INFO] About to extract fields from XML. File size: 5861 bytes
[2026-02-26 01:55:46] [INFO] Number of mappings: 28
[2026-02-26 01:55:46] [INFO] Starting XML parsing. Content length: 5861
[2026-02-26 01:55:46] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 01:55:46] [INFO] Processing 28 field mappings
[2026-02-26 01:55:46] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 01:55:46] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 01:55:46] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-26 01:55:46] [INFO] Found 5 elements for 'AgencyCode', concatenating 5 non-empty values
[2026-02-26 01:55:46] [INFO]   -> Found value: PCFD
EMS
MPD
MFD
RESC
[2026-02-26 01:55:46] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMPD\nMFD\nRESC"
[2026-02-26 01:55:46] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 01:55:46] [INFO] Found 5 elements for 'ReportNumber', using FIRST value only
[2026-02-26 01:55:46] [INFO]   -> Found value: 2026000531
[2026-02-26 01:55:46] [INFO]   -> Set field 'incidentInternalId' = "2026000531"
[2026-02-26 01:55:46] [INFO]   -> Set field 'dispatchRunNumber' = "2026000531"
[2026-02-26 01:55:46] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 01:55:46] [INFO]   -> Found value: CHEST PAIN
[2026-02-26 01:55:46] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-02-26 01:55:46] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 01:55:46] [INFO]   -> Found value: 602
[2026-02-26 01:55:46] [INFO]   -> Set field 'incidentLocationStreetNumber' = 602
[2026-02-26 01:55:46] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 01:55:46] [INFO]   -> Found value: TN
[2026-02-26 01:55:46] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 01:55:46] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 01:55:46] [INFO]   -> Found value: 38574
[2026-02-26 01:55:46] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-26 01:55:46] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 01:55:46] [INFO]   -> No value found (null or empty)
[2026-02-26 01:55:46] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 01:55:46] [INFO]   -> No value found (null or empty)
[2026-02-26 01:55:46] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 01:55:46] [INFO]   -> Found value: 36.14728
[2026-02-26 01:55:46] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14728000000000207592165679670870304107666015625
[2026-02-26 01:55:46] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 01:55:46] [INFO]   -> Found value: -85.25827
[2026-02-26 01:55:46] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2582699999999960027707857079803943634033203125
[2026-02-26 01:55:46] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 01:55:46] [INFO]   -> Found value: 2026-02-25 19:54:43
[2026-02-26 01:55:46] [INFO]   -> Set field 'alarm' = "2026-02-25 19:54:43"
[2026-02-26 01:55:46] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 01:55:46] [INFO]   -> Found value: 2026-02-25 19:55:10
[2026-02-26 01:55:46] [INFO]   -> Set field 'dispatched' = "2026-02-25 19:55:10"
[2026-02-26 01:55:46] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 01:55:46] [INFO]   -> No value found (null or empty)
[2026-02-26 01:55:46] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 01:55:46] [INFO]   -> No value found (null or empty)
[2026-02-26 01:55:46] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 01:55:46] [INFO]   -> No value found (null or empty)
[2026-02-26 01:55:46] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 01:55:46] [INFO]   -> Found value: SPECK AVE/E LOUIS AVE
[2026-02-26 01:55:46] [INFO]   -> Set field 'incidentLocationCross' = "SPECK AVE\/E LOUIS AVE"
[2026-02-26 01:55:46] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 01:55:46] [INFO]   -> Found value: PCFR
[2026-02-26 01:55:46] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-26 01:55:46] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 01:55:46] [INFO]   -> Found value: 2026-02-25 19:55:10
[2026-02-26 01:55:46] [INFO]   -> Set field 'timedispatch' = "2026-02-25 19:55:10"
[2026-02-26 01:55:46] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 01:55:46] [INFO]   -> No value found (null or empty)
[2026-02-26 01:55:46] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 01:55:46] [INFO]   -> No value found (null or empty)
[2026-02-26 01:55:46] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 01:55:46] [INFO]   -> No value found (null or empty)
[2026-02-26 01:55:46] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 01:55:46] [INFO]   -> No value found (null or empty)
[2026-02-26 01:55:46] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 01:55:46] [INFO] Found 5 elements for 'CadInciNumber', using FIRST value only
[2026-02-26 01:55:46] [INFO]   -> Found value: 20260021175
[2026-02-26 01:55:46] [INFO]   -> Set field 'policeReportNumber' = "20260021175"
[2026-02-26 01:55:46] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 01:55:46] [INFO]   -> Found value: Event spawned from CHEST PAIN.  [02/25/2026 19:54:43 SVOKOUN2] [EMS] ENTER THROUGH THE FRONT DOOR  [...
[2026-02-26 01:55:46] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from CHEST PAIN.  [02\/25\/2026 19:54:43 SVOKOUN2] [EMS] ENTER THROUGH THE FRONT DOOR  [02\/25\/26 19:54:01 EROACH] [EMS] 25 YO MALE  DAKOTAW HUGHES  [02\/25\/26 19:53:31 EROACH] [EMS] LEFT ARM FEELS NUMB AND IS COMPLAINING OF CHEST PAIN  FEELS PAIN IN CENTER OF HIS CHEST RADIATING DOWN HIS LEFT ARM TO HIS RING FINGER NO MEDCIAL HX  [02\/25\/26 19:53:13 EROACH] Event spawned from CHEST PAIN.  [02\/25\/2026 19:52:24 EROACH]"
[2026-02-26 01:55:46] [INFO]   -> Set field 'cADLog' = "Event spawned from CHEST PAIN.  [02\/25\/2026 19:54:43 SVOKOUN2] [EMS] ENTER THROUGH THE FRONT DOOR  [02\/25\/26 19:54:01 EROACH] [EMS] 25 YO MALE  DAKOTAW HUGHES  [02\/25\/26 19:53:31 EROACH] [EMS] LEFT ARM FEELS NUMB AND IS COMPLAINING OF CHEST PAIN  FEELS PAIN IN CENTER OF HIS CHEST RADIATING DOWN HIS LEFT ARM TO HIS RING FINGER NO MEDCIAL HX  [02\/25\/26 19:53:13 EROACH] Event spawned from CHEST PAIN.  [02\/25\/2026 19:52:24 EROACH]"
[2026-02-26 01:55:46] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 01:55:46] [INFO]   -> Found value: MONTEREY
[2026-02-26 01:55:46] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-26 01:55:46] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 01:55:46] [INFO]   -> Found value: ELMORE
[2026-02-26 01:55:46] [INFO]   -> Set field 'streetName' = "ELMORE"
[2026-02-26 01:55:46] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 01:55:46] [INFO]   -> Found value: ST
[2026-02-26 01:55:46] [INFO]   -> Set field 'streetType' = "ST"
[2026-02-26 01:55:46] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 01:55:46] [INFO]   -> Found value: 602 ELMORE ST
[2026-02-26 01:55:46] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "602 ELMORE ST"
[2026-02-26 01:55:46] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-26 01:55:46] [INFO] Concatenating street name and type
[2026-02-26 01:55:46] [INFO]   -> Combined street name: ELMORE ST
[2026-02-26 01:55:46] [INFO] Built locationCoordinates from lat/lng: 36.14728,-85.25827
[2026-02-26 01:55:46] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMPD\nMFD\nRESC","incidentInternalId":"2026000531","dispatchRunNumber":"2026000531","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":602,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.14728000000000207592165679670870304107666015625,"nERISIncidentLongitude":-85.2582699999999960027707857079803943634033203125,"alarm":"2026-02-25 19:54:43","dispatched":"2026-02-25 19:55:10","incidentLocationCross":"SPECK AVE\/E LOUIS AVE","cADVehicleID":"PCFR","timedispatch":"2026-02-25 19:55:10","policeReportNumber":"20260021175","dispatchNotes":"Event spawned from CHEST PAIN.  [02\/25\/2026 19:54:43 SVOKOUN2] [EMS] ENTER THROUGH THE FRONT DOOR  [02\/25\/26 19:54:01 EROACH] [EMS] 25 YO MALE  DAKOTAW HUGHES  [02\/25\/26 19:53:31 EROACH] [EMS] LEFT ARM FEELS NUMB AND IS COMPLAINING OF CHEST PAIN  FEELS PAIN IN CENTER OF HIS CHEST RADIATING DOWN HIS LEFT ARM TO HIS RING FINGER NO MEDCIAL HX  [02\/25\/26 19:53:13 EROACH] Event spawned from CHEST PAIN.  [02\/25\/2026 19:52:24 EROACH]","cADLog":"Event spawned from CHEST PAIN.  [02\/25\/2026 19:54:43 SVOKOUN2] [EMS] ENTER THROUGH THE FRONT DOOR  [02\/25\/26 19:54:01 EROACH] [EMS] 25 YO MALE  DAKOTAW HUGHES  [02\/25\/26 19:53:31 EROACH] [EMS] LEFT ARM FEELS NUMB AND IS COMPLAINING OF CHEST PAIN  FEELS PAIN IN CENTER OF HIS CHEST RADIATING DOWN HIS LEFT ARM TO HIS RING FINGER NO MEDCIAL HX  [02\/25\/26 19:53:13 EROACH] Event spawned from CHEST PAIN.  [02\/25\/2026 19:52:24 EROACH]","incidentLocationCity":"MONTEREY","streetName":"ELMORE ST","incidentAddressTextVersionStreet":"602 ELMORE ST","locationCoordinates":"36.14728,-85.25827"}
[2026-02-26 01:55:46] [INFO] Number of extracted fields: 21
[2026-02-26 01:55:46] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MPD
MFD
RESC'
[2026-02-26 01:55:46] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MPD
MFD
RESC', Parsed IDs = ["PCFD","EMS","MPD","MFD","RESC"], Non-empty count = 5, Total agency count = 5, Assigned Agencies count = 4
[2026-02-26 01:55:46] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MPD","MFD","RESC"]
[2026-02-26 01:55:46] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-26 01:55:46] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-26 01:55:46] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MPD","MFD","RESC"]
[2026-02-26 01:55:47] [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-02-26 01:55:47] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-26 01:55:47] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 5)
[2026-02-26 01:55:47] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-26 01:55:47] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-26 01:56:06] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-02-26 01:56:17] [INFO] Created new Dispatches record with ID: 699fa8370ef34cbb6
[2026-02-26 01:56:17] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 01:56:17] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 01:56:20] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 01:56:20] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021175_20260226_015513.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 01:56:20] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 03:24:06] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021190_20260226_032406.XML
[2026-02-26 03:24:06] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021190_20260226_032406.XML for user: 68f1466aed072ad4a
[2026-02-26 03:24:06] [INFO] File size: 5155 bytes
[2026-02-26 03:24:06] [INFO] Created FTPFiles record with ID: 699fbcd6be80be5aa
[2026-02-26 03:24:06] [INFO] About to extract fields from XML. File size: 5155 bytes
[2026-02-26 03:24:06] [INFO] Number of mappings: 28
[2026-02-26 03:24:06] [INFO] Starting XML parsing. Content length: 5155
[2026-02-26 03:24:06] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 03:24:06] [INFO] Processing 28 field mappings
[2026-02-26 03:24:06] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 03:24:06] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 03:24:06] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-26 03:24:06] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-02-26 03:24:06] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-02-26 03:24:06] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-02-26 03:24:06] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 03:24:06] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-02-26 03:24:06] [INFO]   -> Found value: 2026000532
[2026-02-26 03:24:06] [INFO]   -> Set field 'incidentInternalId' = "2026000532"
[2026-02-26 03:24:06] [INFO]   -> Set field 'dispatchRunNumber' = "2026000532"
[2026-02-26 03:24:06] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 03:24:06] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-02-26 03:24:06] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-02-26 03:24:06] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 03:24:06] [INFO]   -> Found value: 1661
[2026-02-26 03:24:06] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1661
[2026-02-26 03:24:06] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 03:24:06] [INFO]   -> Found value: TN
[2026-02-26 03:24:06] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 03:24:06] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 03:24:06] [INFO]   -> Found value: 38506
[2026-02-26 03:24:06] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-26 03:24:06] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 03:24:06] [INFO]   -> No value found (null or empty)
[2026-02-26 03:24:06] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 03:24:06] [INFO]   -> No value found (null or empty)
[2026-02-26 03:24:06] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 03:24:06] [INFO]   -> Found value: 36.12298
[2026-02-26 03:24:06] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1229799999999983128873282112181186676025390625
[2026-02-26 03:24:06] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 03:24:06] [INFO]   -> Found value: -85.43732
[2026-02-26 03:24:06] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4373199999999997089616954326629638671875
[2026-02-26 03:24:06] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 03:24:06] [INFO]   -> Found value: 2026-02-25 21:23:21
[2026-02-26 03:24:06] [INFO]   -> Set field 'alarm' = "2026-02-25 21:23:21"
[2026-02-26 03:24:06] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 03:24:06] [INFO]   -> Found value: 2026-02-25 21:23:55
[2026-02-26 03:24:06] [INFO]   -> Set field 'dispatched' = "2026-02-25 21:23:55"
[2026-02-26 03:24:06] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 03:24:06] [INFO]   -> No value found (null or empty)
[2026-02-26 03:24:06] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 03:24:06] [INFO]   -> No value found (null or empty)
[2026-02-26 03:24:06] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 03:24:06] [INFO]   -> No value found (null or empty)
[2026-02-26 03:24:06] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 03:24:06] [INFO]   -> Found value: CUMBERLAND CT/CHEROKEE DR
[2026-02-26 03:24:06] [INFO]   -> Set field 'incidentLocationCross' = "CUMBERLAND CT\/CHEROKEE DR"
[2026-02-26 03:24:06] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 03:24:06] [INFO]   -> Found value: PCFR
[2026-02-26 03:24:06] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-26 03:24:06] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 03:24:06] [INFO]   -> Found value: 2026-02-25 21:23:55
[2026-02-26 03:24:06] [INFO]   -> Set field 'timedispatch' = "2026-02-25 21:23:55"
[2026-02-26 03:24:06] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 03:24:06] [INFO]   -> No value found (null or empty)
[2026-02-26 03:24:06] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 03:24:06] [INFO]   -> No value found (null or empty)
[2026-02-26 03:24:06] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 03:24:06] [INFO]   -> No value found (null or empty)
[2026-02-26 03:24:06] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 03:24:06] [INFO]   -> No value found (null or empty)
[2026-02-26 03:24:06] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 03:24:06] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-02-26 03:24:06] [INFO]   -> Found value: 20260021190
[2026-02-26 03:24:06] [INFO]   -> Set field 'policeReportNumber' = "20260021190"
[2026-02-26 03:24:06] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 03:24:06] [INFO]   -> Found value: Event spawned from FAINTING / SYNCOPE.  [02/25/2026 21:23:21 EROACH]
[2026-02-26 03:24:06] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FAINTING \/ SYNCOPE.  [02\/25\/2026 21:23:21 EROACH]"
[2026-02-26 03:24:06] [INFO]   -> Set field 'cADLog' = "Event spawned from FAINTING \/ SYNCOPE.  [02\/25\/2026 21:23:21 EROACH]"
[2026-02-26 03:24:06] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 03:24:06] [INFO]   -> Found value: COOKEVILLE
[2026-02-26 03:24:06] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-02-26 03:24:06] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 03:24:06] [INFO]   -> Found value: BOONE
[2026-02-26 03:24:06] [INFO]   -> Set field 'streetName' = "BOONE"
[2026-02-26 03:24:06] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 03:24:06] [INFO]   -> Found value: DR
[2026-02-26 03:24:06] [INFO]   -> Set field 'streetType' = "DR"
[2026-02-26 03:24:06] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 03:24:06] [INFO]   -> Found value: 1661 BOONE DR
[2026-02-26 03:24:06] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1661 BOONE DR"
[2026-02-26 03:24:06] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-26 03:24:06] [INFO] Concatenating street name and type
[2026-02-26 03:24:06] [INFO]   -> Combined street name: BOONE DR
[2026-02-26 03:24:06] [INFO] Built locationCoordinates from lat/lng: 36.12298,-85.43732
[2026-02-26 03:24:06] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000532","dispatchRunNumber":"2026000532","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":1661,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.1229799999999983128873282112181186676025390625,"nERISIncidentLongitude":-85.4373199999999997089616954326629638671875,"alarm":"2026-02-25 21:23:21","dispatched":"2026-02-25 21:23:55","incidentLocationCross":"CUMBERLAND CT\/CHEROKEE DR","cADVehicleID":"PCFR","timedispatch":"2026-02-25 21:23:55","policeReportNumber":"20260021190","dispatchNotes":"Event spawned from FAINTING \/ SYNCOPE.  [02\/25\/2026 21:23:21 EROACH]","cADLog":"Event spawned from FAINTING \/ SYNCOPE.  [02\/25\/2026 21:23:21 EROACH]","incidentLocationCity":"COOKEVILLE","streetName":"BOONE DR","incidentAddressTextVersionStreet":"1661 BOONE DR","locationCoordinates":"36.12298,-85.43732"}
[2026-02-26 03:24:06] [INFO] Number of extracted fields: 21
[2026-02-26 03:24:06] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-02-26 03:24:06] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-02-26 03:24:06] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-02-26 03:24:06] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-26 03:24:06] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-26 03:24:06] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-02-26 03:24:07] [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-02-26 03:24:07] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-26 03:24:07] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-02-26 03:24:07] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-26 03:24:07] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-26 03:24:07] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-02-26 03:24:17] [INFO] Created new Dispatches record with ID: 699fbcd7881db4670
[2026-02-26 03:24:17] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 03:24:17] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 03:24:21] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 03:24:21] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021190_20260226_032406.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 03:24:21] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 06:32:36] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:32:36] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml for user: 69320e6a9e3e5ef71
[2026-02-26 06:32:36] [INFO] File size: 11946 bytes
[2026-02-26 06:32:36] [INFO] Created FTPFiles record with ID: 699fe9044baaf40a4
[2026-02-26 06:32:36] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 06:32:36] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26
[2026-02-26 06:32:36] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012649.xml
[2026-02-26 06:32:36] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:32:54] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:32:54] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml for user: 69320e6a9e3e5ef71
[2026-02-26 06:32:54] [INFO] File size: 13170 bytes
[2026-02-26 06:32:54] [INFO] Created FTPFiles record with ID: 699fe91657e403868
[2026-02-26 06:32:54] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 06:32:54] [INFO] File already exists in archive, using unique name: cfs_2026-012649_1772087574.xml
[2026-02-26 06:32:54] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012649_1772087574.xml
[2026-02-26 06:32:54] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:33:08] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:33:08] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml for user: 69320e6a9e3e5ef71
[2026-02-26 06:33:08] [INFO] File size: 14136 bytes
[2026-02-26 06:33:08] [INFO] Created FTPFiles record with ID: 699fe924d31a4da8d
[2026-02-26 06:33:08] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 06:33:08] [INFO] File already exists in archive, using unique name: cfs_2026-012649_1772087588.xml
[2026-02-26 06:33:08] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012649_1772087588.xml
[2026-02-26 06:33:08] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:34:22] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:34:22] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml for user: 69320e6a9e3e5ef71
[2026-02-26 06:34:22] [INFO] File size: 15117 bytes
[2026-02-26 06:34:22] [INFO] Created FTPFiles record with ID: 699fe96e9f771528f
[2026-02-26 06:34:22] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 06:34:22] [INFO] File already exists in archive, using unique name: cfs_2026-012649_1772087662.xml
[2026-02-26 06:34:22] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012649_1772087662.xml
[2026-02-26 06:34:22] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:34:32] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:34:32] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml for user: 69320e6a9e3e5ef71
[2026-02-26 06:34:32] [INFO] File size: 16093 bytes
[2026-02-26 06:34:32] [INFO] Created FTPFiles record with ID: 699fe978ac6111cbe
[2026-02-26 06:34:32] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 06:34:32] [INFO] File already exists in archive, using unique name: cfs_2026-012649_1772087672.xml
[2026-02-26 06:34:32] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012649_1772087672.xml
[2026-02-26 06:34:32] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:34:53] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:34:53] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml for user: 69320e6a9e3e5ef71
[2026-02-26 06:34:53] [INFO] File size: 18326 bytes
[2026-02-26 06:34:53] [INFO] Created FTPFiles record with ID: 699fe98dafdb3e38a
[2026-02-26 06:34:53] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 06:34:53] [INFO] File already exists in archive, using unique name: cfs_2026-012649_1772087693.xml
[2026-02-26 06:34:53] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012649_1772087693.xml
[2026-02-26 06:34:53] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:34:55] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:34:55] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml for user: 69320e6a9e3e5ef71
[2026-02-26 06:34:55] [INFO] File size: 19910 bytes
[2026-02-26 06:34:55] [INFO] Created FTPFiles record with ID: 699fe98fcbf749b47
[2026-02-26 06:34:55] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 06:34:55] [INFO] File already exists in archive, using unique name: cfs_2026-012649_1772087695.xml
[2026-02-26 06:34:55] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012649_1772087695.xml
[2026-02-26 06:34:55] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:35:08] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:35:08] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml for user: 69320e6a9e3e5ef71
[2026-02-26 06:35:08] [INFO] File size: 22143 bytes
[2026-02-26 06:35:08] [INFO] Created FTPFiles record with ID: 699fe99cda4fa2174
[2026-02-26 06:35:08] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 06:35:08] [INFO] File already exists in archive, using unique name: cfs_2026-012649_1772087708.xml
[2026-02-26 06:35:08] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012649_1772087708.xml
[2026-02-26 06:35:08] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:39:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:39:52] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml for user: 69320e6a9e3e5ef71
[2026-02-26 06:39:52] [INFO] File size: 23754 bytes
[2026-02-26 06:39:52] [INFO] Created FTPFiles record with ID: 699feab8498cd357a
[2026-02-26 06:39:52] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 06:39:52] [INFO] File already exists in archive, using unique name: cfs_2026-012649_1772087992.xml
[2026-02-26 06:39:52] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012649_1772087992.xml
[2026-02-26 06:39:52] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:39:57] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:39:57] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml for user: 69320e6a9e3e5ef71
[2026-02-26 06:39:57] [INFO] File size: 24698 bytes
[2026-02-26 06:39:57] [INFO] Created FTPFiles record with ID: 699feabda8e5df962
[2026-02-26 06:39:57] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 06:39:57] [INFO] File already exists in archive, using unique name: cfs_2026-012649_1772087997.xml
[2026-02-26 06:39:57] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012649_1772087997.xml
[2026-02-26 06:39:57] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:40:16] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021222_20260226_064016.XML
[2026-02-26 06:40:16] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021222_20260226_064016.XML for user: 68f1466aed072ad4a
[2026-02-26 06:40:16] [INFO] File size: 5287 bytes
[2026-02-26 06:40:16] [INFO] Created FTPFiles record with ID: 699fead0d51c3294f
[2026-02-26 06:40:16] [INFO] About to extract fields from XML. File size: 5287 bytes
[2026-02-26 06:40:16] [INFO] Number of mappings: 28
[2026-02-26 06:40:16] [INFO] Starting XML parsing. Content length: 5287
[2026-02-26 06:40:16] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 06:40:16] [INFO] Processing 28 field mappings
[2026-02-26 06:40:16] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 06:40:16] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 06:40:16] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-26 06:40:16] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-02-26 06:40:16] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-02-26 06:40:16] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-02-26 06:40:16] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 06:40:16] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-02-26 06:40:16] [INFO]   -> Found value: 2026000533
[2026-02-26 06:40:16] [INFO]   -> Set field 'incidentInternalId' = "2026000533"
[2026-02-26 06:40:16] [INFO]   -> Set field 'dispatchRunNumber' = "2026000533"
[2026-02-26 06:40:16] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 06:40:16] [INFO]   -> Found value: FALL VICTIM
[2026-02-26 06:40:16] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-02-26 06:40:16] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 06:40:16] [INFO]   -> Found value: 3820
[2026-02-26 06:40:16] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3820
[2026-02-26 06:40:16] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 06:40:16] [INFO]   -> Found value: TN
[2026-02-26 06:40:16] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 06:40:16] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 06:40:16] [INFO]   -> Found value: 38501
[2026-02-26 06:40:16] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-02-26 06:40:16] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 06:40:16] [INFO]   -> No value found (null or empty)
[2026-02-26 06:40:16] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 06:40:16] [INFO]   -> No value found (null or empty)
[2026-02-26 06:40:16] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 06:40:16] [INFO]   -> Found value: 36.18202
[2026-02-26 06:40:16] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18202000000000140289557748474180698394775390625
[2026-02-26 06:40:16] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 06:40:16] [INFO]   -> Found value: -85.58305
[2026-02-26 06:40:16] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5830500000000000682121026329696178436279296875
[2026-02-26 06:40:16] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 06:40:16] [INFO]   -> Found value: 2026-02-26 00:39:40
[2026-02-26 06:40:16] [INFO]   -> Set field 'alarm' = "2026-02-26 00:39:40"
[2026-02-26 06:40:16] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 06:40:16] [INFO]   -> Found value: 2026-02-26 00:40:06
[2026-02-26 06:40:16] [INFO]   -> Set field 'dispatched' = "2026-02-26 00:40:06"
[2026-02-26 06:40:16] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 06:40:16] [INFO]   -> No value found (null or empty)
[2026-02-26 06:40:16] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 06:40:16] [INFO]   -> No value found (null or empty)
[2026-02-26 06:40:16] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 06:40:16] [INFO]   -> No value found (null or empty)
[2026-02-26 06:40:16] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 06:40:16] [INFO]   -> Found value: SUNNY DR/PLUNK WHITSON RD
[2026-02-26 06:40:16] [INFO]   -> Set field 'incidentLocationCross' = "SUNNY DR\/PLUNK WHITSON RD"
[2026-02-26 06:40:16] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 06:40:16] [INFO]   -> Found value: PCFR
[2026-02-26 06:40:16] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-26 06:40:16] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 06:40:16] [INFO]   -> Found value: 2026-02-26 00:40:06
[2026-02-26 06:40:16] [INFO]   -> Set field 'timedispatch' = "2026-02-26 00:40:06"
[2026-02-26 06:40:16] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 06:40:16] [INFO]   -> No value found (null or empty)
[2026-02-26 06:40:16] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 06:40:16] [INFO]   -> No value found (null or empty)
[2026-02-26 06:40:16] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 06:40:16] [INFO]   -> No value found (null or empty)
[2026-02-26 06:40:16] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 06:40:16] [INFO]   -> No value found (null or empty)
[2026-02-26 06:40:16] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 06:40:16] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-02-26 06:40:16] [INFO]   -> Found value: 20260021222
[2026-02-26 06:40:16] [INFO]   -> Set field 'policeReportNumber' = "20260021222"
[2026-02-26 06:40:16] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 06:40:16] [INFO]   -> Found value: Event spawned from FALL VICTIM.  [02/26/2026 00:39:40 EROACH] HX OF BRAIN DAMAGE// FAILURE TO THRIVE...
[2026-02-26 06:40:16] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FALL VICTIM.  [02\/26\/2026 00:39:40 EROACH] HX OF BRAIN DAMAGE\/\/ FAILURE TO THRIVE\/\/ POSSIBLY HIT HER HEAD NOT ABLE TO WALK  FOUND HER IN THE BATHROOM OBVIOUS MARKING ON HER FACE FROM FALL  [02\/26\/26 00:39:36 EROACH]]"
[2026-02-26 06:40:16] [INFO]   -> Set field 'cADLog' = "Event spawned from FALL VICTIM.  [02\/26\/2026 00:39:40 EROACH] HX OF BRAIN DAMAGE\/\/ FAILURE TO THRIVE\/\/ POSSIBLY HIT HER HEAD NOT ABLE TO WALK  FOUND HER IN THE BATHROOM OBVIOUS MARKING ON HER FACE FROM FALL  [02\/26\/26 00:39:36 EROACH]]"
[2026-02-26 06:40:16] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 06:40:16] [INFO]   -> Found value: COOKEVILLE
[2026-02-26 06:40:16] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-02-26 06:40:16] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 06:40:16] [INFO]   -> Found value: SHADY OAK
[2026-02-26 06:40:16] [INFO]   -> Set field 'streetName' = "SHADY OAK"
[2026-02-26 06:40:16] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 06:40:16] [INFO]   -> Found value: CIR
[2026-02-26 06:40:16] [INFO]   -> Set field 'streetType' = "CIR"
[2026-02-26 06:40:16] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 06:40:16] [INFO]   -> Found value: 3820 SHADY OAK CIR
[2026-02-26 06:40:16] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3820 SHADY OAK CIR"
[2026-02-26 06:40:16] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-26 06:40:16] [INFO] Concatenating street name and type
[2026-02-26 06:40:16] [INFO]   -> Combined street name: SHADY OAK CIR
[2026-02-26 06:40:16] [INFO] Built locationCoordinates from lat/lng: 36.18202,-85.58305
[2026-02-26 06:40:16] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000533","dispatchRunNumber":"2026000533","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":3820,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.18202000000000140289557748474180698394775390625,"nERISIncidentLongitude":-85.5830500000000000682121026329696178436279296875,"alarm":"2026-02-26 00:39:40","dispatched":"2026-02-26 00:40:06","incidentLocationCross":"SUNNY DR\/PLUNK WHITSON RD","cADVehicleID":"PCFR","timedispatch":"2026-02-26 00:40:06","policeReportNumber":"20260021222","dispatchNotes":"Event spawned from FALL VICTIM.  [02\/26\/2026 00:39:40 EROACH] HX OF BRAIN DAMAGE\/\/ FAILURE TO THRIVE\/\/ POSSIBLY HIT HER HEAD NOT ABLE TO WALK  FOUND HER IN THE BATHROOM OBVIOUS MARKING ON HER FACE FROM FALL  [02\/26\/26 00:39:36 EROACH]]","cADLog":"Event spawned from FALL VICTIM.  [02\/26\/2026 00:39:40 EROACH] HX OF BRAIN DAMAGE\/\/ FAILURE TO THRIVE\/\/ POSSIBLY HIT HER HEAD NOT ABLE TO WALK  FOUND HER IN THE BATHROOM OBVIOUS MARKING ON HER FACE FROM FALL  [02\/26\/26 00:39:36 EROACH]]","incidentLocationCity":"COOKEVILLE","streetName":"SHADY OAK CIR","incidentAddressTextVersionStreet":"3820 SHADY OAK CIR","locationCoordinates":"36.18202,-85.58305"}
[2026-02-26 06:40:16] [INFO] Number of extracted fields: 21
[2026-02-26 06:40:16] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-02-26 06:40:16] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-02-26 06:40:16] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-02-26 06:40:16] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-26 06:40:17] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-26 06:40:17] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-02-26 06:40:17] [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-02-26 06:40:17] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-26 06:40:17] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-02-26 06:40:17] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-26 06:40:17] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-26 06:40:17] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-02-26 06:40:27] [INFO] Created new Dispatches record with ID: 699fead1a6e7601eb
[2026-02-26 06:40:27] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 06:40:27] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 06:40:31] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 06:40:31] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021222_20260226_064016.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 06:40:31] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 06:43:32] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:43:32] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml for user: 69320e6a9e3e5ef71
[2026-02-26 06:43:32] [INFO] File size: 25642 bytes
[2026-02-26 06:43:33] [INFO] Created FTPFiles record with ID: 699feb953eb2ac1e1
[2026-02-26 06:43:33] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 06:43:33] [INFO] File already exists in archive, using unique name: cfs_2026-012649_1772088213.xml
[2026-02-26 06:43:33] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012649_1772088213.xml
[2026-02-26 06:43:33] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:43:36] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 06:43:36] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml for user: 69320e6a9e3e5ef71
[2026-02-26 06:43:36] [INFO] File size: 27253 bytes
[2026-02-26 06:43:36] [INFO] Created FTPFiles record with ID: 699feb98e66cd4e15
[2026-02-26 06:43:36] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 06:43:36] [INFO] File already exists in archive, using unique name: cfs_2026-012649_1772088216.xml
[2026-02-26 06:43:36] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012649_1772088216.xml
[2026-02-26 06:43:36] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 07:01:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 07:01:46] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml for user: 69320e6a9e3e5ef71
[2026-02-26 07:01:46] [INFO] File size: 28295 bytes
[2026-02-26 07:01:47] [INFO] Created FTPFiles record with ID: 699fefdb231f49ce0
[2026-02-26 07:01:47] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 07:01:47] [INFO] File already exists in archive, using unique name: cfs_2026-012649_1772089307.xml
[2026-02-26 07:01:47] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012649_1772089307.xml
[2026-02-26 07:01:47] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 07:01:53] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 07:01:53] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml for user: 69320e6a9e3e5ef71
[2026-02-26 07:01:53] [INFO] File size: 29888 bytes
[2026-02-26 07:01:53] [INFO] Created FTPFiles record with ID: 699fefe1ae97542b8
[2026-02-26 07:01:53] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 07:01:53] [INFO] File already exists in archive, using unique name: cfs_2026-012649_1772089313.xml
[2026-02-26 07:01:53] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012649_1772089313.xml
[2026-02-26 07:01:53] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012649.xml
[2026-02-26 08:42:00] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012659.xml
[2026-02-26 08:42:00] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012659.xml for user: 69320e6a9e3e5ef71
[2026-02-26 08:42:00] [INFO] File size: 13592 bytes
[2026-02-26 08:42:00] [INFO] Created FTPFiles record with ID: 69a0075892034ebcb
[2026-02-26 08:42:00] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 08:42:00] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012659.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012659.xml
[2026-02-26 08:42:00] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012659.xml
[2026-02-26 13:34:03] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml
[2026-02-26 13:34:03] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml for user: 69320e6a9e3e5ef71
[2026-02-26 13:34:03] [INFO] File size: 11868 bytes
[2026-02-26 13:34:03] [INFO] Created FTPFiles record with ID: 69a04bcbda40b0df1
[2026-02-26 13:34:03] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 13:34:03] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012677.xml
[2026-02-26 13:34:03] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml
[2026-02-26 13:34:34] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml
[2026-02-26 13:34:34] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml for user: 69320e6a9e3e5ef71
[2026-02-26 13:34:34] [INFO] File size: 14097 bytes
[2026-02-26 13:34:34] [INFO] Created FTPFiles record with ID: 69a04beaeaf93297c
[2026-02-26 13:34:34] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 13:34:34] [INFO] File already exists in archive, using unique name: cfs_2026-012677_1772112874.xml
[2026-02-26 13:34:34] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012677_1772112874.xml
[2026-02-26 13:34:34] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml
[2026-02-26 13:34:57] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml
[2026-02-26 13:34:57] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml for user: 69320e6a9e3e5ef71
[2026-02-26 13:34:57] [INFO] File size: 16326 bytes
[2026-02-26 13:34:58] [INFO] Created FTPFiles record with ID: 69a04c0224b22f629
[2026-02-26 13:34:58] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 13:34:58] [INFO] File already exists in archive, using unique name: cfs_2026-012677_1772112898.xml
[2026-02-26 13:34:58] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012677_1772112898.xml
[2026-02-26 13:34:58] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml
[2026-02-26 13:41:15] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml
[2026-02-26 13:41:15] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml for user: 69320e6a9e3e5ef71
[2026-02-26 13:41:15] [INFO] File size: 17942 bytes
[2026-02-26 13:41:15] [INFO] Created FTPFiles record with ID: 69a04d7b885358a1c
[2026-02-26 13:41:15] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 13:41:15] [INFO] File already exists in archive, using unique name: cfs_2026-012677_1772113275.xml
[2026-02-26 13:41:15] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012677_1772113275.xml
[2026-02-26 13:41:15] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml
[2026-02-26 13:41:23] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml
[2026-02-26 13:41:23] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml for user: 69320e6a9e3e5ef71
[2026-02-26 13:41:23] [INFO] File size: 18934 bytes
[2026-02-26 13:41:23] [INFO] Created FTPFiles record with ID: 69a04d835ed77c97c
[2026-02-26 13:41:23] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 13:41:23] [INFO] File already exists in archive, using unique name: cfs_2026-012677_1772113283.xml
[2026-02-26 13:41:23] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012677_1772113283.xml
[2026-02-26 13:41:23] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml
[2026-02-26 13:42:16] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml
[2026-02-26 13:42:16] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml for user: 69320e6a9e3e5ef71
[2026-02-26 13:42:16] [INFO] File size: 19897 bytes
[2026-02-26 13:42:16] [INFO] Created FTPFiles record with ID: 69a04db8a44c40035
[2026-02-26 13:42:16] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 13:42:16] [INFO] File already exists in archive, using unique name: cfs_2026-012677_1772113336.xml
[2026-02-26 13:42:16] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012677_1772113336.xml
[2026-02-26 13:42:16] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml
[2026-02-26 13:54:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml
[2026-02-26 13:54:47] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml for user: 69320e6a9e3e5ef71
[2026-02-26 13:54:47] [INFO] File size: 21495 bytes
[2026-02-26 13:54:47] [INFO] Created FTPFiles record with ID: 69a050a765f6d5a95
[2026-02-26 13:54:47] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-02-26 13:54:47] [INFO] File already exists in archive, using unique name: cfs_2026-012677_1772114087.xml
[2026-02-26 13:54:47] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-02-26/cfs_2026-012677_1772114087.xml
[2026-02-26 13:54:47] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-012677.xml
[2026-02-26 15:09:59] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021284_20260226_150959.XML
[2026-02-26 15:09:59] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021284_20260226_150959.XML for user: 68f1466aed072ad4a
[2026-02-26 15:09:59] [INFO] File size: 5177 bytes
[2026-02-26 15:10:19] [INFO] Created FTPFiles record with ID: 69a0625b3ef60b47a
[2026-02-26 15:10:19] [INFO] About to extract fields from XML. File size: 5177 bytes
[2026-02-26 15:10:19] [INFO] Number of mappings: 28
[2026-02-26 15:10:19] [INFO] Starting XML parsing. Content length: 5177
[2026-02-26 15:10:19] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 15:10:19] [INFO] Processing 28 field mappings
[2026-02-26 15:10:19] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 15:10:19] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 15:10:19] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-26 15:10:19] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-02-26 15:10:19] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-02-26 15:10:19] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-02-26 15:10:19] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 15:10:19] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-02-26 15:10:19] [INFO]   -> Found value: 2026000534
[2026-02-26 15:10:19] [INFO]   -> Set field 'incidentInternalId' = "2026000534"
[2026-02-26 15:10:19] [INFO]   -> Set field 'dispatchRunNumber' = "2026000534"
[2026-02-26 15:10:19] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 15:10:19] [INFO]   -> Found value: FALL VICTIM
[2026-02-26 15:10:19] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-02-26 15:10:19] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 15:10:19] [INFO]   -> Found value: 2871
[2026-02-26 15:10:19] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2871
[2026-02-26 15:10:19] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 15:10:19] [INFO]   -> Found value: TN
[2026-02-26 15:10:19] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 15:10:19] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 15:10:19] [INFO]   -> Found value: 38506
[2026-02-26 15:10:19] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-26 15:10:19] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 15:10:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:10:19] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 15:10:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:10:19] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 15:10:19] [INFO]   -> Found value: 36.24089
[2026-02-26 15:10:19] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.24089000000000027057467377744615077972412109375
[2026-02-26 15:10:19] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 15:10:19] [INFO]   -> Found value: -85.43808
[2026-02-26 15:10:19] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4380799999999993588062352500855922698974609375
[2026-02-26 15:10:19] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 15:10:19] [INFO]   -> Found value: 2026-02-26 09:08:20
[2026-02-26 15:10:19] [INFO]   -> Set field 'alarm' = "2026-02-26 09:08:20"
[2026-02-26 15:10:19] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 15:10:19] [INFO]   -> Found value: 2026-02-26 09:09:53
[2026-02-26 15:10:19] [INFO]   -> Set field 'dispatched' = "2026-02-26 09:09:53"
[2026-02-26 15:10:19] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 15:10:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:10:19] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 15:10:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:10:19] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 15:10:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:10:19] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 15:10:19] [INFO]   -> Found value: PARAN POINTE DR/MIRANDY RD
[2026-02-26 15:10:19] [INFO]   -> Set field 'incidentLocationCross' = "PARAN POINTE DR\/MIRANDY RD"
[2026-02-26 15:10:19] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 15:10:19] [INFO]   -> Found value: PCFR
[2026-02-26 15:10:19] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-26 15:10:19] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 15:10:19] [INFO]   -> Found value: 2026-02-26 09:09:53
[2026-02-26 15:10:19] [INFO]   -> Set field 'timedispatch' = "2026-02-26 09:09:53"
[2026-02-26 15:10:19] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 15:10:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:10:19] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 15:10:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:10:19] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 15:10:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:10:19] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 15:10:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:10:19] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 15:10:19] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-02-26 15:10:19] [INFO]   -> Found value: 20260021284
[2026-02-26 15:10:19] [INFO]   -> Set field 'policeReportNumber' = "20260021284"
[2026-02-26 15:10:19] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 15:10:19] [INFO]   -> Found value: [EMS] ENTER THRU THE GARAGE  [02/26/26 09:08:36 JWOMACK] [EMS] 90 YOF FALL VICTIM BLEEDING FROM THE ...
[2026-02-26 15:10:19] [INFO]   -> Set field 'dispatchNotes' = "[EMS] ENTER THRU THE GARAGE  [02\/26\/26 09:08:36 JWOMACK] [EMS] 90 YOF FALL VICTIM BLEEDING FROM THE HEAD  [02\/26\/26 09:08:28 JWOMACK] Event spawned from ELECTRICAL SHOCK.  [02\/26\/2026 09:08:20 KMORGAN2]"
[2026-02-26 15:10:19] [INFO]   -> Set field 'cADLog' = "[EMS] ENTER THRU THE GARAGE  [02\/26\/26 09:08:36 JWOMACK] [EMS] 90 YOF FALL VICTIM BLEEDING FROM THE HEAD  [02\/26\/26 09:08:28 JWOMACK] Event spawned from ELECTRICAL SHOCK.  [02\/26\/2026 09:08:20 KMORGAN2]"
[2026-02-26 15:10:19] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 15:10:19] [INFO]   -> Found value: COOKEVILLE
[2026-02-26 15:10:19] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-02-26 15:10:19] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 15:10:19] [INFO]   -> Found value: PARAN
[2026-02-26 15:10:19] [INFO]   -> Set field 'streetName' = "PARAN"
[2026-02-26 15:10:19] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 15:10:19] [INFO]   -> Found value: RD
[2026-02-26 15:10:19] [INFO]   -> Set field 'streetType' = "RD"
[2026-02-26 15:10:19] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 15:10:19] [INFO]   -> Found value: 2871 PARAN RD
[2026-02-26 15:10:19] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2871 PARAN RD"
[2026-02-26 15:10:19] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-26 15:10:19] [INFO] Concatenating street name and type
[2026-02-26 15:10:19] [INFO]   -> Combined street name: PARAN RD
[2026-02-26 15:10:19] [INFO] Built locationCoordinates from lat/lng: 36.24089,-85.43808
[2026-02-26 15:10:19] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000534","dispatchRunNumber":"2026000534","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":2871,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.24089000000000027057467377744615077972412109375,"nERISIncidentLongitude":-85.4380799999999993588062352500855922698974609375,"alarm":"2026-02-26 09:08:20","dispatched":"2026-02-26 09:09:53","incidentLocationCross":"PARAN POINTE DR\/MIRANDY RD","cADVehicleID":"PCFR","timedispatch":"2026-02-26 09:09:53","policeReportNumber":"20260021284","dispatchNotes":"[EMS] ENTER THRU THE GARAGE  [02\/26\/26 09:08:36 JWOMACK] [EMS] 90 YOF FALL VICTIM BLEEDING FROM THE HEAD  [02\/26\/26 09:08:28 JWOMACK] Event spawned from ELECTRICAL SHOCK.  [02\/26\/2026 09:08:20 KMORGAN2]","cADLog":"[EMS] ENTER THRU THE GARAGE  [02\/26\/26 09:08:36 JWOMACK] [EMS] 90 YOF FALL VICTIM BLEEDING FROM THE HEAD  [02\/26\/26 09:08:28 JWOMACK] Event spawned from ELECTRICAL SHOCK.  [02\/26\/2026 09:08:20 KMORGAN2]","incidentLocationCity":"COOKEVILLE","streetName":"PARAN RD","incidentAddressTextVersionStreet":"2871 PARAN RD","locationCoordinates":"36.24089,-85.43808"}
[2026-02-26 15:10:19] [INFO] Number of extracted fields: 21
[2026-02-26 15:10:19] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-02-26 15:10:19] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-02-26 15:10:19] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-02-26 15:10:19] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-26 15:10:19] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-26 15:10:19] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-02-26 15:10:19] [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-02-26 15:10:19] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-26 15:10:19] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-02-26 15:10:19] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-26 15:10:19] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-26 15:10:19] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-02-26 15:10:52] [INFO] Created new Dispatches record with ID: 69a062733a3a5595c
[2026-02-26 15:10:52] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 15:10:52] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 15:10:56] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 15:10:56] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021284_20260226_150959.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 15:10:56] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 15:38:19] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260021304_20260226_153819.XML
[2026-02-26 15:38:19] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260021304_20260226_153819.XML for user: 68f1466aed072ad4a
[2026-02-26 15:38:19] [INFO] File size: 5724 bytes
[2026-02-26 15:38:19] [INFO] Created FTPFiles record with ID: 69a068eb816aeee0a
[2026-02-26 15:38:19] [INFO] About to extract fields from XML. File size: 5724 bytes
[2026-02-26 15:38:19] [INFO] Number of mappings: 28
[2026-02-26 15:38:19] [INFO] Starting XML parsing. Content length: 5724
[2026-02-26 15:38:19] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 15:38:19] [INFO] Processing 28 field mappings
[2026-02-26 15:38:19] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 15:38:19] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 15:38:19] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-26 15:38:19] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-02-26 15:38:19] [INFO]   -> Found value: AFD
EMS
APD
PCSO
[2026-02-26 15:38:19] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nEMS\nAPD\nPCSO"
[2026-02-26 15:38:19] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 15:38:19] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-02-26 15:38:19] [INFO]   -> Found value: 2026000093
[2026-02-26 15:38:19] [INFO]   -> Set field 'incidentInternalId' = "2026000093"
[2026-02-26 15:38:19] [INFO]   -> Set field 'dispatchRunNumber' = "2026000093"
[2026-02-26 15:38:19] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 15:38:19] [INFO]   -> Found value: SUICIDE ATTEMPT
[2026-02-26 15:38:19] [INFO]   -> Set field 'incidentTypeValue1' = "SUICIDE ATTEMPT"
[2026-02-26 15:38:19] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 15:38:19] [INFO]   -> Found value: 288
[2026-02-26 15:38:19] [INFO]   -> Set field 'incidentLocationStreetNumber' = 288
[2026-02-26 15:38:19] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 15:38:19] [INFO]   -> Found value: TN
[2026-02-26 15:38:19] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 15:38:19] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 15:38:19] [INFO]   -> Found value: 38506
[2026-02-26 15:38:19] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-26 15:38:19] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 15:38:19] [INFO]   -> Found value: WHITE PLAINS ACADEMY
[2026-02-26 15:38:19] [INFO]   -> Set field 'businessName' = "WHITE PLAINS ACADEMY"
[2026-02-26 15:38:19] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 15:38:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:38:19] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 15:38:19] [INFO]   -> Found value: 36.19825
[2026-02-26 15:38:19] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.198250000000001591615728102624416351318359375
[2026-02-26 15:38:19] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 15:38:19] [INFO]   -> Found value: -85.44392
[2026-02-26 15:38:19] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4439200000000056434146245010197162628173828125
[2026-02-26 15:38:19] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 15:38:19] [INFO]   -> Found value: 2026-02-26 09:37:04
[2026-02-26 15:38:19] [INFO]   -> Set field 'alarm' = "2026-02-26 09:37:04"
[2026-02-26 15:38:19] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 15:38:19] [INFO]   -> Found value: 2026-02-26 09:38:13
[2026-02-26 15:38:19] [INFO]   -> Set field 'dispatched' = "2026-02-26 09:38:13"
[2026-02-26 15:38:19] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 15:38:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:38:19] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 15:38:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:38:19] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 15:38:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:38:19] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 15:38:19] [INFO]   -> Found value: HARP AVE/PATTON ST
[2026-02-26 15:38:19] [INFO]   -> Set field 'incidentLocationCross' = "HARP AVE\/PATTON ST"
[2026-02-26 15:38:19] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 15:38:19] [INFO]   -> Found value: AFR
[2026-02-26 15:38:19] [INFO]   -> Set field 'cADVehicleID' = "AFR"
[2026-02-26 15:38:19] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 15:38:19] [INFO]   -> Found value: 2026-02-26 09:38:13
[2026-02-26 15:38:19] [INFO]   -> Set field 'timedispatch' = "2026-02-26 09:38:13"
[2026-02-26 15:38:19] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 15:38:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:38:19] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 15:38:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:38:19] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 15:38:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:38:19] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 15:38:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:38:19] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 15:38:19] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-02-26 15:38:19] [INFO]   -> Found value: 20260021304
[2026-02-26 15:38:19] [INFO]   -> Set field 'policeReportNumber' = "20260021304"
[2026-02-26 15:38:19] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 15:38:19] [INFO]   -> Found value: [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02/26/26 09:38:10 RMAYNARD] [EMS] 13 YOF  [02/26/26 09:38:06...
[2026-02-26 15:38:19] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/26\/26 09:38:10 RMAYNARD] [EMS] 13 YOF  [02\/26\/26 09:38:06 KMORGAN2] [EMS] TOOK THEM BEFORE SCHOOL\/\/APPROX 30MINS AGO  [02\/26\/26 09:37:59 KMORGAN2] [EMS] IN NURSE OFFICE  [02\/26\/26 09:37:44 KMORGAN2] [EMS] BP IS ELEVATED\/\/DIZZY  [02\/26\/26 09:37:22 KMORGAN2] Event spawned from SUICIDE ATTEMPT.  [02\/26\/2026 09:37:04 KMORGAN2] STUDENT TOOK 20 TYLENOL  [02\/26\/26 09:37:00 KMORGAN2]]"
[2026-02-26 15:38:19] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/26\/26 09:38:10 RMAYNARD] [EMS] 13 YOF  [02\/26\/26 09:38:06 KMORGAN2] [EMS] TOOK THEM BEFORE SCHOOL\/\/APPROX 30MINS AGO  [02\/26\/26 09:37:59 KMORGAN2] [EMS] IN NURSE OFFICE  [02\/26\/26 09:37:44 KMORGAN2] [EMS] BP IS ELEVATED\/\/DIZZY  [02\/26\/26 09:37:22 KMORGAN2] Event spawned from SUICIDE ATTEMPT.  [02\/26\/2026 09:37:04 KMORGAN2] STUDENT TOOK 20 TYLENOL  [02\/26\/26 09:37:00 KMORGAN2]]"
[2026-02-26 15:38:19] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 15:38:19] [INFO]   -> Found value: ALGOOD
[2026-02-26 15:38:19] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-02-26 15:38:19] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 15:38:19] [INFO]   -> Found value: MAIN
[2026-02-26 15:38:19] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-02-26 15:38:19] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 15:38:19] [INFO]   -> Found value: ST
[2026-02-26 15:38:19] [INFO]   -> Set field 'streetType' = "ST"
[2026-02-26 15:38:19] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 15:38:19] [INFO]   -> Found value: 288 E MAIN ST
[2026-02-26 15:38:19] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "288 E MAIN ST"
[2026-02-26 15:38:19] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-26 15:38:19] [INFO] Concatenating street name and type
[2026-02-26 15:38:19] [INFO]   -> Combined street name: MAIN ST
[2026-02-26 15:38:19] [INFO] Built locationCoordinates from lat/lng: 36.19825,-85.44392
[2026-02-26 15:38:19] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nEMS\nAPD\nPCSO","incidentInternalId":"2026000093","dispatchRunNumber":"2026000093","incidentTypeValue1":"SUICIDE ATTEMPT","incidentLocationStreetNumber":288,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"WHITE PLAINS ACADEMY","nERISIncidentLatitude":36.198250000000001591615728102624416351318359375,"nERISIncidentLongitude":-85.4439200000000056434146245010197162628173828125,"alarm":"2026-02-26 09:37:04","dispatched":"2026-02-26 09:38:13","incidentLocationCross":"HARP AVE\/PATTON ST","cADVehicleID":"AFR","timedispatch":"2026-02-26 09:38:13","policeReportNumber":"20260021304","dispatchNotes":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/26\/26 09:38:10 RMAYNARD] [EMS] 13 YOF  [02\/26\/26 09:38:06 KMORGAN2] [EMS] TOOK THEM BEFORE SCHOOL\/\/APPROX 30MINS AGO  [02\/26\/26 09:37:59 KMORGAN2] [EMS] IN NURSE OFFICE  [02\/26\/26 09:37:44 KMORGAN2] [EMS] BP IS ELEVATED\/\/DIZZY  [02\/26\/26 09:37:22 KMORGAN2] Event spawned from SUICIDE ATTEMPT.  [02\/26\/2026 09:37:04 KMORGAN2] STUDENT TOOK 20 TYLENOL  [02\/26\/26 09:37:00 KMORGAN2]]","cADLog":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/26\/26 09:38:10 RMAYNARD] [EMS] 13 YOF  [02\/26\/26 09:38:06 KMORGAN2] [EMS] TOOK THEM BEFORE SCHOOL\/\/APPROX 30MINS AGO  [02\/26\/26 09:37:59 KMORGAN2] [EMS] IN NURSE OFFICE  [02\/26\/26 09:37:44 KMORGAN2] [EMS] BP IS ELEVATED\/\/DIZZY  [02\/26\/26 09:37:22 KMORGAN2] Event spawned from SUICIDE ATTEMPT.  [02\/26\/2026 09:37:04 KMORGAN2] STUDENT TOOK 20 TYLENOL  [02\/26\/26 09:37:00 KMORGAN2]]","incidentLocationCity":"ALGOOD","streetName":"MAIN ST","incidentAddressTextVersionStreet":"288 E MAIN ST","locationCoordinates":"36.19825,-85.44392"}
[2026-02-26 15:38:19] [INFO] Number of extracted fields: 22
[2026-02-26 15:38:19] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
EMS
APD
PCSO'
[2026-02-26 15:38:19] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
EMS
APD
PCSO', Parsed IDs = ["AFD","EMS","APD","PCSO"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-02-26 15:38:19] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","EMS","APD","PCSO"]
[2026-02-26 15:38:19] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-02-26 15:38:19] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-02-26 15:38:19] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","APD","PCSO"]
[2026-02-26 15:38:19] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-02-26 15:38:19] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-02-26 15:38:19] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-02-26 15:38:19] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-02-26 15:38:20] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-02-26 15:38:20] [INFO] Created new IncidentTypeMapping Data: {"cADIncidentType":"SUICIDE ATTEMPT","saasclientId":"68910627445d6e167","name":"SUICIDE ATTEMPT"}
[2026-02-26 15:38:20] [INFO] Created new IncidentTypeMapping with ID: 69a068ec60123c045
[2026-02-26 15:38:25] [INFO] Created new Dispatches record with ID: 69a068ecc4cfc679b
[2026-02-26 15:38:25] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 15:38:25] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 15:38:29] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 15:38:29] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260021304_20260226_153819.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 15:38:29] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 15:42:19] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021307_20260226_154219.XML
[2026-02-26 15:42:19] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021307_20260226_154219.XML for user: 68f1466aed072ad4a
[2026-02-26 15:42:19] [INFO] File size: 4747 bytes
[2026-02-26 15:42:19] [INFO] Created FTPFiles record with ID: 69a069dba61ab7e8e
[2026-02-26 15:42:19] [INFO] About to extract fields from XML. File size: 4747 bytes
[2026-02-26 15:42:19] [INFO] Number of mappings: 28
[2026-02-26 15:42:19] [INFO] Starting XML parsing. Content length: 4747
[2026-02-26 15:42:19] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 15:42:19] [INFO] Processing 28 field mappings
[2026-02-26 15:42:19] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 15:42:19] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 15:42:19] [INFO]   -> Found value: BFD
[2026-02-26 15:42:19] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD"
[2026-02-26 15:42:19] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 15:42:19] [INFO]   -> Found value: 2026000062
[2026-02-26 15:42:19] [INFO]   -> Set field 'incidentInternalId' = "2026000062"
[2026-02-26 15:42:19] [INFO]   -> Set field 'dispatchRunNumber' = "2026000062"
[2026-02-26 15:42:19] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 15:42:19] [INFO]   -> Found value: FIRE ALARM
[2026-02-26 15:42:19] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-02-26 15:42:19] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 15:42:19] [INFO]   -> Found value: 125
[2026-02-26 15:42:19] [INFO]   -> Set field 'incidentLocationStreetNumber' = 125
[2026-02-26 15:42:19] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 15:42:19] [INFO]   -> Found value: TN
[2026-02-26 15:42:19] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 15:42:19] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 15:42:19] [INFO]   -> Found value: 38544
[2026-02-26 15:42:19] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-02-26 15:42:19] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 15:42:19] [INFO]   -> Found value: BAXTER PRIMARY SCHOOL
[2026-02-26 15:42:19] [INFO]   -> Set field 'businessName' = "BAXTER PRIMARY SCHOOL"
[2026-02-26 15:42:19] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 15:42:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:42:19] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 15:42:19] [INFO]   -> Found value: 36.15180
[2026-02-26 15:42:19] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.15180000000000148929757415316998958587646484375
[2026-02-26 15:42:19] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 15:42:19] [INFO]   -> Found value: -85.64286
[2026-02-26 15:42:19] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6428599999999988767740433104336261749267578125
[2026-02-26 15:42:19] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 15:42:19] [INFO]   -> Found value: 2026-02-26 09:41:22
[2026-02-26 15:42:19] [INFO]   -> Set field 'alarm' = "2026-02-26 09:41:22"
[2026-02-26 15:42:19] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 15:42:19] [INFO]   -> Found value: 2026-02-26 09:42:05
[2026-02-26 15:42:19] [INFO]   -> Set field 'dispatched' = "2026-02-26 09:42:05"
[2026-02-26 15:42:19] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 15:42:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:42:19] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 15:42:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:42:19] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 15:42:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:42:19] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 15:42:19] [INFO]   -> Found value: FIRST AVE S/COW PALACE DR
[2026-02-26 15:42:19] [INFO]   -> Set field 'incidentLocationCross' = "FIRST AVE S\/COW PALACE DR"
[2026-02-26 15:42:19] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 15:42:19] [INFO]   -> Found value: BEN2
[2026-02-26 15:42:19] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-02-26 15:42:19] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 15:42:19] [INFO]   -> Found value: 2026-02-26 09:42:05
[2026-02-26 15:42:19] [INFO]   -> Set field 'timedispatch' = "2026-02-26 09:42:05"
[2026-02-26 15:42:19] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 15:42:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:42:19] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 15:42:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:42:19] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 15:42:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:42:19] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 15:42:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:42:19] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 15:42:19] [INFO]   -> Found value: 20260021307
[2026-02-26 15:42:19] [INFO]   -> Set field 'policeReportNumber' = "20260021307"
[2026-02-26 15:42:19] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 15:42:19] [INFO]   -> Found value: ZONE 15/GENERAL  [02/26/26 09:41:56 KMORGAN2]
[2026-02-26 15:42:19] [INFO]   -> Set field 'dispatchNotes' = "ZONE 15\/GENERAL  [02\/26\/26 09:41:56 KMORGAN2]"
[2026-02-26 15:42:19] [INFO]   -> Set field 'cADLog' = "ZONE 15\/GENERAL  [02\/26\/26 09:41:56 KMORGAN2]"
[2026-02-26 15:42:19] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 15:42:19] [INFO]   -> Found value: BAXTER
[2026-02-26 15:42:19] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-02-26 15:42:19] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 15:42:19] [INFO]   -> Found value: ELMORE TOWN
[2026-02-26 15:42:19] [INFO]   -> Set field 'streetName' = "ELMORE TOWN"
[2026-02-26 15:42:19] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 15:42:19] [INFO]   -> Found value: RD
[2026-02-26 15:42:19] [INFO]   -> Set field 'streetType' = "RD"
[2026-02-26 15:42:19] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 15:42:19] [INFO]   -> Found value: 125 ELMORE TOWN RD
[2026-02-26 15:42:19] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "125 ELMORE TOWN RD"
[2026-02-26 15:42:19] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-26 15:42:19] [INFO] Concatenating street name and type
[2026-02-26 15:42:19] [INFO]   -> Combined street name: ELMORE TOWN RD
[2026-02-26 15:42:19] [INFO] Built locationCoordinates from lat/lng: 36.1518,-85.64286
[2026-02-26 15:42:19] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD","incidentInternalId":"2026000062","dispatchRunNumber":"2026000062","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":125,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"businessName":"BAXTER PRIMARY SCHOOL","nERISIncidentLatitude":36.15180000000000148929757415316998958587646484375,"nERISIncidentLongitude":-85.6428599999999988767740433104336261749267578125,"alarm":"2026-02-26 09:41:22","dispatched":"2026-02-26 09:42:05","incidentLocationCross":"FIRST AVE S\/COW PALACE DR","cADVehicleID":"BEN2","timedispatch":"2026-02-26 09:42:05","policeReportNumber":"20260021307","dispatchNotes":"ZONE 15\/GENERAL  [02\/26\/26 09:41:56 KMORGAN2]","cADLog":"ZONE 15\/GENERAL  [02\/26\/26 09:41:56 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"ELMORE TOWN RD","incidentAddressTextVersionStreet":"125 ELMORE TOWN RD","locationCoordinates":"36.1518,-85.64286"}
[2026-02-26 15:42:19] [INFO] Number of extracted fields: 22
[2026-02-26 15:42:19] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD'
[2026-02-26 15:42:19] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD', Parsed IDs = ["BFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-02-26 15:42:19] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD"]
[2026-02-26 15:42:19] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-02-26 15:42:19] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-02-26 15:42:20] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-02-26 15:42:20] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-02-26 15:42:20] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-02-26 15:42:20] [INFO] Found existing IncidentTypeMapping with ID: 6945b6ed5a589dbb8
[2026-02-26 15:42:23] [INFO] Created new Dispatches record with ID: 69a069dca4eef3283
[2026-02-26 15:42:23] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 15:42:23] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 15:42:27] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 15:42:27] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021307_20260226_154219.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 15:42:27] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 15:57:19] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021317_20260226_155719.XML
[2026-02-26 15:57:19] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021317_20260226_155719.XML for user: 68f1466aed072ad4a
[2026-02-26 15:57:19] [INFO] File size: 5908 bytes
[2026-02-26 15:57:19] [INFO] Created FTPFiles record with ID: 69a06d5fbb61ed0f6
[2026-02-26 15:57:19] [INFO] About to extract fields from XML. File size: 5908 bytes
[2026-02-26 15:57:19] [INFO] Number of mappings: 28
[2026-02-26 15:57:19] [INFO] Starting XML parsing. Content length: 5908
[2026-02-26 15:57:19] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 15:57:19] [INFO] Processing 28 field mappings
[2026-02-26 15:57:19] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 15:57:19] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 15:57:19] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-26 15:57:19] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-02-26 15:57:19] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-02-26 15:57:19] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-02-26 15:57:19] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 15:57:19] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-02-26 15:57:19] [INFO]   -> Found value: 2026000535
[2026-02-26 15:57:19] [INFO]   -> Set field 'incidentInternalId' = "2026000535"
[2026-02-26 15:57:19] [INFO]   -> Set field 'dispatchRunNumber' = "2026000535"
[2026-02-26 15:57:19] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 15:57:19] [INFO]   -> Found value: MVC WITH INJURY
[2026-02-26 15:57:19] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-02-26 15:57:19] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 15:57:19] [INFO]   -> Found value: 23453
[2026-02-26 15:57:19] [INFO]   -> Set field 'incidentLocationStreetNumber' = 23453
[2026-02-26 15:57:19] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 15:57:19] [INFO]   -> Found value: TN
[2026-02-26 15:57:19] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 15:57:19] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 15:57:19] [INFO]   -> Found value: 38574
[2026-02-26 15:57:19] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-26 15:57:19] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 15:57:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:57:19] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 15:57:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:57:19] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 15:57:19] [INFO]   -> Found value: 36.13251
[2026-02-26 15:57:19] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.13251000000000345835360349155962467193603515625
[2026-02-26 15:57:19] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 15:57:19] [INFO]   -> Found value: -85.11803
[2026-02-26 15:57:19] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.118030000000004520188667811453342437744140625
[2026-02-26 15:57:19] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 15:57:19] [INFO]   -> Found value: 2026-02-26 09:55:50
[2026-02-26 15:57:19] [INFO]   -> Set field 'alarm' = "2026-02-26 09:55:50"
[2026-02-26 15:57:19] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 15:57:19] [INFO]   -> Found value: 2026-02-26 09:57:16
[2026-02-26 15:57:19] [INFO]   -> Set field 'dispatched' = "2026-02-26 09:57:16"
[2026-02-26 15:57:19] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 15:57:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:57:19] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 15:57:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:57:19] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 15:57:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:57:19] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 15:57:19] [INFO]   -> Found value: PINEY LAKE DR/ELMORE RD
[2026-02-26 15:57:19] [INFO]   -> Set field 'incidentLocationCross' = "PINEY LAKE DR\/ELMORE RD"
[2026-02-26 15:57:19] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 15:57:19] [INFO]   -> Found value: EN21
[2026-02-26 15:57:19] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-02-26 15:57:19] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 15:57:19] [INFO]   -> Found value: 2026-02-26 09:57:16
[2026-02-26 15:57:19] [INFO]   -> Set field 'timedispatch' = "2026-02-26 09:57:16"
[2026-02-26 15:57:19] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 15:57:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:57:19] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 15:57:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:57:19] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 15:57:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:57:19] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 15:57:19] [INFO]   -> No value found (null or empty)
[2026-02-26 15:57:19] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 15:57:19] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-02-26 15:57:19] [INFO]   -> Found value: 20260021317
[2026-02-26 15:57:19] [INFO]   -> Set field 'policeReportNumber' = "20260021317"
[2026-02-26 15:57:19] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 15:57:19] [INFO]   -> Found value: [EMS] 17 YOM PATIENT BLEEDING FROM THE NOSE  [02/26/26 09:57:10 JWOMACK] UNKNOWN INJURY OR OCCUPANTS...
[2026-02-26 15:57:19] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 17 YOM PATIENT BLEEDING FROM THE NOSE  [02\/26\/26 09:57:10 JWOMACK] UNKNOWN INJURY OR OCCUPANTS AT THIS TIME `  [02\/26\/26 09:56:31 KBURTON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/26\/26 09:56:03 SBALLARD] Event spawned from MVC WITH INJURY.  [02\/26\/2026 09:55:50 KBURTON] SINGLE CAR MVC  OFF RD WAY INTO PINE TREES  ON ALL 4S AT THIS TIME  SEEN ON PERSON EXIT THE VEH  [02\/26\/26 09:55:30 KBURTON]"
[2026-02-26 15:57:19] [INFO]   -> Set field 'cADLog' = "[EMS] 17 YOM PATIENT BLEEDING FROM THE NOSE  [02\/26\/26 09:57:10 JWOMACK] UNKNOWN INJURY OR OCCUPANTS AT THIS TIME `  [02\/26\/26 09:56:31 KBURTON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/26\/26 09:56:03 SBALLARD] Event spawned from MVC WITH INJURY.  [02\/26\/2026 09:55:50 KBURTON] SINGLE CAR MVC  OFF RD WAY INTO PINE TREES  ON ALL 4S AT THIS TIME  SEEN ON PERSON EXIT THE VEH  [02\/26\/26 09:55:30 KBURTON]"
[2026-02-26 15:57:19] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 15:57:19] [INFO]   -> Found value: MONTEREY
[2026-02-26 15:57:19] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-26 15:57:19] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 15:57:19] [INFO]   -> Found value: CLARKRANGE
[2026-02-26 15:57:19] [INFO]   -> Set field 'streetName' = "CLARKRANGE"
[2026-02-26 15:57:19] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 15:57:19] [INFO]   -> Found value: HWY
[2026-02-26 15:57:19] [INFO]   -> Set field 'streetType' = "HWY"
[2026-02-26 15:57:19] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 15:57:19] [INFO]   -> Found value: 23453 CLARKRANGE HWY
[2026-02-26 15:57:19] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "23453 CLARKRANGE HWY"
[2026-02-26 15:57:19] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-26 15:57:19] [INFO] Concatenating street name and type
[2026-02-26 15:57:19] [INFO]   -> Combined street name: CLARKRANGE HWY
[2026-02-26 15:57:19] [INFO] Built locationCoordinates from lat/lng: 36.13251,-85.11803
[2026-02-26 15:57:19] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000535","dispatchRunNumber":"2026000535","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":23453,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.13251000000000345835360349155962467193603515625,"nERISIncidentLongitude":-85.118030000000004520188667811453342437744140625,"alarm":"2026-02-26 09:55:50","dispatched":"2026-02-26 09:57:16","incidentLocationCross":"PINEY LAKE DR\/ELMORE RD","cADVehicleID":"EN21","timedispatch":"2026-02-26 09:57:16","policeReportNumber":"20260021317","dispatchNotes":"[EMS] 17 YOM PATIENT BLEEDING FROM THE NOSE  [02\/26\/26 09:57:10 JWOMACK] UNKNOWN INJURY OR OCCUPANTS AT THIS TIME `  [02\/26\/26 09:56:31 KBURTON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/26\/26 09:56:03 SBALLARD] Event spawned from MVC WITH INJURY.  [02\/26\/2026 09:55:50 KBURTON] SINGLE CAR MVC  OFF RD WAY INTO PINE TREES  ON ALL 4S AT THIS TIME  SEEN ON PERSON EXIT THE VEH  [02\/26\/26 09:55:30 KBURTON]","cADLog":"[EMS] 17 YOM PATIENT BLEEDING FROM THE NOSE  [02\/26\/26 09:57:10 JWOMACK] UNKNOWN INJURY OR OCCUPANTS AT THIS TIME `  [02\/26\/26 09:56:31 KBURTON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/26\/26 09:56:03 SBALLARD] Event spawned from MVC WITH INJURY.  [02\/26\/2026 09:55:50 KBURTON] SINGLE CAR MVC  OFF RD WAY INTO PINE TREES  ON ALL 4S AT THIS TIME  SEEN ON PERSON EXIT THE VEH  [02\/26\/26 09:55:30 KBURTON]","incidentLocationCity":"MONTEREY","streetName":"CLARKRANGE HWY","incidentAddressTextVersionStreet":"23453 CLARKRANGE HWY","locationCoordinates":"36.13251,-85.11803"}
[2026-02-26 15:57:19] [INFO] Number of extracted fields: 21
[2026-02-26 15:57:19] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-02-26 15:57:19] [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-02-26 15:57:19] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-02-26 15:57:19] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-26 15:57:20] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-26 15:57:20] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-02-26 15:57:20] [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-02-26 15:57:20] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-26 15:57:20] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-02-26 15:57:20] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-26 15:57:20] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-26 15:57:20] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-02-26 15:57:30] [INFO] Created new Dispatches record with ID: 69a06d60a9d11a9c1
[2026-02-26 15:57:30] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 15:57:30] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 15:57:34] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 15:57:34] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021317_20260226_155719.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 15:57:34] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 16:36:09] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021341_20260226_163609.XML
[2026-02-26 16:36:09] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021341_20260226_163609.XML for user: 68f1466aed072ad4a
[2026-02-26 16:36:09] [INFO] File size: 4641 bytes
[2026-02-26 16:36:09] [INFO] Created FTPFiles record with ID: 69a07679e0df3fd31
[2026-02-26 16:36:09] [INFO] About to extract fields from XML. File size: 4641 bytes
[2026-02-26 16:36:09] [INFO] Number of mappings: 28
[2026-02-26 16:36:09] [INFO] Starting XML parsing. Content length: 4641
[2026-02-26 16:36:09] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 16:36:09] [INFO] Processing 28 field mappings
[2026-02-26 16:36:09] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 16:36:09] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 16:36:09] [INFO]   -> Found value: PCFD
[2026-02-26 16:36:09] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-02-26 16:36:09] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 16:36:09] [INFO]   -> Found value: 2026000536
[2026-02-26 16:36:09] [INFO]   -> Set field 'incidentInternalId' = "2026000536"
[2026-02-26 16:36:09] [INFO]   -> Set field 'dispatchRunNumber' = "2026000536"
[2026-02-26 16:36:09] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 16:36:09] [INFO]   -> Found value: FIRE ALARM
[2026-02-26 16:36:09] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-02-26 16:36:09] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 16:36:09] [INFO]   -> Found value: 1565
[2026-02-26 16:36:09] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1565
[2026-02-26 16:36:09] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 16:36:09] [INFO]   -> Found value: TN
[2026-02-26 16:36:09] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 16:36:09] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 16:36:09] [INFO]   -> Found value: 38506
[2026-02-26 16:36:09] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-26 16:36:09] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 16:36:09] [INFO]   -> No value found (null or empty)
[2026-02-26 16:36:09] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 16:36:09] [INFO]   -> No value found (null or empty)
[2026-02-26 16:36:09] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 16:36:09] [INFO]   -> Found value: 36.18125
[2026-02-26 16:36:09] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18124999999999857891452847979962825775146484375
[2026-02-26 16:36:09] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 16:36:09] [INFO]   -> Found value: -85.42774
[2026-02-26 16:36:09] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.427740000000000009094947017729282379150390625
[2026-02-26 16:36:09] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 16:36:09] [INFO]   -> Found value: 2026-02-26 10:34:22
[2026-02-26 16:36:09] [INFO]   -> Set field 'alarm' = "2026-02-26 10:34:22"
[2026-02-26 16:36:09] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 16:36:09] [INFO]   -> Found value: 2026-02-26 10:35:59
[2026-02-26 16:36:09] [INFO]   -> Set field 'dispatched' = "2026-02-26 10:35:59"
[2026-02-26 16:36:09] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 16:36:09] [INFO]   -> No value found (null or empty)
[2026-02-26 16:36:09] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 16:36:09] [INFO]   -> No value found (null or empty)
[2026-02-26 16:36:09] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 16:36:09] [INFO]   -> No value found (null or empty)
[2026-02-26 16:36:09] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 16:36:09] [INFO]   -> Found value: AUGUSTE CIR/PLANTATION DR
[2026-02-26 16:36:09] [INFO]   -> Set field 'incidentLocationCross' = "AUGUSTE CIR\/PLANTATION DR"
[2026-02-26 16:36:09] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 16:36:09] [INFO]   -> Found value: TK15
[2026-02-26 16:36:09] [INFO]   -> Set field 'cADVehicleID' = "TK15"
[2026-02-26 16:36:09] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 16:36:09] [INFO]   -> Found value: 2026-02-26 10:35:59
[2026-02-26 16:36:09] [INFO]   -> Set field 'timedispatch' = "2026-02-26 10:35:59"
[2026-02-26 16:36:09] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 16:36:09] [INFO]   -> No value found (null or empty)
[2026-02-26 16:36:09] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 16:36:09] [INFO]   -> No value found (null or empty)
[2026-02-26 16:36:09] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 16:36:09] [INFO]   -> No value found (null or empty)
[2026-02-26 16:36:09] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 16:36:09] [INFO]   -> No value found (null or empty)
[2026-02-26 16:36:09] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 16:36:09] [INFO]   -> Found value: 20260021341
[2026-02-26 16:36:09] [INFO]   -> Set field 'policeReportNumber' = "20260021341"
[2026-02-26 16:36:09] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 16:36:09] [INFO]   -> Found value: FURNACE CO ZONE 013  [02/26/26 10:35:39 KMORGAN2]
[2026-02-26 16:36:09] [INFO]   -> Set field 'dispatchNotes' = "FURNACE CO ZONE 013  [02\/26\/26 10:35:39 KMORGAN2]"
[2026-02-26 16:36:09] [INFO]   -> Set field 'cADLog' = "FURNACE CO ZONE 013  [02\/26\/26 10:35:39 KMORGAN2]"
[2026-02-26 16:36:09] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 16:36:09] [INFO]   -> Found value: COOKEVILLE
[2026-02-26 16:36:09] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-02-26 16:36:09] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 16:36:09] [INFO]   -> Found value: PLANTATION
[2026-02-26 16:36:09] [INFO]   -> Set field 'streetName' = "PLANTATION"
[2026-02-26 16:36:09] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 16:36:09] [INFO]   -> Found value: DR
[2026-02-26 16:36:09] [INFO]   -> Set field 'streetType' = "DR"
[2026-02-26 16:36:09] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 16:36:09] [INFO]   -> Found value: 1565 N PLANTATION DR
[2026-02-26 16:36:09] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1565 N PLANTATION DR"
[2026-02-26 16:36:09] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-26 16:36:09] [INFO] Concatenating street name and type
[2026-02-26 16:36:09] [INFO]   -> Combined street name: PLANTATION DR
[2026-02-26 16:36:09] [INFO] Built locationCoordinates from lat/lng: 36.18125,-85.42774
[2026-02-26 16:36:09] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000536","dispatchRunNumber":"2026000536","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":1565,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.18124999999999857891452847979962825775146484375,"nERISIncidentLongitude":-85.427740000000000009094947017729282379150390625,"alarm":"2026-02-26 10:34:22","dispatched":"2026-02-26 10:35:59","incidentLocationCross":"AUGUSTE CIR\/PLANTATION DR","cADVehicleID":"TK15","timedispatch":"2026-02-26 10:35:59","policeReportNumber":"20260021341","dispatchNotes":"FURNACE CO ZONE 013  [02\/26\/26 10:35:39 KMORGAN2]","cADLog":"FURNACE CO ZONE 013  [02\/26\/26 10:35:39 KMORGAN2]","incidentLocationCity":"COOKEVILLE","streetName":"PLANTATION DR","incidentAddressTextVersionStreet":"1565 N PLANTATION DR","locationCoordinates":"36.18125,-85.42774"}
[2026-02-26 16:36:09] [INFO] Number of extracted fields: 21
[2026-02-26 16:36:09] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-02-26 16:36:09] [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-02-26 16:36:09] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-02-26 16:36:09] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-26 16:36:10] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-26 16:36:10] [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-02-26 16:36:10] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-26 16:36:10] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-26 16:36:10] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-02-26 16:36:20] [INFO] Created new Dispatches record with ID: 69a0767af1fa0c483
[2026-02-26 16:36:20] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 16:36:20] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 16:36:24] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 16:36:24] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021341_20260226_163609.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 16:36:24] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 16:38:49] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021344_20260226_163849.XML
[2026-02-26 16:38:49] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021344_20260226_163849.XML for user: 68f1466aed072ad4a
[2026-02-26 16:38:49] [INFO] File size: 5297 bytes
[2026-02-26 16:38:49] [INFO] Created FTPFiles record with ID: 69a07719d6458d3e8
[2026-02-26 16:38:49] [INFO] About to extract fields from XML. File size: 5297 bytes
[2026-02-26 16:38:49] [INFO] Number of mappings: 28
[2026-02-26 16:38:49] [INFO] Starting XML parsing. Content length: 5297
[2026-02-26 16:38:49] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 16:38:49] [INFO] Processing 28 field mappings
[2026-02-26 16:38:49] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 16:38:49] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 16:38:49] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-26 16:38:49] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-02-26 16:38:49] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-02-26 16:38:49] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-02-26 16:38:49] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 16:38:49] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-02-26 16:38:49] [INFO]   -> Found value: 2026000537
[2026-02-26 16:38:49] [INFO]   -> Set field 'incidentInternalId' = "2026000537"
[2026-02-26 16:38:49] [INFO]   -> Set field 'dispatchRunNumber' = "2026000537"
[2026-02-26 16:38:49] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 16:38:49] [INFO]   -> Found value: FALL VICTIM
[2026-02-26 16:38:49] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-02-26 16:38:49] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 16:38:49] [INFO]   -> Found value: 2401
[2026-02-26 16:38:49] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2401
[2026-02-26 16:38:49] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 16:38:49] [INFO]   -> Found value: TN
[2026-02-26 16:38:49] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 16:38:49] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 16:38:49] [INFO]   -> Found value: 38506
[2026-02-26 16:38:49] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-26 16:38:49] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 16:38:49] [INFO]   -> No value found (null or empty)
[2026-02-26 16:38:49] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 16:38:49] [INFO]   -> No value found (null or empty)
[2026-02-26 16:38:49] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 16:38:49] [INFO]   -> Found value: 36.13383
[2026-02-26 16:38:49] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1338300000000032241587177850306034088134765625
[2026-02-26 16:38:49] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 16:38:49] [INFO]   -> Found value: -85.44296
[2026-02-26 16:38:49] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.442959999999999354258761741220951080322265625
[2026-02-26 16:38:49] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 16:38:49] [INFO]   -> Found value: 2026-02-26 10:38:04
[2026-02-26 16:38:49] [INFO]   -> Set field 'alarm' = "2026-02-26 10:38:04"
[2026-02-26 16:38:49] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 16:38:49] [INFO]   -> Found value: 2026-02-26 10:38:45
[2026-02-26 16:38:49] [INFO]   -> Set field 'dispatched' = "2026-02-26 10:38:45"
[2026-02-26 16:38:49] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 16:38:49] [INFO]   -> No value found (null or empty)
[2026-02-26 16:38:49] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 16:38:49] [INFO]   -> No value found (null or empty)
[2026-02-26 16:38:49] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 16:38:49] [INFO]   -> No value found (null or empty)
[2026-02-26 16:38:49] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 16:38:49] [INFO]   -> Found value: STAFFORD DR/DIETZ DR
[2026-02-26 16:38:49] [INFO]   -> Set field 'incidentLocationCross' = "STAFFORD DR\/DIETZ DR"
[2026-02-26 16:38:49] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 16:38:49] [INFO]   -> Found value: PCFR
[2026-02-26 16:38:49] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-26 16:38:49] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 16:38:49] [INFO]   -> Found value: 2026-02-26 10:38:45
[2026-02-26 16:38:49] [INFO]   -> Set field 'timedispatch' = "2026-02-26 10:38:45"
[2026-02-26 16:38:49] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 16:38:49] [INFO]   -> No value found (null or empty)
[2026-02-26 16:38:49] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 16:38:49] [INFO]   -> No value found (null or empty)
[2026-02-26 16:38:49] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 16:38:49] [INFO]   -> No value found (null or empty)
[2026-02-26 16:38:49] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 16:38:49] [INFO]   -> No value found (null or empty)
[2026-02-26 16:38:49] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 16:38:49] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-02-26 16:38:49] [INFO]   -> Found value: 20260021344
[2026-02-26 16:38:49] [INFO]   -> Set field 'policeReportNumber' = "20260021344"
[2026-02-26 16:38:49] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 16:38:49] [INFO]   -> Found value: [EMS] UNK INJURIES  [02/26/26 10:38:12 KMORGAN2] Event spawned from FALL VICTIM.  [02/26/2026 10:38:...
[2026-02-26 16:38:49] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UNK INJURIES  [02\/26\/26 10:38:12 KMORGAN2] Event spawned from FALL VICTIM.  [02\/26\/2026 10:38:04 KMORGAN2] 60 YOF RECENT SURGERY  FELL GETTING OUT OF SHOWER  [02\/26\/26 10:38:01 KMORGAN2]]"
[2026-02-26 16:38:49] [INFO]   -> Set field 'cADLog' = "[EMS] UNK INJURIES  [02\/26\/26 10:38:12 KMORGAN2] Event spawned from FALL VICTIM.  [02\/26\/2026 10:38:04 KMORGAN2] 60 YOF RECENT SURGERY  FELL GETTING OUT OF SHOWER  [02\/26\/26 10:38:01 KMORGAN2]]"
[2026-02-26 16:38:49] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 16:38:49] [INFO]   -> Found value: COOKEVILLE
[2026-02-26 16:38:49] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-02-26 16:38:49] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 16:38:49] [INFO]   -> Found value: POPLAR SPRINGS
[2026-02-26 16:38:49] [INFO]   -> Set field 'streetName' = "POPLAR SPRINGS"
[2026-02-26 16:38:49] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 16:38:49] [INFO]   -> Found value: RD
[2026-02-26 16:38:49] [INFO]   -> Set field 'streetType' = "RD"
[2026-02-26 16:38:49] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 16:38:49] [INFO]   -> Found value: 2401 POPLAR SPRINGS RD
[2026-02-26 16:38:49] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2401 POPLAR SPRINGS RD"
[2026-02-26 16:38:49] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-26 16:38:49] [INFO] Concatenating street name and type
[2026-02-26 16:38:49] [INFO]   -> Combined street name: POPLAR SPRINGS RD
[2026-02-26 16:38:49] [INFO] Built locationCoordinates from lat/lng: 36.13383,-85.44296
[2026-02-26 16:38:49] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000537","dispatchRunNumber":"2026000537","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":2401,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.1338300000000032241587177850306034088134765625,"nERISIncidentLongitude":-85.442959999999999354258761741220951080322265625,"alarm":"2026-02-26 10:38:04","dispatched":"2026-02-26 10:38:45","incidentLocationCross":"STAFFORD DR\/DIETZ DR","cADVehicleID":"PCFR","timedispatch":"2026-02-26 10:38:45","policeReportNumber":"20260021344","dispatchNotes":"[EMS] UNK INJURIES  [02\/26\/26 10:38:12 KMORGAN2] Event spawned from FALL VICTIM.  [02\/26\/2026 10:38:04 KMORGAN2] 60 YOF RECENT SURGERY  FELL GETTING OUT OF SHOWER  [02\/26\/26 10:38:01 KMORGAN2]]","cADLog":"[EMS] UNK INJURIES  [02\/26\/26 10:38:12 KMORGAN2] Event spawned from FALL VICTIM.  [02\/26\/2026 10:38:04 KMORGAN2] 60 YOF RECENT SURGERY  FELL GETTING OUT OF SHOWER  [02\/26\/26 10:38:01 KMORGAN2]]","incidentLocationCity":"COOKEVILLE","streetName":"POPLAR SPRINGS RD","incidentAddressTextVersionStreet":"2401 POPLAR SPRINGS RD","locationCoordinates":"36.13383,-85.44296"}
[2026-02-26 16:38:49] [INFO] Number of extracted fields: 21
[2026-02-26 16:38:49] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-02-26 16:38:49] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-02-26 16:38:49] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-02-26 16:38:49] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-26 16:39:14] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-26 16:39:14] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-02-26 16:39:14] [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-02-26 16:39:14] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-26 16:39:14] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-02-26 16:39:14] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-26 16:39:14] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-26 16:39:14] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-02-26 16:39:23] [INFO] Created new Dispatches record with ID: 69a07732ce8191502
[2026-02-26 16:39:23] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 16:39:23] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 16:39:27] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 16:39:27] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021344_20260226_163849.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 16:39:27] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 17:51:29] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021386_20260226_175129.XML
[2026-02-26 17:51:29] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021386_20260226_175129.XML for user: 68f1466aed072ad4a
[2026-02-26 17:51:29] [INFO] File size: 4628 bytes
[2026-02-26 17:51:29] [INFO] Created FTPFiles record with ID: 69a08821aa9ef1c96
[2026-02-26 17:51:29] [INFO] About to extract fields from XML. File size: 4628 bytes
[2026-02-26 17:51:29] [INFO] Number of mappings: 28
[2026-02-26 17:51:29] [INFO] Starting XML parsing. Content length: 4628
[2026-02-26 17:51:29] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 17:51:29] [INFO] Processing 28 field mappings
[2026-02-26 17:51:29] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 17:51:29] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 17:51:29] [INFO]   -> Found value: BFD
[2026-02-26 17:51:29] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD"
[2026-02-26 17:51:29] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 17:51:29] [INFO]   -> Found value: 2026000063
[2026-02-26 17:51:29] [INFO]   -> Set field 'incidentInternalId' = "2026000063"
[2026-02-26 17:51:29] [INFO]   -> Set field 'dispatchRunNumber' = "2026000063"
[2026-02-26 17:51:29] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 17:51:29] [INFO]   -> Found value: FIRE ALARM
[2026-02-26 17:51:29] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-02-26 17:51:29] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 17:51:29] [INFO]   -> Found value: 200
[2026-02-26 17:51:29] [INFO]   -> Set field 'incidentLocationStreetNumber' = 200
[2026-02-26 17:51:29] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 17:51:29] [INFO]   -> Found value: TN
[2026-02-26 17:51:29] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 17:51:29] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 17:51:29] [INFO]   -> Found value: 38544
[2026-02-26 17:51:29] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-02-26 17:51:29] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 17:51:29] [INFO]   -> Found value: BAXTER CITY HALL
[2026-02-26 17:51:29] [INFO]   -> Set field 'businessName' = "BAXTER CITY HALL"
[2026-02-26 17:51:29] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 17:51:29] [INFO]   -> No value found (null or empty)
[2026-02-26 17:51:29] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 17:51:29] [INFO]   -> Found value: 36.15464
[2026-02-26 17:51:29] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.154640000000000554791768081486225128173828125
[2026-02-26 17:51:29] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 17:51:29] [INFO]   -> Found value: -85.64256
[2026-02-26 17:51:29] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.642560000000003128661774098873138427734375
[2026-02-26 17:51:29] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 17:51:29] [INFO]   -> Found value: 2026-02-26 11:50:43
[2026-02-26 17:51:29] [INFO]   -> Set field 'alarm' = "2026-02-26 11:50:43"
[2026-02-26 17:51:29] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 17:51:29] [INFO]   -> Found value: 2026-02-26 11:51:22
[2026-02-26 17:51:29] [INFO]   -> Set field 'dispatched' = "2026-02-26 11:51:22"
[2026-02-26 17:51:29] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 17:51:29] [INFO]   -> No value found (null or empty)
[2026-02-26 17:51:29] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 17:51:29] [INFO]   -> No value found (null or empty)
[2026-02-26 17:51:29] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 17:51:29] [INFO]   -> No value found (null or empty)
[2026-02-26 17:51:29] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 17:51:29] [INFO]   -> Found value: /THIRD AVE N
[2026-02-26 17:51:29] [INFO]   -> Set field 'incidentLocationCross' = "\/THIRD AVE N"
[2026-02-26 17:51:29] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 17:51:29] [INFO]   -> Found value: BEN2
[2026-02-26 17:51:29] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-02-26 17:51:29] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 17:51:29] [INFO]   -> Found value: 2026-02-26 11:51:22
[2026-02-26 17:51:29] [INFO]   -> Set field 'timedispatch' = "2026-02-26 11:51:22"
[2026-02-26 17:51:29] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 17:51:29] [INFO]   -> No value found (null or empty)
[2026-02-26 17:51:29] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 17:51:29] [INFO]   -> No value found (null or empty)
[2026-02-26 17:51:29] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 17:51:29] [INFO]   -> No value found (null or empty)
[2026-02-26 17:51:29] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 17:51:29] [INFO]   -> No value found (null or empty)
[2026-02-26 17:51:29] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 17:51:29] [INFO]   -> Found value: 20260021386
[2026-02-26 17:51:29] [INFO]   -> Set field 'policeReportNumber' = "20260021386"
[2026-02-26 17:51:29] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 17:51:29] [INFO]   -> Found value: ZONE FIRE SMOKE 009  [02/26/26 11:51:15 KMORGAN2]
[2026-02-26 17:51:29] [INFO]   -> Set field 'dispatchNotes' = "ZONE FIRE SMOKE 009  [02\/26\/26 11:51:15 KMORGAN2]"
[2026-02-26 17:51:29] [INFO]   -> Set field 'cADLog' = "ZONE FIRE SMOKE 009  [02\/26\/26 11:51:15 KMORGAN2]"
[2026-02-26 17:51:29] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 17:51:29] [INFO]   -> Found value: BAXTER
[2026-02-26 17:51:29] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-02-26 17:51:29] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 17:51:29] [INFO]   -> Found value: MAIN
[2026-02-26 17:51:29] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-02-26 17:51:29] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 17:51:29] [INFO]   -> Found value: ST
[2026-02-26 17:51:29] [INFO]   -> Set field 'streetType' = "ST"
[2026-02-26 17:51:29] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 17:51:29] [INFO]   -> Found value: 200 MAIN ST
[2026-02-26 17:51:29] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "200 MAIN ST"
[2026-02-26 17:51:29] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-26 17:51:29] [INFO] Concatenating street name and type
[2026-02-26 17:51:29] [INFO]   -> Combined street name: MAIN ST
[2026-02-26 17:51:29] [INFO] Built locationCoordinates from lat/lng: 36.15464,-85.64256
[2026-02-26 17:51:29] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD","incidentInternalId":"2026000063","dispatchRunNumber":"2026000063","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":200,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"businessName":"BAXTER CITY HALL","nERISIncidentLatitude":36.154640000000000554791768081486225128173828125,"nERISIncidentLongitude":-85.642560000000003128661774098873138427734375,"alarm":"2026-02-26 11:50:43","dispatched":"2026-02-26 11:51:22","incidentLocationCross":"\/THIRD AVE N","cADVehicleID":"BEN2","timedispatch":"2026-02-26 11:51:22","policeReportNumber":"20260021386","dispatchNotes":"ZONE FIRE SMOKE 009  [02\/26\/26 11:51:15 KMORGAN2]","cADLog":"ZONE FIRE SMOKE 009  [02\/26\/26 11:51:15 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"MAIN ST","incidentAddressTextVersionStreet":"200 MAIN ST","locationCoordinates":"36.15464,-85.64256"}
[2026-02-26 17:51:29] [INFO] Number of extracted fields: 22
[2026-02-26 17:51:29] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD'
[2026-02-26 17:51:29] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD', Parsed IDs = ["BFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-02-26 17:51:29] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD"]
[2026-02-26 17:51:29] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-02-26 17:51:29] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-02-26 17:51:30] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-02-26 17:51:30] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-02-26 17:51:30] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-02-26 17:51:30] [INFO] Found existing IncidentTypeMapping with ID: 6945b6ed5a589dbb8
[2026-02-26 17:51:34] [INFO] Created new Dispatches record with ID: 69a0882357f436fb0
[2026-02-26 17:51:34] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 17:51:34] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 17:51:38] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 17:51:38] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021386_20260226_175129.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 17:51:38] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 18:00:59] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260021394_20260226_180059.XML
[2026-02-26 18:00:59] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260021394_20260226_180059.XML for user: 68f1466aed072ad4a
[2026-02-26 18:00:59] [INFO] File size: 5230 bytes
[2026-02-26 18:00:59] [INFO] Created FTPFiles record with ID: 69a08a5b6b39d2827
[2026-02-26 18:00:59] [INFO] About to extract fields from XML. File size: 5230 bytes
[2026-02-26 18:00:59] [INFO] Number of mappings: 28
[2026-02-26 18:00:59] [INFO] Starting XML parsing. Content length: 5230
[2026-02-26 18:00:59] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 18:00:59] [INFO] Processing 28 field mappings
[2026-02-26 18:00:59] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 18:00:59] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 18:00:59] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-26 18:00:59] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-02-26 18:00:59] [INFO]   -> Found value: MFD
EMS
[2026-02-26 18:00:59] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS"
[2026-02-26 18:00:59] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 18:00:59] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-02-26 18:00:59] [INFO]   -> Found value: 2026000072
[2026-02-26 18:00:59] [INFO]   -> Set field 'incidentInternalId' = "2026000072"
[2026-02-26 18:00:59] [INFO]   -> Set field 'dispatchRunNumber' = "2026000072"
[2026-02-26 18:00:59] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 18:00:59] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-02-26 18:00:59] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-02-26 18:00:59] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 18:00:59] [INFO]   -> Found value: 535
[2026-02-26 18:00:59] [INFO]   -> Set field 'incidentLocationStreetNumber' = 535
[2026-02-26 18:00:59] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 18:00:59] [INFO]   -> Found value: TN
[2026-02-26 18:00:59] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 18:00:59] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 18:00:59] [INFO]   -> Found value: 38574
[2026-02-26 18:00:59] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-26 18:00:59] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 18:00:59] [INFO]   -> Found value: HIGHLAND MANOR
[2026-02-26 18:00:59] [INFO]   -> Set field 'businessName' = "HIGHLAND MANOR"
[2026-02-26 18:00:59] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 18:00:59] [INFO]   -> Found value: D1
[2026-02-26 18:00:59] [INFO]   -> Set field 'incidentLocationApt' = "D1"
[2026-02-26 18:00:59] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 18:00:59] [INFO]   -> Found value: 36.14390
[2026-02-26 18:00:59] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.143900000000002137312549166381359100341796875
[2026-02-26 18:00:59] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 18:00:59] [INFO]   -> Found value: -85.26178
[2026-02-26 18:00:59] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2617800000000016780177247710525989532470703125
[2026-02-26 18:00:59] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 18:00:59] [INFO]   -> Found value: 2026-02-26 11:59:35
[2026-02-26 18:00:59] [INFO]   -> Set field 'alarm' = "2026-02-26 11:59:35"
[2026-02-26 18:00:59] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 18:00:59] [INFO]   -> Found value: 2026-02-26 12:00:47
[2026-02-26 18:00:59] [INFO]   -> Set field 'dispatched' = "2026-02-26 12:00:47"
[2026-02-26 18:00:59] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 18:00:59] [INFO]   -> No value found (null or empty)
[2026-02-26 18:00:59] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 18:00:59] [INFO]   -> No value found (null or empty)
[2026-02-26 18:00:59] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 18:00:59] [INFO]   -> No value found (null or empty)
[2026-02-26 18:00:59] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 18:00:59] [INFO]   -> Found value: ELMORE ST/RUSSELL LN
[2026-02-26 18:00:59] [INFO]   -> Set field 'incidentLocationCross' = "ELMORE ST\/RUSSELL LN"
[2026-02-26 18:00:59] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 18:00:59] [INFO]   -> Found value: MFR
[2026-02-26 18:00:59] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-02-26 18:00:59] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 18:00:59] [INFO]   -> Found value: 2026-02-26 12:00:47
[2026-02-26 18:00:59] [INFO]   -> Set field 'timedispatch' = "2026-02-26 12:00:47"
[2026-02-26 18:00:59] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 18:00:59] [INFO]   -> No value found (null or empty)
[2026-02-26 18:00:59] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 18:00:59] [INFO]   -> No value found (null or empty)
[2026-02-26 18:00:59] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 18:00:59] [INFO]   -> No value found (null or empty)
[2026-02-26 18:00:59] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 18:00:59] [INFO]   -> No value found (null or empty)
[2026-02-26 18:00:59] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 18:00:59] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-02-26 18:00:59] [INFO]   -> Found value: 20260021394
[2026-02-26 18:00:59] [INFO]   -> Set field 'policeReportNumber' = "20260021394"
[2026-02-26 18:00:59] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 18:00:59] [INFO]   -> Found value: [EMS] 72 YOF//LESLIE KLAUSS  [02/26/26 12:00:23 KMORGAN2] [EMS] ON 4LITERS  [02/26/26 12:00:05 KMORG...
[2026-02-26 18:00:59] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 72 YOF\/\/LESLIE KLAUSS  [02\/26\/26 12:00:23 KMORGAN2] [EMS] ON 4LITERS  [02\/26\/26 12:00:05 KMORGAN2] [EMS] BP 198\/117  [02\/26\/26 11:59:46 KMORGAN2] Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 11:59:35 KMORGAN2]"
[2026-02-26 18:00:59] [INFO]   -> Set field 'cADLog' = "[EMS] 72 YOF\/\/LESLIE KLAUSS  [02\/26\/26 12:00:23 KMORGAN2] [EMS] ON 4LITERS  [02\/26\/26 12:00:05 KMORGAN2] [EMS] BP 198\/117  [02\/26\/26 11:59:46 KMORGAN2] Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 11:59:35 KMORGAN2]"
[2026-02-26 18:00:59] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 18:00:59] [INFO]   -> Found value: MONTEREY
[2026-02-26 18:00:59] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-26 18:00:59] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 18:00:59] [INFO]   -> Found value: OLD WALTON
[2026-02-26 18:00:59] [INFO]   -> Set field 'streetName' = "OLD WALTON"
[2026-02-26 18:00:59] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 18:00:59] [INFO]   -> Found value: RD
[2026-02-26 18:00:59] [INFO]   -> Set field 'streetType' = "RD"
[2026-02-26 18:00:59] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 18:00:59] [INFO]   -> Found value: 535-D1 OLD WALTON RD
[2026-02-26 18:00:59] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "535-D1 OLD WALTON RD"
[2026-02-26 18:00:59] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-02-26 18:00:59] [INFO] Concatenating street name and type
[2026-02-26 18:00:59] [INFO]   -> Combined street name: OLD WALTON RD
[2026-02-26 18:00:59] [INFO] Built locationCoordinates from lat/lng: 36.1439,-85.26178
[2026-02-26 18:00:59] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS","incidentInternalId":"2026000072","dispatchRunNumber":"2026000072","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":535,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"HIGHLAND MANOR","incidentLocationApt":"D1","nERISIncidentLatitude":36.143900000000002137312549166381359100341796875,"nERISIncidentLongitude":-85.2617800000000016780177247710525989532470703125,"alarm":"2026-02-26 11:59:35","dispatched":"2026-02-26 12:00:47","incidentLocationCross":"ELMORE ST\/RUSSELL LN","cADVehicleID":"MFR","timedispatch":"2026-02-26 12:00:47","policeReportNumber":"20260021394","dispatchNotes":"[EMS] 72 YOF\/\/LESLIE KLAUSS  [02\/26\/26 12:00:23 KMORGAN2] [EMS] ON 4LITERS  [02\/26\/26 12:00:05 KMORGAN2] [EMS] BP 198\/117  [02\/26\/26 11:59:46 KMORGAN2] Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 11:59:35 KMORGAN2]","cADLog":"[EMS] 72 YOF\/\/LESLIE KLAUSS  [02\/26\/26 12:00:23 KMORGAN2] [EMS] ON 4LITERS  [02\/26\/26 12:00:05 KMORGAN2] [EMS] BP 198\/117  [02\/26\/26 11:59:46 KMORGAN2] Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 11:59:35 KMORGAN2]","incidentLocationCity":"MONTEREY","streetName":"OLD WALTON RD","incidentAddressTextVersionStreet":"535-D1 OLD WALTON RD","locationCoordinates":"36.1439,-85.26178"}
[2026-02-26 18:00:59] [INFO] Number of extracted fields: 23
[2026-02-26 18:00:59] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS'
[2026-02-26 18:00:59] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS', Parsed IDs = ["MFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-02-26 18:00:59] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS"]
[2026-02-26 18:00:59] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-02-26 18:00:59] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-02-26 18:00:59] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-02-26 18:00:59] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-02-26 18:00:59] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-02-26 18:00:59] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-02-26 18:00:59] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-02-26 18:00:59] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-02-26 18:01:00] [INFO] Found existing IncidentTypeMapping with ID: 694c0ab27eb6ebd01
[2026-02-26 18:01:03] [INFO] Created new Dispatches record with ID: 69a08a5c797c82113
[2026-02-26 18:01:03] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 18:01:03] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 18:01:06] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 18:01:06] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260021394_20260226_180059.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 18:01:06] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 18:01:30] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021397_20260226_180130.XML
[2026-02-26 18:01:30] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021397_20260226_180130.XML for user: 68f1466aed072ad4a
[2026-02-26 18:01:30] [INFO] File size: 5689 bytes
[2026-02-26 18:01:30] [INFO] Created FTPFiles record with ID: 69a08a7a5e1b20a9c
[2026-02-26 18:01:30] [INFO] About to extract fields from XML. File size: 5689 bytes
[2026-02-26 18:01:30] [INFO] Number of mappings: 28
[2026-02-26 18:01:30] [INFO] Starting XML parsing. Content length: 5689
[2026-02-26 18:01:30] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 18:01:30] [INFO] Processing 28 field mappings
[2026-02-26 18:01:30] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 18:01:30] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 18:01:30] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-26 18:01:30] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-02-26 18:01:30] [INFO]   -> Found value: PCFD
EMS
MFD
RESC
[2026-02-26 18:01:30] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD\nRESC"
[2026-02-26 18:01:30] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 18:01:30] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-02-26 18:01:30] [INFO]   -> Found value: 2026000538
[2026-02-26 18:01:30] [INFO]   -> Set field 'incidentInternalId' = "2026000538"
[2026-02-26 18:01:30] [INFO]   -> Set field 'dispatchRunNumber' = "2026000538"
[2026-02-26 18:01:30] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 18:01:30] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-02-26 18:01:30] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-02-26 18:01:30] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 18:01:30] [INFO]   -> Found value: 535
[2026-02-26 18:01:30] [INFO]   -> Set field 'incidentLocationStreetNumber' = 535
[2026-02-26 18:01:30] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 18:01:30] [INFO]   -> Found value: TN
[2026-02-26 18:01:30] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 18:01:30] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 18:01:30] [INFO]   -> Found value: 38574
[2026-02-26 18:01:30] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-26 18:01:30] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 18:01:30] [INFO]   -> Found value: HIGHLAND MANOR
[2026-02-26 18:01:30] [INFO]   -> Set field 'businessName' = "HIGHLAND MANOR"
[2026-02-26 18:01:30] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 18:01:30] [INFO]   -> Found value: D1
[2026-02-26 18:01:30] [INFO]   -> Set field 'incidentLocationApt' = "D1"
[2026-02-26 18:01:30] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 18:01:30] [INFO]   -> Found value: 36.14390
[2026-02-26 18:01:30] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.143900000000002137312549166381359100341796875
[2026-02-26 18:01:30] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 18:01:30] [INFO]   -> Found value: -85.26178
[2026-02-26 18:01:30] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2617800000000016780177247710525989532470703125
[2026-02-26 18:01:30] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 18:01:30] [INFO]   -> Found value: 2026-02-26 12:01:19
[2026-02-26 18:01:30] [INFO]   -> Set field 'alarm' = "2026-02-26 12:01:19"
[2026-02-26 18:01:30] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 18:01:30] [INFO]   -> Found value: 2026-02-26 12:01:19
[2026-02-26 18:01:30] [INFO]   -> Set field 'dispatched' = "2026-02-26 12:01:19"
[2026-02-26 18:01:30] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 18:01:30] [INFO]   -> No value found (null or empty)
[2026-02-26 18:01:30] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 18:01:30] [INFO]   -> No value found (null or empty)
[2026-02-26 18:01:30] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 18:01:30] [INFO]   -> No value found (null or empty)
[2026-02-26 18:01:30] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 18:01:30] [INFO]   -> Found value: ELMORE ST/RUSSELL LN
[2026-02-26 18:01:30] [INFO]   -> Set field 'incidentLocationCross' = "ELMORE ST\/RUSSELL LN"
[2026-02-26 18:01:30] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 18:01:30] [INFO]   -> Found value: PCFR
[2026-02-26 18:01:30] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-26 18:01:30] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 18:01:30] [INFO]   -> Found value: 2026-02-26 12:01:19
[2026-02-26 18:01:30] [INFO]   -> Set field 'timedispatch' = "2026-02-26 12:01:19"
[2026-02-26 18:01:30] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 18:01:30] [INFO]   -> No value found (null or empty)
[2026-02-26 18:01:30] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 18:01:30] [INFO]   -> No value found (null or empty)
[2026-02-26 18:01:30] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 18:01:30] [INFO]   -> No value found (null or empty)
[2026-02-26 18:01:30] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 18:01:30] [INFO]   -> No value found (null or empty)
[2026-02-26 18:01:30] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 18:01:30] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-02-26 18:01:30] [INFO]   -> Found value: 20260021397
[2026-02-26 18:01:30] [INFO]   -> Set field 'policeReportNumber' = "20260021397"
[2026-02-26 18:01:30] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 18:01:30] [INFO]   -> Found value: Event spawned from BREATHING PROBLEMS.  [02/26/2026 12:01:19 JBOHANNON] [EMS] 72 YOF//LESLIE KLAUSS ...
[2026-02-26 18:01:30] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 12:01:19 JBOHANNON] [EMS] 72 YOF\/\/LESLIE KLAUSS  [02\/26\/26 12:00:23 KMORGAN2] [EMS] ON 4LITERS  [02\/26\/26 12:00:05 KMORGAN2] [EMS] BP 198\/117  [02\/26\/26 11:59:46 KMORGAN2] Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 11:59:35 KMORGAN2]"
[2026-02-26 18:01:30] [INFO]   -> Set field 'cADLog' = "Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 12:01:19 JBOHANNON] [EMS] 72 YOF\/\/LESLIE KLAUSS  [02\/26\/26 12:00:23 KMORGAN2] [EMS] ON 4LITERS  [02\/26\/26 12:00:05 KMORGAN2] [EMS] BP 198\/117  [02\/26\/26 11:59:46 KMORGAN2] Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 11:59:35 KMORGAN2]"
[2026-02-26 18:01:30] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 18:01:30] [INFO]   -> Found value: MONTEREY
[2026-02-26 18:01:30] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-26 18:01:30] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 18:01:30] [INFO]   -> Found value: OLD WALTON
[2026-02-26 18:01:30] [INFO]   -> Set field 'streetName' = "OLD WALTON"
[2026-02-26 18:01:30] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 18:01:30] [INFO]   -> Found value: RD
[2026-02-26 18:01:30] [INFO]   -> Set field 'streetType' = "RD"
[2026-02-26 18:01:30] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 18:01:30] [INFO]   -> Found value: 535-D1 OLD WALTON RD
[2026-02-26 18:01:30] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "535-D1 OLD WALTON RD"
[2026-02-26 18:01:30] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-02-26 18:01:30] [INFO] Concatenating street name and type
[2026-02-26 18:01:30] [INFO]   -> Combined street name: OLD WALTON RD
[2026-02-26 18:01:30] [INFO] Built locationCoordinates from lat/lng: 36.1439,-85.26178
[2026-02-26 18:01:30] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD\nRESC","incidentInternalId":"2026000538","dispatchRunNumber":"2026000538","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":535,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"HIGHLAND MANOR","incidentLocationApt":"D1","nERISIncidentLatitude":36.143900000000002137312549166381359100341796875,"nERISIncidentLongitude":-85.2617800000000016780177247710525989532470703125,"alarm":"2026-02-26 12:01:19","dispatched":"2026-02-26 12:01:19","incidentLocationCross":"ELMORE ST\/RUSSELL LN","cADVehicleID":"PCFR","timedispatch":"2026-02-26 12:01:19","policeReportNumber":"20260021397","dispatchNotes":"Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 12:01:19 JBOHANNON] [EMS] 72 YOF\/\/LESLIE KLAUSS  [02\/26\/26 12:00:23 KMORGAN2] [EMS] ON 4LITERS  [02\/26\/26 12:00:05 KMORGAN2] [EMS] BP 198\/117  [02\/26\/26 11:59:46 KMORGAN2] Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 11:59:35 KMORGAN2]","cADLog":"Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 12:01:19 JBOHANNON] [EMS] 72 YOF\/\/LESLIE KLAUSS  [02\/26\/26 12:00:23 KMORGAN2] [EMS] ON 4LITERS  [02\/26\/26 12:00:05 KMORGAN2] [EMS] BP 198\/117  [02\/26\/26 11:59:46 KMORGAN2] Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 11:59:35 KMORGAN2]","incidentLocationCity":"MONTEREY","streetName":"OLD WALTON RD","incidentAddressTextVersionStreet":"535-D1 OLD WALTON RD","locationCoordinates":"36.1439,-85.26178"}
[2026-02-26 18:01:30] [INFO] Number of extracted fields: 23
[2026-02-26 18:01:30] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD
RESC'
[2026-02-26 18:01:30] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD
RESC', Parsed IDs = ["PCFD","EMS","MFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-02-26 18:01:30] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD","RESC"]
[2026-02-26 18:01:30] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-26 18:01:30] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-26 18:01:30] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD","RESC"]
[2026-02-26 18:01:30] [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-02-26 18:01:30] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-26 18:01:30] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-02-26 18:01:30] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-26 18:01:30] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-26 18:01:31] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-02-26 18:01:44] [INFO] Created new Dispatches record with ID: 69a08a7b5ea39a133
[2026-02-26 18:01:44] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 18:01:44] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 18:01:48] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 18:01:48] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021397_20260226_180130.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 18:01:48] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 18:28:28] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-05947.xml
[2026-02-26 18:28:28] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-05947.xml for user: 68d56363ec1209189
[2026-02-26 18:28:28] [INFO] File size: 1779 bytes
[2026-02-26 18:28:28] [INFO] Created FTPFiles record with ID: 69a090ccb9e7bd885
[2026-02-26 18:28:28] [INFO] About to extract fields from XML. File size: 1779 bytes
[2026-02-26 18:28:28] [INFO] Number of mappings: 21
[2026-02-26 18:28:28] [INFO] Starting XML parsing. Content length: 1779
[2026-02-26 18:28:28] [INFO] XML parsed successfully. Root element: Incident
[2026-02-26 18:28:28] [INFO] Processing 21 field mappings
[2026-02-26 18:28:28] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-02-26 18:28:28] [INFO]   -> Found value: 26-05947
[2026-02-26 18:28:28] [INFO]   -> Set field 'dispatchRunNumber' = "26-05947"
[2026-02-26 18:28:28] [INFO]   -> Set field 'cADNumber' = "26-05947"
[2026-02-26 18:28:28] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-02-26 18:28:28] [INFO]   -> Found value: 403
[2026-02-26 18:28:28] [INFO]   -> Set field 'incidentLocationStreetNumber' = 403
[2026-02-26 18:28:28] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-02-26 18:28:28] [INFO]   -> Found value: CARROLL ST
[2026-02-26 18:28:28] [INFO]   -> Set field 'streetName' = "CARROLL ST"
[2026-02-26 18:28:28] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-02-26 18:28:28] [INFO]   -> No value found (null or empty)
[2026-02-26 18:28:28] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-02-26 18:28:28] [INFO]   -> Found value: SIKESTON
[2026-02-26 18:28:28] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-02-26 18:28:28] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-02-26 18:28:28] [INFO]   -> No value found (null or empty)
[2026-02-26 18:28:28] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-02-26 18:28:28] [INFO]   -> Found value: MO
[2026-02-26 18:28:28] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-02-26 18:28:28] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-02-26 18:28:28] [INFO]   -> Found value: 63801
[2026-02-26 18:28:28] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-02-26 18:28:28] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-02-26 18:28:28] [INFO]   -> Found value: 0
[2026-02-26 18:28:28] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-02-26 18:28:28] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-02-26 18:28:28] [INFO]   -> Found value: 0
[2026-02-26 18:28:28] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-02-26 18:28:28] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-02-26 18:28:28] [INFO]   -> Found value: MEDICAL
[2026-02-26 18:28:28] [INFO]   -> Set field 'incidentTypeValue1' = "MEDICAL"
[2026-02-26 18:28:28] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-02-26 18:28:28] [INFO]   -> Found value: 02-26-2026 11:41:29|18 YRO MALE HAVING A SEIZURE 02-26-2026 11:54:49|EMS REQUESTING FIRE FOR HELP GE...
[2026-02-26 18:28:28] [INFO]   -> Set field 'dispatchNotes' = "02-26-2026 11:41:29|18 YRO MALE HAVING A SEIZURE 02-26-2026 11:54:49|EMS REQUESTING FIRE FOR HELP GETTING PT OUT OF BASEMENT 02-26-2026 11:56:15|NEEDING STOKES BASKET 02-26-2026 12:17:56|MDMC"
[2026-02-26 18:28:28] [INFO]   -> Set field 'cADLog' = "02-26-2026 11:41:29|18 YRO MALE HAVING A SEIZURE 02-26-2026 11:54:49|EMS REQUESTING FIRE FOR HELP GETTING PT OUT OF BASEMENT 02-26-2026 11:56:15|NEEDING STOKES BASKET 02-26-2026 12:17:56|MDMC"
[2026-02-26 18:28:28] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-02-26 18:28:28] [INFO]   -> Found value: 02-26-2026T11:43:18
[2026-02-26 18:28:28] [INFO] Reformatted DD-MM-YYYY date '02-26-2026' (day=02, month=26) to ISO: 2026-26-02T11:43:18
[2026-02-26 18:28:28] [ERROR] Error formatting datetime '2026-26-02T11:43:18': Failed to parse time string (2026-26-02T11:43:18) at position 6 (6): Unexpected character
[2026-02-26 18:28:28] [INFO]   -> Set field 'alarm' = null
[2026-02-26 18:28:28] [INFO] Reformatted DD-MM-YYYY date '02-26-2026' (day=02, month=26) to ISO: 2026-26-02T11:43:18
[2026-02-26 18:28:28] [ERROR] Error formatting datetime '2026-26-02T11:43:18': Failed to parse time string (2026-26-02T11:43:18) at position 6 (6): Unexpected character
[2026-02-26 18:28:28] [INFO]   -> Set field 'dispatched' = null
[2026-02-26 18:28:28] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-02-26 18:28:28] [INFO]   -> Found value: 02-26-2026T11:59:49
[2026-02-26 18:28:28] [INFO] Reformatted DD-MM-YYYY date '02-26-2026' (day=02, month=26) to ISO: 2026-26-02T11:59:49
[2026-02-26 18:28:28] [ERROR] Error formatting datetime '2026-26-02T11:59:49': Failed to parse time string (2026-26-02T11:59:49) at position 6 (6): Unexpected character
[2026-02-26 18:28:28] [INFO]   -> Set field 'onScene' = null
[2026-02-26 18:28:28] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-02-26 18:28:28] [INFO]   -> No value found (null or empty)
[2026-02-26 18:28:28] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-02-26 18:28:28] [INFO]   -> Found value: ENG2
[2026-02-26 18:28:28] [INFO]   -> Set field 'cADVehicleID' = "ENG2"
[2026-02-26 18:28:28] [INFO]   -> Set field 'name' = "ENG2"
[2026-02-26 18:28:28] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-02-26 18:28:28] [INFO]   -> Found value: 02-26-2026T11:55:53
[2026-02-26 18:28:28] [INFO] Reformatted DD-MM-YYYY date '02-26-2026' (day=02, month=26) to ISO: 2026-26-02T11:55:53
[2026-02-26 18:28:28] [ERROR] Error formatting datetime '2026-26-02T11:55:53': Failed to parse time string (2026-26-02T11:55:53) at position 6 (6): Unexpected character
[2026-02-26 18:28:28] [INFO]   -> Set field 'timeenroutetoscene' = null
[2026-02-26 18:28:28] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-02-26 18:28:28] [INFO]   -> Found value: 02-26-2026T11:59:49
[2026-02-26 18:28:28] [INFO] Reformatted DD-MM-YYYY date '02-26-2026' (day=02, month=26) to ISO: 2026-26-02T11:59:49
[2026-02-26 18:28:28] [ERROR] Error formatting datetime '2026-26-02T11:59:49': Failed to parse time string (2026-26-02T11:59:49) at position 6 (6): Unexpected character
[2026-02-26 18:28:28] [INFO]   -> Set field 'timeonscene' = null
[2026-02-26 18:28:28] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-02-26 18:28:28] [INFO]   -> Found value: 02-26-2026T12:28:09
[2026-02-26 18:28:28] [INFO] Reformatted DD-MM-YYYY date '02-26-2026' (day=02, month=26) to ISO: 2026-26-02T12:28:09
[2026-02-26 18:28:28] [ERROR] Error formatting datetime '2026-26-02T12:28:09': Failed to parse time string (2026-26-02T12:28:09) at position 6 (6): Unexpected character
[2026-02-26 18:28:28] [INFO]   -> Set field 'timeunitclear' = null
[2026-02-26 18:28:28] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-02-26 18:28:28] [INFO]   -> Found value: 02-26-2026T11:55:49
[2026-02-26 18:28:28] [INFO] Reformatted DD-MM-YYYY date '02-26-2026' (day=02, month=26) to ISO: 2026-26-02T11:55:49
[2026-02-26 18:28:28] [ERROR] Error formatting datetime '2026-26-02T11:55:49': Failed to parse time string (2026-26-02T11:55:49) at position 6 (6): Unexpected character
[2026-02-26 18:28:28] [INFO]   -> Set field 'timedispatch' = null
[2026-02-26 18:28:28] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-02-26 18:28:28] [INFO]   -> Found value: SDPSFD
[2026-02-26 18:28:28] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-02-26 18:28:28] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-26 18:28:28] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-02-26 18:28:28] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-05947","cADNumber":"26-05947","incidentLocationStreetNumber":403,"streetName":"CARROLL ST","incidentLocationCity":"SIKESTON","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"MEDICAL","dispatchNotes":"02-26-2026 11:41:29|18 YRO MALE HAVING A SEIZURE 02-26-2026 11:54:49|EMS REQUESTING FIRE FOR HELP GETTING PT OUT OF BASEMENT 02-26-2026 11:56:15|NEEDING STOKES BASKET 02-26-2026 12:17:56|MDMC","cADLog":"02-26-2026 11:41:29|18 YRO MALE HAVING A SEIZURE 02-26-2026 11:54:49|EMS REQUESTING FIRE FOR HELP GETTING PT OUT OF BASEMENT 02-26-2026 11:56:15|NEEDING STOKES BASKET 02-26-2026 12:17:56|MDMC","alarm":null,"dispatched":null,"onScene":null,"cADVehicleID":"ENG2","name":"ENG2","timeenroutetoscene":null,"timeonscene":null,"timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-02-26 18:28:28] [INFO] Number of extracted fields: 23
[2026-02-26 18:28:28] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-02-26 18:28:28] [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-02-26 18:28:28] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-02-26 18:28:28] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-02-26 18:28:28] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-02-26 18:28:29] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-02-26 18:28:29] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-02-26 18:28:29] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-02-26 18:28:29] [INFO] Found existing IncidentTypeMapping with ID: 6976908dc15ecc087
[2026-02-26 18:28:31] [INFO] Created new Dispatches record with ID: 69a090cd9e516b437
[2026-02-26 18:28:31] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-05947.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-02-26/SDPSFD_26-05947.xml
[2026-02-26 18:28:31] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-05947.xml
[2026-02-26 18:57:39] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021414_20260226_185739.XML
[2026-02-26 18:57:39] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021414_20260226_185739.XML for user: 68f1466aed072ad4a
[2026-02-26 18:57:39] [INFO] File size: 5475 bytes
[2026-02-26 18:57:39] [INFO] Created FTPFiles record with ID: 69a097a3908c1a335
[2026-02-26 18:57:39] [INFO] About to extract fields from XML. File size: 5475 bytes
[2026-02-26 18:57:39] [INFO] Number of mappings: 28
[2026-02-26 18:57:39] [INFO] Starting XML parsing. Content length: 5475
[2026-02-26 18:57:39] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 18:57:39] [INFO] Processing 28 field mappings
[2026-02-26 18:57:39] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 18:57:39] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 18:57:39] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-26 18:57:39] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-02-26 18:57:39] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-02-26 18:57:39] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-02-26 18:57:39] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 18:57:39] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-02-26 18:57:39] [INFO]   -> Found value: 2026000539
[2026-02-26 18:57:39] [INFO]   -> Set field 'incidentInternalId' = "2026000539"
[2026-02-26 18:57:39] [INFO]   -> Set field 'dispatchRunNumber' = "2026000539"
[2026-02-26 18:57:39] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 18:57:39] [INFO]   -> Found value: UNCONSCIOUS
[2026-02-26 18:57:39] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-02-26 18:57:39] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 18:57:39] [INFO]   -> Found value: 1604
[2026-02-26 18:57:39] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1604
[2026-02-26 18:57:39] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 18:57:39] [INFO]   -> Found value: TN
[2026-02-26 18:57:39] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 18:57:39] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 18:57:39] [INFO]   -> Found value: 38506
[2026-02-26 18:57:39] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-26 18:57:39] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 18:57:39] [INFO]   -> No value found (null or empty)
[2026-02-26 18:57:39] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 18:57:39] [INFO]   -> No value found (null or empty)
[2026-02-26 18:57:39] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 18:57:39] [INFO]   -> Found value: 36.12506
[2026-02-26 18:57:39] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.12505999999999772853698232211172580718994140625
[2026-02-26 18:57:39] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 18:57:39] [INFO]   -> Found value: -85.43866
[2026-02-26 18:57:39] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.438659999999998717612470500171184539794921875
[2026-02-26 18:57:39] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 18:57:39] [INFO]   -> Found value: 2026-02-26 12:56:23
[2026-02-26 18:57:39] [INFO]   -> Set field 'alarm' = "2026-02-26 12:56:23"
[2026-02-26 18:57:39] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 18:57:39] [INFO]   -> Found value: 2026-02-26 12:57:28
[2026-02-26 18:57:39] [INFO]   -> Set field 'dispatched' = "2026-02-26 12:57:28"
[2026-02-26 18:57:39] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 18:57:39] [INFO]   -> No value found (null or empty)
[2026-02-26 18:57:39] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 18:57:39] [INFO]   -> No value found (null or empty)
[2026-02-26 18:57:39] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 18:57:39] [INFO]   -> No value found (null or empty)
[2026-02-26 18:57:39] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 18:57:39] [INFO]   -> Found value: BAYSHORE DR/CHEROKEE DR
[2026-02-26 18:57:39] [INFO]   -> Set field 'incidentLocationCross' = "BAYSHORE DR\/CHEROKEE DR"
[2026-02-26 18:57:39] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 18:57:39] [INFO]   -> Found value: PCFR
[2026-02-26 18:57:39] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-26 18:57:39] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 18:57:39] [INFO]   -> Found value: 2026-02-26 12:57:28
[2026-02-26 18:57:39] [INFO]   -> Set field 'timedispatch' = "2026-02-26 12:57:28"
[2026-02-26 18:57:39] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 18:57:39] [INFO]   -> No value found (null or empty)
[2026-02-26 18:57:39] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 18:57:39] [INFO]   -> No value found (null or empty)
[2026-02-26 18:57:39] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 18:57:39] [INFO]   -> No value found (null or empty)
[2026-02-26 18:57:39] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 18:57:39] [INFO]   -> No value found (null or empty)
[2026-02-26 18:57:39] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 18:57:39] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-02-26 18:57:39] [INFO]   -> Found value: 20260021414
[2026-02-26 18:57:39] [INFO]   -> Set field 'policeReportNumber' = "20260021414"
[2026-02-26 18:57:39] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 18:57:39] [INFO]   -> Found value: [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02/26/26 12:56:49 RMAYNARD] Event spawned from UNCONSCIOUS. ...
[2026-02-26 18:57:39] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/26\/26 12:56:49 RMAYNARD] Event spawned from UNCONSCIOUS.  [02\/26\/2026 12:56:23 KBURTON] CLIENT WAS BEING FEED AND STARTED GOING CRAZY - MOVING REALLY BAD   POSSIBLE SEIZURE   JAMES WENT 74 YOM  CARE GIVER ON SCENE  [02\/26\/26 12:56:19 KBURTON]]"
[2026-02-26 18:57:39] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/26\/26 12:56:49 RMAYNARD] Event spawned from UNCONSCIOUS.  [02\/26\/2026 12:56:23 KBURTON] CLIENT WAS BEING FEED AND STARTED GOING CRAZY - MOVING REALLY BAD   POSSIBLE SEIZURE   JAMES WENT 74 YOM  CARE GIVER ON SCENE  [02\/26\/26 12:56:19 KBURTON]]"
[2026-02-26 18:57:39] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 18:57:39] [INFO]   -> Found value: COOKEVILLE
[2026-02-26 18:57:39] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-02-26 18:57:39] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 18:57:39] [INFO]   -> Found value: EDGEFIELD
[2026-02-26 18:57:39] [INFO]   -> Set field 'streetName' = "EDGEFIELD"
[2026-02-26 18:57:39] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 18:57:39] [INFO]   -> Found value: CT
[2026-02-26 18:57:39] [INFO]   -> Set field 'streetType' = "CT"
[2026-02-26 18:57:39] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 18:57:39] [INFO]   -> Found value: 1604 EDGEFIELD CT
[2026-02-26 18:57:39] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1604 EDGEFIELD CT"
[2026-02-26 18:57:39] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-26 18:57:39] [INFO] Concatenating street name and type
[2026-02-26 18:57:39] [INFO]   -> Combined street name: EDGEFIELD CT
[2026-02-26 18:57:39] [INFO] Built locationCoordinates from lat/lng: 36.12506,-85.43866
[2026-02-26 18:57:39] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000539","dispatchRunNumber":"2026000539","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":1604,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.12505999999999772853698232211172580718994140625,"nERISIncidentLongitude":-85.438659999999998717612470500171184539794921875,"alarm":"2026-02-26 12:56:23","dispatched":"2026-02-26 12:57:28","incidentLocationCross":"BAYSHORE DR\/CHEROKEE DR","cADVehicleID":"PCFR","timedispatch":"2026-02-26 12:57:28","policeReportNumber":"20260021414","dispatchNotes":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/26\/26 12:56:49 RMAYNARD] Event spawned from UNCONSCIOUS.  [02\/26\/2026 12:56:23 KBURTON] CLIENT WAS BEING FEED AND STARTED GOING CRAZY - MOVING REALLY BAD   POSSIBLE SEIZURE   JAMES WENT 74 YOM  CARE GIVER ON SCENE  [02\/26\/26 12:56:19 KBURTON]]","cADLog":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/26\/26 12:56:49 RMAYNARD] Event spawned from UNCONSCIOUS.  [02\/26\/2026 12:56:23 KBURTON] CLIENT WAS BEING FEED AND STARTED GOING CRAZY - MOVING REALLY BAD   POSSIBLE SEIZURE   JAMES WENT 74 YOM  CARE GIVER ON SCENE  [02\/26\/26 12:56:19 KBURTON]]","incidentLocationCity":"COOKEVILLE","streetName":"EDGEFIELD CT","incidentAddressTextVersionStreet":"1604 EDGEFIELD CT","locationCoordinates":"36.12506,-85.43866"}
[2026-02-26 18:57:39] [INFO] Number of extracted fields: 21
[2026-02-26 18:57:39] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-02-26 18:57:39] [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-02-26 18:57:39] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-02-26 18:57:39] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-26 18:57:39] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-26 18:57:39] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-02-26 18:57:39] [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-02-26 18:57:39] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-26 18:57:39] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-02-26 18:57:39] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-26 18:57:39] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-26 18:57:40] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-02-26 18:57:51] [INFO] Created new Dispatches record with ID: 69a097a45d7126322
[2026-02-26 18:57:51] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 18:57:51] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 18:57:55] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 18:57:55] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021414_20260226_185739.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 18:57:55] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 19:06:08] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260021420_20260226_190608.XML
[2026-02-26 19:06:08] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260021420_20260226_190608.XML for user: 68f1466aed072ad4a
[2026-02-26 19:06:08] [INFO] File size: 5072 bytes
[2026-02-26 19:06:09] [INFO] Created FTPFiles record with ID: 69a099a128c5dd4da
[2026-02-26 19:06:09] [INFO] About to extract fields from XML. File size: 5072 bytes
[2026-02-26 19:06:09] [INFO] Number of mappings: 28
[2026-02-26 19:06:09] [INFO] Starting XML parsing. Content length: 5072
[2026-02-26 19:06:09] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 19:06:09] [INFO] Processing 28 field mappings
[2026-02-26 19:06:09] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 19:06:09] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 19:06:09] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-26 19:06:09] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-02-26 19:06:09] [INFO]   -> Found value: AFD
EMS
[2026-02-26 19:06:09] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nEMS"
[2026-02-26 19:06:09] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 19:06:09] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-02-26 19:06:09] [INFO]   -> Found value: 2026000094
[2026-02-26 19:06:09] [INFO]   -> Set field 'incidentInternalId' = "2026000094"
[2026-02-26 19:06:09] [INFO]   -> Set field 'dispatchRunNumber' = "2026000094"
[2026-02-26 19:06:09] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 19:06:09] [INFO]   -> Found value: FALL VICTIM
[2026-02-26 19:06:09] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-02-26 19:06:09] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 19:06:09] [INFO]   -> Found value: 166
[2026-02-26 19:06:09] [INFO]   -> Set field 'incidentLocationStreetNumber' = 166
[2026-02-26 19:06:09] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 19:06:09] [INFO]   -> Found value: TN
[2026-02-26 19:06:09] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 19:06:09] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 19:06:09] [INFO]   -> Found value: 38506
[2026-02-26 19:06:09] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-26 19:06:09] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 19:06:09] [INFO]   -> No value found (null or empty)
[2026-02-26 19:06:09] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 19:06:09] [INFO]   -> No value found (null or empty)
[2026-02-26 19:06:09] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 19:06:09] [INFO]   -> Found value: 36.20364
[2026-02-26 19:06:09] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20364000000000004320099833421409130096435546875
[2026-02-26 19:06:09] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 19:06:09] [INFO]   -> Found value: -85.44654
[2026-02-26 19:06:09] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.446539999999998826751834712922573089599609375
[2026-02-26 19:06:09] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 19:06:09] [INFO]   -> Found value: 2026-02-26 13:05:16
[2026-02-26 19:06:09] [INFO]   -> Set field 'alarm' = "2026-02-26 13:05:16"
[2026-02-26 19:06:09] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 19:06:09] [INFO]   -> Found value: 2026-02-26 13:05:55
[2026-02-26 19:06:09] [INFO]   -> Set field 'dispatched' = "2026-02-26 13:05:55"
[2026-02-26 19:06:09] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 19:06:09] [INFO]   -> No value found (null or empty)
[2026-02-26 19:06:09] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 19:06:09] [INFO]   -> No value found (null or empty)
[2026-02-26 19:06:09] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 19:06:09] [INFO]   -> No value found (null or empty)
[2026-02-26 19:06:09] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 19:06:09] [INFO]   -> Found value: OAKLEY DR/PEACH ST
[2026-02-26 19:06:09] [INFO]   -> Set field 'incidentLocationCross' = "OAKLEY DR\/PEACH ST"
[2026-02-26 19:06:09] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 19:06:09] [INFO]   -> Found value: AFR
[2026-02-26 19:06:09] [INFO]   -> Set field 'cADVehicleID' = "AFR"
[2026-02-26 19:06:09] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 19:06:09] [INFO]   -> Found value: 2026-02-26 13:05:55
[2026-02-26 19:06:09] [INFO]   -> Set field 'timedispatch' = "2026-02-26 13:05:55"
[2026-02-26 19:06:09] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 19:06:09] [INFO]   -> No value found (null or empty)
[2026-02-26 19:06:09] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 19:06:09] [INFO]   -> No value found (null or empty)
[2026-02-26 19:06:09] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 19:06:09] [INFO]   -> No value found (null or empty)
[2026-02-26 19:06:09] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 19:06:09] [INFO]   -> No value found (null or empty)
[2026-02-26 19:06:09] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 19:06:09] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-02-26 19:06:09] [INFO]   -> Found value: 20260021420
[2026-02-26 19:06:09] [INFO]   -> Set field 'policeReportNumber' = "20260021420"
[2026-02-26 19:06:09] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 19:06:09] [INFO]   -> Found value: [EMS] JAMES RAMSEY//93 YOM  [02/26/26 13:05:50 KMORGAN2] Event spawned from FALL VICTIM.  [02/26/202...
[2026-02-26 19:06:09] [INFO]   -> Set field 'dispatchNotes' = "[EMS] JAMES RAMSEY\/\/93 YOM  [02\/26\/26 13:05:50 KMORGAN2] Event spawned from FALL VICTIM.  [02\/26\/2026 13:05:16 KMORGAN2] FALL WITH INJURY  [02\/26\/26 13:05:09 KMORGAN2]]"
[2026-02-26 19:06:09] [INFO]   -> Set field 'cADLog' = "[EMS] JAMES RAMSEY\/\/93 YOM  [02\/26\/26 13:05:50 KMORGAN2] Event spawned from FALL VICTIM.  [02\/26\/2026 13:05:16 KMORGAN2] FALL WITH INJURY  [02\/26\/26 13:05:09 KMORGAN2]]"
[2026-02-26 19:06:09] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 19:06:09] [INFO]   -> Found value: ALGOOD
[2026-02-26 19:06:09] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-02-26 19:06:09] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 19:06:09] [INFO]   -> Found value: CHILCUT
[2026-02-26 19:06:09] [INFO]   -> Set field 'streetName' = "CHILCUT"
[2026-02-26 19:06:09] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 19:06:09] [INFO]   -> Found value: RD
[2026-02-26 19:06:09] [INFO]   -> Set field 'streetType' = "RD"
[2026-02-26 19:06:09] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 19:06:09] [INFO]   -> Found value: 166 CHILCUT RD
[2026-02-26 19:06:09] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "166 CHILCUT RD"
[2026-02-26 19:06:09] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-26 19:06:09] [INFO] Concatenating street name and type
[2026-02-26 19:06:09] [INFO]   -> Combined street name: CHILCUT RD
[2026-02-26 19:06:09] [INFO] Built locationCoordinates from lat/lng: 36.20364,-85.44654
[2026-02-26 19:06:09] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nEMS","incidentInternalId":"2026000094","dispatchRunNumber":"2026000094","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":166,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.20364000000000004320099833421409130096435546875,"nERISIncidentLongitude":-85.446539999999998826751834712922573089599609375,"alarm":"2026-02-26 13:05:16","dispatched":"2026-02-26 13:05:55","incidentLocationCross":"OAKLEY DR\/PEACH ST","cADVehicleID":"AFR","timedispatch":"2026-02-26 13:05:55","policeReportNumber":"20260021420","dispatchNotes":"[EMS] JAMES RAMSEY\/\/93 YOM  [02\/26\/26 13:05:50 KMORGAN2] Event spawned from FALL VICTIM.  [02\/26\/2026 13:05:16 KMORGAN2] FALL WITH INJURY  [02\/26\/26 13:05:09 KMORGAN2]]","cADLog":"[EMS] JAMES RAMSEY\/\/93 YOM  [02\/26\/26 13:05:50 KMORGAN2] Event spawned from FALL VICTIM.  [02\/26\/2026 13:05:16 KMORGAN2] FALL WITH INJURY  [02\/26\/26 13:05:09 KMORGAN2]]","incidentLocationCity":"ALGOOD","streetName":"CHILCUT RD","incidentAddressTextVersionStreet":"166 CHILCUT RD","locationCoordinates":"36.20364,-85.44654"}
[2026-02-26 19:06:09] [INFO] Number of extracted fields: 21
[2026-02-26 19:06:09] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
EMS'
[2026-02-26 19:06:09] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
EMS', Parsed IDs = ["AFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-02-26 19:06:09] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","EMS"]
[2026-02-26 19:06:09] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-02-26 19:06:09] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-02-26 19:06:09] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-02-26 19:06:09] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-02-26 19:06:09] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-02-26 19:06:09] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-02-26 19:06:09] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-02-26 19:06:09] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-02-26 19:06:09] [INFO] Found existing IncidentTypeMapping with ID: 6952a99bba1f92574
[2026-02-26 19:06:15] [INFO] Created new Dispatches record with ID: 69a099a23c1ed8e96
[2026-02-26 19:06:15] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 19:06:15] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 19:06:19] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 19:06:19] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260021420_20260226_190608.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 19:06:19] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 19:07:39] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021422_20260226_190739.XML
[2026-02-26 19:07:39] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021422_20260226_190739.XML for user: 68f1466aed072ad4a
[2026-02-26 19:07:39] [INFO] File size: 4798 bytes
[2026-02-26 19:07:39] [INFO] Created FTPFiles record with ID: 69a099fb9ca4c24a3
[2026-02-26 19:07:39] [INFO] About to extract fields from XML. File size: 4798 bytes
[2026-02-26 19:07:39] [INFO] Number of mappings: 28
[2026-02-26 19:07:39] [INFO] Starting XML parsing. Content length: 4798
[2026-02-26 19:07:39] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 19:07:39] [INFO] Processing 28 field mappings
[2026-02-26 19:07:39] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 19:07:39] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 19:07:39] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-26 19:07:39] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-02-26 19:07:39] [INFO]   -> Found value: BFD
BPD
EMS
[2026-02-26 19:07:39] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nBPD\nEMS"
[2026-02-26 19:07:39] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 19:07:39] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-02-26 19:07:39] [INFO]   -> Found value: 2026000064
[2026-02-26 19:07:39] [INFO]   -> Set field 'incidentInternalId' = "2026000064"
[2026-02-26 19:07:39] [INFO]   -> Set field 'dispatchRunNumber' = "2026000064"
[2026-02-26 19:07:39] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 19:07:39] [INFO]   -> Found value: UNKNOWN PROBLEM
[2026-02-26 19:07:39] [INFO]   -> Set field 'incidentTypeValue1' = "UNKNOWN PROBLEM"
[2026-02-26 19:07:39] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 19:07:39] [INFO]   -> Found value: 112
[2026-02-26 19:07:39] [INFO]   -> Set field 'incidentLocationStreetNumber' = 112
[2026-02-26 19:07:39] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 19:07:39] [INFO]   -> Found value: TN
[2026-02-26 19:07:39] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 19:07:39] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 19:07:39] [INFO]   -> Found value: 38544
[2026-02-26 19:07:39] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-02-26 19:07:39] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 19:07:39] [INFO]   -> No value found (null or empty)
[2026-02-26 19:07:39] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 19:07:39] [INFO]   -> No value found (null or empty)
[2026-02-26 19:07:39] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 19:07:39] [INFO]   -> Found value: 36.15409
[2026-02-26 19:07:39] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.15408999999999650754034519195556640625
[2026-02-26 19:07:39] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 19:07:39] [INFO]   -> Found value: -85.64081
[2026-02-26 19:07:39] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6408100000000018781065591610968112945556640625
[2026-02-26 19:07:39] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 19:07:39] [INFO]   -> Found value: 2026-02-26 13:07:03
[2026-02-26 19:07:39] [INFO]   -> Set field 'alarm' = "2026-02-26 13:07:03"
[2026-02-26 19:07:39] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 19:07:39] [INFO]   -> Found value: 2026-02-26 13:07:25
[2026-02-26 19:07:39] [INFO]   -> Set field 'dispatched' = "2026-02-26 13:07:25"
[2026-02-26 19:07:39] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 19:07:39] [INFO]   -> No value found (null or empty)
[2026-02-26 19:07:39] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 19:07:39] [INFO]   -> No value found (null or empty)
[2026-02-26 19:07:39] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 19:07:39] [INFO]   -> No value found (null or empty)
[2026-02-26 19:07:39] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 19:07:39] [INFO]   -> Found value: BROAD ST/BUFFALO VALLEY RD
[2026-02-26 19:07:39] [INFO]   -> Set field 'incidentLocationCross' = "BROAD ST\/BUFFALO VALLEY RD"
[2026-02-26 19:07:39] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 19:07:39] [INFO]   -> Found value: BEN2
[2026-02-26 19:07:39] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-02-26 19:07:39] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 19:07:39] [INFO]   -> Found value: 2026-02-26 13:07:25
[2026-02-26 19:07:39] [INFO]   -> Set field 'timedispatch' = "2026-02-26 13:07:25"
[2026-02-26 19:07:39] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 19:07:39] [INFO]   -> No value found (null or empty)
[2026-02-26 19:07:39] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 19:07:39] [INFO]   -> No value found (null or empty)
[2026-02-26 19:07:39] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 19:07:39] [INFO]   -> No value found (null or empty)
[2026-02-26 19:07:39] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 19:07:39] [INFO]   -> No value found (null or empty)
[2026-02-26 19:07:39] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 19:07:39] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-02-26 19:07:39] [INFO]   -> Found value: 20260021422
[2026-02-26 19:07:39] [INFO]   -> Set field 'policeReportNumber' = "20260021422"
[2026-02-26 19:07:39] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 19:07:39] [INFO]   -> Found value: [LAW] {B402} MALE SUBJECT IN THE FLOOR / UNK DOWN TIME / IS AWAKE AND ALERT BUT DISORIENTED AT THIS ...
[2026-02-26 19:07:39] [INFO]   -> Set field 'dispatchNotes' = "[LAW] {B402} MALE SUBJECT IN THE FLOOR \/ UNK DOWN TIME \/ IS AWAKE AND ALERT BUT DISORIENTED AT THIS TIME  [02\/26\/26 13:07:17 SBALLARD] Event spawned from UNKNOWN PROBLEM.  [02\/26\/2026 13:07:03 JBOHANNON] UDTS: CARD SEEN BY 911  [02\/26\/26 13:06:28 KMORGAN2] Event spawned from WELFARE CHECK.  [02\/26\/2026 13:06:12 SBALLARD] {B402} REQ EMS EMERGENCY TRAFFIC  [02\/26\/26 13:06:00 SBALLARD]"
[2026-02-26 19:07:39] [INFO]   -> Set field 'cADLog' = "[LAW] {B402} MALE SUBJECT IN THE FLOOR \/ UNK DOWN TIME \/ IS AWAKE AND ALERT BUT DISORIENTED AT THIS TIME  [02\/26\/26 13:07:17 SBALLARD] Event spawned from UNKNOWN PROBLEM.  [02\/26\/2026 13:07:03 JBOHANNON] UDTS: CARD SEEN BY 911  [02\/26\/26 13:06:28 KMORGAN2] Event spawned from WELFARE CHECK.  [02\/26\/2026 13:06:12 SBALLARD] {B402} REQ EMS EMERGENCY TRAFFIC  [02\/26\/26 13:06:00 SBALLARD]"
[2026-02-26 19:07:39] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 19:07:39] [INFO]   -> Found value: BAXTER
[2026-02-26 19:07:39] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-02-26 19:07:39] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 19:07:39] [INFO]   -> Found value: THIRD
[2026-02-26 19:07:39] [INFO]   -> Set field 'streetName' = "THIRD"
[2026-02-26 19:07:39] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 19:07:39] [INFO]   -> Found value: AVE
[2026-02-26 19:07:39] [INFO]   -> Set field 'streetType' = "AVE"
[2026-02-26 19:07:39] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 19:07:39] [INFO]   -> Found value: 112 THIRD AVE S
[2026-02-26 19:07:39] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "112 THIRD AVE S"
[2026-02-26 19:07:39] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-26 19:07:39] [INFO] Concatenating street name and type
[2026-02-26 19:07:39] [INFO]   -> Combined street name: THIRD AVE
[2026-02-26 19:07:39] [INFO] Built locationCoordinates from lat/lng: 36.15409,-85.64081
[2026-02-26 19:07:39] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nBPD\nEMS","incidentInternalId":"2026000064","dispatchRunNumber":"2026000064","incidentTypeValue1":"UNKNOWN PROBLEM","incidentLocationStreetNumber":112,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.15408999999999650754034519195556640625,"nERISIncidentLongitude":-85.6408100000000018781065591610968112945556640625,"alarm":"2026-02-26 13:07:03","dispatched":"2026-02-26 13:07:25","incidentLocationCross":"BROAD ST\/BUFFALO VALLEY RD","cADVehicleID":"BEN2","timedispatch":"2026-02-26 13:07:25","policeReportNumber":"20260021422","dispatchNotes":"[LAW] {B402} MALE SUBJECT IN THE FLOOR \/ UNK DOWN TIME \/ IS AWAKE AND ALERT BUT DISORIENTED AT THIS TIME  [02\/26\/26 13:07:17 SBALLARD] Event spawned from UNKNOWN PROBLEM.  [02\/26\/2026 13:07:03 JBOHANNON] UDTS: CARD SEEN BY 911  [02\/26\/26 13:06:28 KMORGAN2] Event spawned from WELFARE CHECK.  [02\/26\/2026 13:06:12 SBALLARD] {B402} REQ EMS EMERGENCY TRAFFIC  [02\/26\/26 13:06:00 SBALLARD]","cADLog":"[LAW] {B402} MALE SUBJECT IN THE FLOOR \/ UNK DOWN TIME \/ IS AWAKE AND ALERT BUT DISORIENTED AT THIS TIME  [02\/26\/26 13:07:17 SBALLARD] Event spawned from UNKNOWN PROBLEM.  [02\/26\/2026 13:07:03 JBOHANNON] UDTS: CARD SEEN BY 911  [02\/26\/26 13:06:28 KMORGAN2] Event spawned from WELFARE CHECK.  [02\/26\/2026 13:06:12 SBALLARD] {B402} REQ EMS EMERGENCY TRAFFIC  [02\/26\/26 13:06:00 SBALLARD]","incidentLocationCity":"BAXTER","streetName":"THIRD AVE","incidentAddressTextVersionStreet":"112 THIRD AVE S","locationCoordinates":"36.15409,-85.64081"}
[2026-02-26 19:07:39] [INFO] Number of extracted fields: 21
[2026-02-26 19:07:39] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
BPD
EMS'
[2026-02-26 19:07:39] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
BPD
EMS', Parsed IDs = ["BFD","BPD","EMS"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-02-26 19:07:39] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","BPD","EMS"]
[2026-02-26 19:07:39] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-02-26 19:07:39] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-02-26 19:07:39] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["BPD","EMS"]
[2026-02-26 19:07:39] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-02-26 19:07:39] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-02-26 19:07:39] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-02-26 19:07:39] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-02-26 19:07:40] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-02-26 19:07:40] [INFO] Found existing IncidentTypeMapping with ID: 6945be8919693175a
[2026-02-26 19:07:43] [INFO] Created new Dispatches record with ID: 69a099fc8aef9e8e2
[2026-02-26 19:07:43] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 19:07:43] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 19:07:47] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 19:07:47] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021422_20260226_190739.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 19:07:47] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 21:52:07] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021500_20260226_215207.XML
[2026-02-26 21:52:07] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021500_20260226_215207.XML for user: 68f1466aed072ad4a
[2026-02-26 21:52:07] [INFO] File size: 4560 bytes
[2026-02-26 21:52:07] [INFO] Created FTPFiles record with ID: 69a0c087a91b4217a
[2026-02-26 21:52:07] [INFO] About to extract fields from XML. File size: 4560 bytes
[2026-02-26 21:52:07] [INFO] Number of mappings: 28
[2026-02-26 21:52:07] [INFO] Starting XML parsing. Content length: 4560
[2026-02-26 21:52:07] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 21:52:07] [INFO] Processing 28 field mappings
[2026-02-26 21:52:07] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 21:52:07] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 21:52:07] [INFO]   -> Found value: BFD
[2026-02-26 21:52:07] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD"
[2026-02-26 21:52:07] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 21:52:07] [INFO]   -> Found value: 2026000065
[2026-02-26 21:52:07] [INFO]   -> Set field 'incidentInternalId' = "2026000065"
[2026-02-26 21:52:07] [INFO]   -> Set field 'dispatchRunNumber' = "2026000065"
[2026-02-26 21:52:07] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 21:52:07] [INFO]   -> Found value: CARBON MONOXIDE ALARM
[2026-02-26 21:52:07] [INFO]   -> Set field 'incidentTypeValue1' = "CARBON MONOXIDE ALARM"
[2026-02-26 21:52:07] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 21:52:07] [INFO]   -> Found value: 275
[2026-02-26 21:52:07] [INFO]   -> Set field 'incidentLocationStreetNumber' = 275
[2026-02-26 21:52:07] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 21:52:07] [INFO]   -> Found value: TN
[2026-02-26 21:52:07] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 21:52:07] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 21:52:07] [INFO]   -> Found value: 38544
[2026-02-26 21:52:07] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-02-26 21:52:07] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 21:52:07] [INFO]   -> No value found (null or empty)
[2026-02-26 21:52:07] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 21:52:07] [INFO]   -> No value found (null or empty)
[2026-02-26 21:52:07] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 21:52:07] [INFO]   -> Found value: 36.17606
[2026-02-26 21:52:07] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.17605999999999966121322358958423137664794921875
[2026-02-26 21:52:07] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 21:52:07] [INFO]   -> Found value: -85.62432
[2026-02-26 21:52:07] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6243199999999973215381032787263393402099609375
[2026-02-26 21:52:07] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 21:52:07] [INFO]   -> Found value: 2026-02-26 15:51:29
[2026-02-26 21:52:07] [INFO]   -> Set field 'alarm' = "2026-02-26 15:51:29"
[2026-02-26 21:52:07] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 21:52:07] [INFO]   -> Found value: 2026-02-26 15:51:51
[2026-02-26 21:52:07] [INFO]   -> Set field 'dispatched' = "2026-02-26 15:51:51"
[2026-02-26 21:52:07] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 21:52:07] [INFO]   -> Found value: 2026-02-26 15:51:51
[2026-02-26 21:52:07] [INFO]   -> Set field 'enroute' = "2026-02-26 15:51:51"
[2026-02-26 21:52:07] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 21:52:07] [INFO]   -> No value found (null or empty)
[2026-02-26 21:52:07] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 21:52:07] [INFO]   -> No value found (null or empty)
[2026-02-26 21:52:07] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 21:52:07] [INFO]   -> Found value: /OLIVER WAY
[2026-02-26 21:52:07] [INFO]   -> Set field 'incidentLocationCross' = "\/OLIVER WAY"
[2026-02-26 21:52:07] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 21:52:07] [INFO]   -> Found value: BEN2
[2026-02-26 21:52:07] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-02-26 21:52:07] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 21:52:07] [INFO]   -> Found value: 2026-02-26 15:51:51
[2026-02-26 21:52:07] [INFO]   -> Set field 'timedispatch' = "2026-02-26 15:51:51"
[2026-02-26 21:52:07] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 21:52:07] [INFO]   -> Found value: 2026-02-26 15:51:51
[2026-02-26 21:52:07] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-26 15:51:51"
[2026-02-26 21:52:07] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 21:52:07] [INFO]   -> No value found (null or empty)
[2026-02-26 21:52:07] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 21:52:07] [INFO]   -> No value found (null or empty)
[2026-02-26 21:52:07] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 21:52:07] [INFO]   -> No value found (null or empty)
[2026-02-26 21:52:07] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 21:52:07] [INFO]   -> Found value: 20260021500
[2026-02-26 21:52:07] [INFO]   -> Set field 'policeReportNumber' = "20260021500"
[2026-02-26 21:52:07] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 21:52:07] [INFO]   -> No value found (null or empty)
[2026-02-26 21:52:07] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 21:52:07] [INFO]   -> Found value: BAXTER
[2026-02-26 21:52:07] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-02-26 21:52:07] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 21:52:07] [INFO]   -> Found value: HARRIS
[2026-02-26 21:52:07] [INFO]   -> Set field 'streetName' = "HARRIS"
[2026-02-26 21:52:07] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 21:52:07] [INFO]   -> Found value: LN
[2026-02-26 21:52:07] [INFO]   -> Set field 'streetType' = "LN"
[2026-02-26 21:52:07] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 21:52:07] [INFO]   -> Found value: 275 HARRIS LN
[2026-02-26 21:52:07] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "275 HARRIS LN"
[2026-02-26 21:52:07] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-26 21:52:07] [INFO] Concatenating street name and type
[2026-02-26 21:52:07] [INFO]   -> Combined street name: HARRIS LN
[2026-02-26 21:52:07] [INFO] Built locationCoordinates from lat/lng: 36.17606,-85.62432
[2026-02-26 21:52:07] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD","incidentInternalId":"2026000065","dispatchRunNumber":"2026000065","incidentTypeValue1":"CARBON MONOXIDE ALARM","incidentLocationStreetNumber":275,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.17605999999999966121322358958423137664794921875,"nERISIncidentLongitude":-85.6243199999999973215381032787263393402099609375,"alarm":"2026-02-26 15:51:29","dispatched":"2026-02-26 15:51:51","enroute":"2026-02-26 15:51:51","incidentLocationCross":"\/OLIVER WAY","cADVehicleID":"BEN2","timedispatch":"2026-02-26 15:51:51","timeenroutetoscene":"2026-02-26 15:51:51","policeReportNumber":"20260021500","incidentLocationCity":"BAXTER","streetName":"HARRIS LN","incidentAddressTextVersionStreet":"275 HARRIS LN","locationCoordinates":"36.17606,-85.62432"}
[2026-02-26 21:52:07] [INFO] Number of extracted fields: 21
[2026-02-26 21:52:07] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD'
[2026-02-26 21:52:07] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD', Parsed IDs = ["BFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-02-26 21:52:07] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD"]
[2026-02-26 21:52:07] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-02-26 21:52:07] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-02-26 21:52:08] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-02-26 21:52:08] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-02-26 21:52:08] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-02-26 21:52:08] [INFO] Found existing IncidentTypeMapping with ID: 6945b36b9dc9f5878
[2026-02-26 21:52:11] [INFO] Created new Dispatches record with ID: 69a0c0888fcdf6987
[2026-02-26 21:52:11] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 21:52:11] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 21:52:15] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 21:52:15] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021500_20260226_215207.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 21:52:15] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 23:08:07] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021520_20260226_230806.XML
[2026-02-26 23:08:07] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021520_20260226_230806.XML for user: 68f1466aed072ad4a
[2026-02-26 23:08:07] [INFO] File size: 5098 bytes
[2026-02-26 23:08:07] [INFO] Created FTPFiles record with ID: 69a0d25753d6052e4
[2026-02-26 23:08:07] [INFO] About to extract fields from XML. File size: 5098 bytes
[2026-02-26 23:08:07] [INFO] Number of mappings: 28
[2026-02-26 23:08:07] [INFO] Starting XML parsing. Content length: 5098
[2026-02-26 23:08:07] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 23:08:07] [INFO] Processing 28 field mappings
[2026-02-26 23:08:07] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 23:08:07] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 23:08:07] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-26 23:08:07] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-02-26 23:08:07] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-02-26 23:08:07] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-02-26 23:08:07] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 23:08:07] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-02-26 23:08:07] [INFO]   -> Found value: 2026000540
[2026-02-26 23:08:07] [INFO]   -> Set field 'incidentInternalId' = "2026000540"
[2026-02-26 23:08:07] [INFO]   -> Set field 'dispatchRunNumber' = "2026000540"
[2026-02-26 23:08:07] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 23:08:07] [INFO]   -> Found value: FALL VICTIM
[2026-02-26 23:08:07] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-02-26 23:08:07] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 23:08:07] [INFO]   -> Found value: 1328
[2026-02-26 23:08:07] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1328
[2026-02-26 23:08:07] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 23:08:07] [INFO]   -> Found value: TN
[2026-02-26 23:08:07] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 23:08:07] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 23:08:07] [INFO]   -> Found value: 38506
[2026-02-26 23:08:07] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-02-26 23:08:07] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 23:08:07] [INFO]   -> No value found (null or empty)
[2026-02-26 23:08:07] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 23:08:07] [INFO]   -> No value found (null or empty)
[2026-02-26 23:08:07] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 23:08:07] [INFO]   -> Found value: 36.21391
[2026-02-26 23:08:07] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21390999999999849023879505693912506103515625
[2026-02-26 23:08:07] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 23:08:07] [INFO]   -> Found value: -85.47105
[2026-02-26 23:08:07] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4710500000000052978066378273069858551025390625
[2026-02-26 23:08:07] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 23:08:07] [INFO]   -> Found value: 2026-02-26 17:07:32
[2026-02-26 23:08:07] [INFO]   -> Set field 'alarm' = "2026-02-26 17:07:32"
[2026-02-26 23:08:07] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 23:08:07] [INFO]   -> Found value: 2026-02-26 17:07:59
[2026-02-26 23:08:07] [INFO]   -> Set field 'dispatched' = "2026-02-26 17:07:59"
[2026-02-26 23:08:07] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 23:08:07] [INFO]   -> No value found (null or empty)
[2026-02-26 23:08:07] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 23:08:07] [INFO]   -> No value found (null or empty)
[2026-02-26 23:08:07] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 23:08:07] [INFO]   -> No value found (null or empty)
[2026-02-26 23:08:07] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 23:08:07] [INFO]   -> Found value: N HAMPTON DR
[2026-02-26 23:08:07] [INFO]   -> Set field 'incidentLocationCross' = "N HAMPTON DR"
[2026-02-26 23:08:07] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 23:08:07] [INFO]   -> Found value: PCFR
[2026-02-26 23:08:07] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-26 23:08:07] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 23:08:07] [INFO]   -> Found value: 2026-02-26 17:07:59
[2026-02-26 23:08:07] [INFO]   -> Set field 'timedispatch' = "2026-02-26 17:07:59"
[2026-02-26 23:08:07] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 23:08:07] [INFO]   -> No value found (null or empty)
[2026-02-26 23:08:07] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 23:08:07] [INFO]   -> No value found (null or empty)
[2026-02-26 23:08:07] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 23:08:07] [INFO]   -> No value found (null or empty)
[2026-02-26 23:08:07] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 23:08:07] [INFO]   -> No value found (null or empty)
[2026-02-26 23:08:07] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 23:08:07] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-02-26 23:08:07] [INFO]   -> Found value: 20260021520
[2026-02-26 23:08:07] [INFO]   -> Set field 'policeReportNumber' = "20260021520"
[2026-02-26 23:08:07] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 23:08:07] [INFO]   -> Found value: [EMS] JOHN OWENS  [02/26/26 17:07:45 KBURTON] Event spawned from FALL VICTIM.  [02/26/2026 17:07:32 ...
[2026-02-26 23:08:07] [INFO]   -> Set field 'dispatchNotes' = "[EMS] JOHN OWENS  [02\/26\/26 17:07:45 KBURTON] Event spawned from FALL VICTIM.  [02\/26\/2026 17:07:32 KBURTON] FALL  UNABLE TO MOVE STRUCK HEAD  [02\/26\/26 17:07:25 KBURTON]"
[2026-02-26 23:08:07] [INFO]   -> Set field 'cADLog' = "[EMS] JOHN OWENS  [02\/26\/26 17:07:45 KBURTON] Event spawned from FALL VICTIM.  [02\/26\/2026 17:07:32 KBURTON] FALL  UNABLE TO MOVE STRUCK HEAD  [02\/26\/26 17:07:25 KBURTON]"
[2026-02-26 23:08:07] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 23:08:07] [INFO]   -> Found value: COOKEVILLE
[2026-02-26 23:08:07] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-02-26 23:08:07] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 23:08:07] [INFO]   -> Found value: HAMPTON
[2026-02-26 23:08:07] [INFO]   -> Set field 'streetName' = "HAMPTON"
[2026-02-26 23:08:07] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 23:08:07] [INFO]   -> Found value: CIR
[2026-02-26 23:08:07] [INFO]   -> Set field 'streetType' = "CIR"
[2026-02-26 23:08:07] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 23:08:07] [INFO]   -> Found value: 1328 N HAMPTON CIR
[2026-02-26 23:08:07] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1328 N HAMPTON CIR"
[2026-02-26 23:08:07] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-02-26 23:08:07] [INFO] Concatenating street name and type
[2026-02-26 23:08:07] [INFO]   -> Combined street name: HAMPTON CIR
[2026-02-26 23:08:07] [INFO] Built locationCoordinates from lat/lng: 36.21391,-85.47105
[2026-02-26 23:08:07] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000540","dispatchRunNumber":"2026000540","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":1328,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.21390999999999849023879505693912506103515625,"nERISIncidentLongitude":-85.4710500000000052978066378273069858551025390625,"alarm":"2026-02-26 17:07:32","dispatched":"2026-02-26 17:07:59","incidentLocationCross":"N HAMPTON DR","cADVehicleID":"PCFR","timedispatch":"2026-02-26 17:07:59","policeReportNumber":"20260021520","dispatchNotes":"[EMS] JOHN OWENS  [02\/26\/26 17:07:45 KBURTON] Event spawned from FALL VICTIM.  [02\/26\/2026 17:07:32 KBURTON] FALL  UNABLE TO MOVE STRUCK HEAD  [02\/26\/26 17:07:25 KBURTON]","cADLog":"[EMS] JOHN OWENS  [02\/26\/26 17:07:45 KBURTON] Event spawned from FALL VICTIM.  [02\/26\/2026 17:07:32 KBURTON] FALL  UNABLE TO MOVE STRUCK HEAD  [02\/26\/26 17:07:25 KBURTON]","incidentLocationCity":"COOKEVILLE","streetName":"HAMPTON CIR","incidentAddressTextVersionStreet":"1328 N HAMPTON CIR","locationCoordinates":"36.21391,-85.47105"}
[2026-02-26 23:08:07] [INFO] Number of extracted fields: 21
[2026-02-26 23:08:07] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-02-26 23:08:07] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-02-26 23:08:07] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-02-26 23:08:07] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-26 23:08:07] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-26 23:08:07] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-02-26 23:08:07] [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-02-26 23:08:07] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-26 23:08:07] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-02-26 23:08:07] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-26 23:08:07] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-26 23:08:07] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-02-26 23:08:18] [INFO] Created new Dispatches record with ID: 69a0d258266885dcf
[2026-02-26 23:08:18] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 23:08:18] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 23:08:22] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 23:08:22] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021520_20260226_230806.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 23:08:22] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 23:26:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260021524_20260226_232647.XML
[2026-02-26 23:26:47] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260021524_20260226_232647.XML for user: 68f1466aed072ad4a
[2026-02-26 23:26:47] [INFO] File size: 5297 bytes
[2026-02-26 23:26:47] [INFO] Created FTPFiles record with ID: 69a0d6b7b475f79b2
[2026-02-26 23:26:47] [INFO] About to extract fields from XML. File size: 5297 bytes
[2026-02-26 23:26:47] [INFO] Number of mappings: 28
[2026-02-26 23:26:47] [INFO] Starting XML parsing. Content length: 5297
[2026-02-26 23:26:47] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 23:26:47] [INFO] Processing 28 field mappings
[2026-02-26 23:26:47] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 23:26:47] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 23:26:47] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-26 23:26:47] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-02-26 23:26:47] [INFO]   -> Found value: MFD
EMS
RESC
[2026-02-26 23:26:47] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nRESC"
[2026-02-26 23:26:47] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 23:26:47] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-02-26 23:26:47] [INFO]   -> Found value: 2026000073
[2026-02-26 23:26:47] [INFO]   -> Set field 'incidentInternalId' = "2026000073"
[2026-02-26 23:26:47] [INFO]   -> Set field 'dispatchRunNumber' = "2026000073"
[2026-02-26 23:26:47] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 23:26:47] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-02-26 23:26:47] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-02-26 23:26:47] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 23:26:47] [INFO]   -> Found value: 509
[2026-02-26 23:26:47] [INFO]   -> Set field 'incidentLocationStreetNumber' = 509
[2026-02-26 23:26:47] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 23:26:47] [INFO]   -> Found value: TN
[2026-02-26 23:26:47] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 23:26:47] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 23:26:47] [INFO]   -> Found value: 38574
[2026-02-26 23:26:47] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-26 23:26:47] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 23:26:47] [INFO]   -> Found value: MONTEREY SHELL
[2026-02-26 23:26:47] [INFO]   -> Set field 'businessName' = "MONTEREY SHELL"
[2026-02-26 23:26:47] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 23:26:47] [INFO]   -> No value found (null or empty)
[2026-02-26 23:26:47] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 23:26:47] [INFO]   -> Found value: 36.14006
[2026-02-26 23:26:47] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14005999999999829697117093019187450408935546875
[2026-02-26 23:26:47] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 23:26:47] [INFO]   -> Found value: -85.26762
[2026-02-26 23:26:47] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.267619999999993751771398819983005523681640625
[2026-02-26 23:26:47] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 23:26:47] [INFO]   -> Found value: 2026-02-26 17:25:37
[2026-02-26 23:26:47] [INFO]   -> Set field 'alarm' = "2026-02-26 17:25:37"
[2026-02-26 23:26:47] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 23:26:47] [INFO]   -> Found value: 2026-02-26 17:26:34
[2026-02-26 23:26:47] [INFO]   -> Set field 'dispatched' = "2026-02-26 17:26:34"
[2026-02-26 23:26:47] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 23:26:47] [INFO]   -> No value found (null or empty)
[2026-02-26 23:26:47] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 23:26:47] [INFO]   -> No value found (null or empty)
[2026-02-26 23:26:47] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 23:26:47] [INFO]   -> No value found (null or empty)
[2026-02-26 23:26:47] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 23:26:47] [INFO]   -> Found value: AGEE ST/INDUSTRIAL DR
[2026-02-26 23:26:47] [INFO]   -> Set field 'incidentLocationCross' = "AGEE ST\/INDUSTRIAL DR"
[2026-02-26 23:26:47] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 23:26:47] [INFO]   -> Found value: MFR
[2026-02-26 23:26:47] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-02-26 23:26:47] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 23:26:47] [INFO]   -> Found value: 2026-02-26 17:26:34
[2026-02-26 23:26:47] [INFO]   -> Set field 'timedispatch' = "2026-02-26 17:26:34"
[2026-02-26 23:26:47] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 23:26:47] [INFO]   -> No value found (null or empty)
[2026-02-26 23:26:47] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 23:26:47] [INFO]   -> No value found (null or empty)
[2026-02-26 23:26:47] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 23:26:47] [INFO]   -> No value found (null or empty)
[2026-02-26 23:26:47] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 23:26:47] [INFO]   -> No value found (null or empty)
[2026-02-26 23:26:47] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 23:26:47] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-02-26 23:26:47] [INFO]   -> Found value: 20260021524
[2026-02-26 23:26:47] [INFO]   -> Set field 'policeReportNumber' = "20260021524"
[2026-02-26 23:26:47] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 23:26:47] [INFO]   -> Found value: [EMS] 61 YOF//CYNTHIA REPERT  [02/26/26 17:26:30 JDICK] [EMS] NOT RESPONDING  [02/26/26 17:26:09 JDI...
[2026-02-26 23:26:47] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 61 YOF\/\/CYNTHIA REPERT  [02\/26\/26 17:26:30 JDICK] [EMS] NOT RESPONDING  [02\/26\/26 17:26:09 JDICK] [EMS] IN VEH  BROWN GMC TRUCK  [02\/26\/26 17:25:59 JDICK] Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 17:25:37 JDICK]"
[2026-02-26 23:26:47] [INFO]   -> Set field 'cADLog' = "[EMS] 61 YOF\/\/CYNTHIA REPERT  [02\/26\/26 17:26:30 JDICK] [EMS] NOT RESPONDING  [02\/26\/26 17:26:09 JDICK] [EMS] IN VEH  BROWN GMC TRUCK  [02\/26\/26 17:25:59 JDICK] Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 17:25:37 JDICK]"
[2026-02-26 23:26:47] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 23:26:47] [INFO]   -> Found value: MONTEREY
[2026-02-26 23:26:47] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-26 23:26:47] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 23:26:47] [INFO]   -> Found value: STRATTON
[2026-02-26 23:26:47] [INFO]   -> Set field 'streetName' = "STRATTON"
[2026-02-26 23:26:47] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 23:26:47] [INFO]   -> Found value: AVE
[2026-02-26 23:26:47] [INFO]   -> Set field 'streetType' = "AVE"
[2026-02-26 23:26:47] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 23:26:47] [INFO]   -> Found value: 509 E STRATTON AVE
[2026-02-26 23:26:47] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "509 E STRATTON AVE"
[2026-02-26 23:26:47] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-26 23:26:47] [INFO] Concatenating street name and type
[2026-02-26 23:26:47] [INFO]   -> Combined street name: STRATTON AVE
[2026-02-26 23:26:47] [INFO] Built locationCoordinates from lat/lng: 36.14006,-85.26762
[2026-02-26 23:26:47] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nRESC","incidentInternalId":"2026000073","dispatchRunNumber":"2026000073","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":509,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"MONTEREY SHELL","nERISIncidentLatitude":36.14005999999999829697117093019187450408935546875,"nERISIncidentLongitude":-85.267619999999993751771398819983005523681640625,"alarm":"2026-02-26 17:25:37","dispatched":"2026-02-26 17:26:34","incidentLocationCross":"AGEE ST\/INDUSTRIAL DR","cADVehicleID":"MFR","timedispatch":"2026-02-26 17:26:34","policeReportNumber":"20260021524","dispatchNotes":"[EMS] 61 YOF\/\/CYNTHIA REPERT  [02\/26\/26 17:26:30 JDICK] [EMS] NOT RESPONDING  [02\/26\/26 17:26:09 JDICK] [EMS] IN VEH  BROWN GMC TRUCK  [02\/26\/26 17:25:59 JDICK] Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 17:25:37 JDICK]","cADLog":"[EMS] 61 YOF\/\/CYNTHIA REPERT  [02\/26\/26 17:26:30 JDICK] [EMS] NOT RESPONDING  [02\/26\/26 17:26:09 JDICK] [EMS] IN VEH  BROWN GMC TRUCK  [02\/26\/26 17:25:59 JDICK] Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 17:25:37 JDICK]","incidentLocationCity":"MONTEREY","streetName":"STRATTON AVE","incidentAddressTextVersionStreet":"509 E STRATTON AVE","locationCoordinates":"36.14006,-85.26762"}
[2026-02-26 23:26:47] [INFO] Number of extracted fields: 22
[2026-02-26 23:26:47] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
RESC'
[2026-02-26 23:26:47] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
RESC', Parsed IDs = ["MFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-02-26 23:26:47] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","RESC"]
[2026-02-26 23:26:47] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-02-26 23:26:47] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-02-26 23:26:47] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-02-26 23:26:48] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-02-26 23:26:48] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-02-26 23:26:48] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-02-26 23:26:48] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-02-26 23:26:48] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-02-26 23:26:48] [INFO] Found existing IncidentTypeMapping with ID: 694c0ab27eb6ebd01
[2026-02-26 23:26:51] [INFO] Created new Dispatches record with ID: 69a0d6b898209bae7
[2026-02-26 23:26:51] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 23:26:51] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 23:26:55] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 23:26:55] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260021524_20260226_232647.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 23:26:55] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 23:26:55] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021527_20260226_232648.XML
[2026-02-26 23:26:55] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021527_20260226_232648.XML for user: 68f1466aed072ad4a
[2026-02-26 23:26:55] [INFO] File size: 5611 bytes
[2026-02-26 23:26:55] [INFO] Created FTPFiles record with ID: 69a0d6bf757ec50cf
[2026-02-26 23:26:55] [INFO] About to extract fields from XML. File size: 5611 bytes
[2026-02-26 23:26:55] [INFO] Number of mappings: 28
[2026-02-26 23:26:55] [INFO] Starting XML parsing. Content length: 5611
[2026-02-26 23:26:55] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 23:26:55] [INFO] Processing 28 field mappings
[2026-02-26 23:26:55] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 23:26:55] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 23:26:55] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-02-26 23:26:55] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-02-26 23:26:55] [INFO]   -> Found value: PCFD
EMS
MFD
RESC
[2026-02-26 23:26:55] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD\nRESC"
[2026-02-26 23:26:55] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 23:26:55] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-02-26 23:26:55] [INFO]   -> Found value: 2026000541
[2026-02-26 23:26:55] [INFO]   -> Set field 'incidentInternalId' = "2026000541"
[2026-02-26 23:26:55] [INFO]   -> Set field 'dispatchRunNumber' = "2026000541"
[2026-02-26 23:26:55] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 23:26:55] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-02-26 23:26:55] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-02-26 23:26:55] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 23:26:55] [INFO]   -> Found value: 509
[2026-02-26 23:26:55] [INFO]   -> Set field 'incidentLocationStreetNumber' = 509
[2026-02-26 23:26:55] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 23:26:55] [INFO]   -> Found value: TN
[2026-02-26 23:26:55] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 23:26:55] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 23:26:55] [INFO]   -> Found value: 38574
[2026-02-26 23:26:55] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-26 23:26:55] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 23:26:55] [INFO]   -> Found value: MONTEREY SHELL
[2026-02-26 23:26:55] [INFO]   -> Set field 'businessName' = "MONTEREY SHELL"
[2026-02-26 23:26:55] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 23:26:55] [INFO]   -> No value found (null or empty)
[2026-02-26 23:26:55] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 23:26:55] [INFO]   -> Found value: 36.14006
[2026-02-26 23:26:55] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14005999999999829697117093019187450408935546875
[2026-02-26 23:26:55] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 23:26:55] [INFO]   -> Found value: -85.26762
[2026-02-26 23:26:55] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.267619999999993751771398819983005523681640625
[2026-02-26 23:26:55] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 23:26:55] [INFO]   -> Found value: 2026-02-26 17:26:39
[2026-02-26 23:26:55] [INFO]   -> Set field 'alarm' = "2026-02-26 17:26:39"
[2026-02-26 23:26:55] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 23:26:55] [INFO]   -> Found value: 2026-02-26 17:26:39
[2026-02-26 23:26:55] [INFO]   -> Set field 'dispatched' = "2026-02-26 17:26:39"
[2026-02-26 23:26:55] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 23:26:55] [INFO]   -> No value found (null or empty)
[2026-02-26 23:26:55] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 23:26:55] [INFO]   -> No value found (null or empty)
[2026-02-26 23:26:55] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 23:26:55] [INFO]   -> No value found (null or empty)
[2026-02-26 23:26:55] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 23:26:55] [INFO]   -> Found value: AGEE ST/INDUSTRIAL DR
[2026-02-26 23:26:55] [INFO]   -> Set field 'incidentLocationCross' = "AGEE ST\/INDUSTRIAL DR"
[2026-02-26 23:26:55] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 23:26:55] [INFO]   -> Found value: PCFR
[2026-02-26 23:26:55] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-02-26 23:26:55] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 23:26:55] [INFO]   -> Found value: 2026-02-26 17:26:39
[2026-02-26 23:26:55] [INFO]   -> Set field 'timedispatch' = "2026-02-26 17:26:39"
[2026-02-26 23:26:55] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 23:26:55] [INFO]   -> No value found (null or empty)
[2026-02-26 23:26:55] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 23:26:55] [INFO]   -> No value found (null or empty)
[2026-02-26 23:26:55] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 23:26:55] [INFO]   -> No value found (null or empty)
[2026-02-26 23:26:55] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 23:26:55] [INFO]   -> No value found (null or empty)
[2026-02-26 23:26:55] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 23:26:55] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-02-26 23:26:55] [INFO]   -> Found value: 20260021527
[2026-02-26 23:26:55] [INFO]   -> Set field 'policeReportNumber' = "20260021527"
[2026-02-26 23:26:55] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 23:26:55] [INFO]   -> Found value: Event spawned from BREATHING PROBLEMS.  [02/26/2026 17:26:39 JBOHANNON] [EMS] O2 37  [02/26/26 17:26...
[2026-02-26 23:26:55] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 17:26:39 JBOHANNON] [EMS] O2 37  [02\/26\/26 17:26:38 JDICK] [EMS] 61 YOF\/\/CYNTHIA REPERT  [02\/26\/26 17:26:30 JDICK] [EMS] NOT RESPONDING  [02\/26\/26 17:26:09 JDICK] [EMS] IN VEH  BROWN GMC TRUCK  [02\/26\/26 17:25:59 JDICK] Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 17:25:37 JDICK]"
[2026-02-26 23:26:55] [INFO]   -> Set field 'cADLog' = "Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 17:26:39 JBOHANNON] [EMS] O2 37  [02\/26\/26 17:26:38 JDICK] [EMS] 61 YOF\/\/CYNTHIA REPERT  [02\/26\/26 17:26:30 JDICK] [EMS] NOT RESPONDING  [02\/26\/26 17:26:09 JDICK] [EMS] IN VEH  BROWN GMC TRUCK  [02\/26\/26 17:25:59 JDICK] Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 17:25:37 JDICK]"
[2026-02-26 23:26:55] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 23:26:55] [INFO]   -> Found value: MONTEREY
[2026-02-26 23:26:55] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-26 23:26:55] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 23:26:55] [INFO]   -> Found value: STRATTON
[2026-02-26 23:26:55] [INFO]   -> Set field 'streetName' = "STRATTON"
[2026-02-26 23:26:55] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 23:26:55] [INFO]   -> Found value: AVE
[2026-02-26 23:26:55] [INFO]   -> Set field 'streetType' = "AVE"
[2026-02-26 23:26:55] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 23:26:55] [INFO]   -> Found value: 509 E STRATTON AVE
[2026-02-26 23:26:55] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "509 E STRATTON AVE"
[2026-02-26 23:26:55] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-02-26 23:26:55] [INFO] Concatenating street name and type
[2026-02-26 23:26:55] [INFO]   -> Combined street name: STRATTON AVE
[2026-02-26 23:26:55] [INFO] Built locationCoordinates from lat/lng: 36.14006,-85.26762
[2026-02-26 23:26:55] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD\nRESC","incidentInternalId":"2026000541","dispatchRunNumber":"2026000541","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":509,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"MONTEREY SHELL","nERISIncidentLatitude":36.14005999999999829697117093019187450408935546875,"nERISIncidentLongitude":-85.267619999999993751771398819983005523681640625,"alarm":"2026-02-26 17:26:39","dispatched":"2026-02-26 17:26:39","incidentLocationCross":"AGEE ST\/INDUSTRIAL DR","cADVehicleID":"PCFR","timedispatch":"2026-02-26 17:26:39","policeReportNumber":"20260021527","dispatchNotes":"Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 17:26:39 JBOHANNON] [EMS] O2 37  [02\/26\/26 17:26:38 JDICK] [EMS] 61 YOF\/\/CYNTHIA REPERT  [02\/26\/26 17:26:30 JDICK] [EMS] NOT RESPONDING  [02\/26\/26 17:26:09 JDICK] [EMS] IN VEH  BROWN GMC TRUCK  [02\/26\/26 17:25:59 JDICK] Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 17:25:37 JDICK]","cADLog":"Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 17:26:39 JBOHANNON] [EMS] O2 37  [02\/26\/26 17:26:38 JDICK] [EMS] 61 YOF\/\/CYNTHIA REPERT  [02\/26\/26 17:26:30 JDICK] [EMS] NOT RESPONDING  [02\/26\/26 17:26:09 JDICK] [EMS] IN VEH  BROWN GMC TRUCK  [02\/26\/26 17:25:59 JDICK] Event spawned from BREATHING PROBLEMS.  [02\/26\/2026 17:25:37 JDICK]","incidentLocationCity":"MONTEREY","streetName":"STRATTON AVE","incidentAddressTextVersionStreet":"509 E STRATTON AVE","locationCoordinates":"36.14006,-85.26762"}
[2026-02-26 23:26:55] [INFO] Number of extracted fields: 22
[2026-02-26 23:26:55] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD
RESC'
[2026-02-26 23:26:55] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD
RESC', Parsed IDs = ["PCFD","EMS","MFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-02-26 23:26:55] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD","RESC"]
[2026-02-26 23:26:55] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-02-26 23:26:55] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-02-26 23:26:55] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD","RESC"]
[2026-02-26 23:26:55] [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-02-26 23:26:55] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-02-26 23:26:55] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-02-26 23:26:55] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-02-26 23:26:55] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-02-26 23:26:55] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-02-26 23:27:06] [INFO] Created new Dispatches record with ID: 69a0d6c04d88c0dda
[2026-02-26 23:27:06] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 23:27:06] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 23:27:09] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 23:27:09] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021527_20260226_232648.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 23:27:09] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-02-26 23:36:37] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260021534_20260226_233637.XML
[2026-02-26 23:36:37] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260021534_20260226_233637.XML for user: 68f1466aed072ad4a
[2026-02-26 23:36:37] [INFO] File size: 4619 bytes
[2026-02-26 23:36:37] [INFO] Created FTPFiles record with ID: 69a0d9056deacc99f
[2026-02-26 23:36:37] [INFO] About to extract fields from XML. File size: 4619 bytes
[2026-02-26 23:36:37] [INFO] Number of mappings: 28
[2026-02-26 23:36:37] [INFO] Starting XML parsing. Content length: 4619
[2026-02-26 23:36:37] [INFO] XML parsed successfully. Root element: CADExport
[2026-02-26 23:36:37] [INFO] Processing 28 field mappings
[2026-02-26 23:36:37] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-02-26 23:36:37] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-02-26 23:36:37] [INFO]   -> Found value: MFD
[2026-02-26 23:36:37] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD"
[2026-02-26 23:36:37] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-02-26 23:36:37] [INFO]   -> Found value: 2026000074
[2026-02-26 23:36:37] [INFO]   -> Set field 'incidentInternalId' = "2026000074"
[2026-02-26 23:36:37] [INFO]   -> Set field 'dispatchRunNumber' = "2026000074"
[2026-02-26 23:36:37] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-02-26 23:36:37] [INFO]   -> Found value: ILLEGAL BURN
[2026-02-26 23:36:37] [INFO]   -> Set field 'incidentTypeValue1' = "ILLEGAL BURN"
[2026-02-26 23:36:37] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-02-26 23:36:37] [INFO]   -> Found value: 516
[2026-02-26 23:36:37] [INFO]   -> Set field 'incidentLocationStreetNumber' = 516
[2026-02-26 23:36:37] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-02-26 23:36:37] [INFO]   -> Found value: TN
[2026-02-26 23:36:37] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-02-26 23:36:37] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-02-26 23:36:37] [INFO]   -> Found value: 38574
[2026-02-26 23:36:37] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-02-26 23:36:37] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-02-26 23:36:37] [INFO]   -> No value found (null or empty)
[2026-02-26 23:36:37] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-02-26 23:36:37] [INFO]   -> No value found (null or empty)
[2026-02-26 23:36:37] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-02-26 23:36:37] [INFO]   -> Found value: 36.15057
[2026-02-26 23:36:37] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1505700000000018690116121433675289154052734375
[2026-02-26 23:36:37] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-02-26 23:36:37] [INFO]   -> Found value: -85.26395
[2026-02-26 23:36:37] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.263949999999994133759173564612865447998046875
[2026-02-26 23:36:37] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-02-26 23:36:37] [INFO]   -> Found value: 2026-02-26 17:35:24
[2026-02-26 23:36:37] [INFO]   -> Set field 'alarm' = "2026-02-26 17:35:24"
[2026-02-26 23:36:37] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-02-26 23:36:37] [INFO]   -> Found value: 2026-02-26 17:36:26
[2026-02-26 23:36:37] [INFO]   -> Set field 'dispatched' = "2026-02-26 17:36:26"
[2026-02-26 23:36:37] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-02-26 23:36:37] [INFO]   -> No value found (null or empty)
[2026-02-26 23:36:37] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-02-26 23:36:37] [INFO]   -> No value found (null or empty)
[2026-02-26 23:36:37] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-02-26 23:36:37] [INFO]   -> No value found (null or empty)
[2026-02-26 23:36:37] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-02-26 23:36:37] [INFO]   -> Found value: JOHNSON AVE/E LOUIS AVE
[2026-02-26 23:36:37] [INFO]   -> Set field 'incidentLocationCross' = "JOHNSON AVE\/E LOUIS AVE"
[2026-02-26 23:36:37] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-02-26 23:36:37] [INFO]   -> Found value: MFEN1
[2026-02-26 23:36:37] [INFO]   -> Set field 'cADVehicleID' = "MFEN1"
[2026-02-26 23:36:37] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-02-26 23:36:37] [INFO]   -> Found value: 2026-02-26 17:36:26
[2026-02-26 23:36:37] [INFO]   -> Set field 'timedispatch' = "2026-02-26 17:36:26"
[2026-02-26 23:36:37] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-02-26 23:36:37] [INFO]   -> No value found (null or empty)
[2026-02-26 23:36:37] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-02-26 23:36:37] [INFO]   -> No value found (null or empty)
[2026-02-26 23:36:37] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-02-26 23:36:37] [INFO]   -> No value found (null or empty)
[2026-02-26 23:36:37] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-02-26 23:36:37] [INFO]   -> No value found (null or empty)
[2026-02-26 23:36:37] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-02-26 23:36:37] [INFO]   -> Found value: 20260021534
[2026-02-26 23:36:37] [INFO]   -> Set field 'policeReportNumber' = "20260021534"
[2026-02-26 23:36:37] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-02-26 23:36:37] [INFO]   -> No value found (null or empty)
[2026-02-26 23:36:37] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-02-26 23:36:37] [INFO]   -> Found value: MONTEREY
[2026-02-26 23:36:37] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-02-26 23:36:37] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-02-26 23:36:37] [INFO]   -> Found value: HOLLY
[2026-02-26 23:36:37] [INFO]   -> Set field 'streetName' = "HOLLY"
[2026-02-26 23:36:37] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-02-26 23:36:37] [INFO]   -> Found value: ST
[2026-02-26 23:36:37] [INFO]   -> Set field 'streetType' = "ST"
[2026-02-26 23:36:37] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-02-26 23:36:37] [INFO]   -> Found value: 516 N HOLLY ST
[2026-02-26 23:36:37] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "516 N HOLLY ST"
[2026-02-26 23:36:37] [INFO] Finished extracting fields. Total fields extracted: 19
[2026-02-26 23:36:37] [INFO] Concatenating street name and type
[2026-02-26 23:36:37] [INFO]   -> Combined street name: HOLLY ST
[2026-02-26 23:36:37] [INFO] Built locationCoordinates from lat/lng: 36.15057,-85.26395
[2026-02-26 23:36:37] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD","incidentInternalId":"2026000074","dispatchRunNumber":"2026000074","incidentTypeValue1":"ILLEGAL BURN","incidentLocationStreetNumber":516,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1505700000000018690116121433675289154052734375,"nERISIncidentLongitude":-85.263949999999994133759173564612865447998046875,"alarm":"2026-02-26 17:35:24","dispatched":"2026-02-26 17:36:26","incidentLocationCross":"JOHNSON AVE\/E LOUIS AVE","cADVehicleID":"MFEN1","timedispatch":"2026-02-26 17:36:26","policeReportNumber":"20260021534","incidentLocationCity":"MONTEREY","streetName":"HOLLY ST","incidentAddressTextVersionStreet":"516 N HOLLY ST","locationCoordinates":"36.15057,-85.26395"}
[2026-02-26 23:36:37] [INFO] Number of extracted fields: 19
[2026-02-26 23:36:37] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD'
[2026-02-26 23:36:37] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD', Parsed IDs = ["MFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-02-26 23:36:37] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD"]
[2026-02-26 23:36:37] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-02-26 23:36:37] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-02-26 23:36:37] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-02-26 23:36:37] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-02-26 23:36:37] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-02-26 23:36:38] [INFO] Found existing IncidentTypeMapping with ID: 698fa39da5e201935
[2026-02-26 23:36:41] [INFO] Created new Dispatches record with ID: 69a0d90659d90a8c1
[2026-02-26 23:36:41] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-02-26 23:36:41] [INFO] Using FTPS (SSL/TLS) connection
[2026-02-26 23:36:44] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-02-26 23:36:44] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260021534_20260226_233637.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-02-26 23:36:44] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
