[2026-03-02 12:57:12] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022545_20260302_125712.XML
[2026-03-02 12:57:12] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022545_20260302_125712.XML for user: 68f1466aed072ad4a
[2026-03-02 12:57:12] [INFO] File size: 6188 bytes
[2026-03-02 12:57:13] [INFO] Created FTPFiles record with ID: 69a58929043f3ff3f
[2026-03-02 12:57:13] [INFO] About to extract fields from XML. File size: 6188 bytes
[2026-03-02 12:57:13] [INFO] Number of mappings: 28
[2026-03-02 12:57:13] [INFO] Starting XML parsing. Content length: 6188
[2026-03-02 12:57:13] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:57:13] [INFO] Processing 28 field mappings
[2026-03-02 12:57:13] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:57:13] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:57:13] [INFO]   -> Found value: AFD
[2026-03-02 12:57:13] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-03-02 12:57:13] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:57:13] [INFO]   -> Found value: 2026000095
[2026-03-02 12:57:13] [INFO]   -> Set field 'incidentInternalId' = "2026000095"
[2026-03-02 12:57:13] [INFO]   -> Set field 'dispatchRunNumber' = "2026000095"
[2026-03-02 12:57:13] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:57:13] [INFO]   -> Found value: FALL VICTIM
[2026-03-02 12:57:13] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-02 12:57:13] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:57:13] [INFO]   -> Found value: 185
[2026-03-02 12:57:13] [INFO]   -> Set field 'incidentLocationStreetNumber' = 185
[2026-03-02 12:57:13] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:57:13] [INFO]   -> Found value: TN
[2026-03-02 12:57:13] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:57:13] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:57:13] [INFO]   -> Found value: 38506
[2026-03-02 12:57:13] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 12:57:13] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:57:13] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:13] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:57:13] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:13] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:57:13] [INFO]   -> Found value: 36.18819
[2026-03-02 12:57:13] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18818999999999874717104830779135227203369140625
[2026-03-02 12:57:13] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:57:13] [INFO]   -> Found value: -85.45068
[2026-03-02 12:57:13] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.450680000000005520632839761674404144287109375
[2026-03-02 12:57:13] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:57:13] [INFO]   -> Found value: 2026-03-01 07:15:46
[2026-03-02 12:57:13] [INFO]   -> Set field 'alarm' = "2026-03-01 07:15:46"
[2026-03-02 12:57:13] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:57:13] [INFO]   -> Found value: 2026-03-01 07:17:05
[2026-03-02 12:57:13] [INFO]   -> Set field 'dispatched' = "2026-03-01 07:17:05"
[2026-03-02 12:57:13] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:57:13] [INFO]   -> Found value: 2026-03-01 07:17:39
[2026-03-02 12:57:13] [INFO]   -> Set field 'enroute' = "2026-03-01 07:17:39"
[2026-03-02 12:57:13] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:57:13] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:13] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:57:13] [INFO]   -> Found value: 2026-03-01 07:44:47
[2026-03-02 12:57:13] [INFO]   -> Set field 'cleared' = "2026-03-01 07:44:47"
[2026-03-02 12:57:13] [INFO]   -> Set field 'inService' = "2026-03-01 07:44:47"
[2026-03-02 12:57:13] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:57:13] [INFO]   -> Found value: MAXWELL ST/WILLIAMS SQ
[2026-03-02 12:57:13] [INFO]   -> Set field 'incidentLocationCross' = "MAXWELL ST\/WILLIAMS SQ"
[2026-03-02 12:57:13] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:57:13] [INFO]   -> Found value: A1221
[2026-03-02 12:57:13] [INFO]   -> Set field 'cADVehicleID' = "A1221"
[2026-03-02 12:57:13] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:57:13] [INFO]   -> Found value: 2026-03-01 07:17:34
[2026-03-02 12:57:13] [INFO]   -> Set field 'timedispatch' = "2026-03-01 07:17:34"
[2026-03-02 12:57:13] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:57:13] [INFO]   -> Found value: 2026-03-01 07:17:39
[2026-03-02 12:57:13] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 07:17:39"
[2026-03-02 12:57:13] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:57:13] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:13] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:57:13] [INFO]   -> Found value: 2026-03-01 07:44:47
[2026-03-02 12:57:13] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 07:44:47"
[2026-03-02 12:57:13] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:57:13] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:13] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:57:13] [INFO]   -> Found value: 20260022545
[2026-03-02 12:57:13] [INFO]   -> Set field 'policeReportNumber' = "20260022545"
[2026-03-02 12:57:13] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:57:13] [INFO]   -> Found value: [EMS] UDTS: UNIT DIRECT  [03/01/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03/01/2026 ...
[2026-03-02 12:57:13] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: UNIT DIRECT  [03\/01\/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03\/01\/2026 07:15:46 KBURTON] passed out \/ fall  97060 is the code to the pad on the outside of the grarge betty reed  non by request  cut equipment before getting on scene  [03\/01\/26 07:15:37 KBURTON]]"
[2026-03-02 12:57:13] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: UNIT DIRECT  [03\/01\/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03\/01\/2026 07:15:46 KBURTON] passed out \/ fall  97060 is the code to the pad on the outside of the grarge betty reed  non by request  cut equipment before getting on scene  [03\/01\/26 07:15:37 KBURTON]]"
[2026-03-02 12:57:13] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:57:13] [INFO]   -> Found value: ALGOOD
[2026-03-02 12:57:13] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-02 12:57:13] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:57:13] [INFO]   -> Found value: DRY VALLEY
[2026-03-02 12:57:13] [INFO]   -> Set field 'streetName' = "DRY VALLEY"
[2026-03-02 12:57:13] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:57:13] [INFO]   -> Found value: RD
[2026-03-02 12:57:13] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 12:57:13] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:57:13] [INFO]   -> Found value: 185 DRY VALLEY RD
[2026-03-02 12:57:13] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "185 DRY VALLEY RD"
[2026-03-02 12:57:13] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 12:57:13] [INFO] Concatenating street name and type
[2026-03-02 12:57:13] [INFO]   -> Combined street name: DRY VALLEY RD
[2026-03-02 12:57:13] [INFO] Built locationCoordinates from lat/lng: 36.18819,-85.45068
[2026-03-02 12:57:13] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000095","dispatchRunNumber":"2026000095","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":185,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.18818999999999874717104830779135227203369140625,"nERISIncidentLongitude":-85.450680000000005520632839761674404144287109375,"alarm":"2026-03-01 07:15:46","dispatched":"2026-03-01 07:17:05","enroute":"2026-03-01 07:17:39","cleared":"2026-03-01 07:44:47","inService":"2026-03-01 07:44:47","incidentLocationCross":"MAXWELL ST\/WILLIAMS SQ","cADVehicleID":"A1221","timedispatch":"2026-03-01 07:17:34","timeenroutetoscene":"2026-03-01 07:17:39","timeunitclear":"2026-03-01 07:44:47","policeReportNumber":"20260022545","dispatchNotes":"[EMS] UDTS: UNIT DIRECT  [03\/01\/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03\/01\/2026 07:15:46 KBURTON] passed out \/ fall  97060 is the code to the pad on the outside of the grarge betty reed  non by request  cut equipment before getting on scene  [03\/01\/26 07:15:37 KBURTON]]","cADLog":"[EMS] UDTS: UNIT DIRECT  [03\/01\/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03\/01\/2026 07:15:46 KBURTON] passed out \/ fall  97060 is the code to the pad on the outside of the grarge betty reed  non by request  cut equipment before getting on scene  [03\/01\/26 07:15:37 KBURTON]]","incidentLocationCity":"ALGOOD","streetName":"DRY VALLEY RD","incidentAddressTextVersionStreet":"185 DRY VALLEY RD","locationCoordinates":"36.18819,-85.45068"}
[2026-03-02 12:57:13] [INFO] Number of extracted fields: 26
[2026-03-02 12:57:13] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-03-02 12:57:13] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-02 12:57:13] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-03-02 12:57:13] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:57:13] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-02 12:57:13] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-02 12:57:13] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-02 12:57:13] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-02 12:57:13] [INFO] Found existing IncidentTypeMapping with ID: 6952a99bba1f92574
[2026-03-02 12:57:19] [INFO] Created new Dispatches record with ID: 69a58929e0bbb017b
[2026-03-02 12:57:19] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:57:19] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:57:23] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:57:23] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022545_20260302_125712.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:57:23] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:57:23] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022545_20260302_125712.XML
[2026-03-02 12:57:23] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022545_20260302_125712.XML for user: 68f1466aed072ad4a
[2026-03-02 12:57:23] [INFO] File size: 6188 bytes
[2026-03-02 12:57:23] [INFO] Created FTPFiles record with ID: 69a589337caba883c
[2026-03-02 12:57:23] [INFO] About to extract fields from XML. File size: 6188 bytes
[2026-03-02 12:57:23] [INFO] Number of mappings: 28
[2026-03-02 12:57:23] [INFO] Starting XML parsing. Content length: 6188
[2026-03-02 12:57:23] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:57:23] [INFO] Processing 28 field mappings
[2026-03-02 12:57:23] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:57:23] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:57:23] [INFO]   -> Found value: AFD
[2026-03-02 12:57:23] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-03-02 12:57:23] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:57:23] [INFO]   -> Found value: 2026000095
[2026-03-02 12:57:23] [INFO]   -> Set field 'incidentInternalId' = "2026000095"
[2026-03-02 12:57:23] [INFO]   -> Set field 'dispatchRunNumber' = "2026000095"
[2026-03-02 12:57:23] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:57:23] [INFO]   -> Found value: FALL VICTIM
[2026-03-02 12:57:23] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-02 12:57:23] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:57:23] [INFO]   -> Found value: 185
[2026-03-02 12:57:23] [INFO]   -> Set field 'incidentLocationStreetNumber' = 185
[2026-03-02 12:57:23] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:57:23] [INFO]   -> Found value: TN
[2026-03-02 12:57:23] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:57:23] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:57:23] [INFO]   -> Found value: 38506
[2026-03-02 12:57:23] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 12:57:23] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:57:23] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:23] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:57:23] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:23] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:57:23] [INFO]   -> Found value: 36.18819
[2026-03-02 12:57:23] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18818999999999874717104830779135227203369140625
[2026-03-02 12:57:23] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:57:23] [INFO]   -> Found value: -85.45068
[2026-03-02 12:57:23] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.450680000000005520632839761674404144287109375
[2026-03-02 12:57:23] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:57:23] [INFO]   -> Found value: 2026-03-01 07:15:46
[2026-03-02 12:57:23] [INFO]   -> Set field 'alarm' = "2026-03-01 07:15:46"
[2026-03-02 12:57:23] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:57:23] [INFO]   -> Found value: 2026-03-01 07:17:05
[2026-03-02 12:57:23] [INFO]   -> Set field 'dispatched' = "2026-03-01 07:17:05"
[2026-03-02 12:57:23] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:57:23] [INFO]   -> Found value: 2026-03-01 07:17:39
[2026-03-02 12:57:23] [INFO]   -> Set field 'enroute' = "2026-03-01 07:17:39"
[2026-03-02 12:57:23] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:57:23] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:23] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:57:23] [INFO]   -> Found value: 2026-03-01 07:44:47
[2026-03-02 12:57:23] [INFO]   -> Set field 'cleared' = "2026-03-01 07:44:47"
[2026-03-02 12:57:23] [INFO]   -> Set field 'inService' = "2026-03-01 07:44:47"
[2026-03-02 12:57:23] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:57:23] [INFO]   -> Found value: MAXWELL ST/WILLIAMS SQ
[2026-03-02 12:57:23] [INFO]   -> Set field 'incidentLocationCross' = "MAXWELL ST\/WILLIAMS SQ"
[2026-03-02 12:57:23] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:57:23] [INFO]   -> Found value: A1221
[2026-03-02 12:57:23] [INFO]   -> Set field 'cADVehicleID' = "A1221"
[2026-03-02 12:57:23] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:57:23] [INFO]   -> Found value: 2026-03-01 07:17:34
[2026-03-02 12:57:23] [INFO]   -> Set field 'timedispatch' = "2026-03-01 07:17:34"
[2026-03-02 12:57:23] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:57:23] [INFO]   -> Found value: 2026-03-01 07:17:39
[2026-03-02 12:57:23] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 07:17:39"
[2026-03-02 12:57:23] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:57:23] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:23] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:57:23] [INFO]   -> Found value: 2026-03-01 07:44:47
[2026-03-02 12:57:23] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 07:44:47"
[2026-03-02 12:57:23] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:57:23] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:23] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:57:23] [INFO]   -> Found value: 20260022545
[2026-03-02 12:57:23] [INFO]   -> Set field 'policeReportNumber' = "20260022545"
[2026-03-02 12:57:23] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:57:23] [INFO]   -> Found value: [EMS] UDTS: UNIT DIRECT  [03/01/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03/01/2026 ...
[2026-03-02 12:57:23] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: UNIT DIRECT  [03\/01\/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03\/01\/2026 07:15:46 KBURTON] passed out \/ fall  97060 is the code to the pad on the outside of the grarge betty reed  non by request  cut equipment before getting on scene  [03\/01\/26 07:15:37 KBURTON]]"
[2026-03-02 12:57:23] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: UNIT DIRECT  [03\/01\/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03\/01\/2026 07:15:46 KBURTON] passed out \/ fall  97060 is the code to the pad on the outside of the grarge betty reed  non by request  cut equipment before getting on scene  [03\/01\/26 07:15:37 KBURTON]]"
[2026-03-02 12:57:23] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:57:23] [INFO]   -> Found value: ALGOOD
[2026-03-02 12:57:23] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-02 12:57:23] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:57:23] [INFO]   -> Found value: DRY VALLEY
[2026-03-02 12:57:23] [INFO]   -> Set field 'streetName' = "DRY VALLEY"
[2026-03-02 12:57:23] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:57:23] [INFO]   -> Found value: RD
[2026-03-02 12:57:23] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 12:57:23] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:57:23] [INFO]   -> Found value: 185 DRY VALLEY RD
[2026-03-02 12:57:23] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "185 DRY VALLEY RD"
[2026-03-02 12:57:23] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 12:57:23] [INFO] Concatenating street name and type
[2026-03-02 12:57:23] [INFO]   -> Combined street name: DRY VALLEY RD
[2026-03-02 12:57:23] [INFO] Built locationCoordinates from lat/lng: 36.18819,-85.45068
[2026-03-02 12:57:23] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000095","dispatchRunNumber":"2026000095","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":185,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.18818999999999874717104830779135227203369140625,"nERISIncidentLongitude":-85.450680000000005520632839761674404144287109375,"alarm":"2026-03-01 07:15:46","dispatched":"2026-03-01 07:17:05","enroute":"2026-03-01 07:17:39","cleared":"2026-03-01 07:44:47","inService":"2026-03-01 07:44:47","incidentLocationCross":"MAXWELL ST\/WILLIAMS SQ","cADVehicleID":"A1221","timedispatch":"2026-03-01 07:17:34","timeenroutetoscene":"2026-03-01 07:17:39","timeunitclear":"2026-03-01 07:44:47","policeReportNumber":"20260022545","dispatchNotes":"[EMS] UDTS: UNIT DIRECT  [03\/01\/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03\/01\/2026 07:15:46 KBURTON] passed out \/ fall  97060 is the code to the pad on the outside of the grarge betty reed  non by request  cut equipment before getting on scene  [03\/01\/26 07:15:37 KBURTON]]","cADLog":"[EMS] UDTS: UNIT DIRECT  [03\/01\/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03\/01\/2026 07:15:46 KBURTON] passed out \/ fall  97060 is the code to the pad on the outside of the grarge betty reed  non by request  cut equipment before getting on scene  [03\/01\/26 07:15:37 KBURTON]]","incidentLocationCity":"ALGOOD","streetName":"DRY VALLEY RD","incidentAddressTextVersionStreet":"185 DRY VALLEY RD","locationCoordinates":"36.18819,-85.45068"}
[2026-03-02 12:57:23] [INFO] Number of extracted fields: 26
[2026-03-02 12:57:23] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-03-02 12:57:23] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-02 12:57:23] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-03-02 12:57:23] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:57:23] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-02 12:57:23] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-02 12:57:23] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-02 12:57:24] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-02 12:57:24] [INFO] Found existing IncidentTypeMapping with ID: 6952a99bba1f92574
[2026-03-02 12:57:25] [INFO] Found existing Dispatch with cADNumber '2026000095', ID: 69a58929e0bbb017b - will update instead of create
[2026-03-02 12:57:25] [INFO] Updated existing Dispatches record with ID: 69a58929e0bbb017b
[2026-03-02 12:57:25] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:57:25] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:57:28] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:57:28] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022545_20260302_125712.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:57:28] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:57:28] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022545_20260302_125712_1.XML
[2026-03-02 12:57:28] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022545_20260302_125712_1.XML for user: 68f1466aed072ad4a
[2026-03-02 12:57:28] [INFO] File size: 6188 bytes
[2026-03-02 12:57:29] [INFO] Created FTPFiles record with ID: 69a58939450acd1f7
[2026-03-02 12:57:29] [INFO] About to extract fields from XML. File size: 6188 bytes
[2026-03-02 12:57:29] [INFO] Number of mappings: 28
[2026-03-02 12:57:29] [INFO] Starting XML parsing. Content length: 6188
[2026-03-02 12:57:29] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:57:29] [INFO] Processing 28 field mappings
[2026-03-02 12:57:29] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:57:29] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:57:29] [INFO]   -> Found value: AFD
[2026-03-02 12:57:29] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-03-02 12:57:29] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:57:29] [INFO]   -> Found value: 2026000095
[2026-03-02 12:57:29] [INFO]   -> Set field 'incidentInternalId' = "2026000095"
[2026-03-02 12:57:29] [INFO]   -> Set field 'dispatchRunNumber' = "2026000095"
[2026-03-02 12:57:29] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:57:29] [INFO]   -> Found value: FALL VICTIM
[2026-03-02 12:57:29] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-02 12:57:29] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:57:29] [INFO]   -> Found value: 185
[2026-03-02 12:57:29] [INFO]   -> Set field 'incidentLocationStreetNumber' = 185
[2026-03-02 12:57:29] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:57:29] [INFO]   -> Found value: TN
[2026-03-02 12:57:29] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:57:29] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:57:29] [INFO]   -> Found value: 38506
[2026-03-02 12:57:29] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 12:57:29] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:57:29] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:29] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:57:29] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:29] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:57:29] [INFO]   -> Found value: 36.18819
[2026-03-02 12:57:29] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18818999999999874717104830779135227203369140625
[2026-03-02 12:57:29] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:57:29] [INFO]   -> Found value: -85.45068
[2026-03-02 12:57:29] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.450680000000005520632839761674404144287109375
[2026-03-02 12:57:29] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:57:29] [INFO]   -> Found value: 2026-03-01 07:15:46
[2026-03-02 12:57:29] [INFO]   -> Set field 'alarm' = "2026-03-01 07:15:46"
[2026-03-02 12:57:29] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:57:29] [INFO]   -> Found value: 2026-03-01 07:17:05
[2026-03-02 12:57:29] [INFO]   -> Set field 'dispatched' = "2026-03-01 07:17:05"
[2026-03-02 12:57:29] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:57:29] [INFO]   -> Found value: 2026-03-01 07:17:39
[2026-03-02 12:57:29] [INFO]   -> Set field 'enroute' = "2026-03-01 07:17:39"
[2026-03-02 12:57:29] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:57:29] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:29] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:57:29] [INFO]   -> Found value: 2026-03-01 07:44:47
[2026-03-02 12:57:29] [INFO]   -> Set field 'cleared' = "2026-03-01 07:44:47"
[2026-03-02 12:57:29] [INFO]   -> Set field 'inService' = "2026-03-01 07:44:47"
[2026-03-02 12:57:29] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:57:29] [INFO]   -> Found value: MAXWELL ST/WILLIAMS SQ
[2026-03-02 12:57:29] [INFO]   -> Set field 'incidentLocationCross' = "MAXWELL ST\/WILLIAMS SQ"
[2026-03-02 12:57:29] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:57:29] [INFO]   -> Found value: A1221
[2026-03-02 12:57:29] [INFO]   -> Set field 'cADVehicleID' = "A1221"
[2026-03-02 12:57:29] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:57:29] [INFO]   -> Found value: 2026-03-01 07:17:34
[2026-03-02 12:57:29] [INFO]   -> Set field 'timedispatch' = "2026-03-01 07:17:34"
[2026-03-02 12:57:29] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:57:29] [INFO]   -> Found value: 2026-03-01 07:17:39
[2026-03-02 12:57:29] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 07:17:39"
[2026-03-02 12:57:29] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:57:29] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:29] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:57:29] [INFO]   -> Found value: 2026-03-01 07:44:47
[2026-03-02 12:57:29] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 07:44:47"
[2026-03-02 12:57:29] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:57:29] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:29] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:57:29] [INFO]   -> Found value: 20260022545
[2026-03-02 12:57:29] [INFO]   -> Set field 'policeReportNumber' = "20260022545"
[2026-03-02 12:57:29] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:57:29] [INFO]   -> Found value: [EMS] UDTS: UNIT DIRECT  [03/01/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03/01/2026 ...
[2026-03-02 12:57:29] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: UNIT DIRECT  [03\/01\/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03\/01\/2026 07:15:46 KBURTON] passed out \/ fall  97060 is the code to the pad on the outside of the grarge betty reed  non by request  cut equipment before getting on scene  [03\/01\/26 07:15:37 KBURTON]]"
[2026-03-02 12:57:29] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: UNIT DIRECT  [03\/01\/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03\/01\/2026 07:15:46 KBURTON] passed out \/ fall  97060 is the code to the pad on the outside of the grarge betty reed  non by request  cut equipment before getting on scene  [03\/01\/26 07:15:37 KBURTON]]"
[2026-03-02 12:57:29] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:57:29] [INFO]   -> Found value: ALGOOD
[2026-03-02 12:57:29] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-02 12:57:29] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:57:29] [INFO]   -> Found value: DRY VALLEY
[2026-03-02 12:57:29] [INFO]   -> Set field 'streetName' = "DRY VALLEY"
[2026-03-02 12:57:29] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:57:29] [INFO]   -> Found value: RD
[2026-03-02 12:57:29] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 12:57:29] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:57:29] [INFO]   -> Found value: 185 DRY VALLEY RD
[2026-03-02 12:57:29] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "185 DRY VALLEY RD"
[2026-03-02 12:57:29] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 12:57:29] [INFO] Concatenating street name and type
[2026-03-02 12:57:29] [INFO]   -> Combined street name: DRY VALLEY RD
[2026-03-02 12:57:29] [INFO] Built locationCoordinates from lat/lng: 36.18819,-85.45068
[2026-03-02 12:57:29] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000095","dispatchRunNumber":"2026000095","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":185,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.18818999999999874717104830779135227203369140625,"nERISIncidentLongitude":-85.450680000000005520632839761674404144287109375,"alarm":"2026-03-01 07:15:46","dispatched":"2026-03-01 07:17:05","enroute":"2026-03-01 07:17:39","cleared":"2026-03-01 07:44:47","inService":"2026-03-01 07:44:47","incidentLocationCross":"MAXWELL ST\/WILLIAMS SQ","cADVehicleID":"A1221","timedispatch":"2026-03-01 07:17:34","timeenroutetoscene":"2026-03-01 07:17:39","timeunitclear":"2026-03-01 07:44:47","policeReportNumber":"20260022545","dispatchNotes":"[EMS] UDTS: UNIT DIRECT  [03\/01\/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03\/01\/2026 07:15:46 KBURTON] passed out \/ fall  97060 is the code to the pad on the outside of the grarge betty reed  non by request  cut equipment before getting on scene  [03\/01\/26 07:15:37 KBURTON]]","cADLog":"[EMS] UDTS: UNIT DIRECT  [03\/01\/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03\/01\/2026 07:15:46 KBURTON] passed out \/ fall  97060 is the code to the pad on the outside of the grarge betty reed  non by request  cut equipment before getting on scene  [03\/01\/26 07:15:37 KBURTON]]","incidentLocationCity":"ALGOOD","streetName":"DRY VALLEY RD","incidentAddressTextVersionStreet":"185 DRY VALLEY RD","locationCoordinates":"36.18819,-85.45068"}
[2026-03-02 12:57:29] [INFO] Number of extracted fields: 26
[2026-03-02 12:57:29] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-03-02 12:57:29] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-02 12:57:29] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-03-02 12:57:29] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:57:29] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-02 12:57:29] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-02 12:57:29] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-02 12:57:29] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-02 12:57:29] [INFO] Found existing IncidentTypeMapping with ID: 6952a99bba1f92574
[2026-03-02 12:57:30] [INFO] Found existing Dispatch with cADNumber '2026000095', ID: 69a58929e0bbb017b - will update instead of create
[2026-03-02 12:57:30] [INFO] Updated existing Dispatches record with ID: 69a58929e0bbb017b
[2026-03-02 12:57:30] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:57:30] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:57:33] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:57:33] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022545_20260302_125712_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:57:33] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:57:33] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022545_20260302_125712_1.XML
[2026-03-02 12:57:33] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022545_20260302_125712_1.XML for user: 68f1466aed072ad4a
[2026-03-02 12:57:33] [INFO] File size: 6188 bytes
[2026-03-02 12:57:33] [INFO] Created FTPFiles record with ID: 69a5893dbb1ea341f
[2026-03-02 12:57:33] [INFO] About to extract fields from XML. File size: 6188 bytes
[2026-03-02 12:57:33] [INFO] Number of mappings: 28
[2026-03-02 12:57:33] [INFO] Starting XML parsing. Content length: 6188
[2026-03-02 12:57:33] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:57:33] [INFO] Processing 28 field mappings
[2026-03-02 12:57:33] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:57:33] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:57:33] [INFO]   -> Found value: AFD
[2026-03-02 12:57:33] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-03-02 12:57:33] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:57:33] [INFO]   -> Found value: 2026000095
[2026-03-02 12:57:33] [INFO]   -> Set field 'incidentInternalId' = "2026000095"
[2026-03-02 12:57:33] [INFO]   -> Set field 'dispatchRunNumber' = "2026000095"
[2026-03-02 12:57:33] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:57:33] [INFO]   -> Found value: FALL VICTIM
[2026-03-02 12:57:33] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-02 12:57:33] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:57:33] [INFO]   -> Found value: 185
[2026-03-02 12:57:33] [INFO]   -> Set field 'incidentLocationStreetNumber' = 185
[2026-03-02 12:57:33] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:57:33] [INFO]   -> Found value: TN
[2026-03-02 12:57:33] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:57:33] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:57:33] [INFO]   -> Found value: 38506
[2026-03-02 12:57:33] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 12:57:33] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:57:33] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:33] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:57:33] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:33] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:57:33] [INFO]   -> Found value: 36.18819
[2026-03-02 12:57:33] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18818999999999874717104830779135227203369140625
[2026-03-02 12:57:33] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:57:33] [INFO]   -> Found value: -85.45068
[2026-03-02 12:57:33] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.450680000000005520632839761674404144287109375
[2026-03-02 12:57:33] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:57:33] [INFO]   -> Found value: 2026-03-01 07:15:46
[2026-03-02 12:57:33] [INFO]   -> Set field 'alarm' = "2026-03-01 07:15:46"
[2026-03-02 12:57:33] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:57:33] [INFO]   -> Found value: 2026-03-01 07:17:05
[2026-03-02 12:57:33] [INFO]   -> Set field 'dispatched' = "2026-03-01 07:17:05"
[2026-03-02 12:57:33] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:57:33] [INFO]   -> Found value: 2026-03-01 07:17:39
[2026-03-02 12:57:33] [INFO]   -> Set field 'enroute' = "2026-03-01 07:17:39"
[2026-03-02 12:57:33] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:57:33] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:33] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:57:33] [INFO]   -> Found value: 2026-03-01 07:44:47
[2026-03-02 12:57:33] [INFO]   -> Set field 'cleared' = "2026-03-01 07:44:47"
[2026-03-02 12:57:33] [INFO]   -> Set field 'inService' = "2026-03-01 07:44:47"
[2026-03-02 12:57:33] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:57:33] [INFO]   -> Found value: MAXWELL ST/WILLIAMS SQ
[2026-03-02 12:57:33] [INFO]   -> Set field 'incidentLocationCross' = "MAXWELL ST\/WILLIAMS SQ"
[2026-03-02 12:57:33] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:57:33] [INFO]   -> Found value: A1221
[2026-03-02 12:57:33] [INFO]   -> Set field 'cADVehicleID' = "A1221"
[2026-03-02 12:57:33] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:57:33] [INFO]   -> Found value: 2026-03-01 07:17:34
[2026-03-02 12:57:33] [INFO]   -> Set field 'timedispatch' = "2026-03-01 07:17:34"
[2026-03-02 12:57:33] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:57:33] [INFO]   -> Found value: 2026-03-01 07:17:39
[2026-03-02 12:57:33] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 07:17:39"
[2026-03-02 12:57:33] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:57:33] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:33] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:57:33] [INFO]   -> Found value: 2026-03-01 07:44:47
[2026-03-02 12:57:33] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 07:44:47"
[2026-03-02 12:57:33] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:57:33] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:33] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:57:33] [INFO]   -> Found value: 20260022545
[2026-03-02 12:57:33] [INFO]   -> Set field 'policeReportNumber' = "20260022545"
[2026-03-02 12:57:33] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:57:33] [INFO]   -> Found value: [EMS] UDTS: UNIT DIRECT  [03/01/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03/01/2026 ...
[2026-03-02 12:57:33] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: UNIT DIRECT  [03\/01\/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03\/01\/2026 07:15:46 KBURTON] passed out \/ fall  97060 is the code to the pad on the outside of the grarge betty reed  non by request  cut equipment before getting on scene  [03\/01\/26 07:15:37 KBURTON]]"
[2026-03-02 12:57:33] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: UNIT DIRECT  [03\/01\/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03\/01\/2026 07:15:46 KBURTON] passed out \/ fall  97060 is the code to the pad on the outside of the grarge betty reed  non by request  cut equipment before getting on scene  [03\/01\/26 07:15:37 KBURTON]]"
[2026-03-02 12:57:33] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:57:33] [INFO]   -> Found value: ALGOOD
[2026-03-02 12:57:33] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-02 12:57:33] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:57:33] [INFO]   -> Found value: DRY VALLEY
[2026-03-02 12:57:33] [INFO]   -> Set field 'streetName' = "DRY VALLEY"
[2026-03-02 12:57:33] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:57:33] [INFO]   -> Found value: RD
[2026-03-02 12:57:33] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 12:57:33] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:57:33] [INFO]   -> Found value: 185 DRY VALLEY RD
[2026-03-02 12:57:33] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "185 DRY VALLEY RD"
[2026-03-02 12:57:33] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 12:57:33] [INFO] Concatenating street name and type
[2026-03-02 12:57:33] [INFO]   -> Combined street name: DRY VALLEY RD
[2026-03-02 12:57:33] [INFO] Built locationCoordinates from lat/lng: 36.18819,-85.45068
[2026-03-02 12:57:33] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000095","dispatchRunNumber":"2026000095","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":185,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.18818999999999874717104830779135227203369140625,"nERISIncidentLongitude":-85.450680000000005520632839761674404144287109375,"alarm":"2026-03-01 07:15:46","dispatched":"2026-03-01 07:17:05","enroute":"2026-03-01 07:17:39","cleared":"2026-03-01 07:44:47","inService":"2026-03-01 07:44:47","incidentLocationCross":"MAXWELL ST\/WILLIAMS SQ","cADVehicleID":"A1221","timedispatch":"2026-03-01 07:17:34","timeenroutetoscene":"2026-03-01 07:17:39","timeunitclear":"2026-03-01 07:44:47","policeReportNumber":"20260022545","dispatchNotes":"[EMS] UDTS: UNIT DIRECT  [03\/01\/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03\/01\/2026 07:15:46 KBURTON] passed out \/ fall  97060 is the code to the pad on the outside of the grarge betty reed  non by request  cut equipment before getting on scene  [03\/01\/26 07:15:37 KBURTON]]","cADLog":"[EMS] UDTS: UNIT DIRECT  [03\/01\/26 07:17:22 JBOHANNON] Event spawned from FALL VICTIM.  [03\/01\/2026 07:15:46 KBURTON] passed out \/ fall  97060 is the code to the pad on the outside of the grarge betty reed  non by request  cut equipment before getting on scene  [03\/01\/26 07:15:37 KBURTON]]","incidentLocationCity":"ALGOOD","streetName":"DRY VALLEY RD","incidentAddressTextVersionStreet":"185 DRY VALLEY RD","locationCoordinates":"36.18819,-85.45068"}
[2026-03-02 12:57:33] [INFO] Number of extracted fields: 26
[2026-03-02 12:57:33] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-03-02 12:57:33] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-02 12:57:33] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-03-02 12:57:33] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:57:33] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-02 12:57:34] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-02 12:57:34] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-02 12:57:34] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-02 12:57:34] [INFO] Found existing IncidentTypeMapping with ID: 6952a99bba1f92574
[2026-03-02 12:57:34] [INFO] Found existing Dispatch with cADNumber '2026000095', ID: 69a58929e0bbb017b - will update instead of create
[2026-03-02 12:57:34] [INFO] Updated existing Dispatches record with ID: 69a58929e0bbb017b
[2026-03-02 12:57:34] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:57:34] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:57:37] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:57:37] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022545_20260302_125712_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:57:37] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:57:37] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022557_20260302_125716.XML
[2026-03-02 12:57:37] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022557_20260302_125716.XML for user: 68f1466aed072ad4a
[2026-03-02 12:57:37] [INFO] File size: 8401 bytes
[2026-03-02 12:57:38] [INFO] Created FTPFiles record with ID: 69a589420884ffecc
[2026-03-02 12:57:38] [INFO] About to extract fields from XML. File size: 8401 bytes
[2026-03-02 12:57:38] [INFO] Number of mappings: 28
[2026-03-02 12:57:38] [INFO] Starting XML parsing. Content length: 8401
[2026-03-02 12:57:38] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:57:38] [INFO] Processing 28 field mappings
[2026-03-02 12:57:38] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:57:38] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:57:38] [INFO]   -> Found value: AFD
[2026-03-02 12:57:38] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-03-02 12:57:38] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:57:38] [INFO]   -> Found value: 2026000096
[2026-03-02 12:57:38] [INFO]   -> Set field 'incidentInternalId' = "2026000096"
[2026-03-02 12:57:38] [INFO]   -> Set field 'dispatchRunNumber' = "2026000096"
[2026-03-02 12:57:38] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:57:38] [INFO]   -> Found value: FORCIBLE ENTRY
[2026-03-02 12:57:38] [INFO]   -> Set field 'incidentTypeValue1' = "FORCIBLE ENTRY"
[2026-03-02 12:57:38] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:57:38] [INFO]   -> Found value: 100
[2026-03-02 12:57:38] [INFO]   -> Set field 'incidentLocationStreetNumber' = 100
[2026-03-02 12:57:38] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:57:38] [INFO]   -> Found value: TN
[2026-03-02 12:57:38] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:57:38] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:57:38] [INFO]   -> Found value: 38506
[2026-03-02 12:57:38] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 12:57:38] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:57:38] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:38] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:57:38] [INFO]   -> Found value: 21
[2026-03-02 12:57:38] [INFO]   -> Set field 'incidentLocationApt' = 21
[2026-03-02 12:57:38] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:57:38] [INFO]   -> Found value: 36.19450
[2026-03-02 12:57:38] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19449999999999789679350215010344982147216796875
[2026-03-02 12:57:38] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:57:38] [INFO]   -> Found value: -85.44994
[2026-03-02 12:57:38] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.449939999999998008206603117287158966064453125
[2026-03-02 12:57:38] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:57:38] [INFO]   -> Found value: 2026-03-01 08:19:50
[2026-03-02 12:57:38] [INFO]   -> Set field 'alarm' = "2026-03-01 08:19:50"
[2026-03-02 12:57:38] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:57:38] [INFO]   -> Found value: 2026-03-01 08:20:20
[2026-03-02 12:57:38] [INFO]   -> Set field 'dispatched' = "2026-03-01 08:20:20"
[2026-03-02 12:57:38] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:57:38] [INFO]   -> Found value: 2026-03-01 08:20:44
[2026-03-02 12:57:38] [INFO]   -> Set field 'enroute' = "2026-03-01 08:20:44"
[2026-03-02 12:57:38] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:57:38] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:38] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:57:38] [INFO]   -> Found value: 2026-03-01 08:22:30
[2026-03-02 12:57:38] [INFO]   -> Set field 'cleared' = "2026-03-01 08:22:30"
[2026-03-02 12:57:38] [INFO]   -> Set field 'inService' = "2026-03-01 08:22:30"
[2026-03-02 12:57:38] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:57:38] [INFO]   -> Found value: W CHURCH ST
[2026-03-02 12:57:38] [INFO]   -> Set field 'incidentLocationCross' = "W CHURCH ST"
[2026-03-02 12:57:38] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:57:38] [INFO]   -> Found value: A1202
[2026-03-02 12:57:38] [INFO]   -> Set field 'cADVehicleID' = "A1202"
[2026-03-02 12:57:38] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:57:38] [INFO]   -> Found value: 2026-03-01 08:22:07
[2026-03-02 12:57:38] [INFO]   -> Set field 'timedispatch' = "2026-03-01 08:22:07"
[2026-03-02 12:57:38] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:57:38] [INFO]   -> Found value: 2026-03-01 08:22:07
[2026-03-02 12:57:38] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 08:22:07"
[2026-03-02 12:57:38] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:57:38] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:38] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:57:38] [INFO]   -> Found value: 2026-03-01 08:22:30
[2026-03-02 12:57:38] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 08:22:30"
[2026-03-02 12:57:38] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:57:38] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:38] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:57:38] [INFO]   -> Found value: 20260022557
[2026-03-02 12:57:38] [INFO]   -> Set field 'policeReportNumber' = "20260022557"
[2026-03-02 12:57:38] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:57:38] [INFO]   -> Found value: [EMS] {733} CANCEL FIRE  [03/01/26 08:22:19 JBOHANNON] Event spawned from EMS NON-EMERGENCY.  [03/01...
[2026-03-02 12:57:38] [INFO]   -> Set field 'dispatchNotes' = "[EMS] {733} CANCEL FIRE  [03\/01\/26 08:22:19 JBOHANNON] Event spawned from EMS NON-EMERGENCY.  [03\/01\/2026 08:19:50 JBOHANNON] FALL VICTIM  [03\/01\/26 08:06:10 JBOHANNON]"
[2026-03-02 12:57:38] [INFO]   -> Set field 'cADLog' = "[EMS] {733} CANCEL FIRE  [03\/01\/26 08:22:19 JBOHANNON] Event spawned from EMS NON-EMERGENCY.  [03\/01\/2026 08:19:50 JBOHANNON] FALL VICTIM  [03\/01\/26 08:06:10 JBOHANNON]"
[2026-03-02 12:57:38] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:57:38] [INFO]   -> Found value: ALGOOD
[2026-03-02 12:57:38] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-02 12:57:38] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:57:38] [INFO]   -> Found value: CHURCH
[2026-03-02 12:57:38] [INFO]   -> Set field 'streetName' = "CHURCH"
[2026-03-02 12:57:38] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:57:38] [INFO]   -> Found value: CT
[2026-03-02 12:57:38] [INFO]   -> Set field 'streetType' = "CT"
[2026-03-02 12:57:38] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:57:38] [INFO]   -> Found value: 100-21 CHURCH CT
[2026-03-02 12:57:38] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "100-21 CHURCH CT"
[2026-03-02 12:57:38] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 12:57:38] [INFO] Concatenating street name and type
[2026-03-02 12:57:38] [INFO]   -> Combined street name: CHURCH CT
[2026-03-02 12:57:38] [INFO] Built locationCoordinates from lat/lng: 36.1945,-85.44994
[2026-03-02 12:57:38] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000096","dispatchRunNumber":"2026000096","incidentTypeValue1":"FORCIBLE ENTRY","incidentLocationStreetNumber":100,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"incidentLocationApt":21,"nERISIncidentLatitude":36.19449999999999789679350215010344982147216796875,"nERISIncidentLongitude":-85.449939999999998008206603117287158966064453125,"alarm":"2026-03-01 08:19:50","dispatched":"2026-03-01 08:20:20","enroute":"2026-03-01 08:20:44","cleared":"2026-03-01 08:22:30","inService":"2026-03-01 08:22:30","incidentLocationCross":"W CHURCH ST","cADVehicleID":"A1202","timedispatch":"2026-03-01 08:22:07","timeenroutetoscene":"2026-03-01 08:22:07","timeunitclear":"2026-03-01 08:22:30","policeReportNumber":"20260022557","dispatchNotes":"[EMS] {733} CANCEL FIRE  [03\/01\/26 08:22:19 JBOHANNON] Event spawned from EMS NON-EMERGENCY.  [03\/01\/2026 08:19:50 JBOHANNON] FALL VICTIM  [03\/01\/26 08:06:10 JBOHANNON]","cADLog":"[EMS] {733} CANCEL FIRE  [03\/01\/26 08:22:19 JBOHANNON] Event spawned from EMS NON-EMERGENCY.  [03\/01\/2026 08:19:50 JBOHANNON] FALL VICTIM  [03\/01\/26 08:06:10 JBOHANNON]","incidentLocationCity":"ALGOOD","streetName":"CHURCH CT","incidentAddressTextVersionStreet":"100-21 CHURCH CT","locationCoordinates":"36.1945,-85.44994"}
[2026-03-02 12:57:38] [INFO] Number of extracted fields: 27
[2026-03-02 12:57:38] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-03-02 12:57:38] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-02 12:57:38] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-03-02 12:57:38] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:57:38] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-02 12:57:38] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-02 12:57:38] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-02 12:57:38] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-02 12:57:38] [INFO] Created new IncidentTypeMapping Data: {"cADIncidentType":"FORCIBLE ENTRY","saasclientId":"68910627445d6e167","name":"FORCIBLE ENTRY"}
[2026-03-02 12:57:38] [INFO] Created new IncidentTypeMapping with ID: 69a58942b6d9f1e09
[2026-03-02 12:57:43] [INFO] Created new Dispatches record with ID: 69a589430d7e67d3d
[2026-03-02 12:57:43] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:57:43] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:57:46] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:57:46] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022557_20260302_125716.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:57:46] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:57:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022557_20260302_125716_1.XML
[2026-03-02 12:57:46] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022557_20260302_125716_1.XML for user: 68f1466aed072ad4a
[2026-03-02 12:57:46] [INFO] File size: 8401 bytes
[2026-03-02 12:57:46] [INFO] Created FTPFiles record with ID: 69a5894aee02690b5
[2026-03-02 12:57:46] [INFO] About to extract fields from XML. File size: 8401 bytes
[2026-03-02 12:57:46] [INFO] Number of mappings: 28
[2026-03-02 12:57:46] [INFO] Starting XML parsing. Content length: 8401
[2026-03-02 12:57:46] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:57:46] [INFO] Processing 28 field mappings
[2026-03-02 12:57:46] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:57:46] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:57:46] [INFO]   -> Found value: AFD
[2026-03-02 12:57:46] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-03-02 12:57:46] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:57:46] [INFO]   -> Found value: 2026000096
[2026-03-02 12:57:46] [INFO]   -> Set field 'incidentInternalId' = "2026000096"
[2026-03-02 12:57:46] [INFO]   -> Set field 'dispatchRunNumber' = "2026000096"
[2026-03-02 12:57:46] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:57:46] [INFO]   -> Found value: FORCIBLE ENTRY
[2026-03-02 12:57:46] [INFO]   -> Set field 'incidentTypeValue1' = "FORCIBLE ENTRY"
[2026-03-02 12:57:46] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:57:46] [INFO]   -> Found value: 100
[2026-03-02 12:57:46] [INFO]   -> Set field 'incidentLocationStreetNumber' = 100
[2026-03-02 12:57:46] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:57:46] [INFO]   -> Found value: TN
[2026-03-02 12:57:46] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:57:46] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:57:46] [INFO]   -> Found value: 38506
[2026-03-02 12:57:46] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 12:57:46] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:57:46] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:46] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:57:46] [INFO]   -> Found value: 21
[2026-03-02 12:57:46] [INFO]   -> Set field 'incidentLocationApt' = 21
[2026-03-02 12:57:46] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:57:46] [INFO]   -> Found value: 36.19450
[2026-03-02 12:57:46] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19449999999999789679350215010344982147216796875
[2026-03-02 12:57:46] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:57:46] [INFO]   -> Found value: -85.44994
[2026-03-02 12:57:46] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.449939999999998008206603117287158966064453125
[2026-03-02 12:57:46] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:57:47] [INFO]   -> Found value: 2026-03-01 08:19:50
[2026-03-02 12:57:47] [INFO]   -> Set field 'alarm' = "2026-03-01 08:19:50"
[2026-03-02 12:57:47] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:57:47] [INFO]   -> Found value: 2026-03-01 08:20:20
[2026-03-02 12:57:47] [INFO]   -> Set field 'dispatched' = "2026-03-01 08:20:20"
[2026-03-02 12:57:47] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:57:47] [INFO]   -> Found value: 2026-03-01 08:20:44
[2026-03-02 12:57:47] [INFO]   -> Set field 'enroute' = "2026-03-01 08:20:44"
[2026-03-02 12:57:47] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:57:47] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:47] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:57:47] [INFO]   -> Found value: 2026-03-01 08:22:30
[2026-03-02 12:57:47] [INFO]   -> Set field 'cleared' = "2026-03-01 08:22:30"
[2026-03-02 12:57:47] [INFO]   -> Set field 'inService' = "2026-03-01 08:22:30"
[2026-03-02 12:57:47] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:57:47] [INFO]   -> Found value: W CHURCH ST
[2026-03-02 12:57:47] [INFO]   -> Set field 'incidentLocationCross' = "W CHURCH ST"
[2026-03-02 12:57:47] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:57:47] [INFO]   -> Found value: A1202
[2026-03-02 12:57:47] [INFO]   -> Set field 'cADVehicleID' = "A1202"
[2026-03-02 12:57:47] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:57:47] [INFO]   -> Found value: 2026-03-01 08:22:07
[2026-03-02 12:57:47] [INFO]   -> Set field 'timedispatch' = "2026-03-01 08:22:07"
[2026-03-02 12:57:47] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:57:47] [INFO]   -> Found value: 2026-03-01 08:22:07
[2026-03-02 12:57:47] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 08:22:07"
[2026-03-02 12:57:47] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:57:47] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:47] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:57:47] [INFO]   -> Found value: 2026-03-01 08:22:30
[2026-03-02 12:57:47] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 08:22:30"
[2026-03-02 12:57:47] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:57:47] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:47] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:57:47] [INFO]   -> Found value: 20260022557
[2026-03-02 12:57:47] [INFO]   -> Set field 'policeReportNumber' = "20260022557"
[2026-03-02 12:57:47] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:57:47] [INFO]   -> Found value: [EMS] {733} CANCEL FIRE  [03/01/26 08:22:19 JBOHANNON] Event spawned from EMS NON-EMERGENCY.  [03/01...
[2026-03-02 12:57:47] [INFO]   -> Set field 'dispatchNotes' = "[EMS] {733} CANCEL FIRE  [03\/01\/26 08:22:19 JBOHANNON] Event spawned from EMS NON-EMERGENCY.  [03\/01\/2026 08:19:50 JBOHANNON] FALL VICTIM  [03\/01\/26 08:06:10 JBOHANNON]"
[2026-03-02 12:57:47] [INFO]   -> Set field 'cADLog' = "[EMS] {733} CANCEL FIRE  [03\/01\/26 08:22:19 JBOHANNON] Event spawned from EMS NON-EMERGENCY.  [03\/01\/2026 08:19:50 JBOHANNON] FALL VICTIM  [03\/01\/26 08:06:10 JBOHANNON]"
[2026-03-02 12:57:47] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:57:47] [INFO]   -> Found value: ALGOOD
[2026-03-02 12:57:47] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-02 12:57:47] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:57:47] [INFO]   -> Found value: CHURCH
[2026-03-02 12:57:47] [INFO]   -> Set field 'streetName' = "CHURCH"
[2026-03-02 12:57:47] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:57:47] [INFO]   -> Found value: CT
[2026-03-02 12:57:47] [INFO]   -> Set field 'streetType' = "CT"
[2026-03-02 12:57:47] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:57:47] [INFO]   -> Found value: 100-21 CHURCH CT
[2026-03-02 12:57:47] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "100-21 CHURCH CT"
[2026-03-02 12:57:47] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 12:57:47] [INFO] Concatenating street name and type
[2026-03-02 12:57:47] [INFO]   -> Combined street name: CHURCH CT
[2026-03-02 12:57:47] [INFO] Built locationCoordinates from lat/lng: 36.1945,-85.44994
[2026-03-02 12:57:47] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000096","dispatchRunNumber":"2026000096","incidentTypeValue1":"FORCIBLE ENTRY","incidentLocationStreetNumber":100,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"incidentLocationApt":21,"nERISIncidentLatitude":36.19449999999999789679350215010344982147216796875,"nERISIncidentLongitude":-85.449939999999998008206603117287158966064453125,"alarm":"2026-03-01 08:19:50","dispatched":"2026-03-01 08:20:20","enroute":"2026-03-01 08:20:44","cleared":"2026-03-01 08:22:30","inService":"2026-03-01 08:22:30","incidentLocationCross":"W CHURCH ST","cADVehicleID":"A1202","timedispatch":"2026-03-01 08:22:07","timeenroutetoscene":"2026-03-01 08:22:07","timeunitclear":"2026-03-01 08:22:30","policeReportNumber":"20260022557","dispatchNotes":"[EMS] {733} CANCEL FIRE  [03\/01\/26 08:22:19 JBOHANNON] Event spawned from EMS NON-EMERGENCY.  [03\/01\/2026 08:19:50 JBOHANNON] FALL VICTIM  [03\/01\/26 08:06:10 JBOHANNON]","cADLog":"[EMS] {733} CANCEL FIRE  [03\/01\/26 08:22:19 JBOHANNON] Event spawned from EMS NON-EMERGENCY.  [03\/01\/2026 08:19:50 JBOHANNON] FALL VICTIM  [03\/01\/26 08:06:10 JBOHANNON]","incidentLocationCity":"ALGOOD","streetName":"CHURCH CT","incidentAddressTextVersionStreet":"100-21 CHURCH CT","locationCoordinates":"36.1945,-85.44994"}
[2026-03-02 12:57:47] [INFO] Number of extracted fields: 27
[2026-03-02 12:57:47] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-03-02 12:57:47] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-02 12:57:47] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-03-02 12:57:47] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:57:47] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-02 12:57:47] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-02 12:57:47] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-02 12:57:47] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-02 12:57:47] [INFO] Found existing IncidentTypeMapping with ID: 69a58942b6d9f1e09
[2026-03-02 12:57:47] [INFO] Found existing Dispatch with cADNumber '2026000096', ID: 69a589430d7e67d3d - will update instead of create
[2026-03-02 12:57:47] [INFO] Updated existing Dispatches record with ID: 69a589430d7e67d3d
[2026-03-02 12:57:47] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:57:47] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:57: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-03-02 12:57:51] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022557_20260302_125716_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:57:51] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:57:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022557_20260302_125716_1.XML
[2026-03-02 12:57:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022557_20260302_125716_1.XML for user: 68f1466aed072ad4a
[2026-03-02 12:57:51] [INFO] File size: 8401 bytes
[2026-03-02 12:57:51] [INFO] Created FTPFiles record with ID: 69a5894f5d723a869
[2026-03-02 12:57:51] [INFO] About to extract fields from XML. File size: 8401 bytes
[2026-03-02 12:57:51] [INFO] Number of mappings: 28
[2026-03-02 12:57:51] [INFO] Starting XML parsing. Content length: 8401
[2026-03-02 12:57:51] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:57:51] [INFO] Processing 28 field mappings
[2026-03-02 12:57:51] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:57:51] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:57:51] [INFO]   -> Found value: AFD
[2026-03-02 12:57:51] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-03-02 12:57:51] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:57:51] [INFO]   -> Found value: 2026000096
[2026-03-02 12:57:51] [INFO]   -> Set field 'incidentInternalId' = "2026000096"
[2026-03-02 12:57:51] [INFO]   -> Set field 'dispatchRunNumber' = "2026000096"
[2026-03-02 12:57:51] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:57:51] [INFO]   -> Found value: FORCIBLE ENTRY
[2026-03-02 12:57:51] [INFO]   -> Set field 'incidentTypeValue1' = "FORCIBLE ENTRY"
[2026-03-02 12:57:51] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:57:51] [INFO]   -> Found value: 100
[2026-03-02 12:57:51] [INFO]   -> Set field 'incidentLocationStreetNumber' = 100
[2026-03-02 12:57:51] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:57:51] [INFO]   -> Found value: TN
[2026-03-02 12:57:51] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:57:51] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:57:51] [INFO]   -> Found value: 38506
[2026-03-02 12:57:51] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 12:57:51] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:57:51] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:51] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:57:51] [INFO]   -> Found value: 21
[2026-03-02 12:57:51] [INFO]   -> Set field 'incidentLocationApt' = 21
[2026-03-02 12:57:51] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:57:51] [INFO]   -> Found value: 36.19450
[2026-03-02 12:57:51] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19449999999999789679350215010344982147216796875
[2026-03-02 12:57:51] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:57:51] [INFO]   -> Found value: -85.44994
[2026-03-02 12:57:51] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.449939999999998008206603117287158966064453125
[2026-03-02 12:57:51] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:57:51] [INFO]   -> Found value: 2026-03-01 08:19:50
[2026-03-02 12:57:51] [INFO]   -> Set field 'alarm' = "2026-03-01 08:19:50"
[2026-03-02 12:57:51] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:57:51] [INFO]   -> Found value: 2026-03-01 08:20:20
[2026-03-02 12:57:51] [INFO]   -> Set field 'dispatched' = "2026-03-01 08:20:20"
[2026-03-02 12:57:51] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:57:51] [INFO]   -> Found value: 2026-03-01 08:20:44
[2026-03-02 12:57:51] [INFO]   -> Set field 'enroute' = "2026-03-01 08:20:44"
[2026-03-02 12:57:51] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:57:51] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:51] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:57:51] [INFO]   -> Found value: 2026-03-01 08:22:30
[2026-03-02 12:57:51] [INFO]   -> Set field 'cleared' = "2026-03-01 08:22:30"
[2026-03-02 12:57:51] [INFO]   -> Set field 'inService' = "2026-03-01 08:22:30"
[2026-03-02 12:57:51] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:57:51] [INFO]   -> Found value: W CHURCH ST
[2026-03-02 12:57:51] [INFO]   -> Set field 'incidentLocationCross' = "W CHURCH ST"
[2026-03-02 12:57:51] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:57:51] [INFO]   -> Found value: A1202
[2026-03-02 12:57:51] [INFO]   -> Set field 'cADVehicleID' = "A1202"
[2026-03-02 12:57:51] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:57:51] [INFO]   -> Found value: 2026-03-01 08:22:07
[2026-03-02 12:57:51] [INFO]   -> Set field 'timedispatch' = "2026-03-01 08:22:07"
[2026-03-02 12:57:51] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:57:51] [INFO]   -> Found value: 2026-03-01 08:22:07
[2026-03-02 12:57:51] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 08:22:07"
[2026-03-02 12:57:51] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:57:51] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:51] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:57:51] [INFO]   -> Found value: 2026-03-01 08:22:30
[2026-03-02 12:57:51] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 08:22:30"
[2026-03-02 12:57:51] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:57:51] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:51] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:57:51] [INFO]   -> Found value: 20260022557
[2026-03-02 12:57:51] [INFO]   -> Set field 'policeReportNumber' = "20260022557"
[2026-03-02 12:57:51] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:57:51] [INFO]   -> Found value: [EMS] {733} CANCEL FIRE  [03/01/26 08:22:19 JBOHANNON] Event spawned from EMS NON-EMERGENCY.  [03/01...
[2026-03-02 12:57:51] [INFO]   -> Set field 'dispatchNotes' = "[EMS] {733} CANCEL FIRE  [03\/01\/26 08:22:19 JBOHANNON] Event spawned from EMS NON-EMERGENCY.  [03\/01\/2026 08:19:50 JBOHANNON] FALL VICTIM  [03\/01\/26 08:06:10 JBOHANNON]"
[2026-03-02 12:57:51] [INFO]   -> Set field 'cADLog' = "[EMS] {733} CANCEL FIRE  [03\/01\/26 08:22:19 JBOHANNON] Event spawned from EMS NON-EMERGENCY.  [03\/01\/2026 08:19:50 JBOHANNON] FALL VICTIM  [03\/01\/26 08:06:10 JBOHANNON]"
[2026-03-02 12:57:51] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:57:51] [INFO]   -> Found value: ALGOOD
[2026-03-02 12:57:51] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-02 12:57:51] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:57:51] [INFO]   -> Found value: CHURCH
[2026-03-02 12:57:51] [INFO]   -> Set field 'streetName' = "CHURCH"
[2026-03-02 12:57:51] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:57:51] [INFO]   -> Found value: CT
[2026-03-02 12:57:51] [INFO]   -> Set field 'streetType' = "CT"
[2026-03-02 12:57:51] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:57:51] [INFO]   -> Found value: 100-21 CHURCH CT
[2026-03-02 12:57:51] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "100-21 CHURCH CT"
[2026-03-02 12:57:51] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 12:57:51] [INFO] Concatenating street name and type
[2026-03-02 12:57:51] [INFO]   -> Combined street name: CHURCH CT
[2026-03-02 12:57:51] [INFO] Built locationCoordinates from lat/lng: 36.1945,-85.44994
[2026-03-02 12:57:51] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000096","dispatchRunNumber":"2026000096","incidentTypeValue1":"FORCIBLE ENTRY","incidentLocationStreetNumber":100,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"incidentLocationApt":21,"nERISIncidentLatitude":36.19449999999999789679350215010344982147216796875,"nERISIncidentLongitude":-85.449939999999998008206603117287158966064453125,"alarm":"2026-03-01 08:19:50","dispatched":"2026-03-01 08:20:20","enroute":"2026-03-01 08:20:44","cleared":"2026-03-01 08:22:30","inService":"2026-03-01 08:22:30","incidentLocationCross":"W CHURCH ST","cADVehicleID":"A1202","timedispatch":"2026-03-01 08:22:07","timeenroutetoscene":"2026-03-01 08:22:07","timeunitclear":"2026-03-01 08:22:30","policeReportNumber":"20260022557","dispatchNotes":"[EMS] {733} CANCEL FIRE  [03\/01\/26 08:22:19 JBOHANNON] Event spawned from EMS NON-EMERGENCY.  [03\/01\/2026 08:19:50 JBOHANNON] FALL VICTIM  [03\/01\/26 08:06:10 JBOHANNON]","cADLog":"[EMS] {733} CANCEL FIRE  [03\/01\/26 08:22:19 JBOHANNON] Event spawned from EMS NON-EMERGENCY.  [03\/01\/2026 08:19:50 JBOHANNON] FALL VICTIM  [03\/01\/26 08:06:10 JBOHANNON]","incidentLocationCity":"ALGOOD","streetName":"CHURCH CT","incidentAddressTextVersionStreet":"100-21 CHURCH CT","locationCoordinates":"36.1945,-85.44994"}
[2026-03-02 12:57:51] [INFO] Number of extracted fields: 27
[2026-03-02 12:57:51] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-03-02 12:57:51] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-02 12:57:51] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-03-02 12:57:51] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:57:51] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-02 12:57:51] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-02 12:57:51] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-02 12:57:51] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-02 12:57:51] [INFO] Found existing IncidentTypeMapping with ID: 69a58942b6d9f1e09
[2026-03-02 12:57:52] [INFO] Found existing Dispatch with cADNumber '2026000096', ID: 69a589430d7e67d3d - will update instead of create
[2026-03-02 12:57:52] [INFO] Updated existing Dispatches record with ID: 69a589430d7e67d3d
[2026-03-02 12:57:52] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:57:52] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12: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-03-02 12:57:55] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260022557_20260302_125716_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:57:55] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:57:55] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021936_20260302_125718.XML
[2026-03-02 12:57:55] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021936_20260302_125718.XML for user: 68f1466aed072ad4a
[2026-03-02 12:57:55] [INFO] File size: 7178 bytes
[2026-03-02 12:57:55] [INFO] Created FTPFiles record with ID: 69a58953b9465a84b
[2026-03-02 12:57:55] [INFO] About to extract fields from XML. File size: 7178 bytes
[2026-03-02 12:57:55] [INFO] Number of mappings: 28
[2026-03-02 12:57:55] [INFO] Starting XML parsing. Content length: 7178
[2026-03-02 12:57:55] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:57:55] [INFO] Processing 28 field mappings
[2026-03-02 12:57:55] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:57:55] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:57:55] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 12:57:55] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-02 12:57:55] [INFO]   -> Found value: BFD
PCSO
BPD
[2026-03-02 12:57:55] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nPCSO\nBPD"
[2026-03-02 12:57:55] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:57:55] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-02 12:57:55] [INFO]   -> Found value: 2026000069
[2026-03-02 12:57:55] [INFO]   -> Set field 'incidentInternalId' = "2026000069"
[2026-03-02 12:57:55] [INFO]   -> Set field 'dispatchRunNumber' = "2026000069"
[2026-03-02 12:57:55] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:57:55] [INFO]   -> Found value: HAZARDOUS MATERIALS INCIDENT
[2026-03-02 12:57:55] [INFO]   -> Set field 'incidentTypeValue1' = "HAZARDOUS MATERIALS INCIDENT"
[2026-03-02 12:57:55] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:57:55] [INFO]   -> Found value: 110
[2026-03-02 12:57:55] [INFO]   -> Set field 'incidentLocationStreetNumber' = 110
[2026-03-02 12:57:55] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:57:55] [INFO]   -> Found value: TN
[2026-03-02 12:57:55] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:57:55] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:57:55] [INFO]   -> Found value: 38544
[2026-03-02 12:57:55] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 12:57:55] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:57:55] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:55] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:57:55] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:55] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:57:55] [INFO]   -> Found value: 36.13976
[2026-03-02 12:57:55] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.13976000000000254885890171863138675689697265625
[2026-03-02 12:57:55] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:57:55] [INFO]   -> Found value: -85.63028
[2026-03-02 12:57:55] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.630279999999999063220457173883914947509765625
[2026-03-02 12:57:55] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:57:55] [INFO]   -> Found value: 2026-02-27 14:42:00
[2026-03-02 12:57:55] [INFO]   -> Set field 'alarm' = "2026-02-27 14:42:00"
[2026-03-02 12:57:55] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:57:55] [INFO]   -> Found value: 2026-02-27 14:43:44
[2026-03-02 12:57:55] [INFO]   -> Set field 'dispatched' = "2026-02-27 14:43:44"
[2026-03-02 12:57:55] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:57:55] [INFO]   -> Found value: 2026-02-27 14:44:18
[2026-03-02 12:57:55] [INFO]   -> Set field 'enroute' = "2026-02-27 14:44:18"
[2026-03-02 12:57:55] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:57:55] [INFO]   -> Found value: 2026-02-27 14:49:41
[2026-03-02 12:57:55] [INFO]   -> Set field 'onScene' = "2026-02-27 14:49:41"
[2026-03-02 12:57:55] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:57:55] [INFO]   -> Found value: 2026-02-27 15:39:14
[2026-03-02 12:57:55] [INFO]   -> Set field 'cleared' = "2026-02-27 15:39:14"
[2026-03-02 12:57:55] [INFO]   -> Set field 'inService' = "2026-02-27 15:39:14"
[2026-03-02 12:57:55] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:57:55] [INFO]   -> Found value: FIRST AVE S
[2026-03-02 12:57:55] [INFO]   -> Set field 'incidentLocationCross' = "FIRST AVE S"
[2026-03-02 12:57:55] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:57:55] [INFO]   -> Found value: B1100
[2026-03-02 12:57:55] [INFO]   -> Set field 'cADVehicleID' = "B1100"
[2026-03-02 12:57:55] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:57:55] [INFO]   -> Found value: 2026-02-27 14:45:31
[2026-03-02 12:57:55] [INFO]   -> Set field 'timedispatch' = "2026-02-27 14:45:31"
[2026-03-02 12:57:55] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:57:55] [INFO]   -> Found value: 2026-02-27 14:45:31
[2026-03-02 12:57:55] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 14:45:31"
[2026-03-02 12:57:55] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:57:55] [INFO]   -> Found value: 2026-02-27 14:49:41
[2026-03-02 12:57:55] [INFO]   -> Set field 'timeonscene' = "2026-02-27 14:49:41"
[2026-03-02 12:57:55] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:57:55] [INFO]   -> Found value: 2026-02-27 15:39:14
[2026-03-02 12:57:55] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 15:39:14"
[2026-03-02 12:57:55] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:57:55] [INFO]   -> No value found (null or empty)
[2026-03-02 12:57:55] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:57:55] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 12:57:55] [INFO]   -> Found value: 20260021936
[2026-03-02 12:57:55] [INFO]   -> Set field 'policeReportNumber' = "20260021936"
[2026-03-02 12:57:55] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:57:55] [INFO]   -> Found value: {BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02/27/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCEN...
[2026-03-02 12:57:55] [INFO]   -> Set field 'dispatchNotes' = "{BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02\/27\/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCENE  [02\/27\/26 15:00:10 JBOHANNON] [LAW] SCHOOL NOTIFIED  [02\/27\/26 14:58:49 BWILSON] [LAW] BUS GARAGE NOTIFIED  [02\/27\/26 14:58:33 BWILSON] UDTS: READY-OP SENT  [02\/27\/26 14:56:46 KBURTON] [LAW] {B406} BUILDING CLEAR  [02\/27\/26 14:55:14 BWILSON] NO ETA GIVEN BY MIDDLE TN NATURAL GAS  [02\/27\/26 14:54:49 KMORGAN2] WIND SPEEN 6-10 NORTH \/ NORTH EAST  [02\/27\/26 14:53:38 KBURTON] 1196 COMMAND EVAC OF THE LOVES BUILDING  [02\/27\/26 14:51:41 JBOHANNON] GAS CO DIRECT\/\/WILL BE ENRT  [02\/27\/26 14:46:38 KMORGAN2] DIRECTLY BEHIND MCDONALDS  [02\/27\/26 14:43:22 KBURTON] HIT A GAS LINE  CAN NOT CONNECT 811  NATURAL GAS  [02\/27\/26 14:42:21 KBURTON]"
[2026-03-02 12:57:55] [INFO]   -> Set field 'cADLog' = "{BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02\/27\/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCENE  [02\/27\/26 15:00:10 JBOHANNON] [LAW] SCHOOL NOTIFIED  [02\/27\/26 14:58:49 BWILSON] [LAW] BUS GARAGE NOTIFIED  [02\/27\/26 14:58:33 BWILSON] UDTS: READY-OP SENT  [02\/27\/26 14:56:46 KBURTON] [LAW] {B406} BUILDING CLEAR  [02\/27\/26 14:55:14 BWILSON] NO ETA GIVEN BY MIDDLE TN NATURAL GAS  [02\/27\/26 14:54:49 KMORGAN2] WIND SPEEN 6-10 NORTH \/ NORTH EAST  [02\/27\/26 14:53:38 KBURTON] 1196 COMMAND EVAC OF THE LOVES BUILDING  [02\/27\/26 14:51:41 JBOHANNON] GAS CO DIRECT\/\/WILL BE ENRT  [02\/27\/26 14:46:38 KMORGAN2] DIRECTLY BEHIND MCDONALDS  [02\/27\/26 14:43:22 KBURTON] HIT A GAS LINE  CAN NOT CONNECT 811  NATURAL GAS  [02\/27\/26 14:42:21 KBURTON]"
[2026-03-02 12:57:55] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:57:55] [INFO]   -> Found value: BAXTER
[2026-03-02 12:57:55] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 12:57:55] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:57:55] [INFO]   -> Found value: FAST
[2026-03-02 12:57:55] [INFO]   -> Set field 'streetName' = "FAST"
[2026-03-02 12:57:55] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:57:55] [INFO]   -> Found value: LN
[2026-03-02 12:57:55] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-02 12:57:55] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:57:55] [INFO]   -> Found value: 110 FAST LN
[2026-03-02 12:57:55] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "110 FAST LN"
[2026-03-02 12:57:55] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 12:57:55] [INFO] Concatenating street name and type
[2026-03-02 12:57:55] [INFO]   -> Combined street name: FAST LN
[2026-03-02 12:57:55] [INFO] Built locationCoordinates from lat/lng: 36.13976,-85.63028
[2026-03-02 12:57:55] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nPCSO\nBPD","incidentInternalId":"2026000069","dispatchRunNumber":"2026000069","incidentTypeValue1":"HAZARDOUS MATERIALS INCIDENT","incidentLocationStreetNumber":110,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.13976000000000254885890171863138675689697265625,"nERISIncidentLongitude":-85.630279999999999063220457173883914947509765625,"alarm":"2026-02-27 14:42:00","dispatched":"2026-02-27 14:43:44","enroute":"2026-02-27 14:44:18","onScene":"2026-02-27 14:49:41","cleared":"2026-02-27 15:39:14","inService":"2026-02-27 15:39:14","incidentLocationCross":"FIRST AVE S","cADVehicleID":"B1100","timedispatch":"2026-02-27 14:45:31","timeenroutetoscene":"2026-02-27 14:45:31","timeonscene":"2026-02-27 14:49:41","timeunitclear":"2026-02-27 15:39:14","policeReportNumber":"20260021936","dispatchNotes":"{BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02\/27\/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCENE  [02\/27\/26 15:00:10 JBOHANNON] [LAW] SCHOOL NOTIFIED  [02\/27\/26 14:58:49 BWILSON] [LAW] BUS GARAGE NOTIFIED  [02\/27\/26 14:58:33 BWILSON] UDTS: READY-OP SENT  [02\/27\/26 14:56:46 KBURTON] [LAW] {B406} BUILDING CLEAR  [02\/27\/26 14:55:14 BWILSON] NO ETA GIVEN BY MIDDLE TN NATURAL GAS  [02\/27\/26 14:54:49 KMORGAN2] WIND SPEEN 6-10 NORTH \/ NORTH EAST  [02\/27\/26 14:53:38 KBURTON] 1196 COMMAND EVAC OF THE LOVES BUILDING  [02\/27\/26 14:51:41 JBOHANNON] GAS CO DIRECT\/\/WILL BE ENRT  [02\/27\/26 14:46:38 KMORGAN2] DIRECTLY BEHIND MCDONALDS  [02\/27\/26 14:43:22 KBURTON] HIT A GAS LINE  CAN NOT CONNECT 811  NATURAL GAS  [02\/27\/26 14:42:21 KBURTON]","cADLog":"{BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02\/27\/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCENE  [02\/27\/26 15:00:10 JBOHANNON] [LAW] SCHOOL NOTIFIED  [02\/27\/26 14:58:49 BWILSON] [LAW] BUS GARAGE NOTIFIED  [02\/27\/26 14:58:33 BWILSON] UDTS: READY-OP SENT  [02\/27\/26 14:56:46 KBURTON] [LAW] {B406} BUILDING CLEAR  [02\/27\/26 14:55:14 BWILSON] NO ETA GIVEN BY MIDDLE TN NATURAL GAS  [02\/27\/26 14:54:49 KMORGAN2] WIND SPEEN 6-10 NORTH \/ NORTH EAST  [02\/27\/26 14:53:38 KBURTON] 1196 COMMAND EVAC OF THE LOVES BUILDING  [02\/27\/26 14:51:41 JBOHANNON] GAS CO DIRECT\/\/WILL BE ENRT  [02\/27\/26 14:46:38 KMORGAN2] DIRECTLY BEHIND MCDONALDS  [02\/27\/26 14:43:22 KBURTON] HIT A GAS LINE  CAN NOT CONNECT 811  NATURAL GAS  [02\/27\/26 14:42:21 KBURTON]","incidentLocationCity":"BAXTER","streetName":"FAST LN","incidentAddressTextVersionStreet":"110 FAST LN","locationCoordinates":"36.13976,-85.63028"}
[2026-03-02 12:57:55] [INFO] Number of extracted fields: 28
[2026-03-02 12:57:55] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
PCSO
BPD'
[2026-03-02 12:57:55] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
PCSO
BPD', Parsed IDs = ["BFD","PCSO","BPD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-02 12:57:55] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","PCSO","BPD"]
[2026-03-02 12:57:55] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:57:55] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-02 12:57:55] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","BPD"]
[2026-03-02 12:57:56] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-02 12:57:56] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-02 12:57:56] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-02 12:57:56] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-02 12:57:56] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-02 12:57:56] [INFO] Found existing IncidentTypeMapping with ID: 69a20faeb27fbc102
[2026-03-02 12:57:56] [INFO] Found existing Dispatch with cADNumber '2026000069', ID: 69a20faf06eb0f317 - will update instead of create
[2026-03-02 12:57:56] [INFO] Updated existing Dispatches record with ID: 69a20faf06eb0f317
[2026-03-02 12:57:56] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:57:56] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:58:00] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:58:00] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021936_20260302_125718.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:58:00] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:58:00] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021936_20260302_125718_1.XML
[2026-03-02 12:58:00] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021936_20260302_125718_1.XML for user: 68f1466aed072ad4a
[2026-03-02 12:58:00] [INFO] File size: 7178 bytes
[2026-03-02 12:58:00] [INFO] Created FTPFiles record with ID: 69a58958500e65ca9
[2026-03-02 12:58:00] [INFO] About to extract fields from XML. File size: 7178 bytes
[2026-03-02 12:58:00] [INFO] Number of mappings: 28
[2026-03-02 12:58:00] [INFO] Starting XML parsing. Content length: 7178
[2026-03-02 12:58:00] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:58:00] [INFO] Processing 28 field mappings
[2026-03-02 12:58:00] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:58:00] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:58:00] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 12:58:00] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-02 12:58:00] [INFO]   -> Found value: BFD
PCSO
BPD
[2026-03-02 12:58:00] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nPCSO\nBPD"
[2026-03-02 12:58:00] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:58:00] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-02 12:58:00] [INFO]   -> Found value: 2026000069
[2026-03-02 12:58:00] [INFO]   -> Set field 'incidentInternalId' = "2026000069"
[2026-03-02 12:58:00] [INFO]   -> Set field 'dispatchRunNumber' = "2026000069"
[2026-03-02 12:58:00] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:58:00] [INFO]   -> Found value: HAZARDOUS MATERIALS INCIDENT
[2026-03-02 12:58:00] [INFO]   -> Set field 'incidentTypeValue1' = "HAZARDOUS MATERIALS INCIDENT"
[2026-03-02 12:58:00] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:58:00] [INFO]   -> Found value: 110
[2026-03-02 12:58:00] [INFO]   -> Set field 'incidentLocationStreetNumber' = 110
[2026-03-02 12:58:00] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:58:00] [INFO]   -> Found value: TN
[2026-03-02 12:58:00] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:58:00] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:58:00] [INFO]   -> Found value: 38544
[2026-03-02 12:58:00] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 12:58:00] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:58:00] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:00] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:58:00] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:00] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:58:00] [INFO]   -> Found value: 36.13976
[2026-03-02 12:58:00] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.13976000000000254885890171863138675689697265625
[2026-03-02 12:58:00] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:58:00] [INFO]   -> Found value: -85.63028
[2026-03-02 12:58:00] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.630279999999999063220457173883914947509765625
[2026-03-02 12:58:00] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:58:00] [INFO]   -> Found value: 2026-02-27 14:42:00
[2026-03-02 12:58:00] [INFO]   -> Set field 'alarm' = "2026-02-27 14:42:00"
[2026-03-02 12:58:00] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:58:00] [INFO]   -> Found value: 2026-02-27 14:43:44
[2026-03-02 12:58:00] [INFO]   -> Set field 'dispatched' = "2026-02-27 14:43:44"
[2026-03-02 12:58:00] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:58:00] [INFO]   -> Found value: 2026-02-27 14:44:18
[2026-03-02 12:58:00] [INFO]   -> Set field 'enroute' = "2026-02-27 14:44:18"
[2026-03-02 12:58:00] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:58:00] [INFO]   -> Found value: 2026-02-27 14:49:41
[2026-03-02 12:58:00] [INFO]   -> Set field 'onScene' = "2026-02-27 14:49:41"
[2026-03-02 12:58:00] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:58:00] [INFO]   -> Found value: 2026-02-27 15:39:14
[2026-03-02 12:58:00] [INFO]   -> Set field 'cleared' = "2026-02-27 15:39:14"
[2026-03-02 12:58:00] [INFO]   -> Set field 'inService' = "2026-02-27 15:39:14"
[2026-03-02 12:58:00] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:58:00] [INFO]   -> Found value: FIRST AVE S
[2026-03-02 12:58:00] [INFO]   -> Set field 'incidentLocationCross' = "FIRST AVE S"
[2026-03-02 12:58:00] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:58:00] [INFO]   -> Found value: B1100
[2026-03-02 12:58:00] [INFO]   -> Set field 'cADVehicleID' = "B1100"
[2026-03-02 12:58:00] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:58:00] [INFO]   -> Found value: 2026-02-27 14:45:31
[2026-03-02 12:58:00] [INFO]   -> Set field 'timedispatch' = "2026-02-27 14:45:31"
[2026-03-02 12:58:00] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:58:00] [INFO]   -> Found value: 2026-02-27 14:45:31
[2026-03-02 12:58:00] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 14:45:31"
[2026-03-02 12:58:00] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:58:00] [INFO]   -> Found value: 2026-02-27 14:49:41
[2026-03-02 12:58:00] [INFO]   -> Set field 'timeonscene' = "2026-02-27 14:49:41"
[2026-03-02 12:58:00] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:58:00] [INFO]   -> Found value: 2026-02-27 15:39:14
[2026-03-02 12:58:00] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 15:39:14"
[2026-03-02 12:58:00] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:58:00] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:00] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:58:00] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 12:58:00] [INFO]   -> Found value: 20260021936
[2026-03-02 12:58:00] [INFO]   -> Set field 'policeReportNumber' = "20260021936"
[2026-03-02 12:58:00] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:58:00] [INFO]   -> Found value: {BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02/27/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCEN...
[2026-03-02 12:58:00] [INFO]   -> Set field 'dispatchNotes' = "{BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02\/27\/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCENE  [02\/27\/26 15:00:10 JBOHANNON] [LAW] SCHOOL NOTIFIED  [02\/27\/26 14:58:49 BWILSON] [LAW] BUS GARAGE NOTIFIED  [02\/27\/26 14:58:33 BWILSON] UDTS: READY-OP SENT  [02\/27\/26 14:56:46 KBURTON] [LAW] {B406} BUILDING CLEAR  [02\/27\/26 14:55:14 BWILSON] NO ETA GIVEN BY MIDDLE TN NATURAL GAS  [02\/27\/26 14:54:49 KMORGAN2] WIND SPEEN 6-10 NORTH \/ NORTH EAST  [02\/27\/26 14:53:38 KBURTON] 1196 COMMAND EVAC OF THE LOVES BUILDING  [02\/27\/26 14:51:41 JBOHANNON] GAS CO DIRECT\/\/WILL BE ENRT  [02\/27\/26 14:46:38 KMORGAN2] DIRECTLY BEHIND MCDONALDS  [02\/27\/26 14:43:22 KBURTON] HIT A GAS LINE  CAN NOT CONNECT 811  NATURAL GAS  [02\/27\/26 14:42:21 KBURTON]"
[2026-03-02 12:58:00] [INFO]   -> Set field 'cADLog' = "{BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02\/27\/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCENE  [02\/27\/26 15:00:10 JBOHANNON] [LAW] SCHOOL NOTIFIED  [02\/27\/26 14:58:49 BWILSON] [LAW] BUS GARAGE NOTIFIED  [02\/27\/26 14:58:33 BWILSON] UDTS: READY-OP SENT  [02\/27\/26 14:56:46 KBURTON] [LAW] {B406} BUILDING CLEAR  [02\/27\/26 14:55:14 BWILSON] NO ETA GIVEN BY MIDDLE TN NATURAL GAS  [02\/27\/26 14:54:49 KMORGAN2] WIND SPEEN 6-10 NORTH \/ NORTH EAST  [02\/27\/26 14:53:38 KBURTON] 1196 COMMAND EVAC OF THE LOVES BUILDING  [02\/27\/26 14:51:41 JBOHANNON] GAS CO DIRECT\/\/WILL BE ENRT  [02\/27\/26 14:46:38 KMORGAN2] DIRECTLY BEHIND MCDONALDS  [02\/27\/26 14:43:22 KBURTON] HIT A GAS LINE  CAN NOT CONNECT 811  NATURAL GAS  [02\/27\/26 14:42:21 KBURTON]"
[2026-03-02 12:58:00] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:58:00] [INFO]   -> Found value: BAXTER
[2026-03-02 12:58:00] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 12:58:00] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:58:00] [INFO]   -> Found value: FAST
[2026-03-02 12:58:00] [INFO]   -> Set field 'streetName' = "FAST"
[2026-03-02 12:58:00] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:58:00] [INFO]   -> Found value: LN
[2026-03-02 12:58:00] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-02 12:58:00] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:58:00] [INFO]   -> Found value: 110 FAST LN
[2026-03-02 12:58:00] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "110 FAST LN"
[2026-03-02 12:58:00] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 12:58:00] [INFO] Concatenating street name and type
[2026-03-02 12:58:00] [INFO]   -> Combined street name: FAST LN
[2026-03-02 12:58:00] [INFO] Built locationCoordinates from lat/lng: 36.13976,-85.63028
[2026-03-02 12:58:00] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nPCSO\nBPD","incidentInternalId":"2026000069","dispatchRunNumber":"2026000069","incidentTypeValue1":"HAZARDOUS MATERIALS INCIDENT","incidentLocationStreetNumber":110,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.13976000000000254885890171863138675689697265625,"nERISIncidentLongitude":-85.630279999999999063220457173883914947509765625,"alarm":"2026-02-27 14:42:00","dispatched":"2026-02-27 14:43:44","enroute":"2026-02-27 14:44:18","onScene":"2026-02-27 14:49:41","cleared":"2026-02-27 15:39:14","inService":"2026-02-27 15:39:14","incidentLocationCross":"FIRST AVE S","cADVehicleID":"B1100","timedispatch":"2026-02-27 14:45:31","timeenroutetoscene":"2026-02-27 14:45:31","timeonscene":"2026-02-27 14:49:41","timeunitclear":"2026-02-27 15:39:14","policeReportNumber":"20260021936","dispatchNotes":"{BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02\/27\/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCENE  [02\/27\/26 15:00:10 JBOHANNON] [LAW] SCHOOL NOTIFIED  [02\/27\/26 14:58:49 BWILSON] [LAW] BUS GARAGE NOTIFIED  [02\/27\/26 14:58:33 BWILSON] UDTS: READY-OP SENT  [02\/27\/26 14:56:46 KBURTON] [LAW] {B406} BUILDING CLEAR  [02\/27\/26 14:55:14 BWILSON] NO ETA GIVEN BY MIDDLE TN NATURAL GAS  [02\/27\/26 14:54:49 KMORGAN2] WIND SPEEN 6-10 NORTH \/ NORTH EAST  [02\/27\/26 14:53:38 KBURTON] 1196 COMMAND EVAC OF THE LOVES BUILDING  [02\/27\/26 14:51:41 JBOHANNON] GAS CO DIRECT\/\/WILL BE ENRT  [02\/27\/26 14:46:38 KMORGAN2] DIRECTLY BEHIND MCDONALDS  [02\/27\/26 14:43:22 KBURTON] HIT A GAS LINE  CAN NOT CONNECT 811  NATURAL GAS  [02\/27\/26 14:42:21 KBURTON]","cADLog":"{BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02\/27\/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCENE  [02\/27\/26 15:00:10 JBOHANNON] [LAW] SCHOOL NOTIFIED  [02\/27\/26 14:58:49 BWILSON] [LAW] BUS GARAGE NOTIFIED  [02\/27\/26 14:58:33 BWILSON] UDTS: READY-OP SENT  [02\/27\/26 14:56:46 KBURTON] [LAW] {B406} BUILDING CLEAR  [02\/27\/26 14:55:14 BWILSON] NO ETA GIVEN BY MIDDLE TN NATURAL GAS  [02\/27\/26 14:54:49 KMORGAN2] WIND SPEEN 6-10 NORTH \/ NORTH EAST  [02\/27\/26 14:53:38 KBURTON] 1196 COMMAND EVAC OF THE LOVES BUILDING  [02\/27\/26 14:51:41 JBOHANNON] GAS CO DIRECT\/\/WILL BE ENRT  [02\/27\/26 14:46:38 KMORGAN2] DIRECTLY BEHIND MCDONALDS  [02\/27\/26 14:43:22 KBURTON] HIT A GAS LINE  CAN NOT CONNECT 811  NATURAL GAS  [02\/27\/26 14:42:21 KBURTON]","incidentLocationCity":"BAXTER","streetName":"FAST LN","incidentAddressTextVersionStreet":"110 FAST LN","locationCoordinates":"36.13976,-85.63028"}
[2026-03-02 12:58:00] [INFO] Number of extracted fields: 28
[2026-03-02 12:58:00] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
PCSO
BPD'
[2026-03-02 12:58:00] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
PCSO
BPD', Parsed IDs = ["BFD","PCSO","BPD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-02 12:58:00] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","PCSO","BPD"]
[2026-03-02 12:58:00] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:58:00] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-02 12:58:00] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","BPD"]
[2026-03-02 12:58:00] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-02 12:58:00] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-02 12:58:00] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-02 12:58:00] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-02 12:58:00] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-02 12:58:00] [INFO] Found existing IncidentTypeMapping with ID: 69a20faeb27fbc102
[2026-03-02 12:58:01] [INFO] Found existing Dispatch with cADNumber '2026000069', ID: 69a20faf06eb0f317 - will update instead of create
[2026-03-02 12:58:01] [INFO] Updated existing Dispatches record with ID: 69a20faf06eb0f317
[2026-03-02 12:58:01] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:58:01] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:58:04] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:58:04] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021936_20260302_125718_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:58:04] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:58:04] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021936_20260302_125718_2.XML
[2026-03-02 12:58:04] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021936_20260302_125718_2.XML for user: 68f1466aed072ad4a
[2026-03-02 12:58:04] [INFO] File size: 7178 bytes
[2026-03-02 12:58:05] [INFO] Created FTPFiles record with ID: 69a5895d308edd6b1
[2026-03-02 12:58:05] [INFO] About to extract fields from XML. File size: 7178 bytes
[2026-03-02 12:58:05] [INFO] Number of mappings: 28
[2026-03-02 12:58:05] [INFO] Starting XML parsing. Content length: 7178
[2026-03-02 12:58:05] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:58:05] [INFO] Processing 28 field mappings
[2026-03-02 12:58:05] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:58:05] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:58:05] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 12:58:05] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-02 12:58:05] [INFO]   -> Found value: BFD
PCSO
BPD
[2026-03-02 12:58:05] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nPCSO\nBPD"
[2026-03-02 12:58:05] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:58:05] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-02 12:58:05] [INFO]   -> Found value: 2026000069
[2026-03-02 12:58:05] [INFO]   -> Set field 'incidentInternalId' = "2026000069"
[2026-03-02 12:58:05] [INFO]   -> Set field 'dispatchRunNumber' = "2026000069"
[2026-03-02 12:58:05] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:58:05] [INFO]   -> Found value: HAZARDOUS MATERIALS INCIDENT
[2026-03-02 12:58:05] [INFO]   -> Set field 'incidentTypeValue1' = "HAZARDOUS MATERIALS INCIDENT"
[2026-03-02 12:58:05] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:58:05] [INFO]   -> Found value: 110
[2026-03-02 12:58:05] [INFO]   -> Set field 'incidentLocationStreetNumber' = 110
[2026-03-02 12:58:05] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:58:05] [INFO]   -> Found value: TN
[2026-03-02 12:58:05] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:58:05] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:58:05] [INFO]   -> Found value: 38544
[2026-03-02 12:58:05] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 12:58:05] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:58:05] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:05] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:58:05] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:05] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:58:05] [INFO]   -> Found value: 36.13976
[2026-03-02 12:58:05] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.13976000000000254885890171863138675689697265625
[2026-03-02 12:58:05] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:58:05] [INFO]   -> Found value: -85.63028
[2026-03-02 12:58:05] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.630279999999999063220457173883914947509765625
[2026-03-02 12:58:05] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:58:05] [INFO]   -> Found value: 2026-02-27 14:42:00
[2026-03-02 12:58:05] [INFO]   -> Set field 'alarm' = "2026-02-27 14:42:00"
[2026-03-02 12:58:05] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:58:05] [INFO]   -> Found value: 2026-02-27 14:43:44
[2026-03-02 12:58:05] [INFO]   -> Set field 'dispatched' = "2026-02-27 14:43:44"
[2026-03-02 12:58:05] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:58:05] [INFO]   -> Found value: 2026-02-27 14:44:18
[2026-03-02 12:58:05] [INFO]   -> Set field 'enroute' = "2026-02-27 14:44:18"
[2026-03-02 12:58:05] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:58:05] [INFO]   -> Found value: 2026-02-27 14:49:41
[2026-03-02 12:58:05] [INFO]   -> Set field 'onScene' = "2026-02-27 14:49:41"
[2026-03-02 12:58:05] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:58:05] [INFO]   -> Found value: 2026-02-27 15:39:14
[2026-03-02 12:58:05] [INFO]   -> Set field 'cleared' = "2026-02-27 15:39:14"
[2026-03-02 12:58:05] [INFO]   -> Set field 'inService' = "2026-02-27 15:39:14"
[2026-03-02 12:58:05] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:58:05] [INFO]   -> Found value: FIRST AVE S
[2026-03-02 12:58:05] [INFO]   -> Set field 'incidentLocationCross' = "FIRST AVE S"
[2026-03-02 12:58:05] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:58:05] [INFO]   -> Found value: B1100
[2026-03-02 12:58:05] [INFO]   -> Set field 'cADVehicleID' = "B1100"
[2026-03-02 12:58:05] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:58:05] [INFO]   -> Found value: 2026-02-27 14:45:31
[2026-03-02 12:58:05] [INFO]   -> Set field 'timedispatch' = "2026-02-27 14:45:31"
[2026-03-02 12:58:05] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:58:05] [INFO]   -> Found value: 2026-02-27 14:45:31
[2026-03-02 12:58:05] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 14:45:31"
[2026-03-02 12:58:05] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:58:05] [INFO]   -> Found value: 2026-02-27 14:49:41
[2026-03-02 12:58:05] [INFO]   -> Set field 'timeonscene' = "2026-02-27 14:49:41"
[2026-03-02 12:58:05] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:58:05] [INFO]   -> Found value: 2026-02-27 15:39:14
[2026-03-02 12:58:05] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 15:39:14"
[2026-03-02 12:58:05] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:58:05] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:05] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:58:05] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 12:58:05] [INFO]   -> Found value: 20260021936
[2026-03-02 12:58:05] [INFO]   -> Set field 'policeReportNumber' = "20260021936"
[2026-03-02 12:58:05] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:58:05] [INFO]   -> Found value: {BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02/27/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCEN...
[2026-03-02 12:58:05] [INFO]   -> Set field 'dispatchNotes' = "{BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02\/27\/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCENE  [02\/27\/26 15:00:10 JBOHANNON] [LAW] SCHOOL NOTIFIED  [02\/27\/26 14:58:49 BWILSON] [LAW] BUS GARAGE NOTIFIED  [02\/27\/26 14:58:33 BWILSON] UDTS: READY-OP SENT  [02\/27\/26 14:56:46 KBURTON] [LAW] {B406} BUILDING CLEAR  [02\/27\/26 14:55:14 BWILSON] NO ETA GIVEN BY MIDDLE TN NATURAL GAS  [02\/27\/26 14:54:49 KMORGAN2] WIND SPEEN 6-10 NORTH \/ NORTH EAST  [02\/27\/26 14:53:38 KBURTON] 1196 COMMAND EVAC OF THE LOVES BUILDING  [02\/27\/26 14:51:41 JBOHANNON] GAS CO DIRECT\/\/WILL BE ENRT  [02\/27\/26 14:46:38 KMORGAN2] DIRECTLY BEHIND MCDONALDS  [02\/27\/26 14:43:22 KBURTON] HIT A GAS LINE  CAN NOT CONNECT 811  NATURAL GAS  [02\/27\/26 14:42:21 KBURTON]"
[2026-03-02 12:58:05] [INFO]   -> Set field 'cADLog' = "{BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02\/27\/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCENE  [02\/27\/26 15:00:10 JBOHANNON] [LAW] SCHOOL NOTIFIED  [02\/27\/26 14:58:49 BWILSON] [LAW] BUS GARAGE NOTIFIED  [02\/27\/26 14:58:33 BWILSON] UDTS: READY-OP SENT  [02\/27\/26 14:56:46 KBURTON] [LAW] {B406} BUILDING CLEAR  [02\/27\/26 14:55:14 BWILSON] NO ETA GIVEN BY MIDDLE TN NATURAL GAS  [02\/27\/26 14:54:49 KMORGAN2] WIND SPEEN 6-10 NORTH \/ NORTH EAST  [02\/27\/26 14:53:38 KBURTON] 1196 COMMAND EVAC OF THE LOVES BUILDING  [02\/27\/26 14:51:41 JBOHANNON] GAS CO DIRECT\/\/WILL BE ENRT  [02\/27\/26 14:46:38 KMORGAN2] DIRECTLY BEHIND MCDONALDS  [02\/27\/26 14:43:22 KBURTON] HIT A GAS LINE  CAN NOT CONNECT 811  NATURAL GAS  [02\/27\/26 14:42:21 KBURTON]"
[2026-03-02 12:58:05] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:58:05] [INFO]   -> Found value: BAXTER
[2026-03-02 12:58:05] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 12:58:05] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:58:05] [INFO]   -> Found value: FAST
[2026-03-02 12:58:05] [INFO]   -> Set field 'streetName' = "FAST"
[2026-03-02 12:58:05] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:58:05] [INFO]   -> Found value: LN
[2026-03-02 12:58:05] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-02 12:58:05] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:58:05] [INFO]   -> Found value: 110 FAST LN
[2026-03-02 12:58:05] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "110 FAST LN"
[2026-03-02 12:58:05] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 12:58:05] [INFO] Concatenating street name and type
[2026-03-02 12:58:05] [INFO]   -> Combined street name: FAST LN
[2026-03-02 12:58:05] [INFO] Built locationCoordinates from lat/lng: 36.13976,-85.63028
[2026-03-02 12:58:05] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nPCSO\nBPD","incidentInternalId":"2026000069","dispatchRunNumber":"2026000069","incidentTypeValue1":"HAZARDOUS MATERIALS INCIDENT","incidentLocationStreetNumber":110,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.13976000000000254885890171863138675689697265625,"nERISIncidentLongitude":-85.630279999999999063220457173883914947509765625,"alarm":"2026-02-27 14:42:00","dispatched":"2026-02-27 14:43:44","enroute":"2026-02-27 14:44:18","onScene":"2026-02-27 14:49:41","cleared":"2026-02-27 15:39:14","inService":"2026-02-27 15:39:14","incidentLocationCross":"FIRST AVE S","cADVehicleID":"B1100","timedispatch":"2026-02-27 14:45:31","timeenroutetoscene":"2026-02-27 14:45:31","timeonscene":"2026-02-27 14:49:41","timeunitclear":"2026-02-27 15:39:14","policeReportNumber":"20260021936","dispatchNotes":"{BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02\/27\/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCENE  [02\/27\/26 15:00:10 JBOHANNON] [LAW] SCHOOL NOTIFIED  [02\/27\/26 14:58:49 BWILSON] [LAW] BUS GARAGE NOTIFIED  [02\/27\/26 14:58:33 BWILSON] UDTS: READY-OP SENT  [02\/27\/26 14:56:46 KBURTON] [LAW] {B406} BUILDING CLEAR  [02\/27\/26 14:55:14 BWILSON] NO ETA GIVEN BY MIDDLE TN NATURAL GAS  [02\/27\/26 14:54:49 KMORGAN2] WIND SPEEN 6-10 NORTH \/ NORTH EAST  [02\/27\/26 14:53:38 KBURTON] 1196 COMMAND EVAC OF THE LOVES BUILDING  [02\/27\/26 14:51:41 JBOHANNON] GAS CO DIRECT\/\/WILL BE ENRT  [02\/27\/26 14:46:38 KMORGAN2] DIRECTLY BEHIND MCDONALDS  [02\/27\/26 14:43:22 KBURTON] HIT A GAS LINE  CAN NOT CONNECT 811  NATURAL GAS  [02\/27\/26 14:42:21 KBURTON]","cADLog":"{BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02\/27\/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCENE  [02\/27\/26 15:00:10 JBOHANNON] [LAW] SCHOOL NOTIFIED  [02\/27\/26 14:58:49 BWILSON] [LAW] BUS GARAGE NOTIFIED  [02\/27\/26 14:58:33 BWILSON] UDTS: READY-OP SENT  [02\/27\/26 14:56:46 KBURTON] [LAW] {B406} BUILDING CLEAR  [02\/27\/26 14:55:14 BWILSON] NO ETA GIVEN BY MIDDLE TN NATURAL GAS  [02\/27\/26 14:54:49 KMORGAN2] WIND SPEEN 6-10 NORTH \/ NORTH EAST  [02\/27\/26 14:53:38 KBURTON] 1196 COMMAND EVAC OF THE LOVES BUILDING  [02\/27\/26 14:51:41 JBOHANNON] GAS CO DIRECT\/\/WILL BE ENRT  [02\/27\/26 14:46:38 KMORGAN2] DIRECTLY BEHIND MCDONALDS  [02\/27\/26 14:43:22 KBURTON] HIT A GAS LINE  CAN NOT CONNECT 811  NATURAL GAS  [02\/27\/26 14:42:21 KBURTON]","incidentLocationCity":"BAXTER","streetName":"FAST LN","incidentAddressTextVersionStreet":"110 FAST LN","locationCoordinates":"36.13976,-85.63028"}
[2026-03-02 12:58:05] [INFO] Number of extracted fields: 28
[2026-03-02 12:58:05] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
PCSO
BPD'
[2026-03-02 12:58:05] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
PCSO
BPD', Parsed IDs = ["BFD","PCSO","BPD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-02 12:58:05] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","PCSO","BPD"]
[2026-03-02 12:58:05] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:58:05] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-02 12:58:05] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","BPD"]
[2026-03-02 12:58:05] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-02 12:58:05] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-02 12:58:05] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-02 12:58:05] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-02 12:58:05] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-02 12:58:05] [INFO] Found existing IncidentTypeMapping with ID: 69a20faeb27fbc102
[2026-03-02 12:58:06] [INFO] Found existing Dispatch with cADNumber '2026000069', ID: 69a20faf06eb0f317 - will update instead of create
[2026-03-02 12:58:06] [INFO] Updated existing Dispatches record with ID: 69a20faf06eb0f317
[2026-03-02 12:58:06] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:58:06] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:58: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-03-02 12:58:09] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021936_20260302_125718_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:58:09] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:58:09] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021936_20260302_125718_3.XML
[2026-03-02 12:58:09] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021936_20260302_125718_3.XML for user: 68f1466aed072ad4a
[2026-03-02 12:58:09] [INFO] File size: 7178 bytes
[2026-03-02 12:58:10] [INFO] Created FTPFiles record with ID: 69a589621351c9fe7
[2026-03-02 12:58:10] [INFO] About to extract fields from XML. File size: 7178 bytes
[2026-03-02 12:58:10] [INFO] Number of mappings: 28
[2026-03-02 12:58:10] [INFO] Starting XML parsing. Content length: 7178
[2026-03-02 12:58:10] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:58:10] [INFO] Processing 28 field mappings
[2026-03-02 12:58:10] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:58:10] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:58:10] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 12:58:10] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-02 12:58:10] [INFO]   -> Found value: BFD
PCSO
BPD
[2026-03-02 12:58:10] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nPCSO\nBPD"
[2026-03-02 12:58:10] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:58:10] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-02 12:58:10] [INFO]   -> Found value: 2026000069
[2026-03-02 12:58:10] [INFO]   -> Set field 'incidentInternalId' = "2026000069"
[2026-03-02 12:58:10] [INFO]   -> Set field 'dispatchRunNumber' = "2026000069"
[2026-03-02 12:58:10] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:58:10] [INFO]   -> Found value: HAZARDOUS MATERIALS INCIDENT
[2026-03-02 12:58:10] [INFO]   -> Set field 'incidentTypeValue1' = "HAZARDOUS MATERIALS INCIDENT"
[2026-03-02 12:58:10] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:58:10] [INFO]   -> Found value: 110
[2026-03-02 12:58:10] [INFO]   -> Set field 'incidentLocationStreetNumber' = 110
[2026-03-02 12:58:10] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:58:10] [INFO]   -> Found value: TN
[2026-03-02 12:58:10] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:58:10] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:58:10] [INFO]   -> Found value: 38544
[2026-03-02 12:58:10] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 12:58:10] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:58:10] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:10] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:58:10] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:10] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:58:10] [INFO]   -> Found value: 36.13976
[2026-03-02 12:58:10] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.13976000000000254885890171863138675689697265625
[2026-03-02 12:58:10] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:58:10] [INFO]   -> Found value: -85.63028
[2026-03-02 12:58:10] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.630279999999999063220457173883914947509765625
[2026-03-02 12:58:10] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:58:10] [INFO]   -> Found value: 2026-02-27 14:42:00
[2026-03-02 12:58:10] [INFO]   -> Set field 'alarm' = "2026-02-27 14:42:00"
[2026-03-02 12:58:10] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:58:10] [INFO]   -> Found value: 2026-02-27 14:43:44
[2026-03-02 12:58:10] [INFO]   -> Set field 'dispatched' = "2026-02-27 14:43:44"
[2026-03-02 12:58:10] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:58:10] [INFO]   -> Found value: 2026-02-27 14:44:18
[2026-03-02 12:58:10] [INFO]   -> Set field 'enroute' = "2026-02-27 14:44:18"
[2026-03-02 12:58:10] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:58:10] [INFO]   -> Found value: 2026-02-27 14:49:41
[2026-03-02 12:58:10] [INFO]   -> Set field 'onScene' = "2026-02-27 14:49:41"
[2026-03-02 12:58:10] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:58:10] [INFO]   -> Found value: 2026-02-27 15:39:14
[2026-03-02 12:58:10] [INFO]   -> Set field 'cleared' = "2026-02-27 15:39:14"
[2026-03-02 12:58:10] [INFO]   -> Set field 'inService' = "2026-02-27 15:39:14"
[2026-03-02 12:58:10] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:58:10] [INFO]   -> Found value: FIRST AVE S
[2026-03-02 12:58:10] [INFO]   -> Set field 'incidentLocationCross' = "FIRST AVE S"
[2026-03-02 12:58:10] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:58:10] [INFO]   -> Found value: B1100
[2026-03-02 12:58:10] [INFO]   -> Set field 'cADVehicleID' = "B1100"
[2026-03-02 12:58:10] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:58:10] [INFO]   -> Found value: 2026-02-27 14:45:31
[2026-03-02 12:58:10] [INFO]   -> Set field 'timedispatch' = "2026-02-27 14:45:31"
[2026-03-02 12:58:10] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:58:10] [INFO]   -> Found value: 2026-02-27 14:45:31
[2026-03-02 12:58:10] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 14:45:31"
[2026-03-02 12:58:10] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:58:10] [INFO]   -> Found value: 2026-02-27 14:49:41
[2026-03-02 12:58:10] [INFO]   -> Set field 'timeonscene' = "2026-02-27 14:49:41"
[2026-03-02 12:58:10] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:58:10] [INFO]   -> Found value: 2026-02-27 15:39:14
[2026-03-02 12:58:10] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 15:39:14"
[2026-03-02 12:58:10] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:58:10] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:10] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:58:10] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 12:58:10] [INFO]   -> Found value: 20260021936
[2026-03-02 12:58:10] [INFO]   -> Set field 'policeReportNumber' = "20260021936"
[2026-03-02 12:58:10] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:58:10] [INFO]   -> Found value: {BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02/27/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCEN...
[2026-03-02 12:58:10] [INFO]   -> Set field 'dispatchNotes' = "{BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02\/27\/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCENE  [02\/27\/26 15:00:10 JBOHANNON] [LAW] SCHOOL NOTIFIED  [02\/27\/26 14:58:49 BWILSON] [LAW] BUS GARAGE NOTIFIED  [02\/27\/26 14:58:33 BWILSON] UDTS: READY-OP SENT  [02\/27\/26 14:56:46 KBURTON] [LAW] {B406} BUILDING CLEAR  [02\/27\/26 14:55:14 BWILSON] NO ETA GIVEN BY MIDDLE TN NATURAL GAS  [02\/27\/26 14:54:49 KMORGAN2] WIND SPEEN 6-10 NORTH \/ NORTH EAST  [02\/27\/26 14:53:38 KBURTON] 1196 COMMAND EVAC OF THE LOVES BUILDING  [02\/27\/26 14:51:41 JBOHANNON] GAS CO DIRECT\/\/WILL BE ENRT  [02\/27\/26 14:46:38 KMORGAN2] DIRECTLY BEHIND MCDONALDS  [02\/27\/26 14:43:22 KBURTON] HIT A GAS LINE  CAN NOT CONNECT 811  NATURAL GAS  [02\/27\/26 14:42:21 KBURTON]"
[2026-03-02 12:58:10] [INFO]   -> Set field 'cADLog' = "{BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02\/27\/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCENE  [02\/27\/26 15:00:10 JBOHANNON] [LAW] SCHOOL NOTIFIED  [02\/27\/26 14:58:49 BWILSON] [LAW] BUS GARAGE NOTIFIED  [02\/27\/26 14:58:33 BWILSON] UDTS: READY-OP SENT  [02\/27\/26 14:56:46 KBURTON] [LAW] {B406} BUILDING CLEAR  [02\/27\/26 14:55:14 BWILSON] NO ETA GIVEN BY MIDDLE TN NATURAL GAS  [02\/27\/26 14:54:49 KMORGAN2] WIND SPEEN 6-10 NORTH \/ NORTH EAST  [02\/27\/26 14:53:38 KBURTON] 1196 COMMAND EVAC OF THE LOVES BUILDING  [02\/27\/26 14:51:41 JBOHANNON] GAS CO DIRECT\/\/WILL BE ENRT  [02\/27\/26 14:46:38 KMORGAN2] DIRECTLY BEHIND MCDONALDS  [02\/27\/26 14:43:22 KBURTON] HIT A GAS LINE  CAN NOT CONNECT 811  NATURAL GAS  [02\/27\/26 14:42:21 KBURTON]"
[2026-03-02 12:58:10] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:58:10] [INFO]   -> Found value: BAXTER
[2026-03-02 12:58:10] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 12:58:10] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:58:10] [INFO]   -> Found value: FAST
[2026-03-02 12:58:10] [INFO]   -> Set field 'streetName' = "FAST"
[2026-03-02 12:58:10] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:58:10] [INFO]   -> Found value: LN
[2026-03-02 12:58:10] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-02 12:58:10] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:58:10] [INFO]   -> Found value: 110 FAST LN
[2026-03-02 12:58:10] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "110 FAST LN"
[2026-03-02 12:58:10] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 12:58:10] [INFO] Concatenating street name and type
[2026-03-02 12:58:10] [INFO]   -> Combined street name: FAST LN
[2026-03-02 12:58:10] [INFO] Built locationCoordinates from lat/lng: 36.13976,-85.63028
[2026-03-02 12:58:10] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nPCSO\nBPD","incidentInternalId":"2026000069","dispatchRunNumber":"2026000069","incidentTypeValue1":"HAZARDOUS MATERIALS INCIDENT","incidentLocationStreetNumber":110,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.13976000000000254885890171863138675689697265625,"nERISIncidentLongitude":-85.630279999999999063220457173883914947509765625,"alarm":"2026-02-27 14:42:00","dispatched":"2026-02-27 14:43:44","enroute":"2026-02-27 14:44:18","onScene":"2026-02-27 14:49:41","cleared":"2026-02-27 15:39:14","inService":"2026-02-27 15:39:14","incidentLocationCross":"FIRST AVE S","cADVehicleID":"B1100","timedispatch":"2026-02-27 14:45:31","timeenroutetoscene":"2026-02-27 14:45:31","timeonscene":"2026-02-27 14:49:41","timeunitclear":"2026-02-27 15:39:14","policeReportNumber":"20260021936","dispatchNotes":"{BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02\/27\/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCENE  [02\/27\/26 15:00:10 JBOHANNON] [LAW] SCHOOL NOTIFIED  [02\/27\/26 14:58:49 BWILSON] [LAW] BUS GARAGE NOTIFIED  [02\/27\/26 14:58:33 BWILSON] UDTS: READY-OP SENT  [02\/27\/26 14:56:46 KBURTON] [LAW] {B406} BUILDING CLEAR  [02\/27\/26 14:55:14 BWILSON] NO ETA GIVEN BY MIDDLE TN NATURAL GAS  [02\/27\/26 14:54:49 KMORGAN2] WIND SPEEN 6-10 NORTH \/ NORTH EAST  [02\/27\/26 14:53:38 KBURTON] 1196 COMMAND EVAC OF THE LOVES BUILDING  [02\/27\/26 14:51:41 JBOHANNON] GAS CO DIRECT\/\/WILL BE ENRT  [02\/27\/26 14:46:38 KMORGAN2] DIRECTLY BEHIND MCDONALDS  [02\/27\/26 14:43:22 KBURTON] HIT A GAS LINE  CAN NOT CONNECT 811  NATURAL GAS  [02\/27\/26 14:42:21 KBURTON]","cADLog":"{BEN2} GAS LEAK STOPPED STORE HAS BEEN REOPENED  [02\/27\/26 15:28:54 JBOHANNON] MIDDLE TN GAS ON SCENE  [02\/27\/26 15:00:10 JBOHANNON] [LAW] SCHOOL NOTIFIED  [02\/27\/26 14:58:49 BWILSON] [LAW] BUS GARAGE NOTIFIED  [02\/27\/26 14:58:33 BWILSON] UDTS: READY-OP SENT  [02\/27\/26 14:56:46 KBURTON] [LAW] {B406} BUILDING CLEAR  [02\/27\/26 14:55:14 BWILSON] NO ETA GIVEN BY MIDDLE TN NATURAL GAS  [02\/27\/26 14:54:49 KMORGAN2] WIND SPEEN 6-10 NORTH \/ NORTH EAST  [02\/27\/26 14:53:38 KBURTON] 1196 COMMAND EVAC OF THE LOVES BUILDING  [02\/27\/26 14:51:41 JBOHANNON] GAS CO DIRECT\/\/WILL BE ENRT  [02\/27\/26 14:46:38 KMORGAN2] DIRECTLY BEHIND MCDONALDS  [02\/27\/26 14:43:22 KBURTON] HIT A GAS LINE  CAN NOT CONNECT 811  NATURAL GAS  [02\/27\/26 14:42:21 KBURTON]","incidentLocationCity":"BAXTER","streetName":"FAST LN","incidentAddressTextVersionStreet":"110 FAST LN","locationCoordinates":"36.13976,-85.63028"}
[2026-03-02 12:58:10] [INFO] Number of extracted fields: 28
[2026-03-02 12:58:10] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
PCSO
BPD'
[2026-03-02 12:58:10] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
PCSO
BPD', Parsed IDs = ["BFD","PCSO","BPD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-02 12:58:10] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","PCSO","BPD"]
[2026-03-02 12:58:10] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:58:10] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-02 12:58:10] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","BPD"]
[2026-03-02 12:58:10] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-02 12:58:10] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-02 12:58:10] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-02 12:58:10] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-02 12:58:10] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-02 12:58:10] [INFO] Found existing IncidentTypeMapping with ID: 69a20faeb27fbc102
[2026-03-02 12:58:10] [INFO] Found existing Dispatch with cADNumber '2026000069', ID: 69a20faf06eb0f317 - will update instead of create
[2026-03-02 12:58:11] [INFO] Updated existing Dispatches record with ID: 69a20faf06eb0f317
[2026-03-02 12:58:11] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:58:11] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:58:14] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:58:14] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021936_20260302_125718_3.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:58:14] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:58:14] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022028_20260302_125721.XML
[2026-03-02 12:58:14] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022028_20260302_125721.XML for user: 68f1466aed072ad4a
[2026-03-02 12:58:14] [INFO] File size: 7187 bytes
[2026-03-02 12:58:14] [INFO] Created FTPFiles record with ID: 69a589666a27c6f3a
[2026-03-02 12:58:14] [INFO] About to extract fields from XML. File size: 7187 bytes
[2026-03-02 12:58:14] [INFO] Number of mappings: 28
[2026-03-02 12:58:14] [INFO] Starting XML parsing. Content length: 7187
[2026-03-02 12:58:14] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:58:14] [INFO] Processing 28 field mappings
[2026-03-02 12:58:14] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:58:14] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:58:14] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 12:58:14] [INFO] Found 6 elements for 'AgencyCode', concatenating 6 non-empty values
[2026-03-02 12:58:14] [INFO]   -> Found value: BFD
BFD
PCFD
RESC
PCSO
BPD
[2026-03-02 12:58:14] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nBFD\nPCFD\nRESC\nPCSO\nBPD"
[2026-03-02 12:58:14] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:58:14] [INFO] Found 6 elements for 'ReportNumber', using FIRST value only
[2026-03-02 12:58:14] [INFO]   -> Found value: 2026000070
[2026-03-02 12:58:14] [INFO]   -> Set field 'incidentInternalId' = "2026000070"
[2026-03-02 12:58:14] [INFO]   -> Set field 'dispatchRunNumber' = "2026000070"
[2026-03-02 12:58:14] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:58:14] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-02 12:58:14] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-02 12:58:14] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:58:14] [INFO]   -> Found value: 281
[2026-03-02 12:58:14] [INFO]   -> Set field 'incidentLocationStreetNumber' = 281
[2026-03-02 12:58:14] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:58:14] [INFO]   -> Found value: TN
[2026-03-02 12:58:14] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:58:14] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:58:14] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:14] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:58:14] [INFO]   -> Found value: MM281W
[2026-03-02 12:58:14] [INFO]   -> Set field 'businessName' = "MM281W"
[2026-03-02 12:58:14] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:58:14] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:14] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:58:14] [INFO]   -> Found value: 36.14031
[2026-03-02 12:58:14] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.140309999999999490682967007160186767578125
[2026-03-02 12:58:14] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:58:14] [INFO]   -> Found value: -85.61141
[2026-03-02 12:58:14] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.611410000000006448317435570061206817626953125
[2026-03-02 12:58:14] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:58:14] [INFO]   -> Found value: 2026-02-27 17:44:53
[2026-03-02 12:58:14] [INFO]   -> Set field 'alarm' = "2026-02-27 17:44:53"
[2026-03-02 12:58:14] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:58:14] [INFO]   -> Found value: 2026-02-27 17:44:53
[2026-03-02 12:58:14] [INFO]   -> Set field 'dispatched' = "2026-02-27 17:44:53"
[2026-03-02 12:58:14] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:58:14] [INFO]   -> Found value: 2026-02-27 17:44:53
[2026-03-02 12:58:14] [INFO]   -> Set field 'enroute' = "2026-02-27 17:44:53"
[2026-03-02 12:58:14] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:58:14] [INFO]   -> Found value: 2026-02-27 17:44:56
[2026-03-02 12:58:14] [INFO]   -> Set field 'onScene' = "2026-02-27 17:44:56"
[2026-03-02 12:58:14] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:58:14] [INFO]   -> Found value: 2026-02-27 17:54:15
[2026-03-02 12:58:14] [INFO]   -> Set field 'cleared' = "2026-02-27 17:54:15"
[2026-03-02 12:58:14] [INFO]   -> Set field 'inService' = "2026-02-27 17:54:15"
[2026-03-02 12:58:14] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:58:14] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:14] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:58:14] [INFO]   -> Found value: BEN2
[2026-03-02 12:58:14] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-02 12:58:14] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:58:14] [INFO]   -> Found value: 2026-02-27 17:44:53
[2026-03-02 12:58:14] [INFO]   -> Set field 'timedispatch' = "2026-02-27 17:44:53"
[2026-03-02 12:58:14] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:58:14] [INFO]   -> Found value: 2026-02-27 17:44:53
[2026-03-02 12:58:14] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 17:44:53"
[2026-03-02 12:58:14] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:58:14] [INFO]   -> Found value: 2026-02-27 17:44:56
[2026-03-02 12:58:14] [INFO]   -> Set field 'timeonscene' = "2026-02-27 17:44:56"
[2026-03-02 12:58:14] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:58:14] [INFO]   -> Found value: 2026-02-27 17:54:15
[2026-03-02 12:58:14] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 17:54:15"
[2026-03-02 12:58:14] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:58:14] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:14] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:58:14] [INFO] Found 6 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 12:58:14] [INFO]   -> Found value: 20260022028
[2026-03-02 12:58:14] [INFO]   -> Set field 'policeReportNumber' = "20260022028"
[2026-03-02 12:58:14] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:58:14] [INFO]   -> Found value: PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02/27/26 17:46...
[2026-03-02 12:58:14] [INFO]   -> Set field 'dispatchNotes' = "PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:44:53 JBOHANNON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:58:14] [INFO]   -> Set field 'cADLog' = "PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:44:53 JBOHANNON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:58:14] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:58:14] [INFO]   -> Found value: BAXTER
[2026-03-02 12:58:14] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 12:58:14] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:58:14] [INFO]   -> Found value: I 40
[2026-03-02 12:58:14] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-02 12:58:14] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:58:14] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:14] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:58:14] [INFO]   -> Found value: 281 W I 40
[2026-03-02 12:58:14] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "281 W I 40"
[2026-03-02 12:58:14] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 12:58:14] [INFO] Built locationCoordinates from lat/lng: 36.14031,-85.61141
[2026-03-02 12:58:14] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nBFD\nPCFD\nRESC\nPCSO\nBPD","incidentInternalId":"2026000070","dispatchRunNumber":"2026000070","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":281,"incidentLocationStateName":"TN","businessName":"MM281W","nERISIncidentLatitude":36.140309999999999490682967007160186767578125,"nERISIncidentLongitude":-85.611410000000006448317435570061206817626953125,"alarm":"2026-02-27 17:44:53","dispatched":"2026-02-27 17:44:53","enroute":"2026-02-27 17:44:53","onScene":"2026-02-27 17:44:56","cleared":"2026-02-27 17:54:15","inService":"2026-02-27 17:54:15","cADVehicleID":"BEN2","timedispatch":"2026-02-27 17:44:53","timeenroutetoscene":"2026-02-27 17:44:53","timeonscene":"2026-02-27 17:44:56","timeunitclear":"2026-02-27 17:54:15","policeReportNumber":"20260022028","dispatchNotes":"PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:44:53 JBOHANNON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","cADLog":"PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:44:53 JBOHANNON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"I 40","incidentAddressTextVersionStreet":"281 W I 40","locationCoordinates":"36.14031,-85.61141"}
[2026-03-02 12:58:14] [INFO] Number of extracted fields: 27
[2026-03-02 12:58:14] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
BFD
PCFD
RESC
PCSO
BPD'
[2026-03-02 12:58:14] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
BFD
PCFD
RESC
PCSO
BPD', Parsed IDs = ["BFD","BFD","PCFD","RESC","PCSO","BPD"], Non-empty count = 6, Total agency count = 6, Assigned Agencies count = 4
[2026-03-02 12:58:14] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","BFD","PCFD","RESC","PCSO","BPD"]
[2026-03-02 12:58:14] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:58:14] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-02 12:58:14] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["BFD","PCFD","RESC","PCSO","BPD"]
[2026-03-02 12:58:14] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-02 12:58:14] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-02 12:58:14] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 6)
[2026-03-02 12:58:14] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-02 12:58:14] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-02 12:58:15] [INFO] Found existing IncidentTypeMapping with ID: 6945ba14169a84c4e
[2026-03-02 12:58:18] [INFO] Created new Dispatches record with ID: 69a5896752145337f
[2026-03-02 12:58:18] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:58:18] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:58: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-03-02 12:58:22] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022028_20260302_125721.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:58:22] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:58:22] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022028_20260302_125721_1.XML
[2026-03-02 12:58:22] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022028_20260302_125721_1.XML for user: 68f1466aed072ad4a
[2026-03-02 12:58:22] [INFO] File size: 7187 bytes
[2026-03-02 12:58:22] [INFO] Created FTPFiles record with ID: 69a5896e78bbd2316
[2026-03-02 12:58:22] [INFO] About to extract fields from XML. File size: 7187 bytes
[2026-03-02 12:58:22] [INFO] Number of mappings: 28
[2026-03-02 12:58:22] [INFO] Starting XML parsing. Content length: 7187
[2026-03-02 12:58:22] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:58:22] [INFO] Processing 28 field mappings
[2026-03-02 12:58:22] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:58:22] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:58:22] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 12:58:22] [INFO] Found 6 elements for 'AgencyCode', concatenating 6 non-empty values
[2026-03-02 12:58:22] [INFO]   -> Found value: BFD
BFD
PCFD
RESC
PCSO
BPD
[2026-03-02 12:58:22] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nBFD\nPCFD\nRESC\nPCSO\nBPD"
[2026-03-02 12:58:22] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:58:22] [INFO] Found 6 elements for 'ReportNumber', using FIRST value only
[2026-03-02 12:58:22] [INFO]   -> Found value: 2026000070
[2026-03-02 12:58:22] [INFO]   -> Set field 'incidentInternalId' = "2026000070"
[2026-03-02 12:58:22] [INFO]   -> Set field 'dispatchRunNumber' = "2026000070"
[2026-03-02 12:58:22] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:58:22] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-02 12:58:22] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-02 12:58:22] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:58:22] [INFO]   -> Found value: 281
[2026-03-02 12:58:22] [INFO]   -> Set field 'incidentLocationStreetNumber' = 281
[2026-03-02 12:58:22] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:58:22] [INFO]   -> Found value: TN
[2026-03-02 12:58:22] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:58:22] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:58:22] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:22] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:58:22] [INFO]   -> Found value: MM281W
[2026-03-02 12:58:22] [INFO]   -> Set field 'businessName' = "MM281W"
[2026-03-02 12:58:22] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:58:22] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:22] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:58:22] [INFO]   -> Found value: 36.14031
[2026-03-02 12:58:22] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.140309999999999490682967007160186767578125
[2026-03-02 12:58:22] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:58:22] [INFO]   -> Found value: -85.61141
[2026-03-02 12:58:22] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.611410000000006448317435570061206817626953125
[2026-03-02 12:58:22] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:58:22] [INFO]   -> Found value: 2026-02-27 17:44:53
[2026-03-02 12:58:22] [INFO]   -> Set field 'alarm' = "2026-02-27 17:44:53"
[2026-03-02 12:58:22] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:58:22] [INFO]   -> Found value: 2026-02-27 17:44:53
[2026-03-02 12:58:22] [INFO]   -> Set field 'dispatched' = "2026-02-27 17:44:53"
[2026-03-02 12:58:22] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:58:22] [INFO]   -> Found value: 2026-02-27 17:44:53
[2026-03-02 12:58:22] [INFO]   -> Set field 'enroute' = "2026-02-27 17:44:53"
[2026-03-02 12:58:22] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:58:22] [INFO]   -> Found value: 2026-02-27 17:44:56
[2026-03-02 12:58:22] [INFO]   -> Set field 'onScene' = "2026-02-27 17:44:56"
[2026-03-02 12:58:22] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:58:22] [INFO]   -> Found value: 2026-02-27 17:54:15
[2026-03-02 12:58:22] [INFO]   -> Set field 'cleared' = "2026-02-27 17:54:15"
[2026-03-02 12:58:22] [INFO]   -> Set field 'inService' = "2026-02-27 17:54:15"
[2026-03-02 12:58:22] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:58:22] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:22] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:58:22] [INFO]   -> Found value: BEN2
[2026-03-02 12:58:22] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-02 12:58:22] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:58:22] [INFO]   -> Found value: 2026-02-27 17:44:53
[2026-03-02 12:58:22] [INFO]   -> Set field 'timedispatch' = "2026-02-27 17:44:53"
[2026-03-02 12:58:22] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:58:22] [INFO]   -> Found value: 2026-02-27 17:44:53
[2026-03-02 12:58:22] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 17:44:53"
[2026-03-02 12:58:22] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:58:22] [INFO]   -> Found value: 2026-02-27 17:44:56
[2026-03-02 12:58:22] [INFO]   -> Set field 'timeonscene' = "2026-02-27 17:44:56"
[2026-03-02 12:58:22] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:58:22] [INFO]   -> Found value: 2026-02-27 17:54:15
[2026-03-02 12:58:22] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 17:54:15"
[2026-03-02 12:58:22] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:58:22] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:22] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:58:22] [INFO] Found 6 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 12:58:22] [INFO]   -> Found value: 20260022028
[2026-03-02 12:58:22] [INFO]   -> Set field 'policeReportNumber' = "20260022028"
[2026-03-02 12:58:22] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:58:22] [INFO]   -> Found value: PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02/27/26 17:46...
[2026-03-02 12:58:22] [INFO]   -> Set field 'dispatchNotes' = "PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:44:53 JBOHANNON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:58:22] [INFO]   -> Set field 'cADLog' = "PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:44:53 JBOHANNON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:58:22] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:58:22] [INFO]   -> Found value: BAXTER
[2026-03-02 12:58:22] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 12:58:22] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:58:22] [INFO]   -> Found value: I 40
[2026-03-02 12:58:22] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-02 12:58:22] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:58:22] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:22] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:58:22] [INFO]   -> Found value: 281 W I 40
[2026-03-02 12:58:22] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "281 W I 40"
[2026-03-02 12:58:22] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 12:58:22] [INFO] Built locationCoordinates from lat/lng: 36.14031,-85.61141
[2026-03-02 12:58:22] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nBFD\nPCFD\nRESC\nPCSO\nBPD","incidentInternalId":"2026000070","dispatchRunNumber":"2026000070","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":281,"incidentLocationStateName":"TN","businessName":"MM281W","nERISIncidentLatitude":36.140309999999999490682967007160186767578125,"nERISIncidentLongitude":-85.611410000000006448317435570061206817626953125,"alarm":"2026-02-27 17:44:53","dispatched":"2026-02-27 17:44:53","enroute":"2026-02-27 17:44:53","onScene":"2026-02-27 17:44:56","cleared":"2026-02-27 17:54:15","inService":"2026-02-27 17:54:15","cADVehicleID":"BEN2","timedispatch":"2026-02-27 17:44:53","timeenroutetoscene":"2026-02-27 17:44:53","timeonscene":"2026-02-27 17:44:56","timeunitclear":"2026-02-27 17:54:15","policeReportNumber":"20260022028","dispatchNotes":"PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:44:53 JBOHANNON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","cADLog":"PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:44:53 JBOHANNON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"I 40","incidentAddressTextVersionStreet":"281 W I 40","locationCoordinates":"36.14031,-85.61141"}
[2026-03-02 12:58:22] [INFO] Number of extracted fields: 27
[2026-03-02 12:58:22] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
BFD
PCFD
RESC
PCSO
BPD'
[2026-03-02 12:58:22] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
BFD
PCFD
RESC
PCSO
BPD', Parsed IDs = ["BFD","BFD","PCFD","RESC","PCSO","BPD"], Non-empty count = 6, Total agency count = 6, Assigned Agencies count = 4
[2026-03-02 12:58:22] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","BFD","PCFD","RESC","PCSO","BPD"]
[2026-03-02 12:58:22] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:58:22] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-02 12:58:22] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["BFD","PCFD","RESC","PCSO","BPD"]
[2026-03-02 12:58:22] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-02 12:58:22] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-02 12:58:22] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 6)
[2026-03-02 12:58:22] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-02 12:58:22] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-02 12:58:23] [INFO] Found existing IncidentTypeMapping with ID: 6945ba14169a84c4e
[2026-03-02 12:58:23] [INFO] Found existing Dispatch with cADNumber '2026000070', ID: 69a5896752145337f - will update instead of create
[2026-03-02 12:58:23] [INFO] Updated existing Dispatches record with ID: 69a5896752145337f
[2026-03-02 12:58:23] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:58:23] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:58: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-03-02 12:58:27] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022028_20260302_125721_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:58:27] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:58:27] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022028_20260302_125721_1.XML
[2026-03-02 12:58:27] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022028_20260302_125721_1.XML for user: 68f1466aed072ad4a
[2026-03-02 12:58:27] [INFO] File size: 7187 bytes
[2026-03-02 12:58:27] [INFO] Created FTPFiles record with ID: 69a58973abbcfc171
[2026-03-02 12:58:27] [INFO] About to extract fields from XML. File size: 7187 bytes
[2026-03-02 12:58:27] [INFO] Number of mappings: 28
[2026-03-02 12:58:27] [INFO] Starting XML parsing. Content length: 7187
[2026-03-02 12:58:27] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:58:27] [INFO] Processing 28 field mappings
[2026-03-02 12:58:27] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:58:27] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:58:27] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 12:58:27] [INFO] Found 6 elements for 'AgencyCode', concatenating 6 non-empty values
[2026-03-02 12:58:27] [INFO]   -> Found value: BFD
BFD
PCFD
RESC
PCSO
BPD
[2026-03-02 12:58:27] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nBFD\nPCFD\nRESC\nPCSO\nBPD"
[2026-03-02 12:58:27] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:58:27] [INFO] Found 6 elements for 'ReportNumber', using FIRST value only
[2026-03-02 12:58:27] [INFO]   -> Found value: 2026000070
[2026-03-02 12:58:27] [INFO]   -> Set field 'incidentInternalId' = "2026000070"
[2026-03-02 12:58:27] [INFO]   -> Set field 'dispatchRunNumber' = "2026000070"
[2026-03-02 12:58:27] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:58:27] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-02 12:58:27] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-02 12:58:27] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:58:27] [INFO]   -> Found value: 281
[2026-03-02 12:58:27] [INFO]   -> Set field 'incidentLocationStreetNumber' = 281
[2026-03-02 12:58:27] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:58:27] [INFO]   -> Found value: TN
[2026-03-02 12:58:27] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:58:27] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:58:27] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:27] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:58:27] [INFO]   -> Found value: MM281W
[2026-03-02 12:58:27] [INFO]   -> Set field 'businessName' = "MM281W"
[2026-03-02 12:58:27] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:58:27] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:27] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:58:27] [INFO]   -> Found value: 36.14031
[2026-03-02 12:58:27] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.140309999999999490682967007160186767578125
[2026-03-02 12:58:27] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:58:27] [INFO]   -> Found value: -85.61141
[2026-03-02 12:58:27] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.611410000000006448317435570061206817626953125
[2026-03-02 12:58:27] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:58:27] [INFO]   -> Found value: 2026-02-27 17:44:53
[2026-03-02 12:58:27] [INFO]   -> Set field 'alarm' = "2026-02-27 17:44:53"
[2026-03-02 12:58:27] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:58:27] [INFO]   -> Found value: 2026-02-27 17:44:53
[2026-03-02 12:58:27] [INFO]   -> Set field 'dispatched' = "2026-02-27 17:44:53"
[2026-03-02 12:58:27] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:58:27] [INFO]   -> Found value: 2026-02-27 17:44:53
[2026-03-02 12:58:27] [INFO]   -> Set field 'enroute' = "2026-02-27 17:44:53"
[2026-03-02 12:58:27] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:58:27] [INFO]   -> Found value: 2026-02-27 17:44:56
[2026-03-02 12:58:27] [INFO]   -> Set field 'onScene' = "2026-02-27 17:44:56"
[2026-03-02 12:58:27] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:58:27] [INFO]   -> Found value: 2026-02-27 17:54:15
[2026-03-02 12:58:27] [INFO]   -> Set field 'cleared' = "2026-02-27 17:54:15"
[2026-03-02 12:58:27] [INFO]   -> Set field 'inService' = "2026-02-27 17:54:15"
[2026-03-02 12:58:27] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:58:27] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:27] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:58:27] [INFO]   -> Found value: BEN2
[2026-03-02 12:58:27] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-02 12:58:27] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:58:27] [INFO]   -> Found value: 2026-02-27 17:44:53
[2026-03-02 12:58:27] [INFO]   -> Set field 'timedispatch' = "2026-02-27 17:44:53"
[2026-03-02 12:58:27] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:58:27] [INFO]   -> Found value: 2026-02-27 17:44:53
[2026-03-02 12:58:27] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 17:44:53"
[2026-03-02 12:58:27] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:58:27] [INFO]   -> Found value: 2026-02-27 17:44:56
[2026-03-02 12:58:27] [INFO]   -> Set field 'timeonscene' = "2026-02-27 17:44:56"
[2026-03-02 12:58:27] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:58:27] [INFO]   -> Found value: 2026-02-27 17:54:15
[2026-03-02 12:58:27] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 17:54:15"
[2026-03-02 12:58:27] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:58:27] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:27] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:58:27] [INFO] Found 6 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 12:58:27] [INFO]   -> Found value: 20260022028
[2026-03-02 12:58:27] [INFO]   -> Set field 'policeReportNumber' = "20260022028"
[2026-03-02 12:58:27] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:58:27] [INFO]   -> Found value: PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02/27/26 17:46...
[2026-03-02 12:58:27] [INFO]   -> Set field 'dispatchNotes' = "PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:44:53 JBOHANNON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:58:27] [INFO]   -> Set field 'cADLog' = "PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:44:53 JBOHANNON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:58:27] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:58:27] [INFO]   -> Found value: BAXTER
[2026-03-02 12:58:27] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 12:58:27] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:58:27] [INFO]   -> Found value: I 40
[2026-03-02 12:58:27] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-02 12:58:27] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:58:27] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:27] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:58:27] [INFO]   -> Found value: 281 W I 40
[2026-03-02 12:58:27] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "281 W I 40"
[2026-03-02 12:58:27] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 12:58:27] [INFO] Built locationCoordinates from lat/lng: 36.14031,-85.61141
[2026-03-02 12:58:27] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nBFD\nPCFD\nRESC\nPCSO\nBPD","incidentInternalId":"2026000070","dispatchRunNumber":"2026000070","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":281,"incidentLocationStateName":"TN","businessName":"MM281W","nERISIncidentLatitude":36.140309999999999490682967007160186767578125,"nERISIncidentLongitude":-85.611410000000006448317435570061206817626953125,"alarm":"2026-02-27 17:44:53","dispatched":"2026-02-27 17:44:53","enroute":"2026-02-27 17:44:53","onScene":"2026-02-27 17:44:56","cleared":"2026-02-27 17:54:15","inService":"2026-02-27 17:54:15","cADVehicleID":"BEN2","timedispatch":"2026-02-27 17:44:53","timeenroutetoscene":"2026-02-27 17:44:53","timeonscene":"2026-02-27 17:44:56","timeunitclear":"2026-02-27 17:54:15","policeReportNumber":"20260022028","dispatchNotes":"PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:44:53 JBOHANNON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","cADLog":"PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:44:53 JBOHANNON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"I 40","incidentAddressTextVersionStreet":"281 W I 40","locationCoordinates":"36.14031,-85.61141"}
[2026-03-02 12:58:27] [INFO] Number of extracted fields: 27
[2026-03-02 12:58:27] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
BFD
PCFD
RESC
PCSO
BPD'
[2026-03-02 12:58:27] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
BFD
PCFD
RESC
PCSO
BPD', Parsed IDs = ["BFD","BFD","PCFD","RESC","PCSO","BPD"], Non-empty count = 6, Total agency count = 6, Assigned Agencies count = 4
[2026-03-02 12:58:27] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","BFD","PCFD","RESC","PCSO","BPD"]
[2026-03-02 12:58:27] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:58:27] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-02 12:58:27] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["BFD","PCFD","RESC","PCSO","BPD"]
[2026-03-02 12:58:28] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-02 12:58:28] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-02 12:58:28] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 6)
[2026-03-02 12:58:28] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-02 12:58:28] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-02 12:58:28] [INFO] Found existing IncidentTypeMapping with ID: 6945ba14169a84c4e
[2026-03-02 12:58:28] [INFO] Found existing Dispatch with cADNumber '2026000070', ID: 69a5896752145337f - will update instead of create
[2026-03-02 12:58:28] [INFO] Updated existing Dispatches record with ID: 69a5896752145337f
[2026-03-02 12:58:28] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:58:28] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:58:32] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:58:32] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022028_20260302_125721_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:58:32] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:58:32] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022383_20260302_125723.XML
[2026-03-02 12:58:32] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022383_20260302_125723.XML for user: 68f1466aed072ad4a
[2026-03-02 12:58:32] [INFO] File size: 5672 bytes
[2026-03-02 12:58:32] [INFO] Created FTPFiles record with ID: 69a5897876e25303c
[2026-03-02 12:58:32] [INFO] About to extract fields from XML. File size: 5672 bytes
[2026-03-02 12:58:32] [INFO] Number of mappings: 28
[2026-03-02 12:58:32] [INFO] Starting XML parsing. Content length: 5672
[2026-03-02 12:58:32] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:58:32] [INFO] Processing 28 field mappings
[2026-03-02 12:58:32] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:58:32] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:58:32] [INFO]   -> Found value: BFD
[2026-03-02 12:58:32] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD"
[2026-03-02 12:58:32] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:58:32] [INFO]   -> Found value: 2026000071
[2026-03-02 12:58:32] [INFO]   -> Set field 'incidentInternalId' = "2026000071"
[2026-03-02 12:58:32] [INFO]   -> Set field 'dispatchRunNumber' = "2026000071"
[2026-03-02 12:58:32] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:58:32] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-02 12:58:32] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-02 12:58:32] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:58:32] [INFO]   -> Found value: 415
[2026-03-02 12:58:32] [INFO]   -> Set field 'incidentLocationStreetNumber' = 415
[2026-03-02 12:58:32] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:58:32] [INFO]   -> Found value: TN
[2026-03-02 12:58:32] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:58:32] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:58:32] [INFO]   -> Found value: 38544
[2026-03-02 12:58:32] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 12:58:32] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:58:32] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:32] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:58:32] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:32] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:58:32] [INFO]   -> Found value: 36.15894
[2026-03-02 12:58:32] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.158940000000001191438059322535991668701171875
[2026-03-02 12:58:32] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:58:32] [INFO]   -> Found value: -85.64935
[2026-03-02 12:58:32] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.649349999999998317434801720082759857177734375
[2026-03-02 12:58:32] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:58:32] [INFO]   -> Found value: 2026-02-28 17:04:26
[2026-03-02 12:58:32] [INFO]   -> Set field 'alarm' = "2026-02-28 17:04:26"
[2026-03-02 12:58:32] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:58:32] [INFO]   -> Found value: 2026-02-28 17:05:39
[2026-03-02 12:58:32] [INFO]   -> Set field 'dispatched' = "2026-02-28 17:05:39"
[2026-03-02 12:58:32] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:58:32] [INFO]   -> Found value: 2026-02-28 17:07:26
[2026-03-02 12:58:32] [INFO]   -> Set field 'enroute' = "2026-02-28 17:07:26"
[2026-03-02 12:58:32] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:58:32] [INFO]   -> Found value: 2026-02-28 17:10:32
[2026-03-02 12:58:32] [INFO]   -> Set field 'onScene' = "2026-02-28 17:10:32"
[2026-03-02 12:58:32] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:58:32] [INFO]   -> Found value: 2026-02-28 17:37:40
[2026-03-02 12:58:32] [INFO]   -> Set field 'cleared' = "2026-02-28 17:37:40"
[2026-03-02 12:58:32] [INFO]   -> Set field 'inService' = "2026-02-28 17:37:40"
[2026-03-02 12:58:32] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:58:32] [INFO]   -> Found value: CHESTNUT ST/CHESTNUT ST
[2026-03-02 12:58:32] [INFO]   -> Set field 'incidentLocationCross' = "CHESTNUT ST\/CHESTNUT ST"
[2026-03-02 12:58:32] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:58:32] [INFO]   -> Found value: BEN2
[2026-03-02 12:58:32] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-02 12:58:32] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:58:32] [INFO]   -> Found value: 2026-02-28 17:05:39
[2026-03-02 12:58:32] [INFO]   -> Set field 'timedispatch' = "2026-02-28 17:05:39"
[2026-03-02 12:58:32] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:58:32] [INFO]   -> Found value: 2026-02-28 17:07:26
[2026-03-02 12:58:32] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 17:07:26"
[2026-03-02 12:58:32] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:58:32] [INFO]   -> Found value: 2026-02-28 17:10:32
[2026-03-02 12:58:32] [INFO]   -> Set field 'timeonscene' = "2026-02-28 17:10:32"
[2026-03-02 12:58:32] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:58:32] [INFO]   -> Found value: 2026-02-28 17:37:40
[2026-03-02 12:58:32] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 17:37:40"
[2026-03-02 12:58:32] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:58:32] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:32] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:58:32] [INFO]   -> Found value: 20260022383
[2026-03-02 12:58:32] [INFO]   -> Set field 'policeReportNumber' = "20260022383"
[2026-03-02 12:58:32] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:58:32] [INFO]   -> Found value: [EMS] UDTS: {723} PATIENT LOADED  [02/28/26 17:20:26 JDICK] [EMS] CARPORT ENTRANCE--RAMP ON THE FRON...
[2026-03-02 12:58:32] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: {723} PATIENT LOADED  [02\/28\/26 17:20:26 JDICK] [EMS] CARPORT ENTRANCE--RAMP ON THE FRONT DOOR IF NEEDED  [02\/28\/26 17:06:15 KHILL] [EMS] CA PATIENT  [02\/28\/26 17:05:59 KHILL] [EMS] HAS HAD THIS ISSUE BEFORE IN THE PAST   CARDIAC HX AS OF JAN 2026  [02\/28\/26 17:05:37 KHILL] [EMS] PATIENT WANDA SALLEE  DOB 03\/14\/1949  [02\/28\/26 17:05:01 KHILL] Event spawned from ABDOMINAL PAIN.  [02\/28\/2026 17:04:26 KHILL] GALL BLADDER ISSUES IN SEVERE PAIN THROWING UP  [02\/28\/26 17:04:25 KHILL]]"
[2026-03-02 12:58:32] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: {723} PATIENT LOADED  [02\/28\/26 17:20:26 JDICK] [EMS] CARPORT ENTRANCE--RAMP ON THE FRONT DOOR IF NEEDED  [02\/28\/26 17:06:15 KHILL] [EMS] CA PATIENT  [02\/28\/26 17:05:59 KHILL] [EMS] HAS HAD THIS ISSUE BEFORE IN THE PAST   CARDIAC HX AS OF JAN 2026  [02\/28\/26 17:05:37 KHILL] [EMS] PATIENT WANDA SALLEE  DOB 03\/14\/1949  [02\/28\/26 17:05:01 KHILL] Event spawned from ABDOMINAL PAIN.  [02\/28\/2026 17:04:26 KHILL] GALL BLADDER ISSUES IN SEVERE PAIN THROWING UP  [02\/28\/26 17:04:25 KHILL]]"
[2026-03-02 12:58:32] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:58:32] [INFO]   -> Found value: BAXTER
[2026-03-02 12:58:32] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 12:58:32] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:58:32] [INFO]   -> Found value: FIRST
[2026-03-02 12:58:32] [INFO]   -> Set field 'streetName' = "FIRST"
[2026-03-02 12:58:32] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:58:32] [INFO]   -> Found value: AVE
[2026-03-02 12:58:32] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-02 12:58:32] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:58:32] [INFO]   -> Found value: 415 FIRST AVE N
[2026-03-02 12:58:32] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "415 FIRST AVE N"
[2026-03-02 12:58:32] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 12:58:32] [INFO] Concatenating street name and type
[2026-03-02 12:58:32] [INFO]   -> Combined street name: FIRST AVE
[2026-03-02 12:58:32] [INFO] Built locationCoordinates from lat/lng: 36.15894,-85.64935
[2026-03-02 12:58:32] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD","incidentInternalId":"2026000071","dispatchRunNumber":"2026000071","incidentTypeValue1":"ABDOMINAL PAIN","incidentLocationStreetNumber":415,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.158940000000001191438059322535991668701171875,"nERISIncidentLongitude":-85.649349999999998317434801720082759857177734375,"alarm":"2026-02-28 17:04:26","dispatched":"2026-02-28 17:05:39","enroute":"2026-02-28 17:07:26","onScene":"2026-02-28 17:10:32","cleared":"2026-02-28 17:37:40","inService":"2026-02-28 17:37:40","incidentLocationCross":"CHESTNUT ST\/CHESTNUT ST","cADVehicleID":"BEN2","timedispatch":"2026-02-28 17:05:39","timeenroutetoscene":"2026-02-28 17:07:26","timeonscene":"2026-02-28 17:10:32","timeunitclear":"2026-02-28 17:37:40","policeReportNumber":"20260022383","dispatchNotes":"[EMS] UDTS: {723} PATIENT LOADED  [02\/28\/26 17:20:26 JDICK] [EMS] CARPORT ENTRANCE--RAMP ON THE FRONT DOOR IF NEEDED  [02\/28\/26 17:06:15 KHILL] [EMS] CA PATIENT  [02\/28\/26 17:05:59 KHILL] [EMS] HAS HAD THIS ISSUE BEFORE IN THE PAST   CARDIAC HX AS OF JAN 2026  [02\/28\/26 17:05:37 KHILL] [EMS] PATIENT WANDA SALLEE  DOB 03\/14\/1949  [02\/28\/26 17:05:01 KHILL] Event spawned from ABDOMINAL PAIN.  [02\/28\/2026 17:04:26 KHILL] GALL BLADDER ISSUES IN SEVERE PAIN THROWING UP  [02\/28\/26 17:04:25 KHILL]]","cADLog":"[EMS] UDTS: {723} PATIENT LOADED  [02\/28\/26 17:20:26 JDICK] [EMS] CARPORT ENTRANCE--RAMP ON THE FRONT DOOR IF NEEDED  [02\/28\/26 17:06:15 KHILL] [EMS] CA PATIENT  [02\/28\/26 17:05:59 KHILL] [EMS] HAS HAD THIS ISSUE BEFORE IN THE PAST   CARDIAC HX AS OF JAN 2026  [02\/28\/26 17:05:37 KHILL] [EMS] PATIENT WANDA SALLEE  DOB 03\/14\/1949  [02\/28\/26 17:05:01 KHILL] Event spawned from ABDOMINAL PAIN.  [02\/28\/2026 17:04:26 KHILL] GALL BLADDER ISSUES IN SEVERE PAIN THROWING UP  [02\/28\/26 17:04:25 KHILL]]","incidentLocationCity":"BAXTER","streetName":"FIRST AVE","incidentAddressTextVersionStreet":"415 FIRST AVE N","locationCoordinates":"36.15894,-85.64935"}
[2026-03-02 12:58:32] [INFO] Number of extracted fields: 28
[2026-03-02 12:58:32] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD'
[2026-03-02 12:58:32] [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-03-02 12:58:32] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD"]
[2026-03-02 12:58:32] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:58:32] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-02 12:58:32] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-02 12:58:32] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-02 12:58:32] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-02 12:58:33] [INFO] Found existing IncidentTypeMapping with ID: 6945b247e7ea30221
[2026-03-02 12:58:36] [INFO] Created new Dispatches record with ID: 69a589795b7b2e5df
[2026-03-02 12:58:36] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:58:36] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:58:39] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:58:39] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022383_20260302_125723.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:58:39] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:58:39] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022383_20260302_125723_1.XML
[2026-03-02 12:58:39] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022383_20260302_125723_1.XML for user: 68f1466aed072ad4a
[2026-03-02 12:58:39] [INFO] File size: 5672 bytes
[2026-03-02 12:58:39] [INFO] Created FTPFiles record with ID: 69a5897fa621bacaa
[2026-03-02 12:58:39] [INFO] About to extract fields from XML. File size: 5672 bytes
[2026-03-02 12:58:39] [INFO] Number of mappings: 28
[2026-03-02 12:58:39] [INFO] Starting XML parsing. Content length: 5672
[2026-03-02 12:58:39] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:58:39] [INFO] Processing 28 field mappings
[2026-03-02 12:58:39] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:58:39] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:58:39] [INFO]   -> Found value: BFD
[2026-03-02 12:58:39] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD"
[2026-03-02 12:58:39] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:58:39] [INFO]   -> Found value: 2026000071
[2026-03-02 12:58:39] [INFO]   -> Set field 'incidentInternalId' = "2026000071"
[2026-03-02 12:58:39] [INFO]   -> Set field 'dispatchRunNumber' = "2026000071"
[2026-03-02 12:58:39] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:58:39] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-02 12:58:39] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-02 12:58:39] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:58:39] [INFO]   -> Found value: 415
[2026-03-02 12:58:39] [INFO]   -> Set field 'incidentLocationStreetNumber' = 415
[2026-03-02 12:58:39] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:58:39] [INFO]   -> Found value: TN
[2026-03-02 12:58:39] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:58:39] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:58:39] [INFO]   -> Found value: 38544
[2026-03-02 12:58:39] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 12:58:39] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:58:39] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:39] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:58:39] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:39] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:58:39] [INFO]   -> Found value: 36.15894
[2026-03-02 12:58:39] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.158940000000001191438059322535991668701171875
[2026-03-02 12:58:39] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:58:39] [INFO]   -> Found value: -85.64935
[2026-03-02 12:58:39] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.649349999999998317434801720082759857177734375
[2026-03-02 12:58:39] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:58:39] [INFO]   -> Found value: 2026-02-28 17:04:26
[2026-03-02 12:58:39] [INFO]   -> Set field 'alarm' = "2026-02-28 17:04:26"
[2026-03-02 12:58:39] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:58:39] [INFO]   -> Found value: 2026-02-28 17:05:39
[2026-03-02 12:58:39] [INFO]   -> Set field 'dispatched' = "2026-02-28 17:05:39"
[2026-03-02 12:58:39] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:58:39] [INFO]   -> Found value: 2026-02-28 17:07:26
[2026-03-02 12:58:39] [INFO]   -> Set field 'enroute' = "2026-02-28 17:07:26"
[2026-03-02 12:58:39] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:58:39] [INFO]   -> Found value: 2026-02-28 17:10:32
[2026-03-02 12:58:39] [INFO]   -> Set field 'onScene' = "2026-02-28 17:10:32"
[2026-03-02 12:58:39] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:58:39] [INFO]   -> Found value: 2026-02-28 17:37:40
[2026-03-02 12:58:39] [INFO]   -> Set field 'cleared' = "2026-02-28 17:37:40"
[2026-03-02 12:58:39] [INFO]   -> Set field 'inService' = "2026-02-28 17:37:40"
[2026-03-02 12:58:39] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:58:39] [INFO]   -> Found value: CHESTNUT ST/CHESTNUT ST
[2026-03-02 12:58:39] [INFO]   -> Set field 'incidentLocationCross' = "CHESTNUT ST\/CHESTNUT ST"
[2026-03-02 12:58:39] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:58:39] [INFO]   -> Found value: BEN2
[2026-03-02 12:58:39] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-02 12:58:39] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:58:39] [INFO]   -> Found value: 2026-02-28 17:05:39
[2026-03-02 12:58:39] [INFO]   -> Set field 'timedispatch' = "2026-02-28 17:05:39"
[2026-03-02 12:58:39] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:58:39] [INFO]   -> Found value: 2026-02-28 17:07:26
[2026-03-02 12:58:39] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 17:07:26"
[2026-03-02 12:58:39] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:58:39] [INFO]   -> Found value: 2026-02-28 17:10:32
[2026-03-02 12:58:39] [INFO]   -> Set field 'timeonscene' = "2026-02-28 17:10:32"
[2026-03-02 12:58:39] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:58:39] [INFO]   -> Found value: 2026-02-28 17:37:40
[2026-03-02 12:58:39] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 17:37:40"
[2026-03-02 12:58:39] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:58:39] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:39] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:58:39] [INFO]   -> Found value: 20260022383
[2026-03-02 12:58:39] [INFO]   -> Set field 'policeReportNumber' = "20260022383"
[2026-03-02 12:58:39] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:58:39] [INFO]   -> Found value: [EMS] UDTS: {723} PATIENT LOADED  [02/28/26 17:20:26 JDICK] [EMS] CARPORT ENTRANCE--RAMP ON THE FRON...
[2026-03-02 12:58:39] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: {723} PATIENT LOADED  [02\/28\/26 17:20:26 JDICK] [EMS] CARPORT ENTRANCE--RAMP ON THE FRONT DOOR IF NEEDED  [02\/28\/26 17:06:15 KHILL] [EMS] CA PATIENT  [02\/28\/26 17:05:59 KHILL] [EMS] HAS HAD THIS ISSUE BEFORE IN THE PAST   CARDIAC HX AS OF JAN 2026  [02\/28\/26 17:05:37 KHILL] [EMS] PATIENT WANDA SALLEE  DOB 03\/14\/1949  [02\/28\/26 17:05:01 KHILL] Event spawned from ABDOMINAL PAIN.  [02\/28\/2026 17:04:26 KHILL] GALL BLADDER ISSUES IN SEVERE PAIN THROWING UP  [02\/28\/26 17:04:25 KHILL]]"
[2026-03-02 12:58:39] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: {723} PATIENT LOADED  [02\/28\/26 17:20:26 JDICK] [EMS] CARPORT ENTRANCE--RAMP ON THE FRONT DOOR IF NEEDED  [02\/28\/26 17:06:15 KHILL] [EMS] CA PATIENT  [02\/28\/26 17:05:59 KHILL] [EMS] HAS HAD THIS ISSUE BEFORE IN THE PAST   CARDIAC HX AS OF JAN 2026  [02\/28\/26 17:05:37 KHILL] [EMS] PATIENT WANDA SALLEE  DOB 03\/14\/1949  [02\/28\/26 17:05:01 KHILL] Event spawned from ABDOMINAL PAIN.  [02\/28\/2026 17:04:26 KHILL] GALL BLADDER ISSUES IN SEVERE PAIN THROWING UP  [02\/28\/26 17:04:25 KHILL]]"
[2026-03-02 12:58:39] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:58:39] [INFO]   -> Found value: BAXTER
[2026-03-02 12:58:39] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 12:58:39] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:58:39] [INFO]   -> Found value: FIRST
[2026-03-02 12:58:39] [INFO]   -> Set field 'streetName' = "FIRST"
[2026-03-02 12:58:39] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:58:39] [INFO]   -> Found value: AVE
[2026-03-02 12:58:39] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-02 12:58:39] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:58:39] [INFO]   -> Found value: 415 FIRST AVE N
[2026-03-02 12:58:39] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "415 FIRST AVE N"
[2026-03-02 12:58:39] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 12:58:39] [INFO] Concatenating street name and type
[2026-03-02 12:58:39] [INFO]   -> Combined street name: FIRST AVE
[2026-03-02 12:58:39] [INFO] Built locationCoordinates from lat/lng: 36.15894,-85.64935
[2026-03-02 12:58:39] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD","incidentInternalId":"2026000071","dispatchRunNumber":"2026000071","incidentTypeValue1":"ABDOMINAL PAIN","incidentLocationStreetNumber":415,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.158940000000001191438059322535991668701171875,"nERISIncidentLongitude":-85.649349999999998317434801720082759857177734375,"alarm":"2026-02-28 17:04:26","dispatched":"2026-02-28 17:05:39","enroute":"2026-02-28 17:07:26","onScene":"2026-02-28 17:10:32","cleared":"2026-02-28 17:37:40","inService":"2026-02-28 17:37:40","incidentLocationCross":"CHESTNUT ST\/CHESTNUT ST","cADVehicleID":"BEN2","timedispatch":"2026-02-28 17:05:39","timeenroutetoscene":"2026-02-28 17:07:26","timeonscene":"2026-02-28 17:10:32","timeunitclear":"2026-02-28 17:37:40","policeReportNumber":"20260022383","dispatchNotes":"[EMS] UDTS: {723} PATIENT LOADED  [02\/28\/26 17:20:26 JDICK] [EMS] CARPORT ENTRANCE--RAMP ON THE FRONT DOOR IF NEEDED  [02\/28\/26 17:06:15 KHILL] [EMS] CA PATIENT  [02\/28\/26 17:05:59 KHILL] [EMS] HAS HAD THIS ISSUE BEFORE IN THE PAST   CARDIAC HX AS OF JAN 2026  [02\/28\/26 17:05:37 KHILL] [EMS] PATIENT WANDA SALLEE  DOB 03\/14\/1949  [02\/28\/26 17:05:01 KHILL] Event spawned from ABDOMINAL PAIN.  [02\/28\/2026 17:04:26 KHILL] GALL BLADDER ISSUES IN SEVERE PAIN THROWING UP  [02\/28\/26 17:04:25 KHILL]]","cADLog":"[EMS] UDTS: {723} PATIENT LOADED  [02\/28\/26 17:20:26 JDICK] [EMS] CARPORT ENTRANCE--RAMP ON THE FRONT DOOR IF NEEDED  [02\/28\/26 17:06:15 KHILL] [EMS] CA PATIENT  [02\/28\/26 17:05:59 KHILL] [EMS] HAS HAD THIS ISSUE BEFORE IN THE PAST   CARDIAC HX AS OF JAN 2026  [02\/28\/26 17:05:37 KHILL] [EMS] PATIENT WANDA SALLEE  DOB 03\/14\/1949  [02\/28\/26 17:05:01 KHILL] Event spawned from ABDOMINAL PAIN.  [02\/28\/2026 17:04:26 KHILL] GALL BLADDER ISSUES IN SEVERE PAIN THROWING UP  [02\/28\/26 17:04:25 KHILL]]","incidentLocationCity":"BAXTER","streetName":"FIRST AVE","incidentAddressTextVersionStreet":"415 FIRST AVE N","locationCoordinates":"36.15894,-85.64935"}
[2026-03-02 12:58:39] [INFO] Number of extracted fields: 28
[2026-03-02 12:58:39] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD'
[2026-03-02 12:58:39] [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-03-02 12:58:39] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD"]
[2026-03-02 12:58:39] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:58:39] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-02 12:58:40] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-02 12:58:40] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-02 12:58:40] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-02 12:58:40] [INFO] Found existing IncidentTypeMapping with ID: 6945b247e7ea30221
[2026-03-02 12:58:40] [INFO] Found existing Dispatch with cADNumber '2026000071', ID: 69a589795b7b2e5df - will update instead of create
[2026-03-02 12:58:40] [INFO] Updated existing Dispatches record with ID: 69a589795b7b2e5df
[2026-03-02 12:58:40] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:58:40] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:58: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-03-02 12:58:44] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022383_20260302_125723_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:58:44] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:58:44] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022383_20260302_125723_2.XML
[2026-03-02 12:58:44] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022383_20260302_125723_2.XML for user: 68f1466aed072ad4a
[2026-03-02 12:58:44] [INFO] File size: 5672 bytes
[2026-03-02 12:58:44] [INFO] Created FTPFiles record with ID: 69a58984568929bc7
[2026-03-02 12:58:44] [INFO] About to extract fields from XML. File size: 5672 bytes
[2026-03-02 12:58:44] [INFO] Number of mappings: 28
[2026-03-02 12:58:44] [INFO] Starting XML parsing. Content length: 5672
[2026-03-02 12:58:44] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:58:44] [INFO] Processing 28 field mappings
[2026-03-02 12:58:44] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:58:44] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:58:44] [INFO]   -> Found value: BFD
[2026-03-02 12:58:44] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD"
[2026-03-02 12:58:44] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:58:44] [INFO]   -> Found value: 2026000071
[2026-03-02 12:58:44] [INFO]   -> Set field 'incidentInternalId' = "2026000071"
[2026-03-02 12:58:44] [INFO]   -> Set field 'dispatchRunNumber' = "2026000071"
[2026-03-02 12:58:44] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:58:44] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-02 12:58:44] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-02 12:58:44] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:58:44] [INFO]   -> Found value: 415
[2026-03-02 12:58:44] [INFO]   -> Set field 'incidentLocationStreetNumber' = 415
[2026-03-02 12:58:44] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:58:44] [INFO]   -> Found value: TN
[2026-03-02 12:58:44] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:58:44] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:58:44] [INFO]   -> Found value: 38544
[2026-03-02 12:58:44] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 12:58:44] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:58:44] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:44] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:58:44] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:44] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:58:44] [INFO]   -> Found value: 36.15894
[2026-03-02 12:58:44] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.158940000000001191438059322535991668701171875
[2026-03-02 12:58:44] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:58:44] [INFO]   -> Found value: -85.64935
[2026-03-02 12:58:44] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.649349999999998317434801720082759857177734375
[2026-03-02 12:58:44] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:58:44] [INFO]   -> Found value: 2026-02-28 17:04:26
[2026-03-02 12:58:44] [INFO]   -> Set field 'alarm' = "2026-02-28 17:04:26"
[2026-03-02 12:58:44] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:58:44] [INFO]   -> Found value: 2026-02-28 17:05:39
[2026-03-02 12:58:44] [INFO]   -> Set field 'dispatched' = "2026-02-28 17:05:39"
[2026-03-02 12:58:44] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:58:44] [INFO]   -> Found value: 2026-02-28 17:07:26
[2026-03-02 12:58:44] [INFO]   -> Set field 'enroute' = "2026-02-28 17:07:26"
[2026-03-02 12:58:44] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:58:44] [INFO]   -> Found value: 2026-02-28 17:10:32
[2026-03-02 12:58:44] [INFO]   -> Set field 'onScene' = "2026-02-28 17:10:32"
[2026-03-02 12:58:44] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:58:44] [INFO]   -> Found value: 2026-02-28 17:37:40
[2026-03-02 12:58:44] [INFO]   -> Set field 'cleared' = "2026-02-28 17:37:40"
[2026-03-02 12:58:44] [INFO]   -> Set field 'inService' = "2026-02-28 17:37:40"
[2026-03-02 12:58:44] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:58:44] [INFO]   -> Found value: CHESTNUT ST/CHESTNUT ST
[2026-03-02 12:58:44] [INFO]   -> Set field 'incidentLocationCross' = "CHESTNUT ST\/CHESTNUT ST"
[2026-03-02 12:58:44] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:58:44] [INFO]   -> Found value: BEN2
[2026-03-02 12:58:44] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-02 12:58:44] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:58:44] [INFO]   -> Found value: 2026-02-28 17:05:39
[2026-03-02 12:58:44] [INFO]   -> Set field 'timedispatch' = "2026-02-28 17:05:39"
[2026-03-02 12:58:44] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:58:44] [INFO]   -> Found value: 2026-02-28 17:07:26
[2026-03-02 12:58:44] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 17:07:26"
[2026-03-02 12:58:44] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:58:44] [INFO]   -> Found value: 2026-02-28 17:10:32
[2026-03-02 12:58:44] [INFO]   -> Set field 'timeonscene' = "2026-02-28 17:10:32"
[2026-03-02 12:58:44] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:58:44] [INFO]   -> Found value: 2026-02-28 17:37:40
[2026-03-02 12:58:44] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 17:37:40"
[2026-03-02 12:58:44] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:58:44] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:44] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:58:44] [INFO]   -> Found value: 20260022383
[2026-03-02 12:58:44] [INFO]   -> Set field 'policeReportNumber' = "20260022383"
[2026-03-02 12:58:44] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:58:44] [INFO]   -> Found value: [EMS] UDTS: {723} PATIENT LOADED  [02/28/26 17:20:26 JDICK] [EMS] CARPORT ENTRANCE--RAMP ON THE FRON...
[2026-03-02 12:58:44] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: {723} PATIENT LOADED  [02\/28\/26 17:20:26 JDICK] [EMS] CARPORT ENTRANCE--RAMP ON THE FRONT DOOR IF NEEDED  [02\/28\/26 17:06:15 KHILL] [EMS] CA PATIENT  [02\/28\/26 17:05:59 KHILL] [EMS] HAS HAD THIS ISSUE BEFORE IN THE PAST   CARDIAC HX AS OF JAN 2026  [02\/28\/26 17:05:37 KHILL] [EMS] PATIENT WANDA SALLEE  DOB 03\/14\/1949  [02\/28\/26 17:05:01 KHILL] Event spawned from ABDOMINAL PAIN.  [02\/28\/2026 17:04:26 KHILL] GALL BLADDER ISSUES IN SEVERE PAIN THROWING UP  [02\/28\/26 17:04:25 KHILL]]"
[2026-03-02 12:58:44] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: {723} PATIENT LOADED  [02\/28\/26 17:20:26 JDICK] [EMS] CARPORT ENTRANCE--RAMP ON THE FRONT DOOR IF NEEDED  [02\/28\/26 17:06:15 KHILL] [EMS] CA PATIENT  [02\/28\/26 17:05:59 KHILL] [EMS] HAS HAD THIS ISSUE BEFORE IN THE PAST   CARDIAC HX AS OF JAN 2026  [02\/28\/26 17:05:37 KHILL] [EMS] PATIENT WANDA SALLEE  DOB 03\/14\/1949  [02\/28\/26 17:05:01 KHILL] Event spawned from ABDOMINAL PAIN.  [02\/28\/2026 17:04:26 KHILL] GALL BLADDER ISSUES IN SEVERE PAIN THROWING UP  [02\/28\/26 17:04:25 KHILL]]"
[2026-03-02 12:58:44] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:58:44] [INFO]   -> Found value: BAXTER
[2026-03-02 12:58:44] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 12:58:44] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:58:44] [INFO]   -> Found value: FIRST
[2026-03-02 12:58:44] [INFO]   -> Set field 'streetName' = "FIRST"
[2026-03-02 12:58:44] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:58:44] [INFO]   -> Found value: AVE
[2026-03-02 12:58:44] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-02 12:58:44] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:58:44] [INFO]   -> Found value: 415 FIRST AVE N
[2026-03-02 12:58:44] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "415 FIRST AVE N"
[2026-03-02 12:58:44] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 12:58:44] [INFO] Concatenating street name and type
[2026-03-02 12:58:44] [INFO]   -> Combined street name: FIRST AVE
[2026-03-02 12:58:44] [INFO] Built locationCoordinates from lat/lng: 36.15894,-85.64935
[2026-03-02 12:58:44] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD","incidentInternalId":"2026000071","dispatchRunNumber":"2026000071","incidentTypeValue1":"ABDOMINAL PAIN","incidentLocationStreetNumber":415,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.158940000000001191438059322535991668701171875,"nERISIncidentLongitude":-85.649349999999998317434801720082759857177734375,"alarm":"2026-02-28 17:04:26","dispatched":"2026-02-28 17:05:39","enroute":"2026-02-28 17:07:26","onScene":"2026-02-28 17:10:32","cleared":"2026-02-28 17:37:40","inService":"2026-02-28 17:37:40","incidentLocationCross":"CHESTNUT ST\/CHESTNUT ST","cADVehicleID":"BEN2","timedispatch":"2026-02-28 17:05:39","timeenroutetoscene":"2026-02-28 17:07:26","timeonscene":"2026-02-28 17:10:32","timeunitclear":"2026-02-28 17:37:40","policeReportNumber":"20260022383","dispatchNotes":"[EMS] UDTS: {723} PATIENT LOADED  [02\/28\/26 17:20:26 JDICK] [EMS] CARPORT ENTRANCE--RAMP ON THE FRONT DOOR IF NEEDED  [02\/28\/26 17:06:15 KHILL] [EMS] CA PATIENT  [02\/28\/26 17:05:59 KHILL] [EMS] HAS HAD THIS ISSUE BEFORE IN THE PAST   CARDIAC HX AS OF JAN 2026  [02\/28\/26 17:05:37 KHILL] [EMS] PATIENT WANDA SALLEE  DOB 03\/14\/1949  [02\/28\/26 17:05:01 KHILL] Event spawned from ABDOMINAL PAIN.  [02\/28\/2026 17:04:26 KHILL] GALL BLADDER ISSUES IN SEVERE PAIN THROWING UP  [02\/28\/26 17:04:25 KHILL]]","cADLog":"[EMS] UDTS: {723} PATIENT LOADED  [02\/28\/26 17:20:26 JDICK] [EMS] CARPORT ENTRANCE--RAMP ON THE FRONT DOOR IF NEEDED  [02\/28\/26 17:06:15 KHILL] [EMS] CA PATIENT  [02\/28\/26 17:05:59 KHILL] [EMS] HAS HAD THIS ISSUE BEFORE IN THE PAST   CARDIAC HX AS OF JAN 2026  [02\/28\/26 17:05:37 KHILL] [EMS] PATIENT WANDA SALLEE  DOB 03\/14\/1949  [02\/28\/26 17:05:01 KHILL] Event spawned from ABDOMINAL PAIN.  [02\/28\/2026 17:04:26 KHILL] GALL BLADDER ISSUES IN SEVERE PAIN THROWING UP  [02\/28\/26 17:04:25 KHILL]]","incidentLocationCity":"BAXTER","streetName":"FIRST AVE","incidentAddressTextVersionStreet":"415 FIRST AVE N","locationCoordinates":"36.15894,-85.64935"}
[2026-03-02 12:58:44] [INFO] Number of extracted fields: 28
[2026-03-02 12:58:44] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD'
[2026-03-02 12:58:44] [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-03-02 12:58:44] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD"]
[2026-03-02 12:58:44] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:58:44] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-02 12:58:44] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-02 12:58:44] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-02 12:58:44] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-02 12:58:44] [INFO] Found existing IncidentTypeMapping with ID: 6945b247e7ea30221
[2026-03-02 12:58:45] [INFO] Found existing Dispatch with cADNumber '2026000071', ID: 69a589795b7b2e5df - will update instead of create
[2026-03-02 12:58:45] [INFO] Updated existing Dispatches record with ID: 69a589795b7b2e5df
[2026-03-02 12:58:45] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:58:45] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:58: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-03-02 12:58:48] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260022383_20260302_125723_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:58:48] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:58:48] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260022484_20260302_125726.XML
[2026-03-02 12:58:48] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260022484_20260302_125726.XML for user: 68f1466aed072ad4a
[2026-03-02 12:58:48] [INFO] File size: 8941 bytes
[2026-03-02 12:58:49] [INFO] Created FTPFiles record with ID: 69a58988f18cdc96c
[2026-03-02 12:58:49] [INFO] About to extract fields from XML. File size: 8941 bytes
[2026-03-02 12:58:49] [INFO] Number of mappings: 28
[2026-03-02 12:58:49] [INFO] Starting XML parsing. Content length: 8941
[2026-03-02 12:58:49] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:58:49] [INFO] Processing 28 field mappings
[2026-03-02 12:58:49] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:58:49] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:58:49] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 12:58:49] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-02 12:58:49] [INFO]   -> Found value: MFD
PCSO
MPD
[2026-03-02 12:58:49] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nPCSO\nMPD"
[2026-03-02 12:58:49] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:58:49] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-02 12:58:49] [INFO]   -> Found value: 2026000079
[2026-03-02 12:58:49] [INFO]   -> Set field 'incidentInternalId' = "2026000079"
[2026-03-02 12:58:49] [INFO]   -> Set field 'dispatchRunNumber' = "2026000079"
[2026-03-02 12:58:49] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:58:49] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-02 12:58:49] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-02 12:58:49] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:58:49] [INFO]   -> Found value: 314
[2026-03-02 12:58:49] [INFO]   -> Set field 'incidentLocationStreetNumber' = 314
[2026-03-02 12:58:49] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:58:49] [INFO]   -> Found value: TN
[2026-03-02 12:58:49] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:58:49] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:58:49] [INFO]   -> Found value: 38574
[2026-03-02 12:58:49] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-02 12:58:49] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:58:49] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:49] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:58:49] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:49] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:58:49] [INFO]   -> Found value: 36.14702
[2026-03-02 12:58:49] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1470199999999977080733515322208404541015625
[2026-03-02 12:58:49] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:58:49] [INFO]   -> Found value: -85.26318
[2026-03-02 12:58:49] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.263180000000005520632839761674404144287109375
[2026-03-02 12:58:49] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:58:49] [INFO]   -> Found value: 2026-02-28 22:49:05
[2026-03-02 12:58:49] [INFO]   -> Set field 'alarm' = "2026-02-28 22:49:05"
[2026-03-02 12:58:49] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:58:49] [INFO]   -> Found value: 2026-02-28 22:53:28
[2026-03-02 12:58:49] [INFO]   -> Set field 'dispatched' = "2026-02-28 22:53:28"
[2026-03-02 12:58:49] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:58:49] [INFO]   -> Found value: 2026-02-28 22:54:32
[2026-03-02 12:58:49] [INFO]   -> Set field 'enroute' = "2026-02-28 22:54:32"
[2026-03-02 12:58:49] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:58:49] [INFO]   -> Found value: 2026-02-28 23:02:06
[2026-03-02 12:58:49] [INFO]   -> Set field 'onScene' = "2026-02-28 23:02:06"
[2026-03-02 12:58:49] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:58:49] [INFO]   -> Found value: 2026-02-28 23:17:34
[2026-03-02 12:58:49] [INFO]   -> Set field 'cleared' = "2026-02-28 23:17:34"
[2026-03-02 12:58:49] [INFO]   -> Set field 'inService' = "2026-02-28 23:17:34"
[2026-03-02 12:58:49] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:58:49] [INFO]   -> Found value: N ELM ST
[2026-03-02 12:58:49] [INFO]   -> Set field 'incidentLocationCross' = "N ELM ST"
[2026-03-02 12:58:49] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:58:49] [INFO]   -> Found value: MF110
[2026-03-02 12:58:49] [INFO]   -> Set field 'cADVehicleID' = "MF110"
[2026-03-02 12:58:49] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:58:49] [INFO]   -> Found value: 2026-02-28 22:53:28
[2026-03-02 12:58:49] [INFO]   -> Set field 'timedispatch' = "2026-02-28 22:53:28"
[2026-03-02 12:58:49] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:58:49] [INFO]   -> Found value: 2026-02-28 23:02:06
[2026-03-02 12:58:49] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 23:02:06"
[2026-03-02 12:58:49] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:58:49] [INFO]   -> Found value: 2026-02-28 23:02:06
[2026-03-02 12:58:49] [INFO]   -> Set field 'timeonscene' = "2026-02-28 23:02:06"
[2026-03-02 12:58:49] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:58:49] [INFO]   -> Found value: 2026-02-28 23:01:18
[2026-03-02 12:58:49] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 23:01:18"
[2026-03-02 12:58:49] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:58:49] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:49] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:58:49] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 12:58:49] [INFO]   -> Found value: 20260022484
[2026-03-02 12:58:49] [INFO]   -> Set field 'policeReportNumber' = "20260022484"
[2026-03-02 12:58:49] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:58:49] [INFO]   -> Found value: This is a reopened incident.  [02/28/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02/28/26 23:01...
[2026-03-02 12:58:49] [INFO]   -> Set field 'dispatchNotes' = "This is a reopened incident.  [02\/28\/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02\/28\/26 23:01:26 DKITCHENS] [LAW] {M103} CANCEL FIRE \/\/ PAINT CAN EXPLODED IN BARRELL  [02\/28\/26 23:00:42 DKITCHENS] UDTS: CARD SEEN BY 911  [02\/28\/26 22:59:05 DSWINK] [LAW] {M104} SMALL FIRE IS GOING TO BE CONTAINED IN STEEL BARRELL  [02\/28\/26 22:58:58 DKITCHENS] POSSIBLY BEHIND APTS AT 302 E CLEVELAND  [02\/28\/26 22:54:16 DSWINK] [LAW] mpd enrt to area  [02\/28\/26 22:53:26 RMAYNARD] STATES HE CAN SEE A SMALL FIRE POSS CLOSE TO THE APARTMENT BUILDING CALLER IS AT 319 N ELM ST STATES NO ONE IS OUT WITH THE FIRE  [02\/28\/26 22:50:44 EALMENDAREZ]"
[2026-03-02 12:58:49] [INFO]   -> Set field 'cADLog' = "This is a reopened incident.  [02\/28\/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02\/28\/26 23:01:26 DKITCHENS] [LAW] {M103} CANCEL FIRE \/\/ PAINT CAN EXPLODED IN BARRELL  [02\/28\/26 23:00:42 DKITCHENS] UDTS: CARD SEEN BY 911  [02\/28\/26 22:59:05 DSWINK] [LAW] {M104} SMALL FIRE IS GOING TO BE CONTAINED IN STEEL BARRELL  [02\/28\/26 22:58:58 DKITCHENS] POSSIBLY BEHIND APTS AT 302 E CLEVELAND  [02\/28\/26 22:54:16 DSWINK] [LAW] mpd enrt to area  [02\/28\/26 22:53:26 RMAYNARD] STATES HE CAN SEE A SMALL FIRE POSS CLOSE TO THE APARTMENT BUILDING CALLER IS AT 319 N ELM ST STATES NO ONE IS OUT WITH THE FIRE  [02\/28\/26 22:50:44 EALMENDAREZ]"
[2026-03-02 12:58:49] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:58:49] [INFO]   -> Found value: MONTEREY
[2026-03-02 12:58:49] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-02 12:58:49] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:58:49] [INFO]   -> Found value: CLEVELAND
[2026-03-02 12:58:49] [INFO]   -> Set field 'streetName' = "CLEVELAND"
[2026-03-02 12:58:49] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:58:49] [INFO]   -> Found value: AVE
[2026-03-02 12:58:49] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-02 12:58:49] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:58:49] [INFO]   -> Found value: 314 E CLEVELAND AVE
[2026-03-02 12:58:49] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "314 E CLEVELAND AVE"
[2026-03-02 12:58:49] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 12:58:49] [INFO] Concatenating street name and type
[2026-03-02 12:58:49] [INFO]   -> Combined street name: CLEVELAND AVE
[2026-03-02 12:58:49] [INFO] Built locationCoordinates from lat/lng: 36.14702,-85.26318
[2026-03-02 12:58:49] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nPCSO\nMPD","incidentInternalId":"2026000079","dispatchRunNumber":"2026000079","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":314,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1470199999999977080733515322208404541015625,"nERISIncidentLongitude":-85.263180000000005520632839761674404144287109375,"alarm":"2026-02-28 22:49:05","dispatched":"2026-02-28 22:53:28","enroute":"2026-02-28 22:54:32","onScene":"2026-02-28 23:02:06","cleared":"2026-02-28 23:17:34","inService":"2026-02-28 23:17:34","incidentLocationCross":"N ELM ST","cADVehicleID":"MF110","timedispatch":"2026-02-28 22:53:28","timeenroutetoscene":"2026-02-28 23:02:06","timeonscene":"2026-02-28 23:02:06","timeunitclear":"2026-02-28 23:01:18","policeReportNumber":"20260022484","dispatchNotes":"This is a reopened incident.  [02\/28\/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02\/28\/26 23:01:26 DKITCHENS] [LAW] {M103} CANCEL FIRE \/\/ PAINT CAN EXPLODED IN BARRELL  [02\/28\/26 23:00:42 DKITCHENS] UDTS: CARD SEEN BY 911  [02\/28\/26 22:59:05 DSWINK] [LAW] {M104} SMALL FIRE IS GOING TO BE CONTAINED IN STEEL BARRELL  [02\/28\/26 22:58:58 DKITCHENS] POSSIBLY BEHIND APTS AT 302 E CLEVELAND  [02\/28\/26 22:54:16 DSWINK] [LAW] mpd enrt to area  [02\/28\/26 22:53:26 RMAYNARD] STATES HE CAN SEE A SMALL FIRE POSS CLOSE TO THE APARTMENT BUILDING CALLER IS AT 319 N ELM ST STATES NO ONE IS OUT WITH THE FIRE  [02\/28\/26 22:50:44 EALMENDAREZ]","cADLog":"This is a reopened incident.  [02\/28\/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02\/28\/26 23:01:26 DKITCHENS] [LAW] {M103} CANCEL FIRE \/\/ PAINT CAN EXPLODED IN BARRELL  [02\/28\/26 23:00:42 DKITCHENS] UDTS: CARD SEEN BY 911  [02\/28\/26 22:59:05 DSWINK] [LAW] {M104} SMALL FIRE IS GOING TO BE CONTAINED IN STEEL BARRELL  [02\/28\/26 22:58:58 DKITCHENS] POSSIBLY BEHIND APTS AT 302 E CLEVELAND  [02\/28\/26 22:54:16 DSWINK] [LAW] mpd enrt to area  [02\/28\/26 22:53:26 RMAYNARD] STATES HE CAN SEE A SMALL FIRE POSS CLOSE TO THE APARTMENT BUILDING CALLER IS AT 319 N ELM ST STATES NO ONE IS OUT WITH THE FIRE  [02\/28\/26 22:50:44 EALMENDAREZ]","incidentLocationCity":"MONTEREY","streetName":"CLEVELAND AVE","incidentAddressTextVersionStreet":"314 E CLEVELAND AVE","locationCoordinates":"36.14702,-85.26318"}
[2026-03-02 12:58:49] [INFO] Number of extracted fields: 28
[2026-03-02 12:58:49] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
PCSO
MPD'
[2026-03-02 12:58:49] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
PCSO
MPD', Parsed IDs = ["MFD","PCSO","MPD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-02 12:58:49] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","PCSO","MPD"]
[2026-03-02 12:58:49] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:58:49] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-02 12:58:49] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","MPD"]
[2026-03-02 12:58:49] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-02 12:58:49] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-02 12:58:49] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-02 12:58:49] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-02 12:58:49] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-02 12:58:49] [INFO] Found existing IncidentTypeMapping with ID: 6986d42a0517d990b
[2026-03-02 12:58:51] [INFO] Created new Dispatches record with ID: 69a58989d9be0cc8c
[2026-03-02 12:58:51] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:58:51] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:58: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-03-02 12:58:55] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260022484_20260302_125726.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:58:55] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:58:55] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260022484_20260302_125726_1.XML
[2026-03-02 12:58:55] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260022484_20260302_125726_1.XML for user: 68f1466aed072ad4a
[2026-03-02 12:58:55] [INFO] File size: 8941 bytes
[2026-03-02 12:58:55] [INFO] Created FTPFiles record with ID: 69a5898f6872b8dbb
[2026-03-02 12:58:55] [INFO] About to extract fields from XML. File size: 8941 bytes
[2026-03-02 12:58:55] [INFO] Number of mappings: 28
[2026-03-02 12:58:55] [INFO] Starting XML parsing. Content length: 8941
[2026-03-02 12:58:55] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:58:55] [INFO] Processing 28 field mappings
[2026-03-02 12:58:55] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:58:55] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:58:55] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 12:58:55] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-02 12:58:55] [INFO]   -> Found value: MFD
PCSO
MPD
[2026-03-02 12:58:55] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nPCSO\nMPD"
[2026-03-02 12:58:55] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:58:55] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-02 12:58:55] [INFO]   -> Found value: 2026000079
[2026-03-02 12:58:55] [INFO]   -> Set field 'incidentInternalId' = "2026000079"
[2026-03-02 12:58:55] [INFO]   -> Set field 'dispatchRunNumber' = "2026000079"
[2026-03-02 12:58:55] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:58:55] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-02 12:58:55] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-02 12:58:55] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:58:55] [INFO]   -> Found value: 314
[2026-03-02 12:58:55] [INFO]   -> Set field 'incidentLocationStreetNumber' = 314
[2026-03-02 12:58:55] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:58:55] [INFO]   -> Found value: TN
[2026-03-02 12:58:55] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:58:55] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:58:55] [INFO]   -> Found value: 38574
[2026-03-02 12:58:55] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-02 12:58:55] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:58:55] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:55] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:58:55] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:55] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:58:55] [INFO]   -> Found value: 36.14702
[2026-03-02 12:58:55] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1470199999999977080733515322208404541015625
[2026-03-02 12:58:55] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:58:55] [INFO]   -> Found value: -85.26318
[2026-03-02 12:58:55] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.263180000000005520632839761674404144287109375
[2026-03-02 12:58:55] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:58:55] [INFO]   -> Found value: 2026-02-28 22:49:05
[2026-03-02 12:58:55] [INFO]   -> Set field 'alarm' = "2026-02-28 22:49:05"
[2026-03-02 12:58:55] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:58:55] [INFO]   -> Found value: 2026-02-28 22:53:28
[2026-03-02 12:58:55] [INFO]   -> Set field 'dispatched' = "2026-02-28 22:53:28"
[2026-03-02 12:58:55] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:58:55] [INFO]   -> Found value: 2026-02-28 22:54:32
[2026-03-02 12:58:55] [INFO]   -> Set field 'enroute' = "2026-02-28 22:54:32"
[2026-03-02 12:58:55] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:58:55] [INFO]   -> Found value: 2026-02-28 23:02:06
[2026-03-02 12:58:55] [INFO]   -> Set field 'onScene' = "2026-02-28 23:02:06"
[2026-03-02 12:58:55] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:58:55] [INFO]   -> Found value: 2026-02-28 23:17:34
[2026-03-02 12:58:55] [INFO]   -> Set field 'cleared' = "2026-02-28 23:17:34"
[2026-03-02 12:58:55] [INFO]   -> Set field 'inService' = "2026-02-28 23:17:34"
[2026-03-02 12:58:55] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:58:55] [INFO]   -> Found value: N ELM ST
[2026-03-02 12:58:55] [INFO]   -> Set field 'incidentLocationCross' = "N ELM ST"
[2026-03-02 12:58:55] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:58:55] [INFO]   -> Found value: MF110
[2026-03-02 12:58:55] [INFO]   -> Set field 'cADVehicleID' = "MF110"
[2026-03-02 12:58:55] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:58:55] [INFO]   -> Found value: 2026-02-28 22:53:28
[2026-03-02 12:58:55] [INFO]   -> Set field 'timedispatch' = "2026-02-28 22:53:28"
[2026-03-02 12:58:55] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:58:55] [INFO]   -> Found value: 2026-02-28 23:02:06
[2026-03-02 12:58:55] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 23:02:06"
[2026-03-02 12:58:55] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:58:55] [INFO]   -> Found value: 2026-02-28 23:02:06
[2026-03-02 12:58:55] [INFO]   -> Set field 'timeonscene' = "2026-02-28 23:02:06"
[2026-03-02 12:58:55] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:58:55] [INFO]   -> Found value: 2026-02-28 23:01:18
[2026-03-02 12:58:55] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 23:01:18"
[2026-03-02 12:58:55] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:58:55] [INFO]   -> No value found (null or empty)
[2026-03-02 12:58:55] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:58:55] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 12:58:55] [INFO]   -> Found value: 20260022484
[2026-03-02 12:58:55] [INFO]   -> Set field 'policeReportNumber' = "20260022484"
[2026-03-02 12:58:55] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:58:55] [INFO]   -> Found value: This is a reopened incident.  [02/28/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02/28/26 23:01...
[2026-03-02 12:58:55] [INFO]   -> Set field 'dispatchNotes' = "This is a reopened incident.  [02\/28\/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02\/28\/26 23:01:26 DKITCHENS] [LAW] {M103} CANCEL FIRE \/\/ PAINT CAN EXPLODED IN BARRELL  [02\/28\/26 23:00:42 DKITCHENS] UDTS: CARD SEEN BY 911  [02\/28\/26 22:59:05 DSWINK] [LAW] {M104} SMALL FIRE IS GOING TO BE CONTAINED IN STEEL BARRELL  [02\/28\/26 22:58:58 DKITCHENS] POSSIBLY BEHIND APTS AT 302 E CLEVELAND  [02\/28\/26 22:54:16 DSWINK] [LAW] mpd enrt to area  [02\/28\/26 22:53:26 RMAYNARD] STATES HE CAN SEE A SMALL FIRE POSS CLOSE TO THE APARTMENT BUILDING CALLER IS AT 319 N ELM ST STATES NO ONE IS OUT WITH THE FIRE  [02\/28\/26 22:50:44 EALMENDAREZ]"
[2026-03-02 12:58:55] [INFO]   -> Set field 'cADLog' = "This is a reopened incident.  [02\/28\/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02\/28\/26 23:01:26 DKITCHENS] [LAW] {M103} CANCEL FIRE \/\/ PAINT CAN EXPLODED IN BARRELL  [02\/28\/26 23:00:42 DKITCHENS] UDTS: CARD SEEN BY 911  [02\/28\/26 22:59:05 DSWINK] [LAW] {M104} SMALL FIRE IS GOING TO BE CONTAINED IN STEEL BARRELL  [02\/28\/26 22:58:58 DKITCHENS] POSSIBLY BEHIND APTS AT 302 E CLEVELAND  [02\/28\/26 22:54:16 DSWINK] [LAW] mpd enrt to area  [02\/28\/26 22:53:26 RMAYNARD] STATES HE CAN SEE A SMALL FIRE POSS CLOSE TO THE APARTMENT BUILDING CALLER IS AT 319 N ELM ST STATES NO ONE IS OUT WITH THE FIRE  [02\/28\/26 22:50:44 EALMENDAREZ]"
[2026-03-02 12:58:55] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:58:55] [INFO]   -> Found value: MONTEREY
[2026-03-02 12:58:55] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-02 12:58:55] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:58:55] [INFO]   -> Found value: CLEVELAND
[2026-03-02 12:58:55] [INFO]   -> Set field 'streetName' = "CLEVELAND"
[2026-03-02 12:58:55] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:58:55] [INFO]   -> Found value: AVE
[2026-03-02 12:58:55] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-02 12:58:55] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:58:55] [INFO]   -> Found value: 314 E CLEVELAND AVE
[2026-03-02 12:58:55] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "314 E CLEVELAND AVE"
[2026-03-02 12:58:55] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 12:58:55] [INFO] Concatenating street name and type
[2026-03-02 12:58:55] [INFO]   -> Combined street name: CLEVELAND AVE
[2026-03-02 12:58:55] [INFO] Built locationCoordinates from lat/lng: 36.14702,-85.26318
[2026-03-02 12:58:55] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nPCSO\nMPD","incidentInternalId":"2026000079","dispatchRunNumber":"2026000079","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":314,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1470199999999977080733515322208404541015625,"nERISIncidentLongitude":-85.263180000000005520632839761674404144287109375,"alarm":"2026-02-28 22:49:05","dispatched":"2026-02-28 22:53:28","enroute":"2026-02-28 22:54:32","onScene":"2026-02-28 23:02:06","cleared":"2026-02-28 23:17:34","inService":"2026-02-28 23:17:34","incidentLocationCross":"N ELM ST","cADVehicleID":"MF110","timedispatch":"2026-02-28 22:53:28","timeenroutetoscene":"2026-02-28 23:02:06","timeonscene":"2026-02-28 23:02:06","timeunitclear":"2026-02-28 23:01:18","policeReportNumber":"20260022484","dispatchNotes":"This is a reopened incident.  [02\/28\/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02\/28\/26 23:01:26 DKITCHENS] [LAW] {M103} CANCEL FIRE \/\/ PAINT CAN EXPLODED IN BARRELL  [02\/28\/26 23:00:42 DKITCHENS] UDTS: CARD SEEN BY 911  [02\/28\/26 22:59:05 DSWINK] [LAW] {M104} SMALL FIRE IS GOING TO BE CONTAINED IN STEEL BARRELL  [02\/28\/26 22:58:58 DKITCHENS] POSSIBLY BEHIND APTS AT 302 E CLEVELAND  [02\/28\/26 22:54:16 DSWINK] [LAW] mpd enrt to area  [02\/28\/26 22:53:26 RMAYNARD] STATES HE CAN SEE A SMALL FIRE POSS CLOSE TO THE APARTMENT BUILDING CALLER IS AT 319 N ELM ST STATES NO ONE IS OUT WITH THE FIRE  [02\/28\/26 22:50:44 EALMENDAREZ]","cADLog":"This is a reopened incident.  [02\/28\/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02\/28\/26 23:01:26 DKITCHENS] [LAW] {M103} CANCEL FIRE \/\/ PAINT CAN EXPLODED IN BARRELL  [02\/28\/26 23:00:42 DKITCHENS] UDTS: CARD SEEN BY 911  [02\/28\/26 22:59:05 DSWINK] [LAW] {M104} SMALL FIRE IS GOING TO BE CONTAINED IN STEEL BARRELL  [02\/28\/26 22:58:58 DKITCHENS] POSSIBLY BEHIND APTS AT 302 E CLEVELAND  [02\/28\/26 22:54:16 DSWINK] [LAW] mpd enrt to area  [02\/28\/26 22:53:26 RMAYNARD] STATES HE CAN SEE A SMALL FIRE POSS CLOSE TO THE APARTMENT BUILDING CALLER IS AT 319 N ELM ST STATES NO ONE IS OUT WITH THE FIRE  [02\/28\/26 22:50:44 EALMENDAREZ]","incidentLocationCity":"MONTEREY","streetName":"CLEVELAND AVE","incidentAddressTextVersionStreet":"314 E CLEVELAND AVE","locationCoordinates":"36.14702,-85.26318"}
[2026-03-02 12:58:55] [INFO] Number of extracted fields: 28
[2026-03-02 12:58:55] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
PCSO
MPD'
[2026-03-02 12:58:55] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
PCSO
MPD', Parsed IDs = ["MFD","PCSO","MPD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-02 12:58:55] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","PCSO","MPD"]
[2026-03-02 12:58:55] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:58:55] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-02 12:58:55] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","MPD"]
[2026-03-02 12:58:55] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-02 12:58:55] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-02 12:58:55] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-02 12:58:55] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-02 12:58:55] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-02 12:58:56] [INFO] Found existing IncidentTypeMapping with ID: 6986d42a0517d990b
[2026-03-02 12:58:56] [INFO] Found existing Dispatch with cADNumber '2026000079', ID: 69a58989d9be0cc8c - will update instead of create
[2026-03-02 12:58:56] [INFO] Updated existing Dispatches record with ID: 69a58989d9be0cc8c
[2026-03-02 12:58:56] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:58:56] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:58:59] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:58:59] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260022484_20260302_125726_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:58:59] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:58:59] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260022484_20260302_125726.XML
[2026-03-02 12:58:59] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260022484_20260302_125726.XML for user: 68f1466aed072ad4a
[2026-03-02 12:58:59] [INFO] File size: 8941 bytes
[2026-03-02 12:59:00] [INFO] Created FTPFiles record with ID: 69a589941502d2137
[2026-03-02 12:59:00] [INFO] About to extract fields from XML. File size: 8941 bytes
[2026-03-02 12:59:00] [INFO] Number of mappings: 28
[2026-03-02 12:59:00] [INFO] Starting XML parsing. Content length: 8941
[2026-03-02 12:59:00] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:59:00] [INFO] Processing 28 field mappings
[2026-03-02 12:59:00] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:59:00] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:59:00] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 12:59:00] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-02 12:59:00] [INFO]   -> Found value: MFD
PCSO
MPD
[2026-03-02 12:59:00] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nPCSO\nMPD"
[2026-03-02 12:59:00] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:59:00] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-02 12:59:00] [INFO]   -> Found value: 2026000079
[2026-03-02 12:59:00] [INFO]   -> Set field 'incidentInternalId' = "2026000079"
[2026-03-02 12:59:00] [INFO]   -> Set field 'dispatchRunNumber' = "2026000079"
[2026-03-02 12:59:00] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:59:00] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-02 12:59:00] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-02 12:59:00] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:59:00] [INFO]   -> Found value: 314
[2026-03-02 12:59:00] [INFO]   -> Set field 'incidentLocationStreetNumber' = 314
[2026-03-02 12:59:00] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:59:00] [INFO]   -> Found value: TN
[2026-03-02 12:59:00] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:59:00] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:59:00] [INFO]   -> Found value: 38574
[2026-03-02 12:59:00] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-02 12:59:00] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:59:00] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:00] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:59:00] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:00] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:59:00] [INFO]   -> Found value: 36.14702
[2026-03-02 12:59:00] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1470199999999977080733515322208404541015625
[2026-03-02 12:59:00] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:59:00] [INFO]   -> Found value: -85.26318
[2026-03-02 12:59:00] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.263180000000005520632839761674404144287109375
[2026-03-02 12:59:00] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:59:00] [INFO]   -> Found value: 2026-02-28 22:49:05
[2026-03-02 12:59:00] [INFO]   -> Set field 'alarm' = "2026-02-28 22:49:05"
[2026-03-02 12:59:00] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:59:00] [INFO]   -> Found value: 2026-02-28 22:53:28
[2026-03-02 12:59:00] [INFO]   -> Set field 'dispatched' = "2026-02-28 22:53:28"
[2026-03-02 12:59:00] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:59:00] [INFO]   -> Found value: 2026-02-28 22:54:32
[2026-03-02 12:59:00] [INFO]   -> Set field 'enroute' = "2026-02-28 22:54:32"
[2026-03-02 12:59:00] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:59:00] [INFO]   -> Found value: 2026-02-28 23:02:06
[2026-03-02 12:59:00] [INFO]   -> Set field 'onScene' = "2026-02-28 23:02:06"
[2026-03-02 12:59:00] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:59:00] [INFO]   -> Found value: 2026-02-28 23:17:34
[2026-03-02 12:59:00] [INFO]   -> Set field 'cleared' = "2026-02-28 23:17:34"
[2026-03-02 12:59:00] [INFO]   -> Set field 'inService' = "2026-02-28 23:17:34"
[2026-03-02 12:59:00] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:59:00] [INFO]   -> Found value: N ELM ST
[2026-03-02 12:59:00] [INFO]   -> Set field 'incidentLocationCross' = "N ELM ST"
[2026-03-02 12:59:00] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:59:00] [INFO]   -> Found value: MF110
[2026-03-02 12:59:00] [INFO]   -> Set field 'cADVehicleID' = "MF110"
[2026-03-02 12:59:00] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:59:00] [INFO]   -> Found value: 2026-02-28 22:53:28
[2026-03-02 12:59:00] [INFO]   -> Set field 'timedispatch' = "2026-02-28 22:53:28"
[2026-03-02 12:59:00] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:59:00] [INFO]   -> Found value: 2026-02-28 23:02:06
[2026-03-02 12:59:00] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 23:02:06"
[2026-03-02 12:59:00] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:59:00] [INFO]   -> Found value: 2026-02-28 23:02:06
[2026-03-02 12:59:00] [INFO]   -> Set field 'timeonscene' = "2026-02-28 23:02:06"
[2026-03-02 12:59:00] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:59:00] [INFO]   -> Found value: 2026-02-28 23:01:18
[2026-03-02 12:59:00] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 23:01:18"
[2026-03-02 12:59:00] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:59:00] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:00] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:59:00] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 12:59:00] [INFO]   -> Found value: 20260022484
[2026-03-02 12:59:00] [INFO]   -> Set field 'policeReportNumber' = "20260022484"
[2026-03-02 12:59:00] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:59:00] [INFO]   -> Found value: This is a reopened incident.  [02/28/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02/28/26 23:01...
[2026-03-02 12:59:00] [INFO]   -> Set field 'dispatchNotes' = "This is a reopened incident.  [02\/28\/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02\/28\/26 23:01:26 DKITCHENS] [LAW] {M103} CANCEL FIRE \/\/ PAINT CAN EXPLODED IN BARRELL  [02\/28\/26 23:00:42 DKITCHENS] UDTS: CARD SEEN BY 911  [02\/28\/26 22:59:05 DSWINK] [LAW] {M104} SMALL FIRE IS GOING TO BE CONTAINED IN STEEL BARRELL  [02\/28\/26 22:58:58 DKITCHENS] POSSIBLY BEHIND APTS AT 302 E CLEVELAND  [02\/28\/26 22:54:16 DSWINK] [LAW] mpd enrt to area  [02\/28\/26 22:53:26 RMAYNARD] STATES HE CAN SEE A SMALL FIRE POSS CLOSE TO THE APARTMENT BUILDING CALLER IS AT 319 N ELM ST STATES NO ONE IS OUT WITH THE FIRE  [02\/28\/26 22:50:44 EALMENDAREZ]"
[2026-03-02 12:59:00] [INFO]   -> Set field 'cADLog' = "This is a reopened incident.  [02\/28\/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02\/28\/26 23:01:26 DKITCHENS] [LAW] {M103} CANCEL FIRE \/\/ PAINT CAN EXPLODED IN BARRELL  [02\/28\/26 23:00:42 DKITCHENS] UDTS: CARD SEEN BY 911  [02\/28\/26 22:59:05 DSWINK] [LAW] {M104} SMALL FIRE IS GOING TO BE CONTAINED IN STEEL BARRELL  [02\/28\/26 22:58:58 DKITCHENS] POSSIBLY BEHIND APTS AT 302 E CLEVELAND  [02\/28\/26 22:54:16 DSWINK] [LAW] mpd enrt to area  [02\/28\/26 22:53:26 RMAYNARD] STATES HE CAN SEE A SMALL FIRE POSS CLOSE TO THE APARTMENT BUILDING CALLER IS AT 319 N ELM ST STATES NO ONE IS OUT WITH THE FIRE  [02\/28\/26 22:50:44 EALMENDAREZ]"
[2026-03-02 12:59:00] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:59:00] [INFO]   -> Found value: MONTEREY
[2026-03-02 12:59:00] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-02 12:59:00] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:59:00] [INFO]   -> Found value: CLEVELAND
[2026-03-02 12:59:00] [INFO]   -> Set field 'streetName' = "CLEVELAND"
[2026-03-02 12:59:00] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:59:00] [INFO]   -> Found value: AVE
[2026-03-02 12:59:00] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-02 12:59:00] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:59:00] [INFO]   -> Found value: 314 E CLEVELAND AVE
[2026-03-02 12:59:00] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "314 E CLEVELAND AVE"
[2026-03-02 12:59:00] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 12:59:00] [INFO] Concatenating street name and type
[2026-03-02 12:59:00] [INFO]   -> Combined street name: CLEVELAND AVE
[2026-03-02 12:59:00] [INFO] Built locationCoordinates from lat/lng: 36.14702,-85.26318
[2026-03-02 12:59:00] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nPCSO\nMPD","incidentInternalId":"2026000079","dispatchRunNumber":"2026000079","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":314,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1470199999999977080733515322208404541015625,"nERISIncidentLongitude":-85.263180000000005520632839761674404144287109375,"alarm":"2026-02-28 22:49:05","dispatched":"2026-02-28 22:53:28","enroute":"2026-02-28 22:54:32","onScene":"2026-02-28 23:02:06","cleared":"2026-02-28 23:17:34","inService":"2026-02-28 23:17:34","incidentLocationCross":"N ELM ST","cADVehicleID":"MF110","timedispatch":"2026-02-28 22:53:28","timeenroutetoscene":"2026-02-28 23:02:06","timeonscene":"2026-02-28 23:02:06","timeunitclear":"2026-02-28 23:01:18","policeReportNumber":"20260022484","dispatchNotes":"This is a reopened incident.  [02\/28\/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02\/28\/26 23:01:26 DKITCHENS] [LAW] {M103} CANCEL FIRE \/\/ PAINT CAN EXPLODED IN BARRELL  [02\/28\/26 23:00:42 DKITCHENS] UDTS: CARD SEEN BY 911  [02\/28\/26 22:59:05 DSWINK] [LAW] {M104} SMALL FIRE IS GOING TO BE CONTAINED IN STEEL BARRELL  [02\/28\/26 22:58:58 DKITCHENS] POSSIBLY BEHIND APTS AT 302 E CLEVELAND  [02\/28\/26 22:54:16 DSWINK] [LAW] mpd enrt to area  [02\/28\/26 22:53:26 RMAYNARD] STATES HE CAN SEE A SMALL FIRE POSS CLOSE TO THE APARTMENT BUILDING CALLER IS AT 319 N ELM ST STATES NO ONE IS OUT WITH THE FIRE  [02\/28\/26 22:50:44 EALMENDAREZ]","cADLog":"This is a reopened incident.  [02\/28\/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02\/28\/26 23:01:26 DKITCHENS] [LAW] {M103} CANCEL FIRE \/\/ PAINT CAN EXPLODED IN BARRELL  [02\/28\/26 23:00:42 DKITCHENS] UDTS: CARD SEEN BY 911  [02\/28\/26 22:59:05 DSWINK] [LAW] {M104} SMALL FIRE IS GOING TO BE CONTAINED IN STEEL BARRELL  [02\/28\/26 22:58:58 DKITCHENS] POSSIBLY BEHIND APTS AT 302 E CLEVELAND  [02\/28\/26 22:54:16 DSWINK] [LAW] mpd enrt to area  [02\/28\/26 22:53:26 RMAYNARD] STATES HE CAN SEE A SMALL FIRE POSS CLOSE TO THE APARTMENT BUILDING CALLER IS AT 319 N ELM ST STATES NO ONE IS OUT WITH THE FIRE  [02\/28\/26 22:50:44 EALMENDAREZ]","incidentLocationCity":"MONTEREY","streetName":"CLEVELAND AVE","incidentAddressTextVersionStreet":"314 E CLEVELAND AVE","locationCoordinates":"36.14702,-85.26318"}
[2026-03-02 12:59:00] [INFO] Number of extracted fields: 28
[2026-03-02 12:59:00] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
PCSO
MPD'
[2026-03-02 12:59:00] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
PCSO
MPD', Parsed IDs = ["MFD","PCSO","MPD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-02 12:59:00] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","PCSO","MPD"]
[2026-03-02 12:59:00] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:59:00] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-02 12:59:00] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","MPD"]
[2026-03-02 12:59:00] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-02 12:59:00] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-02 12:59:00] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-02 12:59:00] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-02 12:59:00] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-02 12:59:00] [INFO] Found existing IncidentTypeMapping with ID: 6986d42a0517d990b
[2026-03-02 12:59:00] [INFO] Found existing Dispatch with cADNumber '2026000079', ID: 69a58989d9be0cc8c - will update instead of create
[2026-03-02 12:59:01] [INFO] Updated existing Dispatches record with ID: 69a58989d9be0cc8c
[2026-03-02 12:59:01] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:59:01] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:59:04] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:59:04] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260022484_20260302_125726.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:59:04] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:59:04] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260022484_20260302_125726_2.XML
[2026-03-02 12:59:04] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260022484_20260302_125726_2.XML for user: 68f1466aed072ad4a
[2026-03-02 12:59:04] [INFO] File size: 8941 bytes
[2026-03-02 12:59:04] [INFO] Created FTPFiles record with ID: 69a5899898952a64d
[2026-03-02 12:59:04] [INFO] About to extract fields from XML. File size: 8941 bytes
[2026-03-02 12:59:04] [INFO] Number of mappings: 28
[2026-03-02 12:59:04] [INFO] Starting XML parsing. Content length: 8941
[2026-03-02 12:59:04] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:59:04] [INFO] Processing 28 field mappings
[2026-03-02 12:59:04] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:59:04] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:59:04] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 12:59:04] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-02 12:59:04] [INFO]   -> Found value: MFD
PCSO
MPD
[2026-03-02 12:59:04] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nPCSO\nMPD"
[2026-03-02 12:59:04] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:59:04] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-02 12:59:04] [INFO]   -> Found value: 2026000079
[2026-03-02 12:59:04] [INFO]   -> Set field 'incidentInternalId' = "2026000079"
[2026-03-02 12:59:04] [INFO]   -> Set field 'dispatchRunNumber' = "2026000079"
[2026-03-02 12:59:04] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:59:04] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-02 12:59:04] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-02 12:59:04] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:59:04] [INFO]   -> Found value: 314
[2026-03-02 12:59:04] [INFO]   -> Set field 'incidentLocationStreetNumber' = 314
[2026-03-02 12:59:04] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:59:04] [INFO]   -> Found value: TN
[2026-03-02 12:59:04] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:59:04] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:59:04] [INFO]   -> Found value: 38574
[2026-03-02 12:59:04] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-02 12:59:04] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:59:04] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:04] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:59:04] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:04] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:59:04] [INFO]   -> Found value: 36.14702
[2026-03-02 12:59:04] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1470199999999977080733515322208404541015625
[2026-03-02 12:59:04] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:59:04] [INFO]   -> Found value: -85.26318
[2026-03-02 12:59:04] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.263180000000005520632839761674404144287109375
[2026-03-02 12:59:04] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:59:04] [INFO]   -> Found value: 2026-02-28 22:49:05
[2026-03-02 12:59:04] [INFO]   -> Set field 'alarm' = "2026-02-28 22:49:05"
[2026-03-02 12:59:04] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:59:04] [INFO]   -> Found value: 2026-02-28 22:53:28
[2026-03-02 12:59:04] [INFO]   -> Set field 'dispatched' = "2026-02-28 22:53:28"
[2026-03-02 12:59:04] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:59:04] [INFO]   -> Found value: 2026-02-28 22:54:32
[2026-03-02 12:59:04] [INFO]   -> Set field 'enroute' = "2026-02-28 22:54:32"
[2026-03-02 12:59:04] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:59:04] [INFO]   -> Found value: 2026-02-28 23:02:06
[2026-03-02 12:59:04] [INFO]   -> Set field 'onScene' = "2026-02-28 23:02:06"
[2026-03-02 12:59:04] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:59:04] [INFO]   -> Found value: 2026-02-28 23:17:34
[2026-03-02 12:59:04] [INFO]   -> Set field 'cleared' = "2026-02-28 23:17:34"
[2026-03-02 12:59:04] [INFO]   -> Set field 'inService' = "2026-02-28 23:17:34"
[2026-03-02 12:59:04] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:59:04] [INFO]   -> Found value: N ELM ST
[2026-03-02 12:59:04] [INFO]   -> Set field 'incidentLocationCross' = "N ELM ST"
[2026-03-02 12:59:04] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:59:04] [INFO]   -> Found value: MF110
[2026-03-02 12:59:04] [INFO]   -> Set field 'cADVehicleID' = "MF110"
[2026-03-02 12:59:04] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:59:04] [INFO]   -> Found value: 2026-02-28 22:53:28
[2026-03-02 12:59:04] [INFO]   -> Set field 'timedispatch' = "2026-02-28 22:53:28"
[2026-03-02 12:59:04] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:59:04] [INFO]   -> Found value: 2026-02-28 23:02:06
[2026-03-02 12:59:04] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 23:02:06"
[2026-03-02 12:59:04] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:59:04] [INFO]   -> Found value: 2026-02-28 23:02:06
[2026-03-02 12:59:04] [INFO]   -> Set field 'timeonscene' = "2026-02-28 23:02:06"
[2026-03-02 12:59:04] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:59:04] [INFO]   -> Found value: 2026-02-28 23:01:18
[2026-03-02 12:59:04] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 23:01:18"
[2026-03-02 12:59:04] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:59:04] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:04] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:59:04] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 12:59:04] [INFO]   -> Found value: 20260022484
[2026-03-02 12:59:04] [INFO]   -> Set field 'policeReportNumber' = "20260022484"
[2026-03-02 12:59:04] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:59:04] [INFO]   -> Found value: This is a reopened incident.  [02/28/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02/28/26 23:01...
[2026-03-02 12:59:04] [INFO]   -> Set field 'dispatchNotes' = "This is a reopened incident.  [02\/28\/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02\/28\/26 23:01:26 DKITCHENS] [LAW] {M103} CANCEL FIRE \/\/ PAINT CAN EXPLODED IN BARRELL  [02\/28\/26 23:00:42 DKITCHENS] UDTS: CARD SEEN BY 911  [02\/28\/26 22:59:05 DSWINK] [LAW] {M104} SMALL FIRE IS GOING TO BE CONTAINED IN STEEL BARRELL  [02\/28\/26 22:58:58 DKITCHENS] POSSIBLY BEHIND APTS AT 302 E CLEVELAND  [02\/28\/26 22:54:16 DSWINK] [LAW] mpd enrt to area  [02\/28\/26 22:53:26 RMAYNARD] STATES HE CAN SEE A SMALL FIRE POSS CLOSE TO THE APARTMENT BUILDING CALLER IS AT 319 N ELM ST STATES NO ONE IS OUT WITH THE FIRE  [02\/28\/26 22:50:44 EALMENDAREZ]"
[2026-03-02 12:59:04] [INFO]   -> Set field 'cADLog' = "This is a reopened incident.  [02\/28\/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02\/28\/26 23:01:26 DKITCHENS] [LAW] {M103} CANCEL FIRE \/\/ PAINT CAN EXPLODED IN BARRELL  [02\/28\/26 23:00:42 DKITCHENS] UDTS: CARD SEEN BY 911  [02\/28\/26 22:59:05 DSWINK] [LAW] {M104} SMALL FIRE IS GOING TO BE CONTAINED IN STEEL BARRELL  [02\/28\/26 22:58:58 DKITCHENS] POSSIBLY BEHIND APTS AT 302 E CLEVELAND  [02\/28\/26 22:54:16 DSWINK] [LAW] mpd enrt to area  [02\/28\/26 22:53:26 RMAYNARD] STATES HE CAN SEE A SMALL FIRE POSS CLOSE TO THE APARTMENT BUILDING CALLER IS AT 319 N ELM ST STATES NO ONE IS OUT WITH THE FIRE  [02\/28\/26 22:50:44 EALMENDAREZ]"
[2026-03-02 12:59:04] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:59:04] [INFO]   -> Found value: MONTEREY
[2026-03-02 12:59:04] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-02 12:59:04] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:59:04] [INFO]   -> Found value: CLEVELAND
[2026-03-02 12:59:04] [INFO]   -> Set field 'streetName' = "CLEVELAND"
[2026-03-02 12:59:04] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:59:04] [INFO]   -> Found value: AVE
[2026-03-02 12:59:04] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-02 12:59:04] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:59:04] [INFO]   -> Found value: 314 E CLEVELAND AVE
[2026-03-02 12:59:04] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "314 E CLEVELAND AVE"
[2026-03-02 12:59:04] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 12:59:04] [INFO] Concatenating street name and type
[2026-03-02 12:59:04] [INFO]   -> Combined street name: CLEVELAND AVE
[2026-03-02 12:59:04] [INFO] Built locationCoordinates from lat/lng: 36.14702,-85.26318
[2026-03-02 12:59:04] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nPCSO\nMPD","incidentInternalId":"2026000079","dispatchRunNumber":"2026000079","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":314,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1470199999999977080733515322208404541015625,"nERISIncidentLongitude":-85.263180000000005520632839761674404144287109375,"alarm":"2026-02-28 22:49:05","dispatched":"2026-02-28 22:53:28","enroute":"2026-02-28 22:54:32","onScene":"2026-02-28 23:02:06","cleared":"2026-02-28 23:17:34","inService":"2026-02-28 23:17:34","incidentLocationCross":"N ELM ST","cADVehicleID":"MF110","timedispatch":"2026-02-28 22:53:28","timeenroutetoscene":"2026-02-28 23:02:06","timeonscene":"2026-02-28 23:02:06","timeunitclear":"2026-02-28 23:01:18","policeReportNumber":"20260022484","dispatchNotes":"This is a reopened incident.  [02\/28\/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02\/28\/26 23:01:26 DKITCHENS] [LAW] {M103} CANCEL FIRE \/\/ PAINT CAN EXPLODED IN BARRELL  [02\/28\/26 23:00:42 DKITCHENS] UDTS: CARD SEEN BY 911  [02\/28\/26 22:59:05 DSWINK] [LAW] {M104} SMALL FIRE IS GOING TO BE CONTAINED IN STEEL BARRELL  [02\/28\/26 22:58:58 DKITCHENS] POSSIBLY BEHIND APTS AT 302 E CLEVELAND  [02\/28\/26 22:54:16 DSWINK] [LAW] mpd enrt to area  [02\/28\/26 22:53:26 RMAYNARD] STATES HE CAN SEE A SMALL FIRE POSS CLOSE TO THE APARTMENT BUILDING CALLER IS AT 319 N ELM ST STATES NO ONE IS OUT WITH THE FIRE  [02\/28\/26 22:50:44 EALMENDAREZ]","cADLog":"This is a reopened incident.  [02\/28\/2026 23:01:58 DSWINK] [LAW] FIRE ADV TO CANCEL  [02\/28\/26 23:01:26 DKITCHENS] [LAW] {M103} CANCEL FIRE \/\/ PAINT CAN EXPLODED IN BARRELL  [02\/28\/26 23:00:42 DKITCHENS] UDTS: CARD SEEN BY 911  [02\/28\/26 22:59:05 DSWINK] [LAW] {M104} SMALL FIRE IS GOING TO BE CONTAINED IN STEEL BARRELL  [02\/28\/26 22:58:58 DKITCHENS] POSSIBLY BEHIND APTS AT 302 E CLEVELAND  [02\/28\/26 22:54:16 DSWINK] [LAW] mpd enrt to area  [02\/28\/26 22:53:26 RMAYNARD] STATES HE CAN SEE A SMALL FIRE POSS CLOSE TO THE APARTMENT BUILDING CALLER IS AT 319 N ELM ST STATES NO ONE IS OUT WITH THE FIRE  [02\/28\/26 22:50:44 EALMENDAREZ]","incidentLocationCity":"MONTEREY","streetName":"CLEVELAND AVE","incidentAddressTextVersionStreet":"314 E CLEVELAND AVE","locationCoordinates":"36.14702,-85.26318"}
[2026-03-02 12:59:04] [INFO] Number of extracted fields: 28
[2026-03-02 12:59:04] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
PCSO
MPD'
[2026-03-02 12:59:04] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
PCSO
MPD', Parsed IDs = ["MFD","PCSO","MPD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-02 12:59:04] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","PCSO","MPD"]
[2026-03-02 12:59:04] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:59:04] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-02 12:59:04] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","MPD"]
[2026-03-02 12:59:04] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-02 12:59:04] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-02 12:59:04] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-02 12:59:04] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-02 12:59:05] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-02 12:59:05] [INFO] Found existing IncidentTypeMapping with ID: 6986d42a0517d990b
[2026-03-02 12:59:05] [INFO] Found existing Dispatch with cADNumber '2026000079', ID: 69a58989d9be0cc8c - will update instead of create
[2026-03-02 12:59:05] [INFO] Updated existing Dispatches record with ID: 69a58989d9be0cc8c
[2026-03-02 12:59:05] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:59:05] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:59: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-03-02 12:59:09] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260022484_20260302_125726_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:59:09] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:59:09] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021987_20260302_125728.XML
[2026-03-02 12:59:09] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021987_20260302_125728.XML for user: 68f1466aed072ad4a
[2026-03-02 12:59:09] [INFO] File size: 6243 bytes
[2026-03-02 12:59:09] [INFO] Created FTPFiles record with ID: 69a5899d5692a8ddf
[2026-03-02 12:59:09] [INFO] About to extract fields from XML. File size: 6243 bytes
[2026-03-02 12:59:09] [INFO] Number of mappings: 28
[2026-03-02 12:59:09] [INFO] Starting XML parsing. Content length: 6243
[2026-03-02 12:59:09] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:59:09] [INFO] Processing 28 field mappings
[2026-03-02 12:59:09] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:59:09] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:59:09] [INFO]   -> Found value: PCFD
[2026-03-02 12:59:09] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 12:59:09] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:59:09] [INFO]   -> Found value: 2026000554
[2026-03-02 12:59:09] [INFO]   -> Set field 'incidentInternalId' = "2026000554"
[2026-03-02 12:59:09] [INFO]   -> Set field 'dispatchRunNumber' = "2026000554"
[2026-03-02 12:59:09] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:59:09] [INFO]   -> Found value: ALLERGIC REACTION/ANAPHYLAXIS
[2026-03-02 12:59:09] [INFO]   -> Set field 'incidentTypeValue1' = "ALLERGIC REACTION\/ANAPHYLAXIS"
[2026-03-02 12:59:09] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:59:09] [INFO]   -> Found value: 2381
[2026-03-02 12:59:09] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2381
[2026-03-02 12:59:09] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:59:09] [INFO]   -> Found value: TN
[2026-03-02 12:59:09] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:59:09] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:59:09] [INFO]   -> Found value: 38506
[2026-03-02 12:59:09] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 12:59:09] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:59:09] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:09] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:59:09] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:09] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:59:09] [INFO]   -> Found value: 36.13354
[2026-03-02 12:59:09] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.13354000000000354475560015998780727386474609375
[2026-03-02 12:59:09] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:59:09] [INFO]   -> Found value: -85.44377
[2026-03-02 12:59:09] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.443770000000000663931132294237613677978515625
[2026-03-02 12:59:09] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:59:09] [INFO]   -> Found value: 2026-02-27 16:10:53
[2026-03-02 12:59:09] [INFO]   -> Set field 'alarm' = "2026-02-27 16:10:53"
[2026-03-02 12:59:09] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:59:09] [INFO]   -> Found value: 2026-02-27 16:11:13
[2026-03-02 12:59:09] [INFO]   -> Set field 'dispatched' = "2026-02-27 16:11:13"
[2026-03-02 12:59:09] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:59:09] [INFO]   -> Found value: 2026-02-27 16:12:14
[2026-03-02 12:59:09] [INFO]   -> Set field 'enroute' = "2026-02-27 16:12:14"
[2026-03-02 12:59:09] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:59:09] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:09] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:59:09] [INFO]   -> Found value: 2026-02-27 16:12:59
[2026-03-02 12:59:09] [INFO]   -> Set field 'cleared' = "2026-02-27 16:12:59"
[2026-03-02 12:59:09] [INFO]   -> Set field 'inService' = "2026-02-27 16:12:59"
[2026-03-02 12:59:09] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:59:09] [INFO]   -> Found value: POPLAR GROVE RD/DIETZ DR
[2026-03-02 12:59:09] [INFO]   -> Set field 'incidentLocationCross' = "POPLAR GROVE RD\/DIETZ DR"
[2026-03-02 12:59:09] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:59:09] [INFO]   -> Found value: EN11
[2026-03-02 12:59:09] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 12:59:09] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:59:09] [INFO]   -> Found value: 2026-02-27 16:12:11
[2026-03-02 12:59:09] [INFO]   -> Set field 'timedispatch' = "2026-02-27 16:12:11"
[2026-03-02 12:59:09] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:59:09] [INFO]   -> Found value: 2026-02-27 16:12:14
[2026-03-02 12:59:09] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 16:12:14"
[2026-03-02 12:59:09] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:59:09] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:09] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:59:09] [INFO]   -> Found value: 2026-02-27 16:12:59
[2026-03-02 12:59:09] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 16:12:59"
[2026-03-02 12:59:09] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:59:09] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:09] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:59:09] [INFO]   -> Found value: 20260021987
[2026-03-02 12:59:09] [INFO]   -> Set field 'policeReportNumber' = "20260021987"
[2026-03-02 12:59:09] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:59:09] [INFO]   -> Found value: [LAW] UDTS: LE NOT RESPONDING  [02/27/26 16:12:24 KPATTON] [EMS] EMILIO HUGHES//47 YOM  [02/27/26 16...
[2026-03-02 12:59:09] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: LE NOT RESPONDING  [02\/27\/26 16:12:24 KPATTON] [EMS] EMILIO HUGHES\/\/47 YOM  [02\/27\/26 16:12:20 KMORGAN2] [EMS] NO TROUBLE BREATHING AT THIS TIME  [02\/27\/26 16:12:05 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 16:11:51 KPATTON] [EMS] JAW SWELLING  [02\/27\/26 16:11:32 KMORGAN2] [EMS] FACE SWELLING  [02\/27\/26 16:11:05 KMORGAN2] Event spawned from ALLERGIC REACTION\/ANAPHYLAXIS.  [02\/27\/2026 16:10:53 KMORGAN2]"
[2026-03-02 12:59:09] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: LE NOT RESPONDING  [02\/27\/26 16:12:24 KPATTON] [EMS] EMILIO HUGHES\/\/47 YOM  [02\/27\/26 16:12:20 KMORGAN2] [EMS] NO TROUBLE BREATHING AT THIS TIME  [02\/27\/26 16:12:05 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 16:11:51 KPATTON] [EMS] JAW SWELLING  [02\/27\/26 16:11:32 KMORGAN2] [EMS] FACE SWELLING  [02\/27\/26 16:11:05 KMORGAN2] Event spawned from ALLERGIC REACTION\/ANAPHYLAXIS.  [02\/27\/2026 16:10:53 KMORGAN2]"
[2026-03-02 12:59:09] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:59:09] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 12:59:09] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 12:59:09] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:59:09] [INFO]   -> Found value: LAKELAND
[2026-03-02 12:59:09] [INFO]   -> Set field 'streetName' = "LAKELAND"
[2026-03-02 12:59:09] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:59:09] [INFO]   -> Found value: DR
[2026-03-02 12:59:09] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 12:59:09] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:59:09] [INFO]   -> Found value: 2381 LAKELAND DR
[2026-03-02 12:59:09] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2381 LAKELAND DR"
[2026-03-02 12:59:09] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 12:59:09] [INFO] Concatenating street name and type
[2026-03-02 12:59:09] [INFO]   -> Combined street name: LAKELAND DR
[2026-03-02 12:59:09] [INFO] Built locationCoordinates from lat/lng: 36.13354,-85.44377
[2026-03-02 12:59:09] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000554","dispatchRunNumber":"2026000554","incidentTypeValue1":"ALLERGIC REACTION\/ANAPHYLAXIS","incidentLocationStreetNumber":2381,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.13354000000000354475560015998780727386474609375,"nERISIncidentLongitude":-85.443770000000000663931132294237613677978515625,"alarm":"2026-02-27 16:10:53","dispatched":"2026-02-27 16:11:13","enroute":"2026-02-27 16:12:14","cleared":"2026-02-27 16:12:59","inService":"2026-02-27 16:12:59","incidentLocationCross":"POPLAR GROVE RD\/DIETZ DR","cADVehicleID":"EN11","timedispatch":"2026-02-27 16:12:11","timeenroutetoscene":"2026-02-27 16:12:14","timeunitclear":"2026-02-27 16:12:59","policeReportNumber":"20260021987","dispatchNotes":"[LAW] UDTS: LE NOT RESPONDING  [02\/27\/26 16:12:24 KPATTON] [EMS] EMILIO HUGHES\/\/47 YOM  [02\/27\/26 16:12:20 KMORGAN2] [EMS] NO TROUBLE BREATHING AT THIS TIME  [02\/27\/26 16:12:05 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 16:11:51 KPATTON] [EMS] JAW SWELLING  [02\/27\/26 16:11:32 KMORGAN2] [EMS] FACE SWELLING  [02\/27\/26 16:11:05 KMORGAN2] Event spawned from ALLERGIC REACTION\/ANAPHYLAXIS.  [02\/27\/2026 16:10:53 KMORGAN2]","cADLog":"[LAW] UDTS: LE NOT RESPONDING  [02\/27\/26 16:12:24 KPATTON] [EMS] EMILIO HUGHES\/\/47 YOM  [02\/27\/26 16:12:20 KMORGAN2] [EMS] NO TROUBLE BREATHING AT THIS TIME  [02\/27\/26 16:12:05 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 16:11:51 KPATTON] [EMS] JAW SWELLING  [02\/27\/26 16:11:32 KMORGAN2] [EMS] FACE SWELLING  [02\/27\/26 16:11:05 KMORGAN2] Event spawned from ALLERGIC REACTION\/ANAPHYLAXIS.  [02\/27\/2026 16:10:53 KMORGAN2]","incidentLocationCity":"COOKEVILLE","streetName":"LAKELAND DR","incidentAddressTextVersionStreet":"2381 LAKELAND DR","locationCoordinates":"36.13354,-85.44377"}
[2026-03-02 12:59:09] [INFO] Number of extracted fields: 26
[2026-03-02 12:59:09] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 12:59: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-03-02 12:59:09] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 12:59:09] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:59:09] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 12:59:09] [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-03-02 12:59:09] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 12:59:09] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 12:59:09] [INFO] Found existing IncidentTypeMapping with ID: 693deda26218f0479
[2026-03-02 12:59:09] [INFO] Found existing Dispatch with cADNumber '2026000554', ID: 69a222d3cc34132b2 - will update instead of create
[2026-03-02 12:59:10] [INFO] Updated existing Dispatches record with ID: 69a222d3cc34132b2
[2026-03-02 12:59:10] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:59:10] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:59:13] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:59:13] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021987_20260302_125728.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:59:13] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:59:13] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021987_20260302_125728_1.XML
[2026-03-02 12:59:13] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021987_20260302_125728_1.XML for user: 68f1466aed072ad4a
[2026-03-02 12:59:13] [INFO] File size: 6243 bytes
[2026-03-02 12:59:13] [INFO] Created FTPFiles record with ID: 69a589a1a02ed56bc
[2026-03-02 12:59:13] [INFO] About to extract fields from XML. File size: 6243 bytes
[2026-03-02 12:59:13] [INFO] Number of mappings: 28
[2026-03-02 12:59:13] [INFO] Starting XML parsing. Content length: 6243
[2026-03-02 12:59:13] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:59:13] [INFO] Processing 28 field mappings
[2026-03-02 12:59:13] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:59:13] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:59:13] [INFO]   -> Found value: PCFD
[2026-03-02 12:59:13] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 12:59:13] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:59:13] [INFO]   -> Found value: 2026000554
[2026-03-02 12:59:13] [INFO]   -> Set field 'incidentInternalId' = "2026000554"
[2026-03-02 12:59:13] [INFO]   -> Set field 'dispatchRunNumber' = "2026000554"
[2026-03-02 12:59:13] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:59:13] [INFO]   -> Found value: ALLERGIC REACTION/ANAPHYLAXIS
[2026-03-02 12:59:13] [INFO]   -> Set field 'incidentTypeValue1' = "ALLERGIC REACTION\/ANAPHYLAXIS"
[2026-03-02 12:59:13] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:59:13] [INFO]   -> Found value: 2381
[2026-03-02 12:59:13] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2381
[2026-03-02 12:59:13] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:59:13] [INFO]   -> Found value: TN
[2026-03-02 12:59:13] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:59:13] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:59:13] [INFO]   -> Found value: 38506
[2026-03-02 12:59:13] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 12:59:13] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:59:13] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:13] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:59:13] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:13] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:59:13] [INFO]   -> Found value: 36.13354
[2026-03-02 12:59:13] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.13354000000000354475560015998780727386474609375
[2026-03-02 12:59:13] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:59:13] [INFO]   -> Found value: -85.44377
[2026-03-02 12:59:13] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.443770000000000663931132294237613677978515625
[2026-03-02 12:59:13] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:59:13] [INFO]   -> Found value: 2026-02-27 16:10:53
[2026-03-02 12:59:13] [INFO]   -> Set field 'alarm' = "2026-02-27 16:10:53"
[2026-03-02 12:59:13] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:59:13] [INFO]   -> Found value: 2026-02-27 16:11:13
[2026-03-02 12:59:13] [INFO]   -> Set field 'dispatched' = "2026-02-27 16:11:13"
[2026-03-02 12:59:13] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:59:13] [INFO]   -> Found value: 2026-02-27 16:12:14
[2026-03-02 12:59:13] [INFO]   -> Set field 'enroute' = "2026-02-27 16:12:14"
[2026-03-02 12:59:13] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:59:13] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:13] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:59:13] [INFO]   -> Found value: 2026-02-27 16:12:59
[2026-03-02 12:59:13] [INFO]   -> Set field 'cleared' = "2026-02-27 16:12:59"
[2026-03-02 12:59:13] [INFO]   -> Set field 'inService' = "2026-02-27 16:12:59"
[2026-03-02 12:59:13] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:59:13] [INFO]   -> Found value: POPLAR GROVE RD/DIETZ DR
[2026-03-02 12:59:13] [INFO]   -> Set field 'incidentLocationCross' = "POPLAR GROVE RD\/DIETZ DR"
[2026-03-02 12:59:13] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:59:13] [INFO]   -> Found value: EN11
[2026-03-02 12:59:13] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 12:59:13] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:59:13] [INFO]   -> Found value: 2026-02-27 16:12:11
[2026-03-02 12:59:13] [INFO]   -> Set field 'timedispatch' = "2026-02-27 16:12:11"
[2026-03-02 12:59:13] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:59:13] [INFO]   -> Found value: 2026-02-27 16:12:14
[2026-03-02 12:59:13] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 16:12:14"
[2026-03-02 12:59:13] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:59:13] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:13] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:59:13] [INFO]   -> Found value: 2026-02-27 16:12:59
[2026-03-02 12:59:13] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 16:12:59"
[2026-03-02 12:59:13] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:59:13] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:13] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:59:13] [INFO]   -> Found value: 20260021987
[2026-03-02 12:59:13] [INFO]   -> Set field 'policeReportNumber' = "20260021987"
[2026-03-02 12:59:13] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:59:13] [INFO]   -> Found value: [LAW] UDTS: LE NOT RESPONDING  [02/27/26 16:12:24 KPATTON] [EMS] EMILIO HUGHES//47 YOM  [02/27/26 16...
[2026-03-02 12:59:13] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: LE NOT RESPONDING  [02\/27\/26 16:12:24 KPATTON] [EMS] EMILIO HUGHES\/\/47 YOM  [02\/27\/26 16:12:20 KMORGAN2] [EMS] NO TROUBLE BREATHING AT THIS TIME  [02\/27\/26 16:12:05 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 16:11:51 KPATTON] [EMS] JAW SWELLING  [02\/27\/26 16:11:32 KMORGAN2] [EMS] FACE SWELLING  [02\/27\/26 16:11:05 KMORGAN2] Event spawned from ALLERGIC REACTION\/ANAPHYLAXIS.  [02\/27\/2026 16:10:53 KMORGAN2]"
[2026-03-02 12:59:13] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: LE NOT RESPONDING  [02\/27\/26 16:12:24 KPATTON] [EMS] EMILIO HUGHES\/\/47 YOM  [02\/27\/26 16:12:20 KMORGAN2] [EMS] NO TROUBLE BREATHING AT THIS TIME  [02\/27\/26 16:12:05 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 16:11:51 KPATTON] [EMS] JAW SWELLING  [02\/27\/26 16:11:32 KMORGAN2] [EMS] FACE SWELLING  [02\/27\/26 16:11:05 KMORGAN2] Event spawned from ALLERGIC REACTION\/ANAPHYLAXIS.  [02\/27\/2026 16:10:53 KMORGAN2]"
[2026-03-02 12:59:13] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:59:13] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 12:59:13] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 12:59:13] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:59:13] [INFO]   -> Found value: LAKELAND
[2026-03-02 12:59:13] [INFO]   -> Set field 'streetName' = "LAKELAND"
[2026-03-02 12:59:13] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:59:13] [INFO]   -> Found value: DR
[2026-03-02 12:59:13] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 12:59:13] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:59:13] [INFO]   -> Found value: 2381 LAKELAND DR
[2026-03-02 12:59:13] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2381 LAKELAND DR"
[2026-03-02 12:59:13] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 12:59:13] [INFO] Concatenating street name and type
[2026-03-02 12:59:13] [INFO]   -> Combined street name: LAKELAND DR
[2026-03-02 12:59:13] [INFO] Built locationCoordinates from lat/lng: 36.13354,-85.44377
[2026-03-02 12:59:13] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000554","dispatchRunNumber":"2026000554","incidentTypeValue1":"ALLERGIC REACTION\/ANAPHYLAXIS","incidentLocationStreetNumber":2381,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.13354000000000354475560015998780727386474609375,"nERISIncidentLongitude":-85.443770000000000663931132294237613677978515625,"alarm":"2026-02-27 16:10:53","dispatched":"2026-02-27 16:11:13","enroute":"2026-02-27 16:12:14","cleared":"2026-02-27 16:12:59","inService":"2026-02-27 16:12:59","incidentLocationCross":"POPLAR GROVE RD\/DIETZ DR","cADVehicleID":"EN11","timedispatch":"2026-02-27 16:12:11","timeenroutetoscene":"2026-02-27 16:12:14","timeunitclear":"2026-02-27 16:12:59","policeReportNumber":"20260021987","dispatchNotes":"[LAW] UDTS: LE NOT RESPONDING  [02\/27\/26 16:12:24 KPATTON] [EMS] EMILIO HUGHES\/\/47 YOM  [02\/27\/26 16:12:20 KMORGAN2] [EMS] NO TROUBLE BREATHING AT THIS TIME  [02\/27\/26 16:12:05 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 16:11:51 KPATTON] [EMS] JAW SWELLING  [02\/27\/26 16:11:32 KMORGAN2] [EMS] FACE SWELLING  [02\/27\/26 16:11:05 KMORGAN2] Event spawned from ALLERGIC REACTION\/ANAPHYLAXIS.  [02\/27\/2026 16:10:53 KMORGAN2]","cADLog":"[LAW] UDTS: LE NOT RESPONDING  [02\/27\/26 16:12:24 KPATTON] [EMS] EMILIO HUGHES\/\/47 YOM  [02\/27\/26 16:12:20 KMORGAN2] [EMS] NO TROUBLE BREATHING AT THIS TIME  [02\/27\/26 16:12:05 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 16:11:51 KPATTON] [EMS] JAW SWELLING  [02\/27\/26 16:11:32 KMORGAN2] [EMS] FACE SWELLING  [02\/27\/26 16:11:05 KMORGAN2] Event spawned from ALLERGIC REACTION\/ANAPHYLAXIS.  [02\/27\/2026 16:10:53 KMORGAN2]","incidentLocationCity":"COOKEVILLE","streetName":"LAKELAND DR","incidentAddressTextVersionStreet":"2381 LAKELAND DR","locationCoordinates":"36.13354,-85.44377"}
[2026-03-02 12:59:13] [INFO] Number of extracted fields: 26
[2026-03-02 12:59:13] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 12:59:13] [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-03-02 12:59:13] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 12:59:13] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:59:13] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 12:59:13] [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-03-02 12:59:13] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 12:59:13] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 12:59:14] [INFO] Found existing IncidentTypeMapping with ID: 693deda26218f0479
[2026-03-02 12:59:14] [INFO] Found existing Dispatch with cADNumber '2026000554', ID: 69a222d3cc34132b2 - will update instead of create
[2026-03-02 12:59:14] [INFO] Updated existing Dispatches record with ID: 69a222d3cc34132b2
[2026-03-02 12:59:14] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:59:14] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:59:18] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:59:18] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021987_20260302_125728_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:59:18] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:59:18] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125730.XML
[2026-03-02 12:59:18] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125730.XML for user: 68f1466aed072ad4a
[2026-03-02 12:59:18] [INFO] File size: 8779 bytes
[2026-03-02 12:59:18] [INFO] Created FTPFiles record with ID: 69a589a672c248aee
[2026-03-02 12:59:18] [INFO] About to extract fields from XML. File size: 8779 bytes
[2026-03-02 12:59:18] [INFO] Number of mappings: 28
[2026-03-02 12:59:18] [INFO] Starting XML parsing. Content length: 8779
[2026-03-02 12:59:18] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:59:18] [INFO] Processing 28 field mappings
[2026-03-02 12:59:18] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:59:18] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:59:18] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 12:59:18] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-02 12:59:18] [INFO]   -> Found value: PCFD
BFD
RESC
PCSO
[2026-03-02 12:59:18] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nBFD\nRESC\nPCSO"
[2026-03-02 12:59:18] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:59:18] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-02 12:59:18] [INFO]   -> Found value: 2026000555
[2026-03-02 12:59:18] [INFO]   -> Set field 'incidentInternalId' = "2026000555"
[2026-03-02 12:59:18] [INFO]   -> Set field 'dispatchRunNumber' = "2026000555"
[2026-03-02 12:59:18] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:59:18] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-02 12:59:18] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-02 12:59:18] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:59:18] [INFO]   -> Found value: 281
[2026-03-02 12:59:18] [INFO]   -> Set field 'incidentLocationStreetNumber' = 281
[2026-03-02 12:59:18] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:59:18] [INFO]   -> Found value: TN
[2026-03-02 12:59:18] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:59:18] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:59:18] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:18] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:59:18] [INFO]   -> Found value: MM281W
[2026-03-02 12:59:18] [INFO]   -> Set field 'businessName' = "MM281W"
[2026-03-02 12:59:18] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:59:18] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:18] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:59:18] [INFO]   -> Found value: 36.14031
[2026-03-02 12:59:18] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.140309999999999490682967007160186767578125
[2026-03-02 12:59:18] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:59:18] [INFO]   -> Found value: -85.61141
[2026-03-02 12:59:18] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.611410000000006448317435570061206817626953125
[2026-03-02 12:59:18] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:59:18] [INFO]   -> Found value: 2026-02-27 17:25:12
[2026-03-02 12:59:18] [INFO]   -> Set field 'alarm' = "2026-02-27 17:25:12"
[2026-03-02 12:59:18] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:59:18] [INFO]   -> Found value: 2026-02-27 17:26:46
[2026-03-02 12:59:18] [INFO]   -> Set field 'dispatched' = "2026-02-27 17:26:46"
[2026-03-02 12:59:18] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:59:18] [INFO]   -> Found value: 2026-02-27 17:28:00
[2026-03-02 12:59:18] [INFO]   -> Set field 'enroute' = "2026-02-27 17:28:00"
[2026-03-02 12:59:18] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:59:18] [INFO]   -> Found value: 2026-02-27 17:32:26
[2026-03-02 12:59:18] [INFO]   -> Set field 'onScene' = "2026-02-27 17:32:26"
[2026-03-02 12:59:18] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:59:18] [INFO]   -> Found value: 2026-02-27 17:52:30
[2026-03-02 12:59:18] [INFO]   -> Set field 'cleared' = "2026-02-27 17:52:30"
[2026-03-02 12:59:18] [INFO]   -> Set field 'inService' = "2026-02-27 17:52:30"
[2026-03-02 12:59:18] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:59:18] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:18] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:59:18] [INFO]   -> Found value: EN11
[2026-03-02 12:59:18] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 12:59:18] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:59:18] [INFO]   -> Found value: 2026-02-27 17:30:19
[2026-03-02 12:59:18] [INFO]   -> Set field 'timedispatch' = "2026-02-27 17:30:19"
[2026-03-02 12:59:18] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:59:18] [INFO]   -> Found value: 2026-02-27 17:30:19
[2026-03-02 12:59:18] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 17:30:19"
[2026-03-02 12:59:18] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:59:18] [INFO]   -> Found value: 2026-02-27 17:32:26
[2026-03-02 12:59:18] [INFO]   -> Set field 'timeonscene' = "2026-02-27 17:32:26"
[2026-03-02 12:59:18] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:59:18] [INFO]   -> Found value: 2026-02-27 17:52:30
[2026-03-02 12:59:18] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 17:52:30"
[2026-03-02 12:59:18] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:59:18] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:18] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:59:18] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 12:59:18] [INFO]   -> Found value: 20260022018
[2026-03-02 12:59:18] [INFO]   -> Set field 'policeReportNumber' = "20260022018"
[2026-03-02 12:59:18] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:59:18] [INFO]   -> Found value: [FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02/27/2...
[2026-03-02 12:59:18] [INFO]   -> Set field 'dispatchNotes' = "[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:59:18] [INFO]   -> Set field 'cADLog' = "[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:59:18] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:59:18] [INFO]   -> Found value: BAXTER
[2026-03-02 12:59:18] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 12:59:18] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:59:18] [INFO]   -> Found value: I 40
[2026-03-02 12:59:18] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-02 12:59:18] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:59:18] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:18] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:59:18] [INFO]   -> Found value: 281 W I 40
[2026-03-02 12:59:18] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "281 W I 40"
[2026-03-02 12:59:18] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 12:59:18] [INFO] Built locationCoordinates from lat/lng: 36.14031,-85.61141
[2026-03-02 12:59:18] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nBFD\nRESC\nPCSO","incidentInternalId":"2026000555","dispatchRunNumber":"2026000555","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":281,"incidentLocationStateName":"TN","businessName":"MM281W","nERISIncidentLatitude":36.140309999999999490682967007160186767578125,"nERISIncidentLongitude":-85.611410000000006448317435570061206817626953125,"alarm":"2026-02-27 17:25:12","dispatched":"2026-02-27 17:26:46","enroute":"2026-02-27 17:28:00","onScene":"2026-02-27 17:32:26","cleared":"2026-02-27 17:52:30","inService":"2026-02-27 17:52:30","cADVehicleID":"EN11","timedispatch":"2026-02-27 17:30:19","timeenroutetoscene":"2026-02-27 17:30:19","timeonscene":"2026-02-27 17:32:26","timeunitclear":"2026-02-27 17:52:30","policeReportNumber":"20260022018","dispatchNotes":"[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","cADLog":"[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"I 40","incidentAddressTextVersionStreet":"281 W I 40","locationCoordinates":"36.14031,-85.61141"}
[2026-03-02 12:59:18] [INFO] Number of extracted fields: 27
[2026-03-02 12:59:18] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
BFD
RESC
PCSO'
[2026-03-02 12:59:18] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
BFD
RESC
PCSO', Parsed IDs = ["PCFD","BFD","RESC","PCSO"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-02 12:59:18] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","BFD","RESC","PCSO"]
[2026-03-02 12:59:18] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:59:18] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 12:59:18] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["BFD","RESC","PCSO"]
[2026-03-02 12:59:18] [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-03-02 12:59:18] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 12:59:18] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-02 12:59:18] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 12:59:18] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 12:59:18] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-03-02 12:59:19] [INFO] Found existing Dispatch with cADNumber '2026000555', ID: 69a2283c5bf03c5c4 - will update instead of create
[2026-03-02 12:59:19] [INFO] Updated existing Dispatches record with ID: 69a2283c5bf03c5c4
[2026-03-02 12:59:19] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:59:19] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:59: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-03-02 12:59:22] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125730.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:59:22] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:59:22] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125730_1.XML
[2026-03-02 12:59:22] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125730_1.XML for user: 68f1466aed072ad4a
[2026-03-02 12:59:22] [INFO] File size: 8779 bytes
[2026-03-02 12:59:23] [INFO] Created FTPFiles record with ID: 69a589aaf0555468a
[2026-03-02 12:59:23] [INFO] About to extract fields from XML. File size: 8779 bytes
[2026-03-02 12:59:23] [INFO] Number of mappings: 28
[2026-03-02 12:59:23] [INFO] Starting XML parsing. Content length: 8779
[2026-03-02 12:59:23] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:59:23] [INFO] Processing 28 field mappings
[2026-03-02 12:59:23] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:59:23] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:59:23] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 12:59:23] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-02 12:59:23] [INFO]   -> Found value: PCFD
BFD
RESC
PCSO
[2026-03-02 12:59:23] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nBFD\nRESC\nPCSO"
[2026-03-02 12:59:23] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:59:23] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-02 12:59:23] [INFO]   -> Found value: 2026000555
[2026-03-02 12:59:23] [INFO]   -> Set field 'incidentInternalId' = "2026000555"
[2026-03-02 12:59:23] [INFO]   -> Set field 'dispatchRunNumber' = "2026000555"
[2026-03-02 12:59:23] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:59:23] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-02 12:59:23] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-02 12:59:23] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:59:23] [INFO]   -> Found value: 281
[2026-03-02 12:59:23] [INFO]   -> Set field 'incidentLocationStreetNumber' = 281
[2026-03-02 12:59:23] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:59:23] [INFO]   -> Found value: TN
[2026-03-02 12:59:23] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:59:23] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:59:23] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:23] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:59:23] [INFO]   -> Found value: MM281W
[2026-03-02 12:59:23] [INFO]   -> Set field 'businessName' = "MM281W"
[2026-03-02 12:59:23] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:59:23] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:23] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:59:23] [INFO]   -> Found value: 36.14031
[2026-03-02 12:59:23] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.140309999999999490682967007160186767578125
[2026-03-02 12:59:23] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:59:23] [INFO]   -> Found value: -85.61141
[2026-03-02 12:59:23] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.611410000000006448317435570061206817626953125
[2026-03-02 12:59:23] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:59:23] [INFO]   -> Found value: 2026-02-27 17:25:12
[2026-03-02 12:59:23] [INFO]   -> Set field 'alarm' = "2026-02-27 17:25:12"
[2026-03-02 12:59:23] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:59:23] [INFO]   -> Found value: 2026-02-27 17:26:46
[2026-03-02 12:59:23] [INFO]   -> Set field 'dispatched' = "2026-02-27 17:26:46"
[2026-03-02 12:59:23] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:59:23] [INFO]   -> Found value: 2026-02-27 17:28:00
[2026-03-02 12:59:23] [INFO]   -> Set field 'enroute' = "2026-02-27 17:28:00"
[2026-03-02 12:59:23] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:59:23] [INFO]   -> Found value: 2026-02-27 17:32:26
[2026-03-02 12:59:23] [INFO]   -> Set field 'onScene' = "2026-02-27 17:32:26"
[2026-03-02 12:59:23] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:59:23] [INFO]   -> Found value: 2026-02-27 17:52:30
[2026-03-02 12:59:23] [INFO]   -> Set field 'cleared' = "2026-02-27 17:52:30"
[2026-03-02 12:59:23] [INFO]   -> Set field 'inService' = "2026-02-27 17:52:30"
[2026-03-02 12:59:23] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:59:23] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:23] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:59:23] [INFO]   -> Found value: EN11
[2026-03-02 12:59:23] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 12:59:23] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:59:23] [INFO]   -> Found value: 2026-02-27 17:30:19
[2026-03-02 12:59:23] [INFO]   -> Set field 'timedispatch' = "2026-02-27 17:30:19"
[2026-03-02 12:59:23] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:59:23] [INFO]   -> Found value: 2026-02-27 17:30:19
[2026-03-02 12:59:23] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 17:30:19"
[2026-03-02 12:59:23] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:59:23] [INFO]   -> Found value: 2026-02-27 17:32:26
[2026-03-02 12:59:23] [INFO]   -> Set field 'timeonscene' = "2026-02-27 17:32:26"
[2026-03-02 12:59:23] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:59:23] [INFO]   -> Found value: 2026-02-27 17:52:30
[2026-03-02 12:59:23] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 17:52:30"
[2026-03-02 12:59:23] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:59:23] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:23] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:59:23] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 12:59:23] [INFO]   -> Found value: 20260022018
[2026-03-02 12:59:23] [INFO]   -> Set field 'policeReportNumber' = "20260022018"
[2026-03-02 12:59:23] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:59:23] [INFO]   -> Found value: [FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02/27/2...
[2026-03-02 12:59:23] [INFO]   -> Set field 'dispatchNotes' = "[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:59:23] [INFO]   -> Set field 'cADLog' = "[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:59:23] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:59:23] [INFO]   -> Found value: BAXTER
[2026-03-02 12:59:23] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 12:59:23] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:59:23] [INFO]   -> Found value: I 40
[2026-03-02 12:59:23] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-02 12:59:23] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:59:23] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:23] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:59:23] [INFO]   -> Found value: 281 W I 40
[2026-03-02 12:59:23] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "281 W I 40"
[2026-03-02 12:59:23] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 12:59:23] [INFO] Built locationCoordinates from lat/lng: 36.14031,-85.61141
[2026-03-02 12:59:23] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nBFD\nRESC\nPCSO","incidentInternalId":"2026000555","dispatchRunNumber":"2026000555","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":281,"incidentLocationStateName":"TN","businessName":"MM281W","nERISIncidentLatitude":36.140309999999999490682967007160186767578125,"nERISIncidentLongitude":-85.611410000000006448317435570061206817626953125,"alarm":"2026-02-27 17:25:12","dispatched":"2026-02-27 17:26:46","enroute":"2026-02-27 17:28:00","onScene":"2026-02-27 17:32:26","cleared":"2026-02-27 17:52:30","inService":"2026-02-27 17:52:30","cADVehicleID":"EN11","timedispatch":"2026-02-27 17:30:19","timeenroutetoscene":"2026-02-27 17:30:19","timeonscene":"2026-02-27 17:32:26","timeunitclear":"2026-02-27 17:52:30","policeReportNumber":"20260022018","dispatchNotes":"[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","cADLog":"[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"I 40","incidentAddressTextVersionStreet":"281 W I 40","locationCoordinates":"36.14031,-85.61141"}
[2026-03-02 12:59:23] [INFO] Number of extracted fields: 27
[2026-03-02 12:59:23] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
BFD
RESC
PCSO'
[2026-03-02 12:59:23] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
BFD
RESC
PCSO', Parsed IDs = ["PCFD","BFD","RESC","PCSO"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-02 12:59:23] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","BFD","RESC","PCSO"]
[2026-03-02 12:59:23] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:59:23] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 12:59:23] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["BFD","RESC","PCSO"]
[2026-03-02 12:59:23] [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-03-02 12:59:23] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 12:59:23] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-02 12:59:23] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 12:59:23] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 12:59:23] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-03-02 12:59:23] [INFO] Found existing Dispatch with cADNumber '2026000555', ID: 69a2283c5bf03c5c4 - will update instead of create
[2026-03-02 12:59:23] [INFO] Updated existing Dispatches record with ID: 69a2283c5bf03c5c4
[2026-03-02 12:59:23] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:59:23] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:59: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-03-02 12:59:27] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125730_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:59:27] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:59:27] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125730_2.XML
[2026-03-02 12:59:27] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125730_2.XML for user: 68f1466aed072ad4a
[2026-03-02 12:59:27] [INFO] File size: 8779 bytes
[2026-03-02 12:59:27] [INFO] Created FTPFiles record with ID: 69a589afa4db6c437
[2026-03-02 12:59:27] [INFO] About to extract fields from XML. File size: 8779 bytes
[2026-03-02 12:59:27] [INFO] Number of mappings: 28
[2026-03-02 12:59:27] [INFO] Starting XML parsing. Content length: 8779
[2026-03-02 12:59:27] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:59:27] [INFO] Processing 28 field mappings
[2026-03-02 12:59:27] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:59:27] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:59:27] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 12:59:27] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-02 12:59:27] [INFO]   -> Found value: PCFD
BFD
RESC
PCSO
[2026-03-02 12:59:27] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nBFD\nRESC\nPCSO"
[2026-03-02 12:59:27] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:59:27] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-02 12:59:27] [INFO]   -> Found value: 2026000555
[2026-03-02 12:59:27] [INFO]   -> Set field 'incidentInternalId' = "2026000555"
[2026-03-02 12:59:27] [INFO]   -> Set field 'dispatchRunNumber' = "2026000555"
[2026-03-02 12:59:27] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:59:27] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-02 12:59:27] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-02 12:59:27] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:59:27] [INFO]   -> Found value: 281
[2026-03-02 12:59:27] [INFO]   -> Set field 'incidentLocationStreetNumber' = 281
[2026-03-02 12:59:27] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:59:27] [INFO]   -> Found value: TN
[2026-03-02 12:59:27] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:59:27] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:59:27] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:27] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:59:27] [INFO]   -> Found value: MM281W
[2026-03-02 12:59:27] [INFO]   -> Set field 'businessName' = "MM281W"
[2026-03-02 12:59:27] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:59:27] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:27] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:59:27] [INFO]   -> Found value: 36.14031
[2026-03-02 12:59:27] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.140309999999999490682967007160186767578125
[2026-03-02 12:59:27] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:59:27] [INFO]   -> Found value: -85.61141
[2026-03-02 12:59:27] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.611410000000006448317435570061206817626953125
[2026-03-02 12:59:27] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:59:27] [INFO]   -> Found value: 2026-02-27 17:25:12
[2026-03-02 12:59:27] [INFO]   -> Set field 'alarm' = "2026-02-27 17:25:12"
[2026-03-02 12:59:27] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:59:27] [INFO]   -> Found value: 2026-02-27 17:26:46
[2026-03-02 12:59:27] [INFO]   -> Set field 'dispatched' = "2026-02-27 17:26:46"
[2026-03-02 12:59:27] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:59:27] [INFO]   -> Found value: 2026-02-27 17:28:00
[2026-03-02 12:59:27] [INFO]   -> Set field 'enroute' = "2026-02-27 17:28:00"
[2026-03-02 12:59:27] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:59:27] [INFO]   -> Found value: 2026-02-27 17:32:26
[2026-03-02 12:59:27] [INFO]   -> Set field 'onScene' = "2026-02-27 17:32:26"
[2026-03-02 12:59:27] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:59:27] [INFO]   -> Found value: 2026-02-27 17:52:30
[2026-03-02 12:59:27] [INFO]   -> Set field 'cleared' = "2026-02-27 17:52:30"
[2026-03-02 12:59:27] [INFO]   -> Set field 'inService' = "2026-02-27 17:52:30"
[2026-03-02 12:59:27] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:59:27] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:27] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:59:27] [INFO]   -> Found value: EN11
[2026-03-02 12:59:27] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 12:59:27] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:59:27] [INFO]   -> Found value: 2026-02-27 17:30:19
[2026-03-02 12:59:27] [INFO]   -> Set field 'timedispatch' = "2026-02-27 17:30:19"
[2026-03-02 12:59:27] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:59:27] [INFO]   -> Found value: 2026-02-27 17:30:19
[2026-03-02 12:59:27] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 17:30:19"
[2026-03-02 12:59:27] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:59:27] [INFO]   -> Found value: 2026-02-27 17:32:26
[2026-03-02 12:59:27] [INFO]   -> Set field 'timeonscene' = "2026-02-27 17:32:26"
[2026-03-02 12:59:27] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:59:27] [INFO]   -> Found value: 2026-02-27 17:52:30
[2026-03-02 12:59:27] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 17:52:30"
[2026-03-02 12:59:27] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:59:27] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:27] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:59:27] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 12:59:27] [INFO]   -> Found value: 20260022018
[2026-03-02 12:59:27] [INFO]   -> Set field 'policeReportNumber' = "20260022018"
[2026-03-02 12:59:27] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:59:27] [INFO]   -> Found value: [FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02/27/2...
[2026-03-02 12:59:27] [INFO]   -> Set field 'dispatchNotes' = "[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:59:27] [INFO]   -> Set field 'cADLog' = "[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:59:27] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:59:27] [INFO]   -> Found value: BAXTER
[2026-03-02 12:59:27] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 12:59:27] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:59:27] [INFO]   -> Found value: I 40
[2026-03-02 12:59:27] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-02 12:59:27] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:59:27] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:27] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:59:27] [INFO]   -> Found value: 281 W I 40
[2026-03-02 12:59:27] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "281 W I 40"
[2026-03-02 12:59:27] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 12:59:27] [INFO] Built locationCoordinates from lat/lng: 36.14031,-85.61141
[2026-03-02 12:59:27] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nBFD\nRESC\nPCSO","incidentInternalId":"2026000555","dispatchRunNumber":"2026000555","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":281,"incidentLocationStateName":"TN","businessName":"MM281W","nERISIncidentLatitude":36.140309999999999490682967007160186767578125,"nERISIncidentLongitude":-85.611410000000006448317435570061206817626953125,"alarm":"2026-02-27 17:25:12","dispatched":"2026-02-27 17:26:46","enroute":"2026-02-27 17:28:00","onScene":"2026-02-27 17:32:26","cleared":"2026-02-27 17:52:30","inService":"2026-02-27 17:52:30","cADVehicleID":"EN11","timedispatch":"2026-02-27 17:30:19","timeenroutetoscene":"2026-02-27 17:30:19","timeonscene":"2026-02-27 17:32:26","timeunitclear":"2026-02-27 17:52:30","policeReportNumber":"20260022018","dispatchNotes":"[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","cADLog":"[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"I 40","incidentAddressTextVersionStreet":"281 W I 40","locationCoordinates":"36.14031,-85.61141"}
[2026-03-02 12:59:27] [INFO] Number of extracted fields: 27
[2026-03-02 12:59:27] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
BFD
RESC
PCSO'
[2026-03-02 12:59:27] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
BFD
RESC
PCSO', Parsed IDs = ["PCFD","BFD","RESC","PCSO"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-02 12:59:27] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","BFD","RESC","PCSO"]
[2026-03-02 12:59:27] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:59:27] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 12:59:27] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["BFD","RESC","PCSO"]
[2026-03-02 12:59:27] [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-03-02 12:59:27] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 12:59:27] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-02 12:59:27] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 12:59:27] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 12:59:28] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-03-02 12:59:28] [INFO] Found existing Dispatch with cADNumber '2026000555', ID: 69a2283c5bf03c5c4 - will update instead of create
[2026-03-02 12:59:28] [INFO] Updated existing Dispatches record with ID: 69a2283c5bf03c5c4
[2026-03-02 12:59:28] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:59:28] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:59: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-03-02 12:59:31] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125730_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:59:31] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:59:31] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125732.XML
[2026-03-02 12:59:31] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125732.XML for user: 68f1466aed072ad4a
[2026-03-02 12:59:31] [INFO] File size: 8779 bytes
[2026-03-02 12:59:32] [INFO] Created FTPFiles record with ID: 69a589b4029ad3856
[2026-03-02 12:59:32] [INFO] About to extract fields from XML. File size: 8779 bytes
[2026-03-02 12:59:32] [INFO] Number of mappings: 28
[2026-03-02 12:59:32] [INFO] Starting XML parsing. Content length: 8779
[2026-03-02 12:59:32] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:59:32] [INFO] Processing 28 field mappings
[2026-03-02 12:59:32] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:59:32] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:59:32] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 12:59:32] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-02 12:59:32] [INFO]   -> Found value: PCFD
BFD
RESC
PCSO
[2026-03-02 12:59:32] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nBFD\nRESC\nPCSO"
[2026-03-02 12:59:32] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:59:32] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-02 12:59:32] [INFO]   -> Found value: 2026000555
[2026-03-02 12:59:32] [INFO]   -> Set field 'incidentInternalId' = "2026000555"
[2026-03-02 12:59:32] [INFO]   -> Set field 'dispatchRunNumber' = "2026000555"
[2026-03-02 12:59:32] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:59:32] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-02 12:59:32] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-02 12:59:32] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:59:32] [INFO]   -> Found value: 281
[2026-03-02 12:59:32] [INFO]   -> Set field 'incidentLocationStreetNumber' = 281
[2026-03-02 12:59:32] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:59:32] [INFO]   -> Found value: TN
[2026-03-02 12:59:32] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:59:32] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:59:32] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:32] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:59:32] [INFO]   -> Found value: MM281W
[2026-03-02 12:59:32] [INFO]   -> Set field 'businessName' = "MM281W"
[2026-03-02 12:59:32] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:59:32] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:32] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:59:32] [INFO]   -> Found value: 36.14031
[2026-03-02 12:59:32] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.140309999999999490682967007160186767578125
[2026-03-02 12:59:32] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:59:32] [INFO]   -> Found value: -85.61141
[2026-03-02 12:59:32] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.611410000000006448317435570061206817626953125
[2026-03-02 12:59:32] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:59:32] [INFO]   -> Found value: 2026-02-27 17:25:12
[2026-03-02 12:59:32] [INFO]   -> Set field 'alarm' = "2026-02-27 17:25:12"
[2026-03-02 12:59:32] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:59:32] [INFO]   -> Found value: 2026-02-27 17:26:46
[2026-03-02 12:59:32] [INFO]   -> Set field 'dispatched' = "2026-02-27 17:26:46"
[2026-03-02 12:59:32] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:59:32] [INFO]   -> Found value: 2026-02-27 17:28:00
[2026-03-02 12:59:32] [INFO]   -> Set field 'enroute' = "2026-02-27 17:28:00"
[2026-03-02 12:59:32] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:59:32] [INFO]   -> Found value: 2026-02-27 17:32:26
[2026-03-02 12:59:32] [INFO]   -> Set field 'onScene' = "2026-02-27 17:32:26"
[2026-03-02 12:59:32] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:59:32] [INFO]   -> Found value: 2026-02-27 17:52:30
[2026-03-02 12:59:32] [INFO]   -> Set field 'cleared' = "2026-02-27 17:52:30"
[2026-03-02 12:59:32] [INFO]   -> Set field 'inService' = "2026-02-27 17:52:30"
[2026-03-02 12:59:32] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:59:32] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:32] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:59:32] [INFO]   -> Found value: EN11
[2026-03-02 12:59:32] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 12:59:32] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:59:32] [INFO]   -> Found value: 2026-02-27 17:30:19
[2026-03-02 12:59:32] [INFO]   -> Set field 'timedispatch' = "2026-02-27 17:30:19"
[2026-03-02 12:59:32] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:59:32] [INFO]   -> Found value: 2026-02-27 17:30:19
[2026-03-02 12:59:32] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 17:30:19"
[2026-03-02 12:59:32] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:59:32] [INFO]   -> Found value: 2026-02-27 17:32:26
[2026-03-02 12:59:32] [INFO]   -> Set field 'timeonscene' = "2026-02-27 17:32:26"
[2026-03-02 12:59:32] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:59:32] [INFO]   -> Found value: 2026-02-27 17:52:30
[2026-03-02 12:59:32] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 17:52:30"
[2026-03-02 12:59:32] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:59:32] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:32] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:59:32] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 12:59:32] [INFO]   -> Found value: 20260022018
[2026-03-02 12:59:32] [INFO]   -> Set field 'policeReportNumber' = "20260022018"
[2026-03-02 12:59:32] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:59:32] [INFO]   -> Found value: [FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02/27/2...
[2026-03-02 12:59:32] [INFO]   -> Set field 'dispatchNotes' = "[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:59:32] [INFO]   -> Set field 'cADLog' = "[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:59:32] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:59:32] [INFO]   -> Found value: BAXTER
[2026-03-02 12:59:32] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 12:59:32] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:59:32] [INFO]   -> Found value: I 40
[2026-03-02 12:59:32] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-02 12:59:32] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:59:32] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:32] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:59:32] [INFO]   -> Found value: 281 W I 40
[2026-03-02 12:59:32] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "281 W I 40"
[2026-03-02 12:59:32] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 12:59:32] [INFO] Built locationCoordinates from lat/lng: 36.14031,-85.61141
[2026-03-02 12:59:32] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nBFD\nRESC\nPCSO","incidentInternalId":"2026000555","dispatchRunNumber":"2026000555","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":281,"incidentLocationStateName":"TN","businessName":"MM281W","nERISIncidentLatitude":36.140309999999999490682967007160186767578125,"nERISIncidentLongitude":-85.611410000000006448317435570061206817626953125,"alarm":"2026-02-27 17:25:12","dispatched":"2026-02-27 17:26:46","enroute":"2026-02-27 17:28:00","onScene":"2026-02-27 17:32:26","cleared":"2026-02-27 17:52:30","inService":"2026-02-27 17:52:30","cADVehicleID":"EN11","timedispatch":"2026-02-27 17:30:19","timeenroutetoscene":"2026-02-27 17:30:19","timeonscene":"2026-02-27 17:32:26","timeunitclear":"2026-02-27 17:52:30","policeReportNumber":"20260022018","dispatchNotes":"[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","cADLog":"[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"I 40","incidentAddressTextVersionStreet":"281 W I 40","locationCoordinates":"36.14031,-85.61141"}
[2026-03-02 12:59:32] [INFO] Number of extracted fields: 27
[2026-03-02 12:59:32] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
BFD
RESC
PCSO'
[2026-03-02 12:59:32] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
BFD
RESC
PCSO', Parsed IDs = ["PCFD","BFD","RESC","PCSO"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-02 12:59:32] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","BFD","RESC","PCSO"]
[2026-03-02 12:59:32] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:59:32] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 12:59:32] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["BFD","RESC","PCSO"]
[2026-03-02 12:59:32] [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-03-02 12:59:32] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 12:59:32] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-02 12:59:32] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 12:59:32] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 12:59:32] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-03-02 12:59:32] [INFO] Found existing Dispatch with cADNumber '2026000555', ID: 69a2283c5bf03c5c4 - will update instead of create
[2026-03-02 12:59:32] [INFO] Updated existing Dispatches record with ID: 69a2283c5bf03c5c4
[2026-03-02 12:59:32] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:59:32] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:59:36] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:59:36] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125732.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:59:36] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:59:36] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125732_1.XML
[2026-03-02 12:59:36] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125732_1.XML for user: 68f1466aed072ad4a
[2026-03-02 12:59:36] [INFO] File size: 8779 bytes
[2026-03-02 12:59:37] [INFO] Created FTPFiles record with ID: 69a589b8f3f1466e4
[2026-03-02 12:59:37] [INFO] About to extract fields from XML. File size: 8779 bytes
[2026-03-02 12:59:37] [INFO] Number of mappings: 28
[2026-03-02 12:59:37] [INFO] Starting XML parsing. Content length: 8779
[2026-03-02 12:59:37] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:59:37] [INFO] Processing 28 field mappings
[2026-03-02 12:59:37] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:59:37] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:59:37] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 12:59:37] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-02 12:59:37] [INFO]   -> Found value: PCFD
BFD
RESC
PCSO
[2026-03-02 12:59:37] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nBFD\nRESC\nPCSO"
[2026-03-02 12:59:37] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:59:37] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-02 12:59:37] [INFO]   -> Found value: 2026000555
[2026-03-02 12:59:37] [INFO]   -> Set field 'incidentInternalId' = "2026000555"
[2026-03-02 12:59:37] [INFO]   -> Set field 'dispatchRunNumber' = "2026000555"
[2026-03-02 12:59:37] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:59:37] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-02 12:59:37] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-02 12:59:37] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:59:37] [INFO]   -> Found value: 281
[2026-03-02 12:59:37] [INFO]   -> Set field 'incidentLocationStreetNumber' = 281
[2026-03-02 12:59:37] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:59:37] [INFO]   -> Found value: TN
[2026-03-02 12:59:37] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:59:37] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:59:37] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:37] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:59:37] [INFO]   -> Found value: MM281W
[2026-03-02 12:59:37] [INFO]   -> Set field 'businessName' = "MM281W"
[2026-03-02 12:59:37] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:59:37] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:37] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:59:37] [INFO]   -> Found value: 36.14031
[2026-03-02 12:59:37] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.140309999999999490682967007160186767578125
[2026-03-02 12:59:37] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:59:37] [INFO]   -> Found value: -85.61141
[2026-03-02 12:59:37] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.611410000000006448317435570061206817626953125
[2026-03-02 12:59:37] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:59:37] [INFO]   -> Found value: 2026-02-27 17:25:12
[2026-03-02 12:59:37] [INFO]   -> Set field 'alarm' = "2026-02-27 17:25:12"
[2026-03-02 12:59:37] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:59:37] [INFO]   -> Found value: 2026-02-27 17:26:46
[2026-03-02 12:59:37] [INFO]   -> Set field 'dispatched' = "2026-02-27 17:26:46"
[2026-03-02 12:59:37] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:59:37] [INFO]   -> Found value: 2026-02-27 17:28:00
[2026-03-02 12:59:37] [INFO]   -> Set field 'enroute' = "2026-02-27 17:28:00"
[2026-03-02 12:59:37] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:59:37] [INFO]   -> Found value: 2026-02-27 17:32:26
[2026-03-02 12:59:37] [INFO]   -> Set field 'onScene' = "2026-02-27 17:32:26"
[2026-03-02 12:59:37] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:59:37] [INFO]   -> Found value: 2026-02-27 17:52:30
[2026-03-02 12:59:37] [INFO]   -> Set field 'cleared' = "2026-02-27 17:52:30"
[2026-03-02 12:59:37] [INFO]   -> Set field 'inService' = "2026-02-27 17:52:30"
[2026-03-02 12:59:37] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:59:37] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:37] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:59:37] [INFO]   -> Found value: EN11
[2026-03-02 12:59:37] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 12:59:37] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:59:37] [INFO]   -> Found value: 2026-02-27 17:30:19
[2026-03-02 12:59:37] [INFO]   -> Set field 'timedispatch' = "2026-02-27 17:30:19"
[2026-03-02 12:59:37] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:59:37] [INFO]   -> Found value: 2026-02-27 17:30:19
[2026-03-02 12:59:37] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 17:30:19"
[2026-03-02 12:59:37] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:59:37] [INFO]   -> Found value: 2026-02-27 17:32:26
[2026-03-02 12:59:37] [INFO]   -> Set field 'timeonscene' = "2026-02-27 17:32:26"
[2026-03-02 12:59:37] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:59:37] [INFO]   -> Found value: 2026-02-27 17:52:30
[2026-03-02 12:59:37] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 17:52:30"
[2026-03-02 12:59:37] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:59:37] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:37] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:59:37] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 12:59:37] [INFO]   -> Found value: 20260022018
[2026-03-02 12:59:37] [INFO]   -> Set field 'policeReportNumber' = "20260022018"
[2026-03-02 12:59:37] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:59:37] [INFO]   -> Found value: [FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02/27/2...
[2026-03-02 12:59:37] [INFO]   -> Set field 'dispatchNotes' = "[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:59:37] [INFO]   -> Set field 'cADLog' = "[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:59:37] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:59:37] [INFO]   -> Found value: BAXTER
[2026-03-02 12:59:37] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 12:59:37] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:59:37] [INFO]   -> Found value: I 40
[2026-03-02 12:59:37] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-02 12:59:37] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:59:37] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:37] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:59:37] [INFO]   -> Found value: 281 W I 40
[2026-03-02 12:59:37] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "281 W I 40"
[2026-03-02 12:59:37] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 12:59:37] [INFO] Built locationCoordinates from lat/lng: 36.14031,-85.61141
[2026-03-02 12:59:37] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nBFD\nRESC\nPCSO","incidentInternalId":"2026000555","dispatchRunNumber":"2026000555","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":281,"incidentLocationStateName":"TN","businessName":"MM281W","nERISIncidentLatitude":36.140309999999999490682967007160186767578125,"nERISIncidentLongitude":-85.611410000000006448317435570061206817626953125,"alarm":"2026-02-27 17:25:12","dispatched":"2026-02-27 17:26:46","enroute":"2026-02-27 17:28:00","onScene":"2026-02-27 17:32:26","cleared":"2026-02-27 17:52:30","inService":"2026-02-27 17:52:30","cADVehicleID":"EN11","timedispatch":"2026-02-27 17:30:19","timeenroutetoscene":"2026-02-27 17:30:19","timeonscene":"2026-02-27 17:32:26","timeunitclear":"2026-02-27 17:52:30","policeReportNumber":"20260022018","dispatchNotes":"[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","cADLog":"[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"I 40","incidentAddressTextVersionStreet":"281 W I 40","locationCoordinates":"36.14031,-85.61141"}
[2026-03-02 12:59:37] [INFO] Number of extracted fields: 27
[2026-03-02 12:59:37] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
BFD
RESC
PCSO'
[2026-03-02 12:59:37] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
BFD
RESC
PCSO', Parsed IDs = ["PCFD","BFD","RESC","PCSO"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-02 12:59:37] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","BFD","RESC","PCSO"]
[2026-03-02 12:59:37] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:59:37] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 12:59:37] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["BFD","RESC","PCSO"]
[2026-03-02 12:59:37] [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-03-02 12:59:37] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 12:59:37] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-02 12:59:37] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 12:59:37] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 12:59:37] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-03-02 12:59:37] [INFO] Found existing Dispatch with cADNumber '2026000555', ID: 69a2283c5bf03c5c4 - will update instead of create
[2026-03-02 12:59:37] [INFO] Updated existing Dispatches record with ID: 69a2283c5bf03c5c4
[2026-03-02 12:59:37] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:59:37] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:59:41] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:59:41] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125732_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:59:41] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:59:41] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125732_2.XML
[2026-03-02 12:59:41] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125732_2.XML for user: 68f1466aed072ad4a
[2026-03-02 12:59:41] [INFO] File size: 8779 bytes
[2026-03-02 12:59:41] [INFO] Created FTPFiles record with ID: 69a589bd4d006d72c
[2026-03-02 12:59:41] [INFO] About to extract fields from XML. File size: 8779 bytes
[2026-03-02 12:59:41] [INFO] Number of mappings: 28
[2026-03-02 12:59:41] [INFO] Starting XML parsing. Content length: 8779
[2026-03-02 12:59:41] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:59:41] [INFO] Processing 28 field mappings
[2026-03-02 12:59:41] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:59:41] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:59:41] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 12:59:41] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-02 12:59:41] [INFO]   -> Found value: PCFD
BFD
RESC
PCSO
[2026-03-02 12:59:41] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nBFD\nRESC\nPCSO"
[2026-03-02 12:59:41] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:59:41] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-02 12:59:41] [INFO]   -> Found value: 2026000555
[2026-03-02 12:59:41] [INFO]   -> Set field 'incidentInternalId' = "2026000555"
[2026-03-02 12:59:41] [INFO]   -> Set field 'dispatchRunNumber' = "2026000555"
[2026-03-02 12:59:41] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:59:41] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-02 12:59:41] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-02 12:59:41] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:59:41] [INFO]   -> Found value: 281
[2026-03-02 12:59:41] [INFO]   -> Set field 'incidentLocationStreetNumber' = 281
[2026-03-02 12:59:41] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:59:41] [INFO]   -> Found value: TN
[2026-03-02 12:59:41] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:59:41] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:59:41] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:41] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:59:41] [INFO]   -> Found value: MM281W
[2026-03-02 12:59:41] [INFO]   -> Set field 'businessName' = "MM281W"
[2026-03-02 12:59:41] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:59:41] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:41] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:59:41] [INFO]   -> Found value: 36.14031
[2026-03-02 12:59:41] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.140309999999999490682967007160186767578125
[2026-03-02 12:59:41] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:59:41] [INFO]   -> Found value: -85.61141
[2026-03-02 12:59:41] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.611410000000006448317435570061206817626953125
[2026-03-02 12:59:41] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:59:41] [INFO]   -> Found value: 2026-02-27 17:25:12
[2026-03-02 12:59:41] [INFO]   -> Set field 'alarm' = "2026-02-27 17:25:12"
[2026-03-02 12:59:41] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:59:41] [INFO]   -> Found value: 2026-02-27 17:26:46
[2026-03-02 12:59:41] [INFO]   -> Set field 'dispatched' = "2026-02-27 17:26:46"
[2026-03-02 12:59:41] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:59:41] [INFO]   -> Found value: 2026-02-27 17:28:00
[2026-03-02 12:59:41] [INFO]   -> Set field 'enroute' = "2026-02-27 17:28:00"
[2026-03-02 12:59:41] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:59:41] [INFO]   -> Found value: 2026-02-27 17:32:26
[2026-03-02 12:59:41] [INFO]   -> Set field 'onScene' = "2026-02-27 17:32:26"
[2026-03-02 12:59:41] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:59:41] [INFO]   -> Found value: 2026-02-27 17:52:30
[2026-03-02 12:59:41] [INFO]   -> Set field 'cleared' = "2026-02-27 17:52:30"
[2026-03-02 12:59:41] [INFO]   -> Set field 'inService' = "2026-02-27 17:52:30"
[2026-03-02 12:59:41] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:59:41] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:41] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:59:41] [INFO]   -> Found value: EN11
[2026-03-02 12:59:41] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 12:59:41] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:59:41] [INFO]   -> Found value: 2026-02-27 17:30:19
[2026-03-02 12:59:41] [INFO]   -> Set field 'timedispatch' = "2026-02-27 17:30:19"
[2026-03-02 12:59:41] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:59:41] [INFO]   -> Found value: 2026-02-27 17:30:19
[2026-03-02 12:59:41] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 17:30:19"
[2026-03-02 12:59:41] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:59:41] [INFO]   -> Found value: 2026-02-27 17:32:26
[2026-03-02 12:59:41] [INFO]   -> Set field 'timeonscene' = "2026-02-27 17:32:26"
[2026-03-02 12:59:41] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:59:41] [INFO]   -> Found value: 2026-02-27 17:52:30
[2026-03-02 12:59:41] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 17:52:30"
[2026-03-02 12:59:41] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:59:41] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:41] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:59:41] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 12:59:41] [INFO]   -> Found value: 20260022018
[2026-03-02 12:59:41] [INFO]   -> Set field 'policeReportNumber' = "20260022018"
[2026-03-02 12:59:41] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:59:41] [INFO]   -> Found value: [FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02/27/2...
[2026-03-02 12:59:41] [INFO]   -> Set field 'dispatchNotes' = "[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:59:41] [INFO]   -> Set field 'cADLog' = "[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]"
[2026-03-02 12:59:41] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:59:41] [INFO]   -> Found value: BAXTER
[2026-03-02 12:59:41] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 12:59:41] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:59:41] [INFO]   -> Found value: I 40
[2026-03-02 12:59:41] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-02 12:59:41] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:59:41] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:41] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:59:41] [INFO]   -> Found value: 281 W I 40
[2026-03-02 12:59:41] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "281 W I 40"
[2026-03-02 12:59:41] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 12:59:41] [INFO] Built locationCoordinates from lat/lng: 36.14031,-85.61141
[2026-03-02 12:59:41] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nBFD\nRESC\nPCSO","incidentInternalId":"2026000555","dispatchRunNumber":"2026000555","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":281,"incidentLocationStateName":"TN","businessName":"MM281W","nERISIncidentLatitude":36.140309999999999490682967007160186767578125,"nERISIncidentLongitude":-85.611410000000006448317435570061206817626953125,"alarm":"2026-02-27 17:25:12","dispatched":"2026-02-27 17:26:46","enroute":"2026-02-27 17:28:00","onScene":"2026-02-27 17:32:26","cleared":"2026-02-27 17:52:30","inService":"2026-02-27 17:52:30","cADVehicleID":"EN11","timedispatch":"2026-02-27 17:30:19","timeenroutetoscene":"2026-02-27 17:30:19","timeonscene":"2026-02-27 17:32:26","timeunitclear":"2026-02-27 17:52:30","policeReportNumber":"20260022018","dispatchNotes":"[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","cADLog":"[FIRE] PCFD ON SCENE 12 MINS BEFORE BEN2 ADVISES CALL IS AT THE 280 INSIDE THE BAXTER CITY  [02\/27\/26 17:46:17 KBURTON] Event spawned for BFD Event ID:20260022029  CallRef:231  [02\/27\/26 17:45:23 KBURTON] [EMS] UDTS: {724} PATIENT LOADED  [02\/27\/26 17:43:22 JBOHANNON] [EMS] PER 7100 2  PT BOTH NON CRITICAL  [02\/27\/26 17:36:59 JDICK] [LAW] {B406} INTERSTATE SHUT DOWN JUST BEFORE 280WB  [02\/27\/26 17:36:26 DKITCHENS] [LAW] {B406} EMS 10-97  [02\/27\/26 17:32:55 BAHARRIS] [LAW] {P3354} FIRE 10-97  [02\/27\/26 17:32:42 BAHARRIS] [LAW] {B406} WB SIDE  [02\/27\/26 17:30:21 CHERNANDEZ] [LAW] {B406} ABOUT 200 YRDS BEFORE 280 OFF RAMP  [02\/27\/26 17:29:46 DKITCHENS] [EMS] TERRY LARSON\/\/WITNESS  [02\/27\/26 17:28:32 KMORGAN2] [EMS] OTHER DRIVER IS OUT OF HIS VEH  [02\/27\/26 17:28:08 KMORGAN2] [LAW] THP ADV AND ENRT  [02\/27\/26 17:27:54 DKITCHENS] [EMS] 1 PT IN 1 VEH\/\/POSS BROKEN ARM\/\/AIR BAGS DEPLOYED  [02\/27\/26 17:27:33 KMORGAN2] [EMS] NISSAAND TITAN VS VW BEETTLE  [02\/27\/26 17:26:22 KBURTON] [EMS] IN RDWAY  [02\/27\/26 17:26:17 KMORGAN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 17:25:23 DKITCHENS] Event spawned from MVC WITH INJURY.  [02\/27\/2026 17:25:12 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"I 40","incidentAddressTextVersionStreet":"281 W I 40","locationCoordinates":"36.14031,-85.61141"}
[2026-03-02 12:59:41] [INFO] Number of extracted fields: 27
[2026-03-02 12:59:41] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
BFD
RESC
PCSO'
[2026-03-02 12:59:41] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
BFD
RESC
PCSO', Parsed IDs = ["PCFD","BFD","RESC","PCSO"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-02 12:59:41] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","BFD","RESC","PCSO"]
[2026-03-02 12:59:41] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:59:41] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 12:59:41] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["BFD","RESC","PCSO"]
[2026-03-02 12:59:41] [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-03-02 12:59:41] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 12:59:41] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-02 12:59:41] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 12:59:41] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 12:59:41] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-03-02 12:59:41] [INFO] Found existing Dispatch with cADNumber '2026000555', ID: 69a2283c5bf03c5c4 - will update instead of create
[2026-03-02 12:59:42] [INFO] Updated existing Dispatches record with ID: 69a2283c5bf03c5c4
[2026-03-02 12:59:42] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:59:42] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:59:45] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:59:45] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260302_125732_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:59:45] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:59:45] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022021_20260302_125734.XML
[2026-03-02 12:59:45] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022021_20260302_125734.XML for user: 68f1466aed072ad4a
[2026-03-02 12:59:45] [INFO] File size: 5955 bytes
[2026-03-02 12:59:46] [INFO] Created FTPFiles record with ID: 69a589c200a540e65
[2026-03-02 12:59:46] [INFO] About to extract fields from XML. File size: 5955 bytes
[2026-03-02 12:59:46] [INFO] Number of mappings: 28
[2026-03-02 12:59:46] [INFO] Starting XML parsing. Content length: 5955
[2026-03-02 12:59:46] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:59:46] [INFO] Processing 28 field mappings
[2026-03-02 12:59:46] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:59:46] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:59:46] [INFO]   -> Found value: PCFD
[2026-03-02 12:59:46] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 12:59:46] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:59:46] [INFO]   -> Found value: 2026000556
[2026-03-02 12:59:46] [INFO]   -> Set field 'incidentInternalId' = "2026000556"
[2026-03-02 12:59:46] [INFO]   -> Set field 'dispatchRunNumber' = "2026000556"
[2026-03-02 12:59:46] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:59:46] [INFO]   -> Found value: FIRE ALARM
[2026-03-02 12:59:46] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-02 12:59:46] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:59:46] [INFO]   -> Found value: 7450
[2026-03-02 12:59:46] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7450
[2026-03-02 12:59:46] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:59:46] [INFO]   -> Found value: TN
[2026-03-02 12:59:46] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:59:46] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:59:46] [INFO]   -> Found value: 38506
[2026-03-02 12:59:46] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 12:59:46] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:59:46] [INFO]   -> Found value: GENERATIONS HEALTH
[2026-03-02 12:59:46] [INFO]   -> Set field 'businessName' = "GENERATIONS HEALTH"
[2026-03-02 12:59:46] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:59:46] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:46] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:59:46] [INFO]   -> Found value: 36.27395
[2026-03-02 12:59:46] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2739499999999992496668710373342037200927734375
[2026-03-02 12:59:46] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:59:46] [INFO]   -> Found value: -85.45937
[2026-03-02 12:59:46] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.459370000000006939444574527442455291748046875
[2026-03-02 12:59:46] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:59:46] [INFO]   -> Found value: 2026-02-27 17:26:32
[2026-03-02 12:59:46] [INFO]   -> Set field 'alarm' = "2026-02-27 17:26:32"
[2026-03-02 12:59:46] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:59:46] [INFO]   -> Found value: 2026-02-27 17:28:42
[2026-03-02 12:59:46] [INFO]   -> Set field 'dispatched' = "2026-02-27 17:28:42"
[2026-03-02 12:59:46] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:59:46] [INFO]   -> Found value: 2026-02-27 17:29:56
[2026-03-02 12:59:46] [INFO]   -> Set field 'enroute' = "2026-02-27 17:29:56"
[2026-03-02 12:59:46] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:59:46] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:46] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:59:46] [INFO]   -> Found value: 2026-02-27 17:30:05
[2026-03-02 12:59:46] [INFO]   -> Set field 'cleared' = "2026-02-27 17:30:05"
[2026-03-02 12:59:46] [INFO]   -> Set field 'inService' = "2026-02-27 17:30:05"
[2026-03-02 12:59:46] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:59:46] [INFO]   -> Found value: DUNCANS CHAPEL RD
[2026-03-02 12:59:46] [INFO]   -> Set field 'incidentLocationCross' = "DUNCANS CHAPEL RD"
[2026-03-02 12:59:46] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:59:46] [INFO]   -> Found value: TK11
[2026-03-02 12:59:46] [INFO]   -> Set field 'cADVehicleID' = "TK11"
[2026-03-02 12:59:46] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:59:46] [INFO]   -> Found value: 2026-02-27 17:29:56
[2026-03-02 12:59:46] [INFO]   -> Set field 'timedispatch' = "2026-02-27 17:29:56"
[2026-03-02 12:59:46] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:59:46] [INFO]   -> Found value: 2026-02-27 17:29:56
[2026-03-02 12:59:46] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 17:29:56"
[2026-03-02 12:59:46] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:59:46] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:46] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:59:46] [INFO]   -> Found value: 2026-02-27 17:30:00
[2026-03-02 12:59:46] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 17:30:00"
[2026-03-02 12:59:46] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:59:46] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:46] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:59:46] [INFO]   -> Found value: 20260022021
[2026-03-02 12:59:46] [INFO]   -> Set field 'policeReportNumber' = "20260022021"
[2026-03-02 12:59:46] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:59:46] [INFO]   -> Found value: SPOKE WITH AMANDA//CORRECT PASSWORD //FALSE ALARM  [02/27/26 17:29:40 KMORGAN2] FIRE SMOKE 011 014 0...
[2026-03-02 12:59:46] [INFO]   -> Set field 'dispatchNotes' = "SPOKE WITH AMANDA\/\/CORRECT PASSWORD \/\/FALSE ALARM  [02\/27\/26 17:29:40 KMORGAN2] FIRE SMOKE 011 014 009  3 SIGNIALS  [02\/27\/26 17:27:02 KBURTON]]"
[2026-03-02 12:59:46] [INFO]   -> Set field 'cADLog' = "SPOKE WITH AMANDA\/\/CORRECT PASSWORD \/\/FALSE ALARM  [02\/27\/26 17:29:40 KMORGAN2] FIRE SMOKE 011 014 009  3 SIGNIALS  [02\/27\/26 17:27:02 KBURTON]]"
[2026-03-02 12:59:46] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:59:46] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 12:59:46] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 12:59:46] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:59:46] [INFO]   -> Found value: HILHAM
[2026-03-02 12:59:46] [INFO]   -> Set field 'streetName' = "HILHAM"
[2026-03-02 12:59:46] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:59:46] [INFO]   -> Found value: RD
[2026-03-02 12:59:46] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 12:59:46] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:59:46] [INFO]   -> Found value: 7450 HILHAM RD
[2026-03-02 12:59:46] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7450 HILHAM RD"
[2026-03-02 12:59:46] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 12:59:46] [INFO] Concatenating street name and type
[2026-03-02 12:59:46] [INFO]   -> Combined street name: HILHAM RD
[2026-03-02 12:59:46] [INFO] Built locationCoordinates from lat/lng: 36.27395,-85.45937
[2026-03-02 12:59:46] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000556","dispatchRunNumber":"2026000556","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":7450,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"GENERATIONS HEALTH","nERISIncidentLatitude":36.2739499999999992496668710373342037200927734375,"nERISIncidentLongitude":-85.459370000000006939444574527442455291748046875,"alarm":"2026-02-27 17:26:32","dispatched":"2026-02-27 17:28:42","enroute":"2026-02-27 17:29:56","cleared":"2026-02-27 17:30:05","inService":"2026-02-27 17:30:05","incidentLocationCross":"DUNCANS CHAPEL RD","cADVehicleID":"TK11","timedispatch":"2026-02-27 17:29:56","timeenroutetoscene":"2026-02-27 17:29:56","timeunitclear":"2026-02-27 17:30:00","policeReportNumber":"20260022021","dispatchNotes":"SPOKE WITH AMANDA\/\/CORRECT PASSWORD \/\/FALSE ALARM  [02\/27\/26 17:29:40 KMORGAN2] FIRE SMOKE 011 014 009  3 SIGNIALS  [02\/27\/26 17:27:02 KBURTON]]","cADLog":"SPOKE WITH AMANDA\/\/CORRECT PASSWORD \/\/FALSE ALARM  [02\/27\/26 17:29:40 KMORGAN2] FIRE SMOKE 011 014 009  3 SIGNIALS  [02\/27\/26 17:27:02 KBURTON]]","incidentLocationCity":"COOKEVILLE","streetName":"HILHAM RD","incidentAddressTextVersionStreet":"7450 HILHAM RD","locationCoordinates":"36.27395,-85.45937"}
[2026-03-02 12:59:46] [INFO] Number of extracted fields: 27
[2026-03-02 12:59:46] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 12:59:46] [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-03-02 12:59:46] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 12:59:46] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:59:46] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 12:59:46] [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-03-02 12:59:46] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 12:59:46] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 12:59:46] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-02 12:59:46] [INFO] Found existing Dispatch with cADNumber '2026000556', ID: 69a228b48e6b54b2f - will update instead of create
[2026-03-02 12:59:46] [INFO] Updated existing Dispatches record with ID: 69a228b48e6b54b2f
[2026-03-02 12:59:46] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:59:46] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:59:50] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:59:50] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022021_20260302_125734.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:59:50] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:59:50] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022021_20260302_125734_1.XML
[2026-03-02 12:59:50] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022021_20260302_125734_1.XML for user: 68f1466aed072ad4a
[2026-03-02 12:59:50] [INFO] File size: 5955 bytes
[2026-03-02 12:59:50] [INFO] Created FTPFiles record with ID: 69a589c68817351b5
[2026-03-02 12:59:50] [INFO] About to extract fields from XML. File size: 5955 bytes
[2026-03-02 12:59:50] [INFO] Number of mappings: 28
[2026-03-02 12:59:50] [INFO] Starting XML parsing. Content length: 5955
[2026-03-02 12:59:50] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:59:50] [INFO] Processing 28 field mappings
[2026-03-02 12:59:50] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:59:50] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:59:50] [INFO]   -> Found value: PCFD
[2026-03-02 12:59:50] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 12:59:50] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:59:50] [INFO]   -> Found value: 2026000556
[2026-03-02 12:59:50] [INFO]   -> Set field 'incidentInternalId' = "2026000556"
[2026-03-02 12:59:50] [INFO]   -> Set field 'dispatchRunNumber' = "2026000556"
[2026-03-02 12:59:50] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:59:50] [INFO]   -> Found value: FIRE ALARM
[2026-03-02 12:59:50] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-02 12:59:50] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:59:50] [INFO]   -> Found value: 7450
[2026-03-02 12:59:50] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7450
[2026-03-02 12:59:50] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:59:50] [INFO]   -> Found value: TN
[2026-03-02 12:59:50] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:59:50] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:59:50] [INFO]   -> Found value: 38506
[2026-03-02 12:59:50] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 12:59:50] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:59:50] [INFO]   -> Found value: GENERATIONS HEALTH
[2026-03-02 12:59:50] [INFO]   -> Set field 'businessName' = "GENERATIONS HEALTH"
[2026-03-02 12:59:50] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:59:50] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:50] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:59:50] [INFO]   -> Found value: 36.27395
[2026-03-02 12:59:50] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2739499999999992496668710373342037200927734375
[2026-03-02 12:59:50] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:59:50] [INFO]   -> Found value: -85.45937
[2026-03-02 12:59:50] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.459370000000006939444574527442455291748046875
[2026-03-02 12:59:50] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:59:50] [INFO]   -> Found value: 2026-02-27 17:26:32
[2026-03-02 12:59:50] [INFO]   -> Set field 'alarm' = "2026-02-27 17:26:32"
[2026-03-02 12:59:50] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:59:50] [INFO]   -> Found value: 2026-02-27 17:28:42
[2026-03-02 12:59:50] [INFO]   -> Set field 'dispatched' = "2026-02-27 17:28:42"
[2026-03-02 12:59:50] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:59:50] [INFO]   -> Found value: 2026-02-27 17:29:56
[2026-03-02 12:59:50] [INFO]   -> Set field 'enroute' = "2026-02-27 17:29:56"
[2026-03-02 12:59:50] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:59:50] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:50] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:59:50] [INFO]   -> Found value: 2026-02-27 17:30:05
[2026-03-02 12:59:50] [INFO]   -> Set field 'cleared' = "2026-02-27 17:30:05"
[2026-03-02 12:59:50] [INFO]   -> Set field 'inService' = "2026-02-27 17:30:05"
[2026-03-02 12:59:50] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:59:50] [INFO]   -> Found value: DUNCANS CHAPEL RD
[2026-03-02 12:59:50] [INFO]   -> Set field 'incidentLocationCross' = "DUNCANS CHAPEL RD"
[2026-03-02 12:59:50] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:59:50] [INFO]   -> Found value: TK11
[2026-03-02 12:59:50] [INFO]   -> Set field 'cADVehicleID' = "TK11"
[2026-03-02 12:59:50] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:59:50] [INFO]   -> Found value: 2026-02-27 17:29:56
[2026-03-02 12:59:50] [INFO]   -> Set field 'timedispatch' = "2026-02-27 17:29:56"
[2026-03-02 12:59:50] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:59:50] [INFO]   -> Found value: 2026-02-27 17:29:56
[2026-03-02 12:59:50] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 17:29:56"
[2026-03-02 12:59:50] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:59:50] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:50] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:59:50] [INFO]   -> Found value: 2026-02-27 17:30:00
[2026-03-02 12:59:50] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 17:30:00"
[2026-03-02 12:59:50] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:59:50] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:50] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:59:50] [INFO]   -> Found value: 20260022021
[2026-03-02 12:59:50] [INFO]   -> Set field 'policeReportNumber' = "20260022021"
[2026-03-02 12:59:50] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:59:50] [INFO]   -> Found value: SPOKE WITH AMANDA//CORRECT PASSWORD //FALSE ALARM  [02/27/26 17:29:40 KMORGAN2] FIRE SMOKE 011 014 0...
[2026-03-02 12:59:50] [INFO]   -> Set field 'dispatchNotes' = "SPOKE WITH AMANDA\/\/CORRECT PASSWORD \/\/FALSE ALARM  [02\/27\/26 17:29:40 KMORGAN2] FIRE SMOKE 011 014 009  3 SIGNIALS  [02\/27\/26 17:27:02 KBURTON]]"
[2026-03-02 12:59:50] [INFO]   -> Set field 'cADLog' = "SPOKE WITH AMANDA\/\/CORRECT PASSWORD \/\/FALSE ALARM  [02\/27\/26 17:29:40 KMORGAN2] FIRE SMOKE 011 014 009  3 SIGNIALS  [02\/27\/26 17:27:02 KBURTON]]"
[2026-03-02 12:59:50] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:59:50] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 12:59:50] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 12:59:50] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:59:50] [INFO]   -> Found value: HILHAM
[2026-03-02 12:59:50] [INFO]   -> Set field 'streetName' = "HILHAM"
[2026-03-02 12:59:50] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:59:50] [INFO]   -> Found value: RD
[2026-03-02 12:59:50] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 12:59:50] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:59:50] [INFO]   -> Found value: 7450 HILHAM RD
[2026-03-02 12:59:50] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7450 HILHAM RD"
[2026-03-02 12:59:50] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 12:59:50] [INFO] Concatenating street name and type
[2026-03-02 12:59:50] [INFO]   -> Combined street name: HILHAM RD
[2026-03-02 12:59:50] [INFO] Built locationCoordinates from lat/lng: 36.27395,-85.45937
[2026-03-02 12:59:50] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000556","dispatchRunNumber":"2026000556","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":7450,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"GENERATIONS HEALTH","nERISIncidentLatitude":36.2739499999999992496668710373342037200927734375,"nERISIncidentLongitude":-85.459370000000006939444574527442455291748046875,"alarm":"2026-02-27 17:26:32","dispatched":"2026-02-27 17:28:42","enroute":"2026-02-27 17:29:56","cleared":"2026-02-27 17:30:05","inService":"2026-02-27 17:30:05","incidentLocationCross":"DUNCANS CHAPEL RD","cADVehicleID":"TK11","timedispatch":"2026-02-27 17:29:56","timeenroutetoscene":"2026-02-27 17:29:56","timeunitclear":"2026-02-27 17:30:00","policeReportNumber":"20260022021","dispatchNotes":"SPOKE WITH AMANDA\/\/CORRECT PASSWORD \/\/FALSE ALARM  [02\/27\/26 17:29:40 KMORGAN2] FIRE SMOKE 011 014 009  3 SIGNIALS  [02\/27\/26 17:27:02 KBURTON]]","cADLog":"SPOKE WITH AMANDA\/\/CORRECT PASSWORD \/\/FALSE ALARM  [02\/27\/26 17:29:40 KMORGAN2] FIRE SMOKE 011 014 009  3 SIGNIALS  [02\/27\/26 17:27:02 KBURTON]]","incidentLocationCity":"COOKEVILLE","streetName":"HILHAM RD","incidentAddressTextVersionStreet":"7450 HILHAM RD","locationCoordinates":"36.27395,-85.45937"}
[2026-03-02 12:59:50] [INFO] Number of extracted fields: 27
[2026-03-02 12:59:50] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 12:59:50] [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-03-02 12:59:50] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 12:59:50] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:59:50] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 12:59:50] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-02 12:59:50] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 12:59:50] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 12:59:50] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-02 12:59:51] [INFO] Found existing Dispatch with cADNumber '2026000556', ID: 69a228b48e6b54b2f - will update instead of create
[2026-03-02 12:59:51] [INFO] Updated existing Dispatches record with ID: 69a228b48e6b54b2f
[2026-03-02 12:59:51] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 12:59:51] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 12:59:54] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 12:59:54] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022021_20260302_125734_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 12:59:54] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 12:59:54] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125735.XML
[2026-03-02 12:59:54] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125735.XML for user: 68f1466aed072ad4a
[2026-03-02 12:59:54] [INFO] File size: 5996 bytes
[2026-03-02 12:59:55] [INFO] Created FTPFiles record with ID: 69a589caf40440f78
[2026-03-02 12:59:55] [INFO] About to extract fields from XML. File size: 5996 bytes
[2026-03-02 12:59:55] [INFO] Number of mappings: 28
[2026-03-02 12:59:55] [INFO] Starting XML parsing. Content length: 5996
[2026-03-02 12:59:55] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 12:59:55] [INFO] Processing 28 field mappings
[2026-03-02 12:59:55] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 12:59:55] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 12:59:55] [INFO]   -> Found value: PCFD
[2026-03-02 12:59:55] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 12:59:55] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 12:59:55] [INFO]   -> Found value: 2026000558
[2026-03-02 12:59:55] [INFO]   -> Set field 'incidentInternalId' = "2026000558"
[2026-03-02 12:59:55] [INFO]   -> Set field 'dispatchRunNumber' = "2026000558"
[2026-03-02 12:59:55] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 12:59:55] [INFO]   -> Found value: FIRE ALARM
[2026-03-02 12:59:55] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-02 12:59:55] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 12:59:55] [INFO]   -> Found value: 4729
[2026-03-02 12:59:55] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4729
[2026-03-02 12:59:55] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 12:59:55] [INFO]   -> Found value: TN
[2026-03-02 12:59:55] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 12:59:55] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 12:59:55] [INFO]   -> Found value: 38501
[2026-03-02 12:59:55] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-02 12:59:55] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 12:59:55] [INFO]   -> Found value: MUSTARD SEED RANCH
[2026-03-02 12:59:55] [INFO]   -> Set field 'businessName' = "MUSTARD SEED RANCH"
[2026-03-02 12:59:55] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 12:59:55] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:55] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 12:59:55] [INFO]   -> Found value: 36.23223
[2026-03-02 12:59:55] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2322300000000012687451089732348918914794921875
[2026-03-02 12:59:55] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 12:59:55] [INFO]   -> Found value: -85.52078
[2026-03-02 12:59:55] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.52078000000000201907823793590068817138671875
[2026-03-02 12:59:55] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 12:59:55] [INFO]   -> Found value: 2026-02-27 18:47:25
[2026-03-02 12:59:55] [INFO]   -> Set field 'alarm' = "2026-02-27 18:47:25"
[2026-03-02 12:59:55] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 12:59:55] [INFO]   -> Found value: 2026-02-27 18:49:07
[2026-03-02 12:59:55] [INFO]   -> Set field 'dispatched' = "2026-02-27 18:49:07"
[2026-03-02 12:59:55] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 12:59:55] [INFO]   -> Found value: 2026-02-27 18:49:51
[2026-03-02 12:59:55] [INFO]   -> Set field 'enroute' = "2026-02-27 18:49:51"
[2026-03-02 12:59:55] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 12:59:55] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:55] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 12:59:55] [INFO]   -> Found value: 2026-02-27 18:50:44
[2026-03-02 12:59:55] [INFO]   -> Set field 'cleared' = "2026-02-27 18:50:44"
[2026-03-02 12:59:55] [INFO]   -> Set field 'inService' = "2026-02-27 18:50:44"
[2026-03-02 12:59:55] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 12:59:55] [INFO]   -> Found value: N PINE HILL RD/HILL RD
[2026-03-02 12:59:55] [INFO]   -> Set field 'incidentLocationCross' = "N PINE HILL RD\/HILL RD"
[2026-03-02 12:59:55] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 12:59:55] [INFO]   -> Found value: EN11
[2026-03-02 12:59:55] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 12:59:55] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 12:59:55] [INFO]   -> Found value: 2026-02-27 18:49:07
[2026-03-02 12:59:55] [INFO]   -> Set field 'timedispatch' = "2026-02-27 18:49:07"
[2026-03-02 12:59:55] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 12:59:55] [INFO]   -> Found value: 2026-02-27 18:49:51
[2026-03-02 12:59:55] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 18:49:51"
[2026-03-02 12:59:55] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 12:59:55] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:55] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 12:59:55] [INFO]   -> Found value: 2026-02-27 18:50:44
[2026-03-02 12:59:55] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 18:50:44"
[2026-03-02 12:59:55] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 12:59:55] [INFO]   -> No value found (null or empty)
[2026-03-02 12:59:55] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 12:59:55] [INFO]   -> Found value: 20260022070
[2026-03-02 12:59:55] [INFO]   -> Set field 'policeReportNumber' = "20260022070"
[2026-03-02 12:59:55] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 12:59:55] [INFO]   -> Found value: FALSE ALARM  [02/27/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02/27/26 ...
[2026-03-02 12:59:55] [INFO]   -> Set field 'dispatchNotes' = "FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]"
[2026-03-02 12:59:55] [INFO]   -> Set field 'cADLog' = "FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]"
[2026-03-02 12:59:55] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 12:59:55] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 12:59:55] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 12:59:55] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 12:59:55] [INFO]   -> Found value: KUYKENDALL
[2026-03-02 12:59:55] [INFO]   -> Set field 'streetName' = "KUYKENDALL"
[2026-03-02 12:59:55] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 12:59:55] [INFO]   -> Found value: RD
[2026-03-02 12:59:55] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 12:59:55] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 12:59:55] [INFO]   -> Found value: 4729 KUYKENDALL RD
[2026-03-02 12:59:55] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4729 KUYKENDALL RD"
[2026-03-02 12:59:55] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 12:59:55] [INFO] Concatenating street name and type
[2026-03-02 12:59:55] [INFO]   -> Combined street name: KUYKENDALL RD
[2026-03-02 12:59:55] [INFO] Built locationCoordinates from lat/lng: 36.23223,-85.52078
[2026-03-02 12:59:55] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000558","dispatchRunNumber":"2026000558","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":4729,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"MUSTARD SEED RANCH","nERISIncidentLatitude":36.2322300000000012687451089732348918914794921875,"nERISIncidentLongitude":-85.52078000000000201907823793590068817138671875,"alarm":"2026-02-27 18:47:25","dispatched":"2026-02-27 18:49:07","enroute":"2026-02-27 18:49:51","cleared":"2026-02-27 18:50:44","inService":"2026-02-27 18:50:44","incidentLocationCross":"N PINE HILL RD\/HILL RD","cADVehicleID":"EN11","timedispatch":"2026-02-27 18:49:07","timeenroutetoscene":"2026-02-27 18:49:51","timeunitclear":"2026-02-27 18:50:44","policeReportNumber":"20260022070","dispatchNotes":"FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]","cADLog":"FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"KUYKENDALL RD","incidentAddressTextVersionStreet":"4729 KUYKENDALL RD","locationCoordinates":"36.23223,-85.52078"}
[2026-03-02 12:59:55] [INFO] Number of extracted fields: 27
[2026-03-02 12:59:55] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 12:59:55] [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-03-02 12:59:55] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 12:59:55] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 12:59:55] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 12:59: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-03-02 12:59:55] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 12:59:55] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 12:59:55] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-02 13:00:04] [INFO] Created new Dispatches record with ID: 69a589cbbbf5d17e5
[2026-03-02 13:00:04] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:00:04] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:00:08] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:00:08] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125735.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:00:08] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:00:08] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125735_1.XML
[2026-03-02 13:00:08] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125735_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:00:08] [INFO] File size: 5996 bytes
[2026-03-02 13:00:08] [INFO] Created FTPFiles record with ID: 69a589d8c10ab43d6
[2026-03-02 13:00:08] [INFO] About to extract fields from XML. File size: 5996 bytes
[2026-03-02 13:00:08] [INFO] Number of mappings: 28
[2026-03-02 13:00:08] [INFO] Starting XML parsing. Content length: 5996
[2026-03-02 13:00:08] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:00:08] [INFO] Processing 28 field mappings
[2026-03-02 13:00:08] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:00:08] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:00:08] [INFO]   -> Found value: PCFD
[2026-03-02 13:00:08] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:00:08] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:00:08] [INFO]   -> Found value: 2026000558
[2026-03-02 13:00:08] [INFO]   -> Set field 'incidentInternalId' = "2026000558"
[2026-03-02 13:00:08] [INFO]   -> Set field 'dispatchRunNumber' = "2026000558"
[2026-03-02 13:00:08] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:00:08] [INFO]   -> Found value: FIRE ALARM
[2026-03-02 13:00:08] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-02 13:00:08] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:00:08] [INFO]   -> Found value: 4729
[2026-03-02 13:00:08] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4729
[2026-03-02 13:00:08] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:00:08] [INFO]   -> Found value: TN
[2026-03-02 13:00:08] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:00:08] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:00:08] [INFO]   -> Found value: 38501
[2026-03-02 13:00:08] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-02 13:00:08] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:00:08] [INFO]   -> Found value: MUSTARD SEED RANCH
[2026-03-02 13:00:08] [INFO]   -> Set field 'businessName' = "MUSTARD SEED RANCH"
[2026-03-02 13:00:08] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:00:08] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:08] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:00:08] [INFO]   -> Found value: 36.23223
[2026-03-02 13:00:08] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2322300000000012687451089732348918914794921875
[2026-03-02 13:00:08] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:00:08] [INFO]   -> Found value: -85.52078
[2026-03-02 13:00:08] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.52078000000000201907823793590068817138671875
[2026-03-02 13:00:08] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:00:08] [INFO]   -> Found value: 2026-02-27 18:47:25
[2026-03-02 13:00:08] [INFO]   -> Set field 'alarm' = "2026-02-27 18:47:25"
[2026-03-02 13:00:08] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:00:08] [INFO]   -> Found value: 2026-02-27 18:49:07
[2026-03-02 13:00:08] [INFO]   -> Set field 'dispatched' = "2026-02-27 18:49:07"
[2026-03-02 13:00:08] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:00:08] [INFO]   -> Found value: 2026-02-27 18:49:51
[2026-03-02 13:00:08] [INFO]   -> Set field 'enroute' = "2026-02-27 18:49:51"
[2026-03-02 13:00:08] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:00:08] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:08] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:00:08] [INFO]   -> Found value: 2026-02-27 18:50:44
[2026-03-02 13:00:08] [INFO]   -> Set field 'cleared' = "2026-02-27 18:50:44"
[2026-03-02 13:00:08] [INFO]   -> Set field 'inService' = "2026-02-27 18:50:44"
[2026-03-02 13:00:08] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:00:08] [INFO]   -> Found value: N PINE HILL RD/HILL RD
[2026-03-02 13:00:08] [INFO]   -> Set field 'incidentLocationCross' = "N PINE HILL RD\/HILL RD"
[2026-03-02 13:00:08] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:00:08] [INFO]   -> Found value: EN11
[2026-03-02 13:00:08] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 13:00:08] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:00:08] [INFO]   -> Found value: 2026-02-27 18:49:07
[2026-03-02 13:00:08] [INFO]   -> Set field 'timedispatch' = "2026-02-27 18:49:07"
[2026-03-02 13:00:08] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:00:08] [INFO]   -> Found value: 2026-02-27 18:49:51
[2026-03-02 13:00:08] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 18:49:51"
[2026-03-02 13:00:08] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:00:08] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:08] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:00:08] [INFO]   -> Found value: 2026-02-27 18:50:44
[2026-03-02 13:00:08] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 18:50:44"
[2026-03-02 13:00:08] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:00:08] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:08] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:00:08] [INFO]   -> Found value: 20260022070
[2026-03-02 13:00:08] [INFO]   -> Set field 'policeReportNumber' = "20260022070"
[2026-03-02 13:00:08] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:00:08] [INFO]   -> Found value: FALSE ALARM  [02/27/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02/27/26 ...
[2026-03-02 13:00:08] [INFO]   -> Set field 'dispatchNotes' = "FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]"
[2026-03-02 13:00:08] [INFO]   -> Set field 'cADLog' = "FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]"
[2026-03-02 13:00:08] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:00:08] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:00:08] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:00:08] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:00:08] [INFO]   -> Found value: KUYKENDALL
[2026-03-02 13:00:08] [INFO]   -> Set field 'streetName' = "KUYKENDALL"
[2026-03-02 13:00:08] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:00:08] [INFO]   -> Found value: RD
[2026-03-02 13:00:08] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:00:08] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:00:08] [INFO]   -> Found value: 4729 KUYKENDALL RD
[2026-03-02 13:00:08] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4729 KUYKENDALL RD"
[2026-03-02 13:00:08] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:00:08] [INFO] Concatenating street name and type
[2026-03-02 13:00:08] [INFO]   -> Combined street name: KUYKENDALL RD
[2026-03-02 13:00:08] [INFO] Built locationCoordinates from lat/lng: 36.23223,-85.52078
[2026-03-02 13:00:08] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000558","dispatchRunNumber":"2026000558","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":4729,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"MUSTARD SEED RANCH","nERISIncidentLatitude":36.2322300000000012687451089732348918914794921875,"nERISIncidentLongitude":-85.52078000000000201907823793590068817138671875,"alarm":"2026-02-27 18:47:25","dispatched":"2026-02-27 18:49:07","enroute":"2026-02-27 18:49:51","cleared":"2026-02-27 18:50:44","inService":"2026-02-27 18:50:44","incidentLocationCross":"N PINE HILL RD\/HILL RD","cADVehicleID":"EN11","timedispatch":"2026-02-27 18:49:07","timeenroutetoscene":"2026-02-27 18:49:51","timeunitclear":"2026-02-27 18:50:44","policeReportNumber":"20260022070","dispatchNotes":"FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]","cADLog":"FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"KUYKENDALL RD","incidentAddressTextVersionStreet":"4729 KUYKENDALL RD","locationCoordinates":"36.23223,-85.52078"}
[2026-03-02 13:00:08] [INFO] Number of extracted fields: 27
[2026-03-02 13:00:08] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:00:08] [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-03-02 13:00:08] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:00:08] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:00:09] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:00:09] [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-03-02 13:00:09] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:00:09] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:00:09] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-02 13:00:10] [INFO] Found existing Dispatch with cADNumber '2026000558', ID: 69a589cbbbf5d17e5 - will update instead of create
[2026-03-02 13:00:10] [INFO] Updated existing Dispatches record with ID: 69a589cbbbf5d17e5
[2026-03-02 13:00:10] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:00:10] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:00:13] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:00:13] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125735_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:00:13] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:00:13] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125737.XML
[2026-03-02 13:00:13] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125737.XML for user: 68f1466aed072ad4a
[2026-03-02 13:00:13] [INFO] File size: 5996 bytes
[2026-03-02 13:00:13] [INFO] Created FTPFiles record with ID: 69a589dde588a269d
[2026-03-02 13:00:13] [INFO] About to extract fields from XML. File size: 5996 bytes
[2026-03-02 13:00:13] [INFO] Number of mappings: 28
[2026-03-02 13:00:13] [INFO] Starting XML parsing. Content length: 5996
[2026-03-02 13:00:13] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:00:13] [INFO] Processing 28 field mappings
[2026-03-02 13:00:13] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:00:13] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:00:13] [INFO]   -> Found value: PCFD
[2026-03-02 13:00:13] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:00:13] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:00:13] [INFO]   -> Found value: 2026000558
[2026-03-02 13:00:13] [INFO]   -> Set field 'incidentInternalId' = "2026000558"
[2026-03-02 13:00:13] [INFO]   -> Set field 'dispatchRunNumber' = "2026000558"
[2026-03-02 13:00:13] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:00:13] [INFO]   -> Found value: FIRE ALARM
[2026-03-02 13:00:13] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-02 13:00:13] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:00:13] [INFO]   -> Found value: 4729
[2026-03-02 13:00:13] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4729
[2026-03-02 13:00:13] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:00:13] [INFO]   -> Found value: TN
[2026-03-02 13:00:13] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:00:13] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:00:13] [INFO]   -> Found value: 38501
[2026-03-02 13:00:13] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-02 13:00:13] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:00:13] [INFO]   -> Found value: MUSTARD SEED RANCH
[2026-03-02 13:00:13] [INFO]   -> Set field 'businessName' = "MUSTARD SEED RANCH"
[2026-03-02 13:00:13] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:00:13] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:13] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:00:13] [INFO]   -> Found value: 36.23223
[2026-03-02 13:00:13] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2322300000000012687451089732348918914794921875
[2026-03-02 13:00:13] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:00:13] [INFO]   -> Found value: -85.52078
[2026-03-02 13:00:13] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.52078000000000201907823793590068817138671875
[2026-03-02 13:00:13] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:00:13] [INFO]   -> Found value: 2026-02-27 18:47:25
[2026-03-02 13:00:13] [INFO]   -> Set field 'alarm' = "2026-02-27 18:47:25"
[2026-03-02 13:00:13] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:00:13] [INFO]   -> Found value: 2026-02-27 18:49:07
[2026-03-02 13:00:13] [INFO]   -> Set field 'dispatched' = "2026-02-27 18:49:07"
[2026-03-02 13:00:13] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:00:13] [INFO]   -> Found value: 2026-02-27 18:49:51
[2026-03-02 13:00:13] [INFO]   -> Set field 'enroute' = "2026-02-27 18:49:51"
[2026-03-02 13:00:13] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:00:13] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:13] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:00:13] [INFO]   -> Found value: 2026-02-27 18:50:44
[2026-03-02 13:00:13] [INFO]   -> Set field 'cleared' = "2026-02-27 18:50:44"
[2026-03-02 13:00:13] [INFO]   -> Set field 'inService' = "2026-02-27 18:50:44"
[2026-03-02 13:00:13] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:00:13] [INFO]   -> Found value: N PINE HILL RD/HILL RD
[2026-03-02 13:00:13] [INFO]   -> Set field 'incidentLocationCross' = "N PINE HILL RD\/HILL RD"
[2026-03-02 13:00:13] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:00:13] [INFO]   -> Found value: EN11
[2026-03-02 13:00:13] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 13:00:13] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:00:13] [INFO]   -> Found value: 2026-02-27 18:49:07
[2026-03-02 13:00:13] [INFO]   -> Set field 'timedispatch' = "2026-02-27 18:49:07"
[2026-03-02 13:00:13] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:00:13] [INFO]   -> Found value: 2026-02-27 18:49:51
[2026-03-02 13:00:13] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 18:49:51"
[2026-03-02 13:00:13] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:00:13] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:13] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:00:13] [INFO]   -> Found value: 2026-02-27 18:50:44
[2026-03-02 13:00:13] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 18:50:44"
[2026-03-02 13:00:13] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:00:13] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:13] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:00:13] [INFO]   -> Found value: 20260022070
[2026-03-02 13:00:13] [INFO]   -> Set field 'policeReportNumber' = "20260022070"
[2026-03-02 13:00:13] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:00:13] [INFO]   -> Found value: FALSE ALARM  [02/27/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02/27/26 ...
[2026-03-02 13:00:13] [INFO]   -> Set field 'dispatchNotes' = "FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]"
[2026-03-02 13:00:13] [INFO]   -> Set field 'cADLog' = "FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]"
[2026-03-02 13:00:13] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:00:13] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:00:13] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:00:13] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:00:13] [INFO]   -> Found value: KUYKENDALL
[2026-03-02 13:00:13] [INFO]   -> Set field 'streetName' = "KUYKENDALL"
[2026-03-02 13:00:13] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:00:13] [INFO]   -> Found value: RD
[2026-03-02 13:00:13] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:00:13] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:00:13] [INFO]   -> Found value: 4729 KUYKENDALL RD
[2026-03-02 13:00:13] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4729 KUYKENDALL RD"
[2026-03-02 13:00:13] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:00:13] [INFO] Concatenating street name and type
[2026-03-02 13:00:13] [INFO]   -> Combined street name: KUYKENDALL RD
[2026-03-02 13:00:13] [INFO] Built locationCoordinates from lat/lng: 36.23223,-85.52078
[2026-03-02 13:00:13] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000558","dispatchRunNumber":"2026000558","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":4729,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"MUSTARD SEED RANCH","nERISIncidentLatitude":36.2322300000000012687451089732348918914794921875,"nERISIncidentLongitude":-85.52078000000000201907823793590068817138671875,"alarm":"2026-02-27 18:47:25","dispatched":"2026-02-27 18:49:07","enroute":"2026-02-27 18:49:51","cleared":"2026-02-27 18:50:44","inService":"2026-02-27 18:50:44","incidentLocationCross":"N PINE HILL RD\/HILL RD","cADVehicleID":"EN11","timedispatch":"2026-02-27 18:49:07","timeenroutetoscene":"2026-02-27 18:49:51","timeunitclear":"2026-02-27 18:50:44","policeReportNumber":"20260022070","dispatchNotes":"FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]","cADLog":"FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"KUYKENDALL RD","incidentAddressTextVersionStreet":"4729 KUYKENDALL RD","locationCoordinates":"36.23223,-85.52078"}
[2026-03-02 13:00:13] [INFO] Number of extracted fields: 27
[2026-03-02 13:00:13] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:00:13] [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-03-02 13:00:13] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:00:13] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:00:14] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:00: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-03-02 13:00:14] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:00:14] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:00:14] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-02 13:00:14] [INFO] Found existing Dispatch with cADNumber '2026000558', ID: 69a589cbbbf5d17e5 - will update instead of create
[2026-03-02 13:00:14] [INFO] Updated existing Dispatches record with ID: 69a589cbbbf5d17e5
[2026-03-02 13:00:14] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:00:14] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:00:18] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:00:18] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125737.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:00:18] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:00:18] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125737_1.XML
[2026-03-02 13:00:18] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125737_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:00:18] [INFO] File size: 5996 bytes
[2026-03-02 13:00:18] [INFO] Created FTPFiles record with ID: 69a589e2db57358f3
[2026-03-02 13:00:18] [INFO] About to extract fields from XML. File size: 5996 bytes
[2026-03-02 13:00:18] [INFO] Number of mappings: 28
[2026-03-02 13:00:18] [INFO] Starting XML parsing. Content length: 5996
[2026-03-02 13:00:18] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:00:18] [INFO] Processing 28 field mappings
[2026-03-02 13:00:18] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:00:18] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:00:18] [INFO]   -> Found value: PCFD
[2026-03-02 13:00:18] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:00:18] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:00:18] [INFO]   -> Found value: 2026000558
[2026-03-02 13:00:18] [INFO]   -> Set field 'incidentInternalId' = "2026000558"
[2026-03-02 13:00:18] [INFO]   -> Set field 'dispatchRunNumber' = "2026000558"
[2026-03-02 13:00:18] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:00:18] [INFO]   -> Found value: FIRE ALARM
[2026-03-02 13:00:18] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-02 13:00:18] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:00:18] [INFO]   -> Found value: 4729
[2026-03-02 13:00:18] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4729
[2026-03-02 13:00:18] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:00:18] [INFO]   -> Found value: TN
[2026-03-02 13:00:18] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:00:18] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:00:18] [INFO]   -> Found value: 38501
[2026-03-02 13:00:18] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-02 13:00:18] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:00:18] [INFO]   -> Found value: MUSTARD SEED RANCH
[2026-03-02 13:00:18] [INFO]   -> Set field 'businessName' = "MUSTARD SEED RANCH"
[2026-03-02 13:00:18] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:00:18] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:18] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:00:18] [INFO]   -> Found value: 36.23223
[2026-03-02 13:00:18] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2322300000000012687451089732348918914794921875
[2026-03-02 13:00:18] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:00:18] [INFO]   -> Found value: -85.52078
[2026-03-02 13:00:18] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.52078000000000201907823793590068817138671875
[2026-03-02 13:00:18] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:00:18] [INFO]   -> Found value: 2026-02-27 18:47:25
[2026-03-02 13:00:18] [INFO]   -> Set field 'alarm' = "2026-02-27 18:47:25"
[2026-03-02 13:00:18] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:00:18] [INFO]   -> Found value: 2026-02-27 18:49:07
[2026-03-02 13:00:18] [INFO]   -> Set field 'dispatched' = "2026-02-27 18:49:07"
[2026-03-02 13:00:18] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:00:18] [INFO]   -> Found value: 2026-02-27 18:49:51
[2026-03-02 13:00:18] [INFO]   -> Set field 'enroute' = "2026-02-27 18:49:51"
[2026-03-02 13:00:18] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:00:18] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:18] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:00:18] [INFO]   -> Found value: 2026-02-27 18:50:44
[2026-03-02 13:00:18] [INFO]   -> Set field 'cleared' = "2026-02-27 18:50:44"
[2026-03-02 13:00:18] [INFO]   -> Set field 'inService' = "2026-02-27 18:50:44"
[2026-03-02 13:00:18] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:00:18] [INFO]   -> Found value: N PINE HILL RD/HILL RD
[2026-03-02 13:00:18] [INFO]   -> Set field 'incidentLocationCross' = "N PINE HILL RD\/HILL RD"
[2026-03-02 13:00:18] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:00:18] [INFO]   -> Found value: EN11
[2026-03-02 13:00:18] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 13:00:18] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:00:18] [INFO]   -> Found value: 2026-02-27 18:49:07
[2026-03-02 13:00:18] [INFO]   -> Set field 'timedispatch' = "2026-02-27 18:49:07"
[2026-03-02 13:00:18] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:00:18] [INFO]   -> Found value: 2026-02-27 18:49:51
[2026-03-02 13:00:18] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 18:49:51"
[2026-03-02 13:00:18] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:00:18] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:18] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:00:18] [INFO]   -> Found value: 2026-02-27 18:50:44
[2026-03-02 13:00:18] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 18:50:44"
[2026-03-02 13:00:18] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:00:18] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:18] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:00:18] [INFO]   -> Found value: 20260022070
[2026-03-02 13:00:18] [INFO]   -> Set field 'policeReportNumber' = "20260022070"
[2026-03-02 13:00:18] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:00:18] [INFO]   -> Found value: FALSE ALARM  [02/27/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02/27/26 ...
[2026-03-02 13:00:18] [INFO]   -> Set field 'dispatchNotes' = "FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]"
[2026-03-02 13:00:18] [INFO]   -> Set field 'cADLog' = "FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]"
[2026-03-02 13:00:18] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:00:18] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:00:18] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:00:18] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:00:18] [INFO]   -> Found value: KUYKENDALL
[2026-03-02 13:00:18] [INFO]   -> Set field 'streetName' = "KUYKENDALL"
[2026-03-02 13:00:18] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:00:18] [INFO]   -> Found value: RD
[2026-03-02 13:00:18] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:00:18] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:00:18] [INFO]   -> Found value: 4729 KUYKENDALL RD
[2026-03-02 13:00:18] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4729 KUYKENDALL RD"
[2026-03-02 13:00:18] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:00:18] [INFO] Concatenating street name and type
[2026-03-02 13:00:18] [INFO]   -> Combined street name: KUYKENDALL RD
[2026-03-02 13:00:18] [INFO] Built locationCoordinates from lat/lng: 36.23223,-85.52078
[2026-03-02 13:00:18] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000558","dispatchRunNumber":"2026000558","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":4729,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"MUSTARD SEED RANCH","nERISIncidentLatitude":36.2322300000000012687451089732348918914794921875,"nERISIncidentLongitude":-85.52078000000000201907823793590068817138671875,"alarm":"2026-02-27 18:47:25","dispatched":"2026-02-27 18:49:07","enroute":"2026-02-27 18:49:51","cleared":"2026-02-27 18:50:44","inService":"2026-02-27 18:50:44","incidentLocationCross":"N PINE HILL RD\/HILL RD","cADVehicleID":"EN11","timedispatch":"2026-02-27 18:49:07","timeenroutetoscene":"2026-02-27 18:49:51","timeunitclear":"2026-02-27 18:50:44","policeReportNumber":"20260022070","dispatchNotes":"FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]","cADLog":"FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"KUYKENDALL RD","incidentAddressTextVersionStreet":"4729 KUYKENDALL RD","locationCoordinates":"36.23223,-85.52078"}
[2026-03-02 13:00:18] [INFO] Number of extracted fields: 27
[2026-03-02 13:00:18] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:00:18] [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-03-02 13:00:18] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:00:18] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:00:19] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:00: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-03-02 13:00:19] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:00:19] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:00:19] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-02 13:00:19] [INFO] Found existing Dispatch with cADNumber '2026000558', ID: 69a589cbbbf5d17e5 - will update instead of create
[2026-03-02 13:00:19] [INFO] Updated existing Dispatches record with ID: 69a589cbbbf5d17e5
[2026-03-02 13:00:19] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:00:19] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:00: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-03-02 13:00:22] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125737_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:00:22] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:00:22] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125737_2.XML
[2026-03-02 13:00:22] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125737_2.XML for user: 68f1466aed072ad4a
[2026-03-02 13:00:22] [INFO] File size: 5996 bytes
[2026-03-02 13:00:23] [INFO] Created FTPFiles record with ID: 69a589e73f83333ce
[2026-03-02 13:00:23] [INFO] About to extract fields from XML. File size: 5996 bytes
[2026-03-02 13:00:23] [INFO] Number of mappings: 28
[2026-03-02 13:00:23] [INFO] Starting XML parsing. Content length: 5996
[2026-03-02 13:00:23] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:00:23] [INFO] Processing 28 field mappings
[2026-03-02 13:00:23] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:00:23] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:00:23] [INFO]   -> Found value: PCFD
[2026-03-02 13:00:23] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:00:23] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:00:23] [INFO]   -> Found value: 2026000558
[2026-03-02 13:00:23] [INFO]   -> Set field 'incidentInternalId' = "2026000558"
[2026-03-02 13:00:23] [INFO]   -> Set field 'dispatchRunNumber' = "2026000558"
[2026-03-02 13:00:23] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:00:23] [INFO]   -> Found value: FIRE ALARM
[2026-03-02 13:00:23] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-02 13:00:23] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:00:23] [INFO]   -> Found value: 4729
[2026-03-02 13:00:23] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4729
[2026-03-02 13:00:23] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:00:23] [INFO]   -> Found value: TN
[2026-03-02 13:00:23] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:00:23] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:00:23] [INFO]   -> Found value: 38501
[2026-03-02 13:00:23] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-02 13:00:23] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:00:23] [INFO]   -> Found value: MUSTARD SEED RANCH
[2026-03-02 13:00:23] [INFO]   -> Set field 'businessName' = "MUSTARD SEED RANCH"
[2026-03-02 13:00:23] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:00:23] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:23] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:00:23] [INFO]   -> Found value: 36.23223
[2026-03-02 13:00:23] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2322300000000012687451089732348918914794921875
[2026-03-02 13:00:23] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:00:23] [INFO]   -> Found value: -85.52078
[2026-03-02 13:00:23] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.52078000000000201907823793590068817138671875
[2026-03-02 13:00:23] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:00:23] [INFO]   -> Found value: 2026-02-27 18:47:25
[2026-03-02 13:00:23] [INFO]   -> Set field 'alarm' = "2026-02-27 18:47:25"
[2026-03-02 13:00:23] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:00:23] [INFO]   -> Found value: 2026-02-27 18:49:07
[2026-03-02 13:00:23] [INFO]   -> Set field 'dispatched' = "2026-02-27 18:49:07"
[2026-03-02 13:00:23] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:00:23] [INFO]   -> Found value: 2026-02-27 18:49:51
[2026-03-02 13:00:23] [INFO]   -> Set field 'enroute' = "2026-02-27 18:49:51"
[2026-03-02 13:00:23] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:00:23] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:23] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:00:23] [INFO]   -> Found value: 2026-02-27 18:50:44
[2026-03-02 13:00:23] [INFO]   -> Set field 'cleared' = "2026-02-27 18:50:44"
[2026-03-02 13:00:23] [INFO]   -> Set field 'inService' = "2026-02-27 18:50:44"
[2026-03-02 13:00:23] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:00:23] [INFO]   -> Found value: N PINE HILL RD/HILL RD
[2026-03-02 13:00:23] [INFO]   -> Set field 'incidentLocationCross' = "N PINE HILL RD\/HILL RD"
[2026-03-02 13:00:23] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:00:23] [INFO]   -> Found value: EN11
[2026-03-02 13:00:23] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 13:00:23] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:00:23] [INFO]   -> Found value: 2026-02-27 18:49:07
[2026-03-02 13:00:23] [INFO]   -> Set field 'timedispatch' = "2026-02-27 18:49:07"
[2026-03-02 13:00:23] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:00:23] [INFO]   -> Found value: 2026-02-27 18:49:51
[2026-03-02 13:00:23] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 18:49:51"
[2026-03-02 13:00:23] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:00:23] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:23] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:00:23] [INFO]   -> Found value: 2026-02-27 18:50:44
[2026-03-02 13:00:23] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 18:50:44"
[2026-03-02 13:00:23] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:00:23] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:23] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:00:23] [INFO]   -> Found value: 20260022070
[2026-03-02 13:00:23] [INFO]   -> Set field 'policeReportNumber' = "20260022070"
[2026-03-02 13:00:23] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:00:23] [INFO]   -> Found value: FALSE ALARM  [02/27/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02/27/26 ...
[2026-03-02 13:00:23] [INFO]   -> Set field 'dispatchNotes' = "FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]"
[2026-03-02 13:00:23] [INFO]   -> Set field 'cADLog' = "FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]"
[2026-03-02 13:00:23] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:00:23] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:00:23] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:00:23] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:00:23] [INFO]   -> Found value: KUYKENDALL
[2026-03-02 13:00:23] [INFO]   -> Set field 'streetName' = "KUYKENDALL"
[2026-03-02 13:00:23] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:00:23] [INFO]   -> Found value: RD
[2026-03-02 13:00:23] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:00:23] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:00:23] [INFO]   -> Found value: 4729 KUYKENDALL RD
[2026-03-02 13:00:23] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4729 KUYKENDALL RD"
[2026-03-02 13:00:23] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:00:23] [INFO] Concatenating street name and type
[2026-03-02 13:00:23] [INFO]   -> Combined street name: KUYKENDALL RD
[2026-03-02 13:00:23] [INFO] Built locationCoordinates from lat/lng: 36.23223,-85.52078
[2026-03-02 13:00:23] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000558","dispatchRunNumber":"2026000558","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":4729,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"MUSTARD SEED RANCH","nERISIncidentLatitude":36.2322300000000012687451089732348918914794921875,"nERISIncidentLongitude":-85.52078000000000201907823793590068817138671875,"alarm":"2026-02-27 18:47:25","dispatched":"2026-02-27 18:49:07","enroute":"2026-02-27 18:49:51","cleared":"2026-02-27 18:50:44","inService":"2026-02-27 18:50:44","incidentLocationCross":"N PINE HILL RD\/HILL RD","cADVehicleID":"EN11","timedispatch":"2026-02-27 18:49:07","timeenroutetoscene":"2026-02-27 18:49:51","timeunitclear":"2026-02-27 18:50:44","policeReportNumber":"20260022070","dispatchNotes":"FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]","cADLog":"FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"KUYKENDALL RD","incidentAddressTextVersionStreet":"4729 KUYKENDALL RD","locationCoordinates":"36.23223,-85.52078"}
[2026-03-02 13:00:23] [INFO] Number of extracted fields: 27
[2026-03-02 13:00:23] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:00:23] [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-03-02 13:00:23] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:00:23] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:00:23] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:00:23] [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-03-02 13:00:23] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:00:23] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:00:23] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-02 13:00:23] [INFO] Found existing Dispatch with cADNumber '2026000558', ID: 69a589cbbbf5d17e5 - will update instead of create
[2026-03-02 13:00:24] [INFO] Updated existing Dispatches record with ID: 69a589cbbbf5d17e5
[2026-03-02 13:00:24] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:00:24] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:00: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-03-02 13:00:27] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125737_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:00:27] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:00:27] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125737_3.XML
[2026-03-02 13:00:27] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125737_3.XML for user: 68f1466aed072ad4a
[2026-03-02 13:00:27] [INFO] File size: 5996 bytes
[2026-03-02 13:00:28] [INFO] Created FTPFiles record with ID: 69a589ec2cf4da5a3
[2026-03-02 13:00:28] [INFO] About to extract fields from XML. File size: 5996 bytes
[2026-03-02 13:00:28] [INFO] Number of mappings: 28
[2026-03-02 13:00:28] [INFO] Starting XML parsing. Content length: 5996
[2026-03-02 13:00:28] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:00:28] [INFO] Processing 28 field mappings
[2026-03-02 13:00:28] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:00:28] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:00:28] [INFO]   -> Found value: PCFD
[2026-03-02 13:00:28] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:00:28] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:00:28] [INFO]   -> Found value: 2026000558
[2026-03-02 13:00:28] [INFO]   -> Set field 'incidentInternalId' = "2026000558"
[2026-03-02 13:00:28] [INFO]   -> Set field 'dispatchRunNumber' = "2026000558"
[2026-03-02 13:00:28] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:00:28] [INFO]   -> Found value: FIRE ALARM
[2026-03-02 13:00:28] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-02 13:00:28] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:00:28] [INFO]   -> Found value: 4729
[2026-03-02 13:00:28] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4729
[2026-03-02 13:00:28] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:00:28] [INFO]   -> Found value: TN
[2026-03-02 13:00:28] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:00:28] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:00:28] [INFO]   -> Found value: 38501
[2026-03-02 13:00:28] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-02 13:00:28] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:00:28] [INFO]   -> Found value: MUSTARD SEED RANCH
[2026-03-02 13:00:28] [INFO]   -> Set field 'businessName' = "MUSTARD SEED RANCH"
[2026-03-02 13:00:28] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:00:28] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:28] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:00:28] [INFO]   -> Found value: 36.23223
[2026-03-02 13:00:28] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2322300000000012687451089732348918914794921875
[2026-03-02 13:00:28] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:00:28] [INFO]   -> Found value: -85.52078
[2026-03-02 13:00:28] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.52078000000000201907823793590068817138671875
[2026-03-02 13:00:28] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:00:28] [INFO]   -> Found value: 2026-02-27 18:47:25
[2026-03-02 13:00:28] [INFO]   -> Set field 'alarm' = "2026-02-27 18:47:25"
[2026-03-02 13:00:28] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:00:28] [INFO]   -> Found value: 2026-02-27 18:49:07
[2026-03-02 13:00:28] [INFO]   -> Set field 'dispatched' = "2026-02-27 18:49:07"
[2026-03-02 13:00:28] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:00:28] [INFO]   -> Found value: 2026-02-27 18:49:51
[2026-03-02 13:00:28] [INFO]   -> Set field 'enroute' = "2026-02-27 18:49:51"
[2026-03-02 13:00:28] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:00:28] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:28] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:00:28] [INFO]   -> Found value: 2026-02-27 18:50:44
[2026-03-02 13:00:28] [INFO]   -> Set field 'cleared' = "2026-02-27 18:50:44"
[2026-03-02 13:00:28] [INFO]   -> Set field 'inService' = "2026-02-27 18:50:44"
[2026-03-02 13:00:28] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:00:28] [INFO]   -> Found value: N PINE HILL RD/HILL RD
[2026-03-02 13:00:28] [INFO]   -> Set field 'incidentLocationCross' = "N PINE HILL RD\/HILL RD"
[2026-03-02 13:00:28] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:00:28] [INFO]   -> Found value: EN11
[2026-03-02 13:00:28] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 13:00:28] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:00:28] [INFO]   -> Found value: 2026-02-27 18:49:07
[2026-03-02 13:00:28] [INFO]   -> Set field 'timedispatch' = "2026-02-27 18:49:07"
[2026-03-02 13:00:28] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:00:28] [INFO]   -> Found value: 2026-02-27 18:49:51
[2026-03-02 13:00:28] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 18:49:51"
[2026-03-02 13:00:28] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:00:28] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:28] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:00:28] [INFO]   -> Found value: 2026-02-27 18:50:44
[2026-03-02 13:00:28] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 18:50:44"
[2026-03-02 13:00:28] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:00:28] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:28] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:00:28] [INFO]   -> Found value: 20260022070
[2026-03-02 13:00:28] [INFO]   -> Set field 'policeReportNumber' = "20260022070"
[2026-03-02 13:00:28] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:00:28] [INFO]   -> Found value: FALSE ALARM  [02/27/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02/27/26 ...
[2026-03-02 13:00:28] [INFO]   -> Set field 'dispatchNotes' = "FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]"
[2026-03-02 13:00:28] [INFO]   -> Set field 'cADLog' = "FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]"
[2026-03-02 13:00:28] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:00:28] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:00:28] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:00:28] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:00:28] [INFO]   -> Found value: KUYKENDALL
[2026-03-02 13:00:28] [INFO]   -> Set field 'streetName' = "KUYKENDALL"
[2026-03-02 13:00:28] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:00:28] [INFO]   -> Found value: RD
[2026-03-02 13:00:28] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:00:28] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:00:28] [INFO]   -> Found value: 4729 KUYKENDALL RD
[2026-03-02 13:00:28] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4729 KUYKENDALL RD"
[2026-03-02 13:00:28] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:00:28] [INFO] Concatenating street name and type
[2026-03-02 13:00:28] [INFO]   -> Combined street name: KUYKENDALL RD
[2026-03-02 13:00:28] [INFO] Built locationCoordinates from lat/lng: 36.23223,-85.52078
[2026-03-02 13:00:28] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000558","dispatchRunNumber":"2026000558","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":4729,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"MUSTARD SEED RANCH","nERISIncidentLatitude":36.2322300000000012687451089732348918914794921875,"nERISIncidentLongitude":-85.52078000000000201907823793590068817138671875,"alarm":"2026-02-27 18:47:25","dispatched":"2026-02-27 18:49:07","enroute":"2026-02-27 18:49:51","cleared":"2026-02-27 18:50:44","inService":"2026-02-27 18:50:44","incidentLocationCross":"N PINE HILL RD\/HILL RD","cADVehicleID":"EN11","timedispatch":"2026-02-27 18:49:07","timeenroutetoscene":"2026-02-27 18:49:51","timeunitclear":"2026-02-27 18:50:44","policeReportNumber":"20260022070","dispatchNotes":"FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]","cADLog":"FALSE ALARM  [02\/27\/26 18:50:17 DSWINK] ZONE FAMILY ROOM SMOKE 800-633-2677 REF 915-5577  [02\/27\/26 18:48:21 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"KUYKENDALL RD","incidentAddressTextVersionStreet":"4729 KUYKENDALL RD","locationCoordinates":"36.23223,-85.52078"}
[2026-03-02 13:00:28] [INFO] Number of extracted fields: 27
[2026-03-02 13:00:28] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:00:28] [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-03-02 13:00:28] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:00:28] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:00:28] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:00:28] [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-03-02 13:00:28] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:00:28] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:00:28] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-02 13:00:28] [INFO] Found existing Dispatch with cADNumber '2026000558', ID: 69a589cbbbf5d17e5 - will update instead of create
[2026-03-02 13:00:29] [INFO] Updated existing Dispatches record with ID: 69a589cbbbf5d17e5
[2026-03-02 13:00:29] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:00:29] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:00:32] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:00:32] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022070_20260302_125737_3.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:00:32] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:00:32] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022088_20260302_125738.XML
[2026-03-02 13:00:32] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022088_20260302_125738.XML for user: 68f1466aed072ad4a
[2026-03-02 13:00:32] [INFO] File size: 7292 bytes
[2026-03-02 13:00:33] [INFO] Created FTPFiles record with ID: 69a589f10e7d28521
[2026-03-02 13:00:33] [INFO] About to extract fields from XML. File size: 7292 bytes
[2026-03-02 13:00:33] [INFO] Number of mappings: 28
[2026-03-02 13:00:33] [INFO] Starting XML parsing. Content length: 7292
[2026-03-02 13:00:33] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:00:33] [INFO] Processing 28 field mappings
[2026-03-02 13:00:33] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:00:33] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:00:33] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:00:33] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-02 13:00:33] [INFO]   -> Found value: PCFD
RESC
EMS
[2026-03-02 13:00:33] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC\nEMS"
[2026-03-02 13:00:33] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:00:33] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:00:33] [INFO]   -> Found value: 2026000559
[2026-03-02 13:00:33] [INFO]   -> Set field 'incidentInternalId' = "2026000559"
[2026-03-02 13:00:33] [INFO]   -> Set field 'dispatchRunNumber' = "2026000559"
[2026-03-02 13:00:33] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:00:33] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-02 13:00:33] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-02 13:00:33] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:00:33] [INFO]   -> Found value: 2174
[2026-03-02 13:00:33] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2174
[2026-03-02 13:00:33] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:00:33] [INFO]   -> Found value: TN
[2026-03-02 13:00:33] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:00:33] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:00:33] [INFO]   -> Found value: 38574
[2026-03-02 13:00:33] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-02 13:00:33] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:00:33] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:33] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:00:33] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:33] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:00:33] [INFO]   -> Found value: 36.12790
[2026-03-02 13:00:33] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1278999999999967940311762504279613494873046875
[2026-03-02 13:00:33] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:00:33] [INFO]   -> Found value: -85.24680
[2026-03-02 13:00:33] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2467999999999932470018393360078334808349609375
[2026-03-02 13:00:33] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:00:33] [INFO]   -> Found value: 2026-02-27 19:38:57
[2026-03-02 13:00:33] [INFO]   -> Set field 'alarm' = "2026-02-27 19:38:57"
[2026-03-02 13:00:33] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:00:33] [INFO]   -> Found value: 2026-02-27 19:39:22
[2026-03-02 13:00:33] [INFO]   -> Set field 'dispatched' = "2026-02-27 19:39:22"
[2026-03-02 13:00:33] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:00:33] [INFO]   -> Found value: 2026-02-27 19:40:51
[2026-03-02 13:00:33] [INFO]   -> Set field 'enroute' = "2026-02-27 19:40:51"
[2026-03-02 13:00:33] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:00:33] [INFO]   -> Found value: 2026-02-27 19:47:36
[2026-03-02 13:00:33] [INFO]   -> Set field 'onScene' = "2026-02-27 19:47:36"
[2026-03-02 13:00:33] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:00:33] [INFO]   -> Found value: 2026-02-27 20:09:49
[2026-03-02 13:00:33] [INFO]   -> Set field 'cleared' = "2026-02-27 20:09:49"
[2026-03-02 13:00:33] [INFO]   -> Set field 'inService' = "2026-02-27 20:09:49"
[2026-03-02 13:00:33] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:00:33] [INFO]   -> Found value: ANDY LN/WALTON HILLS RD
[2026-03-02 13:00:33] [INFO]   -> Set field 'incidentLocationCross' = "ANDY LN\/WALTON HILLS RD"
[2026-03-02 13:00:33] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:00:33] [INFO]   -> Found value: EN21
[2026-03-02 13:00:33] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-02 13:00:33] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:00:33] [INFO]   -> Found value: 2026-02-27 19:40:38
[2026-03-02 13:00:33] [INFO]   -> Set field 'timedispatch' = "2026-02-27 19:40:38"
[2026-03-02 13:00:33] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:00:33] [INFO]   -> Found value: 2026-02-27 19:40:51
[2026-03-02 13:00:33] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 19:40:51"
[2026-03-02 13:00:33] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:00:33] [INFO]   -> Found value: 2026-02-27 19:47:36
[2026-03-02 13:00:33] [INFO]   -> Set field 'timeonscene' = "2026-02-27 19:47:36"
[2026-03-02 13:00:33] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:00:33] [INFO]   -> Found value: 2026-02-27 20:09:49
[2026-03-02 13:00:33] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 20:09:49"
[2026-03-02 13:00:33] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:00:33] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:33] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:00:33] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:00:33] [INFO]   -> Found value: 20260022088
[2026-03-02 13:00:33] [INFO]   -> Set field 'policeReportNumber' = "20260022088"
[2026-03-02 13:00:33] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:00:33] [INFO]   -> Found value: [LAW] {P3335} EMS ON SCENE  [02/27/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02/27/26 19:55:56 ...
[2026-03-02 13:00:33] [INFO]   -> Set field 'dispatchNotes' = "[LAW] {P3335} EMS ON SCENE  [02\/27\/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02\/27\/26 19:55:56 DSWINK] .2  [02\/27\/26 19:52:32 EALMENDAREZ] .2 W  [02\/27\/26 19:52:08 EALMENDAREZ] [RESC] {542} PT AWAKE  [02\/27\/26 19:49:37 DSWINK] [LAW] {P3335} EMS BEHIND ME AT 291MM  [02\/27\/26 19:46:59 BAHARRIS] [EMS] HX OF SEIZURES  [02\/27\/26 19:41:00 JDICK] [EMS] THINKS HES COMING OUT OF IT- TALKING ALITTLE  [02\/27\/26 19:40:54 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:40:08 DKITCHENS] [EMS] 2174  [02\/27\/26 19:40:02 JDICK] [EMS] ADDRESS 274  OLD WALTON  [02\/27\/26 19:39:53 JDICK] [EMS] PASSED OUT- ON COUCH ON SIDE  [02\/27\/26 19:39:31 JDICK] Event spawned from UNCONSCIOUS.  [02\/27\/2026 19:38:57 JDICK]"
[2026-03-02 13:00:33] [INFO]   -> Set field 'cADLog' = "[LAW] {P3335} EMS ON SCENE  [02\/27\/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02\/27\/26 19:55:56 DSWINK] .2  [02\/27\/26 19:52:32 EALMENDAREZ] .2 W  [02\/27\/26 19:52:08 EALMENDAREZ] [RESC] {542} PT AWAKE  [02\/27\/26 19:49:37 DSWINK] [LAW] {P3335} EMS BEHIND ME AT 291MM  [02\/27\/26 19:46:59 BAHARRIS] [EMS] HX OF SEIZURES  [02\/27\/26 19:41:00 JDICK] [EMS] THINKS HES COMING OUT OF IT- TALKING ALITTLE  [02\/27\/26 19:40:54 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:40:08 DKITCHENS] [EMS] 2174  [02\/27\/26 19:40:02 JDICK] [EMS] ADDRESS 274  OLD WALTON  [02\/27\/26 19:39:53 JDICK] [EMS] PASSED OUT- ON COUCH ON SIDE  [02\/27\/26 19:39:31 JDICK] Event spawned from UNCONSCIOUS.  [02\/27\/2026 19:38:57 JDICK]"
[2026-03-02 13:00:33] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:00:33] [INFO]   -> Found value: MONTEREY
[2026-03-02 13:00:33] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-02 13:00:33] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:00:33] [INFO]   -> Found value: OLD WALTON
[2026-03-02 13:00:33] [INFO]   -> Set field 'streetName' = "OLD WALTON"
[2026-03-02 13:00:33] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:00:33] [INFO]   -> Found value: RD
[2026-03-02 13:00:33] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:00:33] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:00:33] [INFO]   -> Found value: 2174 OLD WALTON RD
[2026-03-02 13:00:33] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2174 OLD WALTON RD"
[2026-03-02 13:00:33] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 13:00:33] [INFO] Concatenating street name and type
[2026-03-02 13:00:33] [INFO]   -> Combined street name: OLD WALTON RD
[2026-03-02 13:00:33] [INFO] Built locationCoordinates from lat/lng: 36.1279,-85.2468
[2026-03-02 13:00:33] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nRESC\nEMS","incidentInternalId":"2026000559","dispatchRunNumber":"2026000559","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":2174,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1278999999999967940311762504279613494873046875,"nERISIncidentLongitude":-85.2467999999999932470018393360078334808349609375,"alarm":"2026-02-27 19:38:57","dispatched":"2026-02-27 19:39:22","enroute":"2026-02-27 19:40:51","onScene":"2026-02-27 19:47:36","cleared":"2026-02-27 20:09:49","inService":"2026-02-27 20:09:49","incidentLocationCross":"ANDY LN\/WALTON HILLS RD","cADVehicleID":"EN21","timedispatch":"2026-02-27 19:40:38","timeenroutetoscene":"2026-02-27 19:40:51","timeonscene":"2026-02-27 19:47:36","timeunitclear":"2026-02-27 20:09:49","policeReportNumber":"20260022088","dispatchNotes":"[LAW] {P3335} EMS ON SCENE  [02\/27\/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02\/27\/26 19:55:56 DSWINK] .2  [02\/27\/26 19:52:32 EALMENDAREZ] .2 W  [02\/27\/26 19:52:08 EALMENDAREZ] [RESC] {542} PT AWAKE  [02\/27\/26 19:49:37 DSWINK] [LAW] {P3335} EMS BEHIND ME AT 291MM  [02\/27\/26 19:46:59 BAHARRIS] [EMS] HX OF SEIZURES  [02\/27\/26 19:41:00 JDICK] [EMS] THINKS HES COMING OUT OF IT- TALKING ALITTLE  [02\/27\/26 19:40:54 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:40:08 DKITCHENS] [EMS] 2174  [02\/27\/26 19:40:02 JDICK] [EMS] ADDRESS 274  OLD WALTON  [02\/27\/26 19:39:53 JDICK] [EMS] PASSED OUT- ON COUCH ON SIDE  [02\/27\/26 19:39:31 JDICK] Event spawned from UNCONSCIOUS.  [02\/27\/2026 19:38:57 JDICK]","cADLog":"[LAW] {P3335} EMS ON SCENE  [02\/27\/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02\/27\/26 19:55:56 DSWINK] .2  [02\/27\/26 19:52:32 EALMENDAREZ] .2 W  [02\/27\/26 19:52:08 EALMENDAREZ] [RESC] {542} PT AWAKE  [02\/27\/26 19:49:37 DSWINK] [LAW] {P3335} EMS BEHIND ME AT 291MM  [02\/27\/26 19:46:59 BAHARRIS] [EMS] HX OF SEIZURES  [02\/27\/26 19:41:00 JDICK] [EMS] THINKS HES COMING OUT OF IT- TALKING ALITTLE  [02\/27\/26 19:40:54 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:40:08 DKITCHENS] [EMS] 2174  [02\/27\/26 19:40:02 JDICK] [EMS] ADDRESS 274  OLD WALTON  [02\/27\/26 19:39:53 JDICK] [EMS] PASSED OUT- ON COUCH ON SIDE  [02\/27\/26 19:39:31 JDICK] Event spawned from UNCONSCIOUS.  [02\/27\/2026 19:38:57 JDICK]","incidentLocationCity":"MONTEREY","streetName":"OLD WALTON RD","incidentAddressTextVersionStreet":"2174 OLD WALTON RD","locationCoordinates":"36.1279,-85.2468"}
[2026-03-02 13:00:33] [INFO] Number of extracted fields: 28
[2026-03-02 13:00:33] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC
EMS'
[2026-03-02 13:00:33] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
RESC
EMS', Parsed IDs = ["PCFD","RESC","EMS"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-02 13:00:33] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC","EMS"]
[2026-03-02 13:00:33] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:00:33] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:00:33] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC","EMS"]
[2026-03-02 13:00:33] [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-03-02 13:00:33] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:00:33] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-02 13:00:33] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:00:33] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:00:33] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-02 13:00:42] [INFO] Created new Dispatches record with ID: 69a589f1c6fd25ed5
[2026-03-02 13:00:42] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:00:42] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:00:45] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:00:45] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022088_20260302_125738.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:00:45] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:00:45] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022088_20260302_125738_1.XML
[2026-03-02 13:00:45] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022088_20260302_125738_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:00:45] [INFO] File size: 7292 bytes
[2026-03-02 13:00:46] [INFO] Created FTPFiles record with ID: 69a589fe295f275d2
[2026-03-02 13:00:46] [INFO] About to extract fields from XML. File size: 7292 bytes
[2026-03-02 13:00:46] [INFO] Number of mappings: 28
[2026-03-02 13:00:46] [INFO] Starting XML parsing. Content length: 7292
[2026-03-02 13:00:46] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:00:46] [INFO] Processing 28 field mappings
[2026-03-02 13:00:46] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:00:46] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:00:46] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:00:46] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-02 13:00:46] [INFO]   -> Found value: PCFD
RESC
EMS
[2026-03-02 13:00:46] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC\nEMS"
[2026-03-02 13:00:46] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:00:46] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:00:46] [INFO]   -> Found value: 2026000559
[2026-03-02 13:00:46] [INFO]   -> Set field 'incidentInternalId' = "2026000559"
[2026-03-02 13:00:46] [INFO]   -> Set field 'dispatchRunNumber' = "2026000559"
[2026-03-02 13:00:46] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:00:46] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-02 13:00:46] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-02 13:00:46] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:00:46] [INFO]   -> Found value: 2174
[2026-03-02 13:00:46] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2174
[2026-03-02 13:00:46] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:00:46] [INFO]   -> Found value: TN
[2026-03-02 13:00:46] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:00:46] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:00:46] [INFO]   -> Found value: 38574
[2026-03-02 13:00:46] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-02 13:00:46] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:00:46] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:46] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:00:46] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:46] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:00:46] [INFO]   -> Found value: 36.12790
[2026-03-02 13:00:46] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1278999999999967940311762504279613494873046875
[2026-03-02 13:00:46] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:00:46] [INFO]   -> Found value: -85.24680
[2026-03-02 13:00:46] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2467999999999932470018393360078334808349609375
[2026-03-02 13:00:46] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:00:46] [INFO]   -> Found value: 2026-02-27 19:38:57
[2026-03-02 13:00:46] [INFO]   -> Set field 'alarm' = "2026-02-27 19:38:57"
[2026-03-02 13:00:46] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:00:46] [INFO]   -> Found value: 2026-02-27 19:39:22
[2026-03-02 13:00:46] [INFO]   -> Set field 'dispatched' = "2026-02-27 19:39:22"
[2026-03-02 13:00:46] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:00:46] [INFO]   -> Found value: 2026-02-27 19:40:51
[2026-03-02 13:00:46] [INFO]   -> Set field 'enroute' = "2026-02-27 19:40:51"
[2026-03-02 13:00:46] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:00:46] [INFO]   -> Found value: 2026-02-27 19:47:36
[2026-03-02 13:00:46] [INFO]   -> Set field 'onScene' = "2026-02-27 19:47:36"
[2026-03-02 13:00:46] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:00:46] [INFO]   -> Found value: 2026-02-27 20:09:49
[2026-03-02 13:00:46] [INFO]   -> Set field 'cleared' = "2026-02-27 20:09:49"
[2026-03-02 13:00:46] [INFO]   -> Set field 'inService' = "2026-02-27 20:09:49"
[2026-03-02 13:00:46] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:00:46] [INFO]   -> Found value: ANDY LN/WALTON HILLS RD
[2026-03-02 13:00:46] [INFO]   -> Set field 'incidentLocationCross' = "ANDY LN\/WALTON HILLS RD"
[2026-03-02 13:00:46] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:00:46] [INFO]   -> Found value: EN21
[2026-03-02 13:00:46] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-02 13:00:46] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:00:46] [INFO]   -> Found value: 2026-02-27 19:40:38
[2026-03-02 13:00:46] [INFO]   -> Set field 'timedispatch' = "2026-02-27 19:40:38"
[2026-03-02 13:00:46] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:00:46] [INFO]   -> Found value: 2026-02-27 19:40:51
[2026-03-02 13:00:46] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 19:40:51"
[2026-03-02 13:00:46] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:00:46] [INFO]   -> Found value: 2026-02-27 19:47:36
[2026-03-02 13:00:46] [INFO]   -> Set field 'timeonscene' = "2026-02-27 19:47:36"
[2026-03-02 13:00:46] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:00:46] [INFO]   -> Found value: 2026-02-27 20:09:49
[2026-03-02 13:00:46] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 20:09:49"
[2026-03-02 13:00:46] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:00:46] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:46] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:00:46] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:00:46] [INFO]   -> Found value: 20260022088
[2026-03-02 13:00:46] [INFO]   -> Set field 'policeReportNumber' = "20260022088"
[2026-03-02 13:00:46] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:00:46] [INFO]   -> Found value: [LAW] {P3335} EMS ON SCENE  [02/27/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02/27/26 19:55:56 ...
[2026-03-02 13:00:46] [INFO]   -> Set field 'dispatchNotes' = "[LAW] {P3335} EMS ON SCENE  [02\/27\/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02\/27\/26 19:55:56 DSWINK] .2  [02\/27\/26 19:52:32 EALMENDAREZ] .2 W  [02\/27\/26 19:52:08 EALMENDAREZ] [RESC] {542} PT AWAKE  [02\/27\/26 19:49:37 DSWINK] [LAW] {P3335} EMS BEHIND ME AT 291MM  [02\/27\/26 19:46:59 BAHARRIS] [EMS] HX OF SEIZURES  [02\/27\/26 19:41:00 JDICK] [EMS] THINKS HES COMING OUT OF IT- TALKING ALITTLE  [02\/27\/26 19:40:54 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:40:08 DKITCHENS] [EMS] 2174  [02\/27\/26 19:40:02 JDICK] [EMS] ADDRESS 274  OLD WALTON  [02\/27\/26 19:39:53 JDICK] [EMS] PASSED OUT- ON COUCH ON SIDE  [02\/27\/26 19:39:31 JDICK] Event spawned from UNCONSCIOUS.  [02\/27\/2026 19:38:57 JDICK]"
[2026-03-02 13:00:46] [INFO]   -> Set field 'cADLog' = "[LAW] {P3335} EMS ON SCENE  [02\/27\/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02\/27\/26 19:55:56 DSWINK] .2  [02\/27\/26 19:52:32 EALMENDAREZ] .2 W  [02\/27\/26 19:52:08 EALMENDAREZ] [RESC] {542} PT AWAKE  [02\/27\/26 19:49:37 DSWINK] [LAW] {P3335} EMS BEHIND ME AT 291MM  [02\/27\/26 19:46:59 BAHARRIS] [EMS] HX OF SEIZURES  [02\/27\/26 19:41:00 JDICK] [EMS] THINKS HES COMING OUT OF IT- TALKING ALITTLE  [02\/27\/26 19:40:54 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:40:08 DKITCHENS] [EMS] 2174  [02\/27\/26 19:40:02 JDICK] [EMS] ADDRESS 274  OLD WALTON  [02\/27\/26 19:39:53 JDICK] [EMS] PASSED OUT- ON COUCH ON SIDE  [02\/27\/26 19:39:31 JDICK] Event spawned from UNCONSCIOUS.  [02\/27\/2026 19:38:57 JDICK]"
[2026-03-02 13:00:46] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:00:46] [INFO]   -> Found value: MONTEREY
[2026-03-02 13:00:46] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-02 13:00:46] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:00:46] [INFO]   -> Found value: OLD WALTON
[2026-03-02 13:00:46] [INFO]   -> Set field 'streetName' = "OLD WALTON"
[2026-03-02 13:00:46] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:00:46] [INFO]   -> Found value: RD
[2026-03-02 13:00:46] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:00:46] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:00:46] [INFO]   -> Found value: 2174 OLD WALTON RD
[2026-03-02 13:00:46] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2174 OLD WALTON RD"
[2026-03-02 13:00:46] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 13:00:46] [INFO] Concatenating street name and type
[2026-03-02 13:00:46] [INFO]   -> Combined street name: OLD WALTON RD
[2026-03-02 13:00:46] [INFO] Built locationCoordinates from lat/lng: 36.1279,-85.2468
[2026-03-02 13:00:46] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nRESC\nEMS","incidentInternalId":"2026000559","dispatchRunNumber":"2026000559","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":2174,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1278999999999967940311762504279613494873046875,"nERISIncidentLongitude":-85.2467999999999932470018393360078334808349609375,"alarm":"2026-02-27 19:38:57","dispatched":"2026-02-27 19:39:22","enroute":"2026-02-27 19:40:51","onScene":"2026-02-27 19:47:36","cleared":"2026-02-27 20:09:49","inService":"2026-02-27 20:09:49","incidentLocationCross":"ANDY LN\/WALTON HILLS RD","cADVehicleID":"EN21","timedispatch":"2026-02-27 19:40:38","timeenroutetoscene":"2026-02-27 19:40:51","timeonscene":"2026-02-27 19:47:36","timeunitclear":"2026-02-27 20:09:49","policeReportNumber":"20260022088","dispatchNotes":"[LAW] {P3335} EMS ON SCENE  [02\/27\/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02\/27\/26 19:55:56 DSWINK] .2  [02\/27\/26 19:52:32 EALMENDAREZ] .2 W  [02\/27\/26 19:52:08 EALMENDAREZ] [RESC] {542} PT AWAKE  [02\/27\/26 19:49:37 DSWINK] [LAW] {P3335} EMS BEHIND ME AT 291MM  [02\/27\/26 19:46:59 BAHARRIS] [EMS] HX OF SEIZURES  [02\/27\/26 19:41:00 JDICK] [EMS] THINKS HES COMING OUT OF IT- TALKING ALITTLE  [02\/27\/26 19:40:54 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:40:08 DKITCHENS] [EMS] 2174  [02\/27\/26 19:40:02 JDICK] [EMS] ADDRESS 274  OLD WALTON  [02\/27\/26 19:39:53 JDICK] [EMS] PASSED OUT- ON COUCH ON SIDE  [02\/27\/26 19:39:31 JDICK] Event spawned from UNCONSCIOUS.  [02\/27\/2026 19:38:57 JDICK]","cADLog":"[LAW] {P3335} EMS ON SCENE  [02\/27\/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02\/27\/26 19:55:56 DSWINK] .2  [02\/27\/26 19:52:32 EALMENDAREZ] .2 W  [02\/27\/26 19:52:08 EALMENDAREZ] [RESC] {542} PT AWAKE  [02\/27\/26 19:49:37 DSWINK] [LAW] {P3335} EMS BEHIND ME AT 291MM  [02\/27\/26 19:46:59 BAHARRIS] [EMS] HX OF SEIZURES  [02\/27\/26 19:41:00 JDICK] [EMS] THINKS HES COMING OUT OF IT- TALKING ALITTLE  [02\/27\/26 19:40:54 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:40:08 DKITCHENS] [EMS] 2174  [02\/27\/26 19:40:02 JDICK] [EMS] ADDRESS 274  OLD WALTON  [02\/27\/26 19:39:53 JDICK] [EMS] PASSED OUT- ON COUCH ON SIDE  [02\/27\/26 19:39:31 JDICK] Event spawned from UNCONSCIOUS.  [02\/27\/2026 19:38:57 JDICK]","incidentLocationCity":"MONTEREY","streetName":"OLD WALTON RD","incidentAddressTextVersionStreet":"2174 OLD WALTON RD","locationCoordinates":"36.1279,-85.2468"}
[2026-03-02 13:00:46] [INFO] Number of extracted fields: 28
[2026-03-02 13:00:46] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC
EMS'
[2026-03-02 13:00:46] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
RESC
EMS', Parsed IDs = ["PCFD","RESC","EMS"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-02 13:00:46] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC","EMS"]
[2026-03-02 13:00:46] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:00:46] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:00:46] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC","EMS"]
[2026-03-02 13:00:46] [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-03-02 13:00:46] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:00:46] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-02 13:00:46] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:00:46] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:00:46] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-02 13:00:46] [INFO] Found existing Dispatch with cADNumber '2026000559', ID: 69a589f1c6fd25ed5 - will update instead of create
[2026-03-02 13:00:47] [INFO] Updated existing Dispatches record with ID: 69a589f1c6fd25ed5
[2026-03-02 13:00:47] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:00:47] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:00:50] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:00:50] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022088_20260302_125738_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:00:50] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:00:50] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022088_20260302_125738_2.XML
[2026-03-02 13:00:50] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022088_20260302_125738_2.XML for user: 68f1466aed072ad4a
[2026-03-02 13:00:50] [INFO] File size: 7292 bytes
[2026-03-02 13:00:50] [INFO] Created FTPFiles record with ID: 69a58a02da01edacb
[2026-03-02 13:00:50] [INFO] About to extract fields from XML. File size: 7292 bytes
[2026-03-02 13:00:50] [INFO] Number of mappings: 28
[2026-03-02 13:00:50] [INFO] Starting XML parsing. Content length: 7292
[2026-03-02 13:00:50] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:00:50] [INFO] Processing 28 field mappings
[2026-03-02 13:00:50] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:00:50] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:00:50] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:00:50] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-02 13:00:50] [INFO]   -> Found value: PCFD
RESC
EMS
[2026-03-02 13:00:50] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC\nEMS"
[2026-03-02 13:00:50] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:00:50] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:00:50] [INFO]   -> Found value: 2026000559
[2026-03-02 13:00:50] [INFO]   -> Set field 'incidentInternalId' = "2026000559"
[2026-03-02 13:00:50] [INFO]   -> Set field 'dispatchRunNumber' = "2026000559"
[2026-03-02 13:00:50] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:00:50] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-02 13:00:50] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-02 13:00:50] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:00:50] [INFO]   -> Found value: 2174
[2026-03-02 13:00:50] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2174
[2026-03-02 13:00:50] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:00:50] [INFO]   -> Found value: TN
[2026-03-02 13:00:50] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:00:50] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:00:50] [INFO]   -> Found value: 38574
[2026-03-02 13:00:50] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-02 13:00:50] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:00:50] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:50] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:00:50] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:50] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:00:50] [INFO]   -> Found value: 36.12790
[2026-03-02 13:00:50] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1278999999999967940311762504279613494873046875
[2026-03-02 13:00:50] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:00:50] [INFO]   -> Found value: -85.24680
[2026-03-02 13:00:50] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2467999999999932470018393360078334808349609375
[2026-03-02 13:00:50] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:00:50] [INFO]   -> Found value: 2026-02-27 19:38:57
[2026-03-02 13:00:50] [INFO]   -> Set field 'alarm' = "2026-02-27 19:38:57"
[2026-03-02 13:00:50] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:00:50] [INFO]   -> Found value: 2026-02-27 19:39:22
[2026-03-02 13:00:50] [INFO]   -> Set field 'dispatched' = "2026-02-27 19:39:22"
[2026-03-02 13:00:50] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:00:50] [INFO]   -> Found value: 2026-02-27 19:40:51
[2026-03-02 13:00:50] [INFO]   -> Set field 'enroute' = "2026-02-27 19:40:51"
[2026-03-02 13:00:50] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:00:50] [INFO]   -> Found value: 2026-02-27 19:47:36
[2026-03-02 13:00:50] [INFO]   -> Set field 'onScene' = "2026-02-27 19:47:36"
[2026-03-02 13:00:50] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:00:50] [INFO]   -> Found value: 2026-02-27 20:09:49
[2026-03-02 13:00:50] [INFO]   -> Set field 'cleared' = "2026-02-27 20:09:49"
[2026-03-02 13:00:50] [INFO]   -> Set field 'inService' = "2026-02-27 20:09:49"
[2026-03-02 13:00:50] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:00:50] [INFO]   -> Found value: ANDY LN/WALTON HILLS RD
[2026-03-02 13:00:50] [INFO]   -> Set field 'incidentLocationCross' = "ANDY LN\/WALTON HILLS RD"
[2026-03-02 13:00:50] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:00:50] [INFO]   -> Found value: EN21
[2026-03-02 13:00:50] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-02 13:00:50] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:00:50] [INFO]   -> Found value: 2026-02-27 19:40:38
[2026-03-02 13:00:50] [INFO]   -> Set field 'timedispatch' = "2026-02-27 19:40:38"
[2026-03-02 13:00:50] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:00:50] [INFO]   -> Found value: 2026-02-27 19:40:51
[2026-03-02 13:00:50] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 19:40:51"
[2026-03-02 13:00:50] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:00:50] [INFO]   -> Found value: 2026-02-27 19:47:36
[2026-03-02 13:00:50] [INFO]   -> Set field 'timeonscene' = "2026-02-27 19:47:36"
[2026-03-02 13:00:50] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:00:50] [INFO]   -> Found value: 2026-02-27 20:09:49
[2026-03-02 13:00:50] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 20:09:49"
[2026-03-02 13:00:50] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:00:50] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:50] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:00:50] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:00:50] [INFO]   -> Found value: 20260022088
[2026-03-02 13:00:50] [INFO]   -> Set field 'policeReportNumber' = "20260022088"
[2026-03-02 13:00:50] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:00:50] [INFO]   -> Found value: [LAW] {P3335} EMS ON SCENE  [02/27/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02/27/26 19:55:56 ...
[2026-03-02 13:00:50] [INFO]   -> Set field 'dispatchNotes' = "[LAW] {P3335} EMS ON SCENE  [02\/27\/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02\/27\/26 19:55:56 DSWINK] .2  [02\/27\/26 19:52:32 EALMENDAREZ] .2 W  [02\/27\/26 19:52:08 EALMENDAREZ] [RESC] {542} PT AWAKE  [02\/27\/26 19:49:37 DSWINK] [LAW] {P3335} EMS BEHIND ME AT 291MM  [02\/27\/26 19:46:59 BAHARRIS] [EMS] HX OF SEIZURES  [02\/27\/26 19:41:00 JDICK] [EMS] THINKS HES COMING OUT OF IT- TALKING ALITTLE  [02\/27\/26 19:40:54 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:40:08 DKITCHENS] [EMS] 2174  [02\/27\/26 19:40:02 JDICK] [EMS] ADDRESS 274  OLD WALTON  [02\/27\/26 19:39:53 JDICK] [EMS] PASSED OUT- ON COUCH ON SIDE  [02\/27\/26 19:39:31 JDICK] Event spawned from UNCONSCIOUS.  [02\/27\/2026 19:38:57 JDICK]"
[2026-03-02 13:00:50] [INFO]   -> Set field 'cADLog' = "[LAW] {P3335} EMS ON SCENE  [02\/27\/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02\/27\/26 19:55:56 DSWINK] .2  [02\/27\/26 19:52:32 EALMENDAREZ] .2 W  [02\/27\/26 19:52:08 EALMENDAREZ] [RESC] {542} PT AWAKE  [02\/27\/26 19:49:37 DSWINK] [LAW] {P3335} EMS BEHIND ME AT 291MM  [02\/27\/26 19:46:59 BAHARRIS] [EMS] HX OF SEIZURES  [02\/27\/26 19:41:00 JDICK] [EMS] THINKS HES COMING OUT OF IT- TALKING ALITTLE  [02\/27\/26 19:40:54 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:40:08 DKITCHENS] [EMS] 2174  [02\/27\/26 19:40:02 JDICK] [EMS] ADDRESS 274  OLD WALTON  [02\/27\/26 19:39:53 JDICK] [EMS] PASSED OUT- ON COUCH ON SIDE  [02\/27\/26 19:39:31 JDICK] Event spawned from UNCONSCIOUS.  [02\/27\/2026 19:38:57 JDICK]"
[2026-03-02 13:00:50] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:00:50] [INFO]   -> Found value: MONTEREY
[2026-03-02 13:00:50] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-02 13:00:50] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:00:50] [INFO]   -> Found value: OLD WALTON
[2026-03-02 13:00:50] [INFO]   -> Set field 'streetName' = "OLD WALTON"
[2026-03-02 13:00:50] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:00:50] [INFO]   -> Found value: RD
[2026-03-02 13:00:50] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:00:50] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:00:50] [INFO]   -> Found value: 2174 OLD WALTON RD
[2026-03-02 13:00:50] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2174 OLD WALTON RD"
[2026-03-02 13:00:50] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 13:00:50] [INFO] Concatenating street name and type
[2026-03-02 13:00:50] [INFO]   -> Combined street name: OLD WALTON RD
[2026-03-02 13:00:50] [INFO] Built locationCoordinates from lat/lng: 36.1279,-85.2468
[2026-03-02 13:00:50] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nRESC\nEMS","incidentInternalId":"2026000559","dispatchRunNumber":"2026000559","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":2174,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1278999999999967940311762504279613494873046875,"nERISIncidentLongitude":-85.2467999999999932470018393360078334808349609375,"alarm":"2026-02-27 19:38:57","dispatched":"2026-02-27 19:39:22","enroute":"2026-02-27 19:40:51","onScene":"2026-02-27 19:47:36","cleared":"2026-02-27 20:09:49","inService":"2026-02-27 20:09:49","incidentLocationCross":"ANDY LN\/WALTON HILLS RD","cADVehicleID":"EN21","timedispatch":"2026-02-27 19:40:38","timeenroutetoscene":"2026-02-27 19:40:51","timeonscene":"2026-02-27 19:47:36","timeunitclear":"2026-02-27 20:09:49","policeReportNumber":"20260022088","dispatchNotes":"[LAW] {P3335} EMS ON SCENE  [02\/27\/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02\/27\/26 19:55:56 DSWINK] .2  [02\/27\/26 19:52:32 EALMENDAREZ] .2 W  [02\/27\/26 19:52:08 EALMENDAREZ] [RESC] {542} PT AWAKE  [02\/27\/26 19:49:37 DSWINK] [LAW] {P3335} EMS BEHIND ME AT 291MM  [02\/27\/26 19:46:59 BAHARRIS] [EMS] HX OF SEIZURES  [02\/27\/26 19:41:00 JDICK] [EMS] THINKS HES COMING OUT OF IT- TALKING ALITTLE  [02\/27\/26 19:40:54 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:40:08 DKITCHENS] [EMS] 2174  [02\/27\/26 19:40:02 JDICK] [EMS] ADDRESS 274  OLD WALTON  [02\/27\/26 19:39:53 JDICK] [EMS] PASSED OUT- ON COUCH ON SIDE  [02\/27\/26 19:39:31 JDICK] Event spawned from UNCONSCIOUS.  [02\/27\/2026 19:38:57 JDICK]","cADLog":"[LAW] {P3335} EMS ON SCENE  [02\/27\/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02\/27\/26 19:55:56 DSWINK] .2  [02\/27\/26 19:52:32 EALMENDAREZ] .2 W  [02\/27\/26 19:52:08 EALMENDAREZ] [RESC] {542} PT AWAKE  [02\/27\/26 19:49:37 DSWINK] [LAW] {P3335} EMS BEHIND ME AT 291MM  [02\/27\/26 19:46:59 BAHARRIS] [EMS] HX OF SEIZURES  [02\/27\/26 19:41:00 JDICK] [EMS] THINKS HES COMING OUT OF IT- TALKING ALITTLE  [02\/27\/26 19:40:54 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:40:08 DKITCHENS] [EMS] 2174  [02\/27\/26 19:40:02 JDICK] [EMS] ADDRESS 274  OLD WALTON  [02\/27\/26 19:39:53 JDICK] [EMS] PASSED OUT- ON COUCH ON SIDE  [02\/27\/26 19:39:31 JDICK] Event spawned from UNCONSCIOUS.  [02\/27\/2026 19:38:57 JDICK]","incidentLocationCity":"MONTEREY","streetName":"OLD WALTON RD","incidentAddressTextVersionStreet":"2174 OLD WALTON RD","locationCoordinates":"36.1279,-85.2468"}
[2026-03-02 13:00:50] [INFO] Number of extracted fields: 28
[2026-03-02 13:00:50] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC
EMS'
[2026-03-02 13:00:50] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
RESC
EMS', Parsed IDs = ["PCFD","RESC","EMS"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-02 13:00:50] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC","EMS"]
[2026-03-02 13:00:50] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:00:51] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:00:51] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC","EMS"]
[2026-03-02 13:00:51] [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-03-02 13:00:51] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:00:51] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-02 13:00:51] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:00:51] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:00:51] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-02 13:00:51] [INFO] Found existing Dispatch with cADNumber '2026000559', ID: 69a589f1c6fd25ed5 - will update instead of create
[2026-03-02 13:00:51] [INFO] Updated existing Dispatches record with ID: 69a589f1c6fd25ed5
[2026-03-02 13:00:51] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:00:51] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:00: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-03-02 13:00:55] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022088_20260302_125738_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:00:55] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:00:55] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022088_20260302_125738_3.XML
[2026-03-02 13:00:55] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022088_20260302_125738_3.XML for user: 68f1466aed072ad4a
[2026-03-02 13:00:55] [INFO] File size: 7292 bytes
[2026-03-02 13:00:55] [INFO] Created FTPFiles record with ID: 69a58a07e13e023aa
[2026-03-02 13:00:55] [INFO] About to extract fields from XML. File size: 7292 bytes
[2026-03-02 13:00:55] [INFO] Number of mappings: 28
[2026-03-02 13:00:55] [INFO] Starting XML parsing. Content length: 7292
[2026-03-02 13:00:55] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:00:55] [INFO] Processing 28 field mappings
[2026-03-02 13:00:55] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:00:55] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:00:55] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:00:55] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-02 13:00:55] [INFO]   -> Found value: PCFD
RESC
EMS
[2026-03-02 13:00:55] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC\nEMS"
[2026-03-02 13:00:55] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:00:55] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:00:55] [INFO]   -> Found value: 2026000559
[2026-03-02 13:00:55] [INFO]   -> Set field 'incidentInternalId' = "2026000559"
[2026-03-02 13:00:55] [INFO]   -> Set field 'dispatchRunNumber' = "2026000559"
[2026-03-02 13:00:55] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:00:55] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-02 13:00:55] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-02 13:00:55] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:00:55] [INFO]   -> Found value: 2174
[2026-03-02 13:00:55] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2174
[2026-03-02 13:00:55] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:00:55] [INFO]   -> Found value: TN
[2026-03-02 13:00:55] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:00:55] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:00:55] [INFO]   -> Found value: 38574
[2026-03-02 13:00:55] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-02 13:00:55] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:00:55] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:55] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:00:55] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:55] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:00:55] [INFO]   -> Found value: 36.12790
[2026-03-02 13:00:55] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1278999999999967940311762504279613494873046875
[2026-03-02 13:00:55] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:00:55] [INFO]   -> Found value: -85.24680
[2026-03-02 13:00:55] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2467999999999932470018393360078334808349609375
[2026-03-02 13:00:55] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:00:55] [INFO]   -> Found value: 2026-02-27 19:38:57
[2026-03-02 13:00:55] [INFO]   -> Set field 'alarm' = "2026-02-27 19:38:57"
[2026-03-02 13:00:55] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:00:55] [INFO]   -> Found value: 2026-02-27 19:39:22
[2026-03-02 13:00:55] [INFO]   -> Set field 'dispatched' = "2026-02-27 19:39:22"
[2026-03-02 13:00:55] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:00:55] [INFO]   -> Found value: 2026-02-27 19:40:51
[2026-03-02 13:00:55] [INFO]   -> Set field 'enroute' = "2026-02-27 19:40:51"
[2026-03-02 13:00:55] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:00:55] [INFO]   -> Found value: 2026-02-27 19:47:36
[2026-03-02 13:00:55] [INFO]   -> Set field 'onScene' = "2026-02-27 19:47:36"
[2026-03-02 13:00:55] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:00:55] [INFO]   -> Found value: 2026-02-27 20:09:49
[2026-03-02 13:00:55] [INFO]   -> Set field 'cleared' = "2026-02-27 20:09:49"
[2026-03-02 13:00:55] [INFO]   -> Set field 'inService' = "2026-02-27 20:09:49"
[2026-03-02 13:00:55] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:00:55] [INFO]   -> Found value: ANDY LN/WALTON HILLS RD
[2026-03-02 13:00:55] [INFO]   -> Set field 'incidentLocationCross' = "ANDY LN\/WALTON HILLS RD"
[2026-03-02 13:00:55] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:00:55] [INFO]   -> Found value: EN21
[2026-03-02 13:00:55] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-02 13:00:55] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:00:55] [INFO]   -> Found value: 2026-02-27 19:40:38
[2026-03-02 13:00:55] [INFO]   -> Set field 'timedispatch' = "2026-02-27 19:40:38"
[2026-03-02 13:00:55] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:00:55] [INFO]   -> Found value: 2026-02-27 19:40:51
[2026-03-02 13:00:55] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 19:40:51"
[2026-03-02 13:00:55] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:00:55] [INFO]   -> Found value: 2026-02-27 19:47:36
[2026-03-02 13:00:55] [INFO]   -> Set field 'timeonscene' = "2026-02-27 19:47:36"
[2026-03-02 13:00:55] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:00:55] [INFO]   -> Found value: 2026-02-27 20:09:49
[2026-03-02 13:00:55] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 20:09:49"
[2026-03-02 13:00:55] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:00:55] [INFO]   -> No value found (null or empty)
[2026-03-02 13:00:55] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:00:55] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:00:55] [INFO]   -> Found value: 20260022088
[2026-03-02 13:00:55] [INFO]   -> Set field 'policeReportNumber' = "20260022088"
[2026-03-02 13:00:55] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:00:55] [INFO]   -> Found value: [LAW] {P3335} EMS ON SCENE  [02/27/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02/27/26 19:55:56 ...
[2026-03-02 13:00:55] [INFO]   -> Set field 'dispatchNotes' = "[LAW] {P3335} EMS ON SCENE  [02\/27\/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02\/27\/26 19:55:56 DSWINK] .2  [02\/27\/26 19:52:32 EALMENDAREZ] .2 W  [02\/27\/26 19:52:08 EALMENDAREZ] [RESC] {542} PT AWAKE  [02\/27\/26 19:49:37 DSWINK] [LAW] {P3335} EMS BEHIND ME AT 291MM  [02\/27\/26 19:46:59 BAHARRIS] [EMS] HX OF SEIZURES  [02\/27\/26 19:41:00 JDICK] [EMS] THINKS HES COMING OUT OF IT- TALKING ALITTLE  [02\/27\/26 19:40:54 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:40:08 DKITCHENS] [EMS] 2174  [02\/27\/26 19:40:02 JDICK] [EMS] ADDRESS 274  OLD WALTON  [02\/27\/26 19:39:53 JDICK] [EMS] PASSED OUT- ON COUCH ON SIDE  [02\/27\/26 19:39:31 JDICK] Event spawned from UNCONSCIOUS.  [02\/27\/2026 19:38:57 JDICK]"
[2026-03-02 13:00:55] [INFO]   -> Set field 'cADLog' = "[LAW] {P3335} EMS ON SCENE  [02\/27\/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02\/27\/26 19:55:56 DSWINK] .2  [02\/27\/26 19:52:32 EALMENDAREZ] .2 W  [02\/27\/26 19:52:08 EALMENDAREZ] [RESC] {542} PT AWAKE  [02\/27\/26 19:49:37 DSWINK] [LAW] {P3335} EMS BEHIND ME AT 291MM  [02\/27\/26 19:46:59 BAHARRIS] [EMS] HX OF SEIZURES  [02\/27\/26 19:41:00 JDICK] [EMS] THINKS HES COMING OUT OF IT- TALKING ALITTLE  [02\/27\/26 19:40:54 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:40:08 DKITCHENS] [EMS] 2174  [02\/27\/26 19:40:02 JDICK] [EMS] ADDRESS 274  OLD WALTON  [02\/27\/26 19:39:53 JDICK] [EMS] PASSED OUT- ON COUCH ON SIDE  [02\/27\/26 19:39:31 JDICK] Event spawned from UNCONSCIOUS.  [02\/27\/2026 19:38:57 JDICK]"
[2026-03-02 13:00:55] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:00:55] [INFO]   -> Found value: MONTEREY
[2026-03-02 13:00:55] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-02 13:00:55] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:00:55] [INFO]   -> Found value: OLD WALTON
[2026-03-02 13:00:55] [INFO]   -> Set field 'streetName' = "OLD WALTON"
[2026-03-02 13:00:55] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:00:55] [INFO]   -> Found value: RD
[2026-03-02 13:00:55] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:00:55] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:00:55] [INFO]   -> Found value: 2174 OLD WALTON RD
[2026-03-02 13:00:55] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2174 OLD WALTON RD"
[2026-03-02 13:00:55] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 13:00:55] [INFO] Concatenating street name and type
[2026-03-02 13:00:55] [INFO]   -> Combined street name: OLD WALTON RD
[2026-03-02 13:00:55] [INFO] Built locationCoordinates from lat/lng: 36.1279,-85.2468
[2026-03-02 13:00:55] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nRESC\nEMS","incidentInternalId":"2026000559","dispatchRunNumber":"2026000559","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":2174,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1278999999999967940311762504279613494873046875,"nERISIncidentLongitude":-85.2467999999999932470018393360078334808349609375,"alarm":"2026-02-27 19:38:57","dispatched":"2026-02-27 19:39:22","enroute":"2026-02-27 19:40:51","onScene":"2026-02-27 19:47:36","cleared":"2026-02-27 20:09:49","inService":"2026-02-27 20:09:49","incidentLocationCross":"ANDY LN\/WALTON HILLS RD","cADVehicleID":"EN21","timedispatch":"2026-02-27 19:40:38","timeenroutetoscene":"2026-02-27 19:40:51","timeonscene":"2026-02-27 19:47:36","timeunitclear":"2026-02-27 20:09:49","policeReportNumber":"20260022088","dispatchNotes":"[LAW] {P3335} EMS ON SCENE  [02\/27\/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02\/27\/26 19:55:56 DSWINK] .2  [02\/27\/26 19:52:32 EALMENDAREZ] .2 W  [02\/27\/26 19:52:08 EALMENDAREZ] [RESC] {542} PT AWAKE  [02\/27\/26 19:49:37 DSWINK] [LAW] {P3335} EMS BEHIND ME AT 291MM  [02\/27\/26 19:46:59 BAHARRIS] [EMS] HX OF SEIZURES  [02\/27\/26 19:41:00 JDICK] [EMS] THINKS HES COMING OUT OF IT- TALKING ALITTLE  [02\/27\/26 19:40:54 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:40:08 DKITCHENS] [EMS] 2174  [02\/27\/26 19:40:02 JDICK] [EMS] ADDRESS 274  OLD WALTON  [02\/27\/26 19:39:53 JDICK] [EMS] PASSED OUT- ON COUCH ON SIDE  [02\/27\/26 19:39:31 JDICK] Event spawned from UNCONSCIOUS.  [02\/27\/2026 19:38:57 JDICK]","cADLog":"[LAW] {P3335} EMS ON SCENE  [02\/27\/26 19:58:08 BAHARRIS] [RESC] DROP EMS TO NON  [02\/27\/26 19:55:56 DSWINK] .2  [02\/27\/26 19:52:32 EALMENDAREZ] .2 W  [02\/27\/26 19:52:08 EALMENDAREZ] [RESC] {542} PT AWAKE  [02\/27\/26 19:49:37 DSWINK] [LAW] {P3335} EMS BEHIND ME AT 291MM  [02\/27\/26 19:46:59 BAHARRIS] [EMS] HX OF SEIZURES  [02\/27\/26 19:41:00 JDICK] [EMS] THINKS HES COMING OUT OF IT- TALKING ALITTLE  [02\/27\/26 19:40:54 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:40:08 DKITCHENS] [EMS] 2174  [02\/27\/26 19:40:02 JDICK] [EMS] ADDRESS 274  OLD WALTON  [02\/27\/26 19:39:53 JDICK] [EMS] PASSED OUT- ON COUCH ON SIDE  [02\/27\/26 19:39:31 JDICK] Event spawned from UNCONSCIOUS.  [02\/27\/2026 19:38:57 JDICK]","incidentLocationCity":"MONTEREY","streetName":"OLD WALTON RD","incidentAddressTextVersionStreet":"2174 OLD WALTON RD","locationCoordinates":"36.1279,-85.2468"}
[2026-03-02 13:00:55] [INFO] Number of extracted fields: 28
[2026-03-02 13:00:55] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC
EMS'
[2026-03-02 13:00:55] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
RESC
EMS', Parsed IDs = ["PCFD","RESC","EMS"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-02 13:00:55] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC","EMS"]
[2026-03-02 13:00:55] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:00:56] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:00:56] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC","EMS"]
[2026-03-02 13:00:56] [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-03-02 13:00:56] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:00:56] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-02 13:00:56] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:00:56] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:00:56] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-02 13:00:56] [INFO] Found existing Dispatch with cADNumber '2026000559', ID: 69a589f1c6fd25ed5 - will update instead of create
[2026-03-02 13:00:56] [INFO] Updated existing Dispatches record with ID: 69a589f1c6fd25ed5
[2026-03-02 13:00:56] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:00:56] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:00:59] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:00:59] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022088_20260302_125738_3.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:00:59] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:00:59] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022096_20260302_125740.XML
[2026-03-02 13:00:59] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022096_20260302_125740.XML for user: 68f1466aed072ad4a
[2026-03-02 13:00:59] [INFO] File size: 6881 bytes
[2026-03-02 13:01:00] [INFO] Created FTPFiles record with ID: 69a58a0c306c3f624
[2026-03-02 13:01:00] [INFO] About to extract fields from XML. File size: 6881 bytes
[2026-03-02 13:01:00] [INFO] Number of mappings: 28
[2026-03-02 13:01:00] [INFO] Starting XML parsing. Content length: 6881
[2026-03-02 13:01:00] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:01:00] [INFO] Processing 28 field mappings
[2026-03-02 13:01:00] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:01:00] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:01:00] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:01:00] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-02 13:01:00] [INFO]   -> Found value: PCFD
RESC
[2026-03-02 13:01:00] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC"
[2026-03-02 13:01:00] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:01:00] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:01:00] [INFO]   -> Found value: 2026000560
[2026-03-02 13:01:00] [INFO]   -> Set field 'incidentInternalId' = "2026000560"
[2026-03-02 13:01:00] [INFO]   -> Set field 'dispatchRunNumber' = "2026000560"
[2026-03-02 13:01:00] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:01:00] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-02 13:01:00] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-02 13:01:00] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:01:00] [INFO]   -> Found value: 292
[2026-03-02 13:01:00] [INFO]   -> Set field 'incidentLocationStreetNumber' = 292
[2026-03-02 13:01:00] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:01:00] [INFO]   -> Found value: TN
[2026-03-02 13:01:00] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:01:00] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:01:00] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:00] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:01:00] [INFO]   -> Found value: MM292W
[2026-03-02 13:01:00] [INFO]   -> Set field 'businessName' = "MM292W"
[2026-03-02 13:01:00] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:01:00] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:00] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:01:00] [INFO]   -> Found value: 36.14480
[2026-03-02 13:01:00] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14479999999999648707671440206468105316162109375
[2026-03-02 13:01:00] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:01:00] [INFO]   -> Found value: -85.41697
[2026-03-02 13:01:00] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4169700000000062800609157420694828033447265625
[2026-03-02 13:01:00] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:01:00] [INFO]   -> Found value: 2026-02-27 19:49:17
[2026-03-02 13:01:00] [INFO]   -> Set field 'alarm' = "2026-02-27 19:49:17"
[2026-03-02 13:01:00] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:01:00] [INFO]   -> Found value: 2026-02-27 19:51:22
[2026-03-02 13:01:00] [INFO]   -> Set field 'dispatched' = "2026-02-27 19:51:22"
[2026-03-02 13:01:00] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:01:00] [INFO]   -> Found value: 2026-02-27 19:52:51
[2026-03-02 13:01:00] [INFO]   -> Set field 'enroute' = "2026-02-27 19:52:51"
[2026-03-02 13:01:00] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:01:00] [INFO]   -> Found value: 2026-02-27 20:05:57
[2026-03-02 13:01:00] [INFO]   -> Set field 'onScene' = "2026-02-27 20:05:57"
[2026-03-02 13:01:00] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:01:00] [INFO]   -> Found value: 2026-02-27 20:17:26
[2026-03-02 13:01:00] [INFO]   -> Set field 'cleared' = "2026-02-27 20:17:26"
[2026-03-02 13:01:00] [INFO]   -> Set field 'inService' = "2026-02-27 20:17:26"
[2026-03-02 13:01:00] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:01:00] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:00] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:01:00] [INFO]   -> Found value: PCFR
[2026-03-02 13:01:00] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:01:00] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:01:00] [INFO]   -> Found value: 2026-02-27 19:51:22
[2026-03-02 13:01:00] [INFO]   -> Set field 'timedispatch' = "2026-02-27 19:51:22"
[2026-03-02 13:01:00] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:01:00] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:00] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:01:00] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:00] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:01:00] [INFO]   -> Found value: 2026-02-27 19:52:45
[2026-03-02 13:01:00] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 19:52:45"
[2026-03-02 13:01:00] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:01:00] [INFO]   -> Found value: 2026-02-27 19:52:45
[2026-03-02 13:01:00] [INFO]   -> Set field 'timecanceledenroute' = "2026-02-27 19:52:45"
[2026-03-02 13:01:00] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:01:00] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:01:00] [INFO]   -> Found value: 20260022096
[2026-03-02 13:01:00] [INFO]   -> Set field 'policeReportNumber' = "20260022096"
[2026-03-02 13:01:00] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:01:00] [INFO]   -> Found value: [EMS] UDTS: {726} PATIENT LOADED  [02/27/26 20:09:02 DSWINK] [LAW] {P3404} ACTIVE SIEZURE / EMS ON S...
[2026-03-02 13:01:00] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: {726} PATIENT LOADED  [02\/27\/26 20:09:02 DSWINK] [LAW] {P3404} ACTIVE SIEZURE \/ EMS ON SCENE  [02\/27\/26 20:03:13 BAHARRIS] [EMS] UDTS: THP NOTIFIED BY 911  [02\/27\/26 19:58:25 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:58:07 DKITCHENS] [EMS] SHAKING AGAIN  [02\/27\/26 19:57:26 EALMENDAREZ] [EMS] STATED HIS FEET AND LEGS FELT LIKE CONCRETE  [02\/27\/26 19:56:01 EALMENDAREZ] [EMS] HASNT FELT GOOD TODAY  [02\/27\/26 19:55:47 EALMENDAREZ] [EMS] STATES PT IS STILL BREATHING  [02\/27\/26 19:54:33 EALMENDAREZ] [EMS] STARTING TO JERK AND SHAKE  [02\/27\/26 19:54:04 EALMENDAREZ] [EMS] JOEY VELTMAN 8\/12\/1963  [02\/27\/26 19:51:28 EALMENDAREZ] [EMS] UNCONSCIOUS BUT BREATHING  [02\/27\/26 19:51:07 EALMENDAREZ] [EMS] HAZARDS  BLUE JEEP  [02\/27\/26 19:50:53 EALMENDAREZ] Event spawned from FAINTING \/ SYNCOPE.  [02\/27\/2026 19:49:17 EALMENDAREZ]"
[2026-03-02 13:01:00] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: {726} PATIENT LOADED  [02\/27\/26 20:09:02 DSWINK] [LAW] {P3404} ACTIVE SIEZURE \/ EMS ON SCENE  [02\/27\/26 20:03:13 BAHARRIS] [EMS] UDTS: THP NOTIFIED BY 911  [02\/27\/26 19:58:25 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:58:07 DKITCHENS] [EMS] SHAKING AGAIN  [02\/27\/26 19:57:26 EALMENDAREZ] [EMS] STATED HIS FEET AND LEGS FELT LIKE CONCRETE  [02\/27\/26 19:56:01 EALMENDAREZ] [EMS] HASNT FELT GOOD TODAY  [02\/27\/26 19:55:47 EALMENDAREZ] [EMS] STATES PT IS STILL BREATHING  [02\/27\/26 19:54:33 EALMENDAREZ] [EMS] STARTING TO JERK AND SHAKE  [02\/27\/26 19:54:04 EALMENDAREZ] [EMS] JOEY VELTMAN 8\/12\/1963  [02\/27\/26 19:51:28 EALMENDAREZ] [EMS] UNCONSCIOUS BUT BREATHING  [02\/27\/26 19:51:07 EALMENDAREZ] [EMS] HAZARDS  BLUE JEEP  [02\/27\/26 19:50:53 EALMENDAREZ] Event spawned from FAINTING \/ SYNCOPE.  [02\/27\/2026 19:49:17 EALMENDAREZ]"
[2026-03-02 13:01:00] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:01:00] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:01:00] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:01:00] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:01:00] [INFO]   -> Found value: I 40
[2026-03-02 13:01:00] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-02 13:01:00] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:01:00] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:00] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:01:00] [INFO]   -> Found value: 292 W I 40
[2026-03-02 13:01:00] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "292 W I 40"
[2026-03-02 13:01:00] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-03-02 13:01:00] [INFO] Built locationCoordinates from lat/lng: 36.1448,-85.41697
[2026-03-02 13:01:00] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nRESC","incidentInternalId":"2026000560","dispatchRunNumber":"2026000560","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":292,"incidentLocationStateName":"TN","businessName":"MM292W","nERISIncidentLatitude":36.14479999999999648707671440206468105316162109375,"nERISIncidentLongitude":-85.4169700000000062800609157420694828033447265625,"alarm":"2026-02-27 19:49:17","dispatched":"2026-02-27 19:51:22","enroute":"2026-02-27 19:52:51","onScene":"2026-02-27 20:05:57","cleared":"2026-02-27 20:17:26","inService":"2026-02-27 20:17:26","cADVehicleID":"PCFR","timedispatch":"2026-02-27 19:51:22","timeunitclear":"2026-02-27 19:52:45","timecanceledenroute":"2026-02-27 19:52:45","policeReportNumber":"20260022096","dispatchNotes":"[EMS] UDTS: {726} PATIENT LOADED  [02\/27\/26 20:09:02 DSWINK] [LAW] {P3404} ACTIVE SIEZURE \/ EMS ON SCENE  [02\/27\/26 20:03:13 BAHARRIS] [EMS] UDTS: THP NOTIFIED BY 911  [02\/27\/26 19:58:25 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:58:07 DKITCHENS] [EMS] SHAKING AGAIN  [02\/27\/26 19:57:26 EALMENDAREZ] [EMS] STATED HIS FEET AND LEGS FELT LIKE CONCRETE  [02\/27\/26 19:56:01 EALMENDAREZ] [EMS] HASNT FELT GOOD TODAY  [02\/27\/26 19:55:47 EALMENDAREZ] [EMS] STATES PT IS STILL BREATHING  [02\/27\/26 19:54:33 EALMENDAREZ] [EMS] STARTING TO JERK AND SHAKE  [02\/27\/26 19:54:04 EALMENDAREZ] [EMS] JOEY VELTMAN 8\/12\/1963  [02\/27\/26 19:51:28 EALMENDAREZ] [EMS] UNCONSCIOUS BUT BREATHING  [02\/27\/26 19:51:07 EALMENDAREZ] [EMS] HAZARDS  BLUE JEEP  [02\/27\/26 19:50:53 EALMENDAREZ] Event spawned from FAINTING \/ SYNCOPE.  [02\/27\/2026 19:49:17 EALMENDAREZ]","cADLog":"[EMS] UDTS: {726} PATIENT LOADED  [02\/27\/26 20:09:02 DSWINK] [LAW] {P3404} ACTIVE SIEZURE \/ EMS ON SCENE  [02\/27\/26 20:03:13 BAHARRIS] [EMS] UDTS: THP NOTIFIED BY 911  [02\/27\/26 19:58:25 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:58:07 DKITCHENS] [EMS] SHAKING AGAIN  [02\/27\/26 19:57:26 EALMENDAREZ] [EMS] STATED HIS FEET AND LEGS FELT LIKE CONCRETE  [02\/27\/26 19:56:01 EALMENDAREZ] [EMS] HASNT FELT GOOD TODAY  [02\/27\/26 19:55:47 EALMENDAREZ] [EMS] STATES PT IS STILL BREATHING  [02\/27\/26 19:54:33 EALMENDAREZ] [EMS] STARTING TO JERK AND SHAKE  [02\/27\/26 19:54:04 EALMENDAREZ] [EMS] JOEY VELTMAN 8\/12\/1963  [02\/27\/26 19:51:28 EALMENDAREZ] [EMS] UNCONSCIOUS BUT BREATHING  [02\/27\/26 19:51:07 EALMENDAREZ] [EMS] HAZARDS  BLUE JEEP  [02\/27\/26 19:50:53 EALMENDAREZ] Event spawned from FAINTING \/ SYNCOPE.  [02\/27\/2026 19:49:17 EALMENDAREZ]","incidentLocationCity":"COOKEVILLE","streetName":"I 40","incidentAddressTextVersionStreet":"292 W I 40","locationCoordinates":"36.1448,-85.41697"}
[2026-03-02 13:01:00] [INFO] Number of extracted fields: 26
[2026-03-02 13:01:00] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC'
[2026-03-02 13:01:00] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
RESC', Parsed IDs = ["PCFD","RESC"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-02 13:01:00] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC"]
[2026-03-02 13:01:00] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:01:00] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:01:00] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-02 13:01:00] [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-03-02 13:01:00] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:01:00] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-02 13:01:00] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:01:00] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:01:00] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-02 13:01:12] [INFO] Created new Dispatches record with ID: 69a58a0d008503672
[2026-03-02 13:01:12] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:01:12] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:01: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-03-02 13:01:15] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022096_20260302_125740.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:01:15] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:01:15] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022096_20260302_125740_1.XML
[2026-03-02 13:01:15] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022096_20260302_125740_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:01:15] [INFO] File size: 6881 bytes
[2026-03-02 13:01:15] [INFO] Created FTPFiles record with ID: 69a58a1bbc2536a85
[2026-03-02 13:01:15] [INFO] About to extract fields from XML. File size: 6881 bytes
[2026-03-02 13:01:15] [INFO] Number of mappings: 28
[2026-03-02 13:01:15] [INFO] Starting XML parsing. Content length: 6881
[2026-03-02 13:01:15] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:01:15] [INFO] Processing 28 field mappings
[2026-03-02 13:01:15] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:01:15] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:01:15] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:01:15] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-02 13:01:15] [INFO]   -> Found value: PCFD
RESC
[2026-03-02 13:01:15] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC"
[2026-03-02 13:01:15] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:01:15] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:01:15] [INFO]   -> Found value: 2026000560
[2026-03-02 13:01:15] [INFO]   -> Set field 'incidentInternalId' = "2026000560"
[2026-03-02 13:01:15] [INFO]   -> Set field 'dispatchRunNumber' = "2026000560"
[2026-03-02 13:01:15] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:01:15] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-02 13:01:15] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-02 13:01:15] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:01:15] [INFO]   -> Found value: 292
[2026-03-02 13:01:15] [INFO]   -> Set field 'incidentLocationStreetNumber' = 292
[2026-03-02 13:01:15] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:01:15] [INFO]   -> Found value: TN
[2026-03-02 13:01:15] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:01:15] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:01:15] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:15] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:01:15] [INFO]   -> Found value: MM292W
[2026-03-02 13:01:15] [INFO]   -> Set field 'businessName' = "MM292W"
[2026-03-02 13:01:15] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:01:15] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:15] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:01:15] [INFO]   -> Found value: 36.14480
[2026-03-02 13:01:15] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14479999999999648707671440206468105316162109375
[2026-03-02 13:01:15] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:01:15] [INFO]   -> Found value: -85.41697
[2026-03-02 13:01:15] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4169700000000062800609157420694828033447265625
[2026-03-02 13:01:15] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:01:15] [INFO]   -> Found value: 2026-02-27 19:49:17
[2026-03-02 13:01:15] [INFO]   -> Set field 'alarm' = "2026-02-27 19:49:17"
[2026-03-02 13:01:15] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:01:15] [INFO]   -> Found value: 2026-02-27 19:51:22
[2026-03-02 13:01:15] [INFO]   -> Set field 'dispatched' = "2026-02-27 19:51:22"
[2026-03-02 13:01:15] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:01:15] [INFO]   -> Found value: 2026-02-27 19:52:51
[2026-03-02 13:01:15] [INFO]   -> Set field 'enroute' = "2026-02-27 19:52:51"
[2026-03-02 13:01:15] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:01:15] [INFO]   -> Found value: 2026-02-27 20:05:57
[2026-03-02 13:01:15] [INFO]   -> Set field 'onScene' = "2026-02-27 20:05:57"
[2026-03-02 13:01:15] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:01:15] [INFO]   -> Found value: 2026-02-27 20:17:26
[2026-03-02 13:01:15] [INFO]   -> Set field 'cleared' = "2026-02-27 20:17:26"
[2026-03-02 13:01:15] [INFO]   -> Set field 'inService' = "2026-02-27 20:17:26"
[2026-03-02 13:01:15] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:01:15] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:15] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:01:15] [INFO]   -> Found value: PCFR
[2026-03-02 13:01:15] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:01:15] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:01:15] [INFO]   -> Found value: 2026-02-27 19:51:22
[2026-03-02 13:01:15] [INFO]   -> Set field 'timedispatch' = "2026-02-27 19:51:22"
[2026-03-02 13:01:15] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:01:15] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:15] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:01:15] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:15] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:01:15] [INFO]   -> Found value: 2026-02-27 19:52:45
[2026-03-02 13:01:15] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 19:52:45"
[2026-03-02 13:01:15] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:01:15] [INFO]   -> Found value: 2026-02-27 19:52:45
[2026-03-02 13:01:15] [INFO]   -> Set field 'timecanceledenroute' = "2026-02-27 19:52:45"
[2026-03-02 13:01:15] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:01:15] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:01:15] [INFO]   -> Found value: 20260022096
[2026-03-02 13:01:15] [INFO]   -> Set field 'policeReportNumber' = "20260022096"
[2026-03-02 13:01:15] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:01:15] [INFO]   -> Found value: [EMS] UDTS: {726} PATIENT LOADED  [02/27/26 20:09:02 DSWINK] [LAW] {P3404} ACTIVE SIEZURE / EMS ON S...
[2026-03-02 13:01:15] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: {726} PATIENT LOADED  [02\/27\/26 20:09:02 DSWINK] [LAW] {P3404} ACTIVE SIEZURE \/ EMS ON SCENE  [02\/27\/26 20:03:13 BAHARRIS] [EMS] UDTS: THP NOTIFIED BY 911  [02\/27\/26 19:58:25 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:58:07 DKITCHENS] [EMS] SHAKING AGAIN  [02\/27\/26 19:57:26 EALMENDAREZ] [EMS] STATED HIS FEET AND LEGS FELT LIKE CONCRETE  [02\/27\/26 19:56:01 EALMENDAREZ] [EMS] HASNT FELT GOOD TODAY  [02\/27\/26 19:55:47 EALMENDAREZ] [EMS] STATES PT IS STILL BREATHING  [02\/27\/26 19:54:33 EALMENDAREZ] [EMS] STARTING TO JERK AND SHAKE  [02\/27\/26 19:54:04 EALMENDAREZ] [EMS] JOEY VELTMAN 8\/12\/1963  [02\/27\/26 19:51:28 EALMENDAREZ] [EMS] UNCONSCIOUS BUT BREATHING  [02\/27\/26 19:51:07 EALMENDAREZ] [EMS] HAZARDS  BLUE JEEP  [02\/27\/26 19:50:53 EALMENDAREZ] Event spawned from FAINTING \/ SYNCOPE.  [02\/27\/2026 19:49:17 EALMENDAREZ]"
[2026-03-02 13:01:15] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: {726} PATIENT LOADED  [02\/27\/26 20:09:02 DSWINK] [LAW] {P3404} ACTIVE SIEZURE \/ EMS ON SCENE  [02\/27\/26 20:03:13 BAHARRIS] [EMS] UDTS: THP NOTIFIED BY 911  [02\/27\/26 19:58:25 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:58:07 DKITCHENS] [EMS] SHAKING AGAIN  [02\/27\/26 19:57:26 EALMENDAREZ] [EMS] STATED HIS FEET AND LEGS FELT LIKE CONCRETE  [02\/27\/26 19:56:01 EALMENDAREZ] [EMS] HASNT FELT GOOD TODAY  [02\/27\/26 19:55:47 EALMENDAREZ] [EMS] STATES PT IS STILL BREATHING  [02\/27\/26 19:54:33 EALMENDAREZ] [EMS] STARTING TO JERK AND SHAKE  [02\/27\/26 19:54:04 EALMENDAREZ] [EMS] JOEY VELTMAN 8\/12\/1963  [02\/27\/26 19:51:28 EALMENDAREZ] [EMS] UNCONSCIOUS BUT BREATHING  [02\/27\/26 19:51:07 EALMENDAREZ] [EMS] HAZARDS  BLUE JEEP  [02\/27\/26 19:50:53 EALMENDAREZ] Event spawned from FAINTING \/ SYNCOPE.  [02\/27\/2026 19:49:17 EALMENDAREZ]"
[2026-03-02 13:01:15] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:01:15] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:01:15] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:01:15] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:01:15] [INFO]   -> Found value: I 40
[2026-03-02 13:01:15] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-02 13:01:15] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:01:15] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:15] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:01:15] [INFO]   -> Found value: 292 W I 40
[2026-03-02 13:01:15] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "292 W I 40"
[2026-03-02 13:01:15] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-03-02 13:01:15] [INFO] Built locationCoordinates from lat/lng: 36.1448,-85.41697
[2026-03-02 13:01:15] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nRESC","incidentInternalId":"2026000560","dispatchRunNumber":"2026000560","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":292,"incidentLocationStateName":"TN","businessName":"MM292W","nERISIncidentLatitude":36.14479999999999648707671440206468105316162109375,"nERISIncidentLongitude":-85.4169700000000062800609157420694828033447265625,"alarm":"2026-02-27 19:49:17","dispatched":"2026-02-27 19:51:22","enroute":"2026-02-27 19:52:51","onScene":"2026-02-27 20:05:57","cleared":"2026-02-27 20:17:26","inService":"2026-02-27 20:17:26","cADVehicleID":"PCFR","timedispatch":"2026-02-27 19:51:22","timeunitclear":"2026-02-27 19:52:45","timecanceledenroute":"2026-02-27 19:52:45","policeReportNumber":"20260022096","dispatchNotes":"[EMS] UDTS: {726} PATIENT LOADED  [02\/27\/26 20:09:02 DSWINK] [LAW] {P3404} ACTIVE SIEZURE \/ EMS ON SCENE  [02\/27\/26 20:03:13 BAHARRIS] [EMS] UDTS: THP NOTIFIED BY 911  [02\/27\/26 19:58:25 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:58:07 DKITCHENS] [EMS] SHAKING AGAIN  [02\/27\/26 19:57:26 EALMENDAREZ] [EMS] STATED HIS FEET AND LEGS FELT LIKE CONCRETE  [02\/27\/26 19:56:01 EALMENDAREZ] [EMS] HASNT FELT GOOD TODAY  [02\/27\/26 19:55:47 EALMENDAREZ] [EMS] STATES PT IS STILL BREATHING  [02\/27\/26 19:54:33 EALMENDAREZ] [EMS] STARTING TO JERK AND SHAKE  [02\/27\/26 19:54:04 EALMENDAREZ] [EMS] JOEY VELTMAN 8\/12\/1963  [02\/27\/26 19:51:28 EALMENDAREZ] [EMS] UNCONSCIOUS BUT BREATHING  [02\/27\/26 19:51:07 EALMENDAREZ] [EMS] HAZARDS  BLUE JEEP  [02\/27\/26 19:50:53 EALMENDAREZ] Event spawned from FAINTING \/ SYNCOPE.  [02\/27\/2026 19:49:17 EALMENDAREZ]","cADLog":"[EMS] UDTS: {726} PATIENT LOADED  [02\/27\/26 20:09:02 DSWINK] [LAW] {P3404} ACTIVE SIEZURE \/ EMS ON SCENE  [02\/27\/26 20:03:13 BAHARRIS] [EMS] UDTS: THP NOTIFIED BY 911  [02\/27\/26 19:58:25 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/27\/26 19:58:07 DKITCHENS] [EMS] SHAKING AGAIN  [02\/27\/26 19:57:26 EALMENDAREZ] [EMS] STATED HIS FEET AND LEGS FELT LIKE CONCRETE  [02\/27\/26 19:56:01 EALMENDAREZ] [EMS] HASNT FELT GOOD TODAY  [02\/27\/26 19:55:47 EALMENDAREZ] [EMS] STATES PT IS STILL BREATHING  [02\/27\/26 19:54:33 EALMENDAREZ] [EMS] STARTING TO JERK AND SHAKE  [02\/27\/26 19:54:04 EALMENDAREZ] [EMS] JOEY VELTMAN 8\/12\/1963  [02\/27\/26 19:51:28 EALMENDAREZ] [EMS] UNCONSCIOUS BUT BREATHING  [02\/27\/26 19:51:07 EALMENDAREZ] [EMS] HAZARDS  BLUE JEEP  [02\/27\/26 19:50:53 EALMENDAREZ] Event spawned from FAINTING \/ SYNCOPE.  [02\/27\/2026 19:49:17 EALMENDAREZ]","incidentLocationCity":"COOKEVILLE","streetName":"I 40","incidentAddressTextVersionStreet":"292 W I 40","locationCoordinates":"36.1448,-85.41697"}
[2026-03-02 13:01:15] [INFO] Number of extracted fields: 26
[2026-03-02 13:01:15] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC'
[2026-03-02 13:01:15] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
RESC', Parsed IDs = ["PCFD","RESC"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-02 13:01:15] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC"]
[2026-03-02 13:01:15] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:01:15] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:01:15] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-02 13:01:16] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-02 13:01:16] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:01:16] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-02 13:01:16] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:01:16] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:01:16] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-02 13:01:16] [INFO] Found existing Dispatch with cADNumber '2026000560', ID: 69a58a0d008503672 - will update instead of create
[2026-03-02 13:01:16] [INFO] Updated existing Dispatches record with ID: 69a58a0d008503672
[2026-03-02 13:01:16] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:01:16] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:01: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-03-02 13:01:20] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022096_20260302_125740_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:01:20] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:01:20] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022157_20260302_125742.XML
[2026-03-02 13:01:20] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022157_20260302_125742.XML for user: 68f1466aed072ad4a
[2026-03-02 13:01:20] [INFO] File size: 6786 bytes
[2026-03-02 13:01:20] [INFO] Created FTPFiles record with ID: 69a58a20610fac98b
[2026-03-02 13:01:20] [INFO] About to extract fields from XML. File size: 6786 bytes
[2026-03-02 13:01:20] [INFO] Number of mappings: 28
[2026-03-02 13:01:20] [INFO] Starting XML parsing. Content length: 6786
[2026-03-02 13:01:20] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:01:20] [INFO] Processing 28 field mappings
[2026-03-02 13:01:20] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:01:20] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:01:20] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:01:20] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-02 13:01:20] [INFO]   -> Found value: PCFD
PCSO
[2026-03-02 13:01:20] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO"
[2026-03-02 13:01:20] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:01:20] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:01:20] [INFO]   -> Found value: 2026000561
[2026-03-02 13:01:20] [INFO]   -> Set field 'incidentInternalId' = "2026000561"
[2026-03-02 13:01:20] [INFO]   -> Set field 'dispatchRunNumber' = "2026000561"
[2026-03-02 13:01:20] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:01:20] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-02 13:01:20] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-02 13:01:20] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:01:20] [INFO]   -> Found value: 2475
[2026-03-02 13:01:20] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2475
[2026-03-02 13:01:20] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:01:20] [INFO]   -> Found value: TN
[2026-03-02 13:01:20] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:01:20] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:01:20] [INFO]   -> Found value: 38501
[2026-03-02 13:01:20] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-02 13:01:20] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:01:20] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:20] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:01:20] [INFO]   -> Found value: J4
[2026-03-02 13:01:20] [INFO]   -> Set field 'incidentLocationApt' = "J4"
[2026-03-02 13:01:20] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:01:20] [INFO]   -> Found value: 36.19965
[2026-03-02 13:01:20] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19964999999999832880348549224436283111572265625
[2026-03-02 13:01:20] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:01:20] [INFO]   -> Found value: -85.50876
[2026-03-02 13:01:20] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.50875999999999521605786867439746856689453125
[2026-03-02 13:01:20] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:01:20] [INFO]   -> Found value: 2026-02-28 00:21:45
[2026-03-02 13:01:20] [INFO]   -> Set field 'alarm' = "2026-02-28 00:21:45"
[2026-03-02 13:01:20] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:01:20] [INFO]   -> Found value: 2026-02-28 00:27:08
[2026-03-02 13:01:20] [INFO]   -> Set field 'dispatched' = "2026-02-28 00:27:08"
[2026-03-02 13:01:20] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:01:20] [INFO]   -> Found value: 2026-02-28 00:28:57
[2026-03-02 13:01:20] [INFO]   -> Set field 'enroute' = "2026-02-28 00:28:57"
[2026-03-02 13:01:20] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:01:20] [INFO]   -> Found value: 2026-02-28 00:38:08
[2026-03-02 13:01:20] [INFO]   -> Set field 'onScene' = "2026-02-28 00:38:08"
[2026-03-02 13:01:20] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:01:20] [INFO]   -> Found value: 2026-02-28 01:11:04
[2026-03-02 13:01:20] [INFO]   -> Set field 'cleared' = "2026-02-28 01:11:04"
[2026-03-02 13:01:20] [INFO]   -> Set field 'inService' = "2026-02-28 01:11:04"
[2026-03-02 13:01:20] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:01:20] [INFO]   -> Found value: N DIXIE AVE/KINNIARD RD
[2026-03-02 13:01:20] [INFO]   -> Set field 'incidentLocationCross' = "N DIXIE AVE\/KINNIARD RD"
[2026-03-02 13:01:20] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:01:20] [INFO]   -> Found value: EN11
[2026-03-02 13:01:20] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 13:01:20] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:01:20] [INFO]   -> Found value: 2026-02-28 00:27:08
[2026-03-02 13:01:20] [INFO]   -> Set field 'timedispatch' = "2026-02-28 00:27:08"
[2026-03-02 13:01:20] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:01:20] [INFO]   -> Found value: 2026-02-28 00:31:33
[2026-03-02 13:01:20] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 00:31:33"
[2026-03-02 13:01:20] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:01:20] [INFO]   -> Found value: 2026-02-28 00:38:17
[2026-03-02 13:01:20] [INFO]   -> Set field 'timeonscene' = "2026-02-28 00:38:17"
[2026-03-02 13:01:20] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:01:20] [INFO]   -> Found value: 2026-02-28 01:11:04
[2026-03-02 13:01:20] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 01:11:04"
[2026-03-02 13:01:20] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:01:20] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:20] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:01:20] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:01:20] [INFO]   -> Found value: 20260022157
[2026-03-02 13:01:20] [INFO]   -> Set field 'policeReportNumber' = "20260022157"
[2026-03-02 13:01:20] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:01:20] [INFO]   -> Found value: [EMS] UDTS: CARD SEEN BY 911  [02/28/26 00:40:37 DSWINK] UDTS: CARD SEEN BY 911  [02/28/26 00:40:36 ...
[2026-03-02 13:01:20] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:37 DSWINK] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:36 JDICK] [LAW] {P3385} REQ EMS 30 TRAFFIC  [02\/28\/26 00:40:26 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 00:27:28 DKITCHENS] CALLER STILL ON SCENE  [02\/28\/26 00:26:29 JDICK] CALLER ADVISED HER FRIEND WAS TRYING TO COMMIT SUICIDE BY LIGHTING A SMOKER IN HIS APARTMENT- HE REACHED OUT TO HER AND THEY GOT TO HIM BEFORE ANYTHING HAPPENED - NEED APARTMENT VENTILATED  [02\/28\/26 00:25:28 JDICK]]"
[2026-03-02 13:01:20] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:37 DSWINK] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:36 JDICK] [LAW] {P3385} REQ EMS 30 TRAFFIC  [02\/28\/26 00:40:26 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 00:27:28 DKITCHENS] CALLER STILL ON SCENE  [02\/28\/26 00:26:29 JDICK] CALLER ADVISED HER FRIEND WAS TRYING TO COMMIT SUICIDE BY LIGHTING A SMOKER IN HIS APARTMENT- HE REACHED OUT TO HER AND THEY GOT TO HIM BEFORE ANYTHING HAPPENED - NEED APARTMENT VENTILATED  [02\/28\/26 00:25:28 JDICK]]"
[2026-03-02 13:01:20] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:01:20] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:01:20] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:01:20] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:01:20] [INFO]   -> Found value: DODSON BRANCH
[2026-03-02 13:01:20] [INFO]   -> Set field 'streetName' = "DODSON BRANCH"
[2026-03-02 13:01:20] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:01:20] [INFO]   -> Found value: RD
[2026-03-02 13:01:20] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:01:20] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:01:20] [INFO]   -> Found value: 2475-J4 DODSON BRANCH RD
[2026-03-02 13:01:20] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2475-J4 DODSON BRANCH RD"
[2026-03-02 13:01:20] [INFO] Finished extracting fields. Total fields extracted: 29
[2026-03-02 13:01:20] [INFO] Concatenating street name and type
[2026-03-02 13:01:20] [INFO]   -> Combined street name: DODSON BRANCH RD
[2026-03-02 13:01:20] [INFO] Built locationCoordinates from lat/lng: 36.19965,-85.50876
[2026-03-02 13:01:20] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO","incidentInternalId":"2026000561","dispatchRunNumber":"2026000561","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":2475,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"incidentLocationApt":"J4","nERISIncidentLatitude":36.19964999999999832880348549224436283111572265625,"nERISIncidentLongitude":-85.50875999999999521605786867439746856689453125,"alarm":"2026-02-28 00:21:45","dispatched":"2026-02-28 00:27:08","enroute":"2026-02-28 00:28:57","onScene":"2026-02-28 00:38:08","cleared":"2026-02-28 01:11:04","inService":"2026-02-28 01:11:04","incidentLocationCross":"N DIXIE AVE\/KINNIARD RD","cADVehicleID":"EN11","timedispatch":"2026-02-28 00:27:08","timeenroutetoscene":"2026-02-28 00:31:33","timeonscene":"2026-02-28 00:38:17","timeunitclear":"2026-02-28 01:11:04","policeReportNumber":"20260022157","dispatchNotes":"[EMS] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:37 DSWINK] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:36 JDICK] [LAW] {P3385} REQ EMS 30 TRAFFIC  [02\/28\/26 00:40:26 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 00:27:28 DKITCHENS] CALLER STILL ON SCENE  [02\/28\/26 00:26:29 JDICK] CALLER ADVISED HER FRIEND WAS TRYING TO COMMIT SUICIDE BY LIGHTING A SMOKER IN HIS APARTMENT- HE REACHED OUT TO HER AND THEY GOT TO HIM BEFORE ANYTHING HAPPENED - NEED APARTMENT VENTILATED  [02\/28\/26 00:25:28 JDICK]]","cADLog":"[EMS] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:37 DSWINK] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:36 JDICK] [LAW] {P3385} REQ EMS 30 TRAFFIC  [02\/28\/26 00:40:26 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 00:27:28 DKITCHENS] CALLER STILL ON SCENE  [02\/28\/26 00:26:29 JDICK] CALLER ADVISED HER FRIEND WAS TRYING TO COMMIT SUICIDE BY LIGHTING A SMOKER IN HIS APARTMENT- HE REACHED OUT TO HER AND THEY GOT TO HIM BEFORE ANYTHING HAPPENED - NEED APARTMENT VENTILATED  [02\/28\/26 00:25:28 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"DODSON BRANCH RD","incidentAddressTextVersionStreet":"2475-J4 DODSON BRANCH RD","locationCoordinates":"36.19965,-85.50876"}
[2026-03-02 13:01:20] [INFO] Number of extracted fields: 29
[2026-03-02 13:01:20] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO'
[2026-03-02 13:01:20] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO', Parsed IDs = ["PCFD","PCSO"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-02 13:01:20] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO"]
[2026-03-02 13:01:20] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:01:20] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:01:20] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO"]
[2026-03-02 13:01: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-03-02 13:01:20] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:01:20] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-02 13:01:20] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:01:20] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:01:20] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-02 13:01:29] [INFO] Created new Dispatches record with ID: 69a58a212121b6b22
[2026-03-02 13:01:29] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:01:29] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:01:33] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:01:33] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022157_20260302_125742.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:01:33] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:01:33] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022157_20260302_125742_1.XML
[2026-03-02 13:01:33] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022157_20260302_125742_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:01:33] [INFO] File size: 6786 bytes
[2026-03-02 13:01:33] [INFO] Created FTPFiles record with ID: 69a58a2d8c697882a
[2026-03-02 13:01:33] [INFO] About to extract fields from XML. File size: 6786 bytes
[2026-03-02 13:01:33] [INFO] Number of mappings: 28
[2026-03-02 13:01:33] [INFO] Starting XML parsing. Content length: 6786
[2026-03-02 13:01:33] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:01:33] [INFO] Processing 28 field mappings
[2026-03-02 13:01:33] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:01:33] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:01:33] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:01:33] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-02 13:01:33] [INFO]   -> Found value: PCFD
PCSO
[2026-03-02 13:01:33] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO"
[2026-03-02 13:01:33] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:01:33] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:01:33] [INFO]   -> Found value: 2026000561
[2026-03-02 13:01:33] [INFO]   -> Set field 'incidentInternalId' = "2026000561"
[2026-03-02 13:01:33] [INFO]   -> Set field 'dispatchRunNumber' = "2026000561"
[2026-03-02 13:01:33] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:01:33] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-02 13:01:33] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-02 13:01:33] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:01:33] [INFO]   -> Found value: 2475
[2026-03-02 13:01:33] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2475
[2026-03-02 13:01:33] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:01:33] [INFO]   -> Found value: TN
[2026-03-02 13:01:33] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:01:33] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:01:33] [INFO]   -> Found value: 38501
[2026-03-02 13:01:33] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-02 13:01:33] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:01:33] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:33] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:01:33] [INFO]   -> Found value: J4
[2026-03-02 13:01:33] [INFO]   -> Set field 'incidentLocationApt' = "J4"
[2026-03-02 13:01:33] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:01:33] [INFO]   -> Found value: 36.19965
[2026-03-02 13:01:33] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19964999999999832880348549224436283111572265625
[2026-03-02 13:01:33] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:01:33] [INFO]   -> Found value: -85.50876
[2026-03-02 13:01:33] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.50875999999999521605786867439746856689453125
[2026-03-02 13:01:33] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:01:33] [INFO]   -> Found value: 2026-02-28 00:21:45
[2026-03-02 13:01:33] [INFO]   -> Set field 'alarm' = "2026-02-28 00:21:45"
[2026-03-02 13:01:33] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:01:33] [INFO]   -> Found value: 2026-02-28 00:27:08
[2026-03-02 13:01:33] [INFO]   -> Set field 'dispatched' = "2026-02-28 00:27:08"
[2026-03-02 13:01:33] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:01:33] [INFO]   -> Found value: 2026-02-28 00:28:57
[2026-03-02 13:01:33] [INFO]   -> Set field 'enroute' = "2026-02-28 00:28:57"
[2026-03-02 13:01:33] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:01:33] [INFO]   -> Found value: 2026-02-28 00:38:08
[2026-03-02 13:01:33] [INFO]   -> Set field 'onScene' = "2026-02-28 00:38:08"
[2026-03-02 13:01:33] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:01:33] [INFO]   -> Found value: 2026-02-28 01:11:04
[2026-03-02 13:01:33] [INFO]   -> Set field 'cleared' = "2026-02-28 01:11:04"
[2026-03-02 13:01:33] [INFO]   -> Set field 'inService' = "2026-02-28 01:11:04"
[2026-03-02 13:01:33] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:01:33] [INFO]   -> Found value: N DIXIE AVE/KINNIARD RD
[2026-03-02 13:01:33] [INFO]   -> Set field 'incidentLocationCross' = "N DIXIE AVE\/KINNIARD RD"
[2026-03-02 13:01:33] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:01:33] [INFO]   -> Found value: EN11
[2026-03-02 13:01:33] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 13:01:33] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:01:33] [INFO]   -> Found value: 2026-02-28 00:27:08
[2026-03-02 13:01:33] [INFO]   -> Set field 'timedispatch' = "2026-02-28 00:27:08"
[2026-03-02 13:01:33] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:01:33] [INFO]   -> Found value: 2026-02-28 00:31:33
[2026-03-02 13:01:33] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 00:31:33"
[2026-03-02 13:01:33] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:01:33] [INFO]   -> Found value: 2026-02-28 00:38:17
[2026-03-02 13:01:33] [INFO]   -> Set field 'timeonscene' = "2026-02-28 00:38:17"
[2026-03-02 13:01:33] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:01:33] [INFO]   -> Found value: 2026-02-28 01:11:04
[2026-03-02 13:01:33] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 01:11:04"
[2026-03-02 13:01:33] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:01:33] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:33] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:01:33] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:01:33] [INFO]   -> Found value: 20260022157
[2026-03-02 13:01:33] [INFO]   -> Set field 'policeReportNumber' = "20260022157"
[2026-03-02 13:01:33] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:01:33] [INFO]   -> Found value: [EMS] UDTS: CARD SEEN BY 911  [02/28/26 00:40:37 DSWINK] UDTS: CARD SEEN BY 911  [02/28/26 00:40:36 ...
[2026-03-02 13:01:33] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:37 DSWINK] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:36 JDICK] [LAW] {P3385} REQ EMS 30 TRAFFIC  [02\/28\/26 00:40:26 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 00:27:28 DKITCHENS] CALLER STILL ON SCENE  [02\/28\/26 00:26:29 JDICK] CALLER ADVISED HER FRIEND WAS TRYING TO COMMIT SUICIDE BY LIGHTING A SMOKER IN HIS APARTMENT- HE REACHED OUT TO HER AND THEY GOT TO HIM BEFORE ANYTHING HAPPENED - NEED APARTMENT VENTILATED  [02\/28\/26 00:25:28 JDICK]]"
[2026-03-02 13:01:33] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:37 DSWINK] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:36 JDICK] [LAW] {P3385} REQ EMS 30 TRAFFIC  [02\/28\/26 00:40:26 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 00:27:28 DKITCHENS] CALLER STILL ON SCENE  [02\/28\/26 00:26:29 JDICK] CALLER ADVISED HER FRIEND WAS TRYING TO COMMIT SUICIDE BY LIGHTING A SMOKER IN HIS APARTMENT- HE REACHED OUT TO HER AND THEY GOT TO HIM BEFORE ANYTHING HAPPENED - NEED APARTMENT VENTILATED  [02\/28\/26 00:25:28 JDICK]]"
[2026-03-02 13:01:33] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:01:33] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:01:33] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:01:33] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:01:33] [INFO]   -> Found value: DODSON BRANCH
[2026-03-02 13:01:33] [INFO]   -> Set field 'streetName' = "DODSON BRANCH"
[2026-03-02 13:01:33] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:01:33] [INFO]   -> Found value: RD
[2026-03-02 13:01:33] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:01:33] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:01:33] [INFO]   -> Found value: 2475-J4 DODSON BRANCH RD
[2026-03-02 13:01:33] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2475-J4 DODSON BRANCH RD"
[2026-03-02 13:01:33] [INFO] Finished extracting fields. Total fields extracted: 29
[2026-03-02 13:01:33] [INFO] Concatenating street name and type
[2026-03-02 13:01:33] [INFO]   -> Combined street name: DODSON BRANCH RD
[2026-03-02 13:01:33] [INFO] Built locationCoordinates from lat/lng: 36.19965,-85.50876
[2026-03-02 13:01:33] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO","incidentInternalId":"2026000561","dispatchRunNumber":"2026000561","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":2475,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"incidentLocationApt":"J4","nERISIncidentLatitude":36.19964999999999832880348549224436283111572265625,"nERISIncidentLongitude":-85.50875999999999521605786867439746856689453125,"alarm":"2026-02-28 00:21:45","dispatched":"2026-02-28 00:27:08","enroute":"2026-02-28 00:28:57","onScene":"2026-02-28 00:38:08","cleared":"2026-02-28 01:11:04","inService":"2026-02-28 01:11:04","incidentLocationCross":"N DIXIE AVE\/KINNIARD RD","cADVehicleID":"EN11","timedispatch":"2026-02-28 00:27:08","timeenroutetoscene":"2026-02-28 00:31:33","timeonscene":"2026-02-28 00:38:17","timeunitclear":"2026-02-28 01:11:04","policeReportNumber":"20260022157","dispatchNotes":"[EMS] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:37 DSWINK] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:36 JDICK] [LAW] {P3385} REQ EMS 30 TRAFFIC  [02\/28\/26 00:40:26 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 00:27:28 DKITCHENS] CALLER STILL ON SCENE  [02\/28\/26 00:26:29 JDICK] CALLER ADVISED HER FRIEND WAS TRYING TO COMMIT SUICIDE BY LIGHTING A SMOKER IN HIS APARTMENT- HE REACHED OUT TO HER AND THEY GOT TO HIM BEFORE ANYTHING HAPPENED - NEED APARTMENT VENTILATED  [02\/28\/26 00:25:28 JDICK]]","cADLog":"[EMS] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:37 DSWINK] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:36 JDICK] [LAW] {P3385} REQ EMS 30 TRAFFIC  [02\/28\/26 00:40:26 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 00:27:28 DKITCHENS] CALLER STILL ON SCENE  [02\/28\/26 00:26:29 JDICK] CALLER ADVISED HER FRIEND WAS TRYING TO COMMIT SUICIDE BY LIGHTING A SMOKER IN HIS APARTMENT- HE REACHED OUT TO HER AND THEY GOT TO HIM BEFORE ANYTHING HAPPENED - NEED APARTMENT VENTILATED  [02\/28\/26 00:25:28 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"DODSON BRANCH RD","incidentAddressTextVersionStreet":"2475-J4 DODSON BRANCH RD","locationCoordinates":"36.19965,-85.50876"}
[2026-03-02 13:01:33] [INFO] Number of extracted fields: 29
[2026-03-02 13:01:33] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO'
[2026-03-02 13:01:33] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO', Parsed IDs = ["PCFD","PCSO"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-02 13:01:33] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO"]
[2026-03-02 13:01:33] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:01:33] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:01:33] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO"]
[2026-03-02 13:01:33] [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-03-02 13:01:33] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:01:33] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-02 13:01:33] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:01:33] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:01:34] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-02 13:01:34] [INFO] Found existing Dispatch with cADNumber '2026000561', ID: 69a58a212121b6b22 - will update instead of create
[2026-03-02 13:01:34] [INFO] Updated existing Dispatches record with ID: 69a58a212121b6b22
[2026-03-02 13:01:34] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:01:34] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:01:37] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:01:37] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022157_20260302_125742_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:01:37] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:01:37] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022157_20260302_125742_2.XML
[2026-03-02 13:01:37] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022157_20260302_125742_2.XML for user: 68f1466aed072ad4a
[2026-03-02 13:01:37] [INFO] File size: 6786 bytes
[2026-03-02 13:01:37] [INFO] Created FTPFiles record with ID: 69a58a31ec2bac3c1
[2026-03-02 13:01:37] [INFO] About to extract fields from XML. File size: 6786 bytes
[2026-03-02 13:01:37] [INFO] Number of mappings: 28
[2026-03-02 13:01:37] [INFO] Starting XML parsing. Content length: 6786
[2026-03-02 13:01:37] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:01:37] [INFO] Processing 28 field mappings
[2026-03-02 13:01:37] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:01:37] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:01:37] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:01:37] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-02 13:01:37] [INFO]   -> Found value: PCFD
PCSO
[2026-03-02 13:01:37] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO"
[2026-03-02 13:01:37] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:01:37] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:01:37] [INFO]   -> Found value: 2026000561
[2026-03-02 13:01:37] [INFO]   -> Set field 'incidentInternalId' = "2026000561"
[2026-03-02 13:01:37] [INFO]   -> Set field 'dispatchRunNumber' = "2026000561"
[2026-03-02 13:01:37] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:01:37] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-02 13:01:37] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-02 13:01:37] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:01:37] [INFO]   -> Found value: 2475
[2026-03-02 13:01:37] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2475
[2026-03-02 13:01:37] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:01:37] [INFO]   -> Found value: TN
[2026-03-02 13:01:37] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:01:37] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:01:37] [INFO]   -> Found value: 38501
[2026-03-02 13:01:37] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-02 13:01:37] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:01:37] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:37] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:01:37] [INFO]   -> Found value: J4
[2026-03-02 13:01:37] [INFO]   -> Set field 'incidentLocationApt' = "J4"
[2026-03-02 13:01:37] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:01:37] [INFO]   -> Found value: 36.19965
[2026-03-02 13:01:37] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19964999999999832880348549224436283111572265625
[2026-03-02 13:01:37] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:01:37] [INFO]   -> Found value: -85.50876
[2026-03-02 13:01:37] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.50875999999999521605786867439746856689453125
[2026-03-02 13:01:37] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:01:37] [INFO]   -> Found value: 2026-02-28 00:21:45
[2026-03-02 13:01:37] [INFO]   -> Set field 'alarm' = "2026-02-28 00:21:45"
[2026-03-02 13:01:37] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:01:37] [INFO]   -> Found value: 2026-02-28 00:27:08
[2026-03-02 13:01:37] [INFO]   -> Set field 'dispatched' = "2026-02-28 00:27:08"
[2026-03-02 13:01:37] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:01:37] [INFO]   -> Found value: 2026-02-28 00:28:57
[2026-03-02 13:01:37] [INFO]   -> Set field 'enroute' = "2026-02-28 00:28:57"
[2026-03-02 13:01:37] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:01:37] [INFO]   -> Found value: 2026-02-28 00:38:08
[2026-03-02 13:01:37] [INFO]   -> Set field 'onScene' = "2026-02-28 00:38:08"
[2026-03-02 13:01:37] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:01:37] [INFO]   -> Found value: 2026-02-28 01:11:04
[2026-03-02 13:01:37] [INFO]   -> Set field 'cleared' = "2026-02-28 01:11:04"
[2026-03-02 13:01:37] [INFO]   -> Set field 'inService' = "2026-02-28 01:11:04"
[2026-03-02 13:01:37] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:01:37] [INFO]   -> Found value: N DIXIE AVE/KINNIARD RD
[2026-03-02 13:01:37] [INFO]   -> Set field 'incidentLocationCross' = "N DIXIE AVE\/KINNIARD RD"
[2026-03-02 13:01:37] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:01:37] [INFO]   -> Found value: EN11
[2026-03-02 13:01:37] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 13:01:37] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:01:37] [INFO]   -> Found value: 2026-02-28 00:27:08
[2026-03-02 13:01:37] [INFO]   -> Set field 'timedispatch' = "2026-02-28 00:27:08"
[2026-03-02 13:01:37] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:01:37] [INFO]   -> Found value: 2026-02-28 00:31:33
[2026-03-02 13:01:37] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 00:31:33"
[2026-03-02 13:01:37] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:01:37] [INFO]   -> Found value: 2026-02-28 00:38:17
[2026-03-02 13:01:37] [INFO]   -> Set field 'timeonscene' = "2026-02-28 00:38:17"
[2026-03-02 13:01:37] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:01:37] [INFO]   -> Found value: 2026-02-28 01:11:04
[2026-03-02 13:01:37] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 01:11:04"
[2026-03-02 13:01:37] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:01:37] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:37] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:01:37] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:01:37] [INFO]   -> Found value: 20260022157
[2026-03-02 13:01:37] [INFO]   -> Set field 'policeReportNumber' = "20260022157"
[2026-03-02 13:01:37] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:01:37] [INFO]   -> Found value: [EMS] UDTS: CARD SEEN BY 911  [02/28/26 00:40:37 DSWINK] UDTS: CARD SEEN BY 911  [02/28/26 00:40:36 ...
[2026-03-02 13:01:37] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:37 DSWINK] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:36 JDICK] [LAW] {P3385} REQ EMS 30 TRAFFIC  [02\/28\/26 00:40:26 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 00:27:28 DKITCHENS] CALLER STILL ON SCENE  [02\/28\/26 00:26:29 JDICK] CALLER ADVISED HER FRIEND WAS TRYING TO COMMIT SUICIDE BY LIGHTING A SMOKER IN HIS APARTMENT- HE REACHED OUT TO HER AND THEY GOT TO HIM BEFORE ANYTHING HAPPENED - NEED APARTMENT VENTILATED  [02\/28\/26 00:25:28 JDICK]]"
[2026-03-02 13:01:37] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:37 DSWINK] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:36 JDICK] [LAW] {P3385} REQ EMS 30 TRAFFIC  [02\/28\/26 00:40:26 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 00:27:28 DKITCHENS] CALLER STILL ON SCENE  [02\/28\/26 00:26:29 JDICK] CALLER ADVISED HER FRIEND WAS TRYING TO COMMIT SUICIDE BY LIGHTING A SMOKER IN HIS APARTMENT- HE REACHED OUT TO HER AND THEY GOT TO HIM BEFORE ANYTHING HAPPENED - NEED APARTMENT VENTILATED  [02\/28\/26 00:25:28 JDICK]]"
[2026-03-02 13:01:37] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:01:37] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:01:37] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:01:37] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:01:37] [INFO]   -> Found value: DODSON BRANCH
[2026-03-02 13:01:37] [INFO]   -> Set field 'streetName' = "DODSON BRANCH"
[2026-03-02 13:01:37] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:01:37] [INFO]   -> Found value: RD
[2026-03-02 13:01:37] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:01:37] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:01:37] [INFO]   -> Found value: 2475-J4 DODSON BRANCH RD
[2026-03-02 13:01:37] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2475-J4 DODSON BRANCH RD"
[2026-03-02 13:01:37] [INFO] Finished extracting fields. Total fields extracted: 29
[2026-03-02 13:01:37] [INFO] Concatenating street name and type
[2026-03-02 13:01:37] [INFO]   -> Combined street name: DODSON BRANCH RD
[2026-03-02 13:01:37] [INFO] Built locationCoordinates from lat/lng: 36.19965,-85.50876
[2026-03-02 13:01:37] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO","incidentInternalId":"2026000561","dispatchRunNumber":"2026000561","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":2475,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"incidentLocationApt":"J4","nERISIncidentLatitude":36.19964999999999832880348549224436283111572265625,"nERISIncidentLongitude":-85.50875999999999521605786867439746856689453125,"alarm":"2026-02-28 00:21:45","dispatched":"2026-02-28 00:27:08","enroute":"2026-02-28 00:28:57","onScene":"2026-02-28 00:38:08","cleared":"2026-02-28 01:11:04","inService":"2026-02-28 01:11:04","incidentLocationCross":"N DIXIE AVE\/KINNIARD RD","cADVehicleID":"EN11","timedispatch":"2026-02-28 00:27:08","timeenroutetoscene":"2026-02-28 00:31:33","timeonscene":"2026-02-28 00:38:17","timeunitclear":"2026-02-28 01:11:04","policeReportNumber":"20260022157","dispatchNotes":"[EMS] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:37 DSWINK] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:36 JDICK] [LAW] {P3385} REQ EMS 30 TRAFFIC  [02\/28\/26 00:40:26 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 00:27:28 DKITCHENS] CALLER STILL ON SCENE  [02\/28\/26 00:26:29 JDICK] CALLER ADVISED HER FRIEND WAS TRYING TO COMMIT SUICIDE BY LIGHTING A SMOKER IN HIS APARTMENT- HE REACHED OUT TO HER AND THEY GOT TO HIM BEFORE ANYTHING HAPPENED - NEED APARTMENT VENTILATED  [02\/28\/26 00:25:28 JDICK]]","cADLog":"[EMS] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:37 DSWINK] UDTS: CARD SEEN BY 911  [02\/28\/26 00:40:36 JDICK] [LAW] {P3385} REQ EMS 30 TRAFFIC  [02\/28\/26 00:40:26 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 00:27:28 DKITCHENS] CALLER STILL ON SCENE  [02\/28\/26 00:26:29 JDICK] CALLER ADVISED HER FRIEND WAS TRYING TO COMMIT SUICIDE BY LIGHTING A SMOKER IN HIS APARTMENT- HE REACHED OUT TO HER AND THEY GOT TO HIM BEFORE ANYTHING HAPPENED - NEED APARTMENT VENTILATED  [02\/28\/26 00:25:28 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"DODSON BRANCH RD","incidentAddressTextVersionStreet":"2475-J4 DODSON BRANCH RD","locationCoordinates":"36.19965,-85.50876"}
[2026-03-02 13:01:37] [INFO] Number of extracted fields: 29
[2026-03-02 13:01:37] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO'
[2026-03-02 13:01:37] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO', Parsed IDs = ["PCFD","PCSO"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-02 13:01:37] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO"]
[2026-03-02 13:01:37] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:01:38] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:01:38] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO"]
[2026-03-02 13:01:38] [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-03-02 13:01:38] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:01:38] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-02 13:01:38] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:01:38] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:01:38] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-02 13:01:38] [INFO] Found existing Dispatch with cADNumber '2026000561', ID: 69a58a212121b6b22 - will update instead of create
[2026-03-02 13:01:38] [INFO] Updated existing Dispatches record with ID: 69a58a212121b6b22
[2026-03-02 13:01:38] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:01:39] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:01:42] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:01:42] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022157_20260302_125742_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:01:42] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:01:42] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022231_20260302_125743.XML
[2026-03-02 13:01:42] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022231_20260302_125743.XML for user: 68f1466aed072ad4a
[2026-03-02 13:01:42] [INFO] File size: 7827 bytes
[2026-03-02 13:01:42] [INFO] Created FTPFiles record with ID: 69a58a369a8e562b0
[2026-03-02 13:01:42] [INFO] About to extract fields from XML. File size: 7827 bytes
[2026-03-02 13:01:42] [INFO] Number of mappings: 28
[2026-03-02 13:01:42] [INFO] Starting XML parsing. Content length: 7827
[2026-03-02 13:01:42] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:01:42] [INFO] Processing 28 field mappings
[2026-03-02 13:01:42] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:01:42] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:01:42] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:01:42] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-02 13:01:42] [INFO]   -> Found value: PCFD
PCSO
[2026-03-02 13:01:42] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO"
[2026-03-02 13:01:42] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:01:42] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:01:42] [INFO]   -> Found value: 2026000562
[2026-03-02 13:01:42] [INFO]   -> Set field 'incidentInternalId' = "2026000562"
[2026-03-02 13:01:42] [INFO]   -> Set field 'dispatchRunNumber' = "2026000562"
[2026-03-02 13:01:42] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:01:42] [INFO]   -> Found value: VEHICLE FIRE
[2026-03-02 13:01:42] [INFO]   -> Set field 'incidentTypeValue1' = "VEHICLE FIRE"
[2026-03-02 13:01:42] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:01:42] [INFO]   -> Found value: 277
[2026-03-02 13:01:42] [INFO]   -> Set field 'incidentLocationStreetNumber' = 277
[2026-03-02 13:01:42] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:01:42] [INFO]   -> Found value: TN
[2026-03-02 13:01:42] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:01:42] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:01:42] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:42] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:01:42] [INFO]   -> Found value: MM277E
[2026-03-02 13:01:42] [INFO]   -> Set field 'businessName' = "MM277E"
[2026-03-02 13:01:42] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:01:42] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:42] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:01:42] [INFO]   -> Found value: 36.12498
[2026-03-02 13:01:42] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.12498000000000075715433922596275806427001953125
[2026-03-02 13:01:42] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:01:42] [INFO]   -> Found value: -85.68067
[2026-03-02 13:01:42] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6806700000000063255356508307158946990966796875
[2026-03-02 13:01:42] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:01:42] [INFO]   -> Found value: 2026-02-28 09:16:00
[2026-03-02 13:01:42] [INFO]   -> Set field 'alarm' = "2026-02-28 09:16:00"
[2026-03-02 13:01:42] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:01:42] [INFO]   -> Found value: 2026-02-28 09:17:05
[2026-03-02 13:01:42] [INFO]   -> Set field 'dispatched' = "2026-02-28 09:17:05"
[2026-03-02 13:01:42] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:01:42] [INFO]   -> Found value: 2026-02-28 09:17:05
[2026-03-02 13:01:42] [INFO]   -> Set field 'enroute' = "2026-02-28 09:17:05"
[2026-03-02 13:01:42] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:01:42] [INFO]   -> Found value: 2026-02-28 09:33:54
[2026-03-02 13:01:42] [INFO]   -> Set field 'onScene' = "2026-02-28 09:33:54"
[2026-03-02 13:01:42] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:01:42] [INFO]   -> Found value: 2026-02-28 09:44:55
[2026-03-02 13:01:42] [INFO]   -> Set field 'cleared' = "2026-02-28 09:44:55"
[2026-03-02 13:01:42] [INFO]   -> Set field 'inService' = "2026-02-28 09:44:55"
[2026-03-02 13:01:42] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:01:42] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:42] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:01:42] [INFO]   -> Found value: EN31
[2026-03-02 13:01:42] [INFO]   -> Set field 'cADVehicleID' = "EN31"
[2026-03-02 13:01:42] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:01:42] [INFO]   -> Found value: 2026-02-28 09:17:05
[2026-03-02 13:01:42] [INFO]   -> Set field 'timedispatch' = "2026-02-28 09:17:05"
[2026-03-02 13:01:42] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:01:42] [INFO]   -> Found value: 2026-02-28 09:17:05
[2026-03-02 13:01:42] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 09:17:05"
[2026-03-02 13:01:42] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:01:42] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:42] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:01:42] [INFO]   -> Found value: 2026-02-28 09:17:26
[2026-03-02 13:01:42] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 09:17:26"
[2026-03-02 13:01:42] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:01:42] [INFO]   -> Found value: 2026-02-28 09:17:26
[2026-03-02 13:01:42] [INFO]   -> Set field 'timecanceledenroute' = "2026-02-28 09:17:26"
[2026-03-02 13:01:42] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:01:42] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:01:42] [INFO]   -> Found value: 20260022231
[2026-03-02 13:01:42] [INFO]   -> Set field 'policeReportNumber' = "20260022231"
[2026-03-02 13:01:42] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:01:42] [INFO]   -> Found value: TK31 ADVISED BLOWN TURBO COOLER  [02/28/26 09:39:23 SVOKOUN2] TK31 ON SCENE 277 EB  [02/28/26 09:34:...
[2026-03-02 13:01:42] [INFO]   -> Set field 'dispatchNotes' = "TK31 ADVISED BLOWN TURBO COOLER  [02\/28\/26 09:39:23 SVOKOUN2] TK31 ON SCENE 277 EB  [02\/28\/26 09:34:20 SVOKOUN2] UDTS: CARD SEEN BY 911  [02\/28\/26 09:31:36 SVOKOUN2] [LAW] SEMI STILL TRAVELING EB AT 276 HEAVY SMOKE  [02\/28\/26 09:30:44 BWILSON] UDTS: THP NOTIFIED BY 911  [02\/28\/26 09:17:42 JBOHANNON] SEMI  SMOKING JUST WEST OF THE 273 EXIT  [02\/28\/26 09:17:08 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 09:16:47 BWILSON]"
[2026-03-02 13:01:42] [INFO]   -> Set field 'cADLog' = "TK31 ADVISED BLOWN TURBO COOLER  [02\/28\/26 09:39:23 SVOKOUN2] TK31 ON SCENE 277 EB  [02\/28\/26 09:34:20 SVOKOUN2] UDTS: CARD SEEN BY 911  [02\/28\/26 09:31:36 SVOKOUN2] [LAW] SEMI STILL TRAVELING EB AT 276 HEAVY SMOKE  [02\/28\/26 09:30:44 BWILSON] UDTS: THP NOTIFIED BY 911  [02\/28\/26 09:17:42 JBOHANNON] SEMI  SMOKING JUST WEST OF THE 273 EXIT  [02\/28\/26 09:17:08 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 09:16:47 BWILSON]"
[2026-03-02 13:01:42] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:01:42] [INFO]   -> Found value: BAXTER
[2026-03-02 13:01:42] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 13:01:42] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:01:42] [INFO]   -> Found value: I 40
[2026-03-02 13:01:42] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-02 13:01:42] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:01:42] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:42] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:01:42] [INFO]   -> Found value: 277 E I 40
[2026-03-02 13:01:42] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "277 E I 40"
[2026-03-02 13:01:42] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 13:01:42] [INFO] Built locationCoordinates from lat/lng: 36.12498,-85.68067
[2026-03-02 13:01:42] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO","incidentInternalId":"2026000562","dispatchRunNumber":"2026000562","incidentTypeValue1":"VEHICLE FIRE","incidentLocationStreetNumber":277,"incidentLocationStateName":"TN","businessName":"MM277E","nERISIncidentLatitude":36.12498000000000075715433922596275806427001953125,"nERISIncidentLongitude":-85.6806700000000063255356508307158946990966796875,"alarm":"2026-02-28 09:16:00","dispatched":"2026-02-28 09:17:05","enroute":"2026-02-28 09:17:05","onScene":"2026-02-28 09:33:54","cleared":"2026-02-28 09:44:55","inService":"2026-02-28 09:44:55","cADVehicleID":"EN31","timedispatch":"2026-02-28 09:17:05","timeenroutetoscene":"2026-02-28 09:17:05","timeunitclear":"2026-02-28 09:17:26","timecanceledenroute":"2026-02-28 09:17:26","policeReportNumber":"20260022231","dispatchNotes":"TK31 ADVISED BLOWN TURBO COOLER  [02\/28\/26 09:39:23 SVOKOUN2] TK31 ON SCENE 277 EB  [02\/28\/26 09:34:20 SVOKOUN2] UDTS: CARD SEEN BY 911  [02\/28\/26 09:31:36 SVOKOUN2] [LAW] SEMI STILL TRAVELING EB AT 276 HEAVY SMOKE  [02\/28\/26 09:30:44 BWILSON] UDTS: THP NOTIFIED BY 911  [02\/28\/26 09:17:42 JBOHANNON] SEMI  SMOKING JUST WEST OF THE 273 EXIT  [02\/28\/26 09:17:08 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 09:16:47 BWILSON]","cADLog":"TK31 ADVISED BLOWN TURBO COOLER  [02\/28\/26 09:39:23 SVOKOUN2] TK31 ON SCENE 277 EB  [02\/28\/26 09:34:20 SVOKOUN2] UDTS: CARD SEEN BY 911  [02\/28\/26 09:31:36 SVOKOUN2] [LAW] SEMI STILL TRAVELING EB AT 276 HEAVY SMOKE  [02\/28\/26 09:30:44 BWILSON] UDTS: THP NOTIFIED BY 911  [02\/28\/26 09:17:42 JBOHANNON] SEMI  SMOKING JUST WEST OF THE 273 EXIT  [02\/28\/26 09:17:08 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 09:16:47 BWILSON]","incidentLocationCity":"BAXTER","streetName":"I 40","incidentAddressTextVersionStreet":"277 E I 40","locationCoordinates":"36.12498,-85.68067"}
[2026-03-02 13:01:42] [INFO] Number of extracted fields: 27
[2026-03-02 13:01:42] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO'
[2026-03-02 13:01:42] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO', Parsed IDs = ["PCFD","PCSO"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-02 13:01:42] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO"]
[2026-03-02 13:01:42] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:01:42] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:01:42] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO"]
[2026-03-02 13:01: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-03-02 13:01:42] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:01:42] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-02 13:01:42] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:01:42] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:01:43] [INFO] Found existing IncidentTypeMapping with ID: 693dc01fb95d87aa5
[2026-03-02 13:01:51] [INFO] Created new Dispatches record with ID: 69a58a3770714e567
[2026-03-02 13:01:51] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:01:51] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:01: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-03-02 13:01:55] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022231_20260302_125743.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:01:55] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:01:55] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022231_20260302_125743_1.XML
[2026-03-02 13:01:55] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022231_20260302_125743_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:01:55] [INFO] File size: 7827 bytes
[2026-03-02 13:01:55] [INFO] Created FTPFiles record with ID: 69a58a4356b6d0826
[2026-03-02 13:01:55] [INFO] About to extract fields from XML. File size: 7827 bytes
[2026-03-02 13:01:55] [INFO] Number of mappings: 28
[2026-03-02 13:01:55] [INFO] Starting XML parsing. Content length: 7827
[2026-03-02 13:01:55] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:01:55] [INFO] Processing 28 field mappings
[2026-03-02 13:01:55] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:01:55] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:01:55] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:01:55] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-02 13:01:55] [INFO]   -> Found value: PCFD
PCSO
[2026-03-02 13:01:55] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO"
[2026-03-02 13:01:55] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:01:55] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:01:55] [INFO]   -> Found value: 2026000562
[2026-03-02 13:01:55] [INFO]   -> Set field 'incidentInternalId' = "2026000562"
[2026-03-02 13:01:55] [INFO]   -> Set field 'dispatchRunNumber' = "2026000562"
[2026-03-02 13:01:55] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:01:55] [INFO]   -> Found value: VEHICLE FIRE
[2026-03-02 13:01:55] [INFO]   -> Set field 'incidentTypeValue1' = "VEHICLE FIRE"
[2026-03-02 13:01:55] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:01:55] [INFO]   -> Found value: 277
[2026-03-02 13:01:55] [INFO]   -> Set field 'incidentLocationStreetNumber' = 277
[2026-03-02 13:01:55] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:01:55] [INFO]   -> Found value: TN
[2026-03-02 13:01:55] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:01:55] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:01:55] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:55] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:01:55] [INFO]   -> Found value: MM277E
[2026-03-02 13:01:55] [INFO]   -> Set field 'businessName' = "MM277E"
[2026-03-02 13:01:55] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:01:55] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:55] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:01:55] [INFO]   -> Found value: 36.12498
[2026-03-02 13:01:55] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.12498000000000075715433922596275806427001953125
[2026-03-02 13:01:55] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:01:55] [INFO]   -> Found value: -85.68067
[2026-03-02 13:01:55] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6806700000000063255356508307158946990966796875
[2026-03-02 13:01:55] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:01:55] [INFO]   -> Found value: 2026-02-28 09:16:00
[2026-03-02 13:01:55] [INFO]   -> Set field 'alarm' = "2026-02-28 09:16:00"
[2026-03-02 13:01:55] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:01:55] [INFO]   -> Found value: 2026-02-28 09:17:05
[2026-03-02 13:01:55] [INFO]   -> Set field 'dispatched' = "2026-02-28 09:17:05"
[2026-03-02 13:01:55] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:01:55] [INFO]   -> Found value: 2026-02-28 09:17:05
[2026-03-02 13:01:55] [INFO]   -> Set field 'enroute' = "2026-02-28 09:17:05"
[2026-03-02 13:01:55] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:01:55] [INFO]   -> Found value: 2026-02-28 09:33:54
[2026-03-02 13:01:55] [INFO]   -> Set field 'onScene' = "2026-02-28 09:33:54"
[2026-03-02 13:01:55] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:01:55] [INFO]   -> Found value: 2026-02-28 09:44:55
[2026-03-02 13:01:55] [INFO]   -> Set field 'cleared' = "2026-02-28 09:44:55"
[2026-03-02 13:01:55] [INFO]   -> Set field 'inService' = "2026-02-28 09:44:55"
[2026-03-02 13:01:55] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:01:55] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:55] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:01:55] [INFO]   -> Found value: EN31
[2026-03-02 13:01:55] [INFO]   -> Set field 'cADVehicleID' = "EN31"
[2026-03-02 13:01:55] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:01:55] [INFO]   -> Found value: 2026-02-28 09:17:05
[2026-03-02 13:01:55] [INFO]   -> Set field 'timedispatch' = "2026-02-28 09:17:05"
[2026-03-02 13:01:55] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:01:55] [INFO]   -> Found value: 2026-02-28 09:17:05
[2026-03-02 13:01:55] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 09:17:05"
[2026-03-02 13:01:55] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:01:55] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:55] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:01:55] [INFO]   -> Found value: 2026-02-28 09:17:26
[2026-03-02 13:01:55] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 09:17:26"
[2026-03-02 13:01:55] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:01:55] [INFO]   -> Found value: 2026-02-28 09:17:26
[2026-03-02 13:01:55] [INFO]   -> Set field 'timecanceledenroute' = "2026-02-28 09:17:26"
[2026-03-02 13:01:55] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:01:55] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:01:55] [INFO]   -> Found value: 20260022231
[2026-03-02 13:01:55] [INFO]   -> Set field 'policeReportNumber' = "20260022231"
[2026-03-02 13:01:55] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:01:55] [INFO]   -> Found value: TK31 ADVISED BLOWN TURBO COOLER  [02/28/26 09:39:23 SVOKOUN2] TK31 ON SCENE 277 EB  [02/28/26 09:34:...
[2026-03-02 13:01:55] [INFO]   -> Set field 'dispatchNotes' = "TK31 ADVISED BLOWN TURBO COOLER  [02\/28\/26 09:39:23 SVOKOUN2] TK31 ON SCENE 277 EB  [02\/28\/26 09:34:20 SVOKOUN2] UDTS: CARD SEEN BY 911  [02\/28\/26 09:31:36 SVOKOUN2] [LAW] SEMI STILL TRAVELING EB AT 276 HEAVY SMOKE  [02\/28\/26 09:30:44 BWILSON] UDTS: THP NOTIFIED BY 911  [02\/28\/26 09:17:42 JBOHANNON] SEMI  SMOKING JUST WEST OF THE 273 EXIT  [02\/28\/26 09:17:08 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 09:16:47 BWILSON]"
[2026-03-02 13:01:55] [INFO]   -> Set field 'cADLog' = "TK31 ADVISED BLOWN TURBO COOLER  [02\/28\/26 09:39:23 SVOKOUN2] TK31 ON SCENE 277 EB  [02\/28\/26 09:34:20 SVOKOUN2] UDTS: CARD SEEN BY 911  [02\/28\/26 09:31:36 SVOKOUN2] [LAW] SEMI STILL TRAVELING EB AT 276 HEAVY SMOKE  [02\/28\/26 09:30:44 BWILSON] UDTS: THP NOTIFIED BY 911  [02\/28\/26 09:17:42 JBOHANNON] SEMI  SMOKING JUST WEST OF THE 273 EXIT  [02\/28\/26 09:17:08 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 09:16:47 BWILSON]"
[2026-03-02 13:01:55] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:01:55] [INFO]   -> Found value: BAXTER
[2026-03-02 13:01:55] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 13:01:55] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:01:55] [INFO]   -> Found value: I 40
[2026-03-02 13:01:55] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-02 13:01:55] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:01:55] [INFO]   -> No value found (null or empty)
[2026-03-02 13:01:55] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:01:55] [INFO]   -> Found value: 277 E I 40
[2026-03-02 13:01:55] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "277 E I 40"
[2026-03-02 13:01:55] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 13:01:55] [INFO] Built locationCoordinates from lat/lng: 36.12498,-85.68067
[2026-03-02 13:01:55] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO","incidentInternalId":"2026000562","dispatchRunNumber":"2026000562","incidentTypeValue1":"VEHICLE FIRE","incidentLocationStreetNumber":277,"incidentLocationStateName":"TN","businessName":"MM277E","nERISIncidentLatitude":36.12498000000000075715433922596275806427001953125,"nERISIncidentLongitude":-85.6806700000000063255356508307158946990966796875,"alarm":"2026-02-28 09:16:00","dispatched":"2026-02-28 09:17:05","enroute":"2026-02-28 09:17:05","onScene":"2026-02-28 09:33:54","cleared":"2026-02-28 09:44:55","inService":"2026-02-28 09:44:55","cADVehicleID":"EN31","timedispatch":"2026-02-28 09:17:05","timeenroutetoscene":"2026-02-28 09:17:05","timeunitclear":"2026-02-28 09:17:26","timecanceledenroute":"2026-02-28 09:17:26","policeReportNumber":"20260022231","dispatchNotes":"TK31 ADVISED BLOWN TURBO COOLER  [02\/28\/26 09:39:23 SVOKOUN2] TK31 ON SCENE 277 EB  [02\/28\/26 09:34:20 SVOKOUN2] UDTS: CARD SEEN BY 911  [02\/28\/26 09:31:36 SVOKOUN2] [LAW] SEMI STILL TRAVELING EB AT 276 HEAVY SMOKE  [02\/28\/26 09:30:44 BWILSON] UDTS: THP NOTIFIED BY 911  [02\/28\/26 09:17:42 JBOHANNON] SEMI  SMOKING JUST WEST OF THE 273 EXIT  [02\/28\/26 09:17:08 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 09:16:47 BWILSON]","cADLog":"TK31 ADVISED BLOWN TURBO COOLER  [02\/28\/26 09:39:23 SVOKOUN2] TK31 ON SCENE 277 EB  [02\/28\/26 09:34:20 SVOKOUN2] UDTS: CARD SEEN BY 911  [02\/28\/26 09:31:36 SVOKOUN2] [LAW] SEMI STILL TRAVELING EB AT 276 HEAVY SMOKE  [02\/28\/26 09:30:44 BWILSON] UDTS: THP NOTIFIED BY 911  [02\/28\/26 09:17:42 JBOHANNON] SEMI  SMOKING JUST WEST OF THE 273 EXIT  [02\/28\/26 09:17:08 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 09:16:47 BWILSON]","incidentLocationCity":"BAXTER","streetName":"I 40","incidentAddressTextVersionStreet":"277 E I 40","locationCoordinates":"36.12498,-85.68067"}
[2026-03-02 13:01:55] [INFO] Number of extracted fields: 27
[2026-03-02 13:01:55] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO'
[2026-03-02 13:01:55] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO', Parsed IDs = ["PCFD","PCSO"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-02 13:01:55] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO"]
[2026-03-02 13:01:55] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:01:55] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:01:55] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO"]
[2026-03-02 13:01: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-03-02 13:01:55] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:01:55] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-02 13:01:55] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:01:55] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:01:55] [INFO] Found existing IncidentTypeMapping with ID: 693dc01fb95d87aa5
[2026-03-02 13:01:56] [INFO] Found existing Dispatch with cADNumber '2026000562', ID: 69a58a3770714e567 - will update instead of create
[2026-03-02 13:01:56] [INFO] Updated existing Dispatches record with ID: 69a58a3770714e567
[2026-03-02 13:01:56] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:01:56] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:01:59] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:01:59] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022231_20260302_125743_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:01:59] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:01:59] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022231_20260302_125743_2.XML
[2026-03-02 13:01:59] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022231_20260302_125743_2.XML for user: 68f1466aed072ad4a
[2026-03-02 13:01:59] [INFO] File size: 7827 bytes
[2026-03-02 13:02:00] [INFO] Created FTPFiles record with ID: 69a58a4831cdddeea
[2026-03-02 13:02:00] [INFO] About to extract fields from XML. File size: 7827 bytes
[2026-03-02 13:02:00] [INFO] Number of mappings: 28
[2026-03-02 13:02:00] [INFO] Starting XML parsing. Content length: 7827
[2026-03-02 13:02:00] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:02:00] [INFO] Processing 28 field mappings
[2026-03-02 13:02:00] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:02:00] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:02:00] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:02:00] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-02 13:02:00] [INFO]   -> Found value: PCFD
PCSO
[2026-03-02 13:02:00] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO"
[2026-03-02 13:02:00] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:02:00] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:02:00] [INFO]   -> Found value: 2026000562
[2026-03-02 13:02:00] [INFO]   -> Set field 'incidentInternalId' = "2026000562"
[2026-03-02 13:02:00] [INFO]   -> Set field 'dispatchRunNumber' = "2026000562"
[2026-03-02 13:02:00] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:02:00] [INFO]   -> Found value: VEHICLE FIRE
[2026-03-02 13:02:00] [INFO]   -> Set field 'incidentTypeValue1' = "VEHICLE FIRE"
[2026-03-02 13:02:00] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:02:00] [INFO]   -> Found value: 277
[2026-03-02 13:02:00] [INFO]   -> Set field 'incidentLocationStreetNumber' = 277
[2026-03-02 13:02:00] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:02:00] [INFO]   -> Found value: TN
[2026-03-02 13:02:00] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:02:00] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:02:00] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:00] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:02:00] [INFO]   -> Found value: MM277E
[2026-03-02 13:02:00] [INFO]   -> Set field 'businessName' = "MM277E"
[2026-03-02 13:02:00] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:02:00] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:00] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:02:00] [INFO]   -> Found value: 36.12498
[2026-03-02 13:02:00] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.12498000000000075715433922596275806427001953125
[2026-03-02 13:02:00] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:02:00] [INFO]   -> Found value: -85.68067
[2026-03-02 13:02:00] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6806700000000063255356508307158946990966796875
[2026-03-02 13:02:00] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:02:00] [INFO]   -> Found value: 2026-02-28 09:16:00
[2026-03-02 13:02:00] [INFO]   -> Set field 'alarm' = "2026-02-28 09:16:00"
[2026-03-02 13:02:00] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:02:00] [INFO]   -> Found value: 2026-02-28 09:17:05
[2026-03-02 13:02:00] [INFO]   -> Set field 'dispatched' = "2026-02-28 09:17:05"
[2026-03-02 13:02:00] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:02:00] [INFO]   -> Found value: 2026-02-28 09:17:05
[2026-03-02 13:02:00] [INFO]   -> Set field 'enroute' = "2026-02-28 09:17:05"
[2026-03-02 13:02:00] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:02:00] [INFO]   -> Found value: 2026-02-28 09:33:54
[2026-03-02 13:02:00] [INFO]   -> Set field 'onScene' = "2026-02-28 09:33:54"
[2026-03-02 13:02:00] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:02:00] [INFO]   -> Found value: 2026-02-28 09:44:55
[2026-03-02 13:02:00] [INFO]   -> Set field 'cleared' = "2026-02-28 09:44:55"
[2026-03-02 13:02:00] [INFO]   -> Set field 'inService' = "2026-02-28 09:44:55"
[2026-03-02 13:02:00] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:02:00] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:00] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:02:00] [INFO]   -> Found value: EN31
[2026-03-02 13:02:00] [INFO]   -> Set field 'cADVehicleID' = "EN31"
[2026-03-02 13:02:00] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:02:00] [INFO]   -> Found value: 2026-02-28 09:17:05
[2026-03-02 13:02:00] [INFO]   -> Set field 'timedispatch' = "2026-02-28 09:17:05"
[2026-03-02 13:02:00] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:02:00] [INFO]   -> Found value: 2026-02-28 09:17:05
[2026-03-02 13:02:00] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 09:17:05"
[2026-03-02 13:02:00] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:02:00] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:00] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:02:00] [INFO]   -> Found value: 2026-02-28 09:17:26
[2026-03-02 13:02:00] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 09:17:26"
[2026-03-02 13:02:00] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:02:00] [INFO]   -> Found value: 2026-02-28 09:17:26
[2026-03-02 13:02:00] [INFO]   -> Set field 'timecanceledenroute' = "2026-02-28 09:17:26"
[2026-03-02 13:02:00] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:02:00] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:02:00] [INFO]   -> Found value: 20260022231
[2026-03-02 13:02:00] [INFO]   -> Set field 'policeReportNumber' = "20260022231"
[2026-03-02 13:02:00] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:02:00] [INFO]   -> Found value: TK31 ADVISED BLOWN TURBO COOLER  [02/28/26 09:39:23 SVOKOUN2] TK31 ON SCENE 277 EB  [02/28/26 09:34:...
[2026-03-02 13:02:00] [INFO]   -> Set field 'dispatchNotes' = "TK31 ADVISED BLOWN TURBO COOLER  [02\/28\/26 09:39:23 SVOKOUN2] TK31 ON SCENE 277 EB  [02\/28\/26 09:34:20 SVOKOUN2] UDTS: CARD SEEN BY 911  [02\/28\/26 09:31:36 SVOKOUN2] [LAW] SEMI STILL TRAVELING EB AT 276 HEAVY SMOKE  [02\/28\/26 09:30:44 BWILSON] UDTS: THP NOTIFIED BY 911  [02\/28\/26 09:17:42 JBOHANNON] SEMI  SMOKING JUST WEST OF THE 273 EXIT  [02\/28\/26 09:17:08 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 09:16:47 BWILSON]"
[2026-03-02 13:02:00] [INFO]   -> Set field 'cADLog' = "TK31 ADVISED BLOWN TURBO COOLER  [02\/28\/26 09:39:23 SVOKOUN2] TK31 ON SCENE 277 EB  [02\/28\/26 09:34:20 SVOKOUN2] UDTS: CARD SEEN BY 911  [02\/28\/26 09:31:36 SVOKOUN2] [LAW] SEMI STILL TRAVELING EB AT 276 HEAVY SMOKE  [02\/28\/26 09:30:44 BWILSON] UDTS: THP NOTIFIED BY 911  [02\/28\/26 09:17:42 JBOHANNON] SEMI  SMOKING JUST WEST OF THE 273 EXIT  [02\/28\/26 09:17:08 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 09:16:47 BWILSON]"
[2026-03-02 13:02:00] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:02:00] [INFO]   -> Found value: BAXTER
[2026-03-02 13:02:00] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 13:02:00] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:02:00] [INFO]   -> Found value: I 40
[2026-03-02 13:02:00] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-02 13:02:00] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:02:00] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:00] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:02:00] [INFO]   -> Found value: 277 E I 40
[2026-03-02 13:02:00] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "277 E I 40"
[2026-03-02 13:02:00] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 13:02:00] [INFO] Built locationCoordinates from lat/lng: 36.12498,-85.68067
[2026-03-02 13:02:00] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO","incidentInternalId":"2026000562","dispatchRunNumber":"2026000562","incidentTypeValue1":"VEHICLE FIRE","incidentLocationStreetNumber":277,"incidentLocationStateName":"TN","businessName":"MM277E","nERISIncidentLatitude":36.12498000000000075715433922596275806427001953125,"nERISIncidentLongitude":-85.6806700000000063255356508307158946990966796875,"alarm":"2026-02-28 09:16:00","dispatched":"2026-02-28 09:17:05","enroute":"2026-02-28 09:17:05","onScene":"2026-02-28 09:33:54","cleared":"2026-02-28 09:44:55","inService":"2026-02-28 09:44:55","cADVehicleID":"EN31","timedispatch":"2026-02-28 09:17:05","timeenroutetoscene":"2026-02-28 09:17:05","timeunitclear":"2026-02-28 09:17:26","timecanceledenroute":"2026-02-28 09:17:26","policeReportNumber":"20260022231","dispatchNotes":"TK31 ADVISED BLOWN TURBO COOLER  [02\/28\/26 09:39:23 SVOKOUN2] TK31 ON SCENE 277 EB  [02\/28\/26 09:34:20 SVOKOUN2] UDTS: CARD SEEN BY 911  [02\/28\/26 09:31:36 SVOKOUN2] [LAW] SEMI STILL TRAVELING EB AT 276 HEAVY SMOKE  [02\/28\/26 09:30:44 BWILSON] UDTS: THP NOTIFIED BY 911  [02\/28\/26 09:17:42 JBOHANNON] SEMI  SMOKING JUST WEST OF THE 273 EXIT  [02\/28\/26 09:17:08 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 09:16:47 BWILSON]","cADLog":"TK31 ADVISED BLOWN TURBO COOLER  [02\/28\/26 09:39:23 SVOKOUN2] TK31 ON SCENE 277 EB  [02\/28\/26 09:34:20 SVOKOUN2] UDTS: CARD SEEN BY 911  [02\/28\/26 09:31:36 SVOKOUN2] [LAW] SEMI STILL TRAVELING EB AT 276 HEAVY SMOKE  [02\/28\/26 09:30:44 BWILSON] UDTS: THP NOTIFIED BY 911  [02\/28\/26 09:17:42 JBOHANNON] SEMI  SMOKING JUST WEST OF THE 273 EXIT  [02\/28\/26 09:17:08 JBOHANNON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [02\/28\/26 09:16:47 BWILSON]","incidentLocationCity":"BAXTER","streetName":"I 40","incidentAddressTextVersionStreet":"277 E I 40","locationCoordinates":"36.12498,-85.68067"}
[2026-03-02 13:02:00] [INFO] Number of extracted fields: 27
[2026-03-02 13:02:00] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO'
[2026-03-02 13:02:00] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO', Parsed IDs = ["PCFD","PCSO"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-02 13:02:00] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO"]
[2026-03-02 13:02:00] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:02:00] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:02:00] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO"]
[2026-03-02 13:02:00] [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-03-02 13:02:00] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:02:00] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-02 13:02:00] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:02:00] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:02:00] [INFO] Found existing IncidentTypeMapping with ID: 693dc01fb95d87aa5
[2026-03-02 13:02:00] [INFO] Found existing Dispatch with cADNumber '2026000562', ID: 69a58a3770714e567 - will update instead of create
[2026-03-02 13:02:01] [INFO] Updated existing Dispatches record with ID: 69a58a3770714e567
[2026-03-02 13:02:01] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:02:01] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:02:04] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:02:04] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022231_20260302_125743_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:02:04] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:02:04] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022273_20260302_125745.XML
[2026-03-02 13:02:04] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022273_20260302_125745.XML for user: 68f1466aed072ad4a
[2026-03-02 13:02:04] [INFO] File size: 6952 bytes
[2026-03-02 13:02:04] [INFO] Created FTPFiles record with ID: 69a58a4cb77a487bb
[2026-03-02 13:02:04] [INFO] About to extract fields from XML. File size: 6952 bytes
[2026-03-02 13:02:04] [INFO] Number of mappings: 28
[2026-03-02 13:02:04] [INFO] Starting XML parsing. Content length: 6952
[2026-03-02 13:02:04] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:02:04] [INFO] Processing 28 field mappings
[2026-03-02 13:02:04] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:02:04] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:02:04] [INFO]   -> Found value: PCFD
[2026-03-02 13:02:04] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:02:04] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:02:04] [INFO]   -> Found value: 2026000563
[2026-03-02 13:02:04] [INFO]   -> Set field 'incidentInternalId' = "2026000563"
[2026-03-02 13:02:04] [INFO]   -> Set field 'dispatchRunNumber' = "2026000563"
[2026-03-02 13:02:04] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:02:04] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-02 13:02:04] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-02 13:02:04] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:02:04] [INFO]   -> Found value: 8110
[2026-03-02 13:02:04] [INFO]   -> Set field 'incidentLocationStreetNumber' = 8110
[2026-03-02 13:02:04] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:02:04] [INFO]   -> Found value: TN
[2026-03-02 13:02:04] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:02:04] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:02:04] [INFO]   -> Found value: 38544
[2026-03-02 13:02:04] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 13:02:04] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:02:04] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:04] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:02:04] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:04] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:02:04] [INFO]   -> Found value: 36.05655
[2026-03-02 13:02:04] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0565500000000014324541552923619747161865234375
[2026-03-02 13:02:04] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:02:04] [INFO]   -> Found value: -85.65823
[2026-03-02 13:02:04] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6582300000000032014213502407073974609375
[2026-03-02 13:02:04] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:02:04] [INFO]   -> Found value: 2026-02-28 11:15:59
[2026-03-02 13:02:04] [INFO]   -> Set field 'alarm' = "2026-02-28 11:15:59"
[2026-03-02 13:02:04] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:02:04] [INFO]   -> Found value: 2026-02-28 11:17:28
[2026-03-02 13:02:04] [INFO]   -> Set field 'dispatched' = "2026-02-28 11:17:28"
[2026-03-02 13:02:04] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:02:04] [INFO]   -> Found value: 2026-02-28 11:18:23
[2026-03-02 13:02:04] [INFO]   -> Set field 'enroute' = "2026-02-28 11:18:23"
[2026-03-02 13:02:04] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:02:04] [INFO]   -> Found value: 2026-02-28 11:29:07
[2026-03-02 13:02:04] [INFO]   -> Set field 'onScene' = "2026-02-28 11:29:07"
[2026-03-02 13:02:04] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:02:04] [INFO]   -> Found value: 2026-02-28 11:35:02
[2026-03-02 13:02:04] [INFO]   -> Set field 'cleared' = "2026-02-28 11:35:02"
[2026-03-02 13:02:04] [INFO]   -> Set field 'inService' = "2026-02-28 11:35:02"
[2026-03-02 13:02:04] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:02:04] [INFO]   -> Found value: COOKEVILLE BOAT DOCK RD/RILEY LAFEVER RD
[2026-03-02 13:02:04] [INFO]   -> Set field 'incidentLocationCross' = "COOKEVILLE BOAT DOCK RD\/RILEY LAFEVER RD"
[2026-03-02 13:02:04] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:02:04] [INFO]   -> Found value: BR11
[2026-03-02 13:02:04] [INFO]   -> Set field 'cADVehicleID' = "BR11"
[2026-03-02 13:02:04] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:02:04] [INFO]   -> Found value: 2026-02-28 11:18:45
[2026-03-02 13:02:04] [INFO]   -> Set field 'timedispatch' = "2026-02-28 11:18:45"
[2026-03-02 13:02:04] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:02:04] [INFO]   -> Found value: 2026-02-28 11:18:45
[2026-03-02 13:02:04] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 11:18:45"
[2026-03-02 13:02:04] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:02:04] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:04] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:02:04] [INFO]   -> Found value: 2026-02-28 11:29:11
[2026-03-02 13:02:04] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 11:29:11"
[2026-03-02 13:02:04] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:02:04] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:04] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:02:04] [INFO]   -> Found value: 20260022273
[2026-03-02 13:02:04] [INFO]   -> Set field 'policeReportNumber' = "20260022273"
[2026-03-02 13:02:04] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:02:04] [INFO]   -> Found value: CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02/28/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE...
[2026-03-02 13:02:04] [INFO]   -> Set field 'dispatchNotes' = "CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02\/28\/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE SOMEONE MAY HAVE THROWN A CIGERATTE OUT OR SOMETHING  [02\/28\/26 11:16:44 KHILL]"
[2026-03-02 13:02:04] [INFO]   -> Set field 'cADLog' = "CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02\/28\/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE SOMEONE MAY HAVE THROWN A CIGERATTE OUT OR SOMETHING  [02\/28\/26 11:16:44 KHILL]"
[2026-03-02 13:02:04] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:02:04] [INFO]   -> Found value: BAXTER
[2026-03-02 13:02:04] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 13:02:04] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:02:04] [INFO]   -> Found value: AUSTIN BOTTOM
[2026-03-02 13:02:04] [INFO]   -> Set field 'streetName' = "AUSTIN BOTTOM"
[2026-03-02 13:02:04] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:02:04] [INFO]   -> Found value: RD
[2026-03-02 13:02:04] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:02:04] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:02:04] [INFO]   -> Found value: 8110 AUSTIN BOTTOM RD
[2026-03-02 13:02:04] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "8110 AUSTIN BOTTOM RD"
[2026-03-02 13:02:04] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:02:04] [INFO] Concatenating street name and type
[2026-03-02 13:02:04] [INFO]   -> Combined street name: AUSTIN BOTTOM RD
[2026-03-02 13:02:04] [INFO] Built locationCoordinates from lat/lng: 36.05655,-85.65823
[2026-03-02 13:02:04] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000563","dispatchRunNumber":"2026000563","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":8110,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.0565500000000014324541552923619747161865234375,"nERISIncidentLongitude":-85.6582300000000032014213502407073974609375,"alarm":"2026-02-28 11:15:59","dispatched":"2026-02-28 11:17:28","enroute":"2026-02-28 11:18:23","onScene":"2026-02-28 11:29:07","cleared":"2026-02-28 11:35:02","inService":"2026-02-28 11:35:02","incidentLocationCross":"COOKEVILLE BOAT DOCK RD\/RILEY LAFEVER RD","cADVehicleID":"BR11","timedispatch":"2026-02-28 11:18:45","timeenroutetoscene":"2026-02-28 11:18:45","timeunitclear":"2026-02-28 11:29:11","policeReportNumber":"20260022273","dispatchNotes":"CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02\/28\/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE SOMEONE MAY HAVE THROWN A CIGERATTE OUT OR SOMETHING  [02\/28\/26 11:16:44 KHILL]","cADLog":"CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02\/28\/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE SOMEONE MAY HAVE THROWN A CIGERATTE OUT OR SOMETHING  [02\/28\/26 11:16:44 KHILL]","incidentLocationCity":"BAXTER","streetName":"AUSTIN BOTTOM RD","incidentAddressTextVersionStreet":"8110 AUSTIN BOTTOM RD","locationCoordinates":"36.05655,-85.65823"}
[2026-03-02 13:02:04] [INFO] Number of extracted fields: 27
[2026-03-02 13:02:04] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:02:04] [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-03-02 13:02:04] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:02:04] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:02:04] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:02:05] [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-03-02 13:02:05] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:02:05] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:02:05] [INFO] Found existing IncidentTypeMapping with ID: 693de9e1e8922fc29
[2026-03-02 13:02:13] [INFO] Created new Dispatches record with ID: 69a58a4d88fc977bf
[2026-03-02 13:02:13] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:02:13] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:02:17] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:02:17] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022273_20260302_125745.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:02:17] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:02:17] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022273_20260302_125745_1.XML
[2026-03-02 13:02:17] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022273_20260302_125745_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:02:17] [INFO] File size: 6952 bytes
[2026-03-02 13:02:17] [INFO] Created FTPFiles record with ID: 69a58a5973c5bd02a
[2026-03-02 13:02:17] [INFO] About to extract fields from XML. File size: 6952 bytes
[2026-03-02 13:02:17] [INFO] Number of mappings: 28
[2026-03-02 13:02:17] [INFO] Starting XML parsing. Content length: 6952
[2026-03-02 13:02:17] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:02:17] [INFO] Processing 28 field mappings
[2026-03-02 13:02:17] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:02:17] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:02:17] [INFO]   -> Found value: PCFD
[2026-03-02 13:02:17] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:02:17] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:02:17] [INFO]   -> Found value: 2026000563
[2026-03-02 13:02:17] [INFO]   -> Set field 'incidentInternalId' = "2026000563"
[2026-03-02 13:02:17] [INFO]   -> Set field 'dispatchRunNumber' = "2026000563"
[2026-03-02 13:02:17] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:02:17] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-02 13:02:17] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-02 13:02:17] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:02:17] [INFO]   -> Found value: 8110
[2026-03-02 13:02:17] [INFO]   -> Set field 'incidentLocationStreetNumber' = 8110
[2026-03-02 13:02:17] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:02:17] [INFO]   -> Found value: TN
[2026-03-02 13:02:17] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:02:17] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:02:17] [INFO]   -> Found value: 38544
[2026-03-02 13:02:17] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 13:02:17] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:02:17] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:17] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:02:17] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:17] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:02:17] [INFO]   -> Found value: 36.05655
[2026-03-02 13:02:17] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0565500000000014324541552923619747161865234375
[2026-03-02 13:02:17] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:02:17] [INFO]   -> Found value: -85.65823
[2026-03-02 13:02:17] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6582300000000032014213502407073974609375
[2026-03-02 13:02:17] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:02:17] [INFO]   -> Found value: 2026-02-28 11:15:59
[2026-03-02 13:02:17] [INFO]   -> Set field 'alarm' = "2026-02-28 11:15:59"
[2026-03-02 13:02:17] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:02:17] [INFO]   -> Found value: 2026-02-28 11:17:28
[2026-03-02 13:02:17] [INFO]   -> Set field 'dispatched' = "2026-02-28 11:17:28"
[2026-03-02 13:02:17] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:02:17] [INFO]   -> Found value: 2026-02-28 11:18:23
[2026-03-02 13:02:17] [INFO]   -> Set field 'enroute' = "2026-02-28 11:18:23"
[2026-03-02 13:02:17] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:02:17] [INFO]   -> Found value: 2026-02-28 11:29:07
[2026-03-02 13:02:17] [INFO]   -> Set field 'onScene' = "2026-02-28 11:29:07"
[2026-03-02 13:02:17] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:02:17] [INFO]   -> Found value: 2026-02-28 11:35:02
[2026-03-02 13:02:17] [INFO]   -> Set field 'cleared' = "2026-02-28 11:35:02"
[2026-03-02 13:02:17] [INFO]   -> Set field 'inService' = "2026-02-28 11:35:02"
[2026-03-02 13:02:17] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:02:17] [INFO]   -> Found value: COOKEVILLE BOAT DOCK RD/RILEY LAFEVER RD
[2026-03-02 13:02:17] [INFO]   -> Set field 'incidentLocationCross' = "COOKEVILLE BOAT DOCK RD\/RILEY LAFEVER RD"
[2026-03-02 13:02:17] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:02:17] [INFO]   -> Found value: BR11
[2026-03-02 13:02:17] [INFO]   -> Set field 'cADVehicleID' = "BR11"
[2026-03-02 13:02:17] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:02:17] [INFO]   -> Found value: 2026-02-28 11:18:45
[2026-03-02 13:02:17] [INFO]   -> Set field 'timedispatch' = "2026-02-28 11:18:45"
[2026-03-02 13:02:17] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:02:17] [INFO]   -> Found value: 2026-02-28 11:18:45
[2026-03-02 13:02:17] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 11:18:45"
[2026-03-02 13:02:17] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:02:17] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:17] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:02:17] [INFO]   -> Found value: 2026-02-28 11:29:11
[2026-03-02 13:02:17] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 11:29:11"
[2026-03-02 13:02:17] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:02:17] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:17] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:02:17] [INFO]   -> Found value: 20260022273
[2026-03-02 13:02:17] [INFO]   -> Set field 'policeReportNumber' = "20260022273"
[2026-03-02 13:02:17] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:02:17] [INFO]   -> Found value: CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02/28/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE...
[2026-03-02 13:02:17] [INFO]   -> Set field 'dispatchNotes' = "CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02\/28\/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE SOMEONE MAY HAVE THROWN A CIGERATTE OUT OR SOMETHING  [02\/28\/26 11:16:44 KHILL]"
[2026-03-02 13:02:17] [INFO]   -> Set field 'cADLog' = "CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02\/28\/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE SOMEONE MAY HAVE THROWN A CIGERATTE OUT OR SOMETHING  [02\/28\/26 11:16:44 KHILL]"
[2026-03-02 13:02:17] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:02:17] [INFO]   -> Found value: BAXTER
[2026-03-02 13:02:17] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 13:02:17] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:02:17] [INFO]   -> Found value: AUSTIN BOTTOM
[2026-03-02 13:02:17] [INFO]   -> Set field 'streetName' = "AUSTIN BOTTOM"
[2026-03-02 13:02:17] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:02:17] [INFO]   -> Found value: RD
[2026-03-02 13:02:17] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:02:17] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:02:17] [INFO]   -> Found value: 8110 AUSTIN BOTTOM RD
[2026-03-02 13:02:17] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "8110 AUSTIN BOTTOM RD"
[2026-03-02 13:02:17] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:02:17] [INFO] Concatenating street name and type
[2026-03-02 13:02:17] [INFO]   -> Combined street name: AUSTIN BOTTOM RD
[2026-03-02 13:02:17] [INFO] Built locationCoordinates from lat/lng: 36.05655,-85.65823
[2026-03-02 13:02:17] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000563","dispatchRunNumber":"2026000563","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":8110,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.0565500000000014324541552923619747161865234375,"nERISIncidentLongitude":-85.6582300000000032014213502407073974609375,"alarm":"2026-02-28 11:15:59","dispatched":"2026-02-28 11:17:28","enroute":"2026-02-28 11:18:23","onScene":"2026-02-28 11:29:07","cleared":"2026-02-28 11:35:02","inService":"2026-02-28 11:35:02","incidentLocationCross":"COOKEVILLE BOAT DOCK RD\/RILEY LAFEVER RD","cADVehicleID":"BR11","timedispatch":"2026-02-28 11:18:45","timeenroutetoscene":"2026-02-28 11:18:45","timeunitclear":"2026-02-28 11:29:11","policeReportNumber":"20260022273","dispatchNotes":"CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02\/28\/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE SOMEONE MAY HAVE THROWN A CIGERATTE OUT OR SOMETHING  [02\/28\/26 11:16:44 KHILL]","cADLog":"CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02\/28\/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE SOMEONE MAY HAVE THROWN A CIGERATTE OUT OR SOMETHING  [02\/28\/26 11:16:44 KHILL]","incidentLocationCity":"BAXTER","streetName":"AUSTIN BOTTOM RD","incidentAddressTextVersionStreet":"8110 AUSTIN BOTTOM RD","locationCoordinates":"36.05655,-85.65823"}
[2026-03-02 13:02:17] [INFO] Number of extracted fields: 27
[2026-03-02 13:02:17] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:02:17] [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-03-02 13:02:17] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:02:17] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:02:17] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:02: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-03-02 13:02:17] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:02:17] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:02:17] [INFO] Found existing IncidentTypeMapping with ID: 693de9e1e8922fc29
[2026-03-02 13:02:18] [INFO] Found existing Dispatch with cADNumber '2026000563', ID: 69a58a4d88fc977bf - will update instead of create
[2026-03-02 13:02:18] [INFO] Updated existing Dispatches record with ID: 69a58a4d88fc977bf
[2026-03-02 13:02:18] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:02:18] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:02: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-03-02 13:02:21] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022273_20260302_125745_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:02:21] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:02:21] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022273_20260302_125745_2.XML
[2026-03-02 13:02:21] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022273_20260302_125745_2.XML for user: 68f1466aed072ad4a
[2026-03-02 13:02:21] [INFO] File size: 6952 bytes
[2026-03-02 13:02:21] [INFO] Created FTPFiles record with ID: 69a58a5de705df06e
[2026-03-02 13:02:21] [INFO] About to extract fields from XML. File size: 6952 bytes
[2026-03-02 13:02:21] [INFO] Number of mappings: 28
[2026-03-02 13:02:21] [INFO] Starting XML parsing. Content length: 6952
[2026-03-02 13:02:21] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:02:21] [INFO] Processing 28 field mappings
[2026-03-02 13:02:21] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:02:21] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:02:21] [INFO]   -> Found value: PCFD
[2026-03-02 13:02:21] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:02:21] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:02:21] [INFO]   -> Found value: 2026000563
[2026-03-02 13:02:21] [INFO]   -> Set field 'incidentInternalId' = "2026000563"
[2026-03-02 13:02:21] [INFO]   -> Set field 'dispatchRunNumber' = "2026000563"
[2026-03-02 13:02:21] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:02:21] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-02 13:02:21] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-02 13:02:21] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:02:21] [INFO]   -> Found value: 8110
[2026-03-02 13:02:21] [INFO]   -> Set field 'incidentLocationStreetNumber' = 8110
[2026-03-02 13:02:21] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:02:21] [INFO]   -> Found value: TN
[2026-03-02 13:02:21] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:02:21] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:02:21] [INFO]   -> Found value: 38544
[2026-03-02 13:02:21] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 13:02:21] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:02:21] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:21] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:02:21] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:21] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:02:21] [INFO]   -> Found value: 36.05655
[2026-03-02 13:02:21] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0565500000000014324541552923619747161865234375
[2026-03-02 13:02:21] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:02:21] [INFO]   -> Found value: -85.65823
[2026-03-02 13:02:21] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6582300000000032014213502407073974609375
[2026-03-02 13:02:21] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:02:21] [INFO]   -> Found value: 2026-02-28 11:15:59
[2026-03-02 13:02:21] [INFO]   -> Set field 'alarm' = "2026-02-28 11:15:59"
[2026-03-02 13:02:21] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:02:21] [INFO]   -> Found value: 2026-02-28 11:17:28
[2026-03-02 13:02:21] [INFO]   -> Set field 'dispatched' = "2026-02-28 11:17:28"
[2026-03-02 13:02:21] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:02:21] [INFO]   -> Found value: 2026-02-28 11:18:23
[2026-03-02 13:02:21] [INFO]   -> Set field 'enroute' = "2026-02-28 11:18:23"
[2026-03-02 13:02:21] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:02:21] [INFO]   -> Found value: 2026-02-28 11:29:07
[2026-03-02 13:02:21] [INFO]   -> Set field 'onScene' = "2026-02-28 11:29:07"
[2026-03-02 13:02:21] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:02:21] [INFO]   -> Found value: 2026-02-28 11:35:02
[2026-03-02 13:02:21] [INFO]   -> Set field 'cleared' = "2026-02-28 11:35:02"
[2026-03-02 13:02:21] [INFO]   -> Set field 'inService' = "2026-02-28 11:35:02"
[2026-03-02 13:02:21] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:02:21] [INFO]   -> Found value: COOKEVILLE BOAT DOCK RD/RILEY LAFEVER RD
[2026-03-02 13:02:21] [INFO]   -> Set field 'incidentLocationCross' = "COOKEVILLE BOAT DOCK RD\/RILEY LAFEVER RD"
[2026-03-02 13:02:21] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:02:21] [INFO]   -> Found value: BR11
[2026-03-02 13:02:21] [INFO]   -> Set field 'cADVehicleID' = "BR11"
[2026-03-02 13:02:21] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:02:21] [INFO]   -> Found value: 2026-02-28 11:18:45
[2026-03-02 13:02:21] [INFO]   -> Set field 'timedispatch' = "2026-02-28 11:18:45"
[2026-03-02 13:02:21] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:02:21] [INFO]   -> Found value: 2026-02-28 11:18:45
[2026-03-02 13:02:21] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 11:18:45"
[2026-03-02 13:02:21] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:02:21] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:21] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:02:21] [INFO]   -> Found value: 2026-02-28 11:29:11
[2026-03-02 13:02:21] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 11:29:11"
[2026-03-02 13:02:21] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:02:21] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:21] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:02:21] [INFO]   -> Found value: 20260022273
[2026-03-02 13:02:21] [INFO]   -> Set field 'policeReportNumber' = "20260022273"
[2026-03-02 13:02:21] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:02:21] [INFO]   -> Found value: CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02/28/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE...
[2026-03-02 13:02:21] [INFO]   -> Set field 'dispatchNotes' = "CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02\/28\/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE SOMEONE MAY HAVE THROWN A CIGERATTE OUT OR SOMETHING  [02\/28\/26 11:16:44 KHILL]"
[2026-03-02 13:02:21] [INFO]   -> Set field 'cADLog' = "CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02\/28\/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE SOMEONE MAY HAVE THROWN A CIGERATTE OUT OR SOMETHING  [02\/28\/26 11:16:44 KHILL]"
[2026-03-02 13:02:21] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:02:21] [INFO]   -> Found value: BAXTER
[2026-03-02 13:02:21] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 13:02:21] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:02:21] [INFO]   -> Found value: AUSTIN BOTTOM
[2026-03-02 13:02:21] [INFO]   -> Set field 'streetName' = "AUSTIN BOTTOM"
[2026-03-02 13:02:21] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:02:21] [INFO]   -> Found value: RD
[2026-03-02 13:02:21] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:02:21] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:02:21] [INFO]   -> Found value: 8110 AUSTIN BOTTOM RD
[2026-03-02 13:02:21] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "8110 AUSTIN BOTTOM RD"
[2026-03-02 13:02:21] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:02:21] [INFO] Concatenating street name and type
[2026-03-02 13:02:21] [INFO]   -> Combined street name: AUSTIN BOTTOM RD
[2026-03-02 13:02:21] [INFO] Built locationCoordinates from lat/lng: 36.05655,-85.65823
[2026-03-02 13:02:21] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000563","dispatchRunNumber":"2026000563","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":8110,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.0565500000000014324541552923619747161865234375,"nERISIncidentLongitude":-85.6582300000000032014213502407073974609375,"alarm":"2026-02-28 11:15:59","dispatched":"2026-02-28 11:17:28","enroute":"2026-02-28 11:18:23","onScene":"2026-02-28 11:29:07","cleared":"2026-02-28 11:35:02","inService":"2026-02-28 11:35:02","incidentLocationCross":"COOKEVILLE BOAT DOCK RD\/RILEY LAFEVER RD","cADVehicleID":"BR11","timedispatch":"2026-02-28 11:18:45","timeenroutetoscene":"2026-02-28 11:18:45","timeunitclear":"2026-02-28 11:29:11","policeReportNumber":"20260022273","dispatchNotes":"CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02\/28\/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE SOMEONE MAY HAVE THROWN A CIGERATTE OUT OR SOMETHING  [02\/28\/26 11:16:44 KHILL]","cADLog":"CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02\/28\/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE SOMEONE MAY HAVE THROWN A CIGERATTE OUT OR SOMETHING  [02\/28\/26 11:16:44 KHILL]","incidentLocationCity":"BAXTER","streetName":"AUSTIN BOTTOM RD","incidentAddressTextVersionStreet":"8110 AUSTIN BOTTOM RD","locationCoordinates":"36.05655,-85.65823"}
[2026-03-02 13:02:21] [INFO] Number of extracted fields: 27
[2026-03-02 13:02:21] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:02:21] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-02 13:02:21] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:02:21] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:02:22] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:02:22] [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-03-02 13:02:22] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:02:22] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:02:22] [INFO] Found existing IncidentTypeMapping with ID: 693de9e1e8922fc29
[2026-03-02 13:02:22] [INFO] Found existing Dispatch with cADNumber '2026000563', ID: 69a58a4d88fc977bf - will update instead of create
[2026-03-02 13:02:22] [INFO] Updated existing Dispatches record with ID: 69a58a4d88fc977bf
[2026-03-02 13:02:22] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:02:22] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:02:25] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:02:25] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022273_20260302_125745_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:02:25] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:02:26] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022273_20260302_125745_3.XML
[2026-03-02 13:02:26] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022273_20260302_125745_3.XML for user: 68f1466aed072ad4a
[2026-03-02 13:02:26] [INFO] File size: 6952 bytes
[2026-03-02 13:02:26] [INFO] Created FTPFiles record with ID: 69a58a62463ad03d9
[2026-03-02 13:02:26] [INFO] About to extract fields from XML. File size: 6952 bytes
[2026-03-02 13:02:26] [INFO] Number of mappings: 28
[2026-03-02 13:02:26] [INFO] Starting XML parsing. Content length: 6952
[2026-03-02 13:02:26] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:02:26] [INFO] Processing 28 field mappings
[2026-03-02 13:02:26] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:02:26] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:02:26] [INFO]   -> Found value: PCFD
[2026-03-02 13:02:26] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:02:26] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:02:26] [INFO]   -> Found value: 2026000563
[2026-03-02 13:02:26] [INFO]   -> Set field 'incidentInternalId' = "2026000563"
[2026-03-02 13:02:26] [INFO]   -> Set field 'dispatchRunNumber' = "2026000563"
[2026-03-02 13:02:26] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:02:26] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-02 13:02:26] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-02 13:02:26] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:02:26] [INFO]   -> Found value: 8110
[2026-03-02 13:02:26] [INFO]   -> Set field 'incidentLocationStreetNumber' = 8110
[2026-03-02 13:02:26] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:02:26] [INFO]   -> Found value: TN
[2026-03-02 13:02:26] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:02:26] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:02:26] [INFO]   -> Found value: 38544
[2026-03-02 13:02:26] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 13:02:26] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:02:26] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:26] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:02:26] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:26] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:02:26] [INFO]   -> Found value: 36.05655
[2026-03-02 13:02:26] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0565500000000014324541552923619747161865234375
[2026-03-02 13:02:26] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:02:26] [INFO]   -> Found value: -85.65823
[2026-03-02 13:02:26] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6582300000000032014213502407073974609375
[2026-03-02 13:02:26] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:02:26] [INFO]   -> Found value: 2026-02-28 11:15:59
[2026-03-02 13:02:26] [INFO]   -> Set field 'alarm' = "2026-02-28 11:15:59"
[2026-03-02 13:02:26] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:02:26] [INFO]   -> Found value: 2026-02-28 11:17:28
[2026-03-02 13:02:26] [INFO]   -> Set field 'dispatched' = "2026-02-28 11:17:28"
[2026-03-02 13:02:26] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:02:26] [INFO]   -> Found value: 2026-02-28 11:18:23
[2026-03-02 13:02:26] [INFO]   -> Set field 'enroute' = "2026-02-28 11:18:23"
[2026-03-02 13:02:26] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:02:26] [INFO]   -> Found value: 2026-02-28 11:29:07
[2026-03-02 13:02:26] [INFO]   -> Set field 'onScene' = "2026-02-28 11:29:07"
[2026-03-02 13:02:26] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:02:26] [INFO]   -> Found value: 2026-02-28 11:35:02
[2026-03-02 13:02:26] [INFO]   -> Set field 'cleared' = "2026-02-28 11:35:02"
[2026-03-02 13:02:26] [INFO]   -> Set field 'inService' = "2026-02-28 11:35:02"
[2026-03-02 13:02:26] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:02:26] [INFO]   -> Found value: COOKEVILLE BOAT DOCK RD/RILEY LAFEVER RD
[2026-03-02 13:02:26] [INFO]   -> Set field 'incidentLocationCross' = "COOKEVILLE BOAT DOCK RD\/RILEY LAFEVER RD"
[2026-03-02 13:02:26] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:02:26] [INFO]   -> Found value: BR11
[2026-03-02 13:02:26] [INFO]   -> Set field 'cADVehicleID' = "BR11"
[2026-03-02 13:02:26] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:02:26] [INFO]   -> Found value: 2026-02-28 11:18:45
[2026-03-02 13:02:26] [INFO]   -> Set field 'timedispatch' = "2026-02-28 11:18:45"
[2026-03-02 13:02:26] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:02:26] [INFO]   -> Found value: 2026-02-28 11:18:45
[2026-03-02 13:02:26] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 11:18:45"
[2026-03-02 13:02:26] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:02:26] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:26] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:02:26] [INFO]   -> Found value: 2026-02-28 11:29:11
[2026-03-02 13:02:26] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 11:29:11"
[2026-03-02 13:02:26] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:02:26] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:26] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:02:26] [INFO]   -> Found value: 20260022273
[2026-03-02 13:02:26] [INFO]   -> Set field 'policeReportNumber' = "20260022273"
[2026-03-02 13:02:26] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:02:26] [INFO]   -> Found value: CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02/28/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE...
[2026-03-02 13:02:26] [INFO]   -> Set field 'dispatchNotes' = "CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02\/28\/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE SOMEONE MAY HAVE THROWN A CIGERATTE OUT OR SOMETHING  [02\/28\/26 11:16:44 KHILL]"
[2026-03-02 13:02:26] [INFO]   -> Set field 'cADLog' = "CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02\/28\/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE SOMEONE MAY HAVE THROWN A CIGERATTE OUT OR SOMETHING  [02\/28\/26 11:16:44 KHILL]"
[2026-03-02 13:02:26] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:02:26] [INFO]   -> Found value: BAXTER
[2026-03-02 13:02:26] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 13:02:26] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:02:26] [INFO]   -> Found value: AUSTIN BOTTOM
[2026-03-02 13:02:26] [INFO]   -> Set field 'streetName' = "AUSTIN BOTTOM"
[2026-03-02 13:02:26] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:02:26] [INFO]   -> Found value: RD
[2026-03-02 13:02:26] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:02:26] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:02:26] [INFO]   -> Found value: 8110 AUSTIN BOTTOM RD
[2026-03-02 13:02:26] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "8110 AUSTIN BOTTOM RD"
[2026-03-02 13:02:26] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:02:26] [INFO] Concatenating street name and type
[2026-03-02 13:02:26] [INFO]   -> Combined street name: AUSTIN BOTTOM RD
[2026-03-02 13:02:26] [INFO] Built locationCoordinates from lat/lng: 36.05655,-85.65823
[2026-03-02 13:02:26] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000563","dispatchRunNumber":"2026000563","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":8110,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.0565500000000014324541552923619747161865234375,"nERISIncidentLongitude":-85.6582300000000032014213502407073974609375,"alarm":"2026-02-28 11:15:59","dispatched":"2026-02-28 11:17:28","enroute":"2026-02-28 11:18:23","onScene":"2026-02-28 11:29:07","cleared":"2026-02-28 11:35:02","inService":"2026-02-28 11:35:02","incidentLocationCross":"COOKEVILLE BOAT DOCK RD\/RILEY LAFEVER RD","cADVehicleID":"BR11","timedispatch":"2026-02-28 11:18:45","timeenroutetoscene":"2026-02-28 11:18:45","timeunitclear":"2026-02-28 11:29:11","policeReportNumber":"20260022273","dispatchNotes":"CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02\/28\/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE SOMEONE MAY HAVE THROWN A CIGERATTE OUT OR SOMETHING  [02\/28\/26 11:16:44 KHILL]","cADLog":"CLOSE TO THIS ADDRESS BUT ACROSS THE STREET  [02\/28\/26 11:17:16 KHILL] IN THE DITCH LINE  LOOKS LIKE SOMEONE MAY HAVE THROWN A CIGERATTE OUT OR SOMETHING  [02\/28\/26 11:16:44 KHILL]","incidentLocationCity":"BAXTER","streetName":"AUSTIN BOTTOM RD","incidentAddressTextVersionStreet":"8110 AUSTIN BOTTOM RD","locationCoordinates":"36.05655,-85.65823"}
[2026-03-02 13:02:26] [INFO] Number of extracted fields: 27
[2026-03-02 13:02:26] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:02:26] [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-03-02 13:02:26] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:02:26] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:02:26] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:02:26] [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-03-02 13:02:26] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:02:26] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:02:26] [INFO] Found existing IncidentTypeMapping with ID: 693de9e1e8922fc29
[2026-03-02 13:02:26] [INFO] Found existing Dispatch with cADNumber '2026000563', ID: 69a58a4d88fc977bf - will update instead of create
[2026-03-02 13:02:27] [INFO] Updated existing Dispatches record with ID: 69a58a4d88fc977bf
[2026-03-02 13:02:27] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:02:27] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:02:30] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:02:30] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022273_20260302_125745_3.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:02:30] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:02:30] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022319_20260302_125747.XML
[2026-03-02 13:02:30] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022319_20260302_125747.XML for user: 68f1466aed072ad4a
[2026-03-02 13:02:30] [INFO] File size: 4977 bytes
[2026-03-02 13:02:31] [INFO] Created FTPFiles record with ID: 69a58a672a89bd9b8
[2026-03-02 13:02:31] [INFO] About to extract fields from XML. File size: 4977 bytes
[2026-03-02 13:02:31] [INFO] Number of mappings: 28
[2026-03-02 13:02:31] [INFO] Starting XML parsing. Content length: 4977
[2026-03-02 13:02:31] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:02:31] [INFO] Processing 28 field mappings
[2026-03-02 13:02:31] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:02:31] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:02:31] [INFO]   -> Found value: PCFD
[2026-03-02 13:02:31] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:02:31] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:02:31] [INFO]   -> Found value: 2026000564
[2026-03-02 13:02:31] [INFO]   -> Set field 'incidentInternalId' = "2026000564"
[2026-03-02 13:02:31] [INFO]   -> Set field 'dispatchRunNumber' = "2026000564"
[2026-03-02 13:02:31] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:02:31] [INFO]   -> Found value: SMOKE ALARM INSTALL
[2026-03-02 13:02:31] [INFO]   -> Set field 'incidentTypeValue1' = "SMOKE ALARM INSTALL"
[2026-03-02 13:02:31] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:02:31] [INFO]   -> Found value: 180
[2026-03-02 13:02:31] [INFO]   -> Set field 'incidentLocationStreetNumber' = 180
[2026-03-02 13:02:31] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:02:31] [INFO]   -> Found value: TN
[2026-03-02 13:02:31] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:02:31] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:02:31] [INFO]   -> Found value: 38501
[2026-03-02 13:02:31] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-02 13:02:31] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:02:31] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:31] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:02:31] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:31] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:02:31] [INFO]   -> Found value: 36.18037
[2026-03-02 13:02:31] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18037000000000347199602401815354824066162109375
[2026-03-02 13:02:31] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:02:31] [INFO]   -> Found value: -85.57545
[2026-03-02 13:02:31] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5754500000000035697667044587433338165283203125
[2026-03-02 13:02:31] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:02:31] [INFO]   -> Found value: 2026-02-28 14:14:28
[2026-03-02 13:02:31] [INFO]   -> Set field 'alarm' = "2026-02-28 14:14:28"
[2026-03-02 13:02:31] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:02:31] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:31] [INFO]   -> Set field 'dispatched' = "2026-02-28 14:15:01"
[2026-03-02 13:02:31] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:02:31] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:31] [INFO]   -> Set field 'enroute' = "2026-02-28 14:15:01"
[2026-03-02 13:02:31] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:02:31] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:31] [INFO]   -> Set field 'onScene' = "2026-02-28 14:15:01"
[2026-03-02 13:02:31] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:02:31] [INFO]   -> Found value: 2026-02-28 15:02:50
[2026-03-02 13:02:31] [INFO]   -> Set field 'cleared' = "2026-02-28 15:02:50"
[2026-03-02 13:02:31] [INFO]   -> Set field 'inService' = "2026-02-28 15:02:50"
[2026-03-02 13:02:31] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:02:31] [INFO]   -> Found value: W BROAD ST
[2026-03-02 13:02:31] [INFO]   -> Set field 'incidentLocationCross' = "W BROAD ST"
[2026-03-02 13:02:31] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:02:31] [INFO]   -> Found value: BR31
[2026-03-02 13:02:31] [INFO]   -> Set field 'cADVehicleID' = "BR31"
[2026-03-02 13:02:31] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:02:31] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:31] [INFO]   -> Set field 'timedispatch' = "2026-02-28 14:15:01"
[2026-03-02 13:02:31] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:02:31] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:31] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 14:15:01"
[2026-03-02 13:02:31] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:02:31] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:31] [INFO]   -> Set field 'timeonscene' = "2026-02-28 14:15:01"
[2026-03-02 13:02:31] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:02:31] [INFO]   -> Found value: 2026-02-28 15:02:50
[2026-03-02 13:02:31] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 15:02:50"
[2026-03-02 13:02:31] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:02:31] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:31] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:02:31] [INFO]   -> Found value: 20260022319
[2026-03-02 13:02:31] [INFO]   -> Set field 'policeReportNumber' = "20260022319"
[2026-03-02 13:02:31] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:02:31] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:31] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:02:31] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:02:31] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:02:31] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:02:31] [INFO]   -> Found value: LONG MEADOW
[2026-03-02 13:02:31] [INFO]   -> Set field 'streetName' = "LONG MEADOW"
[2026-03-02 13:02:31] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:02:31] [INFO]   -> Found value: DR
[2026-03-02 13:02:31] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 13:02:31] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:02:31] [INFO]   -> Found value: 180 LONG MEADOW DR
[2026-03-02 13:02:31] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "180 LONG MEADOW DR"
[2026-03-02 13:02:31] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 13:02:31] [INFO] Concatenating street name and type
[2026-03-02 13:02:31] [INFO]   -> Combined street name: LONG MEADOW DR
[2026-03-02 13:02:31] [INFO] Built locationCoordinates from lat/lng: 36.18037,-85.57545
[2026-03-02 13:02:31] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000564","dispatchRunNumber":"2026000564","incidentTypeValue1":"SMOKE ALARM INSTALL","incidentLocationStreetNumber":180,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.18037000000000347199602401815354824066162109375,"nERISIncidentLongitude":-85.5754500000000035697667044587433338165283203125,"alarm":"2026-02-28 14:14:28","dispatched":"2026-02-28 14:15:01","enroute":"2026-02-28 14:15:01","onScene":"2026-02-28 14:15:01","cleared":"2026-02-28 15:02:50","inService":"2026-02-28 15:02:50","incidentLocationCross":"W BROAD ST","cADVehicleID":"BR31","timedispatch":"2026-02-28 14:15:01","timeenroutetoscene":"2026-02-28 14:15:01","timeonscene":"2026-02-28 14:15:01","timeunitclear":"2026-02-28 15:02:50","policeReportNumber":"20260022319","incidentLocationCity":"COOKEVILLE","streetName":"LONG MEADOW DR","incidentAddressTextVersionStreet":"180 LONG MEADOW DR","locationCoordinates":"36.18037,-85.57545"}
[2026-03-02 13:02:31] [INFO] Number of extracted fields: 26
[2026-03-02 13:02:31] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:02:31] [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-03-02 13:02:31] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:02:31] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:02:31] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:02:31] [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-03-02 13:02:31] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:02:31] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:02:31] [INFO] Found existing IncidentTypeMapping with ID: 69384adcd7833eaa3
[2026-03-02 13:02:39] [INFO] Created new Dispatches record with ID: 69a58a67eaa3b0211
[2026-03-02 13:02:39] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:02:39] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:02:43] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:02:43] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022319_20260302_125747.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:02:43] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:02:43] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022319_20260302_125747_1.XML
[2026-03-02 13:02:43] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022319_20260302_125747_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:02:43] [INFO] File size: 4977 bytes
[2026-03-02 13:02:43] [INFO] Created FTPFiles record with ID: 69a58a73bc192d1b0
[2026-03-02 13:02:43] [INFO] About to extract fields from XML. File size: 4977 bytes
[2026-03-02 13:02:43] [INFO] Number of mappings: 28
[2026-03-02 13:02:43] [INFO] Starting XML parsing. Content length: 4977
[2026-03-02 13:02:43] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:02:43] [INFO] Processing 28 field mappings
[2026-03-02 13:02:43] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:02:43] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:02:43] [INFO]   -> Found value: PCFD
[2026-03-02 13:02:43] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:02:43] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:02:43] [INFO]   -> Found value: 2026000564
[2026-03-02 13:02:43] [INFO]   -> Set field 'incidentInternalId' = "2026000564"
[2026-03-02 13:02:43] [INFO]   -> Set field 'dispatchRunNumber' = "2026000564"
[2026-03-02 13:02:43] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:02:43] [INFO]   -> Found value: SMOKE ALARM INSTALL
[2026-03-02 13:02:43] [INFO]   -> Set field 'incidentTypeValue1' = "SMOKE ALARM INSTALL"
[2026-03-02 13:02:43] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:02:43] [INFO]   -> Found value: 180
[2026-03-02 13:02:43] [INFO]   -> Set field 'incidentLocationStreetNumber' = 180
[2026-03-02 13:02:43] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:02:43] [INFO]   -> Found value: TN
[2026-03-02 13:02:43] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:02:43] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:02:43] [INFO]   -> Found value: 38501
[2026-03-02 13:02:43] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-02 13:02:43] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:02:43] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:43] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:02:43] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:43] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:02:43] [INFO]   -> Found value: 36.18037
[2026-03-02 13:02:43] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18037000000000347199602401815354824066162109375
[2026-03-02 13:02:43] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:02:43] [INFO]   -> Found value: -85.57545
[2026-03-02 13:02:43] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5754500000000035697667044587433338165283203125
[2026-03-02 13:02:43] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:02:43] [INFO]   -> Found value: 2026-02-28 14:14:28
[2026-03-02 13:02:43] [INFO]   -> Set field 'alarm' = "2026-02-28 14:14:28"
[2026-03-02 13:02:43] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:02:43] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:43] [INFO]   -> Set field 'dispatched' = "2026-02-28 14:15:01"
[2026-03-02 13:02:43] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:02:43] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:43] [INFO]   -> Set field 'enroute' = "2026-02-28 14:15:01"
[2026-03-02 13:02:43] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:02:43] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:43] [INFO]   -> Set field 'onScene' = "2026-02-28 14:15:01"
[2026-03-02 13:02:43] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:02:43] [INFO]   -> Found value: 2026-02-28 15:02:50
[2026-03-02 13:02:43] [INFO]   -> Set field 'cleared' = "2026-02-28 15:02:50"
[2026-03-02 13:02:43] [INFO]   -> Set field 'inService' = "2026-02-28 15:02:50"
[2026-03-02 13:02:43] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:02:43] [INFO]   -> Found value: W BROAD ST
[2026-03-02 13:02:43] [INFO]   -> Set field 'incidentLocationCross' = "W BROAD ST"
[2026-03-02 13:02:43] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:02:43] [INFO]   -> Found value: BR31
[2026-03-02 13:02:43] [INFO]   -> Set field 'cADVehicleID' = "BR31"
[2026-03-02 13:02:43] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:02:43] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:43] [INFO]   -> Set field 'timedispatch' = "2026-02-28 14:15:01"
[2026-03-02 13:02:43] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:02:43] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:43] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 14:15:01"
[2026-03-02 13:02:43] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:02:43] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:43] [INFO]   -> Set field 'timeonscene' = "2026-02-28 14:15:01"
[2026-03-02 13:02:43] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:02:43] [INFO]   -> Found value: 2026-02-28 15:02:50
[2026-03-02 13:02:43] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 15:02:50"
[2026-03-02 13:02:43] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:02:43] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:43] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:02:43] [INFO]   -> Found value: 20260022319
[2026-03-02 13:02:43] [INFO]   -> Set field 'policeReportNumber' = "20260022319"
[2026-03-02 13:02:43] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:02:43] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:43] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:02:43] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:02:43] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:02:43] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:02:43] [INFO]   -> Found value: LONG MEADOW
[2026-03-02 13:02:43] [INFO]   -> Set field 'streetName' = "LONG MEADOW"
[2026-03-02 13:02:43] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:02:43] [INFO]   -> Found value: DR
[2026-03-02 13:02:43] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 13:02:43] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:02:43] [INFO]   -> Found value: 180 LONG MEADOW DR
[2026-03-02 13:02:43] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "180 LONG MEADOW DR"
[2026-03-02 13:02:43] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 13:02:43] [INFO] Concatenating street name and type
[2026-03-02 13:02:43] [INFO]   -> Combined street name: LONG MEADOW DR
[2026-03-02 13:02:43] [INFO] Built locationCoordinates from lat/lng: 36.18037,-85.57545
[2026-03-02 13:02:43] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000564","dispatchRunNumber":"2026000564","incidentTypeValue1":"SMOKE ALARM INSTALL","incidentLocationStreetNumber":180,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.18037000000000347199602401815354824066162109375,"nERISIncidentLongitude":-85.5754500000000035697667044587433338165283203125,"alarm":"2026-02-28 14:14:28","dispatched":"2026-02-28 14:15:01","enroute":"2026-02-28 14:15:01","onScene":"2026-02-28 14:15:01","cleared":"2026-02-28 15:02:50","inService":"2026-02-28 15:02:50","incidentLocationCross":"W BROAD ST","cADVehicleID":"BR31","timedispatch":"2026-02-28 14:15:01","timeenroutetoscene":"2026-02-28 14:15:01","timeonscene":"2026-02-28 14:15:01","timeunitclear":"2026-02-28 15:02:50","policeReportNumber":"20260022319","incidentLocationCity":"COOKEVILLE","streetName":"LONG MEADOW DR","incidentAddressTextVersionStreet":"180 LONG MEADOW DR","locationCoordinates":"36.18037,-85.57545"}
[2026-03-02 13:02:43] [INFO] Number of extracted fields: 26
[2026-03-02 13:02:43] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:02:43] [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-03-02 13:02:43] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:02:43] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:02:43] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:02:44] [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-03-02 13:02:44] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:02:44] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:02:44] [INFO] Found existing IncidentTypeMapping with ID: 69384adcd7833eaa3
[2026-03-02 13:02:44] [INFO] Found existing Dispatch with cADNumber '2026000564', ID: 69a58a67eaa3b0211 - will update instead of create
[2026-03-02 13:02:44] [INFO] Updated existing Dispatches record with ID: 69a58a67eaa3b0211
[2026-03-02 13:02:44] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:02:44] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:02: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-03-02 13:02:48] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022319_20260302_125747_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:02:48] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:02:48] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022319_20260302_125747_2.XML
[2026-03-02 13:02:48] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022319_20260302_125747_2.XML for user: 68f1466aed072ad4a
[2026-03-02 13:02:48] [INFO] File size: 4977 bytes
[2026-03-02 13:02:48] [INFO] Created FTPFiles record with ID: 69a58a7889714c57b
[2026-03-02 13:02:48] [INFO] About to extract fields from XML. File size: 4977 bytes
[2026-03-02 13:02:48] [INFO] Number of mappings: 28
[2026-03-02 13:02:48] [INFO] Starting XML parsing. Content length: 4977
[2026-03-02 13:02:48] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:02:48] [INFO] Processing 28 field mappings
[2026-03-02 13:02:48] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:02:48] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:02:48] [INFO]   -> Found value: PCFD
[2026-03-02 13:02:48] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:02:48] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:02:48] [INFO]   -> Found value: 2026000564
[2026-03-02 13:02:48] [INFO]   -> Set field 'incidentInternalId' = "2026000564"
[2026-03-02 13:02:48] [INFO]   -> Set field 'dispatchRunNumber' = "2026000564"
[2026-03-02 13:02:48] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:02:48] [INFO]   -> Found value: SMOKE ALARM INSTALL
[2026-03-02 13:02:48] [INFO]   -> Set field 'incidentTypeValue1' = "SMOKE ALARM INSTALL"
[2026-03-02 13:02:48] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:02:48] [INFO]   -> Found value: 180
[2026-03-02 13:02:48] [INFO]   -> Set field 'incidentLocationStreetNumber' = 180
[2026-03-02 13:02:48] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:02:48] [INFO]   -> Found value: TN
[2026-03-02 13:02:48] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:02:48] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:02:48] [INFO]   -> Found value: 38501
[2026-03-02 13:02:48] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-02 13:02:48] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:02:48] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:48] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:02:48] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:48] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:02:48] [INFO]   -> Found value: 36.18037
[2026-03-02 13:02:48] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18037000000000347199602401815354824066162109375
[2026-03-02 13:02:48] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:02:48] [INFO]   -> Found value: -85.57545
[2026-03-02 13:02:48] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5754500000000035697667044587433338165283203125
[2026-03-02 13:02:48] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:02:48] [INFO]   -> Found value: 2026-02-28 14:14:28
[2026-03-02 13:02:48] [INFO]   -> Set field 'alarm' = "2026-02-28 14:14:28"
[2026-03-02 13:02:48] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:02:48] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:48] [INFO]   -> Set field 'dispatched' = "2026-02-28 14:15:01"
[2026-03-02 13:02:48] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:02:48] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:48] [INFO]   -> Set field 'enroute' = "2026-02-28 14:15:01"
[2026-03-02 13:02:48] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:02:48] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:48] [INFO]   -> Set field 'onScene' = "2026-02-28 14:15:01"
[2026-03-02 13:02:48] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:02:48] [INFO]   -> Found value: 2026-02-28 15:02:50
[2026-03-02 13:02:48] [INFO]   -> Set field 'cleared' = "2026-02-28 15:02:50"
[2026-03-02 13:02:48] [INFO]   -> Set field 'inService' = "2026-02-28 15:02:50"
[2026-03-02 13:02:48] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:02:48] [INFO]   -> Found value: W BROAD ST
[2026-03-02 13:02:48] [INFO]   -> Set field 'incidentLocationCross' = "W BROAD ST"
[2026-03-02 13:02:48] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:02:48] [INFO]   -> Found value: BR31
[2026-03-02 13:02:48] [INFO]   -> Set field 'cADVehicleID' = "BR31"
[2026-03-02 13:02:48] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:02:48] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:48] [INFO]   -> Set field 'timedispatch' = "2026-02-28 14:15:01"
[2026-03-02 13:02:48] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:02:48] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:48] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-28 14:15:01"
[2026-03-02 13:02:48] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:02:48] [INFO]   -> Found value: 2026-02-28 14:15:01
[2026-03-02 13:02:48] [INFO]   -> Set field 'timeonscene' = "2026-02-28 14:15:01"
[2026-03-02 13:02:48] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:02:48] [INFO]   -> Found value: 2026-02-28 15:02:50
[2026-03-02 13:02:48] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 15:02:50"
[2026-03-02 13:02:48] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:02:48] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:48] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:02:48] [INFO]   -> Found value: 20260022319
[2026-03-02 13:02:48] [INFO]   -> Set field 'policeReportNumber' = "20260022319"
[2026-03-02 13:02:48] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:02:48] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:48] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:02:48] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:02:48] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:02:48] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:02:48] [INFO]   -> Found value: LONG MEADOW
[2026-03-02 13:02:48] [INFO]   -> Set field 'streetName' = "LONG MEADOW"
[2026-03-02 13:02:48] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:02:48] [INFO]   -> Found value: DR
[2026-03-02 13:02:48] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 13:02:48] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:02:48] [INFO]   -> Found value: 180 LONG MEADOW DR
[2026-03-02 13:02:48] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "180 LONG MEADOW DR"
[2026-03-02 13:02:48] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 13:02:48] [INFO] Concatenating street name and type
[2026-03-02 13:02:48] [INFO]   -> Combined street name: LONG MEADOW DR
[2026-03-02 13:02:48] [INFO] Built locationCoordinates from lat/lng: 36.18037,-85.57545
[2026-03-02 13:02:48] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000564","dispatchRunNumber":"2026000564","incidentTypeValue1":"SMOKE ALARM INSTALL","incidentLocationStreetNumber":180,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.18037000000000347199602401815354824066162109375,"nERISIncidentLongitude":-85.5754500000000035697667044587433338165283203125,"alarm":"2026-02-28 14:14:28","dispatched":"2026-02-28 14:15:01","enroute":"2026-02-28 14:15:01","onScene":"2026-02-28 14:15:01","cleared":"2026-02-28 15:02:50","inService":"2026-02-28 15:02:50","incidentLocationCross":"W BROAD ST","cADVehicleID":"BR31","timedispatch":"2026-02-28 14:15:01","timeenroutetoscene":"2026-02-28 14:15:01","timeonscene":"2026-02-28 14:15:01","timeunitclear":"2026-02-28 15:02:50","policeReportNumber":"20260022319","incidentLocationCity":"COOKEVILLE","streetName":"LONG MEADOW DR","incidentAddressTextVersionStreet":"180 LONG MEADOW DR","locationCoordinates":"36.18037,-85.57545"}
[2026-03-02 13:02:48] [INFO] Number of extracted fields: 26
[2026-03-02 13:02:48] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:02:48] [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-03-02 13:02:48] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:02:48] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:02:48] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:02:48] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-02 13:02:48] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:02:48] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:02:49] [INFO] Found existing IncidentTypeMapping with ID: 69384adcd7833eaa3
[2026-03-02 13:02:49] [INFO] Found existing Dispatch with cADNumber '2026000564', ID: 69a58a67eaa3b0211 - will update instead of create
[2026-03-02 13:02:49] [INFO] Updated existing Dispatches record with ID: 69a58a67eaa3b0211
[2026-03-02 13:02:49] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:02:49] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:02:52] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:02:52] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022319_20260302_125747_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:02:52] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:02:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022338_20260302_125749.XML
[2026-03-02 13:02:52] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022338_20260302_125749.XML for user: 68f1466aed072ad4a
[2026-03-02 13:02:52] [INFO] File size: 7520 bytes
[2026-03-02 13:02:52] [INFO] Created FTPFiles record with ID: 69a58a7cd5fa86b88
[2026-03-02 13:02:52] [INFO] About to extract fields from XML. File size: 7520 bytes
[2026-03-02 13:02:52] [INFO] Number of mappings: 28
[2026-03-02 13:02:52] [INFO] Starting XML parsing. Content length: 7520
[2026-03-02 13:02:52] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:02:52] [INFO] Processing 28 field mappings
[2026-03-02 13:02:52] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:02:52] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:02:52] [INFO]   -> Found value: PCFD
[2026-03-02 13:02:52] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:02:52] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:02:52] [INFO]   -> Found value: 2026000565
[2026-03-02 13:02:52] [INFO]   -> Set field 'incidentInternalId' = "2026000565"
[2026-03-02 13:02:52] [INFO]   -> Set field 'dispatchRunNumber' = "2026000565"
[2026-03-02 13:02:52] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:02:52] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-02 13:02:52] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-02 13:02:52] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:02:52] [INFO]   -> Found value: 281
[2026-03-02 13:02:52] [INFO]   -> Set field 'incidentLocationStreetNumber' = 281
[2026-03-02 13:02:52] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:02:52] [INFO]   -> Found value: TN
[2026-03-02 13:02:52] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:02:52] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:02:52] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:52] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:02:52] [INFO]   -> Found value: MM281W
[2026-03-02 13:02:52] [INFO]   -> Set field 'businessName' = "MM281W"
[2026-03-02 13:02:52] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:02:52] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:52] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:02:52] [INFO]   -> Found value: 36.14031
[2026-03-02 13:02:52] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.140309999999999490682967007160186767578125
[2026-03-02 13:02:52] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:02:52] [INFO]   -> Found value: -85.61141
[2026-03-02 13:02:52] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.611410000000006448317435570061206817626953125
[2026-03-02 13:02:52] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:02:52] [INFO]   -> Found value: 2026-02-28 15:16:52
[2026-03-02 13:02:52] [INFO]   -> Set field 'alarm' = "2026-02-28 15:16:52"
[2026-03-02 13:02:52] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:02:52] [INFO]   -> Found value: 2026-02-28 15:18:53
[2026-03-02 13:02:52] [INFO]   -> Set field 'dispatched' = "2026-02-28 15:18:53"
[2026-03-02 13:02:52] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:02:52] [INFO]   -> Found value: 2026-02-28 15:18:53
[2026-03-02 13:02:52] [INFO]   -> Set field 'enroute' = "2026-02-28 15:18:53"
[2026-03-02 13:02:52] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:02:52] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:52] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:02:52] [INFO]   -> Found value: 2026-02-28 15:30:45
[2026-03-02 13:02:52] [INFO]   -> Set field 'cleared' = "2026-02-28 15:30:45"
[2026-03-02 13:02:52] [INFO]   -> Set field 'inService' = "2026-02-28 15:30:45"
[2026-03-02 13:02:52] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:02:52] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:52] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:02:52] [INFO]   -> Found value: BR11
[2026-03-02 13:02:52] [INFO]   -> Set field 'cADVehicleID' = "BR11"
[2026-03-02 13:02:52] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:02:52] [INFO]   -> Found value: 2026-02-28 15:19:47
[2026-03-02 13:02:52] [INFO]   -> Set field 'timedispatch' = "2026-02-28 15:19:47"
[2026-03-02 13:02:52] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:02:52] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:52] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:02:52] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:52] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:02:52] [INFO]   -> Found value: 2026-02-28 15:22:30
[2026-03-02 13:02:52] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 15:22:30"
[2026-03-02 13:02:52] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:02:52] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:52] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:02:52] [INFO]   -> Found value: 20260022338
[2026-03-02 13:02:52] [INFO]   -> Set field 'policeReportNumber' = "20260022338"
[2026-03-02 13:02:52] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:02:52] [INFO]   -> Found value: [LAW] 406 CHECKING THE AREA AROUND THE 280 BUT THINKS IT CONT ON EB  [02/28/26 15:28:49 KPATTON] UDT...
[2026-03-02 13:02:52] [INFO]   -> Set field 'dispatchNotes' = "[LAW] 406 CHECKING THE AREA AROUND THE 280 BUT THINKS IT CONT ON EB  [02\/28\/26 15:28:49 KPATTON] UDTS: CARD SEEN BY 911  [02\/28\/26 15:27:58 KBURTON] [LAW] {B406} LIGHT GREEN FORD ESCAPE SUV  [02\/28\/26 15:25:01 BWILSON] [LAW] {B406} VEHICLE MAY HAVE GOTTEN OFF AT THE 280  [02\/28\/26 15:24:43 BWILSON] [LAW] {B406} AS I CAME ONTO THE INTERSTATE I SAW A GREEN TRUCK PULL OUT OF THE DITCH HEADING WB  [02\/28\/26 15:22:02 BWILSON] [EMS] CALLER UNABLE TO STOP-NO FURTHER CALLS OR INFORMATION  [02\/28\/26 15:17:04 KHILL] Event spawned from MVC WITH INJURY.  [02\/28\/2026 15:16:52 KHILL] CALLER DID NOT SEE IT HAPPEN  [02\/28\/26 15:16:23 KHILL] CALLER STATED THE PASSENGER DOOR WAS OPEN AND LOCKED LIKE THE WINDSHEILD WAS BUSTED  [02\/28\/26 15:16:02 KHILL] GOLD SUV  DOWN THE EMBANKMENT  [02\/28\/26 15:15:35 KHILL]"
[2026-03-02 13:02:52] [INFO]   -> Set field 'cADLog' = "[LAW] 406 CHECKING THE AREA AROUND THE 280 BUT THINKS IT CONT ON EB  [02\/28\/26 15:28:49 KPATTON] UDTS: CARD SEEN BY 911  [02\/28\/26 15:27:58 KBURTON] [LAW] {B406} LIGHT GREEN FORD ESCAPE SUV  [02\/28\/26 15:25:01 BWILSON] [LAW] {B406} VEHICLE MAY HAVE GOTTEN OFF AT THE 280  [02\/28\/26 15:24:43 BWILSON] [LAW] {B406} AS I CAME ONTO THE INTERSTATE I SAW A GREEN TRUCK PULL OUT OF THE DITCH HEADING WB  [02\/28\/26 15:22:02 BWILSON] [EMS] CALLER UNABLE TO STOP-NO FURTHER CALLS OR INFORMATION  [02\/28\/26 15:17:04 KHILL] Event spawned from MVC WITH INJURY.  [02\/28\/2026 15:16:52 KHILL] CALLER DID NOT SEE IT HAPPEN  [02\/28\/26 15:16:23 KHILL] CALLER STATED THE PASSENGER DOOR WAS OPEN AND LOCKED LIKE THE WINDSHEILD WAS BUSTED  [02\/28\/26 15:16:02 KHILL] GOLD SUV  DOWN THE EMBANKMENT  [02\/28\/26 15:15:35 KHILL]"
[2026-03-02 13:02:52] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:02:52] [INFO]   -> Found value: BAXTER
[2026-03-02 13:02:52] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 13:02:52] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:02:52] [INFO]   -> Found value: I 40
[2026-03-02 13:02:52] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-02 13:02:52] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:02:52] [INFO]   -> No value found (null or empty)
[2026-03-02 13:02:52] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:02:52] [INFO]   -> Found value: 281 W I 40
[2026-03-02 13:02:52] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "281 W I 40"
[2026-03-02 13:02:52] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-02 13:02:52] [INFO] Built locationCoordinates from lat/lng: 36.14031,-85.61141
[2026-03-02 13:02:52] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000565","dispatchRunNumber":"2026000565","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":281,"incidentLocationStateName":"TN","businessName":"MM281W","nERISIncidentLatitude":36.140309999999999490682967007160186767578125,"nERISIncidentLongitude":-85.611410000000006448317435570061206817626953125,"alarm":"2026-02-28 15:16:52","dispatched":"2026-02-28 15:18:53","enroute":"2026-02-28 15:18:53","cleared":"2026-02-28 15:30:45","inService":"2026-02-28 15:30:45","cADVehicleID":"BR11","timedispatch":"2026-02-28 15:19:47","timeunitclear":"2026-02-28 15:22:30","policeReportNumber":"20260022338","dispatchNotes":"[LAW] 406 CHECKING THE AREA AROUND THE 280 BUT THINKS IT CONT ON EB  [02\/28\/26 15:28:49 KPATTON] UDTS: CARD SEEN BY 911  [02\/28\/26 15:27:58 KBURTON] [LAW] {B406} LIGHT GREEN FORD ESCAPE SUV  [02\/28\/26 15:25:01 BWILSON] [LAW] {B406} VEHICLE MAY HAVE GOTTEN OFF AT THE 280  [02\/28\/26 15:24:43 BWILSON] [LAW] {B406} AS I CAME ONTO THE INTERSTATE I SAW A GREEN TRUCK PULL OUT OF THE DITCH HEADING WB  [02\/28\/26 15:22:02 BWILSON] [EMS] CALLER UNABLE TO STOP-NO FURTHER CALLS OR INFORMATION  [02\/28\/26 15:17:04 KHILL] Event spawned from MVC WITH INJURY.  [02\/28\/2026 15:16:52 KHILL] CALLER DID NOT SEE IT HAPPEN  [02\/28\/26 15:16:23 KHILL] CALLER STATED THE PASSENGER DOOR WAS OPEN AND LOCKED LIKE THE WINDSHEILD WAS BUSTED  [02\/28\/26 15:16:02 KHILL] GOLD SUV  DOWN THE EMBANKMENT  [02\/28\/26 15:15:35 KHILL]","cADLog":"[LAW] 406 CHECKING THE AREA AROUND THE 280 BUT THINKS IT CONT ON EB  [02\/28\/26 15:28:49 KPATTON] UDTS: CARD SEEN BY 911  [02\/28\/26 15:27:58 KBURTON] [LAW] {B406} LIGHT GREEN FORD ESCAPE SUV  [02\/28\/26 15:25:01 BWILSON] [LAW] {B406} VEHICLE MAY HAVE GOTTEN OFF AT THE 280  [02\/28\/26 15:24:43 BWILSON] [LAW] {B406} AS I CAME ONTO THE INTERSTATE I SAW A GREEN TRUCK PULL OUT OF THE DITCH HEADING WB  [02\/28\/26 15:22:02 BWILSON] [EMS] CALLER UNABLE TO STOP-NO FURTHER CALLS OR INFORMATION  [02\/28\/26 15:17:04 KHILL] Event spawned from MVC WITH INJURY.  [02\/28\/2026 15:16:52 KHILL] CALLER DID NOT SEE IT HAPPEN  [02\/28\/26 15:16:23 KHILL] CALLER STATED THE PASSENGER DOOR WAS OPEN AND LOCKED LIKE THE WINDSHEILD WAS BUSTED  [02\/28\/26 15:16:02 KHILL] GOLD SUV  DOWN THE EMBANKMENT  [02\/28\/26 15:15:35 KHILL]","incidentLocationCity":"BAXTER","streetName":"I 40","incidentAddressTextVersionStreet":"281 W I 40","locationCoordinates":"36.14031,-85.61141"}
[2026-03-02 13:02:52] [INFO] Number of extracted fields: 24
[2026-03-02 13:02:52] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:02:52] [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-03-02 13:02:52] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:02:52] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:02:53] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:02:53] [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-03-02 13:02:53] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:02:53] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:02:53] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-03-02 13:03:01] [INFO] Created new Dispatches record with ID: 69a58a7da91c839c1
[2026-03-02 13:03:01] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:03:01] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:03:05] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:03:05] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022338_20260302_125749.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:03:05] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:03:05] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022338_20260302_125749_1.XML
[2026-03-02 13:03:05] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022338_20260302_125749_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:03:05] [INFO] File size: 7520 bytes
[2026-03-02 13:03:05] [INFO] Created FTPFiles record with ID: 69a58a89b8fe20cf5
[2026-03-02 13:03:05] [INFO] About to extract fields from XML. File size: 7520 bytes
[2026-03-02 13:03:05] [INFO] Number of mappings: 28
[2026-03-02 13:03:05] [INFO] Starting XML parsing. Content length: 7520
[2026-03-02 13:03:05] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:03:05] [INFO] Processing 28 field mappings
[2026-03-02 13:03:05] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:03:05] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:03:05] [INFO]   -> Found value: PCFD
[2026-03-02 13:03:05] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:03:05] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:03:05] [INFO]   -> Found value: 2026000565
[2026-03-02 13:03:05] [INFO]   -> Set field 'incidentInternalId' = "2026000565"
[2026-03-02 13:03:05] [INFO]   -> Set field 'dispatchRunNumber' = "2026000565"
[2026-03-02 13:03:05] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:03:05] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-02 13:03:05] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-02 13:03:05] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:03:05] [INFO]   -> Found value: 281
[2026-03-02 13:03:05] [INFO]   -> Set field 'incidentLocationStreetNumber' = 281
[2026-03-02 13:03:05] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:03:05] [INFO]   -> Found value: TN
[2026-03-02 13:03:05] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:03:05] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:03:05] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:05] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:03:05] [INFO]   -> Found value: MM281W
[2026-03-02 13:03:05] [INFO]   -> Set field 'businessName' = "MM281W"
[2026-03-02 13:03:05] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:03:05] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:05] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:03:05] [INFO]   -> Found value: 36.14031
[2026-03-02 13:03:05] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.140309999999999490682967007160186767578125
[2026-03-02 13:03:05] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:03:05] [INFO]   -> Found value: -85.61141
[2026-03-02 13:03:05] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.611410000000006448317435570061206817626953125
[2026-03-02 13:03:05] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:03:05] [INFO]   -> Found value: 2026-02-28 15:16:52
[2026-03-02 13:03:05] [INFO]   -> Set field 'alarm' = "2026-02-28 15:16:52"
[2026-03-02 13:03:05] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:03:05] [INFO]   -> Found value: 2026-02-28 15:18:53
[2026-03-02 13:03:05] [INFO]   -> Set field 'dispatched' = "2026-02-28 15:18:53"
[2026-03-02 13:03:05] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:03:05] [INFO]   -> Found value: 2026-02-28 15:18:53
[2026-03-02 13:03:05] [INFO]   -> Set field 'enroute' = "2026-02-28 15:18:53"
[2026-03-02 13:03:05] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:03:05] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:05] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:03:05] [INFO]   -> Found value: 2026-02-28 15:30:45
[2026-03-02 13:03:05] [INFO]   -> Set field 'cleared' = "2026-02-28 15:30:45"
[2026-03-02 13:03:05] [INFO]   -> Set field 'inService' = "2026-02-28 15:30:45"
[2026-03-02 13:03:05] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:03:05] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:05] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:03:05] [INFO]   -> Found value: BR11
[2026-03-02 13:03:05] [INFO]   -> Set field 'cADVehicleID' = "BR11"
[2026-03-02 13:03:05] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:03:05] [INFO]   -> Found value: 2026-02-28 15:19:47
[2026-03-02 13:03:05] [INFO]   -> Set field 'timedispatch' = "2026-02-28 15:19:47"
[2026-03-02 13:03:05] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:03:05] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:05] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:03:05] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:05] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:03:05] [INFO]   -> Found value: 2026-02-28 15:22:30
[2026-03-02 13:03:05] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 15:22:30"
[2026-03-02 13:03:05] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:03:05] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:05] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:03:05] [INFO]   -> Found value: 20260022338
[2026-03-02 13:03:05] [INFO]   -> Set field 'policeReportNumber' = "20260022338"
[2026-03-02 13:03:05] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:03:05] [INFO]   -> Found value: [LAW] 406 CHECKING THE AREA AROUND THE 280 BUT THINKS IT CONT ON EB  [02/28/26 15:28:49 KPATTON] UDT...
[2026-03-02 13:03:05] [INFO]   -> Set field 'dispatchNotes' = "[LAW] 406 CHECKING THE AREA AROUND THE 280 BUT THINKS IT CONT ON EB  [02\/28\/26 15:28:49 KPATTON] UDTS: CARD SEEN BY 911  [02\/28\/26 15:27:58 KBURTON] [LAW] {B406} LIGHT GREEN FORD ESCAPE SUV  [02\/28\/26 15:25:01 BWILSON] [LAW] {B406} VEHICLE MAY HAVE GOTTEN OFF AT THE 280  [02\/28\/26 15:24:43 BWILSON] [LAW] {B406} AS I CAME ONTO THE INTERSTATE I SAW A GREEN TRUCK PULL OUT OF THE DITCH HEADING WB  [02\/28\/26 15:22:02 BWILSON] [EMS] CALLER UNABLE TO STOP-NO FURTHER CALLS OR INFORMATION  [02\/28\/26 15:17:04 KHILL] Event spawned from MVC WITH INJURY.  [02\/28\/2026 15:16:52 KHILL] CALLER DID NOT SEE IT HAPPEN  [02\/28\/26 15:16:23 KHILL] CALLER STATED THE PASSENGER DOOR WAS OPEN AND LOCKED LIKE THE WINDSHEILD WAS BUSTED  [02\/28\/26 15:16:02 KHILL] GOLD SUV  DOWN THE EMBANKMENT  [02\/28\/26 15:15:35 KHILL]"
[2026-03-02 13:03:05] [INFO]   -> Set field 'cADLog' = "[LAW] 406 CHECKING THE AREA AROUND THE 280 BUT THINKS IT CONT ON EB  [02\/28\/26 15:28:49 KPATTON] UDTS: CARD SEEN BY 911  [02\/28\/26 15:27:58 KBURTON] [LAW] {B406} LIGHT GREEN FORD ESCAPE SUV  [02\/28\/26 15:25:01 BWILSON] [LAW] {B406} VEHICLE MAY HAVE GOTTEN OFF AT THE 280  [02\/28\/26 15:24:43 BWILSON] [LAW] {B406} AS I CAME ONTO THE INTERSTATE I SAW A GREEN TRUCK PULL OUT OF THE DITCH HEADING WB  [02\/28\/26 15:22:02 BWILSON] [EMS] CALLER UNABLE TO STOP-NO FURTHER CALLS OR INFORMATION  [02\/28\/26 15:17:04 KHILL] Event spawned from MVC WITH INJURY.  [02\/28\/2026 15:16:52 KHILL] CALLER DID NOT SEE IT HAPPEN  [02\/28\/26 15:16:23 KHILL] CALLER STATED THE PASSENGER DOOR WAS OPEN AND LOCKED LIKE THE WINDSHEILD WAS BUSTED  [02\/28\/26 15:16:02 KHILL] GOLD SUV  DOWN THE EMBANKMENT  [02\/28\/26 15:15:35 KHILL]"
[2026-03-02 13:03:05] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:03:05] [INFO]   -> Found value: BAXTER
[2026-03-02 13:03:05] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 13:03:05] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:03:05] [INFO]   -> Found value: I 40
[2026-03-02 13:03:05] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-02 13:03:05] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:03:05] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:05] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:03:05] [INFO]   -> Found value: 281 W I 40
[2026-03-02 13:03:05] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "281 W I 40"
[2026-03-02 13:03:05] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-02 13:03:05] [INFO] Built locationCoordinates from lat/lng: 36.14031,-85.61141
[2026-03-02 13:03:05] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000565","dispatchRunNumber":"2026000565","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":281,"incidentLocationStateName":"TN","businessName":"MM281W","nERISIncidentLatitude":36.140309999999999490682967007160186767578125,"nERISIncidentLongitude":-85.611410000000006448317435570061206817626953125,"alarm":"2026-02-28 15:16:52","dispatched":"2026-02-28 15:18:53","enroute":"2026-02-28 15:18:53","cleared":"2026-02-28 15:30:45","inService":"2026-02-28 15:30:45","cADVehicleID":"BR11","timedispatch":"2026-02-28 15:19:47","timeunitclear":"2026-02-28 15:22:30","policeReportNumber":"20260022338","dispatchNotes":"[LAW] 406 CHECKING THE AREA AROUND THE 280 BUT THINKS IT CONT ON EB  [02\/28\/26 15:28:49 KPATTON] UDTS: CARD SEEN BY 911  [02\/28\/26 15:27:58 KBURTON] [LAW] {B406} LIGHT GREEN FORD ESCAPE SUV  [02\/28\/26 15:25:01 BWILSON] [LAW] {B406} VEHICLE MAY HAVE GOTTEN OFF AT THE 280  [02\/28\/26 15:24:43 BWILSON] [LAW] {B406} AS I CAME ONTO THE INTERSTATE I SAW A GREEN TRUCK PULL OUT OF THE DITCH HEADING WB  [02\/28\/26 15:22:02 BWILSON] [EMS] CALLER UNABLE TO STOP-NO FURTHER CALLS OR INFORMATION  [02\/28\/26 15:17:04 KHILL] Event spawned from MVC WITH INJURY.  [02\/28\/2026 15:16:52 KHILL] CALLER DID NOT SEE IT HAPPEN  [02\/28\/26 15:16:23 KHILL] CALLER STATED THE PASSENGER DOOR WAS OPEN AND LOCKED LIKE THE WINDSHEILD WAS BUSTED  [02\/28\/26 15:16:02 KHILL] GOLD SUV  DOWN THE EMBANKMENT  [02\/28\/26 15:15:35 KHILL]","cADLog":"[LAW] 406 CHECKING THE AREA AROUND THE 280 BUT THINKS IT CONT ON EB  [02\/28\/26 15:28:49 KPATTON] UDTS: CARD SEEN BY 911  [02\/28\/26 15:27:58 KBURTON] [LAW] {B406} LIGHT GREEN FORD ESCAPE SUV  [02\/28\/26 15:25:01 BWILSON] [LAW] {B406} VEHICLE MAY HAVE GOTTEN OFF AT THE 280  [02\/28\/26 15:24:43 BWILSON] [LAW] {B406} AS I CAME ONTO THE INTERSTATE I SAW A GREEN TRUCK PULL OUT OF THE DITCH HEADING WB  [02\/28\/26 15:22:02 BWILSON] [EMS] CALLER UNABLE TO STOP-NO FURTHER CALLS OR INFORMATION  [02\/28\/26 15:17:04 KHILL] Event spawned from MVC WITH INJURY.  [02\/28\/2026 15:16:52 KHILL] CALLER DID NOT SEE IT HAPPEN  [02\/28\/26 15:16:23 KHILL] CALLER STATED THE PASSENGER DOOR WAS OPEN AND LOCKED LIKE THE WINDSHEILD WAS BUSTED  [02\/28\/26 15:16:02 KHILL] GOLD SUV  DOWN THE EMBANKMENT  [02\/28\/26 15:15:35 KHILL]","incidentLocationCity":"BAXTER","streetName":"I 40","incidentAddressTextVersionStreet":"281 W I 40","locationCoordinates":"36.14031,-85.61141"}
[2026-03-02 13:03:05] [INFO] Number of extracted fields: 24
[2026-03-02 13:03:05] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:03:05] [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-03-02 13:03:05] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:03:05] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:03:05] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:03:06] [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-03-02 13:03:06] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:03:06] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:03:07] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-03-02 13:03:07] [INFO] Found existing Dispatch with cADNumber '2026000565', ID: 69a58a7da91c839c1 - will update instead of create
[2026-03-02 13:03:08] [INFO] Updated existing Dispatches record with ID: 69a58a7da91c839c1
[2026-03-02 13:03:08] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:03:08] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:03:12] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:03:12] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022338_20260302_125749_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:03:12] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:03:12] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022338_20260302_125749_1.XML
[2026-03-02 13:03:12] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022338_20260302_125749_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:03:12] [INFO] File size: 7520 bytes
[2026-03-02 13:03:13] [INFO] Created FTPFiles record with ID: 69a58a910d7985cba
[2026-03-02 13:03:13] [INFO] About to extract fields from XML. File size: 7520 bytes
[2026-03-02 13:03:13] [INFO] Number of mappings: 28
[2026-03-02 13:03:13] [INFO] Starting XML parsing. Content length: 7520
[2026-03-02 13:03:13] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:03:13] [INFO] Processing 28 field mappings
[2026-03-02 13:03:13] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:03:13] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:03:13] [INFO]   -> Found value: PCFD
[2026-03-02 13:03:13] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:03:13] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:03:13] [INFO]   -> Found value: 2026000565
[2026-03-02 13:03:13] [INFO]   -> Set field 'incidentInternalId' = "2026000565"
[2026-03-02 13:03:13] [INFO]   -> Set field 'dispatchRunNumber' = "2026000565"
[2026-03-02 13:03:13] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:03:13] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-02 13:03:13] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-02 13:03:13] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:03:13] [INFO]   -> Found value: 281
[2026-03-02 13:03:13] [INFO]   -> Set field 'incidentLocationStreetNumber' = 281
[2026-03-02 13:03:13] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:03:13] [INFO]   -> Found value: TN
[2026-03-02 13:03:13] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:03:13] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:03:13] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:13] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:03:13] [INFO]   -> Found value: MM281W
[2026-03-02 13:03:13] [INFO]   -> Set field 'businessName' = "MM281W"
[2026-03-02 13:03:13] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:03:13] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:13] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:03:13] [INFO]   -> Found value: 36.14031
[2026-03-02 13:03:13] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.140309999999999490682967007160186767578125
[2026-03-02 13:03:13] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:03:13] [INFO]   -> Found value: -85.61141
[2026-03-02 13:03:13] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.611410000000006448317435570061206817626953125
[2026-03-02 13:03:13] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:03:13] [INFO]   -> Found value: 2026-02-28 15:16:52
[2026-03-02 13:03:13] [INFO]   -> Set field 'alarm' = "2026-02-28 15:16:52"
[2026-03-02 13:03:13] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:03:13] [INFO]   -> Found value: 2026-02-28 15:18:53
[2026-03-02 13:03:13] [INFO]   -> Set field 'dispatched' = "2026-02-28 15:18:53"
[2026-03-02 13:03:13] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:03:13] [INFO]   -> Found value: 2026-02-28 15:18:53
[2026-03-02 13:03:13] [INFO]   -> Set field 'enroute' = "2026-02-28 15:18:53"
[2026-03-02 13:03:13] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:03:13] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:13] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:03:13] [INFO]   -> Found value: 2026-02-28 15:30:45
[2026-03-02 13:03:13] [INFO]   -> Set field 'cleared' = "2026-02-28 15:30:45"
[2026-03-02 13:03:13] [INFO]   -> Set field 'inService' = "2026-02-28 15:30:45"
[2026-03-02 13:03:13] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:03:13] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:13] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:03:13] [INFO]   -> Found value: BR11
[2026-03-02 13:03:13] [INFO]   -> Set field 'cADVehicleID' = "BR11"
[2026-03-02 13:03:13] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:03:13] [INFO]   -> Found value: 2026-02-28 15:19:47
[2026-03-02 13:03:13] [INFO]   -> Set field 'timedispatch' = "2026-02-28 15:19:47"
[2026-03-02 13:03:13] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:03:13] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:13] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:03:13] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:13] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:03:13] [INFO]   -> Found value: 2026-02-28 15:22:30
[2026-03-02 13:03:13] [INFO]   -> Set field 'timeunitclear' = "2026-02-28 15:22:30"
[2026-03-02 13:03:13] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:03:13] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:13] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:03:13] [INFO]   -> Found value: 20260022338
[2026-03-02 13:03:13] [INFO]   -> Set field 'policeReportNumber' = "20260022338"
[2026-03-02 13:03:13] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:03:13] [INFO]   -> Found value: [LAW] 406 CHECKING THE AREA AROUND THE 280 BUT THINKS IT CONT ON EB  [02/28/26 15:28:49 KPATTON] UDT...
[2026-03-02 13:03:13] [INFO]   -> Set field 'dispatchNotes' = "[LAW] 406 CHECKING THE AREA AROUND THE 280 BUT THINKS IT CONT ON EB  [02\/28\/26 15:28:49 KPATTON] UDTS: CARD SEEN BY 911  [02\/28\/26 15:27:58 KBURTON] [LAW] {B406} LIGHT GREEN FORD ESCAPE SUV  [02\/28\/26 15:25:01 BWILSON] [LAW] {B406} VEHICLE MAY HAVE GOTTEN OFF AT THE 280  [02\/28\/26 15:24:43 BWILSON] [LAW] {B406} AS I CAME ONTO THE INTERSTATE I SAW A GREEN TRUCK PULL OUT OF THE DITCH HEADING WB  [02\/28\/26 15:22:02 BWILSON] [EMS] CALLER UNABLE TO STOP-NO FURTHER CALLS OR INFORMATION  [02\/28\/26 15:17:04 KHILL] Event spawned from MVC WITH INJURY.  [02\/28\/2026 15:16:52 KHILL] CALLER DID NOT SEE IT HAPPEN  [02\/28\/26 15:16:23 KHILL] CALLER STATED THE PASSENGER DOOR WAS OPEN AND LOCKED LIKE THE WINDSHEILD WAS BUSTED  [02\/28\/26 15:16:02 KHILL] GOLD SUV  DOWN THE EMBANKMENT  [02\/28\/26 15:15:35 KHILL]"
[2026-03-02 13:03:13] [INFO]   -> Set field 'cADLog' = "[LAW] 406 CHECKING THE AREA AROUND THE 280 BUT THINKS IT CONT ON EB  [02\/28\/26 15:28:49 KPATTON] UDTS: CARD SEEN BY 911  [02\/28\/26 15:27:58 KBURTON] [LAW] {B406} LIGHT GREEN FORD ESCAPE SUV  [02\/28\/26 15:25:01 BWILSON] [LAW] {B406} VEHICLE MAY HAVE GOTTEN OFF AT THE 280  [02\/28\/26 15:24:43 BWILSON] [LAW] {B406} AS I CAME ONTO THE INTERSTATE I SAW A GREEN TRUCK PULL OUT OF THE DITCH HEADING WB  [02\/28\/26 15:22:02 BWILSON] [EMS] CALLER UNABLE TO STOP-NO FURTHER CALLS OR INFORMATION  [02\/28\/26 15:17:04 KHILL] Event spawned from MVC WITH INJURY.  [02\/28\/2026 15:16:52 KHILL] CALLER DID NOT SEE IT HAPPEN  [02\/28\/26 15:16:23 KHILL] CALLER STATED THE PASSENGER DOOR WAS OPEN AND LOCKED LIKE THE WINDSHEILD WAS BUSTED  [02\/28\/26 15:16:02 KHILL] GOLD SUV  DOWN THE EMBANKMENT  [02\/28\/26 15:15:35 KHILL]"
[2026-03-02 13:03:13] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:03:13] [INFO]   -> Found value: BAXTER
[2026-03-02 13:03:13] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 13:03:13] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:03:13] [INFO]   -> Found value: I 40
[2026-03-02 13:03:13] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-02 13:03:13] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:03:13] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:13] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:03:13] [INFO]   -> Found value: 281 W I 40
[2026-03-02 13:03:13] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "281 W I 40"
[2026-03-02 13:03:13] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-02 13:03:13] [INFO] Built locationCoordinates from lat/lng: 36.14031,-85.61141
[2026-03-02 13:03:13] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000565","dispatchRunNumber":"2026000565","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":281,"incidentLocationStateName":"TN","businessName":"MM281W","nERISIncidentLatitude":36.140309999999999490682967007160186767578125,"nERISIncidentLongitude":-85.611410000000006448317435570061206817626953125,"alarm":"2026-02-28 15:16:52","dispatched":"2026-02-28 15:18:53","enroute":"2026-02-28 15:18:53","cleared":"2026-02-28 15:30:45","inService":"2026-02-28 15:30:45","cADVehicleID":"BR11","timedispatch":"2026-02-28 15:19:47","timeunitclear":"2026-02-28 15:22:30","policeReportNumber":"20260022338","dispatchNotes":"[LAW] 406 CHECKING THE AREA AROUND THE 280 BUT THINKS IT CONT ON EB  [02\/28\/26 15:28:49 KPATTON] UDTS: CARD SEEN BY 911  [02\/28\/26 15:27:58 KBURTON] [LAW] {B406} LIGHT GREEN FORD ESCAPE SUV  [02\/28\/26 15:25:01 BWILSON] [LAW] {B406} VEHICLE MAY HAVE GOTTEN OFF AT THE 280  [02\/28\/26 15:24:43 BWILSON] [LAW] {B406} AS I CAME ONTO THE INTERSTATE I SAW A GREEN TRUCK PULL OUT OF THE DITCH HEADING WB  [02\/28\/26 15:22:02 BWILSON] [EMS] CALLER UNABLE TO STOP-NO FURTHER CALLS OR INFORMATION  [02\/28\/26 15:17:04 KHILL] Event spawned from MVC WITH INJURY.  [02\/28\/2026 15:16:52 KHILL] CALLER DID NOT SEE IT HAPPEN  [02\/28\/26 15:16:23 KHILL] CALLER STATED THE PASSENGER DOOR WAS OPEN AND LOCKED LIKE THE WINDSHEILD WAS BUSTED  [02\/28\/26 15:16:02 KHILL] GOLD SUV  DOWN THE EMBANKMENT  [02\/28\/26 15:15:35 KHILL]","cADLog":"[LAW] 406 CHECKING THE AREA AROUND THE 280 BUT THINKS IT CONT ON EB  [02\/28\/26 15:28:49 KPATTON] UDTS: CARD SEEN BY 911  [02\/28\/26 15:27:58 KBURTON] [LAW] {B406} LIGHT GREEN FORD ESCAPE SUV  [02\/28\/26 15:25:01 BWILSON] [LAW] {B406} VEHICLE MAY HAVE GOTTEN OFF AT THE 280  [02\/28\/26 15:24:43 BWILSON] [LAW] {B406} AS I CAME ONTO THE INTERSTATE I SAW A GREEN TRUCK PULL OUT OF THE DITCH HEADING WB  [02\/28\/26 15:22:02 BWILSON] [EMS] CALLER UNABLE TO STOP-NO FURTHER CALLS OR INFORMATION  [02\/28\/26 15:17:04 KHILL] Event spawned from MVC WITH INJURY.  [02\/28\/2026 15:16:52 KHILL] CALLER DID NOT SEE IT HAPPEN  [02\/28\/26 15:16:23 KHILL] CALLER STATED THE PASSENGER DOOR WAS OPEN AND LOCKED LIKE THE WINDSHEILD WAS BUSTED  [02\/28\/26 15:16:02 KHILL] GOLD SUV  DOWN THE EMBANKMENT  [02\/28\/26 15:15:35 KHILL]","incidentLocationCity":"BAXTER","streetName":"I 40","incidentAddressTextVersionStreet":"281 W I 40","locationCoordinates":"36.14031,-85.61141"}
[2026-03-02 13:03:13] [INFO] Number of extracted fields: 24
[2026-03-02 13:03:13] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:03:13] [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-03-02 13:03:13] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:03:13] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:03:13] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:03:13] [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-03-02 13:03:13] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:03:13] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:03:13] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-03-02 13:03:13] [INFO] Found existing Dispatch with cADNumber '2026000565', ID: 69a58a7da91c839c1 - will update instead of create
[2026-03-02 13:03:13] [INFO] Updated existing Dispatches record with ID: 69a58a7da91c839c1
[2026-03-02 13:03:13] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:03:13] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:03:17] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:03:17] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022338_20260302_125749_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:03:17] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:03:17] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022584_20260302_125750.XML
[2026-03-02 13:03:17] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022584_20260302_125750.XML for user: 68f1466aed072ad4a
[2026-03-02 13:03:17] [INFO] File size: 6273 bytes
[2026-03-02 13:03:18] [INFO] Created FTPFiles record with ID: 69a58a9625aeb9e2f
[2026-03-02 13:03:18] [INFO] About to extract fields from XML. File size: 6273 bytes
[2026-03-02 13:03:18] [INFO] Number of mappings: 28
[2026-03-02 13:03:18] [INFO] Starting XML parsing. Content length: 6273
[2026-03-02 13:03:18] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:03:18] [INFO] Processing 28 field mappings
[2026-03-02 13:03:18] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:03:18] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:03:18] [INFO]   -> Found value: PCFD
[2026-03-02 13:03:18] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:03:18] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:03:18] [INFO]   -> Found value: 2026000566
[2026-03-02 13:03:18] [INFO]   -> Set field 'incidentInternalId' = "2026000566"
[2026-03-02 13:03:18] [INFO]   -> Set field 'dispatchRunNumber' = "2026000566"
[2026-03-02 13:03:18] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:03:18] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-02 13:03:18] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-02 13:03:18] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:03:18] [INFO]   -> Found value: 973
[2026-03-02 13:03:18] [INFO]   -> Set field 'incidentLocationStreetNumber' = 973
[2026-03-02 13:03:18] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:03:18] [INFO]   -> Found value: TN
[2026-03-02 13:03:18] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:03:18] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:03:18] [INFO]   -> Found value: 38506
[2026-03-02 13:03:18] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:03:18] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:03:18] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:18] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:03:18] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:18] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:03:18] [INFO]   -> Found value: 36.20808
[2026-03-02 13:03:18] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20808000000000248519427259452641010284423828125
[2026-03-02 13:03:18] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:03:18] [INFO]   -> Found value: -85.48024
[2026-03-02 13:03:18] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4802399999999948931872495450079441070556640625
[2026-03-02 13:03:18] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:03:18] [INFO]   -> Found value: 2026-03-01 10:08:54
[2026-03-02 13:03:18] [INFO]   -> Set field 'alarm' = "2026-03-01 10:08:54"
[2026-03-02 13:03:18] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:03:18] [INFO]   -> Found value: 2026-03-01 10:09:26
[2026-03-02 13:03:18] [INFO]   -> Set field 'dispatched' = "2026-03-01 10:09:26"
[2026-03-02 13:03:18] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:03:18] [INFO]   -> Found value: 2026-03-01 10:11:45
[2026-03-02 13:03:18] [INFO]   -> Set field 'enroute' = "2026-03-01 10:11:45"
[2026-03-02 13:03:18] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:03:18] [INFO]   -> Found value: 2026-03-01 10:16:04
[2026-03-02 13:03:18] [INFO]   -> Set field 'onScene' = "2026-03-01 10:16:04"
[2026-03-02 13:03:18] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:03:18] [INFO]   -> Found value: 2026-03-01 10:35:54
[2026-03-02 13:03:18] [INFO]   -> Set field 'cleared' = "2026-03-01 10:35:54"
[2026-03-02 13:03:18] [INFO]   -> Set field 'inService' = "2026-03-01 10:35:54"
[2026-03-02 13:03:18] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:03:18] [INFO]   -> Found value: KENDALL DR/FISK RD
[2026-03-02 13:03:18] [INFO]   -> Set field 'incidentLocationCross' = "KENDALL DR\/FISK RD"
[2026-03-02 13:03:18] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:03:18] [INFO]   -> Found value: PCFR
[2026-03-02 13:03:18] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:03:18] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:03:18] [INFO]   -> Found value: 2026-03-01 10:09:26
[2026-03-02 13:03:18] [INFO]   -> Set field 'timedispatch' = "2026-03-01 10:09:26"
[2026-03-02 13:03:18] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:03:18] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:18] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:03:18] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:18] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:03:18] [INFO]   -> Found value: 2026-03-01 10:11:42
[2026-03-02 13:03:18] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 10:11:42"
[2026-03-02 13:03:18] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:03:18] [INFO]   -> Found value: 2026-03-01 10:11:42
[2026-03-02 13:03:18] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-01 10:11:42"
[2026-03-02 13:03:18] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:03:18] [INFO]   -> Found value: 20260022584
[2026-03-02 13:03:18] [INFO]   -> Set field 'policeReportNumber' = "20260022584"
[2026-03-02 13:03:18] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:03:18] [INFO]   -> Found value: [EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03/01/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD...
[2026-03-02 13:03:18] [INFO]   -> Set field 'dispatchNotes' = "[EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03\/01\/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD EDITH VICKERS 32 YR OLD  [03\/01\/26 10:09:46 MCLAYBURN2] [EMS] PASSED OUT IN SHOWER  [03\/01\/26 10:09:06 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 10:08:54 MCLAYBURN2]"
[2026-03-02 13:03:18] [INFO]   -> Set field 'cADLog' = "[EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03\/01\/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD EDITH VICKERS 32 YR OLD  [03\/01\/26 10:09:46 MCLAYBURN2] [EMS] PASSED OUT IN SHOWER  [03\/01\/26 10:09:06 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 10:08:54 MCLAYBURN2]"
[2026-03-02 13:03:18] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:03:18] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:03:18] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:03:18] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:03:18] [INFO]   -> Found value: SHANNON
[2026-03-02 13:03:18] [INFO]   -> Set field 'streetName' = "SHANNON"
[2026-03-02 13:03:18] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:03:18] [INFO]   -> Found value: DR
[2026-03-02 13:03:18] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 13:03:18] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:03:18] [INFO]   -> Found value: 973 SHANNON DR
[2026-03-02 13:03:18] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "973 SHANNON DR"
[2026-03-02 13:03:18] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:03:18] [INFO] Concatenating street name and type
[2026-03-02 13:03:18] [INFO]   -> Combined street name: SHANNON DR
[2026-03-02 13:03:18] [INFO] Built locationCoordinates from lat/lng: 36.20808,-85.48024
[2026-03-02 13:03:18] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000566","dispatchRunNumber":"2026000566","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":973,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.20808000000000248519427259452641010284423828125,"nERISIncidentLongitude":-85.4802399999999948931872495450079441070556640625,"alarm":"2026-03-01 10:08:54","dispatched":"2026-03-01 10:09:26","enroute":"2026-03-01 10:11:45","onScene":"2026-03-01 10:16:04","cleared":"2026-03-01 10:35:54","inService":"2026-03-01 10:35:54","incidentLocationCross":"KENDALL DR\/FISK RD","cADVehicleID":"PCFR","timedispatch":"2026-03-01 10:09:26","timeunitclear":"2026-03-01 10:11:42","timecanceledenroute":"2026-03-01 10:11:42","policeReportNumber":"20260022584","dispatchNotes":"[EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03\/01\/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD EDITH VICKERS 32 YR OLD  [03\/01\/26 10:09:46 MCLAYBURN2] [EMS] PASSED OUT IN SHOWER  [03\/01\/26 10:09:06 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 10:08:54 MCLAYBURN2]","cADLog":"[EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03\/01\/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD EDITH VICKERS 32 YR OLD  [03\/01\/26 10:09:46 MCLAYBURN2] [EMS] PASSED OUT IN SHOWER  [03\/01\/26 10:09:06 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 10:08:54 MCLAYBURN2]","incidentLocationCity":"COOKEVILLE","streetName":"SHANNON DR","incidentAddressTextVersionStreet":"973 SHANNON DR","locationCoordinates":"36.20808,-85.48024"}
[2026-03-02 13:03:18] [INFO] Number of extracted fields: 27
[2026-03-02 13:03:18] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:03:18] [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-03-02 13:03:18] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:03:18] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:03:18] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:03:18] [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-03-02 13:03:18] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:03:18] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:03:18] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-02 13:03:30] [INFO] Created new Dispatches record with ID: 69a58a96e470245cb
[2026-03-02 13:03:30] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:03:30] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:03:33] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:03:33] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022584_20260302_125750.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:03:33] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:03:33] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022584_20260302_125750_1.XML
[2026-03-02 13:03:33] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022584_20260302_125750_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:03:33] [INFO] File size: 6273 bytes
[2026-03-02 13:03:34] [INFO] Created FTPFiles record with ID: 69a58aa6322dbff12
[2026-03-02 13:03:34] [INFO] About to extract fields from XML. File size: 6273 bytes
[2026-03-02 13:03:34] [INFO] Number of mappings: 28
[2026-03-02 13:03:34] [INFO] Starting XML parsing. Content length: 6273
[2026-03-02 13:03:34] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:03:34] [INFO] Processing 28 field mappings
[2026-03-02 13:03:34] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:03:34] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:03:34] [INFO]   -> Found value: PCFD
[2026-03-02 13:03:34] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:03:34] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:03:34] [INFO]   -> Found value: 2026000566
[2026-03-02 13:03:34] [INFO]   -> Set field 'incidentInternalId' = "2026000566"
[2026-03-02 13:03:34] [INFO]   -> Set field 'dispatchRunNumber' = "2026000566"
[2026-03-02 13:03:34] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:03:34] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-02 13:03:34] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-02 13:03:34] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:03:34] [INFO]   -> Found value: 973
[2026-03-02 13:03:34] [INFO]   -> Set field 'incidentLocationStreetNumber' = 973
[2026-03-02 13:03:34] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:03:34] [INFO]   -> Found value: TN
[2026-03-02 13:03:34] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:03:34] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:03:34] [INFO]   -> Found value: 38506
[2026-03-02 13:03:34] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:03:34] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:03:34] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:34] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:03:34] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:34] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:03:34] [INFO]   -> Found value: 36.20808
[2026-03-02 13:03:34] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20808000000000248519427259452641010284423828125
[2026-03-02 13:03:34] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:03:34] [INFO]   -> Found value: -85.48024
[2026-03-02 13:03:34] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4802399999999948931872495450079441070556640625
[2026-03-02 13:03:34] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:03:34] [INFO]   -> Found value: 2026-03-01 10:08:54
[2026-03-02 13:03:34] [INFO]   -> Set field 'alarm' = "2026-03-01 10:08:54"
[2026-03-02 13:03:34] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:03:34] [INFO]   -> Found value: 2026-03-01 10:09:26
[2026-03-02 13:03:34] [INFO]   -> Set field 'dispatched' = "2026-03-01 10:09:26"
[2026-03-02 13:03:34] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:03:34] [INFO]   -> Found value: 2026-03-01 10:11:45
[2026-03-02 13:03:34] [INFO]   -> Set field 'enroute' = "2026-03-01 10:11:45"
[2026-03-02 13:03:34] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:03:34] [INFO]   -> Found value: 2026-03-01 10:16:04
[2026-03-02 13:03:34] [INFO]   -> Set field 'onScene' = "2026-03-01 10:16:04"
[2026-03-02 13:03:34] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:03:34] [INFO]   -> Found value: 2026-03-01 10:35:54
[2026-03-02 13:03:34] [INFO]   -> Set field 'cleared' = "2026-03-01 10:35:54"
[2026-03-02 13:03:34] [INFO]   -> Set field 'inService' = "2026-03-01 10:35:54"
[2026-03-02 13:03:34] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:03:34] [INFO]   -> Found value: KENDALL DR/FISK RD
[2026-03-02 13:03:34] [INFO]   -> Set field 'incidentLocationCross' = "KENDALL DR\/FISK RD"
[2026-03-02 13:03:34] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:03:34] [INFO]   -> Found value: PCFR
[2026-03-02 13:03:34] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:03:34] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:03:34] [INFO]   -> Found value: 2026-03-01 10:09:26
[2026-03-02 13:03:34] [INFO]   -> Set field 'timedispatch' = "2026-03-01 10:09:26"
[2026-03-02 13:03:34] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:03:34] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:34] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:03:34] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:34] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:03:34] [INFO]   -> Found value: 2026-03-01 10:11:42
[2026-03-02 13:03:34] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 10:11:42"
[2026-03-02 13:03:34] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:03:34] [INFO]   -> Found value: 2026-03-01 10:11:42
[2026-03-02 13:03:34] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-01 10:11:42"
[2026-03-02 13:03:34] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:03:34] [INFO]   -> Found value: 20260022584
[2026-03-02 13:03:34] [INFO]   -> Set field 'policeReportNumber' = "20260022584"
[2026-03-02 13:03:34] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:03:34] [INFO]   -> Found value: [EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03/01/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD...
[2026-03-02 13:03:34] [INFO]   -> Set field 'dispatchNotes' = "[EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03\/01\/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD EDITH VICKERS 32 YR OLD  [03\/01\/26 10:09:46 MCLAYBURN2] [EMS] PASSED OUT IN SHOWER  [03\/01\/26 10:09:06 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 10:08:54 MCLAYBURN2]"
[2026-03-02 13:03:34] [INFO]   -> Set field 'cADLog' = "[EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03\/01\/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD EDITH VICKERS 32 YR OLD  [03\/01\/26 10:09:46 MCLAYBURN2] [EMS] PASSED OUT IN SHOWER  [03\/01\/26 10:09:06 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 10:08:54 MCLAYBURN2]"
[2026-03-02 13:03:34] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:03:34] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:03:34] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:03:34] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:03:34] [INFO]   -> Found value: SHANNON
[2026-03-02 13:03:34] [INFO]   -> Set field 'streetName' = "SHANNON"
[2026-03-02 13:03:34] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:03:34] [INFO]   -> Found value: DR
[2026-03-02 13:03:34] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 13:03:34] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:03:34] [INFO]   -> Found value: 973 SHANNON DR
[2026-03-02 13:03:34] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "973 SHANNON DR"
[2026-03-02 13:03:34] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:03:34] [INFO] Concatenating street name and type
[2026-03-02 13:03:34] [INFO]   -> Combined street name: SHANNON DR
[2026-03-02 13:03:34] [INFO] Built locationCoordinates from lat/lng: 36.20808,-85.48024
[2026-03-02 13:03:34] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000566","dispatchRunNumber":"2026000566","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":973,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.20808000000000248519427259452641010284423828125,"nERISIncidentLongitude":-85.4802399999999948931872495450079441070556640625,"alarm":"2026-03-01 10:08:54","dispatched":"2026-03-01 10:09:26","enroute":"2026-03-01 10:11:45","onScene":"2026-03-01 10:16:04","cleared":"2026-03-01 10:35:54","inService":"2026-03-01 10:35:54","incidentLocationCross":"KENDALL DR\/FISK RD","cADVehicleID":"PCFR","timedispatch":"2026-03-01 10:09:26","timeunitclear":"2026-03-01 10:11:42","timecanceledenroute":"2026-03-01 10:11:42","policeReportNumber":"20260022584","dispatchNotes":"[EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03\/01\/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD EDITH VICKERS 32 YR OLD  [03\/01\/26 10:09:46 MCLAYBURN2] [EMS] PASSED OUT IN SHOWER  [03\/01\/26 10:09:06 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 10:08:54 MCLAYBURN2]","cADLog":"[EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03\/01\/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD EDITH VICKERS 32 YR OLD  [03\/01\/26 10:09:46 MCLAYBURN2] [EMS] PASSED OUT IN SHOWER  [03\/01\/26 10:09:06 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 10:08:54 MCLAYBURN2]","incidentLocationCity":"COOKEVILLE","streetName":"SHANNON DR","incidentAddressTextVersionStreet":"973 SHANNON DR","locationCoordinates":"36.20808,-85.48024"}
[2026-03-02 13:03:34] [INFO] Number of extracted fields: 27
[2026-03-02 13:03:34] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:03:34] [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-03-02 13:03:34] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:03:34] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:03:34] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:03:34] [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-03-02 13:03:34] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:03:34] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:03:34] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-02 13:03:34] [INFO] Found existing Dispatch with cADNumber '2026000566', ID: 69a58a96e470245cb - will update instead of create
[2026-03-02 13:03:35] [INFO] Updated existing Dispatches record with ID: 69a58a96e470245cb
[2026-03-02 13:03:35] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:03:35] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:03: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-03-02 13:03:38] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022584_20260302_125750_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:03:38] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:03:38] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022584_20260302_125750_2.XML
[2026-03-02 13:03:38] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022584_20260302_125750_2.XML for user: 68f1466aed072ad4a
[2026-03-02 13:03:38] [INFO] File size: 6273 bytes
[2026-03-02 13:03:39] [INFO] Created FTPFiles record with ID: 69a58aab370e09843
[2026-03-02 13:03:39] [INFO] About to extract fields from XML. File size: 6273 bytes
[2026-03-02 13:03:39] [INFO] Number of mappings: 28
[2026-03-02 13:03:39] [INFO] Starting XML parsing. Content length: 6273
[2026-03-02 13:03:39] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:03:39] [INFO] Processing 28 field mappings
[2026-03-02 13:03:39] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:03:39] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:03:39] [INFO]   -> Found value: PCFD
[2026-03-02 13:03:39] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:03:39] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:03:39] [INFO]   -> Found value: 2026000566
[2026-03-02 13:03:39] [INFO]   -> Set field 'incidentInternalId' = "2026000566"
[2026-03-02 13:03:39] [INFO]   -> Set field 'dispatchRunNumber' = "2026000566"
[2026-03-02 13:03:39] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:03:39] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-02 13:03:39] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-02 13:03:39] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:03:39] [INFO]   -> Found value: 973
[2026-03-02 13:03:39] [INFO]   -> Set field 'incidentLocationStreetNumber' = 973
[2026-03-02 13:03:39] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:03:39] [INFO]   -> Found value: TN
[2026-03-02 13:03:39] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:03:39] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:03:39] [INFO]   -> Found value: 38506
[2026-03-02 13:03:39] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:03:39] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:03:39] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:39] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:03:39] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:39] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:03:39] [INFO]   -> Found value: 36.20808
[2026-03-02 13:03:39] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20808000000000248519427259452641010284423828125
[2026-03-02 13:03:39] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:03:39] [INFO]   -> Found value: -85.48024
[2026-03-02 13:03:39] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4802399999999948931872495450079441070556640625
[2026-03-02 13:03:39] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:03:39] [INFO]   -> Found value: 2026-03-01 10:08:54
[2026-03-02 13:03:39] [INFO]   -> Set field 'alarm' = "2026-03-01 10:08:54"
[2026-03-02 13:03:39] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:03:39] [INFO]   -> Found value: 2026-03-01 10:09:26
[2026-03-02 13:03:39] [INFO]   -> Set field 'dispatched' = "2026-03-01 10:09:26"
[2026-03-02 13:03:39] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:03:39] [INFO]   -> Found value: 2026-03-01 10:11:45
[2026-03-02 13:03:39] [INFO]   -> Set field 'enroute' = "2026-03-01 10:11:45"
[2026-03-02 13:03:39] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:03:39] [INFO]   -> Found value: 2026-03-01 10:16:04
[2026-03-02 13:03:39] [INFO]   -> Set field 'onScene' = "2026-03-01 10:16:04"
[2026-03-02 13:03:39] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:03:39] [INFO]   -> Found value: 2026-03-01 10:35:54
[2026-03-02 13:03:39] [INFO]   -> Set field 'cleared' = "2026-03-01 10:35:54"
[2026-03-02 13:03:39] [INFO]   -> Set field 'inService' = "2026-03-01 10:35:54"
[2026-03-02 13:03:39] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:03:39] [INFO]   -> Found value: KENDALL DR/FISK RD
[2026-03-02 13:03:39] [INFO]   -> Set field 'incidentLocationCross' = "KENDALL DR\/FISK RD"
[2026-03-02 13:03:39] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:03:39] [INFO]   -> Found value: PCFR
[2026-03-02 13:03:39] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:03:39] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:03:39] [INFO]   -> Found value: 2026-03-01 10:09:26
[2026-03-02 13:03:39] [INFO]   -> Set field 'timedispatch' = "2026-03-01 10:09:26"
[2026-03-02 13:03:39] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:03:39] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:39] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:03:39] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:39] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:03:39] [INFO]   -> Found value: 2026-03-01 10:11:42
[2026-03-02 13:03:39] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 10:11:42"
[2026-03-02 13:03:39] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:03:39] [INFO]   -> Found value: 2026-03-01 10:11:42
[2026-03-02 13:03:39] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-01 10:11:42"
[2026-03-02 13:03:39] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:03:39] [INFO]   -> Found value: 20260022584
[2026-03-02 13:03:39] [INFO]   -> Set field 'policeReportNumber' = "20260022584"
[2026-03-02 13:03:39] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:03:39] [INFO]   -> Found value: [EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03/01/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD...
[2026-03-02 13:03:39] [INFO]   -> Set field 'dispatchNotes' = "[EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03\/01\/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD EDITH VICKERS 32 YR OLD  [03\/01\/26 10:09:46 MCLAYBURN2] [EMS] PASSED OUT IN SHOWER  [03\/01\/26 10:09:06 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 10:08:54 MCLAYBURN2]"
[2026-03-02 13:03:39] [INFO]   -> Set field 'cADLog' = "[EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03\/01\/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD EDITH VICKERS 32 YR OLD  [03\/01\/26 10:09:46 MCLAYBURN2] [EMS] PASSED OUT IN SHOWER  [03\/01\/26 10:09:06 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 10:08:54 MCLAYBURN2]"
[2026-03-02 13:03:39] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:03:39] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:03:39] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:03:39] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:03:39] [INFO]   -> Found value: SHANNON
[2026-03-02 13:03:39] [INFO]   -> Set field 'streetName' = "SHANNON"
[2026-03-02 13:03:39] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:03:39] [INFO]   -> Found value: DR
[2026-03-02 13:03:39] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 13:03:39] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:03:39] [INFO]   -> Found value: 973 SHANNON DR
[2026-03-02 13:03:39] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "973 SHANNON DR"
[2026-03-02 13:03:39] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:03:39] [INFO] Concatenating street name and type
[2026-03-02 13:03:39] [INFO]   -> Combined street name: SHANNON DR
[2026-03-02 13:03:39] [INFO] Built locationCoordinates from lat/lng: 36.20808,-85.48024
[2026-03-02 13:03:39] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000566","dispatchRunNumber":"2026000566","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":973,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.20808000000000248519427259452641010284423828125,"nERISIncidentLongitude":-85.4802399999999948931872495450079441070556640625,"alarm":"2026-03-01 10:08:54","dispatched":"2026-03-01 10:09:26","enroute":"2026-03-01 10:11:45","onScene":"2026-03-01 10:16:04","cleared":"2026-03-01 10:35:54","inService":"2026-03-01 10:35:54","incidentLocationCross":"KENDALL DR\/FISK RD","cADVehicleID":"PCFR","timedispatch":"2026-03-01 10:09:26","timeunitclear":"2026-03-01 10:11:42","timecanceledenroute":"2026-03-01 10:11:42","policeReportNumber":"20260022584","dispatchNotes":"[EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03\/01\/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD EDITH VICKERS 32 YR OLD  [03\/01\/26 10:09:46 MCLAYBURN2] [EMS] PASSED OUT IN SHOWER  [03\/01\/26 10:09:06 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 10:08:54 MCLAYBURN2]","cADLog":"[EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03\/01\/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD EDITH VICKERS 32 YR OLD  [03\/01\/26 10:09:46 MCLAYBURN2] [EMS] PASSED OUT IN SHOWER  [03\/01\/26 10:09:06 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 10:08:54 MCLAYBURN2]","incidentLocationCity":"COOKEVILLE","streetName":"SHANNON DR","incidentAddressTextVersionStreet":"973 SHANNON DR","locationCoordinates":"36.20808,-85.48024"}
[2026-03-02 13:03:39] [INFO] Number of extracted fields: 27
[2026-03-02 13:03:39] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:03:39] [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-03-02 13:03:39] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:03:39] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:03:39] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:03: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-03-02 13:03:39] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:03:39] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:03:39] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-02 13:03:39] [INFO] Found existing Dispatch with cADNumber '2026000566', ID: 69a58a96e470245cb - will update instead of create
[2026-03-02 13:03:40] [INFO] Updated existing Dispatches record with ID: 69a58a96e470245cb
[2026-03-02 13:03:40] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:03:40] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:03:43] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:03:43] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022584_20260302_125750_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:03:43] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:03:43] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022584_20260302_125750_3.XML
[2026-03-02 13:03:43] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022584_20260302_125750_3.XML for user: 68f1466aed072ad4a
[2026-03-02 13:03:43] [INFO] File size: 6273 bytes
[2026-03-02 13:03:43] [INFO] Created FTPFiles record with ID: 69a58aafbfc304914
[2026-03-02 13:03:43] [INFO] About to extract fields from XML. File size: 6273 bytes
[2026-03-02 13:03:43] [INFO] Number of mappings: 28
[2026-03-02 13:03:43] [INFO] Starting XML parsing. Content length: 6273
[2026-03-02 13:03:43] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:03:43] [INFO] Processing 28 field mappings
[2026-03-02 13:03:43] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:03:43] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:03:43] [INFO]   -> Found value: PCFD
[2026-03-02 13:03:43] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:03:43] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:03:43] [INFO]   -> Found value: 2026000566
[2026-03-02 13:03:43] [INFO]   -> Set field 'incidentInternalId' = "2026000566"
[2026-03-02 13:03:43] [INFO]   -> Set field 'dispatchRunNumber' = "2026000566"
[2026-03-02 13:03:43] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:03:43] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-02 13:03:43] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-02 13:03:43] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:03:43] [INFO]   -> Found value: 973
[2026-03-02 13:03:43] [INFO]   -> Set field 'incidentLocationStreetNumber' = 973
[2026-03-02 13:03:43] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:03:43] [INFO]   -> Found value: TN
[2026-03-02 13:03:43] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:03:43] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:03:43] [INFO]   -> Found value: 38506
[2026-03-02 13:03:43] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:03:43] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:03:43] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:43] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:03:43] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:43] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:03:43] [INFO]   -> Found value: 36.20808
[2026-03-02 13:03:43] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20808000000000248519427259452641010284423828125
[2026-03-02 13:03:43] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:03:43] [INFO]   -> Found value: -85.48024
[2026-03-02 13:03:43] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4802399999999948931872495450079441070556640625
[2026-03-02 13:03:43] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:03:43] [INFO]   -> Found value: 2026-03-01 10:08:54
[2026-03-02 13:03:43] [INFO]   -> Set field 'alarm' = "2026-03-01 10:08:54"
[2026-03-02 13:03:43] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:03:43] [INFO]   -> Found value: 2026-03-01 10:09:26
[2026-03-02 13:03:43] [INFO]   -> Set field 'dispatched' = "2026-03-01 10:09:26"
[2026-03-02 13:03:43] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:03:43] [INFO]   -> Found value: 2026-03-01 10:11:45
[2026-03-02 13:03:43] [INFO]   -> Set field 'enroute' = "2026-03-01 10:11:45"
[2026-03-02 13:03:43] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:03:43] [INFO]   -> Found value: 2026-03-01 10:16:04
[2026-03-02 13:03:43] [INFO]   -> Set field 'onScene' = "2026-03-01 10:16:04"
[2026-03-02 13:03:43] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:03:43] [INFO]   -> Found value: 2026-03-01 10:35:54
[2026-03-02 13:03:43] [INFO]   -> Set field 'cleared' = "2026-03-01 10:35:54"
[2026-03-02 13:03:43] [INFO]   -> Set field 'inService' = "2026-03-01 10:35:54"
[2026-03-02 13:03:43] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:03:43] [INFO]   -> Found value: KENDALL DR/FISK RD
[2026-03-02 13:03:43] [INFO]   -> Set field 'incidentLocationCross' = "KENDALL DR\/FISK RD"
[2026-03-02 13:03:43] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:03:43] [INFO]   -> Found value: PCFR
[2026-03-02 13:03:43] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:03:43] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:03:43] [INFO]   -> Found value: 2026-03-01 10:09:26
[2026-03-02 13:03:43] [INFO]   -> Set field 'timedispatch' = "2026-03-01 10:09:26"
[2026-03-02 13:03:43] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:03:43] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:43] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:03:43] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:43] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:03:43] [INFO]   -> Found value: 2026-03-01 10:11:42
[2026-03-02 13:03:43] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 10:11:42"
[2026-03-02 13:03:43] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:03:43] [INFO]   -> Found value: 2026-03-01 10:11:42
[2026-03-02 13:03:43] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-01 10:11:42"
[2026-03-02 13:03:43] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:03:43] [INFO]   -> Found value: 20260022584
[2026-03-02 13:03:43] [INFO]   -> Set field 'policeReportNumber' = "20260022584"
[2026-03-02 13:03:43] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:03:43] [INFO]   -> Found value: [EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03/01/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD...
[2026-03-02 13:03:43] [INFO]   -> Set field 'dispatchNotes' = "[EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03\/01\/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD EDITH VICKERS 32 YR OLD  [03\/01\/26 10:09:46 MCLAYBURN2] [EMS] PASSED OUT IN SHOWER  [03\/01\/26 10:09:06 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 10:08:54 MCLAYBURN2]"
[2026-03-02 13:03:43] [INFO]   -> Set field 'cADLog' = "[EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03\/01\/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD EDITH VICKERS 32 YR OLD  [03\/01\/26 10:09:46 MCLAYBURN2] [EMS] PASSED OUT IN SHOWER  [03\/01\/26 10:09:06 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 10:08:54 MCLAYBURN2]"
[2026-03-02 13:03:43] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:03:43] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:03:43] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:03:43] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:03:43] [INFO]   -> Found value: SHANNON
[2026-03-02 13:03:43] [INFO]   -> Set field 'streetName' = "SHANNON"
[2026-03-02 13:03:43] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:03:43] [INFO]   -> Found value: DR
[2026-03-02 13:03:43] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 13:03:43] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:03:43] [INFO]   -> Found value: 973 SHANNON DR
[2026-03-02 13:03:43] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "973 SHANNON DR"
[2026-03-02 13:03:43] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:03:43] [INFO] Concatenating street name and type
[2026-03-02 13:03:43] [INFO]   -> Combined street name: SHANNON DR
[2026-03-02 13:03:43] [INFO] Built locationCoordinates from lat/lng: 36.20808,-85.48024
[2026-03-02 13:03:43] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000566","dispatchRunNumber":"2026000566","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":973,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.20808000000000248519427259452641010284423828125,"nERISIncidentLongitude":-85.4802399999999948931872495450079441070556640625,"alarm":"2026-03-01 10:08:54","dispatched":"2026-03-01 10:09:26","enroute":"2026-03-01 10:11:45","onScene":"2026-03-01 10:16:04","cleared":"2026-03-01 10:35:54","inService":"2026-03-01 10:35:54","incidentLocationCross":"KENDALL DR\/FISK RD","cADVehicleID":"PCFR","timedispatch":"2026-03-01 10:09:26","timeunitclear":"2026-03-01 10:11:42","timecanceledenroute":"2026-03-01 10:11:42","policeReportNumber":"20260022584","dispatchNotes":"[EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03\/01\/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD EDITH VICKERS 32 YR OLD  [03\/01\/26 10:09:46 MCLAYBURN2] [EMS] PASSED OUT IN SHOWER  [03\/01\/26 10:09:06 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 10:08:54 MCLAYBURN2]","cADLog":"[EMS] APT 2 BUT ITS NOT LISTED OR NUMBERED  [03\/01\/26 10:10:39 MCLAYBURN2] [EMS] STOMACH HURTING BAD EDITH VICKERS 32 YR OLD  [03\/01\/26 10:09:46 MCLAYBURN2] [EMS] PASSED OUT IN SHOWER  [03\/01\/26 10:09:06 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 10:08:54 MCLAYBURN2]","incidentLocationCity":"COOKEVILLE","streetName":"SHANNON DR","incidentAddressTextVersionStreet":"973 SHANNON DR","locationCoordinates":"36.20808,-85.48024"}
[2026-03-02 13:03:43] [INFO] Number of extracted fields: 27
[2026-03-02 13:03:43] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:03:43] [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-03-02 13:03:43] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:03:43] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:03:43] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:03:44] [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-03-02 13:03:44] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:03:44] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:03:44] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-02 13:03:44] [INFO] Found existing Dispatch with cADNumber '2026000566', ID: 69a58a96e470245cb - will update instead of create
[2026-03-02 13:03:44] [INFO] Updated existing Dispatches record with ID: 69a58a96e470245cb
[2026-03-02 13:03:44] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:03:44] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:03: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-03-02 13:03:47] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022584_20260302_125750_3.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:03:47] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:03:48] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022602_20260302_125752.XML
[2026-03-02 13:03:48] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022602_20260302_125752.XML for user: 68f1466aed072ad4a
[2026-03-02 13:03:48] [INFO] File size: 6263 bytes
[2026-03-02 13:03:48] [INFO] Created FTPFiles record with ID: 69a58ab45155ab961
[2026-03-02 13:03:48] [INFO] About to extract fields from XML. File size: 6263 bytes
[2026-03-02 13:03:48] [INFO] Number of mappings: 28
[2026-03-02 13:03:48] [INFO] Starting XML parsing. Content length: 6263
[2026-03-02 13:03:48] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:03:48] [INFO] Processing 28 field mappings
[2026-03-02 13:03:48] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:03:48] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:03:48] [INFO]   -> Found value: PCFD
[2026-03-02 13:03:48] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:03:48] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:03:48] [INFO]   -> Found value: 2026000567
[2026-03-02 13:03:48] [INFO]   -> Set field 'incidentInternalId' = "2026000567"
[2026-03-02 13:03:48] [INFO]   -> Set field 'dispatchRunNumber' = "2026000567"
[2026-03-02 13:03:48] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:03:48] [INFO]   -> Found value: FALL VICTIM
[2026-03-02 13:03:48] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-02 13:03:48] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:03:48] [INFO]   -> Found value: 2650
[2026-03-02 13:03:48] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2650
[2026-03-02 13:03:48] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:03:48] [INFO]   -> Found value: TN
[2026-03-02 13:03:48] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:03:48] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:03:48] [INFO]   -> Found value: 38506
[2026-03-02 13:03:48] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:03:48] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:03:48] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:48] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:03:48] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:48] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:03:48] [INFO]   -> Found value: 36.20086
[2026-03-02 13:03:48] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20085999999999870624378672800958156585693359375
[2026-03-02 13:03:48] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:03:48] [INFO]   -> Found value: -85.46845
[2026-03-02 13:03:48] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4684500000000042518877307884395122528076171875
[2026-03-02 13:03:48] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:03:48] [INFO]   -> Found value: 2026-03-01 11:23:37
[2026-03-02 13:03:48] [INFO]   -> Set field 'alarm' = "2026-03-01 11:23:37"
[2026-03-02 13:03:48] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:03:48] [INFO]   -> Found value: 2026-03-01 11:24:30
[2026-03-02 13:03:48] [INFO]   -> Set field 'dispatched' = "2026-03-01 11:24:30"
[2026-03-02 13:03:48] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:03:48] [INFO]   -> Found value: 2026-03-01 11:26:20
[2026-03-02 13:03:48] [INFO]   -> Set field 'enroute' = "2026-03-01 11:26:20"
[2026-03-02 13:03:48] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:03:48] [INFO]   -> Found value: 2026-03-01 11:32:35
[2026-03-02 13:03:48] [INFO]   -> Set field 'onScene' = "2026-03-01 11:32:35"
[2026-03-02 13:03:48] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:03:48] [INFO]   -> Found value: 2026-03-01 11:41:27
[2026-03-02 13:03:48] [INFO]   -> Set field 'cleared' = "2026-03-01 11:41:27"
[2026-03-02 13:03:48] [INFO]   -> Set field 'inService' = "2026-03-01 11:41:27"
[2026-03-02 13:03:48] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:03:48] [INFO]   -> Found value: MIDDLEBROOK RD/WHITEAKER SPRINGS RD
[2026-03-02 13:03:48] [INFO]   -> Set field 'incidentLocationCross' = "MIDDLEBROOK RD\/WHITEAKER SPRINGS RD"
[2026-03-02 13:03:48] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:03:48] [INFO]   -> Found value: PCFR
[2026-03-02 13:03:48] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:03:48] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:03:48] [INFO]   -> Found value: 2026-03-01 11:24:30
[2026-03-02 13:03:48] [INFO]   -> Set field 'timedispatch' = "2026-03-01 11:24:30"
[2026-03-02 13:03:48] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:03:48] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:48] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:03:48] [INFO]   -> No value found (null or empty)
[2026-03-02 13:03:48] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:03:48] [INFO]   -> Found value: 2026-03-01 11:26:17
[2026-03-02 13:03:48] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 11:26:17"
[2026-03-02 13:03:48] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:03:48] [INFO]   -> Found value: 2026-03-01 11:26:17
[2026-03-02 13:03:48] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-01 11:26:17"
[2026-03-02 13:03:48] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:03:48] [INFO]   -> Found value: 20260022602
[2026-03-02 13:03:48] [INFO]   -> Set field 'policeReportNumber' = "20260022602"
[2026-03-02 13:03:48] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:03:48] [INFO]   -> Found value: [EMS] STATED IN A LOT OF PAIN  [03/01/26 11:24:09 MCLAYBURN2] [EMS] ANN CARKNER  [03/01/26 11:23:52 ...
[2026-03-02 13:03:48] [INFO]   -> Set field 'dispatchNotes' = "[EMS] STATED IN A LOT OF PAIN  [03\/01\/26 11:24:09 MCLAYBURN2] [EMS] ANN CARKNER  [03\/01\/26 11:23:52 MCLAYBURN2] Event spawned from FALL VICTIM.  [03\/01\/2026 11:23:37 MCLAYBURN2] NEIGHBOR FELL EARLIER THIS MORNING UNABLE TO STAND NOW  HAS HAD A BROKEN HIP BEFORE  [03\/01\/26 11:23:19 MCLAYBURN2]]"
[2026-03-02 13:03:48] [INFO]   -> Set field 'cADLog' = "[EMS] STATED IN A LOT OF PAIN  [03\/01\/26 11:24:09 MCLAYBURN2] [EMS] ANN CARKNER  [03\/01\/26 11:23:52 MCLAYBURN2] Event spawned from FALL VICTIM.  [03\/01\/2026 11:23:37 MCLAYBURN2] NEIGHBOR FELL EARLIER THIS MORNING UNABLE TO STAND NOW  HAS HAD A BROKEN HIP BEFORE  [03\/01\/26 11:23:19 MCLAYBURN2]]"
[2026-03-02 13:03:48] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:03:48] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:03:48] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:03:48] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:03:48] [INFO]   -> Found value: OAK PARK
[2026-03-02 13:03:48] [INFO]   -> Set field 'streetName' = "OAK PARK"
[2026-03-02 13:03:48] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:03:48] [INFO]   -> Found value: DR
[2026-03-02 13:03:48] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 13:03:48] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:03:48] [INFO]   -> Found value: 2650 OAK PARK DR
[2026-03-02 13:03:48] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2650 OAK PARK DR"
[2026-03-02 13:03:48] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:03:48] [INFO] Concatenating street name and type
[2026-03-02 13:03:48] [INFO]   -> Combined street name: OAK PARK DR
[2026-03-02 13:03:48] [INFO] Built locationCoordinates from lat/lng: 36.20086,-85.46845
[2026-03-02 13:03:48] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000567","dispatchRunNumber":"2026000567","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":2650,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.20085999999999870624378672800958156585693359375,"nERISIncidentLongitude":-85.4684500000000042518877307884395122528076171875,"alarm":"2026-03-01 11:23:37","dispatched":"2026-03-01 11:24:30","enroute":"2026-03-01 11:26:20","onScene":"2026-03-01 11:32:35","cleared":"2026-03-01 11:41:27","inService":"2026-03-01 11:41:27","incidentLocationCross":"MIDDLEBROOK RD\/WHITEAKER SPRINGS RD","cADVehicleID":"PCFR","timedispatch":"2026-03-01 11:24:30","timeunitclear":"2026-03-01 11:26:17","timecanceledenroute":"2026-03-01 11:26:17","policeReportNumber":"20260022602","dispatchNotes":"[EMS] STATED IN A LOT OF PAIN  [03\/01\/26 11:24:09 MCLAYBURN2] [EMS] ANN CARKNER  [03\/01\/26 11:23:52 MCLAYBURN2] Event spawned from FALL VICTIM.  [03\/01\/2026 11:23:37 MCLAYBURN2] NEIGHBOR FELL EARLIER THIS MORNING UNABLE TO STAND NOW  HAS HAD A BROKEN HIP BEFORE  [03\/01\/26 11:23:19 MCLAYBURN2]]","cADLog":"[EMS] STATED IN A LOT OF PAIN  [03\/01\/26 11:24:09 MCLAYBURN2] [EMS] ANN CARKNER  [03\/01\/26 11:23:52 MCLAYBURN2] Event spawned from FALL VICTIM.  [03\/01\/2026 11:23:37 MCLAYBURN2] NEIGHBOR FELL EARLIER THIS MORNING UNABLE TO STAND NOW  HAS HAD A BROKEN HIP BEFORE  [03\/01\/26 11:23:19 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"OAK PARK DR","incidentAddressTextVersionStreet":"2650 OAK PARK DR","locationCoordinates":"36.20086,-85.46845"}
[2026-03-02 13:03:48] [INFO] Number of extracted fields: 27
[2026-03-02 13:03:48] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:03:48] [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-03-02 13:03:48] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:03:48] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:03:48] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:03:48] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-02 13:03:48] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:03:48] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:03:48] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-02 13:03:58] [INFO] Created new Dispatches record with ID: 69a58ab514879fea5
[2026-03-02 13:03:58] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:03:58] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:04:01] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:04:01] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022602_20260302_125752.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:04:01] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:04:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022602_20260302_125752_1.XML
[2026-03-02 13:04:01] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022602_20260302_125752_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:04:01] [INFO] File size: 6263 bytes
[2026-03-02 13:04:01] [INFO] Created FTPFiles record with ID: 69a58ac1cec81b9e1
[2026-03-02 13:04:01] [INFO] About to extract fields from XML. File size: 6263 bytes
[2026-03-02 13:04:01] [INFO] Number of mappings: 28
[2026-03-02 13:04:01] [INFO] Starting XML parsing. Content length: 6263
[2026-03-02 13:04:01] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:04:01] [INFO] Processing 28 field mappings
[2026-03-02 13:04:01] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:04:01] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:04:01] [INFO]   -> Found value: PCFD
[2026-03-02 13:04:01] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:04:01] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:04:01] [INFO]   -> Found value: 2026000567
[2026-03-02 13:04:01] [INFO]   -> Set field 'incidentInternalId' = "2026000567"
[2026-03-02 13:04:01] [INFO]   -> Set field 'dispatchRunNumber' = "2026000567"
[2026-03-02 13:04:01] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:04:01] [INFO]   -> Found value: FALL VICTIM
[2026-03-02 13:04:01] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-02 13:04:01] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:04:01] [INFO]   -> Found value: 2650
[2026-03-02 13:04:01] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2650
[2026-03-02 13:04:01] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:04:01] [INFO]   -> Found value: TN
[2026-03-02 13:04:01] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:04:01] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:04:01] [INFO]   -> Found value: 38506
[2026-03-02 13:04:01] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:04:01] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:04:01] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:01] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:04:01] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:01] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:04:01] [INFO]   -> Found value: 36.20086
[2026-03-02 13:04:01] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20085999999999870624378672800958156585693359375
[2026-03-02 13:04:01] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:04:01] [INFO]   -> Found value: -85.46845
[2026-03-02 13:04:01] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4684500000000042518877307884395122528076171875
[2026-03-02 13:04:01] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:04:01] [INFO]   -> Found value: 2026-03-01 11:23:37
[2026-03-02 13:04:01] [INFO]   -> Set field 'alarm' = "2026-03-01 11:23:37"
[2026-03-02 13:04:01] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:04:01] [INFO]   -> Found value: 2026-03-01 11:24:30
[2026-03-02 13:04:01] [INFO]   -> Set field 'dispatched' = "2026-03-01 11:24:30"
[2026-03-02 13:04:01] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:04:01] [INFO]   -> Found value: 2026-03-01 11:26:20
[2026-03-02 13:04:01] [INFO]   -> Set field 'enroute' = "2026-03-01 11:26:20"
[2026-03-02 13:04:01] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:04:01] [INFO]   -> Found value: 2026-03-01 11:32:35
[2026-03-02 13:04:01] [INFO]   -> Set field 'onScene' = "2026-03-01 11:32:35"
[2026-03-02 13:04:01] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:04:01] [INFO]   -> Found value: 2026-03-01 11:41:27
[2026-03-02 13:04:01] [INFO]   -> Set field 'cleared' = "2026-03-01 11:41:27"
[2026-03-02 13:04:01] [INFO]   -> Set field 'inService' = "2026-03-01 11:41:27"
[2026-03-02 13:04:01] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:04:01] [INFO]   -> Found value: MIDDLEBROOK RD/WHITEAKER SPRINGS RD
[2026-03-02 13:04:01] [INFO]   -> Set field 'incidentLocationCross' = "MIDDLEBROOK RD\/WHITEAKER SPRINGS RD"
[2026-03-02 13:04:01] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:04:01] [INFO]   -> Found value: PCFR
[2026-03-02 13:04:01] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:04:01] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:04:01] [INFO]   -> Found value: 2026-03-01 11:24:30
[2026-03-02 13:04:01] [INFO]   -> Set field 'timedispatch' = "2026-03-01 11:24:30"
[2026-03-02 13:04:01] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:04:01] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:01] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:04:01] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:01] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:04:01] [INFO]   -> Found value: 2026-03-01 11:26:17
[2026-03-02 13:04:01] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 11:26:17"
[2026-03-02 13:04:01] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:04:01] [INFO]   -> Found value: 2026-03-01 11:26:17
[2026-03-02 13:04:01] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-01 11:26:17"
[2026-03-02 13:04:01] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:04:01] [INFO]   -> Found value: 20260022602
[2026-03-02 13:04:01] [INFO]   -> Set field 'policeReportNumber' = "20260022602"
[2026-03-02 13:04:01] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:04:01] [INFO]   -> Found value: [EMS] STATED IN A LOT OF PAIN  [03/01/26 11:24:09 MCLAYBURN2] [EMS] ANN CARKNER  [03/01/26 11:23:52 ...
[2026-03-02 13:04:01] [INFO]   -> Set field 'dispatchNotes' = "[EMS] STATED IN A LOT OF PAIN  [03\/01\/26 11:24:09 MCLAYBURN2] [EMS] ANN CARKNER  [03\/01\/26 11:23:52 MCLAYBURN2] Event spawned from FALL VICTIM.  [03\/01\/2026 11:23:37 MCLAYBURN2] NEIGHBOR FELL EARLIER THIS MORNING UNABLE TO STAND NOW  HAS HAD A BROKEN HIP BEFORE  [03\/01\/26 11:23:19 MCLAYBURN2]]"
[2026-03-02 13:04:01] [INFO]   -> Set field 'cADLog' = "[EMS] STATED IN A LOT OF PAIN  [03\/01\/26 11:24:09 MCLAYBURN2] [EMS] ANN CARKNER  [03\/01\/26 11:23:52 MCLAYBURN2] Event spawned from FALL VICTIM.  [03\/01\/2026 11:23:37 MCLAYBURN2] NEIGHBOR FELL EARLIER THIS MORNING UNABLE TO STAND NOW  HAS HAD A BROKEN HIP BEFORE  [03\/01\/26 11:23:19 MCLAYBURN2]]"
[2026-03-02 13:04:01] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:04:01] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:04:01] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:04:01] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:04:01] [INFO]   -> Found value: OAK PARK
[2026-03-02 13:04:01] [INFO]   -> Set field 'streetName' = "OAK PARK"
[2026-03-02 13:04:01] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:04:01] [INFO]   -> Found value: DR
[2026-03-02 13:04:01] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 13:04:01] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:04:01] [INFO]   -> Found value: 2650 OAK PARK DR
[2026-03-02 13:04:01] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2650 OAK PARK DR"
[2026-03-02 13:04:01] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:04:01] [INFO] Concatenating street name and type
[2026-03-02 13:04:01] [INFO]   -> Combined street name: OAK PARK DR
[2026-03-02 13:04:01] [INFO] Built locationCoordinates from lat/lng: 36.20086,-85.46845
[2026-03-02 13:04:01] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000567","dispatchRunNumber":"2026000567","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":2650,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.20085999999999870624378672800958156585693359375,"nERISIncidentLongitude":-85.4684500000000042518877307884395122528076171875,"alarm":"2026-03-01 11:23:37","dispatched":"2026-03-01 11:24:30","enroute":"2026-03-01 11:26:20","onScene":"2026-03-01 11:32:35","cleared":"2026-03-01 11:41:27","inService":"2026-03-01 11:41:27","incidentLocationCross":"MIDDLEBROOK RD\/WHITEAKER SPRINGS RD","cADVehicleID":"PCFR","timedispatch":"2026-03-01 11:24:30","timeunitclear":"2026-03-01 11:26:17","timecanceledenroute":"2026-03-01 11:26:17","policeReportNumber":"20260022602","dispatchNotes":"[EMS] STATED IN A LOT OF PAIN  [03\/01\/26 11:24:09 MCLAYBURN2] [EMS] ANN CARKNER  [03\/01\/26 11:23:52 MCLAYBURN2] Event spawned from FALL VICTIM.  [03\/01\/2026 11:23:37 MCLAYBURN2] NEIGHBOR FELL EARLIER THIS MORNING UNABLE TO STAND NOW  HAS HAD A BROKEN HIP BEFORE  [03\/01\/26 11:23:19 MCLAYBURN2]]","cADLog":"[EMS] STATED IN A LOT OF PAIN  [03\/01\/26 11:24:09 MCLAYBURN2] [EMS] ANN CARKNER  [03\/01\/26 11:23:52 MCLAYBURN2] Event spawned from FALL VICTIM.  [03\/01\/2026 11:23:37 MCLAYBURN2] NEIGHBOR FELL EARLIER THIS MORNING UNABLE TO STAND NOW  HAS HAD A BROKEN HIP BEFORE  [03\/01\/26 11:23:19 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"OAK PARK DR","incidentAddressTextVersionStreet":"2650 OAK PARK DR","locationCoordinates":"36.20086,-85.46845"}
[2026-03-02 13:04:01] [INFO] Number of extracted fields: 27
[2026-03-02 13:04:01] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:04:01] [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-03-02 13:04:01] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:04:01] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:04:02] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:04:02] [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-03-02 13:04:02] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:04:02] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:04:02] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-02 13:04:02] [INFO] Found existing Dispatch with cADNumber '2026000567', ID: 69a58ab514879fea5 - will update instead of create
[2026-03-02 13:04:02] [INFO] Updated existing Dispatches record with ID: 69a58ab514879fea5
[2026-03-02 13:04:02] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:04:02] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:04:07] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:04:07] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022602_20260302_125752_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:04:07] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:04:07] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022602_20260302_125752_2.XML
[2026-03-02 13:04:07] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022602_20260302_125752_2.XML for user: 68f1466aed072ad4a
[2026-03-02 13:04:07] [INFO] File size: 6263 bytes
[2026-03-02 13:04:07] [INFO] Created FTPFiles record with ID: 69a58ac79bde72f67
[2026-03-02 13:04:07] [INFO] About to extract fields from XML. File size: 6263 bytes
[2026-03-02 13:04:07] [INFO] Number of mappings: 28
[2026-03-02 13:04:07] [INFO] Starting XML parsing. Content length: 6263
[2026-03-02 13:04:07] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:04:07] [INFO] Processing 28 field mappings
[2026-03-02 13:04:07] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:04:07] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:04:07] [INFO]   -> Found value: PCFD
[2026-03-02 13:04:07] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:04:07] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:04:07] [INFO]   -> Found value: 2026000567
[2026-03-02 13:04:07] [INFO]   -> Set field 'incidentInternalId' = "2026000567"
[2026-03-02 13:04:07] [INFO]   -> Set field 'dispatchRunNumber' = "2026000567"
[2026-03-02 13:04:07] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:04:07] [INFO]   -> Found value: FALL VICTIM
[2026-03-02 13:04:07] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-02 13:04:07] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:04:07] [INFO]   -> Found value: 2650
[2026-03-02 13:04:07] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2650
[2026-03-02 13:04:07] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:04:07] [INFO]   -> Found value: TN
[2026-03-02 13:04:07] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:04:07] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:04:07] [INFO]   -> Found value: 38506
[2026-03-02 13:04:07] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:04:07] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:04:07] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:07] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:04:07] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:07] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:04:07] [INFO]   -> Found value: 36.20086
[2026-03-02 13:04:07] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20085999999999870624378672800958156585693359375
[2026-03-02 13:04:07] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:04:07] [INFO]   -> Found value: -85.46845
[2026-03-02 13:04:07] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4684500000000042518877307884395122528076171875
[2026-03-02 13:04:07] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:04:07] [INFO]   -> Found value: 2026-03-01 11:23:37
[2026-03-02 13:04:07] [INFO]   -> Set field 'alarm' = "2026-03-01 11:23:37"
[2026-03-02 13:04:07] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:04:07] [INFO]   -> Found value: 2026-03-01 11:24:30
[2026-03-02 13:04:07] [INFO]   -> Set field 'dispatched' = "2026-03-01 11:24:30"
[2026-03-02 13:04:07] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:04:07] [INFO]   -> Found value: 2026-03-01 11:26:20
[2026-03-02 13:04:07] [INFO]   -> Set field 'enroute' = "2026-03-01 11:26:20"
[2026-03-02 13:04:07] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:04:07] [INFO]   -> Found value: 2026-03-01 11:32:35
[2026-03-02 13:04:07] [INFO]   -> Set field 'onScene' = "2026-03-01 11:32:35"
[2026-03-02 13:04:07] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:04:07] [INFO]   -> Found value: 2026-03-01 11:41:27
[2026-03-02 13:04:07] [INFO]   -> Set field 'cleared' = "2026-03-01 11:41:27"
[2026-03-02 13:04:07] [INFO]   -> Set field 'inService' = "2026-03-01 11:41:27"
[2026-03-02 13:04:07] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:04:07] [INFO]   -> Found value: MIDDLEBROOK RD/WHITEAKER SPRINGS RD
[2026-03-02 13:04:07] [INFO]   -> Set field 'incidentLocationCross' = "MIDDLEBROOK RD\/WHITEAKER SPRINGS RD"
[2026-03-02 13:04:07] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:04:07] [INFO]   -> Found value: PCFR
[2026-03-02 13:04:07] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:04:07] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:04:07] [INFO]   -> Found value: 2026-03-01 11:24:30
[2026-03-02 13:04:07] [INFO]   -> Set field 'timedispatch' = "2026-03-01 11:24:30"
[2026-03-02 13:04:07] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:04:07] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:07] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:04:07] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:07] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:04:07] [INFO]   -> Found value: 2026-03-01 11:26:17
[2026-03-02 13:04:07] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 11:26:17"
[2026-03-02 13:04:07] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:04:07] [INFO]   -> Found value: 2026-03-01 11:26:17
[2026-03-02 13:04:07] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-01 11:26:17"
[2026-03-02 13:04:07] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:04:07] [INFO]   -> Found value: 20260022602
[2026-03-02 13:04:07] [INFO]   -> Set field 'policeReportNumber' = "20260022602"
[2026-03-02 13:04:07] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:04:07] [INFO]   -> Found value: [EMS] STATED IN A LOT OF PAIN  [03/01/26 11:24:09 MCLAYBURN2] [EMS] ANN CARKNER  [03/01/26 11:23:52 ...
[2026-03-02 13:04:07] [INFO]   -> Set field 'dispatchNotes' = "[EMS] STATED IN A LOT OF PAIN  [03\/01\/26 11:24:09 MCLAYBURN2] [EMS] ANN CARKNER  [03\/01\/26 11:23:52 MCLAYBURN2] Event spawned from FALL VICTIM.  [03\/01\/2026 11:23:37 MCLAYBURN2] NEIGHBOR FELL EARLIER THIS MORNING UNABLE TO STAND NOW  HAS HAD A BROKEN HIP BEFORE  [03\/01\/26 11:23:19 MCLAYBURN2]]"
[2026-03-02 13:04:07] [INFO]   -> Set field 'cADLog' = "[EMS] STATED IN A LOT OF PAIN  [03\/01\/26 11:24:09 MCLAYBURN2] [EMS] ANN CARKNER  [03\/01\/26 11:23:52 MCLAYBURN2] Event spawned from FALL VICTIM.  [03\/01\/2026 11:23:37 MCLAYBURN2] NEIGHBOR FELL EARLIER THIS MORNING UNABLE TO STAND NOW  HAS HAD A BROKEN HIP BEFORE  [03\/01\/26 11:23:19 MCLAYBURN2]]"
[2026-03-02 13:04:07] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:04:07] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:04:07] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:04:07] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:04:07] [INFO]   -> Found value: OAK PARK
[2026-03-02 13:04:07] [INFO]   -> Set field 'streetName' = "OAK PARK"
[2026-03-02 13:04:07] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:04:07] [INFO]   -> Found value: DR
[2026-03-02 13:04:07] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 13:04:07] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:04:07] [INFO]   -> Found value: 2650 OAK PARK DR
[2026-03-02 13:04:07] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2650 OAK PARK DR"
[2026-03-02 13:04:07] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:04:07] [INFO] Concatenating street name and type
[2026-03-02 13:04:07] [INFO]   -> Combined street name: OAK PARK DR
[2026-03-02 13:04:07] [INFO] Built locationCoordinates from lat/lng: 36.20086,-85.46845
[2026-03-02 13:04:07] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000567","dispatchRunNumber":"2026000567","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":2650,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.20085999999999870624378672800958156585693359375,"nERISIncidentLongitude":-85.4684500000000042518877307884395122528076171875,"alarm":"2026-03-01 11:23:37","dispatched":"2026-03-01 11:24:30","enroute":"2026-03-01 11:26:20","onScene":"2026-03-01 11:32:35","cleared":"2026-03-01 11:41:27","inService":"2026-03-01 11:41:27","incidentLocationCross":"MIDDLEBROOK RD\/WHITEAKER SPRINGS RD","cADVehicleID":"PCFR","timedispatch":"2026-03-01 11:24:30","timeunitclear":"2026-03-01 11:26:17","timecanceledenroute":"2026-03-01 11:26:17","policeReportNumber":"20260022602","dispatchNotes":"[EMS] STATED IN A LOT OF PAIN  [03\/01\/26 11:24:09 MCLAYBURN2] [EMS] ANN CARKNER  [03\/01\/26 11:23:52 MCLAYBURN2] Event spawned from FALL VICTIM.  [03\/01\/2026 11:23:37 MCLAYBURN2] NEIGHBOR FELL EARLIER THIS MORNING UNABLE TO STAND NOW  HAS HAD A BROKEN HIP BEFORE  [03\/01\/26 11:23:19 MCLAYBURN2]]","cADLog":"[EMS] STATED IN A LOT OF PAIN  [03\/01\/26 11:24:09 MCLAYBURN2] [EMS] ANN CARKNER  [03\/01\/26 11:23:52 MCLAYBURN2] Event spawned from FALL VICTIM.  [03\/01\/2026 11:23:37 MCLAYBURN2] NEIGHBOR FELL EARLIER THIS MORNING UNABLE TO STAND NOW  HAS HAD A BROKEN HIP BEFORE  [03\/01\/26 11:23:19 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"OAK PARK DR","incidentAddressTextVersionStreet":"2650 OAK PARK DR","locationCoordinates":"36.20086,-85.46845"}
[2026-03-02 13:04:07] [INFO] Number of extracted fields: 27
[2026-03-02 13:04:07] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:04:07] [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-03-02 13:04:07] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:04:07] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:04:07] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:04: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-03-02 13:04:07] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:04:07] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:04:08] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-02 13:04:08] [INFO] Found existing Dispatch with cADNumber '2026000567', ID: 69a58ab514879fea5 - will update instead of create
[2026-03-02 13:04:08] [INFO] Updated existing Dispatches record with ID: 69a58ab514879fea5
[2026-03-02 13:04:08] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:04:08] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:04:11] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:04:11] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022602_20260302_125752_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:04:11] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:04:11] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022614_20260302_125755.XML
[2026-03-02 13:04:11] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022614_20260302_125755.XML for user: 68f1466aed072ad4a
[2026-03-02 13:04:11] [INFO] File size: 6075 bytes
[2026-03-02 13:04:12] [INFO] Created FTPFiles record with ID: 69a58acc277f4e732
[2026-03-02 13:04:12] [INFO] About to extract fields from XML. File size: 6075 bytes
[2026-03-02 13:04:12] [INFO] Number of mappings: 28
[2026-03-02 13:04:12] [INFO] Starting XML parsing. Content length: 6075
[2026-03-02 13:04:12] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:04:12] [INFO] Processing 28 field mappings
[2026-03-02 13:04:12] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:04:12] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:04:12] [INFO]   -> Found value: PCFD
[2026-03-02 13:04:12] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:04:12] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:04:12] [INFO]   -> Found value: 2026000569
[2026-03-02 13:04:12] [INFO]   -> Set field 'incidentInternalId' = "2026000569"
[2026-03-02 13:04:12] [INFO]   -> Set field 'dispatchRunNumber' = "2026000569"
[2026-03-02 13:04:12] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:04:12] [INFO]   -> Found value: FIRE ALARM
[2026-03-02 13:04:12] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-02 13:04:12] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:04:12] [INFO]   -> Found value: 939
[2026-03-02 13:04:12] [INFO]   -> Set field 'incidentLocationStreetNumber' = 939
[2026-03-02 13:04:12] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:04:12] [INFO]   -> Found value: TN
[2026-03-02 13:04:12] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:04:12] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:04:12] [INFO]   -> Found value: 38506
[2026-03-02 13:04:12] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:04:12] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:04:12] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:12] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:04:12] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:12] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:04:12] [INFO]   -> Found value: 36.20719
[2026-03-02 13:04:12] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.207189999999997098711901344358921051025390625
[2026-03-02 13:04:12] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:04:12] [INFO]   -> Found value: -85.48161
[2026-03-02 13:04:12] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4816100000000034242475521750748157501220703125
[2026-03-02 13:04:12] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:04:12] [INFO]   -> Found value: 2026-03-01 12:11:35
[2026-03-02 13:04:12] [INFO]   -> Set field 'alarm' = "2026-03-01 12:11:35"
[2026-03-02 13:04:12] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:04:12] [INFO]   -> Found value: 2026-03-01 12:13:57
[2026-03-02 13:04:12] [INFO]   -> Set field 'dispatched' = "2026-03-01 12:13:57"
[2026-03-02 13:04:12] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:04:12] [INFO]   -> Found value: 2026-03-01 12:14:47
[2026-03-02 13:04:12] [INFO]   -> Set field 'enroute' = "2026-03-01 12:14:47"
[2026-03-02 13:04:12] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:04:12] [INFO]   -> Found value: 2026-03-01 12:20:09
[2026-03-02 13:04:12] [INFO]   -> Set field 'onScene' = "2026-03-01 12:20:09"
[2026-03-02 13:04:12] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:04:12] [INFO]   -> Found value: 2026-03-01 12:21:51
[2026-03-02 13:04:12] [INFO]   -> Set field 'cleared' = "2026-03-01 12:21:51"
[2026-03-02 13:04:12] [INFO]   -> Set field 'inService' = "2026-03-01 12:21:51"
[2026-03-02 13:04:12] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:04:12] [INFO]   -> Found value: KENDALL DR/FISK RD
[2026-03-02 13:04:12] [INFO]   -> Set field 'incidentLocationCross' = "KENDALL DR\/FISK RD"
[2026-03-02 13:04:12] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:04:12] [INFO]   -> Found value: TK11
[2026-03-02 13:04:12] [INFO]   -> Set field 'cADVehicleID' = "TK11"
[2026-03-02 13:04:12] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:04:12] [INFO]   -> Found value: 2026-03-01 12:17:10
[2026-03-02 13:04:12] [INFO]   -> Set field 'timedispatch' = "2026-03-01 12:17:10"
[2026-03-02 13:04:12] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:04:12] [INFO]   -> Found value: 2026-03-01 12:17:10
[2026-03-02 13:04:12] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 12:17:10"
[2026-03-02 13:04:12] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:04:12] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:12] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:04:12] [INFO]   -> Found value: 2026-03-01 12:21:51
[2026-03-02 13:04:12] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 12:21:51"
[2026-03-02 13:04:12] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:04:12] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:12] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:04:12] [INFO]   -> Found value: 20260022614
[2026-03-02 13:04:12] [INFO]   -> Set field 'policeReportNumber' = "20260022614"
[2026-03-02 13:04:12] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:04:12] [INFO]   -> Found value: 991 PCF COMMAND  [03/01/26 12:20:36 KHILL] RESIDENTAL  ACTIVATED AT KEY PAD  931-357-7620 JOLENE HAR...
[2026-03-02 13:04:12] [INFO]   -> Set field 'dispatchNotes' = "991 PCF COMMAND  [03\/01\/26 12:20:36 KHILL] RESIDENTAL  ACTIVATED AT KEY PAD  931-357-7620 JOLENE HARRIS  NO CONTACT THEY MADE DID ATEMPT REF # 350721  [03\/01\/26 12:12:56 KBURTON]]"
[2026-03-02 13:04:12] [INFO]   -> Set field 'cADLog' = "991 PCF COMMAND  [03\/01\/26 12:20:36 KHILL] RESIDENTAL  ACTIVATED AT KEY PAD  931-357-7620 JOLENE HARRIS  NO CONTACT THEY MADE DID ATEMPT REF # 350721  [03\/01\/26 12:12:56 KBURTON]]"
[2026-03-02 13:04:12] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:04:12] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:04:12] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:04:12] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:04:12] [INFO]   -> Found value: SHANNON
[2026-03-02 13:04:12] [INFO]   -> Set field 'streetName' = "SHANNON"
[2026-03-02 13:04:12] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:04:12] [INFO]   -> Found value: DR
[2026-03-02 13:04:12] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 13:04:12] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:04:12] [INFO]   -> Found value: 939 SHANNON DR
[2026-03-02 13:04:12] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "939 SHANNON DR"
[2026-03-02 13:04:12] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:04:12] [INFO] Concatenating street name and type
[2026-03-02 13:04:12] [INFO]   -> Combined street name: SHANNON DR
[2026-03-02 13:04:12] [INFO] Built locationCoordinates from lat/lng: 36.20719,-85.48161
[2026-03-02 13:04:12] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000569","dispatchRunNumber":"2026000569","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":939,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.207189999999997098711901344358921051025390625,"nERISIncidentLongitude":-85.4816100000000034242475521750748157501220703125,"alarm":"2026-03-01 12:11:35","dispatched":"2026-03-01 12:13:57","enroute":"2026-03-01 12:14:47","onScene":"2026-03-01 12:20:09","cleared":"2026-03-01 12:21:51","inService":"2026-03-01 12:21:51","incidentLocationCross":"KENDALL DR\/FISK RD","cADVehicleID":"TK11","timedispatch":"2026-03-01 12:17:10","timeenroutetoscene":"2026-03-01 12:17:10","timeunitclear":"2026-03-01 12:21:51","policeReportNumber":"20260022614","dispatchNotes":"991 PCF COMMAND  [03\/01\/26 12:20:36 KHILL] RESIDENTAL  ACTIVATED AT KEY PAD  931-357-7620 JOLENE HARRIS  NO CONTACT THEY MADE DID ATEMPT REF # 350721  [03\/01\/26 12:12:56 KBURTON]]","cADLog":"991 PCF COMMAND  [03\/01\/26 12:20:36 KHILL] RESIDENTAL  ACTIVATED AT KEY PAD  931-357-7620 JOLENE HARRIS  NO CONTACT THEY MADE DID ATEMPT REF # 350721  [03\/01\/26 12:12:56 KBURTON]]","incidentLocationCity":"COOKEVILLE","streetName":"SHANNON DR","incidentAddressTextVersionStreet":"939 SHANNON DR","locationCoordinates":"36.20719,-85.48161"}
[2026-03-02 13:04:12] [INFO] Number of extracted fields: 27
[2026-03-02 13:04:12] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:04:12] [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-03-02 13:04:12] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:04:12] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:04:12] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:04:12] [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-03-02 13:04:12] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:04:12] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:04:12] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-02 13:04:20] [INFO] Created new Dispatches record with ID: 69a58accdd8fd213f
[2026-03-02 13:04:20] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:04:20] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:04: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-03-02 13:04:24] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022614_20260302_125755.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:04:24] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:04:24] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022614_20260302_125756.XML
[2026-03-02 13:04:24] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022614_20260302_125756.XML for user: 68f1466aed072ad4a
[2026-03-02 13:04:24] [INFO] File size: 6075 bytes
[2026-03-02 13:04:24] [INFO] Created FTPFiles record with ID: 69a58ad8b0e0ac44d
[2026-03-02 13:04:24] [INFO] About to extract fields from XML. File size: 6075 bytes
[2026-03-02 13:04:24] [INFO] Number of mappings: 28
[2026-03-02 13:04:24] [INFO] Starting XML parsing. Content length: 6075
[2026-03-02 13:04:24] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:04:24] [INFO] Processing 28 field mappings
[2026-03-02 13:04:24] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:04:24] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:04:24] [INFO]   -> Found value: PCFD
[2026-03-02 13:04:24] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:04:24] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:04:24] [INFO]   -> Found value: 2026000569
[2026-03-02 13:04:24] [INFO]   -> Set field 'incidentInternalId' = "2026000569"
[2026-03-02 13:04:24] [INFO]   -> Set field 'dispatchRunNumber' = "2026000569"
[2026-03-02 13:04:24] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:04:24] [INFO]   -> Found value: FIRE ALARM
[2026-03-02 13:04:24] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-02 13:04:24] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:04:24] [INFO]   -> Found value: 939
[2026-03-02 13:04:24] [INFO]   -> Set field 'incidentLocationStreetNumber' = 939
[2026-03-02 13:04:24] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:04:24] [INFO]   -> Found value: TN
[2026-03-02 13:04:24] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:04:24] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:04:24] [INFO]   -> Found value: 38506
[2026-03-02 13:04:24] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:04:24] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:04:24] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:24] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:04:24] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:24] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:04:24] [INFO]   -> Found value: 36.20719
[2026-03-02 13:04:24] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.207189999999997098711901344358921051025390625
[2026-03-02 13:04:24] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:04:24] [INFO]   -> Found value: -85.48161
[2026-03-02 13:04:24] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4816100000000034242475521750748157501220703125
[2026-03-02 13:04:24] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:04:24] [INFO]   -> Found value: 2026-03-01 12:11:35
[2026-03-02 13:04:24] [INFO]   -> Set field 'alarm' = "2026-03-01 12:11:35"
[2026-03-02 13:04:24] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:04:24] [INFO]   -> Found value: 2026-03-01 12:13:57
[2026-03-02 13:04:24] [INFO]   -> Set field 'dispatched' = "2026-03-01 12:13:57"
[2026-03-02 13:04:24] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:04:24] [INFO]   -> Found value: 2026-03-01 12:14:47
[2026-03-02 13:04:24] [INFO]   -> Set field 'enroute' = "2026-03-01 12:14:47"
[2026-03-02 13:04:24] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:04:24] [INFO]   -> Found value: 2026-03-01 12:20:09
[2026-03-02 13:04:24] [INFO]   -> Set field 'onScene' = "2026-03-01 12:20:09"
[2026-03-02 13:04:24] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:04:24] [INFO]   -> Found value: 2026-03-01 12:21:51
[2026-03-02 13:04:24] [INFO]   -> Set field 'cleared' = "2026-03-01 12:21:51"
[2026-03-02 13:04:24] [INFO]   -> Set field 'inService' = "2026-03-01 12:21:51"
[2026-03-02 13:04:24] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:04:24] [INFO]   -> Found value: KENDALL DR/FISK RD
[2026-03-02 13:04:24] [INFO]   -> Set field 'incidentLocationCross' = "KENDALL DR\/FISK RD"
[2026-03-02 13:04:24] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:04:24] [INFO]   -> Found value: TK11
[2026-03-02 13:04:24] [INFO]   -> Set field 'cADVehicleID' = "TK11"
[2026-03-02 13:04:24] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:04:24] [INFO]   -> Found value: 2026-03-01 12:17:10
[2026-03-02 13:04:24] [INFO]   -> Set field 'timedispatch' = "2026-03-01 12:17:10"
[2026-03-02 13:04:24] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:04:24] [INFO]   -> Found value: 2026-03-01 12:17:10
[2026-03-02 13:04:24] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 12:17:10"
[2026-03-02 13:04:24] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:04:24] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:24] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:04:24] [INFO]   -> Found value: 2026-03-01 12:21:51
[2026-03-02 13:04:24] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 12:21:51"
[2026-03-02 13:04:24] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:04:24] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:24] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:04:24] [INFO]   -> Found value: 20260022614
[2026-03-02 13:04:24] [INFO]   -> Set field 'policeReportNumber' = "20260022614"
[2026-03-02 13:04:24] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:04:24] [INFO]   -> Found value: 991 PCF COMMAND  [03/01/26 12:20:36 KHILL] RESIDENTAL  ACTIVATED AT KEY PAD  931-357-7620 JOLENE HAR...
[2026-03-02 13:04:24] [INFO]   -> Set field 'dispatchNotes' = "991 PCF COMMAND  [03\/01\/26 12:20:36 KHILL] RESIDENTAL  ACTIVATED AT KEY PAD  931-357-7620 JOLENE HARRIS  NO CONTACT THEY MADE DID ATEMPT REF # 350721  [03\/01\/26 12:12:56 KBURTON]]"
[2026-03-02 13:04:24] [INFO]   -> Set field 'cADLog' = "991 PCF COMMAND  [03\/01\/26 12:20:36 KHILL] RESIDENTAL  ACTIVATED AT KEY PAD  931-357-7620 JOLENE HARRIS  NO CONTACT THEY MADE DID ATEMPT REF # 350721  [03\/01\/26 12:12:56 KBURTON]]"
[2026-03-02 13:04:24] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:04:24] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:04:24] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:04:24] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:04:24] [INFO]   -> Found value: SHANNON
[2026-03-02 13:04:24] [INFO]   -> Set field 'streetName' = "SHANNON"
[2026-03-02 13:04:24] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:04:24] [INFO]   -> Found value: DR
[2026-03-02 13:04:24] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 13:04:24] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:04:24] [INFO]   -> Found value: 939 SHANNON DR
[2026-03-02 13:04:24] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "939 SHANNON DR"
[2026-03-02 13:04:24] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:04:24] [INFO] Concatenating street name and type
[2026-03-02 13:04:24] [INFO]   -> Combined street name: SHANNON DR
[2026-03-02 13:04:24] [INFO] Built locationCoordinates from lat/lng: 36.20719,-85.48161
[2026-03-02 13:04:24] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000569","dispatchRunNumber":"2026000569","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":939,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.207189999999997098711901344358921051025390625,"nERISIncidentLongitude":-85.4816100000000034242475521750748157501220703125,"alarm":"2026-03-01 12:11:35","dispatched":"2026-03-01 12:13:57","enroute":"2026-03-01 12:14:47","onScene":"2026-03-01 12:20:09","cleared":"2026-03-01 12:21:51","inService":"2026-03-01 12:21:51","incidentLocationCross":"KENDALL DR\/FISK RD","cADVehicleID":"TK11","timedispatch":"2026-03-01 12:17:10","timeenroutetoscene":"2026-03-01 12:17:10","timeunitclear":"2026-03-01 12:21:51","policeReportNumber":"20260022614","dispatchNotes":"991 PCF COMMAND  [03\/01\/26 12:20:36 KHILL] RESIDENTAL  ACTIVATED AT KEY PAD  931-357-7620 JOLENE HARRIS  NO CONTACT THEY MADE DID ATEMPT REF # 350721  [03\/01\/26 12:12:56 KBURTON]]","cADLog":"991 PCF COMMAND  [03\/01\/26 12:20:36 KHILL] RESIDENTAL  ACTIVATED AT KEY PAD  931-357-7620 JOLENE HARRIS  NO CONTACT THEY MADE DID ATEMPT REF # 350721  [03\/01\/26 12:12:56 KBURTON]]","incidentLocationCity":"COOKEVILLE","streetName":"SHANNON DR","incidentAddressTextVersionStreet":"939 SHANNON DR","locationCoordinates":"36.20719,-85.48161"}
[2026-03-02 13:04:24] [INFO] Number of extracted fields: 27
[2026-03-02 13:04:24] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:04:24] [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-03-02 13:04:24] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:04:24] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:04:24] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:04:25] [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-03-02 13:04:25] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:04:25] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:04:25] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-02 13:04:25] [INFO] Found existing Dispatch with cADNumber '2026000569', ID: 69a58accdd8fd213f - will update instead of create
[2026-03-02 13:04:25] [INFO] Updated existing Dispatches record with ID: 69a58accdd8fd213f
[2026-03-02 13:04:25] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:04:25] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:04:28] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:04:28] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022614_20260302_125756.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:04:28] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:04:28] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022615_20260302_125757.XML
[2026-03-02 13:04:28] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022615_20260302_125757.XML for user: 68f1466aed072ad4a
[2026-03-02 13:04:28] [INFO] File size: 6677 bytes
[2026-03-02 13:04:28] [INFO] Created FTPFiles record with ID: 69a58adcd13871284
[2026-03-02 13:04:28] [INFO] About to extract fields from XML. File size: 6677 bytes
[2026-03-02 13:04:28] [INFO] Number of mappings: 28
[2026-03-02 13:04:28] [INFO] Starting XML parsing. Content length: 6677
[2026-03-02 13:04:28] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:04:28] [INFO] Processing 28 field mappings
[2026-03-02 13:04:28] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:04:28] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:04:28] [INFO]   -> Found value: PCFD
[2026-03-02 13:04:28] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:04:28] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:04:28] [INFO]   -> Found value: 2026000568
[2026-03-02 13:04:28] [INFO]   -> Set field 'incidentInternalId' = "2026000568"
[2026-03-02 13:04:28] [INFO]   -> Set field 'dispatchRunNumber' = "2026000568"
[2026-03-02 13:04:28] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:04:28] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-02 13:04:28] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-02 13:04:28] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:04:28] [INFO]   -> Found value: 3635
[2026-03-02 13:04:28] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3635
[2026-03-02 13:04:28] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:04:28] [INFO]   -> Found value: TN
[2026-03-02 13:04:28] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:04:28] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:04:28] [INFO]   -> Found value: 38501
[2026-03-02 13:04:28] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-02 13:04:28] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:04:28] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:28] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:04:28] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:28] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:04:28] [INFO]   -> Found value: 36.22622
[2026-03-02 13:04:28] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2262199999999978672349243424832820892333984375
[2026-03-02 13:04:28] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:04:28] [INFO]   -> Found value: -85.54717
[2026-03-02 13:04:28] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.54716999999999416104401461780071258544921875
[2026-03-02 13:04:28] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:04:28] [INFO]   -> Found value: 2026-03-01 12:11:45
[2026-03-02 13:04:28] [INFO]   -> Set field 'alarm' = "2026-03-01 12:11:45"
[2026-03-02 13:04:28] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:04:28] [INFO]   -> Found value: 2026-03-01 12:12:47
[2026-03-02 13:04:28] [INFO]   -> Set field 'dispatched' = "2026-03-01 12:12:47"
[2026-03-02 13:04:28] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:04:28] [INFO]   -> Found value: 2026-03-01 12:14:56
[2026-03-02 13:04:28] [INFO]   -> Set field 'enroute' = "2026-03-01 12:14:56"
[2026-03-02 13:04:28] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:04:28] [INFO]   -> Found value: 2026-03-01 12:24:36
[2026-03-02 13:04:28] [INFO]   -> Set field 'onScene' = "2026-03-01 12:24:36"
[2026-03-02 13:04:28] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:04:28] [INFO]   -> Found value: 2026-03-01 12:48:10
[2026-03-02 13:04:28] [INFO]   -> Set field 'cleared' = "2026-03-01 12:48:10"
[2026-03-02 13:04:28] [INFO]   -> Set field 'inService' = "2026-03-01 12:48:10"
[2026-03-02 13:04:28] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:04:28] [INFO]   -> Found value: HUNTINGTON DR
[2026-03-02 13:04:28] [INFO]   -> Set field 'incidentLocationCross' = "HUNTINGTON DR"
[2026-03-02 13:04:28] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:04:28] [INFO]   -> Found value: PCFR
[2026-03-02 13:04:28] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:04:28] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:04:28] [INFO]   -> Found value: 2026-03-01 12:12:47
[2026-03-02 13:04:28] [INFO]   -> Set field 'timedispatch' = "2026-03-01 12:12:47"
[2026-03-02 13:04:28] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:04:28] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:28] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:04:28] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:28] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:04:28] [INFO]   -> Found value: 2026-03-01 12:14:52
[2026-03-02 13:04:28] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 12:14:52"
[2026-03-02 13:04:28] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:04:28] [INFO]   -> Found value: 2026-03-01 12:14:52
[2026-03-02 13:04:28] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-01 12:14:52"
[2026-03-02 13:04:28] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:04:28] [INFO]   -> Found value: 20260022615
[2026-03-02 13:04:28] [INFO]   -> Set field 'policeReportNumber' = "20260022615"
[2026-03-02 13:04:28] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:04:28] [INFO]   -> Found value: [EMS] UDTS: {731} PATIENT LOADED  [03/01/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03/01/26 12...
[2026-03-02 13:04:28] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: {731} PATIENT LOADED  [03\/01\/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03\/01\/26 12:13:27 MCLAYBURN2] [EMS] FRONT DOOR \/\/ CAN BACK IN THE EXTRA LOT WHERE THEY CAN GET CLOSER TO THE FRONT DOOR  [03\/01\/26 12:13:13 MCLAYBURN2] [EMS] MARIE WILLIAMS  [03\/01\/26 12:12:43 MCLAYBURN2] [EMS] HAVING A HARD TIME TALKING  [03\/01\/26 12:12:38 MCLAYBURN2] [EMS] JUST STARTED THIS MORNING  [03\/01\/26 12:12:12 MCLAYBURN2] [EMS] UNABLE TO GET A READING ON BLOOD PRESSURE  [03\/01\/26 12:12:00 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 12:11:45 MCLAYBURN2] 90 YR OLD FEMALE CONGESTIVE HEART FAILURE BP LOW  [03\/01\/26 12:11:42 MCLAYBURN2]]"
[2026-03-02 13:04:28] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: {731} PATIENT LOADED  [03\/01\/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03\/01\/26 12:13:27 MCLAYBURN2] [EMS] FRONT DOOR \/\/ CAN BACK IN THE EXTRA LOT WHERE THEY CAN GET CLOSER TO THE FRONT DOOR  [03\/01\/26 12:13:13 MCLAYBURN2] [EMS] MARIE WILLIAMS  [03\/01\/26 12:12:43 MCLAYBURN2] [EMS] HAVING A HARD TIME TALKING  [03\/01\/26 12:12:38 MCLAYBURN2] [EMS] JUST STARTED THIS MORNING  [03\/01\/26 12:12:12 MCLAYBURN2] [EMS] UNABLE TO GET A READING ON BLOOD PRESSURE  [03\/01\/26 12:12:00 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 12:11:45 MCLAYBURN2] 90 YR OLD FEMALE CONGESTIVE HEART FAILURE BP LOW  [03\/01\/26 12:11:42 MCLAYBURN2]]"
[2026-03-02 13:04:28] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:04:28] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:04:28] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:04:28] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:04:28] [INFO]   -> Found value: MAPLEWOOD
[2026-03-02 13:04:28] [INFO]   -> Set field 'streetName' = "MAPLEWOOD"
[2026-03-02 13:04:28] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:04:28] [INFO]   -> Found value: DR
[2026-03-02 13:04:28] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 13:04:28] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:04:28] [INFO]   -> Found value: 3635 MAPLEWOOD DR
[2026-03-02 13:04:28] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3635 MAPLEWOOD DR"
[2026-03-02 13:04:28] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:04:28] [INFO] Concatenating street name and type
[2026-03-02 13:04:28] [INFO]   -> Combined street name: MAPLEWOOD DR
[2026-03-02 13:04:28] [INFO] Built locationCoordinates from lat/lng: 36.22622,-85.54717
[2026-03-02 13:04:28] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000568","dispatchRunNumber":"2026000568","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":3635,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.2262199999999978672349243424832820892333984375,"nERISIncidentLongitude":-85.54716999999999416104401461780071258544921875,"alarm":"2026-03-01 12:11:45","dispatched":"2026-03-01 12:12:47","enroute":"2026-03-01 12:14:56","onScene":"2026-03-01 12:24:36","cleared":"2026-03-01 12:48:10","inService":"2026-03-01 12:48:10","incidentLocationCross":"HUNTINGTON DR","cADVehicleID":"PCFR","timedispatch":"2026-03-01 12:12:47","timeunitclear":"2026-03-01 12:14:52","timecanceledenroute":"2026-03-01 12:14:52","policeReportNumber":"20260022615","dispatchNotes":"[EMS] UDTS: {731} PATIENT LOADED  [03\/01\/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03\/01\/26 12:13:27 MCLAYBURN2] [EMS] FRONT DOOR \/\/ CAN BACK IN THE EXTRA LOT WHERE THEY CAN GET CLOSER TO THE FRONT DOOR  [03\/01\/26 12:13:13 MCLAYBURN2] [EMS] MARIE WILLIAMS  [03\/01\/26 12:12:43 MCLAYBURN2] [EMS] HAVING A HARD TIME TALKING  [03\/01\/26 12:12:38 MCLAYBURN2] [EMS] JUST STARTED THIS MORNING  [03\/01\/26 12:12:12 MCLAYBURN2] [EMS] UNABLE TO GET A READING ON BLOOD PRESSURE  [03\/01\/26 12:12:00 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 12:11:45 MCLAYBURN2] 90 YR OLD FEMALE CONGESTIVE HEART FAILURE BP LOW  [03\/01\/26 12:11:42 MCLAYBURN2]]","cADLog":"[EMS] UDTS: {731} PATIENT LOADED  [03\/01\/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03\/01\/26 12:13:27 MCLAYBURN2] [EMS] FRONT DOOR \/\/ CAN BACK IN THE EXTRA LOT WHERE THEY CAN GET CLOSER TO THE FRONT DOOR  [03\/01\/26 12:13:13 MCLAYBURN2] [EMS] MARIE WILLIAMS  [03\/01\/26 12:12:43 MCLAYBURN2] [EMS] HAVING A HARD TIME TALKING  [03\/01\/26 12:12:38 MCLAYBURN2] [EMS] JUST STARTED THIS MORNING  [03\/01\/26 12:12:12 MCLAYBURN2] [EMS] UNABLE TO GET A READING ON BLOOD PRESSURE  [03\/01\/26 12:12:00 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 12:11:45 MCLAYBURN2] 90 YR OLD FEMALE CONGESTIVE HEART FAILURE BP LOW  [03\/01\/26 12:11:42 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"MAPLEWOOD DR","incidentAddressTextVersionStreet":"3635 MAPLEWOOD DR","locationCoordinates":"36.22622,-85.54717"}
[2026-03-02 13:04:28] [INFO] Number of extracted fields: 27
[2026-03-02 13:04:28] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:04:28] [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-03-02 13:04:28] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:04:28] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:04:29] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:04:29] [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-03-02 13:04:29] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:04:29] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:04:29] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-02 13:04:37] [INFO] Created new Dispatches record with ID: 69a58add97132f544
[2026-03-02 13:04:37] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:04:37] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:04:40] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:04:40] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022615_20260302_125757.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:04:40] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:04:40] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022615_20260302_125757_1.XML
[2026-03-02 13:04:40] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022615_20260302_125757_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:04:40] [INFO] File size: 6677 bytes
[2026-03-02 13:04:40] [INFO] Created FTPFiles record with ID: 69a58ae8acb2300a0
[2026-03-02 13:04:40] [INFO] About to extract fields from XML. File size: 6677 bytes
[2026-03-02 13:04:40] [INFO] Number of mappings: 28
[2026-03-02 13:04:40] [INFO] Starting XML parsing. Content length: 6677
[2026-03-02 13:04:40] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:04:40] [INFO] Processing 28 field mappings
[2026-03-02 13:04:40] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:04:40] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:04:40] [INFO]   -> Found value: PCFD
[2026-03-02 13:04:40] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:04:40] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:04:40] [INFO]   -> Found value: 2026000568
[2026-03-02 13:04:40] [INFO]   -> Set field 'incidentInternalId' = "2026000568"
[2026-03-02 13:04:40] [INFO]   -> Set field 'dispatchRunNumber' = "2026000568"
[2026-03-02 13:04:40] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:04:40] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-02 13:04:40] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-02 13:04:40] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:04:40] [INFO]   -> Found value: 3635
[2026-03-02 13:04:40] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3635
[2026-03-02 13:04:40] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:04:40] [INFO]   -> Found value: TN
[2026-03-02 13:04:40] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:04:40] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:04:40] [INFO]   -> Found value: 38501
[2026-03-02 13:04:40] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-02 13:04:40] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:04:40] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:40] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:04:40] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:40] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:04:40] [INFO]   -> Found value: 36.22622
[2026-03-02 13:04:40] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2262199999999978672349243424832820892333984375
[2026-03-02 13:04:40] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:04:40] [INFO]   -> Found value: -85.54717
[2026-03-02 13:04:40] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.54716999999999416104401461780071258544921875
[2026-03-02 13:04:40] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:04:40] [INFO]   -> Found value: 2026-03-01 12:11:45
[2026-03-02 13:04:40] [INFO]   -> Set field 'alarm' = "2026-03-01 12:11:45"
[2026-03-02 13:04:40] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:04:40] [INFO]   -> Found value: 2026-03-01 12:12:47
[2026-03-02 13:04:40] [INFO]   -> Set field 'dispatched' = "2026-03-01 12:12:47"
[2026-03-02 13:04:40] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:04:40] [INFO]   -> Found value: 2026-03-01 12:14:56
[2026-03-02 13:04:40] [INFO]   -> Set field 'enroute' = "2026-03-01 12:14:56"
[2026-03-02 13:04:40] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:04:40] [INFO]   -> Found value: 2026-03-01 12:24:36
[2026-03-02 13:04:40] [INFO]   -> Set field 'onScene' = "2026-03-01 12:24:36"
[2026-03-02 13:04:40] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:04:40] [INFO]   -> Found value: 2026-03-01 12:48:10
[2026-03-02 13:04:40] [INFO]   -> Set field 'cleared' = "2026-03-01 12:48:10"
[2026-03-02 13:04:40] [INFO]   -> Set field 'inService' = "2026-03-01 12:48:10"
[2026-03-02 13:04:40] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:04:40] [INFO]   -> Found value: HUNTINGTON DR
[2026-03-02 13:04:40] [INFO]   -> Set field 'incidentLocationCross' = "HUNTINGTON DR"
[2026-03-02 13:04:40] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:04:40] [INFO]   -> Found value: PCFR
[2026-03-02 13:04:40] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:04:40] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:04:40] [INFO]   -> Found value: 2026-03-01 12:12:47
[2026-03-02 13:04:40] [INFO]   -> Set field 'timedispatch' = "2026-03-01 12:12:47"
[2026-03-02 13:04:40] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:04:40] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:40] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:04:40] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:40] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:04:40] [INFO]   -> Found value: 2026-03-01 12:14:52
[2026-03-02 13:04:40] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 12:14:52"
[2026-03-02 13:04:40] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:04:40] [INFO]   -> Found value: 2026-03-01 12:14:52
[2026-03-02 13:04:40] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-01 12:14:52"
[2026-03-02 13:04:40] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:04:40] [INFO]   -> Found value: 20260022615
[2026-03-02 13:04:40] [INFO]   -> Set field 'policeReportNumber' = "20260022615"
[2026-03-02 13:04:40] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:04:40] [INFO]   -> Found value: [EMS] UDTS: {731} PATIENT LOADED  [03/01/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03/01/26 12...
[2026-03-02 13:04:40] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: {731} PATIENT LOADED  [03\/01\/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03\/01\/26 12:13:27 MCLAYBURN2] [EMS] FRONT DOOR \/\/ CAN BACK IN THE EXTRA LOT WHERE THEY CAN GET CLOSER TO THE FRONT DOOR  [03\/01\/26 12:13:13 MCLAYBURN2] [EMS] MARIE WILLIAMS  [03\/01\/26 12:12:43 MCLAYBURN2] [EMS] HAVING A HARD TIME TALKING  [03\/01\/26 12:12:38 MCLAYBURN2] [EMS] JUST STARTED THIS MORNING  [03\/01\/26 12:12:12 MCLAYBURN2] [EMS] UNABLE TO GET A READING ON BLOOD PRESSURE  [03\/01\/26 12:12:00 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 12:11:45 MCLAYBURN2] 90 YR OLD FEMALE CONGESTIVE HEART FAILURE BP LOW  [03\/01\/26 12:11:42 MCLAYBURN2]]"
[2026-03-02 13:04:40] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: {731} PATIENT LOADED  [03\/01\/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03\/01\/26 12:13:27 MCLAYBURN2] [EMS] FRONT DOOR \/\/ CAN BACK IN THE EXTRA LOT WHERE THEY CAN GET CLOSER TO THE FRONT DOOR  [03\/01\/26 12:13:13 MCLAYBURN2] [EMS] MARIE WILLIAMS  [03\/01\/26 12:12:43 MCLAYBURN2] [EMS] HAVING A HARD TIME TALKING  [03\/01\/26 12:12:38 MCLAYBURN2] [EMS] JUST STARTED THIS MORNING  [03\/01\/26 12:12:12 MCLAYBURN2] [EMS] UNABLE TO GET A READING ON BLOOD PRESSURE  [03\/01\/26 12:12:00 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 12:11:45 MCLAYBURN2] 90 YR OLD FEMALE CONGESTIVE HEART FAILURE BP LOW  [03\/01\/26 12:11:42 MCLAYBURN2]]"
[2026-03-02 13:04:40] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:04:40] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:04:40] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:04:40] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:04:40] [INFO]   -> Found value: MAPLEWOOD
[2026-03-02 13:04:40] [INFO]   -> Set field 'streetName' = "MAPLEWOOD"
[2026-03-02 13:04:40] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:04:40] [INFO]   -> Found value: DR
[2026-03-02 13:04:40] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 13:04:40] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:04:40] [INFO]   -> Found value: 3635 MAPLEWOOD DR
[2026-03-02 13:04:40] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3635 MAPLEWOOD DR"
[2026-03-02 13:04:40] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:04:40] [INFO] Concatenating street name and type
[2026-03-02 13:04:40] [INFO]   -> Combined street name: MAPLEWOOD DR
[2026-03-02 13:04:40] [INFO] Built locationCoordinates from lat/lng: 36.22622,-85.54717
[2026-03-02 13:04:40] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000568","dispatchRunNumber":"2026000568","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":3635,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.2262199999999978672349243424832820892333984375,"nERISIncidentLongitude":-85.54716999999999416104401461780071258544921875,"alarm":"2026-03-01 12:11:45","dispatched":"2026-03-01 12:12:47","enroute":"2026-03-01 12:14:56","onScene":"2026-03-01 12:24:36","cleared":"2026-03-01 12:48:10","inService":"2026-03-01 12:48:10","incidentLocationCross":"HUNTINGTON DR","cADVehicleID":"PCFR","timedispatch":"2026-03-01 12:12:47","timeunitclear":"2026-03-01 12:14:52","timecanceledenroute":"2026-03-01 12:14:52","policeReportNumber":"20260022615","dispatchNotes":"[EMS] UDTS: {731} PATIENT LOADED  [03\/01\/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03\/01\/26 12:13:27 MCLAYBURN2] [EMS] FRONT DOOR \/\/ CAN BACK IN THE EXTRA LOT WHERE THEY CAN GET CLOSER TO THE FRONT DOOR  [03\/01\/26 12:13:13 MCLAYBURN2] [EMS] MARIE WILLIAMS  [03\/01\/26 12:12:43 MCLAYBURN2] [EMS] HAVING A HARD TIME TALKING  [03\/01\/26 12:12:38 MCLAYBURN2] [EMS] JUST STARTED THIS MORNING  [03\/01\/26 12:12:12 MCLAYBURN2] [EMS] UNABLE TO GET A READING ON BLOOD PRESSURE  [03\/01\/26 12:12:00 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 12:11:45 MCLAYBURN2] 90 YR OLD FEMALE CONGESTIVE HEART FAILURE BP LOW  [03\/01\/26 12:11:42 MCLAYBURN2]]","cADLog":"[EMS] UDTS: {731} PATIENT LOADED  [03\/01\/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03\/01\/26 12:13:27 MCLAYBURN2] [EMS] FRONT DOOR \/\/ CAN BACK IN THE EXTRA LOT WHERE THEY CAN GET CLOSER TO THE FRONT DOOR  [03\/01\/26 12:13:13 MCLAYBURN2] [EMS] MARIE WILLIAMS  [03\/01\/26 12:12:43 MCLAYBURN2] [EMS] HAVING A HARD TIME TALKING  [03\/01\/26 12:12:38 MCLAYBURN2] [EMS] JUST STARTED THIS MORNING  [03\/01\/26 12:12:12 MCLAYBURN2] [EMS] UNABLE TO GET A READING ON BLOOD PRESSURE  [03\/01\/26 12:12:00 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 12:11:45 MCLAYBURN2] 90 YR OLD FEMALE CONGESTIVE HEART FAILURE BP LOW  [03\/01\/26 12:11:42 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"MAPLEWOOD DR","incidentAddressTextVersionStreet":"3635 MAPLEWOOD DR","locationCoordinates":"36.22622,-85.54717"}
[2026-03-02 13:04:40] [INFO] Number of extracted fields: 27
[2026-03-02 13:04:40] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:04:40] [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-03-02 13:04:40] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:04:40] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:04:40] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:04:41] [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-03-02 13:04:41] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:04:41] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:04:41] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-02 13:04:41] [INFO] Found existing Dispatch with cADNumber '2026000568', ID: 69a58add97132f544 - will update instead of create
[2026-03-02 13:04:41] [INFO] Updated existing Dispatches record with ID: 69a58add97132f544
[2026-03-02 13:04:41] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:04:41] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:04: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-03-02 13:04:44] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022615_20260302_125757_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:04:44] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:04:44] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022615_20260302_125757_2.XML
[2026-03-02 13:04:44] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022615_20260302_125757_2.XML for user: 68f1466aed072ad4a
[2026-03-02 13:04:44] [INFO] File size: 6677 bytes
[2026-03-02 13:04:45] [INFO] Created FTPFiles record with ID: 69a58aed31e7c44b8
[2026-03-02 13:04:45] [INFO] About to extract fields from XML. File size: 6677 bytes
[2026-03-02 13:04:45] [INFO] Number of mappings: 28
[2026-03-02 13:04:45] [INFO] Starting XML parsing. Content length: 6677
[2026-03-02 13:04:45] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:04:45] [INFO] Processing 28 field mappings
[2026-03-02 13:04:45] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:04:45] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:04:45] [INFO]   -> Found value: PCFD
[2026-03-02 13:04:45] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:04:45] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:04:45] [INFO]   -> Found value: 2026000568
[2026-03-02 13:04:45] [INFO]   -> Set field 'incidentInternalId' = "2026000568"
[2026-03-02 13:04:45] [INFO]   -> Set field 'dispatchRunNumber' = "2026000568"
[2026-03-02 13:04:45] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:04:45] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-02 13:04:45] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-02 13:04:45] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:04:45] [INFO]   -> Found value: 3635
[2026-03-02 13:04:45] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3635
[2026-03-02 13:04:45] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:04:45] [INFO]   -> Found value: TN
[2026-03-02 13:04:45] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:04:45] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:04:45] [INFO]   -> Found value: 38501
[2026-03-02 13:04:45] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-02 13:04:45] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:04:45] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:45] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:04:45] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:45] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:04:45] [INFO]   -> Found value: 36.22622
[2026-03-02 13:04:45] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2262199999999978672349243424832820892333984375
[2026-03-02 13:04:45] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:04:45] [INFO]   -> Found value: -85.54717
[2026-03-02 13:04:45] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.54716999999999416104401461780071258544921875
[2026-03-02 13:04:45] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:04:45] [INFO]   -> Found value: 2026-03-01 12:11:45
[2026-03-02 13:04:45] [INFO]   -> Set field 'alarm' = "2026-03-01 12:11:45"
[2026-03-02 13:04:45] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:04:45] [INFO]   -> Found value: 2026-03-01 12:12:47
[2026-03-02 13:04:45] [INFO]   -> Set field 'dispatched' = "2026-03-01 12:12:47"
[2026-03-02 13:04:45] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:04:45] [INFO]   -> Found value: 2026-03-01 12:14:56
[2026-03-02 13:04:45] [INFO]   -> Set field 'enroute' = "2026-03-01 12:14:56"
[2026-03-02 13:04:45] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:04:45] [INFO]   -> Found value: 2026-03-01 12:24:36
[2026-03-02 13:04:45] [INFO]   -> Set field 'onScene' = "2026-03-01 12:24:36"
[2026-03-02 13:04:45] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:04:45] [INFO]   -> Found value: 2026-03-01 12:48:10
[2026-03-02 13:04:45] [INFO]   -> Set field 'cleared' = "2026-03-01 12:48:10"
[2026-03-02 13:04:45] [INFO]   -> Set field 'inService' = "2026-03-01 12:48:10"
[2026-03-02 13:04:45] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:04:45] [INFO]   -> Found value: HUNTINGTON DR
[2026-03-02 13:04:45] [INFO]   -> Set field 'incidentLocationCross' = "HUNTINGTON DR"
[2026-03-02 13:04:45] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:04:45] [INFO]   -> Found value: PCFR
[2026-03-02 13:04:45] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:04:45] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:04:45] [INFO]   -> Found value: 2026-03-01 12:12:47
[2026-03-02 13:04:45] [INFO]   -> Set field 'timedispatch' = "2026-03-01 12:12:47"
[2026-03-02 13:04:45] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:04:45] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:45] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:04:45] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:45] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:04:45] [INFO]   -> Found value: 2026-03-01 12:14:52
[2026-03-02 13:04:45] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 12:14:52"
[2026-03-02 13:04:45] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:04:45] [INFO]   -> Found value: 2026-03-01 12:14:52
[2026-03-02 13:04:45] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-01 12:14:52"
[2026-03-02 13:04:45] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:04:45] [INFO]   -> Found value: 20260022615
[2026-03-02 13:04:45] [INFO]   -> Set field 'policeReportNumber' = "20260022615"
[2026-03-02 13:04:45] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:04:45] [INFO]   -> Found value: [EMS] UDTS: {731} PATIENT LOADED  [03/01/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03/01/26 12...
[2026-03-02 13:04:45] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: {731} PATIENT LOADED  [03\/01\/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03\/01\/26 12:13:27 MCLAYBURN2] [EMS] FRONT DOOR \/\/ CAN BACK IN THE EXTRA LOT WHERE THEY CAN GET CLOSER TO THE FRONT DOOR  [03\/01\/26 12:13:13 MCLAYBURN2] [EMS] MARIE WILLIAMS  [03\/01\/26 12:12:43 MCLAYBURN2] [EMS] HAVING A HARD TIME TALKING  [03\/01\/26 12:12:38 MCLAYBURN2] [EMS] JUST STARTED THIS MORNING  [03\/01\/26 12:12:12 MCLAYBURN2] [EMS] UNABLE TO GET A READING ON BLOOD PRESSURE  [03\/01\/26 12:12:00 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 12:11:45 MCLAYBURN2] 90 YR OLD FEMALE CONGESTIVE HEART FAILURE BP LOW  [03\/01\/26 12:11:42 MCLAYBURN2]]"
[2026-03-02 13:04:45] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: {731} PATIENT LOADED  [03\/01\/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03\/01\/26 12:13:27 MCLAYBURN2] [EMS] FRONT DOOR \/\/ CAN BACK IN THE EXTRA LOT WHERE THEY CAN GET CLOSER TO THE FRONT DOOR  [03\/01\/26 12:13:13 MCLAYBURN2] [EMS] MARIE WILLIAMS  [03\/01\/26 12:12:43 MCLAYBURN2] [EMS] HAVING A HARD TIME TALKING  [03\/01\/26 12:12:38 MCLAYBURN2] [EMS] JUST STARTED THIS MORNING  [03\/01\/26 12:12:12 MCLAYBURN2] [EMS] UNABLE TO GET A READING ON BLOOD PRESSURE  [03\/01\/26 12:12:00 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 12:11:45 MCLAYBURN2] 90 YR OLD FEMALE CONGESTIVE HEART FAILURE BP LOW  [03\/01\/26 12:11:42 MCLAYBURN2]]"
[2026-03-02 13:04:45] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:04:45] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:04:45] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:04:45] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:04:45] [INFO]   -> Found value: MAPLEWOOD
[2026-03-02 13:04:45] [INFO]   -> Set field 'streetName' = "MAPLEWOOD"
[2026-03-02 13:04:45] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:04:45] [INFO]   -> Found value: DR
[2026-03-02 13:04:45] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 13:04:45] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:04:45] [INFO]   -> Found value: 3635 MAPLEWOOD DR
[2026-03-02 13:04:45] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3635 MAPLEWOOD DR"
[2026-03-02 13:04:45] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:04:45] [INFO] Concatenating street name and type
[2026-03-02 13:04:45] [INFO]   -> Combined street name: MAPLEWOOD DR
[2026-03-02 13:04:45] [INFO] Built locationCoordinates from lat/lng: 36.22622,-85.54717
[2026-03-02 13:04:45] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000568","dispatchRunNumber":"2026000568","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":3635,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.2262199999999978672349243424832820892333984375,"nERISIncidentLongitude":-85.54716999999999416104401461780071258544921875,"alarm":"2026-03-01 12:11:45","dispatched":"2026-03-01 12:12:47","enroute":"2026-03-01 12:14:56","onScene":"2026-03-01 12:24:36","cleared":"2026-03-01 12:48:10","inService":"2026-03-01 12:48:10","incidentLocationCross":"HUNTINGTON DR","cADVehicleID":"PCFR","timedispatch":"2026-03-01 12:12:47","timeunitclear":"2026-03-01 12:14:52","timecanceledenroute":"2026-03-01 12:14:52","policeReportNumber":"20260022615","dispatchNotes":"[EMS] UDTS: {731} PATIENT LOADED  [03\/01\/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03\/01\/26 12:13:27 MCLAYBURN2] [EMS] FRONT DOOR \/\/ CAN BACK IN THE EXTRA LOT WHERE THEY CAN GET CLOSER TO THE FRONT DOOR  [03\/01\/26 12:13:13 MCLAYBURN2] [EMS] MARIE WILLIAMS  [03\/01\/26 12:12:43 MCLAYBURN2] [EMS] HAVING A HARD TIME TALKING  [03\/01\/26 12:12:38 MCLAYBURN2] [EMS] JUST STARTED THIS MORNING  [03\/01\/26 12:12:12 MCLAYBURN2] [EMS] UNABLE TO GET A READING ON BLOOD PRESSURE  [03\/01\/26 12:12:00 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 12:11:45 MCLAYBURN2] 90 YR OLD FEMALE CONGESTIVE HEART FAILURE BP LOW  [03\/01\/26 12:11:42 MCLAYBURN2]]","cADLog":"[EMS] UDTS: {731} PATIENT LOADED  [03\/01\/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03\/01\/26 12:13:27 MCLAYBURN2] [EMS] FRONT DOOR \/\/ CAN BACK IN THE EXTRA LOT WHERE THEY CAN GET CLOSER TO THE FRONT DOOR  [03\/01\/26 12:13:13 MCLAYBURN2] [EMS] MARIE WILLIAMS  [03\/01\/26 12:12:43 MCLAYBURN2] [EMS] HAVING A HARD TIME TALKING  [03\/01\/26 12:12:38 MCLAYBURN2] [EMS] JUST STARTED THIS MORNING  [03\/01\/26 12:12:12 MCLAYBURN2] [EMS] UNABLE TO GET A READING ON BLOOD PRESSURE  [03\/01\/26 12:12:00 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 12:11:45 MCLAYBURN2] 90 YR OLD FEMALE CONGESTIVE HEART FAILURE BP LOW  [03\/01\/26 12:11:42 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"MAPLEWOOD DR","incidentAddressTextVersionStreet":"3635 MAPLEWOOD DR","locationCoordinates":"36.22622,-85.54717"}
[2026-03-02 13:04:45] [INFO] Number of extracted fields: 27
[2026-03-02 13:04:45] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:04:45] [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-03-02 13:04:45] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:04:45] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:04:45] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:04:45] [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-03-02 13:04:45] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:04:45] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:04:45] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-02 13:04:45] [INFO] Found existing Dispatch with cADNumber '2026000568', ID: 69a58add97132f544 - will update instead of create
[2026-03-02 13:04:46] [INFO] Updated existing Dispatches record with ID: 69a58add97132f544
[2026-03-02 13:04:46] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:04:46] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:04:49] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:04:49] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022615_20260302_125757_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:04:49] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:04:49] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022615_20260302_125757_3.XML
[2026-03-02 13:04:49] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022615_20260302_125757_3.XML for user: 68f1466aed072ad4a
[2026-03-02 13:04:49] [INFO] File size: 6677 bytes
[2026-03-02 13:04:49] [INFO] Created FTPFiles record with ID: 69a58af1c47e40c32
[2026-03-02 13:04:49] [INFO] About to extract fields from XML. File size: 6677 bytes
[2026-03-02 13:04:49] [INFO] Number of mappings: 28
[2026-03-02 13:04:49] [INFO] Starting XML parsing. Content length: 6677
[2026-03-02 13:04:49] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:04:49] [INFO] Processing 28 field mappings
[2026-03-02 13:04:49] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:04:49] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:04:49] [INFO]   -> Found value: PCFD
[2026-03-02 13:04:49] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:04:49] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:04:49] [INFO]   -> Found value: 2026000568
[2026-03-02 13:04:49] [INFO]   -> Set field 'incidentInternalId' = "2026000568"
[2026-03-02 13:04:49] [INFO]   -> Set field 'dispatchRunNumber' = "2026000568"
[2026-03-02 13:04:49] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:04:49] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-02 13:04:49] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-02 13:04:49] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:04:49] [INFO]   -> Found value: 3635
[2026-03-02 13:04:49] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3635
[2026-03-02 13:04:49] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:04:49] [INFO]   -> Found value: TN
[2026-03-02 13:04:49] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:04:49] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:04:49] [INFO]   -> Found value: 38501
[2026-03-02 13:04:49] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-02 13:04:49] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:04:49] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:49] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:04:49] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:49] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:04:49] [INFO]   -> Found value: 36.22622
[2026-03-02 13:04:49] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2262199999999978672349243424832820892333984375
[2026-03-02 13:04:49] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:04:49] [INFO]   -> Found value: -85.54717
[2026-03-02 13:04:49] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.54716999999999416104401461780071258544921875
[2026-03-02 13:04:49] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:04:49] [INFO]   -> Found value: 2026-03-01 12:11:45
[2026-03-02 13:04:49] [INFO]   -> Set field 'alarm' = "2026-03-01 12:11:45"
[2026-03-02 13:04:49] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:04:49] [INFO]   -> Found value: 2026-03-01 12:12:47
[2026-03-02 13:04:49] [INFO]   -> Set field 'dispatched' = "2026-03-01 12:12:47"
[2026-03-02 13:04:49] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:04:49] [INFO]   -> Found value: 2026-03-01 12:14:56
[2026-03-02 13:04:49] [INFO]   -> Set field 'enroute' = "2026-03-01 12:14:56"
[2026-03-02 13:04:49] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:04:49] [INFO]   -> Found value: 2026-03-01 12:24:36
[2026-03-02 13:04:49] [INFO]   -> Set field 'onScene' = "2026-03-01 12:24:36"
[2026-03-02 13:04:49] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:04:49] [INFO]   -> Found value: 2026-03-01 12:48:10
[2026-03-02 13:04:49] [INFO]   -> Set field 'cleared' = "2026-03-01 12:48:10"
[2026-03-02 13:04:49] [INFO]   -> Set field 'inService' = "2026-03-01 12:48:10"
[2026-03-02 13:04:49] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:04:49] [INFO]   -> Found value: HUNTINGTON DR
[2026-03-02 13:04:49] [INFO]   -> Set field 'incidentLocationCross' = "HUNTINGTON DR"
[2026-03-02 13:04:49] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:04:49] [INFO]   -> Found value: PCFR
[2026-03-02 13:04:49] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:04:49] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:04:49] [INFO]   -> Found value: 2026-03-01 12:12:47
[2026-03-02 13:04:49] [INFO]   -> Set field 'timedispatch' = "2026-03-01 12:12:47"
[2026-03-02 13:04:49] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:04:49] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:49] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:04:49] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:49] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:04:49] [INFO]   -> Found value: 2026-03-01 12:14:52
[2026-03-02 13:04:49] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 12:14:52"
[2026-03-02 13:04:49] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:04:49] [INFO]   -> Found value: 2026-03-01 12:14:52
[2026-03-02 13:04:49] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-01 12:14:52"
[2026-03-02 13:04:49] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:04:49] [INFO]   -> Found value: 20260022615
[2026-03-02 13:04:49] [INFO]   -> Set field 'policeReportNumber' = "20260022615"
[2026-03-02 13:04:49] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:04:49] [INFO]   -> Found value: [EMS] UDTS: {731} PATIENT LOADED  [03/01/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03/01/26 12...
[2026-03-02 13:04:49] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: {731} PATIENT LOADED  [03\/01\/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03\/01\/26 12:13:27 MCLAYBURN2] [EMS] FRONT DOOR \/\/ CAN BACK IN THE EXTRA LOT WHERE THEY CAN GET CLOSER TO THE FRONT DOOR  [03\/01\/26 12:13:13 MCLAYBURN2] [EMS] MARIE WILLIAMS  [03\/01\/26 12:12:43 MCLAYBURN2] [EMS] HAVING A HARD TIME TALKING  [03\/01\/26 12:12:38 MCLAYBURN2] [EMS] JUST STARTED THIS MORNING  [03\/01\/26 12:12:12 MCLAYBURN2] [EMS] UNABLE TO GET A READING ON BLOOD PRESSURE  [03\/01\/26 12:12:00 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 12:11:45 MCLAYBURN2] 90 YR OLD FEMALE CONGESTIVE HEART FAILURE BP LOW  [03\/01\/26 12:11:42 MCLAYBURN2]]"
[2026-03-02 13:04:49] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: {731} PATIENT LOADED  [03\/01\/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03\/01\/26 12:13:27 MCLAYBURN2] [EMS] FRONT DOOR \/\/ CAN BACK IN THE EXTRA LOT WHERE THEY CAN GET CLOSER TO THE FRONT DOOR  [03\/01\/26 12:13:13 MCLAYBURN2] [EMS] MARIE WILLIAMS  [03\/01\/26 12:12:43 MCLAYBURN2] [EMS] HAVING A HARD TIME TALKING  [03\/01\/26 12:12:38 MCLAYBURN2] [EMS] JUST STARTED THIS MORNING  [03\/01\/26 12:12:12 MCLAYBURN2] [EMS] UNABLE TO GET A READING ON BLOOD PRESSURE  [03\/01\/26 12:12:00 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 12:11:45 MCLAYBURN2] 90 YR OLD FEMALE CONGESTIVE HEART FAILURE BP LOW  [03\/01\/26 12:11:42 MCLAYBURN2]]"
[2026-03-02 13:04:49] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:04:49] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:04:49] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:04:49] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:04:49] [INFO]   -> Found value: MAPLEWOOD
[2026-03-02 13:04:49] [INFO]   -> Set field 'streetName' = "MAPLEWOOD"
[2026-03-02 13:04:49] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:04:49] [INFO]   -> Found value: DR
[2026-03-02 13:04:49] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-02 13:04:49] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:04:49] [INFO]   -> Found value: 3635 MAPLEWOOD DR
[2026-03-02 13:04:49] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3635 MAPLEWOOD DR"
[2026-03-02 13:04:49] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:04:49] [INFO] Concatenating street name and type
[2026-03-02 13:04:49] [INFO]   -> Combined street name: MAPLEWOOD DR
[2026-03-02 13:04:49] [INFO] Built locationCoordinates from lat/lng: 36.22622,-85.54717
[2026-03-02 13:04:49] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000568","dispatchRunNumber":"2026000568","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":3635,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.2262199999999978672349243424832820892333984375,"nERISIncidentLongitude":-85.54716999999999416104401461780071258544921875,"alarm":"2026-03-01 12:11:45","dispatched":"2026-03-01 12:12:47","enroute":"2026-03-01 12:14:56","onScene":"2026-03-01 12:24:36","cleared":"2026-03-01 12:48:10","inService":"2026-03-01 12:48:10","incidentLocationCross":"HUNTINGTON DR","cADVehicleID":"PCFR","timedispatch":"2026-03-01 12:12:47","timeunitclear":"2026-03-01 12:14:52","timecanceledenroute":"2026-03-01 12:14:52","policeReportNumber":"20260022615","dispatchNotes":"[EMS] UDTS: {731} PATIENT LOADED  [03\/01\/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03\/01\/26 12:13:27 MCLAYBURN2] [EMS] FRONT DOOR \/\/ CAN BACK IN THE EXTRA LOT WHERE THEY CAN GET CLOSER TO THE FRONT DOOR  [03\/01\/26 12:13:13 MCLAYBURN2] [EMS] MARIE WILLIAMS  [03\/01\/26 12:12:43 MCLAYBURN2] [EMS] HAVING A HARD TIME TALKING  [03\/01\/26 12:12:38 MCLAYBURN2] [EMS] JUST STARTED THIS MORNING  [03\/01\/26 12:12:12 MCLAYBURN2] [EMS] UNABLE TO GET A READING ON BLOOD PRESSURE  [03\/01\/26 12:12:00 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 12:11:45 MCLAYBURN2] 90 YR OLD FEMALE CONGESTIVE HEART FAILURE BP LOW  [03\/01\/26 12:11:42 MCLAYBURN2]]","cADLog":"[EMS] UDTS: {731} PATIENT LOADED  [03\/01\/26 12:47:18 JBOHANNON] [EMS] MAYBE DEHYDRATED  [03\/01\/26 12:13:27 MCLAYBURN2] [EMS] FRONT DOOR \/\/ CAN BACK IN THE EXTRA LOT WHERE THEY CAN GET CLOSER TO THE FRONT DOOR  [03\/01\/26 12:13:13 MCLAYBURN2] [EMS] MARIE WILLIAMS  [03\/01\/26 12:12:43 MCLAYBURN2] [EMS] HAVING A HARD TIME TALKING  [03\/01\/26 12:12:38 MCLAYBURN2] [EMS] JUST STARTED THIS MORNING  [03\/01\/26 12:12:12 MCLAYBURN2] [EMS] UNABLE TO GET A READING ON BLOOD PRESSURE  [03\/01\/26 12:12:00 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/01\/2026 12:11:45 MCLAYBURN2] 90 YR OLD FEMALE CONGESTIVE HEART FAILURE BP LOW  [03\/01\/26 12:11:42 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"MAPLEWOOD DR","incidentAddressTextVersionStreet":"3635 MAPLEWOOD DR","locationCoordinates":"36.22622,-85.54717"}
[2026-03-02 13:04:49] [INFO] Number of extracted fields: 27
[2026-03-02 13:04:49] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:04:49] [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-03-02 13:04:49] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:04:49] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:04:50] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:04:50] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-02 13:04:50] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:04:50] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:04:50] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-02 13:04:50] [INFO] Found existing Dispatch with cADNumber '2026000568', ID: 69a58add97132f544 - will update instead of create
[2026-03-02 13:04:50] [INFO] Updated existing Dispatches record with ID: 69a58add97132f544
[2026-03-02 13:04:50] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:04:50] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:04:54] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:04:54] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022615_20260302_125757_3.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:04:54] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:04:54] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022714_20260302_125758.XML
[2026-03-02 13:04:54] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022714_20260302_125758.XML for user: 68f1466aed072ad4a
[2026-03-02 13:04:54] [INFO] File size: 6533 bytes
[2026-03-02 13:04:54] [INFO] Created FTPFiles record with ID: 69a58af6754dd07a6
[2026-03-02 13:04:54] [INFO] About to extract fields from XML. File size: 6533 bytes
[2026-03-02 13:04:54] [INFO] Number of mappings: 28
[2026-03-02 13:04:54] [INFO] Starting XML parsing. Content length: 6533
[2026-03-02 13:04:54] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:04:54] [INFO] Processing 28 field mappings
[2026-03-02 13:04:54] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:04:54] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:04:54] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:04:54] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-02 13:04:54] [INFO]   -> Found value: PCFD
RESC
[2026-03-02 13:04:54] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC"
[2026-03-02 13:04:54] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:04:54] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:04:54] [INFO]   -> Found value: 2026000570
[2026-03-02 13:04:54] [INFO]   -> Set field 'incidentInternalId' = "2026000570"
[2026-03-02 13:04:54] [INFO]   -> Set field 'dispatchRunNumber' = "2026000570"
[2026-03-02 13:04:54] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:04:54] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-02 13:04:54] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-02 13:04:54] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:04:54] [INFO]   -> Found value: 7601
[2026-03-02 13:04:54] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7601
[2026-03-02 13:04:54] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:04:54] [INFO]   -> Found value: TN
[2026-03-02 13:04:54] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:04:54] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:04:54] [INFO]   -> Found value: 38583
[2026-03-02 13:04:54] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38583
[2026-03-02 13:04:54] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:04:54] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:54] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:04:54] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:54] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:04:54] [INFO]   -> Found value: 36.07751
[2026-03-02 13:04:54] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.07750999999999663714334019459784030914306640625
[2026-03-02 13:04:54] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:04:54] [INFO]   -> Found value: -85.37920
[2026-03-02 13:04:54] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.379199999999997316990629769861698150634765625
[2026-03-02 13:04:54] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:04:54] [INFO]   -> Found value: 2026-03-01 17:34:16
[2026-03-02 13:04:54] [INFO]   -> Set field 'alarm' = "2026-03-01 17:34:16"
[2026-03-02 13:04:54] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:04:54] [INFO]   -> Found value: 2026-03-01 17:35:05
[2026-03-02 13:04:54] [INFO]   -> Set field 'dispatched' = "2026-03-01 17:35:05"
[2026-03-02 13:04:54] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:04:54] [INFO]   -> Found value: 2026-03-01 17:37:03
[2026-03-02 13:04:54] [INFO]   -> Set field 'enroute' = "2026-03-01 17:37:03"
[2026-03-02 13:04:54] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:04:54] [INFO]   -> Found value: 2026-03-01 17:50:49
[2026-03-02 13:04:54] [INFO]   -> Set field 'onScene' = "2026-03-01 17:50:49"
[2026-03-02 13:04:54] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:04:54] [INFO]   -> Found value: 2026-03-01 18:28:27
[2026-03-02 13:04:54] [INFO]   -> Set field 'cleared' = "2026-03-01 18:28:27"
[2026-03-02 13:04:54] [INFO]   -> Set field 'inService' = "2026-03-01 18:28:27"
[2026-03-02 13:04:54] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:04:54] [INFO]   -> Found value: PLEASANT RIDGE RD
[2026-03-02 13:04:54] [INFO]   -> Set field 'incidentLocationCross' = "PLEASANT RIDGE RD"
[2026-03-02 13:04:54] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:04:54] [INFO]   -> Found value: EN21
[2026-03-02 13:04:54] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-02 13:04:54] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:04:54] [INFO]   -> Found value: 2026-03-01 17:37:00
[2026-03-02 13:04:54] [INFO]   -> Set field 'timedispatch' = "2026-03-01 17:37:00"
[2026-03-02 13:04:54] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:04:54] [INFO]   -> Found value: 2026-03-01 17:37:03
[2026-03-02 13:04:54] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 17:37:03"
[2026-03-02 13:04:54] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:04:54] [INFO]   -> Found value: 2026-03-01 17:50:49
[2026-03-02 13:04:54] [INFO]   -> Set field 'timeonscene' = "2026-03-01 17:50:49"
[2026-03-02 13:04:54] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:04:54] [INFO]   -> Found value: 2026-03-01 18:28:27
[2026-03-02 13:04:54] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 18:28:27"
[2026-03-02 13:04:54] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:04:54] [INFO]   -> No value found (null or empty)
[2026-03-02 13:04:54] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:04:54] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:04:54] [INFO]   -> Found value: 20260022714
[2026-03-02 13:04:54] [INFO]   -> Set field 'policeReportNumber' = "20260022714"
[2026-03-02 13:04:54] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:04:54] [INFO]   -> Found value: [EMS] BIPAP  [03/01/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03/01/26 17:34:48 JDICK] Event spawn...
[2026-03-02 13:04:54] [INFO]   -> Set field 'dispatchNotes' = "[EMS] BIPAP  [03\/01\/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03\/01\/26 17:34:48 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/01\/2026 17:34:16 JDICK] 84 YOF BREATHING  [03\/01\/26 17:34:13 JDICK]]"
[2026-03-02 13:04:54] [INFO]   -> Set field 'cADLog' = "[EMS] BIPAP  [03\/01\/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03\/01\/26 17:34:48 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/01\/2026 17:34:16 JDICK] 84 YOF BREATHING  [03\/01\/26 17:34:13 JDICK]]"
[2026-03-02 13:04:54] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:04:54] [INFO]   -> Found value: SPARTA
[2026-03-02 13:04:54] [INFO]   -> Set field 'incidentLocationCity' = "SPARTA"
[2026-03-02 13:04:54] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:04:54] [INFO]   -> Found value: BLUFF TOP
[2026-03-02 13:04:54] [INFO]   -> Set field 'streetName' = "BLUFF TOP"
[2026-03-02 13:04:54] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:04:54] [INFO]   -> Found value: RD
[2026-03-02 13:04:54] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:04:54] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:04:54] [INFO]   -> Found value: 7601 BLUFF TOP RD
[2026-03-02 13:04:54] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7601 BLUFF TOP RD"
[2026-03-02 13:04:54] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 13:04:54] [INFO] Concatenating street name and type
[2026-03-02 13:04:54] [INFO]   -> Combined street name: BLUFF TOP RD
[2026-03-02 13:04:54] [INFO] Built locationCoordinates from lat/lng: 36.07751,-85.3792
[2026-03-02 13:04:54] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nRESC","incidentInternalId":"2026000570","dispatchRunNumber":"2026000570","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":7601,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38583,"nERISIncidentLatitude":36.07750999999999663714334019459784030914306640625,"nERISIncidentLongitude":-85.379199999999997316990629769861698150634765625,"alarm":"2026-03-01 17:34:16","dispatched":"2026-03-01 17:35:05","enroute":"2026-03-01 17:37:03","onScene":"2026-03-01 17:50:49","cleared":"2026-03-01 18:28:27","inService":"2026-03-01 18:28:27","incidentLocationCross":"PLEASANT RIDGE RD","cADVehicleID":"EN21","timedispatch":"2026-03-01 17:37:00","timeenroutetoscene":"2026-03-01 17:37:03","timeonscene":"2026-03-01 17:50:49","timeunitclear":"2026-03-01 18:28:27","policeReportNumber":"20260022714","dispatchNotes":"[EMS] BIPAP  [03\/01\/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03\/01\/26 17:34:48 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/01\/2026 17:34:16 JDICK] 84 YOF BREATHING  [03\/01\/26 17:34:13 JDICK]]","cADLog":"[EMS] BIPAP  [03\/01\/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03\/01\/26 17:34:48 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/01\/2026 17:34:16 JDICK] 84 YOF BREATHING  [03\/01\/26 17:34:13 JDICK]]","incidentLocationCity":"SPARTA","streetName":"BLUFF TOP RD","incidentAddressTextVersionStreet":"7601 BLUFF TOP RD","locationCoordinates":"36.07751,-85.3792"}
[2026-03-02 13:04:54] [INFO] Number of extracted fields: 28
[2026-03-02 13:04:54] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC'
[2026-03-02 13:04:54] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
RESC', Parsed IDs = ["PCFD","RESC"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-02 13:04:54] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC"]
[2026-03-02 13:04:54] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:04:54] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:04:54] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-02 13:04:54] [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-03-02 13:04:54] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:04:54] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-02 13:04:54] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:04:54] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:04:54] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-02 13:05:02] [INFO] Created new Dispatches record with ID: 69a58af73c7d1c4f0
[2026-03-02 13:05:02] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:05:02] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:05: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-03-02 13:05:06] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022714_20260302_125758.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:05:06] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:05:06] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022714_20260302_125758_1.XML
[2026-03-02 13:05:06] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022714_20260302_125758_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:05:06] [INFO] File size: 6533 bytes
[2026-03-02 13:05:06] [INFO] Created FTPFiles record with ID: 69a58b029774032b9
[2026-03-02 13:05:06] [INFO] About to extract fields from XML. File size: 6533 bytes
[2026-03-02 13:05:06] [INFO] Number of mappings: 28
[2026-03-02 13:05:06] [INFO] Starting XML parsing. Content length: 6533
[2026-03-02 13:05:06] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:05:06] [INFO] Processing 28 field mappings
[2026-03-02 13:05:06] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:05:06] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:05:06] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:05:06] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-02 13:05:06] [INFO]   -> Found value: PCFD
RESC
[2026-03-02 13:05:06] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC"
[2026-03-02 13:05:06] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:05:06] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:05:06] [INFO]   -> Found value: 2026000570
[2026-03-02 13:05:06] [INFO]   -> Set field 'incidentInternalId' = "2026000570"
[2026-03-02 13:05:06] [INFO]   -> Set field 'dispatchRunNumber' = "2026000570"
[2026-03-02 13:05:06] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:05:06] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-02 13:05:06] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-02 13:05:06] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:05:06] [INFO]   -> Found value: 7601
[2026-03-02 13:05:06] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7601
[2026-03-02 13:05:06] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:05:06] [INFO]   -> Found value: TN
[2026-03-02 13:05:06] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:05:06] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:05:06] [INFO]   -> Found value: 38583
[2026-03-02 13:05:06] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38583
[2026-03-02 13:05:06] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:05:06] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:06] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:05:06] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:06] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:05:06] [INFO]   -> Found value: 36.07751
[2026-03-02 13:05:06] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.07750999999999663714334019459784030914306640625
[2026-03-02 13:05:06] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:05:06] [INFO]   -> Found value: -85.37920
[2026-03-02 13:05:06] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.379199999999997316990629769861698150634765625
[2026-03-02 13:05:06] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:05:06] [INFO]   -> Found value: 2026-03-01 17:34:16
[2026-03-02 13:05:06] [INFO]   -> Set field 'alarm' = "2026-03-01 17:34:16"
[2026-03-02 13:05:06] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:05:06] [INFO]   -> Found value: 2026-03-01 17:35:05
[2026-03-02 13:05:06] [INFO]   -> Set field 'dispatched' = "2026-03-01 17:35:05"
[2026-03-02 13:05:06] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:05:06] [INFO]   -> Found value: 2026-03-01 17:37:03
[2026-03-02 13:05:06] [INFO]   -> Set field 'enroute' = "2026-03-01 17:37:03"
[2026-03-02 13:05:06] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:05:06] [INFO]   -> Found value: 2026-03-01 17:50:49
[2026-03-02 13:05:06] [INFO]   -> Set field 'onScene' = "2026-03-01 17:50:49"
[2026-03-02 13:05:06] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:05:06] [INFO]   -> Found value: 2026-03-01 18:28:27
[2026-03-02 13:05:06] [INFO]   -> Set field 'cleared' = "2026-03-01 18:28:27"
[2026-03-02 13:05:06] [INFO]   -> Set field 'inService' = "2026-03-01 18:28:27"
[2026-03-02 13:05:06] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:05:06] [INFO]   -> Found value: PLEASANT RIDGE RD
[2026-03-02 13:05:06] [INFO]   -> Set field 'incidentLocationCross' = "PLEASANT RIDGE RD"
[2026-03-02 13:05:06] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:05:06] [INFO]   -> Found value: EN21
[2026-03-02 13:05:06] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-02 13:05:06] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:05:06] [INFO]   -> Found value: 2026-03-01 17:37:00
[2026-03-02 13:05:06] [INFO]   -> Set field 'timedispatch' = "2026-03-01 17:37:00"
[2026-03-02 13:05:06] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:05:06] [INFO]   -> Found value: 2026-03-01 17:37:03
[2026-03-02 13:05:06] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 17:37:03"
[2026-03-02 13:05:06] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:05:06] [INFO]   -> Found value: 2026-03-01 17:50:49
[2026-03-02 13:05:06] [INFO]   -> Set field 'timeonscene' = "2026-03-01 17:50:49"
[2026-03-02 13:05:06] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:05:06] [INFO]   -> Found value: 2026-03-01 18:28:27
[2026-03-02 13:05:06] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 18:28:27"
[2026-03-02 13:05:06] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:05:06] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:06] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:05:06] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:05:06] [INFO]   -> Found value: 20260022714
[2026-03-02 13:05:06] [INFO]   -> Set field 'policeReportNumber' = "20260022714"
[2026-03-02 13:05:06] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:05:06] [INFO]   -> Found value: [EMS] BIPAP  [03/01/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03/01/26 17:34:48 JDICK] Event spawn...
[2026-03-02 13:05:06] [INFO]   -> Set field 'dispatchNotes' = "[EMS] BIPAP  [03\/01\/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03\/01\/26 17:34:48 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/01\/2026 17:34:16 JDICK] 84 YOF BREATHING  [03\/01\/26 17:34:13 JDICK]]"
[2026-03-02 13:05:06] [INFO]   -> Set field 'cADLog' = "[EMS] BIPAP  [03\/01\/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03\/01\/26 17:34:48 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/01\/2026 17:34:16 JDICK] 84 YOF BREATHING  [03\/01\/26 17:34:13 JDICK]]"
[2026-03-02 13:05:06] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:05:06] [INFO]   -> Found value: SPARTA
[2026-03-02 13:05:06] [INFO]   -> Set field 'incidentLocationCity' = "SPARTA"
[2026-03-02 13:05:06] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:05:06] [INFO]   -> Found value: BLUFF TOP
[2026-03-02 13:05:06] [INFO]   -> Set field 'streetName' = "BLUFF TOP"
[2026-03-02 13:05:06] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:05:06] [INFO]   -> Found value: RD
[2026-03-02 13:05:06] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:05:06] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:05:06] [INFO]   -> Found value: 7601 BLUFF TOP RD
[2026-03-02 13:05:06] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7601 BLUFF TOP RD"
[2026-03-02 13:05:06] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 13:05:06] [INFO] Concatenating street name and type
[2026-03-02 13:05:06] [INFO]   -> Combined street name: BLUFF TOP RD
[2026-03-02 13:05:06] [INFO] Built locationCoordinates from lat/lng: 36.07751,-85.3792
[2026-03-02 13:05:06] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nRESC","incidentInternalId":"2026000570","dispatchRunNumber":"2026000570","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":7601,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38583,"nERISIncidentLatitude":36.07750999999999663714334019459784030914306640625,"nERISIncidentLongitude":-85.379199999999997316990629769861698150634765625,"alarm":"2026-03-01 17:34:16","dispatched":"2026-03-01 17:35:05","enroute":"2026-03-01 17:37:03","onScene":"2026-03-01 17:50:49","cleared":"2026-03-01 18:28:27","inService":"2026-03-01 18:28:27","incidentLocationCross":"PLEASANT RIDGE RD","cADVehicleID":"EN21","timedispatch":"2026-03-01 17:37:00","timeenroutetoscene":"2026-03-01 17:37:03","timeonscene":"2026-03-01 17:50:49","timeunitclear":"2026-03-01 18:28:27","policeReportNumber":"20260022714","dispatchNotes":"[EMS] BIPAP  [03\/01\/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03\/01\/26 17:34:48 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/01\/2026 17:34:16 JDICK] 84 YOF BREATHING  [03\/01\/26 17:34:13 JDICK]]","cADLog":"[EMS] BIPAP  [03\/01\/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03\/01\/26 17:34:48 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/01\/2026 17:34:16 JDICK] 84 YOF BREATHING  [03\/01\/26 17:34:13 JDICK]]","incidentLocationCity":"SPARTA","streetName":"BLUFF TOP RD","incidentAddressTextVersionStreet":"7601 BLUFF TOP RD","locationCoordinates":"36.07751,-85.3792"}
[2026-03-02 13:05:06] [INFO] Number of extracted fields: 28
[2026-03-02 13:05:06] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC'
[2026-03-02 13:05:06] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
RESC', Parsed IDs = ["PCFD","RESC"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-02 13:05:06] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC"]
[2026-03-02 13:05:06] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:05:07] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:05:07] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-02 13:05: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-03-02 13:05:07] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:05:07] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-02 13:05:07] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:05:07] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:05:08] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-02 13:05:08] [INFO] Found existing Dispatch with cADNumber '2026000570', ID: 69a58af73c7d1c4f0 - will update instead of create
[2026-03-02 13:05:08] [INFO] Updated existing Dispatches record with ID: 69a58af73c7d1c4f0
[2026-03-02 13:05:08] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:05:08] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:05:11] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:05:11] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022714_20260302_125758_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:05:11] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:05:11] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022714_20260302_125758_2.XML
[2026-03-02 13:05:11] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022714_20260302_125758_2.XML for user: 68f1466aed072ad4a
[2026-03-02 13:05:11] [INFO] File size: 6533 bytes
[2026-03-02 13:05:12] [INFO] Created FTPFiles record with ID: 69a58b083ef6452c4
[2026-03-02 13:05:12] [INFO] About to extract fields from XML. File size: 6533 bytes
[2026-03-02 13:05:12] [INFO] Number of mappings: 28
[2026-03-02 13:05:12] [INFO] Starting XML parsing. Content length: 6533
[2026-03-02 13:05:12] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:05:12] [INFO] Processing 28 field mappings
[2026-03-02 13:05:12] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:05:12] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:05:12] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:05:12] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-02 13:05:12] [INFO]   -> Found value: PCFD
RESC
[2026-03-02 13:05:12] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC"
[2026-03-02 13:05:12] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:05:12] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:05:12] [INFO]   -> Found value: 2026000570
[2026-03-02 13:05:12] [INFO]   -> Set field 'incidentInternalId' = "2026000570"
[2026-03-02 13:05:12] [INFO]   -> Set field 'dispatchRunNumber' = "2026000570"
[2026-03-02 13:05:12] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:05:12] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-02 13:05:12] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-02 13:05:12] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:05:12] [INFO]   -> Found value: 7601
[2026-03-02 13:05:12] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7601
[2026-03-02 13:05:12] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:05:12] [INFO]   -> Found value: TN
[2026-03-02 13:05:12] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:05:12] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:05:12] [INFO]   -> Found value: 38583
[2026-03-02 13:05:12] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38583
[2026-03-02 13:05:12] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:05:12] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:12] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:05:12] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:12] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:05:12] [INFO]   -> Found value: 36.07751
[2026-03-02 13:05:12] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.07750999999999663714334019459784030914306640625
[2026-03-02 13:05:12] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:05:12] [INFO]   -> Found value: -85.37920
[2026-03-02 13:05:12] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.379199999999997316990629769861698150634765625
[2026-03-02 13:05:12] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:05:12] [INFO]   -> Found value: 2026-03-01 17:34:16
[2026-03-02 13:05:12] [INFO]   -> Set field 'alarm' = "2026-03-01 17:34:16"
[2026-03-02 13:05:12] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:05:12] [INFO]   -> Found value: 2026-03-01 17:35:05
[2026-03-02 13:05:12] [INFO]   -> Set field 'dispatched' = "2026-03-01 17:35:05"
[2026-03-02 13:05:12] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:05:12] [INFO]   -> Found value: 2026-03-01 17:37:03
[2026-03-02 13:05:12] [INFO]   -> Set field 'enroute' = "2026-03-01 17:37:03"
[2026-03-02 13:05:12] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:05:12] [INFO]   -> Found value: 2026-03-01 17:50:49
[2026-03-02 13:05:12] [INFO]   -> Set field 'onScene' = "2026-03-01 17:50:49"
[2026-03-02 13:05:12] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:05:12] [INFO]   -> Found value: 2026-03-01 18:28:27
[2026-03-02 13:05:12] [INFO]   -> Set field 'cleared' = "2026-03-01 18:28:27"
[2026-03-02 13:05:12] [INFO]   -> Set field 'inService' = "2026-03-01 18:28:27"
[2026-03-02 13:05:12] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:05:12] [INFO]   -> Found value: PLEASANT RIDGE RD
[2026-03-02 13:05:12] [INFO]   -> Set field 'incidentLocationCross' = "PLEASANT RIDGE RD"
[2026-03-02 13:05:12] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:05:12] [INFO]   -> Found value: EN21
[2026-03-02 13:05:12] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-02 13:05:12] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:05:12] [INFO]   -> Found value: 2026-03-01 17:37:00
[2026-03-02 13:05:12] [INFO]   -> Set field 'timedispatch' = "2026-03-01 17:37:00"
[2026-03-02 13:05:12] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:05:12] [INFO]   -> Found value: 2026-03-01 17:37:03
[2026-03-02 13:05:12] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 17:37:03"
[2026-03-02 13:05:12] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:05:12] [INFO]   -> Found value: 2026-03-01 17:50:49
[2026-03-02 13:05:12] [INFO]   -> Set field 'timeonscene' = "2026-03-01 17:50:49"
[2026-03-02 13:05:12] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:05:12] [INFO]   -> Found value: 2026-03-01 18:28:27
[2026-03-02 13:05:12] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 18:28:27"
[2026-03-02 13:05:12] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:05:12] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:12] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:05:12] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:05:12] [INFO]   -> Found value: 20260022714
[2026-03-02 13:05:12] [INFO]   -> Set field 'policeReportNumber' = "20260022714"
[2026-03-02 13:05:12] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:05:12] [INFO]   -> Found value: [EMS] BIPAP  [03/01/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03/01/26 17:34:48 JDICK] Event spawn...
[2026-03-02 13:05:12] [INFO]   -> Set field 'dispatchNotes' = "[EMS] BIPAP  [03\/01\/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03\/01\/26 17:34:48 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/01\/2026 17:34:16 JDICK] 84 YOF BREATHING  [03\/01\/26 17:34:13 JDICK]]"
[2026-03-02 13:05:12] [INFO]   -> Set field 'cADLog' = "[EMS] BIPAP  [03\/01\/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03\/01\/26 17:34:48 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/01\/2026 17:34:16 JDICK] 84 YOF BREATHING  [03\/01\/26 17:34:13 JDICK]]"
[2026-03-02 13:05:12] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:05:12] [INFO]   -> Found value: SPARTA
[2026-03-02 13:05:12] [INFO]   -> Set field 'incidentLocationCity' = "SPARTA"
[2026-03-02 13:05:12] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:05:12] [INFO]   -> Found value: BLUFF TOP
[2026-03-02 13:05:12] [INFO]   -> Set field 'streetName' = "BLUFF TOP"
[2026-03-02 13:05:12] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:05:12] [INFO]   -> Found value: RD
[2026-03-02 13:05:12] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:05:12] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:05:12] [INFO]   -> Found value: 7601 BLUFF TOP RD
[2026-03-02 13:05:12] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7601 BLUFF TOP RD"
[2026-03-02 13:05:12] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 13:05:12] [INFO] Concatenating street name and type
[2026-03-02 13:05:12] [INFO]   -> Combined street name: BLUFF TOP RD
[2026-03-02 13:05:12] [INFO] Built locationCoordinates from lat/lng: 36.07751,-85.3792
[2026-03-02 13:05:12] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nRESC","incidentInternalId":"2026000570","dispatchRunNumber":"2026000570","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":7601,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38583,"nERISIncidentLatitude":36.07750999999999663714334019459784030914306640625,"nERISIncidentLongitude":-85.379199999999997316990629769861698150634765625,"alarm":"2026-03-01 17:34:16","dispatched":"2026-03-01 17:35:05","enroute":"2026-03-01 17:37:03","onScene":"2026-03-01 17:50:49","cleared":"2026-03-01 18:28:27","inService":"2026-03-01 18:28:27","incidentLocationCross":"PLEASANT RIDGE RD","cADVehicleID":"EN21","timedispatch":"2026-03-01 17:37:00","timeenroutetoscene":"2026-03-01 17:37:03","timeonscene":"2026-03-01 17:50:49","timeunitclear":"2026-03-01 18:28:27","policeReportNumber":"20260022714","dispatchNotes":"[EMS] BIPAP  [03\/01\/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03\/01\/26 17:34:48 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/01\/2026 17:34:16 JDICK] 84 YOF BREATHING  [03\/01\/26 17:34:13 JDICK]]","cADLog":"[EMS] BIPAP  [03\/01\/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03\/01\/26 17:34:48 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/01\/2026 17:34:16 JDICK] 84 YOF BREATHING  [03\/01\/26 17:34:13 JDICK]]","incidentLocationCity":"SPARTA","streetName":"BLUFF TOP RD","incidentAddressTextVersionStreet":"7601 BLUFF TOP RD","locationCoordinates":"36.07751,-85.3792"}
[2026-03-02 13:05:12] [INFO] Number of extracted fields: 28
[2026-03-02 13:05:12] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC'
[2026-03-02 13:05:12] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
RESC', Parsed IDs = ["PCFD","RESC"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-02 13:05:12] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC"]
[2026-03-02 13:05:12] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:05:12] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:05:12] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-02 13:05:12] [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-03-02 13:05:12] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:05:12] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-02 13:05:12] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:05:12] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:05:12] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-02 13:05:12] [INFO] Found existing Dispatch with cADNumber '2026000570', ID: 69a58af73c7d1c4f0 - will update instead of create
[2026-03-02 13:05:13] [INFO] Updated existing Dispatches record with ID: 69a58af73c7d1c4f0
[2026-03-02 13:05:13] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:05:13] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:05:16] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:05:16] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022714_20260302_125758_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:05:16] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:05:16] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022714_20260302_125759.XML
[2026-03-02 13:05:16] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022714_20260302_125759.XML for user: 68f1466aed072ad4a
[2026-03-02 13:05:16] [INFO] File size: 6533 bytes
[2026-03-02 13:05:17] [INFO] Created FTPFiles record with ID: 69a58b0d0bbdf2cfc
[2026-03-02 13:05:17] [INFO] About to extract fields from XML. File size: 6533 bytes
[2026-03-02 13:05:17] [INFO] Number of mappings: 28
[2026-03-02 13:05:17] [INFO] Starting XML parsing. Content length: 6533
[2026-03-02 13:05:17] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:05:17] [INFO] Processing 28 field mappings
[2026-03-02 13:05:17] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:05:17] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:05:17] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:05:17] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-02 13:05:17] [INFO]   -> Found value: PCFD
RESC
[2026-03-02 13:05:17] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC"
[2026-03-02 13:05:17] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:05:17] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:05:17] [INFO]   -> Found value: 2026000570
[2026-03-02 13:05:17] [INFO]   -> Set field 'incidentInternalId' = "2026000570"
[2026-03-02 13:05:17] [INFO]   -> Set field 'dispatchRunNumber' = "2026000570"
[2026-03-02 13:05:17] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:05:17] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-02 13:05:17] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-02 13:05:17] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:05:17] [INFO]   -> Found value: 7601
[2026-03-02 13:05:17] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7601
[2026-03-02 13:05:17] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:05:17] [INFO]   -> Found value: TN
[2026-03-02 13:05:17] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:05:17] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:05:17] [INFO]   -> Found value: 38583
[2026-03-02 13:05:17] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38583
[2026-03-02 13:05:17] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:05:17] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:17] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:05:17] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:17] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:05:17] [INFO]   -> Found value: 36.07751
[2026-03-02 13:05:17] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.07750999999999663714334019459784030914306640625
[2026-03-02 13:05:17] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:05:17] [INFO]   -> Found value: -85.37920
[2026-03-02 13:05:17] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.379199999999997316990629769861698150634765625
[2026-03-02 13:05:17] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:05:17] [INFO]   -> Found value: 2026-03-01 17:34:16
[2026-03-02 13:05:17] [INFO]   -> Set field 'alarm' = "2026-03-01 17:34:16"
[2026-03-02 13:05:17] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:05:17] [INFO]   -> Found value: 2026-03-01 17:35:05
[2026-03-02 13:05:17] [INFO]   -> Set field 'dispatched' = "2026-03-01 17:35:05"
[2026-03-02 13:05:17] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:05:17] [INFO]   -> Found value: 2026-03-01 17:37:03
[2026-03-02 13:05:17] [INFO]   -> Set field 'enroute' = "2026-03-01 17:37:03"
[2026-03-02 13:05:17] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:05:17] [INFO]   -> Found value: 2026-03-01 17:50:49
[2026-03-02 13:05:17] [INFO]   -> Set field 'onScene' = "2026-03-01 17:50:49"
[2026-03-02 13:05:17] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:05:17] [INFO]   -> Found value: 2026-03-01 18:28:27
[2026-03-02 13:05:17] [INFO]   -> Set field 'cleared' = "2026-03-01 18:28:27"
[2026-03-02 13:05:17] [INFO]   -> Set field 'inService' = "2026-03-01 18:28:27"
[2026-03-02 13:05:17] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:05:17] [INFO]   -> Found value: PLEASANT RIDGE RD
[2026-03-02 13:05:17] [INFO]   -> Set field 'incidentLocationCross' = "PLEASANT RIDGE RD"
[2026-03-02 13:05:17] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:05:17] [INFO]   -> Found value: EN21
[2026-03-02 13:05:17] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-02 13:05:17] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:05:17] [INFO]   -> Found value: 2026-03-01 17:37:00
[2026-03-02 13:05:17] [INFO]   -> Set field 'timedispatch' = "2026-03-01 17:37:00"
[2026-03-02 13:05:17] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:05:17] [INFO]   -> Found value: 2026-03-01 17:37:03
[2026-03-02 13:05:17] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 17:37:03"
[2026-03-02 13:05:17] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:05:17] [INFO]   -> Found value: 2026-03-01 17:50:49
[2026-03-02 13:05:17] [INFO]   -> Set field 'timeonscene' = "2026-03-01 17:50:49"
[2026-03-02 13:05:17] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:05:17] [INFO]   -> Found value: 2026-03-01 18:28:27
[2026-03-02 13:05:17] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 18:28:27"
[2026-03-02 13:05:17] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:05:17] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:17] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:05:17] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:05:17] [INFO]   -> Found value: 20260022714
[2026-03-02 13:05:17] [INFO]   -> Set field 'policeReportNumber' = "20260022714"
[2026-03-02 13:05:17] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:05:17] [INFO]   -> Found value: [EMS] BIPAP  [03/01/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03/01/26 17:34:48 JDICK] Event spawn...
[2026-03-02 13:05:17] [INFO]   -> Set field 'dispatchNotes' = "[EMS] BIPAP  [03\/01\/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03\/01\/26 17:34:48 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/01\/2026 17:34:16 JDICK] 84 YOF BREATHING  [03\/01\/26 17:34:13 JDICK]]"
[2026-03-02 13:05:17] [INFO]   -> Set field 'cADLog' = "[EMS] BIPAP  [03\/01\/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03\/01\/26 17:34:48 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/01\/2026 17:34:16 JDICK] 84 YOF BREATHING  [03\/01\/26 17:34:13 JDICK]]"
[2026-03-02 13:05:17] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:05:17] [INFO]   -> Found value: SPARTA
[2026-03-02 13:05:17] [INFO]   -> Set field 'incidentLocationCity' = "SPARTA"
[2026-03-02 13:05:17] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:05:17] [INFO]   -> Found value: BLUFF TOP
[2026-03-02 13:05:17] [INFO]   -> Set field 'streetName' = "BLUFF TOP"
[2026-03-02 13:05:17] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:05:17] [INFO]   -> Found value: RD
[2026-03-02 13:05:17] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:05:17] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:05:17] [INFO]   -> Found value: 7601 BLUFF TOP RD
[2026-03-02 13:05:17] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7601 BLUFF TOP RD"
[2026-03-02 13:05:17] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 13:05:17] [INFO] Concatenating street name and type
[2026-03-02 13:05:17] [INFO]   -> Combined street name: BLUFF TOP RD
[2026-03-02 13:05:17] [INFO] Built locationCoordinates from lat/lng: 36.07751,-85.3792
[2026-03-02 13:05:17] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nRESC","incidentInternalId":"2026000570","dispatchRunNumber":"2026000570","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":7601,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38583,"nERISIncidentLatitude":36.07750999999999663714334019459784030914306640625,"nERISIncidentLongitude":-85.379199999999997316990629769861698150634765625,"alarm":"2026-03-01 17:34:16","dispatched":"2026-03-01 17:35:05","enroute":"2026-03-01 17:37:03","onScene":"2026-03-01 17:50:49","cleared":"2026-03-01 18:28:27","inService":"2026-03-01 18:28:27","incidentLocationCross":"PLEASANT RIDGE RD","cADVehicleID":"EN21","timedispatch":"2026-03-01 17:37:00","timeenroutetoscene":"2026-03-01 17:37:03","timeonscene":"2026-03-01 17:50:49","timeunitclear":"2026-03-01 18:28:27","policeReportNumber":"20260022714","dispatchNotes":"[EMS] BIPAP  [03\/01\/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03\/01\/26 17:34:48 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/01\/2026 17:34:16 JDICK] 84 YOF BREATHING  [03\/01\/26 17:34:13 JDICK]]","cADLog":"[EMS] BIPAP  [03\/01\/26 18:21:05 EALMENDAREZ] [EMS] O2 IN 80`S  [03\/01\/26 17:34:48 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/01\/2026 17:34:16 JDICK] 84 YOF BREATHING  [03\/01\/26 17:34:13 JDICK]]","incidentLocationCity":"SPARTA","streetName":"BLUFF TOP RD","incidentAddressTextVersionStreet":"7601 BLUFF TOP RD","locationCoordinates":"36.07751,-85.3792"}
[2026-03-02 13:05:17] [INFO] Number of extracted fields: 28
[2026-03-02 13:05:17] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC'
[2026-03-02 13:05:17] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
RESC', Parsed IDs = ["PCFD","RESC"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-02 13:05:17] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC"]
[2026-03-02 13:05:17] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:05:17] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:05:17] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-02 13:05: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-03-02 13:05:17] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:05:17] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-02 13:05:17] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:05:17] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:05:17] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-02 13:05:17] [INFO] Found existing Dispatch with cADNumber '2026000570', ID: 69a58af73c7d1c4f0 - will update instead of create
[2026-03-02 13:05:17] [INFO] Updated existing Dispatches record with ID: 69a58af73c7d1c4f0
[2026-03-02 13:05:17] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:05:17] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:05: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-03-02 13:05:21] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022714_20260302_125759.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:05:21] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:05:21] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022720_20260302_125800.XML
[2026-03-02 13:05:21] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022720_20260302_125800.XML for user: 68f1466aed072ad4a
[2026-03-02 13:05:21] [INFO] File size: 6186 bytes
[2026-03-02 13:05:21] [INFO] Created FTPFiles record with ID: 69a58b11b505aa1d6
[2026-03-02 13:05:21] [INFO] About to extract fields from XML. File size: 6186 bytes
[2026-03-02 13:05:21] [INFO] Number of mappings: 28
[2026-03-02 13:05:21] [INFO] Starting XML parsing. Content length: 6186
[2026-03-02 13:05:21] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:05:21] [INFO] Processing 28 field mappings
[2026-03-02 13:05:21] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:05:21] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:05:21] [INFO]   -> Found value: PCFD
[2026-03-02 13:05:21] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:05:21] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:05:21] [INFO]   -> Found value: 2026000571
[2026-03-02 13:05:21] [INFO]   -> Set field 'incidentInternalId' = "2026000571"
[2026-03-02 13:05:21] [INFO]   -> Set field 'dispatchRunNumber' = "2026000571"
[2026-03-02 13:05:21] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:05:21] [INFO]   -> Found value: NATURAL GAS LEAK
[2026-03-02 13:05:21] [INFO]   -> Set field 'incidentTypeValue1' = "NATURAL GAS LEAK"
[2026-03-02 13:05:21] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:05:21] [INFO]   -> Found value: 3582
[2026-03-02 13:05:21] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3582
[2026-03-02 13:05:21] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:05:21] [INFO]   -> Found value: TN
[2026-03-02 13:05:21] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:05:21] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:05:21] [INFO]   -> Found value: 38506
[2026-03-02 13:05:21] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:05:21] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:05:21] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:21] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:05:21] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:21] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:05:21] [INFO]   -> Found value: 36.11066
[2026-03-02 13:05:21] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.11066000000000286718204733915627002716064453125
[2026-03-02 13:05:21] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:05:21] [INFO]   -> Found value: -85.58164
[2026-03-02 13:05:21] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5816399999999930514604784548282623291015625
[2026-03-02 13:05:21] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:05:21] [INFO]   -> Found value: 2026-03-01 17:49:29
[2026-03-02 13:05:21] [INFO]   -> Set field 'alarm' = "2026-03-01 17:49:29"
[2026-03-02 13:05:21] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:05:21] [INFO]   -> Found value: 2026-03-01 17:51:47
[2026-03-02 13:05:21] [INFO]   -> Set field 'dispatched' = "2026-03-01 17:51:47"
[2026-03-02 13:05:21] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:05:21] [INFO]   -> Found value: 2026-03-01 17:54:25
[2026-03-02 13:05:21] [INFO]   -> Set field 'enroute' = "2026-03-01 17:54:25"
[2026-03-02 13:05:21] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:05:21] [INFO]   -> Found value: 2026-03-01 18:05:19
[2026-03-02 13:05:21] [INFO]   -> Set field 'onScene' = "2026-03-01 18:05:19"
[2026-03-02 13:05:21] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:05:21] [INFO]   -> Found value: 2026-03-01 19:01:42
[2026-03-02 13:05:21] [INFO]   -> Set field 'cleared' = "2026-03-01 19:01:42"
[2026-03-02 13:05:21] [INFO]   -> Set field 'inService' = "2026-03-01 19:01:42"
[2026-03-02 13:05:21] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:05:21] [INFO]   -> Found value: /BENNETT RD
[2026-03-02 13:05:21] [INFO]   -> Set field 'incidentLocationCross' = "\/BENNETT RD"
[2026-03-02 13:05:21] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:05:21] [INFO]   -> Found value: EN11
[2026-03-02 13:05:21] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 13:05:21] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:05:21] [INFO]   -> Found value: 2026-03-01 17:54:25
[2026-03-02 13:05:21] [INFO]   -> Set field 'timedispatch' = "2026-03-01 17:54:25"
[2026-03-02 13:05:21] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:05:21] [INFO]   -> Found value: 2026-03-01 17:54:25
[2026-03-02 13:05:21] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 17:54:25"
[2026-03-02 13:05:21] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:05:21] [INFO]   -> Found value: 2026-03-01 18:05:19
[2026-03-02 13:05:21] [INFO]   -> Set field 'timeonscene' = "2026-03-01 18:05:19"
[2026-03-02 13:05:21] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:05:21] [INFO]   -> Found value: 2026-03-01 19:01:42
[2026-03-02 13:05:21] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 19:01:42"
[2026-03-02 13:05:21] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:05:21] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:21] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:05:21] [INFO]   -> Found value: 20260022720
[2026-03-02 13:05:21] [INFO]   -> Set field 'policeReportNumber' = "20260022720"
[2026-03-02 13:05:21] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:05:21] [INFO]   -> Found value: MID TENN GAS ON SCENE  [03/01/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03/01/26 18:17:3...
[2026-03-02 13:05:21] [INFO]   -> Set field 'dispatchNotes' = "MID TENN GAS ON SCENE  [03\/01\/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03\/01\/26 18:17:36 JDICK] WAS OPEN HOUSE THERE TODAY  [03\/01\/26 17:53:10 JDICK] VACANT HOUSE  [03\/01\/26 17:52:24 JDICK] AT THE RESIDENCE  [03\/01\/26 17:52:03 JDICK] SMELL OF NATURAL GAS  [03\/01\/26 17:50:19 JDICK]]"
[2026-03-02 13:05:21] [INFO]   -> Set field 'cADLog' = "MID TENN GAS ON SCENE  [03\/01\/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03\/01\/26 18:17:36 JDICK] WAS OPEN HOUSE THERE TODAY  [03\/01\/26 17:53:10 JDICK] VACANT HOUSE  [03\/01\/26 17:52:24 JDICK] AT THE RESIDENCE  [03\/01\/26 17:52:03 JDICK] SMELL OF NATURAL GAS  [03\/01\/26 17:50:19 JDICK]]"
[2026-03-02 13:05:21] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:05:21] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:05:21] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:05:21] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:05:21] [INFO]   -> Found value: SOUTH POINTE
[2026-03-02 13:05:21] [INFO]   -> Set field 'streetName' = "SOUTH POINTE"
[2026-03-02 13:05:21] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:05:21] [INFO]   -> Found value: RD
[2026-03-02 13:05:21] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:05:21] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:05:21] [INFO]   -> Found value: 3582 SOUTH POINTE RD
[2026-03-02 13:05:21] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3582 SOUTH POINTE RD"
[2026-03-02 13:05:21] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 13:05:21] [INFO] Concatenating street name and type
[2026-03-02 13:05:21] [INFO]   -> Combined street name: SOUTH POINTE RD
[2026-03-02 13:05:21] [INFO] Built locationCoordinates from lat/lng: 36.11066,-85.58164
[2026-03-02 13:05:21] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000571","dispatchRunNumber":"2026000571","incidentTypeValue1":"NATURAL GAS LEAK","incidentLocationStreetNumber":3582,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.11066000000000286718204733915627002716064453125,"nERISIncidentLongitude":-85.5816399999999930514604784548282623291015625,"alarm":"2026-03-01 17:49:29","dispatched":"2026-03-01 17:51:47","enroute":"2026-03-01 17:54:25","onScene":"2026-03-01 18:05:19","cleared":"2026-03-01 19:01:42","inService":"2026-03-01 19:01:42","incidentLocationCross":"\/BENNETT RD","cADVehicleID":"EN11","timedispatch":"2026-03-01 17:54:25","timeenroutetoscene":"2026-03-01 17:54:25","timeonscene":"2026-03-01 18:05:19","timeunitclear":"2026-03-01 19:01:42","policeReportNumber":"20260022720","dispatchNotes":"MID TENN GAS ON SCENE  [03\/01\/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03\/01\/26 18:17:36 JDICK] WAS OPEN HOUSE THERE TODAY  [03\/01\/26 17:53:10 JDICK] VACANT HOUSE  [03\/01\/26 17:52:24 JDICK] AT THE RESIDENCE  [03\/01\/26 17:52:03 JDICK] SMELL OF NATURAL GAS  [03\/01\/26 17:50:19 JDICK]]","cADLog":"MID TENN GAS ON SCENE  [03\/01\/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03\/01\/26 18:17:36 JDICK] WAS OPEN HOUSE THERE TODAY  [03\/01\/26 17:53:10 JDICK] VACANT HOUSE  [03\/01\/26 17:52:24 JDICK] AT THE RESIDENCE  [03\/01\/26 17:52:03 JDICK] SMELL OF NATURAL GAS  [03\/01\/26 17:50:19 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"SOUTH POINTE RD","incidentAddressTextVersionStreet":"3582 SOUTH POINTE RD","locationCoordinates":"36.11066,-85.58164"}
[2026-03-02 13:05:21] [INFO] Number of extracted fields: 28
[2026-03-02 13:05:21] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:05:21] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-02 13:05:21] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:05:21] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:05:21] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:05:22] [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-03-02 13:05:22] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:05:22] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:05:22] [INFO] Found existing IncidentTypeMapping with ID: 695276993a4d83287
[2026-03-02 13:05:30] [INFO] Created new Dispatches record with ID: 69a58b12844adc4e1
[2026-03-02 13:05:30] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:05:30] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:05:33] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:05:33] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022720_20260302_125800.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:05:33] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:05:33] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022720_20260302_125800_1.XML
[2026-03-02 13:05:33] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022720_20260302_125800_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:05:33] [INFO] File size: 6186 bytes
[2026-03-02 13:05:33] [INFO] Created FTPFiles record with ID: 69a58b1de6b0362f0
[2026-03-02 13:05:33] [INFO] About to extract fields from XML. File size: 6186 bytes
[2026-03-02 13:05:33] [INFO] Number of mappings: 28
[2026-03-02 13:05:33] [INFO] Starting XML parsing. Content length: 6186
[2026-03-02 13:05:33] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:05:33] [INFO] Processing 28 field mappings
[2026-03-02 13:05:33] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:05:33] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:05:33] [INFO]   -> Found value: PCFD
[2026-03-02 13:05:33] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:05:33] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:05:33] [INFO]   -> Found value: 2026000571
[2026-03-02 13:05:33] [INFO]   -> Set field 'incidentInternalId' = "2026000571"
[2026-03-02 13:05:33] [INFO]   -> Set field 'dispatchRunNumber' = "2026000571"
[2026-03-02 13:05:33] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:05:33] [INFO]   -> Found value: NATURAL GAS LEAK
[2026-03-02 13:05:33] [INFO]   -> Set field 'incidentTypeValue1' = "NATURAL GAS LEAK"
[2026-03-02 13:05:33] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:05:33] [INFO]   -> Found value: 3582
[2026-03-02 13:05:33] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3582
[2026-03-02 13:05:33] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:05:33] [INFO]   -> Found value: TN
[2026-03-02 13:05:33] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:05:33] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:05:33] [INFO]   -> Found value: 38506
[2026-03-02 13:05:33] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:05:33] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:05:33] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:33] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:05:33] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:33] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:05:33] [INFO]   -> Found value: 36.11066
[2026-03-02 13:05:33] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.11066000000000286718204733915627002716064453125
[2026-03-02 13:05:33] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:05:33] [INFO]   -> Found value: -85.58164
[2026-03-02 13:05:33] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5816399999999930514604784548282623291015625
[2026-03-02 13:05:33] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:05:33] [INFO]   -> Found value: 2026-03-01 17:49:29
[2026-03-02 13:05:33] [INFO]   -> Set field 'alarm' = "2026-03-01 17:49:29"
[2026-03-02 13:05:33] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:05:33] [INFO]   -> Found value: 2026-03-01 17:51:47
[2026-03-02 13:05:33] [INFO]   -> Set field 'dispatched' = "2026-03-01 17:51:47"
[2026-03-02 13:05:33] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:05:33] [INFO]   -> Found value: 2026-03-01 17:54:25
[2026-03-02 13:05:33] [INFO]   -> Set field 'enroute' = "2026-03-01 17:54:25"
[2026-03-02 13:05:33] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:05:33] [INFO]   -> Found value: 2026-03-01 18:05:19
[2026-03-02 13:05:33] [INFO]   -> Set field 'onScene' = "2026-03-01 18:05:19"
[2026-03-02 13:05:33] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:05:33] [INFO]   -> Found value: 2026-03-01 19:01:42
[2026-03-02 13:05:33] [INFO]   -> Set field 'cleared' = "2026-03-01 19:01:42"
[2026-03-02 13:05:33] [INFO]   -> Set field 'inService' = "2026-03-01 19:01:42"
[2026-03-02 13:05:33] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:05:33] [INFO]   -> Found value: /BENNETT RD
[2026-03-02 13:05:33] [INFO]   -> Set field 'incidentLocationCross' = "\/BENNETT RD"
[2026-03-02 13:05:33] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:05:33] [INFO]   -> Found value: EN11
[2026-03-02 13:05:33] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 13:05:33] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:05:33] [INFO]   -> Found value: 2026-03-01 17:54:25
[2026-03-02 13:05:33] [INFO]   -> Set field 'timedispatch' = "2026-03-01 17:54:25"
[2026-03-02 13:05:33] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:05:33] [INFO]   -> Found value: 2026-03-01 17:54:25
[2026-03-02 13:05:33] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 17:54:25"
[2026-03-02 13:05:33] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:05:33] [INFO]   -> Found value: 2026-03-01 18:05:19
[2026-03-02 13:05:33] [INFO]   -> Set field 'timeonscene' = "2026-03-01 18:05:19"
[2026-03-02 13:05:33] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:05:33] [INFO]   -> Found value: 2026-03-01 19:01:42
[2026-03-02 13:05:33] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 19:01:42"
[2026-03-02 13:05:33] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:05:33] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:33] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:05:33] [INFO]   -> Found value: 20260022720
[2026-03-02 13:05:33] [INFO]   -> Set field 'policeReportNumber' = "20260022720"
[2026-03-02 13:05:33] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:05:33] [INFO]   -> Found value: MID TENN GAS ON SCENE  [03/01/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03/01/26 18:17:3...
[2026-03-02 13:05:33] [INFO]   -> Set field 'dispatchNotes' = "MID TENN GAS ON SCENE  [03\/01\/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03\/01\/26 18:17:36 JDICK] WAS OPEN HOUSE THERE TODAY  [03\/01\/26 17:53:10 JDICK] VACANT HOUSE  [03\/01\/26 17:52:24 JDICK] AT THE RESIDENCE  [03\/01\/26 17:52:03 JDICK] SMELL OF NATURAL GAS  [03\/01\/26 17:50:19 JDICK]]"
[2026-03-02 13:05:33] [INFO]   -> Set field 'cADLog' = "MID TENN GAS ON SCENE  [03\/01\/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03\/01\/26 18:17:36 JDICK] WAS OPEN HOUSE THERE TODAY  [03\/01\/26 17:53:10 JDICK] VACANT HOUSE  [03\/01\/26 17:52:24 JDICK] AT THE RESIDENCE  [03\/01\/26 17:52:03 JDICK] SMELL OF NATURAL GAS  [03\/01\/26 17:50:19 JDICK]]"
[2026-03-02 13:05:33] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:05:33] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:05:33] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:05:33] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:05:33] [INFO]   -> Found value: SOUTH POINTE
[2026-03-02 13:05:33] [INFO]   -> Set field 'streetName' = "SOUTH POINTE"
[2026-03-02 13:05:33] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:05:33] [INFO]   -> Found value: RD
[2026-03-02 13:05:33] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:05:33] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:05:33] [INFO]   -> Found value: 3582 SOUTH POINTE RD
[2026-03-02 13:05:33] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3582 SOUTH POINTE RD"
[2026-03-02 13:05:33] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 13:05:33] [INFO] Concatenating street name and type
[2026-03-02 13:05:33] [INFO]   -> Combined street name: SOUTH POINTE RD
[2026-03-02 13:05:33] [INFO] Built locationCoordinates from lat/lng: 36.11066,-85.58164
[2026-03-02 13:05:33] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000571","dispatchRunNumber":"2026000571","incidentTypeValue1":"NATURAL GAS LEAK","incidentLocationStreetNumber":3582,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.11066000000000286718204733915627002716064453125,"nERISIncidentLongitude":-85.5816399999999930514604784548282623291015625,"alarm":"2026-03-01 17:49:29","dispatched":"2026-03-01 17:51:47","enroute":"2026-03-01 17:54:25","onScene":"2026-03-01 18:05:19","cleared":"2026-03-01 19:01:42","inService":"2026-03-01 19:01:42","incidentLocationCross":"\/BENNETT RD","cADVehicleID":"EN11","timedispatch":"2026-03-01 17:54:25","timeenroutetoscene":"2026-03-01 17:54:25","timeonscene":"2026-03-01 18:05:19","timeunitclear":"2026-03-01 19:01:42","policeReportNumber":"20260022720","dispatchNotes":"MID TENN GAS ON SCENE  [03\/01\/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03\/01\/26 18:17:36 JDICK] WAS OPEN HOUSE THERE TODAY  [03\/01\/26 17:53:10 JDICK] VACANT HOUSE  [03\/01\/26 17:52:24 JDICK] AT THE RESIDENCE  [03\/01\/26 17:52:03 JDICK] SMELL OF NATURAL GAS  [03\/01\/26 17:50:19 JDICK]]","cADLog":"MID TENN GAS ON SCENE  [03\/01\/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03\/01\/26 18:17:36 JDICK] WAS OPEN HOUSE THERE TODAY  [03\/01\/26 17:53:10 JDICK] VACANT HOUSE  [03\/01\/26 17:52:24 JDICK] AT THE RESIDENCE  [03\/01\/26 17:52:03 JDICK] SMELL OF NATURAL GAS  [03\/01\/26 17:50:19 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"SOUTH POINTE RD","incidentAddressTextVersionStreet":"3582 SOUTH POINTE RD","locationCoordinates":"36.11066,-85.58164"}
[2026-03-02 13:05:33] [INFO] Number of extracted fields: 28
[2026-03-02 13:05:33] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:05:33] [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-03-02 13:05:33] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:05:33] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:05:34] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:05:34] [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-03-02 13:05:34] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:05:34] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:05:34] [INFO] Found existing IncidentTypeMapping with ID: 695276993a4d83287
[2026-03-02 13:05:34] [INFO] Found existing Dispatch with cADNumber '2026000571', ID: 69a58b12844adc4e1 - will update instead of create
[2026-03-02 13:05:34] [INFO] Updated existing Dispatches record with ID: 69a58b12844adc4e1
[2026-03-02 13:05:34] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:05:34] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:05: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-03-02 13:05:38] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022720_20260302_125800_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:05:38] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:05:38] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022720_20260302_125800_2.XML
[2026-03-02 13:05:38] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022720_20260302_125800_2.XML for user: 68f1466aed072ad4a
[2026-03-02 13:05:38] [INFO] File size: 6186 bytes
[2026-03-02 13:05:38] [INFO] Created FTPFiles record with ID: 69a58b2263759d40f
[2026-03-02 13:05:38] [INFO] About to extract fields from XML. File size: 6186 bytes
[2026-03-02 13:05:38] [INFO] Number of mappings: 28
[2026-03-02 13:05:38] [INFO] Starting XML parsing. Content length: 6186
[2026-03-02 13:05:38] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:05:38] [INFO] Processing 28 field mappings
[2026-03-02 13:05:38] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:05:38] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:05:38] [INFO]   -> Found value: PCFD
[2026-03-02 13:05:38] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:05:38] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:05:38] [INFO]   -> Found value: 2026000571
[2026-03-02 13:05:38] [INFO]   -> Set field 'incidentInternalId' = "2026000571"
[2026-03-02 13:05:38] [INFO]   -> Set field 'dispatchRunNumber' = "2026000571"
[2026-03-02 13:05:38] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:05:38] [INFO]   -> Found value: NATURAL GAS LEAK
[2026-03-02 13:05:38] [INFO]   -> Set field 'incidentTypeValue1' = "NATURAL GAS LEAK"
[2026-03-02 13:05:38] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:05:38] [INFO]   -> Found value: 3582
[2026-03-02 13:05:38] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3582
[2026-03-02 13:05:38] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:05:38] [INFO]   -> Found value: TN
[2026-03-02 13:05:38] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:05:38] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:05:38] [INFO]   -> Found value: 38506
[2026-03-02 13:05:38] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:05:38] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:05:38] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:38] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:05:38] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:38] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:05:38] [INFO]   -> Found value: 36.11066
[2026-03-02 13:05:38] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.11066000000000286718204733915627002716064453125
[2026-03-02 13:05:38] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:05:38] [INFO]   -> Found value: -85.58164
[2026-03-02 13:05:38] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5816399999999930514604784548282623291015625
[2026-03-02 13:05:38] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:05:38] [INFO]   -> Found value: 2026-03-01 17:49:29
[2026-03-02 13:05:38] [INFO]   -> Set field 'alarm' = "2026-03-01 17:49:29"
[2026-03-02 13:05:38] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:05:38] [INFO]   -> Found value: 2026-03-01 17:51:47
[2026-03-02 13:05:38] [INFO]   -> Set field 'dispatched' = "2026-03-01 17:51:47"
[2026-03-02 13:05:38] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:05:38] [INFO]   -> Found value: 2026-03-01 17:54:25
[2026-03-02 13:05:38] [INFO]   -> Set field 'enroute' = "2026-03-01 17:54:25"
[2026-03-02 13:05:38] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:05:38] [INFO]   -> Found value: 2026-03-01 18:05:19
[2026-03-02 13:05:38] [INFO]   -> Set field 'onScene' = "2026-03-01 18:05:19"
[2026-03-02 13:05:38] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:05:38] [INFO]   -> Found value: 2026-03-01 19:01:42
[2026-03-02 13:05:38] [INFO]   -> Set field 'cleared' = "2026-03-01 19:01:42"
[2026-03-02 13:05:38] [INFO]   -> Set field 'inService' = "2026-03-01 19:01:42"
[2026-03-02 13:05:38] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:05:38] [INFO]   -> Found value: /BENNETT RD
[2026-03-02 13:05:38] [INFO]   -> Set field 'incidentLocationCross' = "\/BENNETT RD"
[2026-03-02 13:05:38] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:05:38] [INFO]   -> Found value: EN11
[2026-03-02 13:05:38] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 13:05:38] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:05:38] [INFO]   -> Found value: 2026-03-01 17:54:25
[2026-03-02 13:05:38] [INFO]   -> Set field 'timedispatch' = "2026-03-01 17:54:25"
[2026-03-02 13:05:38] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:05:38] [INFO]   -> Found value: 2026-03-01 17:54:25
[2026-03-02 13:05:38] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 17:54:25"
[2026-03-02 13:05:38] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:05:38] [INFO]   -> Found value: 2026-03-01 18:05:19
[2026-03-02 13:05:38] [INFO]   -> Set field 'timeonscene' = "2026-03-01 18:05:19"
[2026-03-02 13:05:38] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:05:38] [INFO]   -> Found value: 2026-03-01 19:01:42
[2026-03-02 13:05:38] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 19:01:42"
[2026-03-02 13:05:38] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:05:38] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:38] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:05:38] [INFO]   -> Found value: 20260022720
[2026-03-02 13:05:38] [INFO]   -> Set field 'policeReportNumber' = "20260022720"
[2026-03-02 13:05:38] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:05:38] [INFO]   -> Found value: MID TENN GAS ON SCENE  [03/01/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03/01/26 18:17:3...
[2026-03-02 13:05:38] [INFO]   -> Set field 'dispatchNotes' = "MID TENN GAS ON SCENE  [03\/01\/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03\/01\/26 18:17:36 JDICK] WAS OPEN HOUSE THERE TODAY  [03\/01\/26 17:53:10 JDICK] VACANT HOUSE  [03\/01\/26 17:52:24 JDICK] AT THE RESIDENCE  [03\/01\/26 17:52:03 JDICK] SMELL OF NATURAL GAS  [03\/01\/26 17:50:19 JDICK]]"
[2026-03-02 13:05:38] [INFO]   -> Set field 'cADLog' = "MID TENN GAS ON SCENE  [03\/01\/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03\/01\/26 18:17:36 JDICK] WAS OPEN HOUSE THERE TODAY  [03\/01\/26 17:53:10 JDICK] VACANT HOUSE  [03\/01\/26 17:52:24 JDICK] AT THE RESIDENCE  [03\/01\/26 17:52:03 JDICK] SMELL OF NATURAL GAS  [03\/01\/26 17:50:19 JDICK]]"
[2026-03-02 13:05:38] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:05:38] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:05:38] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:05:38] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:05:38] [INFO]   -> Found value: SOUTH POINTE
[2026-03-02 13:05:38] [INFO]   -> Set field 'streetName' = "SOUTH POINTE"
[2026-03-02 13:05:38] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:05:38] [INFO]   -> Found value: RD
[2026-03-02 13:05:38] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:05:38] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:05:38] [INFO]   -> Found value: 3582 SOUTH POINTE RD
[2026-03-02 13:05:38] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3582 SOUTH POINTE RD"
[2026-03-02 13:05:38] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 13:05:38] [INFO] Concatenating street name and type
[2026-03-02 13:05:38] [INFO]   -> Combined street name: SOUTH POINTE RD
[2026-03-02 13:05:38] [INFO] Built locationCoordinates from lat/lng: 36.11066,-85.58164
[2026-03-02 13:05:38] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000571","dispatchRunNumber":"2026000571","incidentTypeValue1":"NATURAL GAS LEAK","incidentLocationStreetNumber":3582,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.11066000000000286718204733915627002716064453125,"nERISIncidentLongitude":-85.5816399999999930514604784548282623291015625,"alarm":"2026-03-01 17:49:29","dispatched":"2026-03-01 17:51:47","enroute":"2026-03-01 17:54:25","onScene":"2026-03-01 18:05:19","cleared":"2026-03-01 19:01:42","inService":"2026-03-01 19:01:42","incidentLocationCross":"\/BENNETT RD","cADVehicleID":"EN11","timedispatch":"2026-03-01 17:54:25","timeenroutetoscene":"2026-03-01 17:54:25","timeonscene":"2026-03-01 18:05:19","timeunitclear":"2026-03-01 19:01:42","policeReportNumber":"20260022720","dispatchNotes":"MID TENN GAS ON SCENE  [03\/01\/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03\/01\/26 18:17:36 JDICK] WAS OPEN HOUSE THERE TODAY  [03\/01\/26 17:53:10 JDICK] VACANT HOUSE  [03\/01\/26 17:52:24 JDICK] AT THE RESIDENCE  [03\/01\/26 17:52:03 JDICK] SMELL OF NATURAL GAS  [03\/01\/26 17:50:19 JDICK]]","cADLog":"MID TENN GAS ON SCENE  [03\/01\/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03\/01\/26 18:17:36 JDICK] WAS OPEN HOUSE THERE TODAY  [03\/01\/26 17:53:10 JDICK] VACANT HOUSE  [03\/01\/26 17:52:24 JDICK] AT THE RESIDENCE  [03\/01\/26 17:52:03 JDICK] SMELL OF NATURAL GAS  [03\/01\/26 17:50:19 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"SOUTH POINTE RD","incidentAddressTextVersionStreet":"3582 SOUTH POINTE RD","locationCoordinates":"36.11066,-85.58164"}
[2026-03-02 13:05:38] [INFO] Number of extracted fields: 28
[2026-03-02 13:05:38] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:05:38] [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-03-02 13:05:38] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:05:38] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:05:38] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:05:38] [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-03-02 13:05:38] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:05:38] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:05:38] [INFO] Found existing IncidentTypeMapping with ID: 695276993a4d83287
[2026-03-02 13:05:39] [INFO] Found existing Dispatch with cADNumber '2026000571', ID: 69a58b12844adc4e1 - will update instead of create
[2026-03-02 13:05:39] [INFO] Updated existing Dispatches record with ID: 69a58b12844adc4e1
[2026-03-02 13:05:39] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:05:39] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:05:42] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:05:42] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022720_20260302_125800_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:05:42] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:05:42] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022720_20260302_125800_3.XML
[2026-03-02 13:05:42] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022720_20260302_125800_3.XML for user: 68f1466aed072ad4a
[2026-03-02 13:05:42] [INFO] File size: 6186 bytes
[2026-03-02 13:05:42] [INFO] Created FTPFiles record with ID: 69a58b26c3dcece4c
[2026-03-02 13:05:42] [INFO] About to extract fields from XML. File size: 6186 bytes
[2026-03-02 13:05:42] [INFO] Number of mappings: 28
[2026-03-02 13:05:42] [INFO] Starting XML parsing. Content length: 6186
[2026-03-02 13:05:42] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:05:42] [INFO] Processing 28 field mappings
[2026-03-02 13:05:42] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:05:42] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:05:42] [INFO]   -> Found value: PCFD
[2026-03-02 13:05:42] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:05:42] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:05:42] [INFO]   -> Found value: 2026000571
[2026-03-02 13:05:42] [INFO]   -> Set field 'incidentInternalId' = "2026000571"
[2026-03-02 13:05:42] [INFO]   -> Set field 'dispatchRunNumber' = "2026000571"
[2026-03-02 13:05:42] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:05:42] [INFO]   -> Found value: NATURAL GAS LEAK
[2026-03-02 13:05:42] [INFO]   -> Set field 'incidentTypeValue1' = "NATURAL GAS LEAK"
[2026-03-02 13:05:42] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:05:42] [INFO]   -> Found value: 3582
[2026-03-02 13:05:42] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3582
[2026-03-02 13:05:42] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:05:42] [INFO]   -> Found value: TN
[2026-03-02 13:05:42] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:05:42] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:05:42] [INFO]   -> Found value: 38506
[2026-03-02 13:05:42] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:05:42] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:05:42] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:42] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:05:42] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:42] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:05:42] [INFO]   -> Found value: 36.11066
[2026-03-02 13:05:42] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.11066000000000286718204733915627002716064453125
[2026-03-02 13:05:42] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:05:42] [INFO]   -> Found value: -85.58164
[2026-03-02 13:05:42] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5816399999999930514604784548282623291015625
[2026-03-02 13:05:42] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:05:42] [INFO]   -> Found value: 2026-03-01 17:49:29
[2026-03-02 13:05:42] [INFO]   -> Set field 'alarm' = "2026-03-01 17:49:29"
[2026-03-02 13:05:42] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:05:42] [INFO]   -> Found value: 2026-03-01 17:51:47
[2026-03-02 13:05:42] [INFO]   -> Set field 'dispatched' = "2026-03-01 17:51:47"
[2026-03-02 13:05:42] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:05:42] [INFO]   -> Found value: 2026-03-01 17:54:25
[2026-03-02 13:05:42] [INFO]   -> Set field 'enroute' = "2026-03-01 17:54:25"
[2026-03-02 13:05:42] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:05:42] [INFO]   -> Found value: 2026-03-01 18:05:19
[2026-03-02 13:05:42] [INFO]   -> Set field 'onScene' = "2026-03-01 18:05:19"
[2026-03-02 13:05:42] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:05:42] [INFO]   -> Found value: 2026-03-01 19:01:42
[2026-03-02 13:05:42] [INFO]   -> Set field 'cleared' = "2026-03-01 19:01:42"
[2026-03-02 13:05:42] [INFO]   -> Set field 'inService' = "2026-03-01 19:01:42"
[2026-03-02 13:05:42] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:05:42] [INFO]   -> Found value: /BENNETT RD
[2026-03-02 13:05:42] [INFO]   -> Set field 'incidentLocationCross' = "\/BENNETT RD"
[2026-03-02 13:05:42] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:05:42] [INFO]   -> Found value: EN11
[2026-03-02 13:05:42] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 13:05:42] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:05:42] [INFO]   -> Found value: 2026-03-01 17:54:25
[2026-03-02 13:05:42] [INFO]   -> Set field 'timedispatch' = "2026-03-01 17:54:25"
[2026-03-02 13:05:42] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:05:42] [INFO]   -> Found value: 2026-03-01 17:54:25
[2026-03-02 13:05:42] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 17:54:25"
[2026-03-02 13:05:42] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:05:42] [INFO]   -> Found value: 2026-03-01 18:05:19
[2026-03-02 13:05:42] [INFO]   -> Set field 'timeonscene' = "2026-03-01 18:05:19"
[2026-03-02 13:05:42] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:05:42] [INFO]   -> Found value: 2026-03-01 19:01:42
[2026-03-02 13:05:42] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 19:01:42"
[2026-03-02 13:05:42] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:05:42] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:42] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:05:42] [INFO]   -> Found value: 20260022720
[2026-03-02 13:05:42] [INFO]   -> Set field 'policeReportNumber' = "20260022720"
[2026-03-02 13:05:42] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:05:42] [INFO]   -> Found value: MID TENN GAS ON SCENE  [03/01/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03/01/26 18:17:3...
[2026-03-02 13:05:42] [INFO]   -> Set field 'dispatchNotes' = "MID TENN GAS ON SCENE  [03\/01\/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03\/01\/26 18:17:36 JDICK] WAS OPEN HOUSE THERE TODAY  [03\/01\/26 17:53:10 JDICK] VACANT HOUSE  [03\/01\/26 17:52:24 JDICK] AT THE RESIDENCE  [03\/01\/26 17:52:03 JDICK] SMELL OF NATURAL GAS  [03\/01\/26 17:50:19 JDICK]]"
[2026-03-02 13:05:42] [INFO]   -> Set field 'cADLog' = "MID TENN GAS ON SCENE  [03\/01\/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03\/01\/26 18:17:36 JDICK] WAS OPEN HOUSE THERE TODAY  [03\/01\/26 17:53:10 JDICK] VACANT HOUSE  [03\/01\/26 17:52:24 JDICK] AT THE RESIDENCE  [03\/01\/26 17:52:03 JDICK] SMELL OF NATURAL GAS  [03\/01\/26 17:50:19 JDICK]]"
[2026-03-02 13:05:42] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:05:42] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:05:42] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:05:42] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:05:42] [INFO]   -> Found value: SOUTH POINTE
[2026-03-02 13:05:42] [INFO]   -> Set field 'streetName' = "SOUTH POINTE"
[2026-03-02 13:05:42] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:05:42] [INFO]   -> Found value: RD
[2026-03-02 13:05:42] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:05:42] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:05:42] [INFO]   -> Found value: 3582 SOUTH POINTE RD
[2026-03-02 13:05:42] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3582 SOUTH POINTE RD"
[2026-03-02 13:05:42] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 13:05:42] [INFO] Concatenating street name and type
[2026-03-02 13:05:42] [INFO]   -> Combined street name: SOUTH POINTE RD
[2026-03-02 13:05:42] [INFO] Built locationCoordinates from lat/lng: 36.11066,-85.58164
[2026-03-02 13:05:42] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000571","dispatchRunNumber":"2026000571","incidentTypeValue1":"NATURAL GAS LEAK","incidentLocationStreetNumber":3582,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.11066000000000286718204733915627002716064453125,"nERISIncidentLongitude":-85.5816399999999930514604784548282623291015625,"alarm":"2026-03-01 17:49:29","dispatched":"2026-03-01 17:51:47","enroute":"2026-03-01 17:54:25","onScene":"2026-03-01 18:05:19","cleared":"2026-03-01 19:01:42","inService":"2026-03-01 19:01:42","incidentLocationCross":"\/BENNETT RD","cADVehicleID":"EN11","timedispatch":"2026-03-01 17:54:25","timeenroutetoscene":"2026-03-01 17:54:25","timeonscene":"2026-03-01 18:05:19","timeunitclear":"2026-03-01 19:01:42","policeReportNumber":"20260022720","dispatchNotes":"MID TENN GAS ON SCENE  [03\/01\/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03\/01\/26 18:17:36 JDICK] WAS OPEN HOUSE THERE TODAY  [03\/01\/26 17:53:10 JDICK] VACANT HOUSE  [03\/01\/26 17:52:24 JDICK] AT THE RESIDENCE  [03\/01\/26 17:52:03 JDICK] SMELL OF NATURAL GAS  [03\/01\/26 17:50:19 JDICK]]","cADLog":"MID TENN GAS ON SCENE  [03\/01\/26 18:38:29 JDICK] MIDDLE TENN NATURAL GAS NOTIFIED  [03\/01\/26 18:17:36 JDICK] WAS OPEN HOUSE THERE TODAY  [03\/01\/26 17:53:10 JDICK] VACANT HOUSE  [03\/01\/26 17:52:24 JDICK] AT THE RESIDENCE  [03\/01\/26 17:52:03 JDICK] SMELL OF NATURAL GAS  [03\/01\/26 17:50:19 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"SOUTH POINTE RD","incidentAddressTextVersionStreet":"3582 SOUTH POINTE RD","locationCoordinates":"36.11066,-85.58164"}
[2026-03-02 13:05:42] [INFO] Number of extracted fields: 28
[2026-03-02 13:05:42] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:05:42] [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-03-02 13:05:42] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:05:42] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:05:42] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:05:43] [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-03-02 13:05:43] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:05:43] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:05:43] [INFO] Found existing IncidentTypeMapping with ID: 695276993a4d83287
[2026-03-02 13:05:43] [INFO] Found existing Dispatch with cADNumber '2026000571', ID: 69a58b12844adc4e1 - will update instead of create
[2026-03-02 13:05:43] [INFO] Updated existing Dispatches record with ID: 69a58b12844adc4e1
[2026-03-02 13:05:43] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:05:43] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:05:46] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:05:46] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022720_20260302_125800_3.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:05:46] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:05:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022740_20260302_125802.XML
[2026-03-02 13:05:46] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022740_20260302_125802.XML for user: 68f1466aed072ad4a
[2026-03-02 13:05:46] [INFO] File size: 6527 bytes
[2026-03-02 13:05:47] [INFO] Created FTPFiles record with ID: 69a58b2b45f9183f3
[2026-03-02 13:05:47] [INFO] About to extract fields from XML. File size: 6527 bytes
[2026-03-02 13:05:47] [INFO] Number of mappings: 28
[2026-03-02 13:05:47] [INFO] Starting XML parsing. Content length: 6527
[2026-03-02 13:05:47] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:05:47] [INFO] Processing 28 field mappings
[2026-03-02 13:05:47] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:05:47] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:05:47] [INFO]   -> Found value: PCFD
[2026-03-02 13:05:47] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:05:47] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:05:47] [INFO]   -> Found value: 2026000572
[2026-03-02 13:05:47] [INFO]   -> Set field 'incidentInternalId' = "2026000572"
[2026-03-02 13:05:47] [INFO]   -> Set field 'dispatchRunNumber' = "2026000572"
[2026-03-02 13:05:47] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:05:47] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-02 13:05:47] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-02 13:05:47] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:05:47] [INFO]   -> Found value: 15680
[2026-03-02 13:05:47] [INFO]   -> Set field 'incidentLocationStreetNumber' = 15680
[2026-03-02 13:05:47] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:05:47] [INFO]   -> Found value: TN
[2026-03-02 13:05:47] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:05:47] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:05:47] [INFO]   -> Found value: 38548
[2026-03-02 13:05:47] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38548
[2026-03-02 13:05:47] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:05:47] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:47] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:05:47] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:47] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:05:47] [INFO]   -> Found value: 36.15490
[2026-03-02 13:05:47] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.15489999999999781721271574497222900390625
[2026-03-02 13:05:47] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:05:47] [INFO]   -> Found value: -85.79474
[2026-03-02 13:05:47] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.7947400000000044428816181607544422149658203125
[2026-03-02 13:05:47] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:05:47] [INFO]   -> Found value: 2026-03-01 19:14:06
[2026-03-02 13:05:47] [INFO]   -> Set field 'alarm' = "2026-03-01 19:14:06"
[2026-03-02 13:05:47] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:05:47] [INFO]   -> Found value: 2026-03-01 19:14:33
[2026-03-02 13:05:47] [INFO]   -> Set field 'dispatched' = "2026-03-01 19:14:33"
[2026-03-02 13:05:47] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:05:47] [INFO]   -> Found value: 2026-03-01 19:16:52
[2026-03-02 13:05:47] [INFO]   -> Set field 'enroute' = "2026-03-01 19:16:52"
[2026-03-02 13:05:47] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:05:47] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:47] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:05:47] [INFO]   -> Found value: 2026-03-01 19:36:30
[2026-03-02 13:05:47] [INFO]   -> Set field 'cleared' = "2026-03-01 19:36:30"
[2026-03-02 13:05:47] [INFO]   -> Set field 'inService' = "2026-03-01 19:36:30"
[2026-03-02 13:05:47] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:05:47] [INFO]   -> Found value: DENNYS LN/BOYD CEDAR LN
[2026-03-02 13:05:47] [INFO]   -> Set field 'incidentLocationCross' = "DENNYS LN\/BOYD CEDAR LN"
[2026-03-02 13:05:47] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:05:47] [INFO]   -> Found value: PCFR
[2026-03-02 13:05:47] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:05:47] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:05:47] [INFO]   -> Found value: 2026-03-01 19:14:33
[2026-03-02 13:05:47] [INFO]   -> Set field 'timedispatch' = "2026-03-01 19:14:33"
[2026-03-02 13:05:47] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:05:47] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:47] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:05:47] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:47] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:05:47] [INFO]   -> Found value: 2026-03-01 19:16:03
[2026-03-02 13:05:47] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 19:16:03"
[2026-03-02 13:05:47] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:05:47] [INFO]   -> Found value: 2026-03-01 19:16:03
[2026-03-02 13:05:47] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-01 19:16:03"
[2026-03-02 13:05:47] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:05:47] [INFO]   -> Found value: 20260022740
[2026-03-02 13:05:47] [INFO]   -> Set field 'policeReportNumber' = "20260022740"
[2026-03-02 13:05:47] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:05:47] [INFO]   -> Found value: [LAW] {P3345} DE ON SCENE // NOTHING SUS AS OF RIGHT NOW  [03/01/26 19:36:33 DKITCHENS] [EMS] CANCEL...
[2026-03-02 13:05:47] [INFO]   -> Set field 'dispatchNotes' = "[LAW] {P3345} DE ON SCENE \/\/ NOTHING SUS AS OF RIGHT NOW  [03\/01\/26 19:36:33 DKITCHENS] [EMS] CANCEL ANY UNITS NOT ON SCENE  [03\/01\/26 19:35:32 EALMENDAREZ] [EMS] DOA  [03\/01\/26 19:35:24 EALMENDAREZ] [LAW] {P3345} FIRE AND EMS ON SCENE  [03\/01\/26 19:32:39 DKITCHENS] [EMS] FRONT DOOR ENTRANCE  [03\/01\/26 19:15:57 DSWINK] [EMS] GEORGIA BURK IS FEMALES NAME  [03\/01\/26 19:15:45 DSWINK] [EMS] LATE 70S FEMALE  [03\/01\/26 19:14:54 DSWINK] [EMS] UNABLE TO GET HER INTO THE FLOOR TO START CPR  [03\/01\/26 19:14:49 DSWINK] [EMS] LAYING ON THE COUCH DOES NOT THINK SHE IS BREATHING  [03\/01\/26 19:14:25 DSWINK] Event spawned from UNCONSCIOUS.  [03\/01\/2026 19:14:06 DSWINK]"
[2026-03-02 13:05:47] [INFO]   -> Set field 'cADLog' = "[LAW] {P3345} DE ON SCENE \/\/ NOTHING SUS AS OF RIGHT NOW  [03\/01\/26 19:36:33 DKITCHENS] [EMS] CANCEL ANY UNITS NOT ON SCENE  [03\/01\/26 19:35:32 EALMENDAREZ] [EMS] DOA  [03\/01\/26 19:35:24 EALMENDAREZ] [LAW] {P3345} FIRE AND EMS ON SCENE  [03\/01\/26 19:32:39 DKITCHENS] [EMS] FRONT DOOR ENTRANCE  [03\/01\/26 19:15:57 DSWINK] [EMS] GEORGIA BURK IS FEMALES NAME  [03\/01\/26 19:15:45 DSWINK] [EMS] LATE 70S FEMALE  [03\/01\/26 19:14:54 DSWINK] [EMS] UNABLE TO GET HER INTO THE FLOOR TO START CPR  [03\/01\/26 19:14:49 DSWINK] [EMS] LAYING ON THE COUCH DOES NOT THINK SHE IS BREATHING  [03\/01\/26 19:14:25 DSWINK] Event spawned from UNCONSCIOUS.  [03\/01\/2026 19:14:06 DSWINK]"
[2026-03-02 13:05:47] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:05:47] [INFO]   -> Found value: BUFFALO VALLEY
[2026-03-02 13:05:47] [INFO]   -> Set field 'incidentLocationCity' = "BUFFALO VALLEY"
[2026-03-02 13:05:47] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:05:47] [INFO]   -> Found value: ST MARYS
[2026-03-02 13:05:47] [INFO]   -> Set field 'streetName' = "ST MARYS"
[2026-03-02 13:05:47] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:05:47] [INFO]   -> Found value: RD
[2026-03-02 13:05:47] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:05:47] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:05:47] [INFO]   -> Found value: 15680 ST MARYS RD
[2026-03-02 13:05:47] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "15680 ST MARYS RD"
[2026-03-02 13:05:47] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 13:05:47] [INFO] Concatenating street name and type
[2026-03-02 13:05:47] [INFO]   -> Combined street name: ST MARYS RD
[2026-03-02 13:05:47] [INFO] Built locationCoordinates from lat/lng: 36.1549,-85.79474
[2026-03-02 13:05:47] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000572","dispatchRunNumber":"2026000572","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":15680,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38548,"nERISIncidentLatitude":36.15489999999999781721271574497222900390625,"nERISIncidentLongitude":-85.7947400000000044428816181607544422149658203125,"alarm":"2026-03-01 19:14:06","dispatched":"2026-03-01 19:14:33","enroute":"2026-03-01 19:16:52","cleared":"2026-03-01 19:36:30","inService":"2026-03-01 19:36:30","incidentLocationCross":"DENNYS LN\/BOYD CEDAR LN","cADVehicleID":"PCFR","timedispatch":"2026-03-01 19:14:33","timeunitclear":"2026-03-01 19:16:03","timecanceledenroute":"2026-03-01 19:16:03","policeReportNumber":"20260022740","dispatchNotes":"[LAW] {P3345} DE ON SCENE \/\/ NOTHING SUS AS OF RIGHT NOW  [03\/01\/26 19:36:33 DKITCHENS] [EMS] CANCEL ANY UNITS NOT ON SCENE  [03\/01\/26 19:35:32 EALMENDAREZ] [EMS] DOA  [03\/01\/26 19:35:24 EALMENDAREZ] [LAW] {P3345} FIRE AND EMS ON SCENE  [03\/01\/26 19:32:39 DKITCHENS] [EMS] FRONT DOOR ENTRANCE  [03\/01\/26 19:15:57 DSWINK] [EMS] GEORGIA BURK IS FEMALES NAME  [03\/01\/26 19:15:45 DSWINK] [EMS] LATE 70S FEMALE  [03\/01\/26 19:14:54 DSWINK] [EMS] UNABLE TO GET HER INTO THE FLOOR TO START CPR  [03\/01\/26 19:14:49 DSWINK] [EMS] LAYING ON THE COUCH DOES NOT THINK SHE IS BREATHING  [03\/01\/26 19:14:25 DSWINK] Event spawned from UNCONSCIOUS.  [03\/01\/2026 19:14:06 DSWINK]","cADLog":"[LAW] {P3345} DE ON SCENE \/\/ NOTHING SUS AS OF RIGHT NOW  [03\/01\/26 19:36:33 DKITCHENS] [EMS] CANCEL ANY UNITS NOT ON SCENE  [03\/01\/26 19:35:32 EALMENDAREZ] [EMS] DOA  [03\/01\/26 19:35:24 EALMENDAREZ] [LAW] {P3345} FIRE AND EMS ON SCENE  [03\/01\/26 19:32:39 DKITCHENS] [EMS] FRONT DOOR ENTRANCE  [03\/01\/26 19:15:57 DSWINK] [EMS] GEORGIA BURK IS FEMALES NAME  [03\/01\/26 19:15:45 DSWINK] [EMS] LATE 70S FEMALE  [03\/01\/26 19:14:54 DSWINK] [EMS] UNABLE TO GET HER INTO THE FLOOR TO START CPR  [03\/01\/26 19:14:49 DSWINK] [EMS] LAYING ON THE COUCH DOES NOT THINK SHE IS BREATHING  [03\/01\/26 19:14:25 DSWINK] Event spawned from UNCONSCIOUS.  [03\/01\/2026 19:14:06 DSWINK]","incidentLocationCity":"BUFFALO VALLEY","streetName":"ST MARYS RD","incidentAddressTextVersionStreet":"15680 ST MARYS RD","locationCoordinates":"36.1549,-85.79474"}
[2026-03-02 13:05:47] [INFO] Number of extracted fields: 26
[2026-03-02 13:05:47] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:05:47] [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-03-02 13:05:47] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:05:47] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:05:47] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:05: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-03-02 13:05:47] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:05:47] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:05:47] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-02 13:05:55] [INFO] Created new Dispatches record with ID: 69a58b2c11ba12503
[2026-03-02 13:05:55] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:05:55] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:05:58] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:05:58] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022740_20260302_125802.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:05:58] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:05:58] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022740_20260302_125802_1.XML
[2026-03-02 13:05:58] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022740_20260302_125802_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:05:58] [INFO] File size: 6527 bytes
[2026-03-02 13:05:59] [INFO] Created FTPFiles record with ID: 69a58b3731752d226
[2026-03-02 13:05:59] [INFO] About to extract fields from XML. File size: 6527 bytes
[2026-03-02 13:05:59] [INFO] Number of mappings: 28
[2026-03-02 13:05:59] [INFO] Starting XML parsing. Content length: 6527
[2026-03-02 13:05:59] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:05:59] [INFO] Processing 28 field mappings
[2026-03-02 13:05:59] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:05:59] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:05:59] [INFO]   -> Found value: PCFD
[2026-03-02 13:05:59] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:05:59] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:05:59] [INFO]   -> Found value: 2026000572
[2026-03-02 13:05:59] [INFO]   -> Set field 'incidentInternalId' = "2026000572"
[2026-03-02 13:05:59] [INFO]   -> Set field 'dispatchRunNumber' = "2026000572"
[2026-03-02 13:05:59] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:05:59] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-02 13:05:59] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-02 13:05:59] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:05:59] [INFO]   -> Found value: 15680
[2026-03-02 13:05:59] [INFO]   -> Set field 'incidentLocationStreetNumber' = 15680
[2026-03-02 13:05:59] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:05:59] [INFO]   -> Found value: TN
[2026-03-02 13:05:59] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:05:59] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:05:59] [INFO]   -> Found value: 38548
[2026-03-02 13:05:59] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38548
[2026-03-02 13:05:59] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:05:59] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:59] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:05:59] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:59] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:05:59] [INFO]   -> Found value: 36.15490
[2026-03-02 13:05:59] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.15489999999999781721271574497222900390625
[2026-03-02 13:05:59] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:05:59] [INFO]   -> Found value: -85.79474
[2026-03-02 13:05:59] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.7947400000000044428816181607544422149658203125
[2026-03-02 13:05:59] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:05:59] [INFO]   -> Found value: 2026-03-01 19:14:06
[2026-03-02 13:05:59] [INFO]   -> Set field 'alarm' = "2026-03-01 19:14:06"
[2026-03-02 13:05:59] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:05:59] [INFO]   -> Found value: 2026-03-01 19:14:33
[2026-03-02 13:05:59] [INFO]   -> Set field 'dispatched' = "2026-03-01 19:14:33"
[2026-03-02 13:05:59] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:05:59] [INFO]   -> Found value: 2026-03-01 19:16:52
[2026-03-02 13:05:59] [INFO]   -> Set field 'enroute' = "2026-03-01 19:16:52"
[2026-03-02 13:05:59] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:05:59] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:59] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:05:59] [INFO]   -> Found value: 2026-03-01 19:36:30
[2026-03-02 13:05:59] [INFO]   -> Set field 'cleared' = "2026-03-01 19:36:30"
[2026-03-02 13:05:59] [INFO]   -> Set field 'inService' = "2026-03-01 19:36:30"
[2026-03-02 13:05:59] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:05:59] [INFO]   -> Found value: DENNYS LN/BOYD CEDAR LN
[2026-03-02 13:05:59] [INFO]   -> Set field 'incidentLocationCross' = "DENNYS LN\/BOYD CEDAR LN"
[2026-03-02 13:05:59] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:05:59] [INFO]   -> Found value: PCFR
[2026-03-02 13:05:59] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:05:59] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:05:59] [INFO]   -> Found value: 2026-03-01 19:14:33
[2026-03-02 13:05:59] [INFO]   -> Set field 'timedispatch' = "2026-03-01 19:14:33"
[2026-03-02 13:05:59] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:05:59] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:59] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:05:59] [INFO]   -> No value found (null or empty)
[2026-03-02 13:05:59] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:05:59] [INFO]   -> Found value: 2026-03-01 19:16:03
[2026-03-02 13:05:59] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 19:16:03"
[2026-03-02 13:05:59] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:05:59] [INFO]   -> Found value: 2026-03-01 19:16:03
[2026-03-02 13:05:59] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-01 19:16:03"
[2026-03-02 13:05:59] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:05:59] [INFO]   -> Found value: 20260022740
[2026-03-02 13:05:59] [INFO]   -> Set field 'policeReportNumber' = "20260022740"
[2026-03-02 13:05:59] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:05:59] [INFO]   -> Found value: [LAW] {P3345} DE ON SCENE // NOTHING SUS AS OF RIGHT NOW  [03/01/26 19:36:33 DKITCHENS] [EMS] CANCEL...
[2026-03-02 13:05:59] [INFO]   -> Set field 'dispatchNotes' = "[LAW] {P3345} DE ON SCENE \/\/ NOTHING SUS AS OF RIGHT NOW  [03\/01\/26 19:36:33 DKITCHENS] [EMS] CANCEL ANY UNITS NOT ON SCENE  [03\/01\/26 19:35:32 EALMENDAREZ] [EMS] DOA  [03\/01\/26 19:35:24 EALMENDAREZ] [LAW] {P3345} FIRE AND EMS ON SCENE  [03\/01\/26 19:32:39 DKITCHENS] [EMS] FRONT DOOR ENTRANCE  [03\/01\/26 19:15:57 DSWINK] [EMS] GEORGIA BURK IS FEMALES NAME  [03\/01\/26 19:15:45 DSWINK] [EMS] LATE 70S FEMALE  [03\/01\/26 19:14:54 DSWINK] [EMS] UNABLE TO GET HER INTO THE FLOOR TO START CPR  [03\/01\/26 19:14:49 DSWINK] [EMS] LAYING ON THE COUCH DOES NOT THINK SHE IS BREATHING  [03\/01\/26 19:14:25 DSWINK] Event spawned from UNCONSCIOUS.  [03\/01\/2026 19:14:06 DSWINK]"
[2026-03-02 13:05:59] [INFO]   -> Set field 'cADLog' = "[LAW] {P3345} DE ON SCENE \/\/ NOTHING SUS AS OF RIGHT NOW  [03\/01\/26 19:36:33 DKITCHENS] [EMS] CANCEL ANY UNITS NOT ON SCENE  [03\/01\/26 19:35:32 EALMENDAREZ] [EMS] DOA  [03\/01\/26 19:35:24 EALMENDAREZ] [LAW] {P3345} FIRE AND EMS ON SCENE  [03\/01\/26 19:32:39 DKITCHENS] [EMS] FRONT DOOR ENTRANCE  [03\/01\/26 19:15:57 DSWINK] [EMS] GEORGIA BURK IS FEMALES NAME  [03\/01\/26 19:15:45 DSWINK] [EMS] LATE 70S FEMALE  [03\/01\/26 19:14:54 DSWINK] [EMS] UNABLE TO GET HER INTO THE FLOOR TO START CPR  [03\/01\/26 19:14:49 DSWINK] [EMS] LAYING ON THE COUCH DOES NOT THINK SHE IS BREATHING  [03\/01\/26 19:14:25 DSWINK] Event spawned from UNCONSCIOUS.  [03\/01\/2026 19:14:06 DSWINK]"
[2026-03-02 13:05:59] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:05:59] [INFO]   -> Found value: BUFFALO VALLEY
[2026-03-02 13:05:59] [INFO]   -> Set field 'incidentLocationCity' = "BUFFALO VALLEY"
[2026-03-02 13:05:59] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:05:59] [INFO]   -> Found value: ST MARYS
[2026-03-02 13:05:59] [INFO]   -> Set field 'streetName' = "ST MARYS"
[2026-03-02 13:05:59] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:05:59] [INFO]   -> Found value: RD
[2026-03-02 13:05:59] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 13:05:59] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:05:59] [INFO]   -> Found value: 15680 ST MARYS RD
[2026-03-02 13:05:59] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "15680 ST MARYS RD"
[2026-03-02 13:05:59] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-02 13:05:59] [INFO] Concatenating street name and type
[2026-03-02 13:05:59] [INFO]   -> Combined street name: ST MARYS RD
[2026-03-02 13:05:59] [INFO] Built locationCoordinates from lat/lng: 36.1549,-85.79474
[2026-03-02 13:05:59] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000572","dispatchRunNumber":"2026000572","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":15680,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38548,"nERISIncidentLatitude":36.15489999999999781721271574497222900390625,"nERISIncidentLongitude":-85.7947400000000044428816181607544422149658203125,"alarm":"2026-03-01 19:14:06","dispatched":"2026-03-01 19:14:33","enroute":"2026-03-01 19:16:52","cleared":"2026-03-01 19:36:30","inService":"2026-03-01 19:36:30","incidentLocationCross":"DENNYS LN\/BOYD CEDAR LN","cADVehicleID":"PCFR","timedispatch":"2026-03-01 19:14:33","timeunitclear":"2026-03-01 19:16:03","timecanceledenroute":"2026-03-01 19:16:03","policeReportNumber":"20260022740","dispatchNotes":"[LAW] {P3345} DE ON SCENE \/\/ NOTHING SUS AS OF RIGHT NOW  [03\/01\/26 19:36:33 DKITCHENS] [EMS] CANCEL ANY UNITS NOT ON SCENE  [03\/01\/26 19:35:32 EALMENDAREZ] [EMS] DOA  [03\/01\/26 19:35:24 EALMENDAREZ] [LAW] {P3345} FIRE AND EMS ON SCENE  [03\/01\/26 19:32:39 DKITCHENS] [EMS] FRONT DOOR ENTRANCE  [03\/01\/26 19:15:57 DSWINK] [EMS] GEORGIA BURK IS FEMALES NAME  [03\/01\/26 19:15:45 DSWINK] [EMS] LATE 70S FEMALE  [03\/01\/26 19:14:54 DSWINK] [EMS] UNABLE TO GET HER INTO THE FLOOR TO START CPR  [03\/01\/26 19:14:49 DSWINK] [EMS] LAYING ON THE COUCH DOES NOT THINK SHE IS BREATHING  [03\/01\/26 19:14:25 DSWINK] Event spawned from UNCONSCIOUS.  [03\/01\/2026 19:14:06 DSWINK]","cADLog":"[LAW] {P3345} DE ON SCENE \/\/ NOTHING SUS AS OF RIGHT NOW  [03\/01\/26 19:36:33 DKITCHENS] [EMS] CANCEL ANY UNITS NOT ON SCENE  [03\/01\/26 19:35:32 EALMENDAREZ] [EMS] DOA  [03\/01\/26 19:35:24 EALMENDAREZ] [LAW] {P3345} FIRE AND EMS ON SCENE  [03\/01\/26 19:32:39 DKITCHENS] [EMS] FRONT DOOR ENTRANCE  [03\/01\/26 19:15:57 DSWINK] [EMS] GEORGIA BURK IS FEMALES NAME  [03\/01\/26 19:15:45 DSWINK] [EMS] LATE 70S FEMALE  [03\/01\/26 19:14:54 DSWINK] [EMS] UNABLE TO GET HER INTO THE FLOOR TO START CPR  [03\/01\/26 19:14:49 DSWINK] [EMS] LAYING ON THE COUCH DOES NOT THINK SHE IS BREATHING  [03\/01\/26 19:14:25 DSWINK] Event spawned from UNCONSCIOUS.  [03\/01\/2026 19:14:06 DSWINK]","incidentLocationCity":"BUFFALO VALLEY","streetName":"ST MARYS RD","incidentAddressTextVersionStreet":"15680 ST MARYS RD","locationCoordinates":"36.1549,-85.79474"}
[2026-03-02 13:05:59] [INFO] Number of extracted fields: 26
[2026-03-02 13:05:59] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:05:59] [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-03-02 13:05:59] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:05:59] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:05:59] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:05:59] [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-03-02 13:05:59] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:05:59] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:05:59] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-02 13:05:59] [INFO] Found existing Dispatch with cADNumber '2026000572', ID: 69a58b2c11ba12503 - will update instead of create
[2026-03-02 13:06:00] [INFO] Updated existing Dispatches record with ID: 69a58b2c11ba12503
[2026-03-02 13:06:00] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:06:00] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:06:03] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:06:03] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022740_20260302_125802_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:06:03] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:06:03] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022770_20260302_125803.XML
[2026-03-02 13:06:03] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022770_20260302_125803.XML for user: 68f1466aed072ad4a
[2026-03-02 13:06:03] [INFO] File size: 6575 bytes
[2026-03-02 13:06:03] [INFO] Created FTPFiles record with ID: 69a58b3bcf776ba60
[2026-03-02 13:06:03] [INFO] About to extract fields from XML. File size: 6575 bytes
[2026-03-02 13:06:03] [INFO] Number of mappings: 28
[2026-03-02 13:06:03] [INFO] Starting XML parsing. Content length: 6575
[2026-03-02 13:06:03] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:06:03] [INFO] Processing 28 field mappings
[2026-03-02 13:06:03] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:06:03] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:06:03] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:06:03] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-02 13:06:03] [INFO]   -> Found value: PCFD
PCSO
[2026-03-02 13:06:03] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO"
[2026-03-02 13:06:03] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:06:03] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:06:03] [INFO]   -> Found value: 2026000573
[2026-03-02 13:06:03] [INFO]   -> Set field 'incidentInternalId' = "2026000573"
[2026-03-02 13:06:03] [INFO]   -> Set field 'dispatchRunNumber' = "2026000573"
[2026-03-02 13:06:03] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:06:03] [INFO]   -> Found value: CHEST PAIN
[2026-03-02 13:06:03] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-03-02 13:06:03] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:06:03] [INFO]   -> Found value: 2690
[2026-03-02 13:06:03] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2690
[2026-03-02 13:06:03] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:06:03] [INFO]   -> Found value: TN
[2026-03-02 13:06:03] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:06:03] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:06:03] [INFO]   -> Found value: 38506
[2026-03-02 13:06:03] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:06:03] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:06:03] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:03] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:06:03] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:03] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:06:03] [INFO]   -> Found value: 36.24954
[2026-03-02 13:06:03] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.24954000000000320369508699513971805572509765625
[2026-03-02 13:06:03] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:06:03] [INFO]   -> Found value: -85.44153
[2026-03-02 13:06:03] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.44153000000000020008883439004421234130859375
[2026-03-02 13:06:03] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:06:03] [INFO]   -> Found value: 2026-03-01 20:27:45
[2026-03-02 13:06:03] [INFO]   -> Set field 'alarm' = "2026-03-01 20:27:45"
[2026-03-02 13:06:03] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:06:03] [INFO]   -> Found value: 2026-03-01 20:28:09
[2026-03-02 13:06:03] [INFO]   -> Set field 'dispatched' = "2026-03-01 20:28:09"
[2026-03-02 13:06:03] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:06:03] [INFO]   -> Found value: 2026-03-01 20:30:08
[2026-03-02 13:06:03] [INFO]   -> Set field 'enroute' = "2026-03-01 20:30:08"
[2026-03-02 13:06:03] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:06:03] [INFO]   -> Found value: 2026-03-01 20:36:53
[2026-03-02 13:06:03] [INFO]   -> Set field 'onScene' = "2026-03-01 20:36:53"
[2026-03-02 13:06:03] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:06:03] [INFO]   -> Found value: 2026-03-01 20:58:17
[2026-03-02 13:06:03] [INFO]   -> Set field 'cleared' = "2026-03-01 20:58:17"
[2026-03-02 13:06:03] [INFO]   -> Set field 'inService' = "2026-03-01 20:58:17"
[2026-03-02 13:06:03] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:06:03] [INFO]   -> Found value: ZEB WARREN RD
[2026-03-02 13:06:03] [INFO]   -> Set field 'incidentLocationCross' = "ZEB WARREN RD"
[2026-03-02 13:06:03] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:06:03] [INFO]   -> Found value: PCFR
[2026-03-02 13:06:03] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:06:03] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:06:03] [INFO]   -> Found value: 2026-03-01 20:28:09
[2026-03-02 13:06:03] [INFO]   -> Set field 'timedispatch' = "2026-03-01 20:28:09"
[2026-03-02 13:06:03] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:06:03] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:03] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:06:03] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:03] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:06:03] [INFO]   -> Found value: 2026-03-01 20:28:30
[2026-03-02 13:06:03] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 20:28:30"
[2026-03-02 13:06:03] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:06:03] [INFO]   -> Found value: 2026-03-01 20:28:30
[2026-03-02 13:06:03] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-01 20:28:30"
[2026-03-02 13:06:03] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:06:03] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:06:03] [INFO]   -> Found value: 20260022770
[2026-03-02 13:06:03] [INFO]   -> Set field 'policeReportNumber' = "20260022770"
[2026-03-02 13:06:03] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:06:03] [INFO]   -> Found value: [LAW] {P3318} 41 CAN SIG9  [03/01/26 20:41:05 DKITCHENS] [LAW] {P3318} H/O HAS PIT BULL ON THE PROP ...
[2026-03-02 13:06:03] [INFO]   -> Set field 'dispatchNotes' = "[LAW] {P3318} 41 CAN SIG9  [03\/01\/26 20:41:05 DKITCHENS] [LAW] {P3318} H\/O HAS PIT BULL ON THE PROP \/\/ SHOULD BE FRIENDLY  [03\/01\/26 20:31:25 DKITCHENS] [LAW] PCSO ENRT  [03\/01\/26 20:29:32 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/01\/26 20:28:26 DKITCHENS] [EMS] FRONT DOOR  [03\/01\/26 20:27:52 DSWINK] Event spawned from CHEST PAIN.  [03\/01\/2026 20:27:45 DSWINK] CHEST PAIN 30 YOM DIALYSIS PT  [03\/01\/26 20:27:41 DSWINK]]"
[2026-03-02 13:06:03] [INFO]   -> Set field 'cADLog' = "[LAW] {P3318} 41 CAN SIG9  [03\/01\/26 20:41:05 DKITCHENS] [LAW] {P3318} H\/O HAS PIT BULL ON THE PROP \/\/ SHOULD BE FRIENDLY  [03\/01\/26 20:31:25 DKITCHENS] [LAW] PCSO ENRT  [03\/01\/26 20:29:32 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/01\/26 20:28:26 DKITCHENS] [EMS] FRONT DOOR  [03\/01\/26 20:27:52 DSWINK] Event spawned from CHEST PAIN.  [03\/01\/2026 20:27:45 DSWINK] CHEST PAIN 30 YOM DIALYSIS PT  [03\/01\/26 20:27:41 DSWINK]]"
[2026-03-02 13:06:03] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:06:03] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:06:03] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:06:03] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:06:03] [INFO]   -> Found value: DANIELS
[2026-03-02 13:06:03] [INFO]   -> Set field 'streetName' = "DANIELS"
[2026-03-02 13:06:03] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:06:03] [INFO]   -> Found value: LN
[2026-03-02 13:06:03] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-02 13:06:03] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:06:03] [INFO]   -> Found value: 2690 DANIELS LN
[2026-03-02 13:06:03] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2690 DANIELS LN"
[2026-03-02 13:06:03] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:06:03] [INFO] Concatenating street name and type
[2026-03-02 13:06:03] [INFO]   -> Combined street name: DANIELS LN
[2026-03-02 13:06:03] [INFO] Built locationCoordinates from lat/lng: 36.24954,-85.44153
[2026-03-02 13:06:03] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO","incidentInternalId":"2026000573","dispatchRunNumber":"2026000573","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":2690,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.24954000000000320369508699513971805572509765625,"nERISIncidentLongitude":-85.44153000000000020008883439004421234130859375,"alarm":"2026-03-01 20:27:45","dispatched":"2026-03-01 20:28:09","enroute":"2026-03-01 20:30:08","onScene":"2026-03-01 20:36:53","cleared":"2026-03-01 20:58:17","inService":"2026-03-01 20:58:17","incidentLocationCross":"ZEB WARREN RD","cADVehicleID":"PCFR","timedispatch":"2026-03-01 20:28:09","timeunitclear":"2026-03-01 20:28:30","timecanceledenroute":"2026-03-01 20:28:30","policeReportNumber":"20260022770","dispatchNotes":"[LAW] {P3318} 41 CAN SIG9  [03\/01\/26 20:41:05 DKITCHENS] [LAW] {P3318} H\/O HAS PIT BULL ON THE PROP \/\/ SHOULD BE FRIENDLY  [03\/01\/26 20:31:25 DKITCHENS] [LAW] PCSO ENRT  [03\/01\/26 20:29:32 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/01\/26 20:28:26 DKITCHENS] [EMS] FRONT DOOR  [03\/01\/26 20:27:52 DSWINK] Event spawned from CHEST PAIN.  [03\/01\/2026 20:27:45 DSWINK] CHEST PAIN 30 YOM DIALYSIS PT  [03\/01\/26 20:27:41 DSWINK]]","cADLog":"[LAW] {P3318} 41 CAN SIG9  [03\/01\/26 20:41:05 DKITCHENS] [LAW] {P3318} H\/O HAS PIT BULL ON THE PROP \/\/ SHOULD BE FRIENDLY  [03\/01\/26 20:31:25 DKITCHENS] [LAW] PCSO ENRT  [03\/01\/26 20:29:32 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/01\/26 20:28:26 DKITCHENS] [EMS] FRONT DOOR  [03\/01\/26 20:27:52 DSWINK] Event spawned from CHEST PAIN.  [03\/01\/2026 20:27:45 DSWINK] CHEST PAIN 30 YOM DIALYSIS PT  [03\/01\/26 20:27:41 DSWINK]]","incidentLocationCity":"COOKEVILLE","streetName":"DANIELS LN","incidentAddressTextVersionStreet":"2690 DANIELS LN","locationCoordinates":"36.24954,-85.44153"}
[2026-03-02 13:06:03] [INFO] Number of extracted fields: 27
[2026-03-02 13:06:03] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO'
[2026-03-02 13:06:03] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO', Parsed IDs = ["PCFD","PCSO"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-02 13:06:03] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO"]
[2026-03-02 13:06:03] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:06:04] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:06:04] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO"]
[2026-03-02 13:06:04] [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-03-02 13:06:04] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:06:04] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-02 13:06:04] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:06:04] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:06:04] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-03-02 13:06:12] [INFO] Created new Dispatches record with ID: 69a58b3ca57072dca
[2026-03-02 13:06:12] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:06:12] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:06: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-03-02 13:06:15] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022770_20260302_125803.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:06:15] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:06:15] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022770_20260302_125803_1.XML
[2026-03-02 13:06:15] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022770_20260302_125803_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:06:15] [INFO] File size: 6575 bytes
[2026-03-02 13:06:16] [INFO] Created FTPFiles record with ID: 69a58b4823210b6f2
[2026-03-02 13:06:16] [INFO] About to extract fields from XML. File size: 6575 bytes
[2026-03-02 13:06:16] [INFO] Number of mappings: 28
[2026-03-02 13:06:16] [INFO] Starting XML parsing. Content length: 6575
[2026-03-02 13:06:16] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:06:16] [INFO] Processing 28 field mappings
[2026-03-02 13:06:16] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:06:16] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:06:16] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:06:16] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-02 13:06:16] [INFO]   -> Found value: PCFD
PCSO
[2026-03-02 13:06:16] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO"
[2026-03-02 13:06:16] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:06:16] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:06:16] [INFO]   -> Found value: 2026000573
[2026-03-02 13:06:16] [INFO]   -> Set field 'incidentInternalId' = "2026000573"
[2026-03-02 13:06:16] [INFO]   -> Set field 'dispatchRunNumber' = "2026000573"
[2026-03-02 13:06:16] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:06:16] [INFO]   -> Found value: CHEST PAIN
[2026-03-02 13:06:16] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-03-02 13:06:16] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:06:16] [INFO]   -> Found value: 2690
[2026-03-02 13:06:16] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2690
[2026-03-02 13:06:16] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:06:16] [INFO]   -> Found value: TN
[2026-03-02 13:06:16] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:06:16] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:06:16] [INFO]   -> Found value: 38506
[2026-03-02 13:06:16] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:06:16] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:06:16] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:16] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:06:16] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:16] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:06:16] [INFO]   -> Found value: 36.24954
[2026-03-02 13:06:16] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.24954000000000320369508699513971805572509765625
[2026-03-02 13:06:16] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:06:16] [INFO]   -> Found value: -85.44153
[2026-03-02 13:06:16] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.44153000000000020008883439004421234130859375
[2026-03-02 13:06:16] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:06:16] [INFO]   -> Found value: 2026-03-01 20:27:45
[2026-03-02 13:06:16] [INFO]   -> Set field 'alarm' = "2026-03-01 20:27:45"
[2026-03-02 13:06:16] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:06:16] [INFO]   -> Found value: 2026-03-01 20:28:09
[2026-03-02 13:06:16] [INFO]   -> Set field 'dispatched' = "2026-03-01 20:28:09"
[2026-03-02 13:06:16] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:06:16] [INFO]   -> Found value: 2026-03-01 20:30:08
[2026-03-02 13:06:16] [INFO]   -> Set field 'enroute' = "2026-03-01 20:30:08"
[2026-03-02 13:06:16] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:06:16] [INFO]   -> Found value: 2026-03-01 20:36:53
[2026-03-02 13:06:16] [INFO]   -> Set field 'onScene' = "2026-03-01 20:36:53"
[2026-03-02 13:06:16] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:06:16] [INFO]   -> Found value: 2026-03-01 20:58:17
[2026-03-02 13:06:16] [INFO]   -> Set field 'cleared' = "2026-03-01 20:58:17"
[2026-03-02 13:06:16] [INFO]   -> Set field 'inService' = "2026-03-01 20:58:17"
[2026-03-02 13:06:16] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:06:16] [INFO]   -> Found value: ZEB WARREN RD
[2026-03-02 13:06:16] [INFO]   -> Set field 'incidentLocationCross' = "ZEB WARREN RD"
[2026-03-02 13:06:16] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:06:16] [INFO]   -> Found value: PCFR
[2026-03-02 13:06:16] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:06:16] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:06:16] [INFO]   -> Found value: 2026-03-01 20:28:09
[2026-03-02 13:06:16] [INFO]   -> Set field 'timedispatch' = "2026-03-01 20:28:09"
[2026-03-02 13:06:16] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:06:16] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:16] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:06:16] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:16] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:06:16] [INFO]   -> Found value: 2026-03-01 20:28:30
[2026-03-02 13:06:16] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 20:28:30"
[2026-03-02 13:06:16] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:06:16] [INFO]   -> Found value: 2026-03-01 20:28:30
[2026-03-02 13:06:16] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-01 20:28:30"
[2026-03-02 13:06:16] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:06:16] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:06:16] [INFO]   -> Found value: 20260022770
[2026-03-02 13:06:16] [INFO]   -> Set field 'policeReportNumber' = "20260022770"
[2026-03-02 13:06:16] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:06:16] [INFO]   -> Found value: [LAW] {P3318} 41 CAN SIG9  [03/01/26 20:41:05 DKITCHENS] [LAW] {P3318} H/O HAS PIT BULL ON THE PROP ...
[2026-03-02 13:06:16] [INFO]   -> Set field 'dispatchNotes' = "[LAW] {P3318} 41 CAN SIG9  [03\/01\/26 20:41:05 DKITCHENS] [LAW] {P3318} H\/O HAS PIT BULL ON THE PROP \/\/ SHOULD BE FRIENDLY  [03\/01\/26 20:31:25 DKITCHENS] [LAW] PCSO ENRT  [03\/01\/26 20:29:32 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/01\/26 20:28:26 DKITCHENS] [EMS] FRONT DOOR  [03\/01\/26 20:27:52 DSWINK] Event spawned from CHEST PAIN.  [03\/01\/2026 20:27:45 DSWINK] CHEST PAIN 30 YOM DIALYSIS PT  [03\/01\/26 20:27:41 DSWINK]]"
[2026-03-02 13:06:16] [INFO]   -> Set field 'cADLog' = "[LAW] {P3318} 41 CAN SIG9  [03\/01\/26 20:41:05 DKITCHENS] [LAW] {P3318} H\/O HAS PIT BULL ON THE PROP \/\/ SHOULD BE FRIENDLY  [03\/01\/26 20:31:25 DKITCHENS] [LAW] PCSO ENRT  [03\/01\/26 20:29:32 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/01\/26 20:28:26 DKITCHENS] [EMS] FRONT DOOR  [03\/01\/26 20:27:52 DSWINK] Event spawned from CHEST PAIN.  [03\/01\/2026 20:27:45 DSWINK] CHEST PAIN 30 YOM DIALYSIS PT  [03\/01\/26 20:27:41 DSWINK]]"
[2026-03-02 13:06:16] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:06:16] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:06:16] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:06:16] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:06:16] [INFO]   -> Found value: DANIELS
[2026-03-02 13:06:16] [INFO]   -> Set field 'streetName' = "DANIELS"
[2026-03-02 13:06:16] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:06:16] [INFO]   -> Found value: LN
[2026-03-02 13:06:16] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-02 13:06:16] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:06:16] [INFO]   -> Found value: 2690 DANIELS LN
[2026-03-02 13:06:16] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2690 DANIELS LN"
[2026-03-02 13:06:16] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:06:16] [INFO] Concatenating street name and type
[2026-03-02 13:06:16] [INFO]   -> Combined street name: DANIELS LN
[2026-03-02 13:06:16] [INFO] Built locationCoordinates from lat/lng: 36.24954,-85.44153
[2026-03-02 13:06:16] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO","incidentInternalId":"2026000573","dispatchRunNumber":"2026000573","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":2690,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.24954000000000320369508699513971805572509765625,"nERISIncidentLongitude":-85.44153000000000020008883439004421234130859375,"alarm":"2026-03-01 20:27:45","dispatched":"2026-03-01 20:28:09","enroute":"2026-03-01 20:30:08","onScene":"2026-03-01 20:36:53","cleared":"2026-03-01 20:58:17","inService":"2026-03-01 20:58:17","incidentLocationCross":"ZEB WARREN RD","cADVehicleID":"PCFR","timedispatch":"2026-03-01 20:28:09","timeunitclear":"2026-03-01 20:28:30","timecanceledenroute":"2026-03-01 20:28:30","policeReportNumber":"20260022770","dispatchNotes":"[LAW] {P3318} 41 CAN SIG9  [03\/01\/26 20:41:05 DKITCHENS] [LAW] {P3318} H\/O HAS PIT BULL ON THE PROP \/\/ SHOULD BE FRIENDLY  [03\/01\/26 20:31:25 DKITCHENS] [LAW] PCSO ENRT  [03\/01\/26 20:29:32 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/01\/26 20:28:26 DKITCHENS] [EMS] FRONT DOOR  [03\/01\/26 20:27:52 DSWINK] Event spawned from CHEST PAIN.  [03\/01\/2026 20:27:45 DSWINK] CHEST PAIN 30 YOM DIALYSIS PT  [03\/01\/26 20:27:41 DSWINK]]","cADLog":"[LAW] {P3318} 41 CAN SIG9  [03\/01\/26 20:41:05 DKITCHENS] [LAW] {P3318} H\/O HAS PIT BULL ON THE PROP \/\/ SHOULD BE FRIENDLY  [03\/01\/26 20:31:25 DKITCHENS] [LAW] PCSO ENRT  [03\/01\/26 20:29:32 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/01\/26 20:28:26 DKITCHENS] [EMS] FRONT DOOR  [03\/01\/26 20:27:52 DSWINK] Event spawned from CHEST PAIN.  [03\/01\/2026 20:27:45 DSWINK] CHEST PAIN 30 YOM DIALYSIS PT  [03\/01\/26 20:27:41 DSWINK]]","incidentLocationCity":"COOKEVILLE","streetName":"DANIELS LN","incidentAddressTextVersionStreet":"2690 DANIELS LN","locationCoordinates":"36.24954,-85.44153"}
[2026-03-02 13:06:16] [INFO] Number of extracted fields: 27
[2026-03-02 13:06:16] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO'
[2026-03-02 13:06:16] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO', Parsed IDs = ["PCFD","PCSO"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-02 13:06:16] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO"]
[2026-03-02 13:06:16] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:06:16] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:06:16] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO"]
[2026-03-02 13:06:16] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-02 13:06:16] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:06:16] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-02 13:06:16] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:06:16] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:06:16] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-03-02 13:06:16] [INFO] Found existing Dispatch with cADNumber '2026000573', ID: 69a58b3ca57072dca - will update instead of create
[2026-03-02 13:06:17] [INFO] Updated existing Dispatches record with ID: 69a58b3ca57072dca
[2026-03-02 13:06:17] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:06:17] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:06: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-03-02 13:06:20] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022770_20260302_125803_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:06:20] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:06:20] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022770_20260302_125803_2.XML
[2026-03-02 13:06:20] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022770_20260302_125803_2.XML for user: 68f1466aed072ad4a
[2026-03-02 13:06:20] [INFO] File size: 6575 bytes
[2026-03-02 13:06:20] [INFO] Created FTPFiles record with ID: 69a58b4ccce12fcb5
[2026-03-02 13:06:20] [INFO] About to extract fields from XML. File size: 6575 bytes
[2026-03-02 13:06:20] [INFO] Number of mappings: 28
[2026-03-02 13:06:20] [INFO] Starting XML parsing. Content length: 6575
[2026-03-02 13:06:20] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:06:20] [INFO] Processing 28 field mappings
[2026-03-02 13:06:20] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:06:20] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:06:20] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:06:20] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-02 13:06:20] [INFO]   -> Found value: PCFD
PCSO
[2026-03-02 13:06:20] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO"
[2026-03-02 13:06:20] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:06:20] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:06:20] [INFO]   -> Found value: 2026000573
[2026-03-02 13:06:20] [INFO]   -> Set field 'incidentInternalId' = "2026000573"
[2026-03-02 13:06:20] [INFO]   -> Set field 'dispatchRunNumber' = "2026000573"
[2026-03-02 13:06:20] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:06:20] [INFO]   -> Found value: CHEST PAIN
[2026-03-02 13:06:20] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-03-02 13:06:20] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:06:20] [INFO]   -> Found value: 2690
[2026-03-02 13:06:20] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2690
[2026-03-02 13:06:20] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:06:20] [INFO]   -> Found value: TN
[2026-03-02 13:06:20] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:06:20] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:06:20] [INFO]   -> Found value: 38506
[2026-03-02 13:06:20] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:06:20] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:06:20] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:20] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:06:20] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:20] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:06:20] [INFO]   -> Found value: 36.24954
[2026-03-02 13:06:20] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.24954000000000320369508699513971805572509765625
[2026-03-02 13:06:20] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:06:20] [INFO]   -> Found value: -85.44153
[2026-03-02 13:06:20] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.44153000000000020008883439004421234130859375
[2026-03-02 13:06:20] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:06:20] [INFO]   -> Found value: 2026-03-01 20:27:45
[2026-03-02 13:06:20] [INFO]   -> Set field 'alarm' = "2026-03-01 20:27:45"
[2026-03-02 13:06:20] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:06:20] [INFO]   -> Found value: 2026-03-01 20:28:09
[2026-03-02 13:06:20] [INFO]   -> Set field 'dispatched' = "2026-03-01 20:28:09"
[2026-03-02 13:06:20] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:06:20] [INFO]   -> Found value: 2026-03-01 20:30:08
[2026-03-02 13:06:20] [INFO]   -> Set field 'enroute' = "2026-03-01 20:30:08"
[2026-03-02 13:06:20] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:06:20] [INFO]   -> Found value: 2026-03-01 20:36:53
[2026-03-02 13:06:20] [INFO]   -> Set field 'onScene' = "2026-03-01 20:36:53"
[2026-03-02 13:06:20] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:06:20] [INFO]   -> Found value: 2026-03-01 20:58:17
[2026-03-02 13:06:20] [INFO]   -> Set field 'cleared' = "2026-03-01 20:58:17"
[2026-03-02 13:06:20] [INFO]   -> Set field 'inService' = "2026-03-01 20:58:17"
[2026-03-02 13:06:20] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:06:20] [INFO]   -> Found value: ZEB WARREN RD
[2026-03-02 13:06:20] [INFO]   -> Set field 'incidentLocationCross' = "ZEB WARREN RD"
[2026-03-02 13:06:20] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:06:20] [INFO]   -> Found value: PCFR
[2026-03-02 13:06:20] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:06:20] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:06:20] [INFO]   -> Found value: 2026-03-01 20:28:09
[2026-03-02 13:06:20] [INFO]   -> Set field 'timedispatch' = "2026-03-01 20:28:09"
[2026-03-02 13:06:20] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:06:20] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:20] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:06:20] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:20] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:06:20] [INFO]   -> Found value: 2026-03-01 20:28:30
[2026-03-02 13:06:20] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 20:28:30"
[2026-03-02 13:06:20] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:06:20] [INFO]   -> Found value: 2026-03-01 20:28:30
[2026-03-02 13:06:20] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-01 20:28:30"
[2026-03-02 13:06:20] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:06:20] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:06:20] [INFO]   -> Found value: 20260022770
[2026-03-02 13:06:20] [INFO]   -> Set field 'policeReportNumber' = "20260022770"
[2026-03-02 13:06:20] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:06:20] [INFO]   -> Found value: [LAW] {P3318} 41 CAN SIG9  [03/01/26 20:41:05 DKITCHENS] [LAW] {P3318} H/O HAS PIT BULL ON THE PROP ...
[2026-03-02 13:06:20] [INFO]   -> Set field 'dispatchNotes' = "[LAW] {P3318} 41 CAN SIG9  [03\/01\/26 20:41:05 DKITCHENS] [LAW] {P3318} H\/O HAS PIT BULL ON THE PROP \/\/ SHOULD BE FRIENDLY  [03\/01\/26 20:31:25 DKITCHENS] [LAW] PCSO ENRT  [03\/01\/26 20:29:32 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/01\/26 20:28:26 DKITCHENS] [EMS] FRONT DOOR  [03\/01\/26 20:27:52 DSWINK] Event spawned from CHEST PAIN.  [03\/01\/2026 20:27:45 DSWINK] CHEST PAIN 30 YOM DIALYSIS PT  [03\/01\/26 20:27:41 DSWINK]]"
[2026-03-02 13:06:20] [INFO]   -> Set field 'cADLog' = "[LAW] {P3318} 41 CAN SIG9  [03\/01\/26 20:41:05 DKITCHENS] [LAW] {P3318} H\/O HAS PIT BULL ON THE PROP \/\/ SHOULD BE FRIENDLY  [03\/01\/26 20:31:25 DKITCHENS] [LAW] PCSO ENRT  [03\/01\/26 20:29:32 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/01\/26 20:28:26 DKITCHENS] [EMS] FRONT DOOR  [03\/01\/26 20:27:52 DSWINK] Event spawned from CHEST PAIN.  [03\/01\/2026 20:27:45 DSWINK] CHEST PAIN 30 YOM DIALYSIS PT  [03\/01\/26 20:27:41 DSWINK]]"
[2026-03-02 13:06:20] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:06:20] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:06:20] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:06:20] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:06:20] [INFO]   -> Found value: DANIELS
[2026-03-02 13:06:20] [INFO]   -> Set field 'streetName' = "DANIELS"
[2026-03-02 13:06:20] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:06:20] [INFO]   -> Found value: LN
[2026-03-02 13:06:20] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-02 13:06:20] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:06:20] [INFO]   -> Found value: 2690 DANIELS LN
[2026-03-02 13:06:20] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2690 DANIELS LN"
[2026-03-02 13:06:20] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:06:20] [INFO] Concatenating street name and type
[2026-03-02 13:06:20] [INFO]   -> Combined street name: DANIELS LN
[2026-03-02 13:06:20] [INFO] Built locationCoordinates from lat/lng: 36.24954,-85.44153
[2026-03-02 13:06:20] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO","incidentInternalId":"2026000573","dispatchRunNumber":"2026000573","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":2690,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.24954000000000320369508699513971805572509765625,"nERISIncidentLongitude":-85.44153000000000020008883439004421234130859375,"alarm":"2026-03-01 20:27:45","dispatched":"2026-03-01 20:28:09","enroute":"2026-03-01 20:30:08","onScene":"2026-03-01 20:36:53","cleared":"2026-03-01 20:58:17","inService":"2026-03-01 20:58:17","incidentLocationCross":"ZEB WARREN RD","cADVehicleID":"PCFR","timedispatch":"2026-03-01 20:28:09","timeunitclear":"2026-03-01 20:28:30","timecanceledenroute":"2026-03-01 20:28:30","policeReportNumber":"20260022770","dispatchNotes":"[LAW] {P3318} 41 CAN SIG9  [03\/01\/26 20:41:05 DKITCHENS] [LAW] {P3318} H\/O HAS PIT BULL ON THE PROP \/\/ SHOULD BE FRIENDLY  [03\/01\/26 20:31:25 DKITCHENS] [LAW] PCSO ENRT  [03\/01\/26 20:29:32 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/01\/26 20:28:26 DKITCHENS] [EMS] FRONT DOOR  [03\/01\/26 20:27:52 DSWINK] Event spawned from CHEST PAIN.  [03\/01\/2026 20:27:45 DSWINK] CHEST PAIN 30 YOM DIALYSIS PT  [03\/01\/26 20:27:41 DSWINK]]","cADLog":"[LAW] {P3318} 41 CAN SIG9  [03\/01\/26 20:41:05 DKITCHENS] [LAW] {P3318} H\/O HAS PIT BULL ON THE PROP \/\/ SHOULD BE FRIENDLY  [03\/01\/26 20:31:25 DKITCHENS] [LAW] PCSO ENRT  [03\/01\/26 20:29:32 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/01\/26 20:28:26 DKITCHENS] [EMS] FRONT DOOR  [03\/01\/26 20:27:52 DSWINK] Event spawned from CHEST PAIN.  [03\/01\/2026 20:27:45 DSWINK] CHEST PAIN 30 YOM DIALYSIS PT  [03\/01\/26 20:27:41 DSWINK]]","incidentLocationCity":"COOKEVILLE","streetName":"DANIELS LN","incidentAddressTextVersionStreet":"2690 DANIELS LN","locationCoordinates":"36.24954,-85.44153"}
[2026-03-02 13:06:20] [INFO] Number of extracted fields: 27
[2026-03-02 13:06:20] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO'
[2026-03-02 13:06:20] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO', Parsed IDs = ["PCFD","PCSO"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-02 13:06:20] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO"]
[2026-03-02 13:06:20] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:06:21] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:06:21] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO"]
[2026-03-02 13:06:21] [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-03-02 13:06:21] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:06:21] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-02 13:06:21] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:06:21] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:06:21] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-03-02 13:06:21] [INFO] Found existing Dispatch with cADNumber '2026000573', ID: 69a58b3ca57072dca - will update instead of create
[2026-03-02 13:06:21] [INFO] Updated existing Dispatches record with ID: 69a58b3ca57072dca
[2026-03-02 13:06:21] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:06:21] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:06: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-03-02 13:06:24] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022770_20260302_125803_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:06:24] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:06:24] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022770_20260302_125803_3.XML
[2026-03-02 13:06:24] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022770_20260302_125803_3.XML for user: 68f1466aed072ad4a
[2026-03-02 13:06:24] [INFO] File size: 6575 bytes
[2026-03-02 13:06:25] [INFO] Created FTPFiles record with ID: 69a58b5105bbf0696
[2026-03-02 13:06:25] [INFO] About to extract fields from XML. File size: 6575 bytes
[2026-03-02 13:06:25] [INFO] Number of mappings: 28
[2026-03-02 13:06:25] [INFO] Starting XML parsing. Content length: 6575
[2026-03-02 13:06:25] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:06:25] [INFO] Processing 28 field mappings
[2026-03-02 13:06:25] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:06:25] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:06:25] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 13:06:25] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-02 13:06:25] [INFO]   -> Found value: PCFD
PCSO
[2026-03-02 13:06:25] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO"
[2026-03-02 13:06:25] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:06:25] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-02 13:06:25] [INFO]   -> Found value: 2026000573
[2026-03-02 13:06:25] [INFO]   -> Set field 'incidentInternalId' = "2026000573"
[2026-03-02 13:06:25] [INFO]   -> Set field 'dispatchRunNumber' = "2026000573"
[2026-03-02 13:06:25] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:06:25] [INFO]   -> Found value: CHEST PAIN
[2026-03-02 13:06:25] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-03-02 13:06:25] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:06:25] [INFO]   -> Found value: 2690
[2026-03-02 13:06:25] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2690
[2026-03-02 13:06:25] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:06:25] [INFO]   -> Found value: TN
[2026-03-02 13:06:25] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:06:25] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:06:25] [INFO]   -> Found value: 38506
[2026-03-02 13:06:25] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:06:25] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:06:25] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:25] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:06:25] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:25] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:06:25] [INFO]   -> Found value: 36.24954
[2026-03-02 13:06:25] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.24954000000000320369508699513971805572509765625
[2026-03-02 13:06:25] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:06:25] [INFO]   -> Found value: -85.44153
[2026-03-02 13:06:25] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.44153000000000020008883439004421234130859375
[2026-03-02 13:06:25] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:06:25] [INFO]   -> Found value: 2026-03-01 20:27:45
[2026-03-02 13:06:25] [INFO]   -> Set field 'alarm' = "2026-03-01 20:27:45"
[2026-03-02 13:06:25] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:06:25] [INFO]   -> Found value: 2026-03-01 20:28:09
[2026-03-02 13:06:25] [INFO]   -> Set field 'dispatched' = "2026-03-01 20:28:09"
[2026-03-02 13:06:25] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:06:25] [INFO]   -> Found value: 2026-03-01 20:30:08
[2026-03-02 13:06:25] [INFO]   -> Set field 'enroute' = "2026-03-01 20:30:08"
[2026-03-02 13:06:25] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:06:25] [INFO]   -> Found value: 2026-03-01 20:36:53
[2026-03-02 13:06:25] [INFO]   -> Set field 'onScene' = "2026-03-01 20:36:53"
[2026-03-02 13:06:25] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:06:25] [INFO]   -> Found value: 2026-03-01 20:58:17
[2026-03-02 13:06:25] [INFO]   -> Set field 'cleared' = "2026-03-01 20:58:17"
[2026-03-02 13:06:25] [INFO]   -> Set field 'inService' = "2026-03-01 20:58:17"
[2026-03-02 13:06:25] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:06:25] [INFO]   -> Found value: ZEB WARREN RD
[2026-03-02 13:06:25] [INFO]   -> Set field 'incidentLocationCross' = "ZEB WARREN RD"
[2026-03-02 13:06:25] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:06:25] [INFO]   -> Found value: PCFR
[2026-03-02 13:06:25] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 13:06:25] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:06:25] [INFO]   -> Found value: 2026-03-01 20:28:09
[2026-03-02 13:06:25] [INFO]   -> Set field 'timedispatch' = "2026-03-01 20:28:09"
[2026-03-02 13:06:25] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:06:25] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:25] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:06:25] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:25] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:06:25] [INFO]   -> Found value: 2026-03-01 20:28:30
[2026-03-02 13:06:25] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 20:28:30"
[2026-03-02 13:06:25] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:06:25] [INFO]   -> Found value: 2026-03-01 20:28:30
[2026-03-02 13:06:25] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-01 20:28:30"
[2026-03-02 13:06:25] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:06:25] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 13:06:25] [INFO]   -> Found value: 20260022770
[2026-03-02 13:06:25] [INFO]   -> Set field 'policeReportNumber' = "20260022770"
[2026-03-02 13:06:25] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:06:25] [INFO]   -> Found value: [LAW] {P3318} 41 CAN SIG9  [03/01/26 20:41:05 DKITCHENS] [LAW] {P3318} H/O HAS PIT BULL ON THE PROP ...
[2026-03-02 13:06:25] [INFO]   -> Set field 'dispatchNotes' = "[LAW] {P3318} 41 CAN SIG9  [03\/01\/26 20:41:05 DKITCHENS] [LAW] {P3318} H\/O HAS PIT BULL ON THE PROP \/\/ SHOULD BE FRIENDLY  [03\/01\/26 20:31:25 DKITCHENS] [LAW] PCSO ENRT  [03\/01\/26 20:29:32 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/01\/26 20:28:26 DKITCHENS] [EMS] FRONT DOOR  [03\/01\/26 20:27:52 DSWINK] Event spawned from CHEST PAIN.  [03\/01\/2026 20:27:45 DSWINK] CHEST PAIN 30 YOM DIALYSIS PT  [03\/01\/26 20:27:41 DSWINK]]"
[2026-03-02 13:06:25] [INFO]   -> Set field 'cADLog' = "[LAW] {P3318} 41 CAN SIG9  [03\/01\/26 20:41:05 DKITCHENS] [LAW] {P3318} H\/O HAS PIT BULL ON THE PROP \/\/ SHOULD BE FRIENDLY  [03\/01\/26 20:31:25 DKITCHENS] [LAW] PCSO ENRT  [03\/01\/26 20:29:32 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/01\/26 20:28:26 DKITCHENS] [EMS] FRONT DOOR  [03\/01\/26 20:27:52 DSWINK] Event spawned from CHEST PAIN.  [03\/01\/2026 20:27:45 DSWINK] CHEST PAIN 30 YOM DIALYSIS PT  [03\/01\/26 20:27:41 DSWINK]]"
[2026-03-02 13:06:25] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:06:25] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:06:25] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:06:25] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:06:25] [INFO]   -> Found value: DANIELS
[2026-03-02 13:06:25] [INFO]   -> Set field 'streetName' = "DANIELS"
[2026-03-02 13:06:25] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:06:25] [INFO]   -> Found value: LN
[2026-03-02 13:06:25] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-02 13:06:25] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:06:25] [INFO]   -> Found value: 2690 DANIELS LN
[2026-03-02 13:06:25] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2690 DANIELS LN"
[2026-03-02 13:06:25] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-02 13:06:25] [INFO] Concatenating street name and type
[2026-03-02 13:06:25] [INFO]   -> Combined street name: DANIELS LN
[2026-03-02 13:06:25] [INFO] Built locationCoordinates from lat/lng: 36.24954,-85.44153
[2026-03-02 13:06:25] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO","incidentInternalId":"2026000573","dispatchRunNumber":"2026000573","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":2690,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.24954000000000320369508699513971805572509765625,"nERISIncidentLongitude":-85.44153000000000020008883439004421234130859375,"alarm":"2026-03-01 20:27:45","dispatched":"2026-03-01 20:28:09","enroute":"2026-03-01 20:30:08","onScene":"2026-03-01 20:36:53","cleared":"2026-03-01 20:58:17","inService":"2026-03-01 20:58:17","incidentLocationCross":"ZEB WARREN RD","cADVehicleID":"PCFR","timedispatch":"2026-03-01 20:28:09","timeunitclear":"2026-03-01 20:28:30","timecanceledenroute":"2026-03-01 20:28:30","policeReportNumber":"20260022770","dispatchNotes":"[LAW] {P3318} 41 CAN SIG9  [03\/01\/26 20:41:05 DKITCHENS] [LAW] {P3318} H\/O HAS PIT BULL ON THE PROP \/\/ SHOULD BE FRIENDLY  [03\/01\/26 20:31:25 DKITCHENS] [LAW] PCSO ENRT  [03\/01\/26 20:29:32 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/01\/26 20:28:26 DKITCHENS] [EMS] FRONT DOOR  [03\/01\/26 20:27:52 DSWINK] Event spawned from CHEST PAIN.  [03\/01\/2026 20:27:45 DSWINK] CHEST PAIN 30 YOM DIALYSIS PT  [03\/01\/26 20:27:41 DSWINK]]","cADLog":"[LAW] {P3318} 41 CAN SIG9  [03\/01\/26 20:41:05 DKITCHENS] [LAW] {P3318} H\/O HAS PIT BULL ON THE PROP \/\/ SHOULD BE FRIENDLY  [03\/01\/26 20:31:25 DKITCHENS] [LAW] PCSO ENRT  [03\/01\/26 20:29:32 DKITCHENS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/01\/26 20:28:26 DKITCHENS] [EMS] FRONT DOOR  [03\/01\/26 20:27:52 DSWINK] Event spawned from CHEST PAIN.  [03\/01\/2026 20:27:45 DSWINK] CHEST PAIN 30 YOM DIALYSIS PT  [03\/01\/26 20:27:41 DSWINK]]","incidentLocationCity":"COOKEVILLE","streetName":"DANIELS LN","incidentAddressTextVersionStreet":"2690 DANIELS LN","locationCoordinates":"36.24954,-85.44153"}
[2026-03-02 13:06:25] [INFO] Number of extracted fields: 27
[2026-03-02 13:06:25] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO'
[2026-03-02 13:06:25] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO', Parsed IDs = ["PCFD","PCSO"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-02 13:06:25] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO"]
[2026-03-02 13:06:25] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:06:25] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:06:25] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO"]
[2026-03-02 13:06:25] [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-03-02 13:06:25] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:06:25] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-02 13:06:25] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 13:06:25] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:06:25] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-03-02 13:06:25] [INFO] Found existing Dispatch with cADNumber '2026000573', ID: 69a58b3ca57072dca - will update instead of create
[2026-03-02 13:06:25] [INFO] Updated existing Dispatches record with ID: 69a58b3ca57072dca
[2026-03-02 13:06:25] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:06:25] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:06: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-03-02 13:06:29] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022770_20260302_125803_3.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:06:29] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:06:29] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022793_20260302_125805.XML
[2026-03-02 13:06:29] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022793_20260302_125805.XML for user: 68f1466aed072ad4a
[2026-03-02 13:06:29] [INFO] File size: 5144 bytes
[2026-03-02 13:06:29] [INFO] Created FTPFiles record with ID: 69a58b555dc0cbc2b
[2026-03-02 13:06:29] [INFO] About to extract fields from XML. File size: 5144 bytes
[2026-03-02 13:06:29] [INFO] Number of mappings: 28
[2026-03-02 13:06:29] [INFO] Starting XML parsing. Content length: 5144
[2026-03-02 13:06:29] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:06:29] [INFO] Processing 28 field mappings
[2026-03-02 13:06:29] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:06:29] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:06:29] [INFO]   -> Found value: PCFD
[2026-03-02 13:06:29] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:06:29] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:06:29] [INFO]   -> Found value: 2026000574
[2026-03-02 13:06:29] [INFO]   -> Set field 'incidentInternalId' = "2026000574"
[2026-03-02 13:06:29] [INFO]   -> Set field 'dispatchRunNumber' = "2026000574"
[2026-03-02 13:06:29] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:06:29] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-02 13:06:29] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-02 13:06:29] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:06:29] [INFO]   -> Found value: 1922
[2026-03-02 13:06:29] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1922
[2026-03-02 13:06:29] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:06:29] [INFO]   -> Found value: TN
[2026-03-02 13:06:29] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:06:29] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:06:29] [INFO]   -> Found value: 38506
[2026-03-02 13:06:29] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:06:29] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:06:29] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:29] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:06:29] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:29] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:06:29] [INFO]   -> Found value: 36.08877
[2026-03-02 13:06:29] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0887699999999966848918120376765727996826171875
[2026-03-02 13:06:29] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:06:29] [INFO]   -> Found value: -85.55213
[2026-03-02 13:06:29] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.552130000000005338733899407088756561279296875
[2026-03-02 13:06:29] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:06:29] [INFO]   -> Found value: 2026-03-01 22:18:52
[2026-03-02 13:06:29] [INFO]   -> Set field 'alarm' = "2026-03-01 22:18:52"
[2026-03-02 13:06:29] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:06:29] [INFO]   -> Found value: 2026-03-01 22:20:21
[2026-03-02 13:06:29] [INFO]   -> Set field 'dispatched' = "2026-03-01 22:20:21"
[2026-03-02 13:06:29] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:06:29] [INFO]   -> Found value: 2026-03-01 22:23:19
[2026-03-02 13:06:29] [INFO]   -> Set field 'enroute' = "2026-03-01 22:23:19"
[2026-03-02 13:06:29] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:06:29] [INFO]   -> Found value: 2026-03-01 22:31:47
[2026-03-02 13:06:29] [INFO]   -> Set field 'onScene' = "2026-03-01 22:31:47"
[2026-03-02 13:06:29] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:06:29] [INFO]   -> Found value: 2026-03-01 22:42:38
[2026-03-02 13:06:29] [INFO]   -> Set field 'cleared' = "2026-03-01 22:42:38"
[2026-03-02 13:06:29] [INFO]   -> Set field 'inService' = "2026-03-01 22:42:38"
[2026-03-02 13:06:29] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:06:29] [INFO]   -> Found value: ELLER RIDGE RD
[2026-03-02 13:06:29] [INFO]   -> Set field 'incidentLocationCross' = "ELLER RIDGE RD"
[2026-03-02 13:06:29] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:06:29] [INFO]   -> Found value: EN11
[2026-03-02 13:06:29] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 13:06:29] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:06:29] [INFO]   -> Found value: 2026-03-01 22:20:21
[2026-03-02 13:06:29] [INFO]   -> Set field 'timedispatch' = "2026-03-01 22:20:21"
[2026-03-02 13:06:29] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:06:29] [INFO]   -> Found value: 2026-03-01 22:23:19
[2026-03-02 13:06:29] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 22:23:19"
[2026-03-02 13:06:29] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:06:29] [INFO]   -> Found value: 2026-03-01 22:31:47
[2026-03-02 13:06:29] [INFO]   -> Set field 'timeonscene' = "2026-03-01 22:31:47"
[2026-03-02 13:06:29] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:06:29] [INFO]   -> Found value: 2026-03-01 22:42:38
[2026-03-02 13:06:29] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 22:42:38"
[2026-03-02 13:06:29] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:06:29] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:29] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:06:29] [INFO]   -> Found value: 20260022793
[2026-03-02 13:06:29] [INFO]   -> Set field 'policeReportNumber' = "20260022793"
[2026-03-02 13:06:29] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:06:29] [INFO]   -> Found value: HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03/01/26...
[2026-03-02 13:06:29] [INFO]   -> Set field 'dispatchNotes' = "HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03\/01\/26 22:19:47 DSWINK]]"
[2026-03-02 13:06:29] [INFO]   -> Set field 'cADLog' = "HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03\/01\/26 22:19:47 DSWINK]]"
[2026-03-02 13:06:29] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:06:29] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:06:29] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:06:29] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:06:29] [INFO]   -> Found value: GOOLSBY
[2026-03-02 13:06:29] [INFO]   -> Set field 'streetName' = "GOOLSBY"
[2026-03-02 13:06:29] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:06:29] [INFO]   -> Found value: LN
[2026-03-02 13:06:29] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-02 13:06:29] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:06:29] [INFO]   -> Found value: 1922 GOOLSBY LN
[2026-03-02 13:06:29] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1922 GOOLSBY LN"
[2026-03-02 13:06:29] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 13:06:29] [INFO] Concatenating street name and type
[2026-03-02 13:06:29] [INFO]   -> Combined street name: GOOLSBY LN
[2026-03-02 13:06:29] [INFO] Built locationCoordinates from lat/lng: 36.08877,-85.55213
[2026-03-02 13:06:29] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000574","dispatchRunNumber":"2026000574","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":1922,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.0887699999999966848918120376765727996826171875,"nERISIncidentLongitude":-85.552130000000005338733899407088756561279296875,"alarm":"2026-03-01 22:18:52","dispatched":"2026-03-01 22:20:21","enroute":"2026-03-01 22:23:19","onScene":"2026-03-01 22:31:47","cleared":"2026-03-01 22:42:38","inService":"2026-03-01 22:42:38","incidentLocationCross":"ELLER RIDGE RD","cADVehicleID":"EN11","timedispatch":"2026-03-01 22:20:21","timeenroutetoscene":"2026-03-01 22:23:19","timeonscene":"2026-03-01 22:31:47","timeunitclear":"2026-03-01 22:42:38","policeReportNumber":"20260022793","dispatchNotes":"HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03\/01\/26 22:19:47 DSWINK]]","cADLog":"HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03\/01\/26 22:19:47 DSWINK]]","incidentLocationCity":"COOKEVILLE","streetName":"GOOLSBY LN","incidentAddressTextVersionStreet":"1922 GOOLSBY LN","locationCoordinates":"36.08877,-85.55213"}
[2026-03-02 13:06:29] [INFO] Number of extracted fields: 28
[2026-03-02 13:06:29] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:06:29] [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-03-02 13:06:29] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:06:29] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:06:29] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:06:29] [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-03-02 13:06:29] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:06:29] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:06:29] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-02 13:06:38] [INFO] Created new Dispatches record with ID: 69a58b5643bab6d18
[2026-03-02 13:06:38] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:06:38] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:06:41] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:06:41] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022793_20260302_125805.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:06:41] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:06:41] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022793_20260302_125805_1.XML
[2026-03-02 13:06:41] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022793_20260302_125805_1.XML for user: 68f1466aed072ad4a
[2026-03-02 13:06:41] [INFO] File size: 5144 bytes
[2026-03-02 13:06:42] [INFO] Created FTPFiles record with ID: 69a58b6237e48a228
[2026-03-02 13:06:42] [INFO] About to extract fields from XML. File size: 5144 bytes
[2026-03-02 13:06:42] [INFO] Number of mappings: 28
[2026-03-02 13:06:42] [INFO] Starting XML parsing. Content length: 5144
[2026-03-02 13:06:42] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:06:42] [INFO] Processing 28 field mappings
[2026-03-02 13:06:42] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:06:42] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:06:42] [INFO]   -> Found value: PCFD
[2026-03-02 13:06:42] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:06:42] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:06:42] [INFO]   -> Found value: 2026000574
[2026-03-02 13:06:42] [INFO]   -> Set field 'incidentInternalId' = "2026000574"
[2026-03-02 13:06:42] [INFO]   -> Set field 'dispatchRunNumber' = "2026000574"
[2026-03-02 13:06:42] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:06:42] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-02 13:06:42] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-02 13:06:42] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:06:42] [INFO]   -> Found value: 1922
[2026-03-02 13:06:42] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1922
[2026-03-02 13:06:42] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:06:42] [INFO]   -> Found value: TN
[2026-03-02 13:06:42] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:06:42] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:06:42] [INFO]   -> Found value: 38506
[2026-03-02 13:06:42] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:06:42] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:06:42] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:42] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:06:42] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:42] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:06:42] [INFO]   -> Found value: 36.08877
[2026-03-02 13:06:42] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0887699999999966848918120376765727996826171875
[2026-03-02 13:06:42] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:06:42] [INFO]   -> Found value: -85.55213
[2026-03-02 13:06:42] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.552130000000005338733899407088756561279296875
[2026-03-02 13:06:42] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:06:42] [INFO]   -> Found value: 2026-03-01 22:18:52
[2026-03-02 13:06:42] [INFO]   -> Set field 'alarm' = "2026-03-01 22:18:52"
[2026-03-02 13:06:42] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:06:42] [INFO]   -> Found value: 2026-03-01 22:20:21
[2026-03-02 13:06:42] [INFO]   -> Set field 'dispatched' = "2026-03-01 22:20:21"
[2026-03-02 13:06:42] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:06:42] [INFO]   -> Found value: 2026-03-01 22:23:19
[2026-03-02 13:06:42] [INFO]   -> Set field 'enroute' = "2026-03-01 22:23:19"
[2026-03-02 13:06:42] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:06:42] [INFO]   -> Found value: 2026-03-01 22:31:47
[2026-03-02 13:06:42] [INFO]   -> Set field 'onScene' = "2026-03-01 22:31:47"
[2026-03-02 13:06:42] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:06:42] [INFO]   -> Found value: 2026-03-01 22:42:38
[2026-03-02 13:06:42] [INFO]   -> Set field 'cleared' = "2026-03-01 22:42:38"
[2026-03-02 13:06:42] [INFO]   -> Set field 'inService' = "2026-03-01 22:42:38"
[2026-03-02 13:06:42] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:06:42] [INFO]   -> Found value: ELLER RIDGE RD
[2026-03-02 13:06:42] [INFO]   -> Set field 'incidentLocationCross' = "ELLER RIDGE RD"
[2026-03-02 13:06:42] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:06:42] [INFO]   -> Found value: EN11
[2026-03-02 13:06:42] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 13:06:42] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:06:42] [INFO]   -> Found value: 2026-03-01 22:20:21
[2026-03-02 13:06:42] [INFO]   -> Set field 'timedispatch' = "2026-03-01 22:20:21"
[2026-03-02 13:06:42] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:06:42] [INFO]   -> Found value: 2026-03-01 22:23:19
[2026-03-02 13:06:42] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 22:23:19"
[2026-03-02 13:06:42] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:06:42] [INFO]   -> Found value: 2026-03-01 22:31:47
[2026-03-02 13:06:42] [INFO]   -> Set field 'timeonscene' = "2026-03-01 22:31:47"
[2026-03-02 13:06:42] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:06:42] [INFO]   -> Found value: 2026-03-01 22:42:38
[2026-03-02 13:06:42] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 22:42:38"
[2026-03-02 13:06:42] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:06:42] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:42] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:06:42] [INFO]   -> Found value: 20260022793
[2026-03-02 13:06:42] [INFO]   -> Set field 'policeReportNumber' = "20260022793"
[2026-03-02 13:06:42] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:06:42] [INFO]   -> Found value: HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03/01/26...
[2026-03-02 13:06:42] [INFO]   -> Set field 'dispatchNotes' = "HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03\/01\/26 22:19:47 DSWINK]]"
[2026-03-02 13:06:42] [INFO]   -> Set field 'cADLog' = "HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03\/01\/26 22:19:47 DSWINK]]"
[2026-03-02 13:06:42] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:06:42] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:06:42] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:06:42] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:06:42] [INFO]   -> Found value: GOOLSBY
[2026-03-02 13:06:42] [INFO]   -> Set field 'streetName' = "GOOLSBY"
[2026-03-02 13:06:42] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:06:42] [INFO]   -> Found value: LN
[2026-03-02 13:06:42] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-02 13:06:42] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:06:42] [INFO]   -> Found value: 1922 GOOLSBY LN
[2026-03-02 13:06:42] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1922 GOOLSBY LN"
[2026-03-02 13:06:42] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 13:06:42] [INFO] Concatenating street name and type
[2026-03-02 13:06:42] [INFO]   -> Combined street name: GOOLSBY LN
[2026-03-02 13:06:42] [INFO] Built locationCoordinates from lat/lng: 36.08877,-85.55213
[2026-03-02 13:06:42] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000574","dispatchRunNumber":"2026000574","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":1922,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.0887699999999966848918120376765727996826171875,"nERISIncidentLongitude":-85.552130000000005338733899407088756561279296875,"alarm":"2026-03-01 22:18:52","dispatched":"2026-03-01 22:20:21","enroute":"2026-03-01 22:23:19","onScene":"2026-03-01 22:31:47","cleared":"2026-03-01 22:42:38","inService":"2026-03-01 22:42:38","incidentLocationCross":"ELLER RIDGE RD","cADVehicleID":"EN11","timedispatch":"2026-03-01 22:20:21","timeenroutetoscene":"2026-03-01 22:23:19","timeonscene":"2026-03-01 22:31:47","timeunitclear":"2026-03-01 22:42:38","policeReportNumber":"20260022793","dispatchNotes":"HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03\/01\/26 22:19:47 DSWINK]]","cADLog":"HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03\/01\/26 22:19:47 DSWINK]]","incidentLocationCity":"COOKEVILLE","streetName":"GOOLSBY LN","incidentAddressTextVersionStreet":"1922 GOOLSBY LN","locationCoordinates":"36.08877,-85.55213"}
[2026-03-02 13:06:42] [INFO] Number of extracted fields: 28
[2026-03-02 13:06:42] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:06:42] [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-03-02 13:06:42] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:06:42] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:06:42] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:06: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-03-02 13:06:42] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:06:42] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:06:42] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-02 13:06:42] [INFO] Found existing Dispatch with cADNumber '2026000574', ID: 69a58b5643bab6d18 - will update instead of create
[2026-03-02 13:06:43] [INFO] Updated existing Dispatches record with ID: 69a58b5643bab6d18
[2026-03-02 13:06:43] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:06:43] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:06:46] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 13:06:46] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022793_20260302_125805_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:06:46] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:06:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022793_20260302_125805_2.XML
[2026-03-02 13:06:46] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022793_20260302_125805_2.XML for user: 68f1466aed072ad4a
[2026-03-02 13:06:46] [INFO] File size: 5144 bytes
[2026-03-02 13:06:47] [INFO] Created FTPFiles record with ID: 69a58b671c5fa9a5e
[2026-03-02 13:06:47] [INFO] About to extract fields from XML. File size: 5144 bytes
[2026-03-02 13:06:47] [INFO] Number of mappings: 28
[2026-03-02 13:06:47] [INFO] Starting XML parsing. Content length: 5144
[2026-03-02 13:06:47] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:06:47] [INFO] Processing 28 field mappings
[2026-03-02 13:06:47] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:06:47] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:06:47] [INFO]   -> Found value: PCFD
[2026-03-02 13:06:47] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:06:47] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:06:47] [INFO]   -> Found value: 2026000574
[2026-03-02 13:06:47] [INFO]   -> Set field 'incidentInternalId' = "2026000574"
[2026-03-02 13:06:47] [INFO]   -> Set field 'dispatchRunNumber' = "2026000574"
[2026-03-02 13:06:47] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:06:47] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-02 13:06:47] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-02 13:06:47] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:06:47] [INFO]   -> Found value: 1922
[2026-03-02 13:06:47] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1922
[2026-03-02 13:06:47] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:06:47] [INFO]   -> Found value: TN
[2026-03-02 13:06:47] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:06:47] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:06:47] [INFO]   -> Found value: 38506
[2026-03-02 13:06:47] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:06:47] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:06:47] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:47] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:06:47] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:47] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:06:47] [INFO]   -> Found value: 36.08877
[2026-03-02 13:06:47] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0887699999999966848918120376765727996826171875
[2026-03-02 13:06:47] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:06:47] [INFO]   -> Found value: -85.55213
[2026-03-02 13:06:47] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.552130000000005338733899407088756561279296875
[2026-03-02 13:06:47] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:06:47] [INFO]   -> Found value: 2026-03-01 22:18:52
[2026-03-02 13:06:47] [INFO]   -> Set field 'alarm' = "2026-03-01 22:18:52"
[2026-03-02 13:06:47] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:06:47] [INFO]   -> Found value: 2026-03-01 22:20:21
[2026-03-02 13:06:47] [INFO]   -> Set field 'dispatched' = "2026-03-01 22:20:21"
[2026-03-02 13:06:47] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:06:47] [INFO]   -> Found value: 2026-03-01 22:23:19
[2026-03-02 13:06:47] [INFO]   -> Set field 'enroute' = "2026-03-01 22:23:19"
[2026-03-02 13:06:47] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:06:47] [INFO]   -> Found value: 2026-03-01 22:31:47
[2026-03-02 13:06:47] [INFO]   -> Set field 'onScene' = "2026-03-01 22:31:47"
[2026-03-02 13:06:47] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:06:47] [INFO]   -> Found value: 2026-03-01 22:42:38
[2026-03-02 13:06:47] [INFO]   -> Set field 'cleared' = "2026-03-01 22:42:38"
[2026-03-02 13:06:47] [INFO]   -> Set field 'inService' = "2026-03-01 22:42:38"
[2026-03-02 13:06:47] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:06:47] [INFO]   -> Found value: ELLER RIDGE RD
[2026-03-02 13:06:47] [INFO]   -> Set field 'incidentLocationCross' = "ELLER RIDGE RD"
[2026-03-02 13:06:47] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:06:47] [INFO]   -> Found value: EN11
[2026-03-02 13:06:47] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 13:06:47] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:06:47] [INFO]   -> Found value: 2026-03-01 22:20:21
[2026-03-02 13:06:47] [INFO]   -> Set field 'timedispatch' = "2026-03-01 22:20:21"
[2026-03-02 13:06:47] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:06:47] [INFO]   -> Found value: 2026-03-01 22:23:19
[2026-03-02 13:06:47] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 22:23:19"
[2026-03-02 13:06:47] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:06:47] [INFO]   -> Found value: 2026-03-01 22:31:47
[2026-03-02 13:06:47] [INFO]   -> Set field 'timeonscene' = "2026-03-01 22:31:47"
[2026-03-02 13:06:47] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:06:47] [INFO]   -> Found value: 2026-03-01 22:42:38
[2026-03-02 13:06:47] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 22:42:38"
[2026-03-02 13:06:47] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:06:47] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:47] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:06:47] [INFO]   -> Found value: 20260022793
[2026-03-02 13:06:47] [INFO]   -> Set field 'policeReportNumber' = "20260022793"
[2026-03-02 13:06:47] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:06:47] [INFO]   -> Found value: HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03/01/26...
[2026-03-02 13:06:47] [INFO]   -> Set field 'dispatchNotes' = "HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03\/01\/26 22:19:47 DSWINK]]"
[2026-03-02 13:06:47] [INFO]   -> Set field 'cADLog' = "HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03\/01\/26 22:19:47 DSWINK]]"
[2026-03-02 13:06:47] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:06:47] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:06:47] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:06:47] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:06:47] [INFO]   -> Found value: GOOLSBY
[2026-03-02 13:06:47] [INFO]   -> Set field 'streetName' = "GOOLSBY"
[2026-03-02 13:06:47] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:06:47] [INFO]   -> Found value: LN
[2026-03-02 13:06:47] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-02 13:06:47] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:06:47] [INFO]   -> Found value: 1922 GOOLSBY LN
[2026-03-02 13:06:47] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1922 GOOLSBY LN"
[2026-03-02 13:06:47] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 13:06:47] [INFO] Concatenating street name and type
[2026-03-02 13:06:47] [INFO]   -> Combined street name: GOOLSBY LN
[2026-03-02 13:06:47] [INFO] Built locationCoordinates from lat/lng: 36.08877,-85.55213
[2026-03-02 13:06:47] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000574","dispatchRunNumber":"2026000574","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":1922,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.0887699999999966848918120376765727996826171875,"nERISIncidentLongitude":-85.552130000000005338733899407088756561279296875,"alarm":"2026-03-01 22:18:52","dispatched":"2026-03-01 22:20:21","enroute":"2026-03-01 22:23:19","onScene":"2026-03-01 22:31:47","cleared":"2026-03-01 22:42:38","inService":"2026-03-01 22:42:38","incidentLocationCross":"ELLER RIDGE RD","cADVehicleID":"EN11","timedispatch":"2026-03-01 22:20:21","timeenroutetoscene":"2026-03-01 22:23:19","timeonscene":"2026-03-01 22:31:47","timeunitclear":"2026-03-01 22:42:38","policeReportNumber":"20260022793","dispatchNotes":"HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03\/01\/26 22:19:47 DSWINK]]","cADLog":"HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03\/01\/26 22:19:47 DSWINK]]","incidentLocationCity":"COOKEVILLE","streetName":"GOOLSBY LN","incidentAddressTextVersionStreet":"1922 GOOLSBY LN","locationCoordinates":"36.08877,-85.55213"}
[2026-03-02 13:06:47] [INFO] Number of extracted fields: 28
[2026-03-02 13:06:47] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:06:47] [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-03-02 13:06:47] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:06:47] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:06:47] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:06: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-03-02 13:06:47] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:06:47] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:06:47] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-02 13:06:47] [INFO] Found existing Dispatch with cADNumber '2026000574', ID: 69a58b5643bab6d18 - will update instead of create
[2026-03-02 13:06:47] [INFO] Updated existing Dispatches record with ID: 69a58b5643bab6d18
[2026-03-02 13:06:47] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:06:47] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:06: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-03-02 13:06:51] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022793_20260302_125805_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:06:51] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 13:06:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022793_20260302_125805_3.XML
[2026-03-02 13:06:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022793_20260302_125805_3.XML for user: 68f1466aed072ad4a
[2026-03-02 13:06:51] [INFO] File size: 5144 bytes
[2026-03-02 13:06:52] [INFO] Created FTPFiles record with ID: 69a58b6c1476e7736
[2026-03-02 13:06:52] [INFO] About to extract fields from XML. File size: 5144 bytes
[2026-03-02 13:06:52] [INFO] Number of mappings: 28
[2026-03-02 13:06:52] [INFO] Starting XML parsing. Content length: 5144
[2026-03-02 13:06:52] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 13:06:52] [INFO] Processing 28 field mappings
[2026-03-02 13:06:52] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 13:06:52] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 13:06:52] [INFO]   -> Found value: PCFD
[2026-03-02 13:06:52] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-02 13:06:52] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 13:06:52] [INFO]   -> Found value: 2026000574
[2026-03-02 13:06:52] [INFO]   -> Set field 'incidentInternalId' = "2026000574"
[2026-03-02 13:06:52] [INFO]   -> Set field 'dispatchRunNumber' = "2026000574"
[2026-03-02 13:06:52] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 13:06:52] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-02 13:06:52] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-02 13:06:52] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 13:06:52] [INFO]   -> Found value: 1922
[2026-03-02 13:06:52] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1922
[2026-03-02 13:06:52] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 13:06:52] [INFO]   -> Found value: TN
[2026-03-02 13:06:52] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 13:06:52] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 13:06:52] [INFO]   -> Found value: 38506
[2026-03-02 13:06:52] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-02 13:06:52] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 13:06:52] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:52] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 13:06:52] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:52] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 13:06:52] [INFO]   -> Found value: 36.08877
[2026-03-02 13:06:52] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0887699999999966848918120376765727996826171875
[2026-03-02 13:06:52] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 13:06:52] [INFO]   -> Found value: -85.55213
[2026-03-02 13:06:52] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.552130000000005338733899407088756561279296875
[2026-03-02 13:06:52] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 13:06:52] [INFO]   -> Found value: 2026-03-01 22:18:52
[2026-03-02 13:06:52] [INFO]   -> Set field 'alarm' = "2026-03-01 22:18:52"
[2026-03-02 13:06:52] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 13:06:52] [INFO]   -> Found value: 2026-03-01 22:20:21
[2026-03-02 13:06:52] [INFO]   -> Set field 'dispatched' = "2026-03-01 22:20:21"
[2026-03-02 13:06:52] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 13:06:52] [INFO]   -> Found value: 2026-03-01 22:23:19
[2026-03-02 13:06:52] [INFO]   -> Set field 'enroute' = "2026-03-01 22:23:19"
[2026-03-02 13:06:52] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 13:06:52] [INFO]   -> Found value: 2026-03-01 22:31:47
[2026-03-02 13:06:52] [INFO]   -> Set field 'onScene' = "2026-03-01 22:31:47"
[2026-03-02 13:06:52] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 13:06:52] [INFO]   -> Found value: 2026-03-01 22:42:38
[2026-03-02 13:06:52] [INFO]   -> Set field 'cleared' = "2026-03-01 22:42:38"
[2026-03-02 13:06:52] [INFO]   -> Set field 'inService' = "2026-03-01 22:42:38"
[2026-03-02 13:06:52] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 13:06:52] [INFO]   -> Found value: ELLER RIDGE RD
[2026-03-02 13:06:52] [INFO]   -> Set field 'incidentLocationCross' = "ELLER RIDGE RD"
[2026-03-02 13:06:52] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 13:06:52] [INFO]   -> Found value: EN11
[2026-03-02 13:06:52] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-02 13:06:52] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 13:06:52] [INFO]   -> Found value: 2026-03-01 22:20:21
[2026-03-02 13:06:52] [INFO]   -> Set field 'timedispatch' = "2026-03-01 22:20:21"
[2026-03-02 13:06:52] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 13:06:52] [INFO]   -> Found value: 2026-03-01 22:23:19
[2026-03-02 13:06:52] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-01 22:23:19"
[2026-03-02 13:06:52] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 13:06:52] [INFO]   -> Found value: 2026-03-01 22:31:47
[2026-03-02 13:06:52] [INFO]   -> Set field 'timeonscene' = "2026-03-01 22:31:47"
[2026-03-02 13:06:52] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 13:06:52] [INFO]   -> Found value: 2026-03-01 22:42:38
[2026-03-02 13:06:52] [INFO]   -> Set field 'timeunitclear' = "2026-03-01 22:42:38"
[2026-03-02 13:06:52] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 13:06:52] [INFO]   -> No value found (null or empty)
[2026-03-02 13:06:52] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 13:06:52] [INFO]   -> Found value: 20260022793
[2026-03-02 13:06:52] [INFO]   -> Set field 'policeReportNumber' = "20260022793"
[2026-03-02 13:06:52] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 13:06:52] [INFO]   -> Found value: HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03/01/26...
[2026-03-02 13:06:52] [INFO]   -> Set field 'dispatchNotes' = "HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03\/01\/26 22:19:47 DSWINK]]"
[2026-03-02 13:06:52] [INFO]   -> Set field 'cADLog' = "HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03\/01\/26 22:19:47 DSWINK]]"
[2026-03-02 13:06:52] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 13:06:52] [INFO]   -> Found value: COOKEVILLE
[2026-03-02 13:06:52] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-02 13:06:52] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 13:06:52] [INFO]   -> Found value: GOOLSBY
[2026-03-02 13:06:52] [INFO]   -> Set field 'streetName' = "GOOLSBY"
[2026-03-02 13:06:52] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 13:06:52] [INFO]   -> Found value: LN
[2026-03-02 13:06:52] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-02 13:06:52] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 13:06:52] [INFO]   -> Found value: 1922 GOOLSBY LN
[2026-03-02 13:06:52] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1922 GOOLSBY LN"
[2026-03-02 13:06:52] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-02 13:06:52] [INFO] Concatenating street name and type
[2026-03-02 13:06:52] [INFO]   -> Combined street name: GOOLSBY LN
[2026-03-02 13:06:52] [INFO] Built locationCoordinates from lat/lng: 36.08877,-85.55213
[2026-03-02 13:06:52] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000574","dispatchRunNumber":"2026000574","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":1922,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.0887699999999966848918120376765727996826171875,"nERISIncidentLongitude":-85.552130000000005338733899407088756561279296875,"alarm":"2026-03-01 22:18:52","dispatched":"2026-03-01 22:20:21","enroute":"2026-03-01 22:23:19","onScene":"2026-03-01 22:31:47","cleared":"2026-03-01 22:42:38","inService":"2026-03-01 22:42:38","incidentLocationCross":"ELLER RIDGE RD","cADVehicleID":"EN11","timedispatch":"2026-03-01 22:20:21","timeenroutetoscene":"2026-03-01 22:23:19","timeonscene":"2026-03-01 22:31:47","timeunitclear":"2026-03-01 22:42:38","policeReportNumber":"20260022793","dispatchNotes":"HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03\/01\/26 22:19:47 DSWINK]]","cADLog":"HOLE BURNT IN DECK FROM CIGAR SMOKE BUT NO ACTIVE FIRE WOULD LIKE FD TO COME CHECK IT OUT  [03\/01\/26 22:19:47 DSWINK]]","incidentLocationCity":"COOKEVILLE","streetName":"GOOLSBY LN","incidentAddressTextVersionStreet":"1922 GOOLSBY LN","locationCoordinates":"36.08877,-85.55213"}
[2026-03-02 13:06:52] [INFO] Number of extracted fields: 28
[2026-03-02 13:06:52] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-02 13:06:52] [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-03-02 13:06:52] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-02 13:06:52] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 13:06:52] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 13:06:52] [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-03-02 13:06:52] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 13:06:52] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 13:06:52] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-02 13:06:52] [INFO] Found existing Dispatch with cADNumber '2026000574', ID: 69a58b5643bab6d18 - will update instead of create
[2026-03-02 13:06:52] [INFO] Updated existing Dispatches record with ID: 69a58b5643bab6d18
[2026-03-02 13:06:52] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 13:06:52] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 13:06: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-03-02 13:06:56] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022793_20260302_125805_3.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 13:06:56] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 15:40:32] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-05812.xml
[2026-03-02 15:40:32] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-05812.xml for user: 68d56363ec1209189
[2026-03-02 15:40:32] [INFO] File size: 1918 bytes
[2026-03-02 15:40:33] [INFO] Created FTPFiles record with ID: 69a5af71485943d3a
[2026-03-02 15:40:33] [INFO] About to extract fields from XML. File size: 1918 bytes
[2026-03-02 15:40:33] [INFO] Number of mappings: 21
[2026-03-02 15:40:33] [INFO] Starting XML parsing. Content length: 1918
[2026-03-02 15:40:33] [INFO] XML parsed successfully. Root element: Incident
[2026-03-02 15:40:33] [INFO] Processing 21 field mappings
[2026-03-02 15:40:33] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-02 15:40:33] [INFO]   -> Found value: 26-05812
[2026-03-02 15:40:33] [INFO]   -> Set field 'dispatchRunNumber' = "26-05812"
[2026-03-02 15:40:33] [INFO]   -> Set field 'cADNumber' = "26-05812"
[2026-03-02 15:40:33] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-02 15:40:33] [INFO]   -> Found value: 1300
[2026-03-02 15:40:33] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1300
[2026-03-02 15:40:33] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-02 15:40:33] [INFO]   -> Found value: N MAIN ST
[2026-03-02 15:40:33] [INFO]   -> Set field 'streetName' = "N MAIN ST"
[2026-03-02 15:40:33] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-02 15:40:33] [INFO]   -> Found value: 314
[2026-03-02 15:40:33] [INFO]   -> Set field 'incidentLocationApt' = 314
[2026-03-02 15:40:33] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-02 15:40:33] [INFO]   -> Found value: SIKESTON
[2026-03-02 15:40:33] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-03-02 15:40:33] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-02 15:40:33] [INFO]   -> Found value: MAINGATE CONDOMINIUMS
[2026-03-02 15:40:33] [INFO]   -> Set field 'businessName' = "MAINGATE CONDOMINIUMS"
[2026-03-02 15:40:33] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-02 15:40:33] [INFO]   -> Found value: MO
[2026-03-02 15:40:33] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-03-02 15:40:33] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-02 15:40:33] [INFO]   -> Found value: 63801
[2026-03-02 15:40:33] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-03-02 15:40:33] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-02 15:40:33] [INFO]   -> Found value: 0
[2026-03-02 15:40:33] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-02 15:40:33] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-02 15:40:33] [INFO]   -> Found value: 0
[2026-03-02 15:40:33] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-02 15:40:33] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-02 15:40:33] [INFO]   -> Found value: MEDICAL
[2026-03-02 15:40:33] [INFO]   -> Set field 'incidentTypeValue1' = "MEDICAL"
[2026-03-02 15:40:33] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-02 15:40:33] [INFO]   -> Found value: 02-25-2026 11:07:11|50 YO FEMALE UNRESPONSIVE NOT BREATHING 
LOCATED ON THE 3RD FLOOR APT 314 02-25-...
[2026-03-02 15:40:33] [INFO]   -> Set field 'dispatchNotes' = "02-25-2026 11:07:11|50 YO FEMALE UNRESPONSIVE NOT BREATHING \nLOCATED ON THE 3RD FLOOR APT 314 02-25-2026 11:10:08|ENG3 ENROUTE 02-25-2026 11:10:51|1512 EN ROUTE TO ASSIST 02-25-2026 11:20:37|CORONER NEEDED 02-25-2026 11:22:50|CORONER NOTIFIED 02-25-2026 11:38:24|Disposition - SSCA UNIT:  NRN 02-25-2026 11:38:48|Disposition - SSCA:  RPT 02-25-2026 11:45:16|FAMILY REQUESTING MCMIKLE 02-25-2026 11:45:32|Disposition - Scott County Coroner:  NRN 02-25-2026 11:47:24|MCMIKLE ETA 15-20 MIN 02-25-2026 12:30:28|Disposition - SDPS PD:  RPT 02-26-2026 09:32:49|Disposition - SDPS PD:  RPT"
[2026-03-02 15:40:33] [INFO]   -> Set field 'cADLog' = "02-25-2026 11:07:11|50 YO FEMALE UNRESPONSIVE NOT BREATHING \nLOCATED ON THE 3RD FLOOR APT 314 02-25-2026 11:10:08|ENG3 ENROUTE 02-25-2026 11:10:51|1512 EN ROUTE TO ASSIST 02-25-2026 11:20:37|CORONER NEEDED 02-25-2026 11:22:50|CORONER NOTIFIED 02-25-2026 11:38:24|Disposition - SSCA UNIT:  NRN 02-25-2026 11:38:48|Disposition - SSCA:  RPT 02-25-2026 11:45:16|FAMILY REQUESTING MCMIKLE 02-25-2026 11:45:32|Disposition - Scott County Coroner:  NRN 02-25-2026 11:47:24|MCMIKLE ETA 15-20 MIN 02-25-2026 12:30:28|Disposition - SDPS PD:  RPT 02-26-2026 09:32:49|Disposition - SDPS PD:  RPT"
[2026-03-02 15:40:33] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-02 15:40:33] [INFO]   -> Found value: 02-25-2026T11:09:10
[2026-03-02 15:40:33] [INFO] Reformatted DD-MM-YYYY date '02-25-2026' (day=02, month=25) to ISO: 2026-25-02T11:09:10
[2026-03-02 15:40:33] [ERROR] Error formatting datetime '2026-25-02T11:09:10': Failed to parse time string (2026-25-02T11:09:10) at position 6 (5): Unexpected character
[2026-03-02 15:40:33] [INFO]   -> Set field 'alarm' = null
[2026-03-02 15:40:33] [INFO] Reformatted DD-MM-YYYY date '02-25-2026' (day=02, month=25) to ISO: 2026-25-02T11:09:10
[2026-03-02 15:40:33] [ERROR] Error formatting datetime '2026-25-02T11:09:10': Failed to parse time string (2026-25-02T11:09:10) at position 6 (5): Unexpected character
[2026-03-02 15:40:33] [INFO]   -> Set field 'dispatched' = null
[2026-03-02 15:40:33] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-02 15:40:33] [INFO]   -> Found value: 02-25-2026T11:14:02
[2026-03-02 15:40:33] [INFO] Reformatted DD-MM-YYYY date '02-25-2026' (day=02, month=25) to ISO: 2026-25-02T11:14:02
[2026-03-02 15:40:33] [ERROR] Error formatting datetime '2026-25-02T11:14:02': Failed to parse time string (2026-25-02T11:14:02) at position 6 (5): Unexpected character
[2026-03-02 15:40:33] [INFO]   -> Set field 'onScene' = null
[2026-03-02 15:40:33] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-02 15:40:33] [INFO]   -> Found value: 02-25-2026T12:30:25
[2026-03-02 15:40:33] [INFO] Reformatted DD-MM-YYYY date '02-25-2026' (day=02, month=25) to ISO: 2026-25-02T12:30:25
[2026-03-02 15:40:33] [ERROR] Error formatting datetime '2026-25-02T12:30:25': Failed to parse time string (2026-25-02T12:30:25) at position 6 (5): Unexpected character
[2026-03-02 15:40:33] [INFO]   -> Set field 'cleared' = null
[2026-03-02 15:40:33] [INFO] Reformatted DD-MM-YYYY date '02-25-2026' (day=02, month=25) to ISO: 2026-25-02T12:30:25
[2026-03-02 15:40:33] [ERROR] Error formatting datetime '2026-25-02T12:30:25': Failed to parse time string (2026-25-02T12:30:25) at position 6 (5): Unexpected character
[2026-03-02 15:40:33] [INFO]   -> Set field 'inService' = null
[2026-03-02 15:40:33] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-02 15:40:33] [INFO]   -> Found value: ENG2
[2026-03-02 15:40:33] [INFO]   -> Set field 'cADVehicleID' = "ENG2"
[2026-03-02 15:40:33] [INFO]   -> Set field 'name' = "ENG2"
[2026-03-02 15:40:33] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-02 15:40:33] [INFO]   -> No value found (null or empty)
[2026-03-02 15:40:33] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-02 15:40:33] [INFO]   -> No value found (null or empty)
[2026-03-02 15:40:33] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-02 15:40:33] [INFO]   -> Found value: 03-02-2026T09:39:33
[2026-03-02 15:40:33] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T09:39:33
[2026-03-02 15:40:33] [INFO]   -> Set field 'timeunitclear' = "2026-02-03 09:39:33"
[2026-03-02 15:40:33] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-02 15:40:33] [INFO]   -> Found value: 03-02-2026T09:39:30
[2026-03-02 15:40:33] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T09:39:30
[2026-03-02 15:40:33] [INFO]   -> Set field 'timedispatch' = "2026-02-03 09:39:30"
[2026-03-02 15:40:33] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-02 15:40:33] [INFO]   -> Found value: SDPSFD
[2026-03-02 15:40:33] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-03-02 15:40:33] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-02 15:40:33] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-02 15:40:33] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-05812","cADNumber":"26-05812","incidentLocationStreetNumber":1300,"streetName":"N MAIN ST","incidentLocationApt":314,"incidentLocationCity":"SIKESTON","businessName":"MAINGATE CONDOMINIUMS","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"MEDICAL","dispatchNotes":"02-25-2026 11:07:11|50 YO FEMALE UNRESPONSIVE NOT BREATHING \nLOCATED ON THE 3RD FLOOR APT 314 02-25-2026 11:10:08|ENG3 ENROUTE 02-25-2026 11:10:51|1512 EN ROUTE TO ASSIST 02-25-2026 11:20:37|CORONER NEEDED 02-25-2026 11:22:50|CORONER NOTIFIED 02-25-2026 11:38:24|Disposition - SSCA UNIT:  NRN 02-25-2026 11:38:48|Disposition - SSCA:  RPT 02-25-2026 11:45:16|FAMILY REQUESTING MCMIKLE 02-25-2026 11:45:32|Disposition - Scott County Coroner:  NRN 02-25-2026 11:47:24|MCMIKLE ETA 15-20 MIN 02-25-2026 12:30:28|Disposition - SDPS PD:  RPT 02-26-2026 09:32:49|Disposition - SDPS PD:  RPT","cADLog":"02-25-2026 11:07:11|50 YO FEMALE UNRESPONSIVE NOT BREATHING \nLOCATED ON THE 3RD FLOOR APT 314 02-25-2026 11:10:08|ENG3 ENROUTE 02-25-2026 11:10:51|1512 EN ROUTE TO ASSIST 02-25-2026 11:20:37|CORONER NEEDED 02-25-2026 11:22:50|CORONER NOTIFIED 02-25-2026 11:38:24|Disposition - SSCA UNIT:  NRN 02-25-2026 11:38:48|Disposition - SSCA:  RPT 02-25-2026 11:45:16|FAMILY REQUESTING MCMIKLE 02-25-2026 11:45:32|Disposition - Scott County Coroner:  NRN 02-25-2026 11:47:24|MCMIKLE ETA 15-20 MIN 02-25-2026 12:30:28|Disposition - SDPS PD:  RPT 02-26-2026 09:32:49|Disposition - SDPS PD:  RPT","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"ENG2","name":"ENG2","timeunitclear":"2026-02-03 09:39:33","timedispatch":"2026-02-03 09:39:30","cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-03-02 15:40:33] [INFO] Number of extracted fields: 25
[2026-03-02 15:40:33] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-03-02 15:40:33] [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-03-02 15:40:33] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-03-02 15:40:33] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-03-02 15:40:33] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-03-02 15:40:33] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-03-02 15:40:33] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-03-02 15:40:33] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-03-02 15:40:33] [INFO] Found existing IncidentTypeMapping with ID: 6976908dc15ecc087
[2026-03-02 15:40:35] [INFO] Created new Dispatches record with ID: 69a5af7223d2fb3d3
[2026-03-02 15:40:35] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-02
[2026-03-02 15:40:35] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-05812.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-02/SDPSFD_26-05812.xml
[2026-03-02 15:40:35] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-05812.xml
[2026-03-02 15:48:08] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml
[2026-03-02 15:48:08] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml for user: 69320e6a9e3e5ef71
[2026-03-02 15:48:08] [INFO] File size: 12566 bytes
[2026-03-02 15:48:08] [INFO] Created FTPFiles record with ID: 69a5b138c63a2a848
[2026-03-02 15:48:08] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-02 15:48:08] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-02
[2026-03-02 15:48:08] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-02/cfs_2026-013752.xml
[2026-03-02 15:48:08] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml
[2026-03-02 15:48:18] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml
[2026-03-02 15:48:18] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml for user: 69320e6a9e3e5ef71
[2026-03-02 15:48:18] [INFO] File size: 13534 bytes
[2026-03-02 15:48:18] [INFO] Created FTPFiles record with ID: 69a5b142972e3c6ba
[2026-03-02 15:48:18] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-02 15:48:18] [INFO] File already exists in archive, using unique name: cfs_2026-013752_1772466498.xml
[2026-03-02 15:48:18] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-02/cfs_2026-013752_1772466498.xml
[2026-03-02 15:48:18] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml
[2026-03-02 15:48:31] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml
[2026-03-02 15:48:31] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml for user: 69320e6a9e3e5ef71
[2026-03-02 15:48:31] [INFO] File size: 13524 bytes
[2026-03-02 15:48:31] [INFO] Created FTPFiles record with ID: 69a5b14faf1c8266a
[2026-03-02 15:48:31] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-02 15:48:31] [INFO] File already exists in archive, using unique name: cfs_2026-013752_1772466511.xml
[2026-03-02 15:48:31] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-02/cfs_2026-013752_1772466511.xml
[2026-03-02 15:48:31] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml
[2026-03-02 15:50:32] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml
[2026-03-02 15:50:32] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml for user: 69320e6a9e3e5ef71
[2026-03-02 15:50:32] [INFO] File size: 16383 bytes
[2026-03-02 15:50:33] [INFO] Created FTPFiles record with ID: 69a5b1c94bf57a605
[2026-03-02 15:50:33] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-02 15:50:33] [INFO] File already exists in archive, using unique name: cfs_2026-013752_1772466633.xml
[2026-03-02 15:50:33] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-02/cfs_2026-013752_1772466633.xml
[2026-03-02 15:50:33] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml
[2026-03-02 15:50:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml
[2026-03-02 15:50:47] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml for user: 69320e6a9e3e5ef71
[2026-03-02 15:50:47] [INFO] File size: 17986 bytes
[2026-03-02 15:50:47] [INFO] Created FTPFiles record with ID: 69a5b1d7622853b9b
[2026-03-02 15:50:47] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-02 15:50:47] [INFO] File already exists in archive, using unique name: cfs_2026-013752_1772466647.xml
[2026-03-02 15:50:47] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-02/cfs_2026-013752_1772466647.xml
[2026-03-02 15:50:47] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml
[2026-03-02 15:53:34] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml
[2026-03-02 15:53:34] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml for user: 69320e6a9e3e5ef71
[2026-03-02 15:53:34] [INFO] File size: 19594 bytes
[2026-03-02 15:53:35] [INFO] Created FTPFiles record with ID: 69a5b27f20727db6c
[2026-03-02 15:53:35] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-02 15:53:35] [INFO] File already exists in archive, using unique name: cfs_2026-013752_1772466815.xml
[2026-03-02 15:53:35] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-02/cfs_2026-013752_1772466815.xml
[2026-03-02 15:53:35] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml
[2026-03-02 15:54:12] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml
[2026-03-02 15:54:12] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml for user: 69320e6a9e3e5ef71
[2026-03-02 15:54:12] [INFO] File size: 20545 bytes
[2026-03-02 15:54:12] [INFO] Created FTPFiles record with ID: 69a5b2a4c457c97e7
[2026-03-02 15:54:12] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-02 15:54:12] [INFO] File already exists in archive, using unique name: cfs_2026-013752_1772466852.xml
[2026-03-02 15:54:12] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-02/cfs_2026-013752_1772466852.xml
[2026-03-02 15:54:12] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml
[2026-03-02 16:05:02] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml
[2026-03-02 16:05:02] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml for user: 69320e6a9e3e5ef71
[2026-03-02 16:05:02] [INFO] File size: 21550 bytes
[2026-03-02 16:05:02] [INFO] Created FTPFiles record with ID: 69a5b52ebd3b55b1a
[2026-03-02 16:05:02] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-02 16:05:02] [INFO] File already exists in archive, using unique name: cfs_2026-013752_1772467502.xml
[2026-03-02 16:05:02] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-02/cfs_2026-013752_1772467502.xml
[2026-03-02 16:05:02] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013752.xml
[2026-03-02 18:07:33] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06319.xml
[2026-03-02 18:07:33] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06319.xml for user: 68d56363ec1209189
[2026-03-02 18:07:33] [INFO] File size: 2097 bytes
[2026-03-02 18:07:34] [INFO] Created FTPFiles record with ID: 69a5d1e641175e57f
[2026-03-02 18:07:34] [INFO] About to extract fields from XML. File size: 2097 bytes
[2026-03-02 18:07:34] [INFO] Number of mappings: 21
[2026-03-02 18:07:34] [INFO] Starting XML parsing. Content length: 2097
[2026-03-02 18:07:34] [INFO] XML parsed successfully. Root element: Incident
[2026-03-02 18:07:34] [INFO] Processing 21 field mappings
[2026-03-02 18:07:34] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-02 18:07:34] [INFO]   -> Found value: 26-06319
[2026-03-02 18:07:34] [INFO]   -> Set field 'dispatchRunNumber' = "26-06319"
[2026-03-02 18:07:34] [INFO]   -> Set field 'cADNumber' = "26-06319"
[2026-03-02 18:07:34] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-02 18:07:34] [INFO]   -> Found value: 103
[2026-03-02 18:07:34] [INFO]   -> Set field 'incidentLocationStreetNumber' = 103
[2026-03-02 18:07:34] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-02 18:07:34] [INFO]   -> Found value: E KATHLEEN ST
[2026-03-02 18:07:34] [INFO]   -> Set field 'streetName' = "E KATHLEEN ST"
[2026-03-02 18:07:34] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-02 18:07:34] [INFO]   -> No value found (null or empty)
[2026-03-02 18:07:34] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-02 18:07:34] [INFO]   -> Found value: SIKESTON
[2026-03-02 18:07:34] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-03-02 18:07:34] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-02 18:07:34] [INFO]   -> Found value: CHRISTIAN ACADEMY
[2026-03-02 18:07:34] [INFO]   -> Set field 'businessName' = "CHRISTIAN ACADEMY"
[2026-03-02 18:07:34] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-02 18:07:34] [INFO]   -> Found value: MO
[2026-03-02 18:07:34] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-03-02 18:07:34] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-02 18:07:34] [INFO]   -> Found value: 63801
[2026-03-02 18:07:34] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-03-02 18:07:34] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-02 18:07:34] [INFO]   -> Found value: 0
[2026-03-02 18:07:34] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-02 18:07:34] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-02 18:07:34] [INFO]   -> Found value: 0
[2026-03-02 18:07:34] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-02 18:07:34] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-02 18:07:34] [INFO]   -> Found value: FIRE-ALARM MECH
[2026-03-02 18:07:34] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-ALARM MECH"
[2026-03-02 18:07:34] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-02 18:07:34] [INFO]   -> Found value: 03-02-2026 12:03:37|DOWN STAIRS

KARYLA MARSH
573-380-9830
NEG CONTACT 

 03-02-2026 12:05:07|B45 NO...
[2026-03-02 18:07:34] [INFO]   -> Set field 'dispatchNotes' = "03-02-2026 12:03:37|DOWN STAIRS\n\nKARYLA MARSH\n573-380-9830\nNEG CONTACT \n\n 03-02-2026 12:05:07|B45 NOTHING SHOWING 03-02-2026 12:06:00|513 WILL HANDLE FOR 546 03-02-2026 12:06:28|CANCEL PER B45"
[2026-03-02 18:07:34] [INFO]   -> Set field 'cADLog' = "03-02-2026 12:03:37|DOWN STAIRS\n\nKARYLA MARSH\n573-380-9830\nNEG CONTACT \n\n 03-02-2026 12:05:07|B45 NOTHING SHOWING 03-02-2026 12:06:00|513 WILL HANDLE FOR 546 03-02-2026 12:06:28|CANCEL PER B45"
[2026-03-02 18:07:34] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-02 18:07:34] [INFO]   -> Found value: 03-02-2026T12:04:13
[2026-03-02 18:07:34] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T12:04:13
[2026-03-02 18:07:34] [INFO]   -> Set field 'alarm' = "2026-02-03 12:04:13"
[2026-03-02 18:07:34] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T12:04:13
[2026-03-02 18:07:34] [INFO]   -> Set field 'dispatched' = "2026-02-03 12:04:13"
[2026-03-02 18:07:34] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-02 18:07:34] [INFO]   -> Found value: 03-02-2026T12:06:07
[2026-03-02 18:07:34] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T12:06:07
[2026-03-02 18:07:34] [INFO]   -> Set field 'onScene' = "2026-02-03 12:06:07"
[2026-03-02 18:07:34] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-02 18:07:34] [INFO]   -> Found value: 03-02-2026T12:06:31
[2026-03-02 18:07:34] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T12:06:31
[2026-03-02 18:07:34] [INFO]   -> Set field 'cleared' = "2026-02-03 12:06:31"
[2026-03-02 18:07:34] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T12:06:31
[2026-03-02 18:07:34] [INFO]   -> Set field 'inService' = "2026-02-03 12:06:31"
[2026-03-02 18:07:34] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-02 18:07:34] [INFO]   -> Found value: ENG2
[2026-03-02 18:07:34] [INFO]   -> Set field 'cADVehicleID' = "ENG2"
[2026-03-02 18:07:34] [INFO]   -> Set field 'name' = "ENG2"
[2026-03-02 18:07:34] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-02 18:07:34] [INFO]   -> Found value: 03-02-2026T12:05:24
[2026-03-02 18:07:34] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T12:05:24
[2026-03-02 18:07:34] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-03 12:05:24"
[2026-03-02 18:07:34] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-02 18:07:34] [INFO]   -> No value found (null or empty)
[2026-03-02 18:07:34] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-02 18:07:34] [INFO]   -> Found value: 03-02-2026T12:06:31
[2026-03-02 18:07:34] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T12:06:31
[2026-03-02 18:07:34] [INFO]   -> Set field 'timeunitclear' = "2026-02-03 12:06:31"
[2026-03-02 18:07:34] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-02 18:07:34] [INFO]   -> Found value: 03-02-2026T12:05:21
[2026-03-02 18:07:34] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T12:05:21
[2026-03-02 18:07:34] [INFO]   -> Set field 'timedispatch' = "2026-02-03 12:05:21"
[2026-03-02 18:07:34] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-02 18:07:34] [INFO]   -> Found value: SDPSFD
[2026-03-02 18:07:34] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-03-02 18:07:34] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-02 18:07:34] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-02 18:07:34] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-06319","cADNumber":"26-06319","incidentLocationStreetNumber":103,"streetName":"E KATHLEEN ST","incidentLocationCity":"SIKESTON","businessName":"CHRISTIAN ACADEMY","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-ALARM MECH","dispatchNotes":"03-02-2026 12:03:37|DOWN STAIRS\n\nKARYLA MARSH\n573-380-9830\nNEG CONTACT \n\n 03-02-2026 12:05:07|B45 NOTHING SHOWING 03-02-2026 12:06:00|513 WILL HANDLE FOR 546 03-02-2026 12:06:28|CANCEL PER B45","cADLog":"03-02-2026 12:03:37|DOWN STAIRS\n\nKARYLA MARSH\n573-380-9830\nNEG CONTACT \n\n 03-02-2026 12:05:07|B45 NOTHING SHOWING 03-02-2026 12:06:00|513 WILL HANDLE FOR 546 03-02-2026 12:06:28|CANCEL PER B45","alarm":"2026-02-03 12:04:13","dispatched":"2026-02-03 12:04:13","onScene":"2026-02-03 12:06:07","cleared":"2026-02-03 12:06:31","inService":"2026-02-03 12:06:31","cADVehicleID":"ENG2","name":"ENG2","timeenroutetoscene":"2026-02-03 12:05:24","timeunitclear":"2026-02-03 12:06:31","timedispatch":"2026-02-03 12:05:21","cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-03-02 18:07:34] [INFO] Number of extracted fields: 25
[2026-03-02 18:07:34] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-03-02 18:07:34] [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-03-02 18:07:34] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-03-02 18:07:34] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-03-02 18:07:34] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-03-02 18:07:34] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-03-02 18:07:34] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-03-02 18:07:34] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-03-02 18:07:34] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e872e5ae13
[2026-03-02 18:07:36] [INFO] Created new Dispatches record with ID: 69a5d1e732f96fd58
[2026-03-02 18:07:36] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06319.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-02/SDPSFD_26-06319.xml
[2026-03-02 18:07:36] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06319.xml
[2026-03-02 18:35:57] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06320.xml
[2026-03-02 18:35:57] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06320.xml for user: 68d56363ec1209189
[2026-03-02 18:35:57] [INFO] File size: 2463 bytes
[2026-03-02 18:35:58] [INFO] Created FTPFiles record with ID: 69a5d88e983c37bdb
[2026-03-02 18:35:58] [INFO] About to extract fields from XML. File size: 2463 bytes
[2026-03-02 18:35:58] [INFO] Number of mappings: 21
[2026-03-02 18:35:58] [INFO] Starting XML parsing. Content length: 2463
[2026-03-02 18:35:58] [INFO] XML parsed successfully. Root element: Incident
[2026-03-02 18:35:58] [INFO] Processing 21 field mappings
[2026-03-02 18:35:58] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-02 18:35:58] [INFO]   -> Found value: 26-06320
[2026-03-02 18:35:58] [INFO]   -> Set field 'dispatchRunNumber' = "26-06320"
[2026-03-02 18:35:58] [INFO]   -> Set field 'cADNumber' = "26-06320"
[2026-03-02 18:35:58] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-02 18:35:58] [INFO]   -> Found value: 905
[2026-03-02 18:35:58] [INFO]   -> Set field 'incidentLocationStreetNumber' = 905
[2026-03-02 18:35:58] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-02 18:35:58] [INFO]   -> Found value: S MAIN ST
[2026-03-02 18:35:58] [INFO]   -> Set field 'streetName' = "S MAIN ST"
[2026-03-02 18:35:58] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-02 18:35:58] [INFO]   -> No value found (null or empty)
[2026-03-02 18:35:58] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-02 18:35:58] [INFO]   -> Found value: SIKESTON
[2026-03-02 18:35:58] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-03-02 18:35:58] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-02 18:35:58] [INFO]   -> Found value: BJ'S KWIK SHOP
[2026-03-02 18:35:58] [INFO]   -> Set field 'businessName' = "BJ'S KWIK SHOP"
[2026-03-02 18:35:58] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-02 18:35:58] [INFO]   -> Found value: MO
[2026-03-02 18:35:58] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-03-02 18:35:58] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-02 18:35:58] [INFO]   -> Found value: 63801
[2026-03-02 18:35:58] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-03-02 18:35:58] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-02 18:35:58] [INFO]   -> Found value: 0
[2026-03-02 18:35:58] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-02 18:35:58] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-02 18:35:58] [INFO]   -> Found value: 0
[2026-03-02 18:35:58] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-02 18:35:58] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-02 18:35:58] [INFO]   -> Found value: ACCIDENT-J2
[2026-03-02 18:35:58] [INFO]   -> Set field 'incidentTypeValue1' = "ACCIDENT-J2"
[2026-03-02 18:35:58] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-02 18:35:58] [INFO]   -> Found value: 03-02-2026 12:04:20|Call Received on 03/02/2026 @ 12:04

FACE INJURY
2 CARS IN ROADWAY
 03-02-2026 1...
[2026-03-02 18:35:58] [INFO]   -> Set field 'dispatchNotes' = "03-02-2026 12:04:20|Call Received on 03\/02\/2026 @ 12:04\n\nFACE INJURY\n2 CARS IN ROADWAY\n 03-02-2026 12:08:10|CONTACTED NMCO FOR EMS 03-02-2026 12:09:09|****** Appended notes from E911 Call begin ******\nBusiness Name: SIRIUSXM CVS TELEMATICS CALL CT\nBusiness Phone: (972) 916-7327 \nAddress: 1 ID #, VOIP\nSource: E911 \nLaw Enf: Sikeston Department of Public Safety \nOpened DateTime: 03\/02\/2026 12:04:36\nNotes: Call Received on 03\/02\/2026 @ 12:04\n****** Appended notes from E911 Call end   ******\n 03-02-2026 12:10:28|LANE 1 SB BLOCKED 03-02-2026 12:11:14|546 IS OUT WITH 549 03-02-2026 12:13:37|B45 ON 03-02-2026 12:14:20|SATTERFIELD NEEDED 03-02-2026 12:14:42|PER OWNER REQUEST 03-02-2026 12:17:18|SATTERFIELD ADVISED 03-02-2026 12:27:53|ONE WAS EXTRADITED ENG2 BACK IN SERVICE 03-02-2026 12:34:57|ONE CITATION ISSUED TO WATKINS"
[2026-03-02 18:35:58] [INFO]   -> Set field 'cADLog' = "03-02-2026 12:04:20|Call Received on 03\/02\/2026 @ 12:04\n\nFACE INJURY\n2 CARS IN ROADWAY\n 03-02-2026 12:08:10|CONTACTED NMCO FOR EMS 03-02-2026 12:09:09|****** Appended notes from E911 Call begin ******\nBusiness Name: SIRIUSXM CVS TELEMATICS CALL CT\nBusiness Phone: (972) 916-7327 \nAddress: 1 ID #, VOIP\nSource: E911 \nLaw Enf: Sikeston Department of Public Safety \nOpened DateTime: 03\/02\/2026 12:04:36\nNotes: Call Received on 03\/02\/2026 @ 12:04\n****** Appended notes from E911 Call end   ******\n 03-02-2026 12:10:28|LANE 1 SB BLOCKED 03-02-2026 12:11:14|546 IS OUT WITH 549 03-02-2026 12:13:37|B45 ON 03-02-2026 12:14:20|SATTERFIELD NEEDED 03-02-2026 12:14:42|PER OWNER REQUEST 03-02-2026 12:17:18|SATTERFIELD ADVISED 03-02-2026 12:27:53|ONE WAS EXTRADITED ENG2 BACK IN SERVICE 03-02-2026 12:34:57|ONE CITATION ISSUED TO WATKINS"
[2026-03-02 18:35:58] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-02 18:35:58] [INFO]   -> Found value: 03-02-2026T12:06:48
[2026-03-02 18:35:58] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T12:06:48
[2026-03-02 18:35:58] [INFO]   -> Set field 'alarm' = "2026-02-03 12:06:48"
[2026-03-02 18:35:58] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T12:06:48
[2026-03-02 18:35:58] [INFO]   -> Set field 'dispatched' = "2026-02-03 12:06:48"
[2026-03-02 18:35:58] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-02 18:35:58] [INFO]   -> Found value: 03-02-2026T12:08:53
[2026-03-02 18:35:58] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T12:08:53
[2026-03-02 18:35:58] [INFO]   -> Set field 'onScene' = "2026-02-03 12:08:53"
[2026-03-02 18:35:58] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-02 18:35:58] [INFO]   -> Found value: 03-02-2026T12:35:01
[2026-03-02 18:35:58] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T12:35:01
[2026-03-02 18:35:58] [INFO]   -> Set field 'cleared' = "2026-02-03 12:35:01"
[2026-03-02 18:35:58] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T12:35:01
[2026-03-02 18:35:58] [INFO]   -> Set field 'inService' = "2026-02-03 12:35:01"
[2026-03-02 18:35:58] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-02 18:35:58] [INFO]   -> Found value: ENG2
[2026-03-02 18:35:58] [INFO]   -> Set field 'cADVehicleID' = "ENG2"
[2026-03-02 18:35:58] [INFO]   -> Set field 'name' = "ENG2"
[2026-03-02 18:35:58] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-02 18:35:58] [INFO]   -> Found value: 03-02-2026T12:07:55
[2026-03-02 18:35:58] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T12:07:55
[2026-03-02 18:35:58] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-03 12:07:55"
[2026-03-02 18:35:58] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-02 18:35:58] [INFO]   -> Found value: 03-02-2026T12:08:53
[2026-03-02 18:35:58] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T12:08:53
[2026-03-02 18:35:58] [INFO]   -> Set field 'timeonscene' = "2026-02-03 12:08:53"
[2026-03-02 18:35:58] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-02 18:35:58] [INFO]   -> Found value: 03-02-2026T12:26:58
[2026-03-02 18:35:58] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T12:26:58
[2026-03-02 18:35:58] [INFO]   -> Set field 'timeunitclear' = "2026-02-03 12:26:58"
[2026-03-02 18:35:58] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-02 18:35:58] [INFO]   -> Found value: 03-02-2026T12:07:53
[2026-03-02 18:35:58] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T12:07:53
[2026-03-02 18:35:58] [INFO]   -> Set field 'timedispatch' = "2026-02-03 12:07:53"
[2026-03-02 18:35:58] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-02 18:35:58] [INFO]   -> Found value: SDPSFD
[2026-03-02 18:35:58] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-03-02 18:35:58] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-03-02 18:35:58] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-02 18:35:58] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-06320","cADNumber":"26-06320","incidentLocationStreetNumber":905,"streetName":"S MAIN ST","incidentLocationCity":"SIKESTON","businessName":"BJ'S KWIK SHOP","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"ACCIDENT-J2","dispatchNotes":"03-02-2026 12:04:20|Call Received on 03\/02\/2026 @ 12:04\n\nFACE INJURY\n2 CARS IN ROADWAY\n 03-02-2026 12:08:10|CONTACTED NMCO FOR EMS 03-02-2026 12:09:09|****** Appended notes from E911 Call begin ******\nBusiness Name: SIRIUSXM CVS TELEMATICS CALL CT\nBusiness Phone: (972) 916-7327 \nAddress: 1 ID #, VOIP\nSource: E911 \nLaw Enf: Sikeston Department of Public Safety \nOpened DateTime: 03\/02\/2026 12:04:36\nNotes: Call Received on 03\/02\/2026 @ 12:04\n****** Appended notes from E911 Call end   ******\n 03-02-2026 12:10:28|LANE 1 SB BLOCKED 03-02-2026 12:11:14|546 IS OUT WITH 549 03-02-2026 12:13:37|B45 ON 03-02-2026 12:14:20|SATTERFIELD NEEDED 03-02-2026 12:14:42|PER OWNER REQUEST 03-02-2026 12:17:18|SATTERFIELD ADVISED 03-02-2026 12:27:53|ONE WAS EXTRADITED ENG2 BACK IN SERVICE 03-02-2026 12:34:57|ONE CITATION ISSUED TO WATKINS","cADLog":"03-02-2026 12:04:20|Call Received on 03\/02\/2026 @ 12:04\n\nFACE INJURY\n2 CARS IN ROADWAY\n 03-02-2026 12:08:10|CONTACTED NMCO FOR EMS 03-02-2026 12:09:09|****** Appended notes from E911 Call begin ******\nBusiness Name: SIRIUSXM CVS TELEMATICS CALL CT\nBusiness Phone: (972) 916-7327 \nAddress: 1 ID #, VOIP\nSource: E911 \nLaw Enf: Sikeston Department of Public Safety \nOpened DateTime: 03\/02\/2026 12:04:36\nNotes: Call Received on 03\/02\/2026 @ 12:04\n****** Appended notes from E911 Call end   ******\n 03-02-2026 12:10:28|LANE 1 SB BLOCKED 03-02-2026 12:11:14|546 IS OUT WITH 549 03-02-2026 12:13:37|B45 ON 03-02-2026 12:14:20|SATTERFIELD NEEDED 03-02-2026 12:14:42|PER OWNER REQUEST 03-02-2026 12:17:18|SATTERFIELD ADVISED 03-02-2026 12:27:53|ONE WAS EXTRADITED ENG2 BACK IN SERVICE 03-02-2026 12:34:57|ONE CITATION ISSUED TO WATKINS","alarm":"2026-02-03 12:06:48","dispatched":"2026-02-03 12:06:48","onScene":"2026-02-03 12:08:53","cleared":"2026-02-03 12:35:01","inService":"2026-02-03 12:35:01","cADVehicleID":"ENG2","name":"ENG2","timeenroutetoscene":"2026-02-03 12:07:55","timeonscene":"2026-02-03 12:08:53","timeunitclear":"2026-02-03 12:26:58","timedispatch":"2026-02-03 12:07:53","cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-03-02 18:35:58] [INFO] Number of extracted fields: 26
[2026-03-02 18:35:58] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-03-02 18:35:58] [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-03-02 18:35:58] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-03-02 18:35:58] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-03-02 18:35:58] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-03-02 18:35:59] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-03-02 18:35:59] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-03-02 18:35:59] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-03-02 18:35:59] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e87be42b7c
[2026-03-02 18:36:01] [INFO] Created new Dispatches record with ID: 69a5d88fa0ea08780
[2026-03-02 18:36:01] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06320.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-02/SDPSFD_26-06320.xml
[2026-03-02 18:36:01] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06320.xml
[2026-03-02 20:41:41] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-06333.xml
[2026-03-02 20:41:41] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-06333.xml for user: 68d56363ec1209189
[2026-03-02 20:41:41] [INFO] File size: 1784 bytes
[2026-03-02 20:41:41] [INFO] Created FTPFiles record with ID: 69a5f6057d6c6dd38
[2026-03-02 20:41:41] [INFO] About to extract fields from XML. File size: 1784 bytes
[2026-03-02 20:41:41] [INFO] Number of mappings: 21
[2026-03-02 20:41:41] [INFO] Starting XML parsing. Content length: 1784
[2026-03-02 20:41:41] [INFO] XML parsed successfully. Root element: Incident
[2026-03-02 20:41:41] [INFO] Processing 21 field mappings
[2026-03-02 20:41:41] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-02 20:41:41] [INFO]   -> Found value: 26-06333
[2026-03-02 20:41:41] [INFO]   -> Set field 'dispatchRunNumber' = "26-06333"
[2026-03-02 20:41:41] [INFO]   -> Set field 'cADNumber' = "26-06333"
[2026-03-02 20:41:41] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-02 20:41:41] [INFO]   -> Found value: 220
[2026-03-02 20:41:41] [INFO]   -> Set field 'incidentLocationStreetNumber' = 220
[2026-03-02 20:41:41] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-02 20:41:41] [INFO]   -> Found value: LOCUST ST
[2026-03-02 20:41:41] [INFO]   -> Set field 'streetName' = "LOCUST ST"
[2026-03-02 20:41:41] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-02 20:41:41] [INFO]   -> No value found (null or empty)
[2026-03-02 20:41:41] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-02 20:41:41] [INFO]   -> Found value: BLODGETT
[2026-03-02 20:41:41] [INFO]   -> Set field 'incidentLocationCity' = "BLODGETT"
[2026-03-02 20:41:41] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-02 20:41:41] [INFO]   -> No value found (null or empty)
[2026-03-02 20:41:41] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-02 20:41:41] [INFO]   -> No value found (null or empty)
[2026-03-02 20:41:41] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-02 20:41:41] [INFO]   -> Found value: 63824
[2026-03-02 20:41:41] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63824
[2026-03-02 20:41:41] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-02 20:41:41] [INFO]   -> Found value: 0
[2026-03-02 20:41:41] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-02 20:41:41] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-02 20:41:41] [INFO]   -> Found value: 0
[2026-03-02 20:41:41] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-02 20:41:41] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-02 20:41:41] [INFO]   -> Found value: MEDICAL
[2026-03-02 20:41:41] [INFO]   -> Set field 'incidentTypeValue1' = "MEDICAL"
[2026-03-02 20:41:41] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-02 20:41:41] [INFO]   -> Found value: 03-02-2026 14:25:12|20 YO FEMALE FEELING ILL  03-02-2026 14:28:36|WHEN CALL SENT OVER FM WAS NOT ON ...
[2026-03-02 20:41:41] [INFO]   -> Set field 'dispatchNotes' = "03-02-2026 14:25:12|20 YO FEMALE FEELING ILL  03-02-2026 14:28:36|WHEN CALL SENT OVER FM WAS NOT ON LINE,SCOTT CITY ADVISED DC CELL PHONE NUMBER 03-02-2026 14:30:23|****** Appended notes from E911 Call begin ******\nAddress: 1 COUNTY RD 539, BERTRAND\nSource: E911 \nLaw Enf: Sikeston Department of Public Safety \nOpened DateTime: 03\/02\/2026 14:26:59\nNotes: Call Received on 03\/02\/2026 @ 14:26\n\nLocation: UBP 100825\n****** Appended notes from E911 Call end   ******\n 03-02-2026 14:41:17|NO RESPONSE FROM RURAL"
[2026-03-02 20:41:41] [INFO]   -> Set field 'cADLog' = "03-02-2026 14:25:12|20 YO FEMALE FEELING ILL  03-02-2026 14:28:36|WHEN CALL SENT OVER FM WAS NOT ON LINE,SCOTT CITY ADVISED DC CELL PHONE NUMBER 03-02-2026 14:30:23|****** Appended notes from E911 Call begin ******\nAddress: 1 COUNTY RD 539, BERTRAND\nSource: E911 \nLaw Enf: Sikeston Department of Public Safety \nOpened DateTime: 03\/02\/2026 14:26:59\nNotes: Call Received on 03\/02\/2026 @ 14:26\n\nLocation: UBP 100825\n****** Appended notes from E911 Call end   ******\n 03-02-2026 14:41:17|NO RESPONSE FROM RURAL"
[2026-03-02 20:41:41] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-02 20:41:41] [INFO]   -> Found value: 03-02-2026T14:29:10
[2026-03-02 20:41:41] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T14:29:10
[2026-03-02 20:41:41] [INFO]   -> Set field 'alarm' = "2026-02-03 14:29:10"
[2026-03-02 20:41:41] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T14:29:10
[2026-03-02 20:41:41] [INFO]   -> Set field 'dispatched' = "2026-02-03 14:29:10"
[2026-03-02 20:41:41] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-02 20:41:41] [INFO]   -> No value found (null or empty)
[2026-03-02 20:41:41] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-02 20:41:41] [INFO]   -> No value found (null or empty)
[2026-03-02 20:41:41] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-02 20:41:41] [INFO]   -> Found value: RURAL PAGE
[2026-03-02 20:41:41] [INFO]   -> Set field 'cADVehicleID' = "RURAL PAGE"
[2026-03-02 20:41:41] [INFO]   -> Set field 'name' = "RURAL PAGE"
[2026-03-02 20:41:41] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-02 20:41:41] [INFO]   -> No value found (null or empty)
[2026-03-02 20:41:41] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-02 20:41:41] [INFO]   -> No value found (null or empty)
[2026-03-02 20:41:41] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-02 20:41:41] [INFO]   -> Found value: 03-02-2026T14:41:20
[2026-03-02 20:41:41] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T14:41:20
[2026-03-02 20:41:41] [INFO]   -> Set field 'timeunitclear' = "2026-02-03 14:41:20"
[2026-03-02 20:41:41] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-02 20:41:41] [INFO]   -> Found value: 03-02-2026T14:29:14
[2026-03-02 20:41:41] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T14:29:14
[2026-03-02 20:41:41] [INFO]   -> Set field 'timedispatch' = "2026-02-03 14:29:14"
[2026-03-02 20:41:41] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-02 20:41:41] [INFO]   -> Found value: SCRFD
[2026-03-02 20:41:41] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2026-03-02 20:41:41] [INFO] Finished extracting fields. Total fields extracted: 18
[2026-03-02 20:41:41] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-02 20:41:41] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-06333","cADNumber":"26-06333","incidentLocationStreetNumber":220,"streetName":"LOCUST ST","incidentLocationCity":"BLODGETT","nERISIncidentPostalCode":63824,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"MEDICAL","dispatchNotes":"03-02-2026 14:25:12|20 YO FEMALE FEELING ILL  03-02-2026 14:28:36|WHEN CALL SENT OVER FM WAS NOT ON LINE,SCOTT CITY ADVISED DC CELL PHONE NUMBER 03-02-2026 14:30:23|****** Appended notes from E911 Call begin ******\nAddress: 1 COUNTY RD 539, BERTRAND\nSource: E911 \nLaw Enf: Sikeston Department of Public Safety \nOpened DateTime: 03\/02\/2026 14:26:59\nNotes: Call Received on 03\/02\/2026 @ 14:26\n\nLocation: UBP 100825\n****** Appended notes from E911 Call end   ******\n 03-02-2026 14:41:17|NO RESPONSE FROM RURAL","cADLog":"03-02-2026 14:25:12|20 YO FEMALE FEELING ILL  03-02-2026 14:28:36|WHEN CALL SENT OVER FM WAS NOT ON LINE,SCOTT CITY ADVISED DC CELL PHONE NUMBER 03-02-2026 14:30:23|****** Appended notes from E911 Call begin ******\nAddress: 1 COUNTY RD 539, BERTRAND\nSource: E911 \nLaw Enf: Sikeston Department of Public Safety \nOpened DateTime: 03\/02\/2026 14:26:59\nNotes: Call Received on 03\/02\/2026 @ 14:26\n\nLocation: UBP 100825\n****** Appended notes from E911 Call end   ******\n 03-02-2026 14:41:17|NO RESPONSE FROM RURAL","alarm":"2026-02-03 14:29:10","dispatched":"2026-02-03 14:29:10","cADVehicleID":"RURAL PAGE","name":"RURAL PAGE","timeunitclear":"2026-02-03 14:41:20","timedispatch":"2026-02-03 14:29:14","cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2026-03-02 20:41:41] [INFO] Number of extracted fields: 19
[2026-03-02 20:41:41] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2026-03-02 20:41:41] [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-03-02 20:41:41] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2026-03-02 20:41:41] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (index 0) within mailbox's assigned agencies
[2026-03-02 20:41:41] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) at INDEX 0 based on AgencyCode 'SCRFD'
[2026-03-02 20:41:41] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2026-03-02 20:41:41] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"], matchedAgencyIndex = 0
[2026-03-02 20:41:42] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2026-03-02 20:41:42] [INFO] Found existing IncidentTypeMapping with ID: 6979040ce473322a8
[2026-03-02 20:41:42] [INFO] Found existing Dispatch with cADNumber '26-06333', ID: 69a5f31e995ce41ff - will update instead of create
[2026-03-02 20:41:42] [INFO] Updated existing Dispatches record with ID: 69a5f31e995ce41ff
[2026-03-02 20:41:42] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-06333.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-02/SCRFD_26-06333.xml
[2026-03-02 20:41:42] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-06333.xml
[2026-03-02 20:41:42] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-06335.xml
[2026-03-02 20:41:42] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-06335.xml for user: 68d56363ec1209189
[2026-03-02 20:41:42] [INFO] File size: 1369 bytes
[2026-03-02 20:41:42] [INFO] Created FTPFiles record with ID: 69a5f606ed88d5762
[2026-03-02 20:41:42] [INFO] About to extract fields from XML. File size: 1369 bytes
[2026-03-02 20:41:42] [INFO] Number of mappings: 21
[2026-03-02 20:41:42] [INFO] Starting XML parsing. Content length: 1369
[2026-03-02 20:41:42] [INFO] XML parsed successfully. Root element: Incident
[2026-03-02 20:41:42] [INFO] Processing 21 field mappings
[2026-03-02 20:41:42] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-02 20:41:42] [INFO]   -> Found value: 26-06335
[2026-03-02 20:41:42] [INFO]   -> Set field 'dispatchRunNumber' = "26-06335"
[2026-03-02 20:41:42] [INFO]   -> Set field 'cADNumber' = "26-06335"
[2026-03-02 20:41:42] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-02 20:41:42] [INFO]   -> Found value: 212
[2026-03-02 20:41:42] [INFO]   -> Set field 'incidentLocationStreetNumber' = 212
[2026-03-02 20:41:42] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-02 20:41:42] [INFO]   -> Found value: E CORA ST
[2026-03-02 20:41:42] [INFO]   -> Set field 'streetName' = "E CORA ST"
[2026-03-02 20:41:42] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-02 20:41:42] [INFO]   -> No value found (null or empty)
[2026-03-02 20:41:42] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-02 20:41:42] [INFO]   -> Found value: MORLEY
[2026-03-02 20:41:42] [INFO]   -> Set field 'incidentLocationCity' = "MORLEY"
[2026-03-02 20:41:42] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-02 20:41:42] [INFO]   -> No value found (null or empty)
[2026-03-02 20:41:42] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-02 20:41:42] [INFO]   -> Found value: MO
[2026-03-02 20:41:42] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-03-02 20:41:42] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-02 20:41:42] [INFO]   -> Found value: 63767
[2026-03-02 20:41:42] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63767
[2026-03-02 20:41:42] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-02 20:41:42] [INFO]   -> Found value: 0
[2026-03-02 20:41:42] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-02 20:41:42] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-02 20:41:42] [INFO]   -> Found value: 0
[2026-03-02 20:41:42] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-02 20:41:42] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-02 20:41:42] [INFO]   -> Found value: MEDICAL
[2026-03-02 20:41:42] [INFO]   -> Set field 'incidentTypeValue1' = "MEDICAL"
[2026-03-02 20:41:42] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-02 20:41:42] [INFO]   -> Found value: 03-02-2026 14:34:10|82 YO MALE FELL 1 WEEK AGO BACK , SHOULDER AND LEG PAIN  03-02-2026 14:40:53|NO ...
[2026-03-02 20:41:42] [INFO]   -> Set field 'dispatchNotes' = "03-02-2026 14:34:10|82 YO MALE FELL 1 WEEK AGO BACK , SHOULDER AND LEG PAIN  03-02-2026 14:40:53|NO RESPONSE FROM RURAL"
[2026-03-02 20:41:42] [INFO]   -> Set field 'cADLog' = "03-02-2026 14:34:10|82 YO MALE FELL 1 WEEK AGO BACK , SHOULDER AND LEG PAIN  03-02-2026 14:40:53|NO RESPONSE FROM RURAL"
[2026-03-02 20:41:42] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-02 20:41:42] [INFO]   -> Found value: 03-02-2026T14:34:45
[2026-03-02 20:41:42] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T14:34:45
[2026-03-02 20:41:42] [INFO]   -> Set field 'alarm' = "2026-02-03 14:34:45"
[2026-03-02 20:41:42] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T14:34:45
[2026-03-02 20:41:42] [INFO]   -> Set field 'dispatched' = "2026-02-03 14:34:45"
[2026-03-02 20:41:42] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-02 20:41:42] [INFO]   -> No value found (null or empty)
[2026-03-02 20:41:42] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-02 20:41:42] [INFO]   -> No value found (null or empty)
[2026-03-02 20:41:42] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-02 20:41:43] [INFO]   -> Found value: RURAL PAGE
[2026-03-02 20:41:43] [INFO]   -> Set field 'cADVehicleID' = "RURAL PAGE"
[2026-03-02 20:41:43] [INFO]   -> Set field 'name' = "RURAL PAGE"
[2026-03-02 20:41:43] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-02 20:41:43] [INFO]   -> No value found (null or empty)
[2026-03-02 20:41:43] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-02 20:41:43] [INFO]   -> No value found (null or empty)
[2026-03-02 20:41:43] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-02 20:41:43] [INFO]   -> Found value: 03-02-2026T14:40:56
[2026-03-02 20:41:43] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T14:40:56
[2026-03-02 20:41:43] [INFO]   -> Set field 'timeunitclear' = "2026-02-03 14:40:56"
[2026-03-02 20:41:43] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-02 20:41:43] [INFO]   -> Found value: 03-02-2026T14:35:26
[2026-03-02 20:41:43] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T14:35:26
[2026-03-02 20:41:43] [INFO]   -> Set field 'timedispatch' = "2026-02-03 14:35:26"
[2026-03-02 20:41:43] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-02 20:41:43] [INFO]   -> Found value: SCRFD
[2026-03-02 20:41:43] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2026-03-02 20:41:43] [INFO] Finished extracting fields. Total fields extracted: 19
[2026-03-02 20:41:43] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-02 20:41:43] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-06335","cADNumber":"26-06335","incidentLocationStreetNumber":212,"streetName":"E CORA ST","incidentLocationCity":"MORLEY","incidentLocationStateName":"MO","nERISIncidentPostalCode":63767,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"MEDICAL","dispatchNotes":"03-02-2026 14:34:10|82 YO MALE FELL 1 WEEK AGO BACK , SHOULDER AND LEG PAIN  03-02-2026 14:40:53|NO RESPONSE FROM RURAL","cADLog":"03-02-2026 14:34:10|82 YO MALE FELL 1 WEEK AGO BACK , SHOULDER AND LEG PAIN  03-02-2026 14:40:53|NO RESPONSE FROM RURAL","alarm":"2026-02-03 14:34:45","dispatched":"2026-02-03 14:34:45","cADVehicleID":"RURAL PAGE","name":"RURAL PAGE","timeunitclear":"2026-02-03 14:40:56","timedispatch":"2026-02-03 14:35:26","cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2026-03-02 20:41:43] [INFO] Number of extracted fields: 20
[2026-03-02 20:41:43] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2026-03-02 20:41:43] [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-03-02 20:41:43] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2026-03-02 20:41:43] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (index 0) within mailbox's assigned agencies
[2026-03-02 20:41:43] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) at INDEX 0 based on AgencyCode 'SCRFD'
[2026-03-02 20:41:43] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2026-03-02 20:41:43] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"], matchedAgencyIndex = 0
[2026-03-02 20:41:43] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2026-03-02 20:41:43] [INFO] Found existing IncidentTypeMapping with ID: 6979040ce473322a8
[2026-03-02 20:41:43] [INFO] Found existing Dispatch with cADNumber '26-06335', ID: 69a5f4935e8d75516 - will update instead of create
[2026-03-02 20:41:44] [INFO] Updated existing Dispatches record with ID: 69a5f4935e8d75516
[2026-03-02 20:41:44] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-06335.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-02/SCRFD_26-06335.xml
[2026-03-02 20:41:44] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-06335.xml
[2026-03-02 21:01:59] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-06335.xml
[2026-03-02 21:01:59] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-06335.xml for user: 68d56363ec1209189
[2026-03-02 21:01:59] [INFO] File size: 1528 bytes
[2026-03-02 21:01:59] [INFO] Created FTPFiles record with ID: 69a5fac7e422a0f84
[2026-03-02 21:01:59] [INFO] About to extract fields from XML. File size: 1528 bytes
[2026-03-02 21:01:59] [INFO] Number of mappings: 21
[2026-03-02 21:01:59] [INFO] Starting XML parsing. Content length: 1528
[2026-03-02 21:01:59] [INFO] XML parsed successfully. Root element: Incident
[2026-03-02 21:01:59] [INFO] Processing 21 field mappings
[2026-03-02 21:01:59] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-02 21:01:59] [INFO]   -> Found value: 26-06335
[2026-03-02 21:01:59] [INFO]   -> Set field 'dispatchRunNumber' = "26-06335"
[2026-03-02 21:01:59] [INFO]   -> Set field 'cADNumber' = "26-06335"
[2026-03-02 21:01:59] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-02 21:01:59] [INFO]   -> Found value: 212
[2026-03-02 21:01:59] [INFO]   -> Set field 'incidentLocationStreetNumber' = 212
[2026-03-02 21:01:59] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-02 21:01:59] [INFO]   -> Found value: E CORA ST
[2026-03-02 21:01:59] [INFO]   -> Set field 'streetName' = "E CORA ST"
[2026-03-02 21:01:59] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-02 21:01:59] [INFO]   -> No value found (null or empty)
[2026-03-02 21:01:59] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-02 21:01:59] [INFO]   -> Found value: MORLEY
[2026-03-02 21:01:59] [INFO]   -> Set field 'incidentLocationCity' = "MORLEY"
[2026-03-02 21:01:59] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-02 21:01:59] [INFO]   -> No value found (null or empty)
[2026-03-02 21:01:59] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-02 21:01:59] [INFO]   -> Found value: MO
[2026-03-02 21:01:59] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-03-02 21:01:59] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-02 21:01:59] [INFO]   -> Found value: 63767
[2026-03-02 21:01:59] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63767
[2026-03-02 21:01:59] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-02 21:01:59] [INFO]   -> Found value: 0
[2026-03-02 21:01:59] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-02 21:01:59] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-02 21:01:59] [INFO]   -> Found value: 0
[2026-03-02 21:01:59] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-02 21:01:59] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-02 21:01:59] [INFO]   -> Found value: MEDICAL
[2026-03-02 21:01:59] [INFO]   -> Set field 'incidentTypeValue1' = "MEDICAL"
[2026-03-02 21:01:59] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-02 21:01:59] [INFO]   -> Found value: 03-02-2026 14:34:10|82 YO MALE FELL 1 WEEK AGO BACK , SHOULDER AND LEG PAIN  03-02-2026 14:40:53|NO ...
[2026-03-02 21:01:59] [INFO]   -> Set field 'dispatchNotes' = "03-02-2026 14:34:10|82 YO MALE FELL 1 WEEK AGO BACK , SHOULDER AND LEG PAIN  03-02-2026 14:40:53|NO RESPONSE FROM RURAL 03-02-2026 14:40:59|Disposition - Scott County Rural:  NRN 03-02-2026 14:57:29|1734 ON SCENE 03-02-2026 15:01:28|NSCAD TRANSPORTING TO MO DELTA ALL SCRF CLEAR"
[2026-03-02 21:01:59] [INFO]   -> Set field 'cADLog' = "03-02-2026 14:34:10|82 YO MALE FELL 1 WEEK AGO BACK , SHOULDER AND LEG PAIN  03-02-2026 14:40:53|NO RESPONSE FROM RURAL 03-02-2026 14:40:59|Disposition - Scott County Rural:  NRN 03-02-2026 14:57:29|1734 ON SCENE 03-02-2026 15:01:28|NSCAD TRANSPORTING TO MO DELTA ALL SCRF CLEAR"
[2026-03-02 21:01:59] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-02 21:01:59] [INFO]   -> Found value: 03-02-2026T14:34:45
[2026-03-02 21:01:59] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T14:34:45
[2026-03-02 21:01:59] [INFO]   -> Set field 'alarm' = "2026-02-03 14:34:45"
[2026-03-02 21:01:59] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T14:34:45
[2026-03-02 21:01:59] [INFO]   -> Set field 'dispatched' = "2026-02-03 14:34:45"
[2026-03-02 21:01:59] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-02 21:01:59] [INFO]   -> No value found (null or empty)
[2026-03-02 21:01:59] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-02 21:01:59] [INFO]   -> No value found (null or empty)
[2026-03-02 21:01:59] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-02 21:01:59] [INFO]   -> Found value: RURAL PAGE
[2026-03-02 21:01:59] [INFO]   -> Set field 'cADVehicleID' = "RURAL PAGE"
[2026-03-02 21:01:59] [INFO]   -> Set field 'name' = "RURAL PAGE"
[2026-03-02 21:01:59] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-02 21:01:59] [INFO]   -> No value found (null or empty)
[2026-03-02 21:01:59] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-02 21:01:59] [INFO]   -> No value found (null or empty)
[2026-03-02 21:01:59] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-02 21:01:59] [INFO]   -> Found value: 03-02-2026T15:01:31
[2026-03-02 21:01:59] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T15:01:31
[2026-03-02 21:01:59] [INFO]   -> Set field 'timeunitclear' = "2026-02-03 15:01:31"
[2026-03-02 21:01:59] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-02 21:01:59] [INFO]   -> Found value: 03-02-2026T14:35:26
[2026-03-02 21:01:59] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T14:35:26
[2026-03-02 21:01:59] [INFO]   -> Set field 'timedispatch' = "2026-02-03 14:35:26"
[2026-03-02 21:01:59] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-02 21:01:59] [INFO]   -> Found value: SCRFD
[2026-03-02 21:01:59] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2026-03-02 21:01:59] [INFO] Finished extracting fields. Total fields extracted: 19
[2026-03-02 21:01:59] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-02 21:01:59] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-06335","cADNumber":"26-06335","incidentLocationStreetNumber":212,"streetName":"E CORA ST","incidentLocationCity":"MORLEY","incidentLocationStateName":"MO","nERISIncidentPostalCode":63767,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"MEDICAL","dispatchNotes":"03-02-2026 14:34:10|82 YO MALE FELL 1 WEEK AGO BACK , SHOULDER AND LEG PAIN  03-02-2026 14:40:53|NO RESPONSE FROM RURAL 03-02-2026 14:40:59|Disposition - Scott County Rural:  NRN 03-02-2026 14:57:29|1734 ON SCENE 03-02-2026 15:01:28|NSCAD TRANSPORTING TO MO DELTA ALL SCRF CLEAR","cADLog":"03-02-2026 14:34:10|82 YO MALE FELL 1 WEEK AGO BACK , SHOULDER AND LEG PAIN  03-02-2026 14:40:53|NO RESPONSE FROM RURAL 03-02-2026 14:40:59|Disposition - Scott County Rural:  NRN 03-02-2026 14:57:29|1734 ON SCENE 03-02-2026 15:01:28|NSCAD TRANSPORTING TO MO DELTA ALL SCRF CLEAR","alarm":"2026-02-03 14:34:45","dispatched":"2026-02-03 14:34:45","cADVehicleID":"RURAL PAGE","name":"RURAL PAGE","timeunitclear":"2026-02-03 15:01:31","timedispatch":"2026-02-03 14:35:26","cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2026-03-02 21:01:59] [INFO] Number of extracted fields: 20
[2026-03-02 21:01:59] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2026-03-02 21:01:59] [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-03-02 21:01:59] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2026-03-02 21:01:59] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (index 0) within mailbox's assigned agencies
[2026-03-02 21:02:00] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) at INDEX 0 based on AgencyCode 'SCRFD'
[2026-03-02 21:02:00] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2026-03-02 21:02:00] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"], matchedAgencyIndex = 0
[2026-03-02 21:02:00] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2026-03-02 21:02:00] [INFO] Found existing IncidentTypeMapping with ID: 6979040ce473322a8
[2026-03-02 21:02:00] [INFO] Found existing Dispatch with cADNumber '26-06335', ID: 69a5f4935e8d75516 - will update instead of create
[2026-03-02 21:02:01] [INFO] Updated existing Dispatches record with ID: 69a5f4935e8d75516
[2026-03-02 21:02:01] [INFO] File already exists in archive, using unique name: SCRFD_26-06335_1772485321.xml
[2026-03-02 21:02:01] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-06335.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-02/SCRFD_26-06335_1772485321.xml
[2026-03-02 21:02:01] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-06335.xml
[2026-03-02 22:51:18] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013856.xml
[2026-03-02 22:51:18] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013856.xml for user: 69320e6a9e3e5ef71
[2026-03-02 22:51:18] [INFO] File size: 8428 bytes
[2026-03-02 22:51:18] [INFO] Created FTPFiles record with ID: 69a61466eb5ab0759
[2026-03-02 22:51:18] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-02 22:51:18] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013856.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-02/cfs_2026-013856.xml
[2026-03-02 22:51:18] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013856.xml
[2026-03-02 23:18:37] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013856.xml
[2026-03-02 23:18:37] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013856.xml for user: 69320e6a9e3e5ef71
[2026-03-02 23:18:37] [INFO] File size: 9435 bytes
[2026-03-02 23:18:37] [INFO] Created FTPFiles record with ID: 69a61acd91ccc6c3a
[2026-03-02 23:18:37] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-02 23:18:37] [INFO] File already exists in archive, using unique name: cfs_2026-013856_1772493517.xml
[2026-03-02 23:18:37] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013856.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-02/cfs_2026-013856_1772493517.xml
[2026-03-02 23:18:37] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-013856.xml
[2026-03-02 23:19:41] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023089_20260302_231941.XML
[2026-03-02 23:19:41] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023089_20260302_231941.XML for user: 68f1466aed072ad4a
[2026-03-02 23:19:41] [INFO] File size: 5501 bytes
[2026-03-02 23:19:42] [INFO] Created FTPFiles record with ID: 69a61b0e0b5eed8ef
[2026-03-02 23:19:42] [INFO] About to extract fields from XML. File size: 5501 bytes
[2026-03-02 23:19:42] [INFO] Number of mappings: 28
[2026-03-02 23:19:42] [INFO] Starting XML parsing. Content length: 5501
[2026-03-02 23:19:42] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 23:19:42] [INFO] Processing 28 field mappings
[2026-03-02 23:19:42] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 23:19:42] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 23:19:42] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 23:19:42] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-02 23:19:42] [INFO]   -> Found value: PCFD
PCSO
EMS
BFD
[2026-03-02 23:19:42] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO\nEMS\nBFD"
[2026-03-02 23:19:42] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 23:19:42] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-02 23:19:42] [INFO]   -> Found value: 2026000575
[2026-03-02 23:19:42] [INFO]   -> Set field 'incidentInternalId' = "2026000575"
[2026-03-02 23:19:42] [INFO]   -> Set field 'dispatchRunNumber' = "2026000575"
[2026-03-02 23:19:42] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 23:19:42] [INFO]   -> Found value: FIRE - OTHER STRUCTURE
[2026-03-02 23:19:42] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE - OTHER STRUCTURE"
[2026-03-02 23:19:42] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 23:19:42] [INFO]   -> Found value: 1699
[2026-03-02 23:19:42] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1699
[2026-03-02 23:19:42] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 23:19:42] [INFO]   -> Found value: TN
[2026-03-02 23:19:42] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 23:19:42] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 23:19:42] [INFO]   -> Found value: 38544
[2026-03-02 23:19:42] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 23:19:42] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 23:19:42] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:42] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 23:19:42] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:42] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 23:19:42] [INFO]   -> Found value: 36.19278
[2026-03-02 23:19:42] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.192779999999999063220457173883914947509765625
[2026-03-02 23:19:42] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 23:19:42] [INFO]   -> Found value: -85.61668
[2026-03-02 23:19:42] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.616680000000002337401383556425571441650390625
[2026-03-02 23:19:42] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 23:19:42] [INFO]   -> Found value: 2026-03-02 17:18:01
[2026-03-02 23:19:42] [INFO]   -> Set field 'alarm' = "2026-03-02 17:18:01"
[2026-03-02 23:19:42] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 23:19:42] [INFO]   -> Found value: 2026-03-02 17:19:39
[2026-03-02 23:19:42] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:19:39"
[2026-03-02 23:19:42] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 23:19:42] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:42] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 23:19:42] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:42] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 23:19:42] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:42] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 23:19:42] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:42] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 23:19:42] [INFO]   -> Found value: EN31
[2026-03-02 23:19:42] [INFO]   -> Set field 'cADVehicleID' = "EN31"
[2026-03-02 23:19:42] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 23:19:42] [INFO]   -> Found value: 2026-03-02 17:19:39
[2026-03-02 23:19:42] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:19:39"
[2026-03-02 23:19:42] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 23:19:42] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:42] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 23:19:42] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:42] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 23:19:42] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:42] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 23:19:42] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:42] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 23:19:42] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 23:19:42] [INFO]   -> Found value: 20260023089
[2026-03-02 23:19:42] [INFO]   -> Set field 'policeReportNumber' = "20260023089"
[2026-03-02 23:19:42] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 23:19:42] [INFO]   -> Found value: Event spawned for BFD Event ID:20260023092  CallRef:304  [03/02/26 17:19:30 KBURTON]
[2026-03-02 23:19:42] [INFO]   -> Set field 'dispatchNotes' = "Event spawned for BFD Event ID:20260023092  CallRef:304  [03\/02\/26 17:19:30 KBURTON]"
[2026-03-02 23:19:42] [INFO]   -> Set field 'cADLog' = "Event spawned for BFD Event ID:20260023092  CallRef:304  [03\/02\/26 17:19:30 KBURTON]"
[2026-03-02 23:19:42] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 23:19:42] [INFO]   -> Found value: BAXTER
[2026-03-02 23:19:42] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 23:19:42] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 23:19:42] [INFO]   -> Found value: OLD GAINESBORO
[2026-03-02 23:19:42] [INFO]   -> Set field 'streetName' = "OLD GAINESBORO"
[2026-03-02 23:19:42] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 23:19:42] [INFO]   -> Found value: RD
[2026-03-02 23:19:42] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 23:19:42] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 23:19:42] [INFO]   -> Found value: OLD GAINESBORO RD/BLOOMINGTON RD
[2026-03-02 23:19:42] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "OLD GAINESBORO RD\/BLOOMINGTON RD"
[2026-03-02 23:19:42] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-03-02 23:19:42] [INFO] Concatenating street name and type
[2026-03-02 23:19:42] [INFO]   -> Combined street name: OLD GAINESBORO RD
[2026-03-02 23:19:42] [INFO] Built locationCoordinates from lat/lng: 36.19278,-85.61668
[2026-03-02 23:19:42] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO\nEMS\nBFD","incidentInternalId":"2026000575","dispatchRunNumber":"2026000575","incidentTypeValue1":"FIRE - OTHER STRUCTURE","incidentLocationStreetNumber":1699,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.192779999999999063220457173883914947509765625,"nERISIncidentLongitude":-85.616680000000002337401383556425571441650390625,"alarm":"2026-03-02 17:18:01","dispatched":"2026-03-02 17:19:39","cADVehicleID":"EN31","timedispatch":"2026-03-02 17:19:39","policeReportNumber":"20260023089","dispatchNotes":"Event spawned for BFD Event ID:20260023092  CallRef:304  [03\/02\/26 17:19:30 KBURTON]","cADLog":"Event spawned for BFD Event ID:20260023092  CallRef:304  [03\/02\/26 17:19:30 KBURTON]","incidentLocationCity":"BAXTER","streetName":"OLD GAINESBORO RD","incidentAddressTextVersionStreet":"OLD GAINESBORO RD\/BLOOMINGTON RD","locationCoordinates":"36.19278,-85.61668"}
[2026-03-02 23:19:42] [INFO] Number of extracted fields: 20
[2026-03-02 23:19:42] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO
EMS
BFD'
[2026-03-02 23:19:42] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO
EMS
BFD', Parsed IDs = ["PCFD","PCSO","EMS","BFD"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-02 23:19:42] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO","EMS","BFD"]
[2026-03-02 23:19:42] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 23:19:42] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 23:19:42] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","EMS","BFD"]
[2026-03-02 23:19: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-03-02 23:19:42] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 23:19:42] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-02 23:19:42] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 23:19:42] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 23:19:42] [INFO] Found existing IncidentTypeMapping with ID: 6938a74a7628435d2
[2026-03-02 23:19:52] [INFO] Created new Dispatches record with ID: 69a61b0ed0c5cdaa6
[2026-03-02 23:19:52] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 23:19:52] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 23:19: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-03-02 23:19:56] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023089_20260302_231941.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 23:19:56] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 23:19:56] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023089_20260302_231943.XML
[2026-03-02 23:19:56] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023089_20260302_231943.XML for user: 68f1466aed072ad4a
[2026-03-02 23:19:56] [INFO] File size: 5619 bytes
[2026-03-02 23:19:56] [INFO] Created FTPFiles record with ID: 69a61b1cb0409a9de
[2026-03-02 23:19:56] [INFO] About to extract fields from XML. File size: 5619 bytes
[2026-03-02 23:19:56] [INFO] Number of mappings: 28
[2026-03-02 23:19:56] [INFO] Starting XML parsing. Content length: 5619
[2026-03-02 23:19:56] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 23:19:56] [INFO] Processing 28 field mappings
[2026-03-02 23:19:56] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 23:19:56] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 23:19:56] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 23:19:56] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-02 23:19:56] [INFO]   -> Found value: PCFD
PCSO
EMS
BFD
[2026-03-02 23:19:56] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO\nEMS\nBFD"
[2026-03-02 23:19:56] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 23:19:56] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-02 23:19:56] [INFO]   -> Found value: 2026000575
[2026-03-02 23:19:56] [INFO]   -> Set field 'incidentInternalId' = "2026000575"
[2026-03-02 23:19:56] [INFO]   -> Set field 'dispatchRunNumber' = "2026000575"
[2026-03-02 23:19:56] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 23:19:56] [INFO]   -> Found value: FIRE - OTHER STRUCTURE
[2026-03-02 23:19:56] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE - OTHER STRUCTURE"
[2026-03-02 23:19:56] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 23:19:56] [INFO]   -> Found value: 1699
[2026-03-02 23:19:56] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1699
[2026-03-02 23:19:56] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 23:19:56] [INFO]   -> Found value: TN
[2026-03-02 23:19:56] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 23:19:56] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 23:19:56] [INFO]   -> Found value: 38544
[2026-03-02 23:19:56] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 23:19:56] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 23:19:56] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:56] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 23:19:56] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:56] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 23:19:56] [INFO]   -> Found value: 36.19278
[2026-03-02 23:19:56] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.192779999999999063220457173883914947509765625
[2026-03-02 23:19:56] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 23:19:56] [INFO]   -> Found value: -85.61668
[2026-03-02 23:19:56] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.616680000000002337401383556425571441650390625
[2026-03-02 23:19:56] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 23:19:56] [INFO]   -> Found value: 2026-03-02 17:18:01
[2026-03-02 23:19:56] [INFO]   -> Set field 'alarm' = "2026-03-02 17:18:01"
[2026-03-02 23:19:56] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 23:19:56] [INFO]   -> Found value: 2026-03-02 17:19:39
[2026-03-02 23:19:56] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:19:39"
[2026-03-02 23:19:56] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 23:19:56] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:56] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 23:19:56] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:56] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 23:19:56] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:56] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 23:19:56] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:56] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 23:19:56] [INFO]   -> Found value: EN31
[2026-03-02 23:19:56] [INFO]   -> Set field 'cADVehicleID' = "EN31"
[2026-03-02 23:19:56] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 23:19:56] [INFO]   -> Found value: 2026-03-02 17:19:39
[2026-03-02 23:19:56] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:19:39"
[2026-03-02 23:19:56] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 23:19:56] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:56] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 23:19:56] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:56] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 23:19:56] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:56] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 23:19:56] [INFO]   -> No value found (null or empty)
[2026-03-02 23:19:56] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 23:19:56] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 23:19:56] [INFO]   -> Found value: 20260023089
[2026-03-02 23:19:56] [INFO]   -> Set field 'policeReportNumber' = "20260023089"
[2026-03-02 23:19:56] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 23:19:56] [INFO]   -> Found value: SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03/02/26...
[2026-03-02 23:19:56] [INFO]   -> Set field 'dispatchNotes' = "SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned for BFD Event ID:20260023092  CallRef:304  [03\/02\/26 17:19:30 KBURTON]"
[2026-03-02 23:19:56] [INFO]   -> Set field 'cADLog' = "SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned for BFD Event ID:20260023092  CallRef:304  [03\/02\/26 17:19:30 KBURTON]"
[2026-03-02 23:19:56] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 23:19:56] [INFO]   -> Found value: BAXTER
[2026-03-02 23:19:56] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 23:19:56] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 23:19:56] [INFO]   -> Found value: OLD GAINESBORO
[2026-03-02 23:19:56] [INFO]   -> Set field 'streetName' = "OLD GAINESBORO"
[2026-03-02 23:19:56] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 23:19:56] [INFO]   -> Found value: RD
[2026-03-02 23:19:56] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 23:19:56] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 23:19:56] [INFO]   -> Found value: OLD GAINESBORO RD/BLOOMINGTON RD
[2026-03-02 23:19:56] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "OLD GAINESBORO RD\/BLOOMINGTON RD"
[2026-03-02 23:19:56] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-03-02 23:19:56] [INFO] Concatenating street name and type
[2026-03-02 23:19:56] [INFO]   -> Combined street name: OLD GAINESBORO RD
[2026-03-02 23:19:56] [INFO] Built locationCoordinates from lat/lng: 36.19278,-85.61668
[2026-03-02 23:19:56] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO\nEMS\nBFD","incidentInternalId":"2026000575","dispatchRunNumber":"2026000575","incidentTypeValue1":"FIRE - OTHER STRUCTURE","incidentLocationStreetNumber":1699,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.192779999999999063220457173883914947509765625,"nERISIncidentLongitude":-85.616680000000002337401383556425571441650390625,"alarm":"2026-03-02 17:18:01","dispatched":"2026-03-02 17:19:39","cADVehicleID":"EN31","timedispatch":"2026-03-02 17:19:39","policeReportNumber":"20260023089","dispatchNotes":"SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned for BFD Event ID:20260023092  CallRef:304  [03\/02\/26 17:19:30 KBURTON]","cADLog":"SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned for BFD Event ID:20260023092  CallRef:304  [03\/02\/26 17:19:30 KBURTON]","incidentLocationCity":"BAXTER","streetName":"OLD GAINESBORO RD","incidentAddressTextVersionStreet":"OLD GAINESBORO RD\/BLOOMINGTON RD","locationCoordinates":"36.19278,-85.61668"}
[2026-03-02 23:19:56] [INFO] Number of extracted fields: 20
[2026-03-02 23:19:56] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO
EMS
BFD'
[2026-03-02 23:19:56] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO
EMS
BFD', Parsed IDs = ["PCFD","PCSO","EMS","BFD"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-02 23:19:56] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO","EMS","BFD"]
[2026-03-02 23:19:56] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 23:19:56] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 23:19:56] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","EMS","BFD"]
[2026-03-02 23:19:57] [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-03-02 23:19:57] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 23:19:57] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-02 23:19:57] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 23:19:57] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 23:19:57] [INFO] Found existing IncidentTypeMapping with ID: 6938a74a7628435d2
[2026-03-02 23:19:57] [INFO] Found existing Dispatch with cADNumber '2026000575', ID: 69a61b0ed0c5cdaa6 - will update instead of create
[2026-03-02 23:19:57] [INFO] Updated existing Dispatches record with ID: 69a61b0ed0c5cdaa6
[2026-03-02 23:19:57] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 23:19:57] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 23:20:01] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 23:20:01] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023089_20260302_231943.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 23:20:01] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 23:20:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023089_20260302_231944.XML
[2026-03-02 23:20:01] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023089_20260302_231944.XML for user: 68f1466aed072ad4a
[2026-03-02 23:20:01] [INFO] File size: 5619 bytes
[2026-03-02 23:20:01] [INFO] Created FTPFiles record with ID: 69a61b21727a12d90
[2026-03-02 23:20:01] [INFO] About to extract fields from XML. File size: 5619 bytes
[2026-03-02 23:20:01] [INFO] Number of mappings: 28
[2026-03-02 23:20:01] [INFO] Starting XML parsing. Content length: 5619
[2026-03-02 23:20:01] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 23:20:01] [INFO] Processing 28 field mappings
[2026-03-02 23:20:01] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 23:20:01] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 23:20:01] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 23:20:01] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-02 23:20:01] [INFO]   -> Found value: PCFD
PCSO
EMS
BFD
[2026-03-02 23:20:01] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO\nEMS\nBFD"
[2026-03-02 23:20:01] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 23:20:01] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-02 23:20:01] [INFO]   -> Found value: 2026000575
[2026-03-02 23:20:01] [INFO]   -> Set field 'incidentInternalId' = "2026000575"
[2026-03-02 23:20:01] [INFO]   -> Set field 'dispatchRunNumber' = "2026000575"
[2026-03-02 23:20:01] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 23:20:01] [INFO]   -> Found value: FIRE - OTHER STRUCTURE
[2026-03-02 23:20:01] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE - OTHER STRUCTURE"
[2026-03-02 23:20:01] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 23:20:01] [INFO]   -> Found value: 1699
[2026-03-02 23:20:01] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1699
[2026-03-02 23:20:01] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 23:20:01] [INFO]   -> Found value: TN
[2026-03-02 23:20:01] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 23:20:01] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 23:20:01] [INFO]   -> Found value: 38544
[2026-03-02 23:20:01] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 23:20:01] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 23:20:01] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:01] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 23:20:01] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:01] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 23:20:01] [INFO]   -> Found value: 36.19278
[2026-03-02 23:20:01] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.192779999999999063220457173883914947509765625
[2026-03-02 23:20:01] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 23:20:01] [INFO]   -> Found value: -85.61668
[2026-03-02 23:20:01] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.616680000000002337401383556425571441650390625
[2026-03-02 23:20:01] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 23:20:01] [INFO]   -> Found value: 2026-03-02 17:18:01
[2026-03-02 23:20:01] [INFO]   -> Set field 'alarm' = "2026-03-02 17:18:01"
[2026-03-02 23:20:01] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 23:20:01] [INFO]   -> Found value: 2026-03-02 17:19:39
[2026-03-02 23:20:01] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:19:39"
[2026-03-02 23:20:01] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 23:20:01] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:01] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 23:20:01] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:01] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 23:20:01] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:01] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 23:20:01] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:01] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 23:20:01] [INFO]   -> Found value: EN31
[2026-03-02 23:20:01] [INFO]   -> Set field 'cADVehicleID' = "EN31"
[2026-03-02 23:20:01] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 23:20:01] [INFO]   -> Found value: 2026-03-02 17:19:39
[2026-03-02 23:20:01] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:19:39"
[2026-03-02 23:20:01] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 23:20:01] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:01] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 23:20:01] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:01] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 23:20:01] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:01] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 23:20:01] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:01] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 23:20:01] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 23:20:01] [INFO]   -> Found value: 20260023089
[2026-03-02 23:20:01] [INFO]   -> Set field 'policeReportNumber' = "20260023089"
[2026-03-02 23:20:01] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 23:20:01] [INFO]   -> Found value: SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03/02/26...
[2026-03-02 23:20:01] [INFO]   -> Set field 'dispatchNotes' = "SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned for BFD Event ID:20260023092  CallRef:304  [03\/02\/26 17:19:30 KBURTON]"
[2026-03-02 23:20:01] [INFO]   -> Set field 'cADLog' = "SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned for BFD Event ID:20260023092  CallRef:304  [03\/02\/26 17:19:30 KBURTON]"
[2026-03-02 23:20:01] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 23:20:01] [INFO]   -> Found value: BAXTER
[2026-03-02 23:20:01] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 23:20:01] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 23:20:01] [INFO]   -> Found value: OLD GAINESBORO
[2026-03-02 23:20:01] [INFO]   -> Set field 'streetName' = "OLD GAINESBORO"
[2026-03-02 23:20:01] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 23:20:01] [INFO]   -> Found value: RD
[2026-03-02 23:20:01] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 23:20:01] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 23:20:01] [INFO]   -> Found value: OLD GAINESBORO RD/BLOOMINGTON RD
[2026-03-02 23:20:01] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "OLD GAINESBORO RD\/BLOOMINGTON RD"
[2026-03-02 23:20:01] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-03-02 23:20:01] [INFO] Concatenating street name and type
[2026-03-02 23:20:01] [INFO]   -> Combined street name: OLD GAINESBORO RD
[2026-03-02 23:20:01] [INFO] Built locationCoordinates from lat/lng: 36.19278,-85.61668
[2026-03-02 23:20:01] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO\nEMS\nBFD","incidentInternalId":"2026000575","dispatchRunNumber":"2026000575","incidentTypeValue1":"FIRE - OTHER STRUCTURE","incidentLocationStreetNumber":1699,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.192779999999999063220457173883914947509765625,"nERISIncidentLongitude":-85.616680000000002337401383556425571441650390625,"alarm":"2026-03-02 17:18:01","dispatched":"2026-03-02 17:19:39","cADVehicleID":"EN31","timedispatch":"2026-03-02 17:19:39","policeReportNumber":"20260023089","dispatchNotes":"SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned for BFD Event ID:20260023092  CallRef:304  [03\/02\/26 17:19:30 KBURTON]","cADLog":"SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned for BFD Event ID:20260023092  CallRef:304  [03\/02\/26 17:19:30 KBURTON]","incidentLocationCity":"BAXTER","streetName":"OLD GAINESBORO RD","incidentAddressTextVersionStreet":"OLD GAINESBORO RD\/BLOOMINGTON RD","locationCoordinates":"36.19278,-85.61668"}
[2026-03-02 23:20:01] [INFO] Number of extracted fields: 20
[2026-03-02 23:20:01] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO
EMS
BFD'
[2026-03-02 23:20:01] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO
EMS
BFD', Parsed IDs = ["PCFD","PCSO","EMS","BFD"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-02 23:20:01] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO","EMS","BFD"]
[2026-03-02 23:20:01] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 23:20:01] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 23:20:01] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","EMS","BFD"]
[2026-03-02 23:20:01] [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-03-02 23:20:01] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 23:20:01] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-02 23:20:01] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 23:20:01] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 23:20:01] [INFO] Found existing IncidentTypeMapping with ID: 6938a74a7628435d2
[2026-03-02 23:20:02] [INFO] Found existing Dispatch with cADNumber '2026000575', ID: 69a61b0ed0c5cdaa6 - will update instead of create
[2026-03-02 23:20:02] [INFO] Updated existing Dispatches record with ID: 69a61b0ed0c5cdaa6
[2026-03-02 23:20:02] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 23:20:02] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 23:20: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-03-02 23:20:06] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023089_20260302_231944.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 23:20:06] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 23:20:06] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023089_20260302_231949.XML
[2026-03-02 23:20:06] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023089_20260302_231949.XML for user: 68f1466aed072ad4a
[2026-03-02 23:20:06] [INFO] File size: 5619 bytes
[2026-03-02 23:20:06] [INFO] Created FTPFiles record with ID: 69a61b26771b00c73
[2026-03-02 23:20:06] [INFO] About to extract fields from XML. File size: 5619 bytes
[2026-03-02 23:20:06] [INFO] Number of mappings: 28
[2026-03-02 23:20:06] [INFO] Starting XML parsing. Content length: 5619
[2026-03-02 23:20:06] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 23:20:06] [INFO] Processing 28 field mappings
[2026-03-02 23:20:06] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 23:20:06] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 23:20:06] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 23:20:06] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-02 23:20:06] [INFO]   -> Found value: PCFD
PCSO
EMS
BFD
[2026-03-02 23:20:06] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO\nEMS\nBFD"
[2026-03-02 23:20:06] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 23:20:06] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-02 23:20:06] [INFO]   -> Found value: 2026000575
[2026-03-02 23:20:06] [INFO]   -> Set field 'incidentInternalId' = "2026000575"
[2026-03-02 23:20:06] [INFO]   -> Set field 'dispatchRunNumber' = "2026000575"
[2026-03-02 23:20:06] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 23:20:06] [INFO]   -> Found value: FIRE - OTHER STRUCTURE
[2026-03-02 23:20:06] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE - OTHER STRUCTURE"
[2026-03-02 23:20:06] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 23:20:06] [INFO]   -> Found value: 1699
[2026-03-02 23:20:06] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1699
[2026-03-02 23:20:06] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 23:20:06] [INFO]   -> Found value: TN
[2026-03-02 23:20:06] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 23:20:06] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 23:20:06] [INFO]   -> Found value: 38544
[2026-03-02 23:20:06] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 23:20:06] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 23:20:06] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:06] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 23:20:06] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:06] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 23:20:06] [INFO]   -> Found value: 36.19278
[2026-03-02 23:20:06] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.192779999999999063220457173883914947509765625
[2026-03-02 23:20:06] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 23:20:06] [INFO]   -> Found value: -85.61668
[2026-03-02 23:20:06] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.616680000000002337401383556425571441650390625
[2026-03-02 23:20:06] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 23:20:06] [INFO]   -> Found value: 2026-03-02 17:18:01
[2026-03-02 23:20:06] [INFO]   -> Set field 'alarm' = "2026-03-02 17:18:01"
[2026-03-02 23:20:06] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 23:20:06] [INFO]   -> Found value: 2026-03-02 17:19:39
[2026-03-02 23:20:06] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:19:39"
[2026-03-02 23:20:06] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 23:20:06] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:06] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 23:20:06] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:06] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 23:20:06] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:06] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 23:20:06] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:06] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 23:20:06] [INFO]   -> Found value: EN31
[2026-03-02 23:20:06] [INFO]   -> Set field 'cADVehicleID' = "EN31"
[2026-03-02 23:20:06] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 23:20:06] [INFO]   -> Found value: 2026-03-02 17:19:39
[2026-03-02 23:20:06] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:19:39"
[2026-03-02 23:20:06] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 23:20:06] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:06] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 23:20:06] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:06] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 23:20:06] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:06] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 23:20:06] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:06] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 23:20:06] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 23:20:06] [INFO]   -> Found value: 20260023089
[2026-03-02 23:20:06] [INFO]   -> Set field 'policeReportNumber' = "20260023089"
[2026-03-02 23:20:06] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 23:20:06] [INFO]   -> Found value: SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03/02/26...
[2026-03-02 23:20:06] [INFO]   -> Set field 'dispatchNotes' = "SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned for BFD Event ID:20260023092  CallRef:304  [03\/02\/26 17:19:30 KBURTON]"
[2026-03-02 23:20:06] [INFO]   -> Set field 'cADLog' = "SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned for BFD Event ID:20260023092  CallRef:304  [03\/02\/26 17:19:30 KBURTON]"
[2026-03-02 23:20:06] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 23:20:06] [INFO]   -> Found value: BAXTER
[2026-03-02 23:20:06] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 23:20:06] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 23:20:06] [INFO]   -> Found value: OLD GAINESBORO
[2026-03-02 23:20:06] [INFO]   -> Set field 'streetName' = "OLD GAINESBORO"
[2026-03-02 23:20:06] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 23:20:06] [INFO]   -> Found value: RD
[2026-03-02 23:20:06] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 23:20:06] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 23:20:06] [INFO]   -> Found value: OLD GAINESBORO RD/BLOOMINGTON RD
[2026-03-02 23:20:06] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "OLD GAINESBORO RD\/BLOOMINGTON RD"
[2026-03-02 23:20:06] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-03-02 23:20:06] [INFO] Concatenating street name and type
[2026-03-02 23:20:06] [INFO]   -> Combined street name: OLD GAINESBORO RD
[2026-03-02 23:20:06] [INFO] Built locationCoordinates from lat/lng: 36.19278,-85.61668
[2026-03-02 23:20:06] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO\nEMS\nBFD","incidentInternalId":"2026000575","dispatchRunNumber":"2026000575","incidentTypeValue1":"FIRE - OTHER STRUCTURE","incidentLocationStreetNumber":1699,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.192779999999999063220457173883914947509765625,"nERISIncidentLongitude":-85.616680000000002337401383556425571441650390625,"alarm":"2026-03-02 17:18:01","dispatched":"2026-03-02 17:19:39","cADVehicleID":"EN31","timedispatch":"2026-03-02 17:19:39","policeReportNumber":"20260023089","dispatchNotes":"SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned for BFD Event ID:20260023092  CallRef:304  [03\/02\/26 17:19:30 KBURTON]","cADLog":"SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned for BFD Event ID:20260023092  CallRef:304  [03\/02\/26 17:19:30 KBURTON]","incidentLocationCity":"BAXTER","streetName":"OLD GAINESBORO RD","incidentAddressTextVersionStreet":"OLD GAINESBORO RD\/BLOOMINGTON RD","locationCoordinates":"36.19278,-85.61668"}
[2026-03-02 23:20:06] [INFO] Number of extracted fields: 20
[2026-03-02 23:20:06] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO
EMS
BFD'
[2026-03-02 23:20:06] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO
EMS
BFD', Parsed IDs = ["PCFD","PCSO","EMS","BFD"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-02 23:20:06] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO","EMS","BFD"]
[2026-03-02 23:20:06] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 23:20:06] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 23:20:06] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","EMS","BFD"]
[2026-03-02 23:20:06] [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-03-02 23:20:06] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 23:20:06] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-02 23:20:06] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 23:20:06] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 23:20:07] [INFO] Found existing IncidentTypeMapping with ID: 6938a74a7628435d2
[2026-03-02 23:20:07] [INFO] Found existing Dispatch with cADNumber '2026000575', ID: 69a61b0ed0c5cdaa6 - will update instead of create
[2026-03-02 23:20:07] [INFO] Updated existing Dispatches record with ID: 69a61b0ed0c5cdaa6
[2026-03-02 23:20:07] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 23:20:07] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 23:20:11] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 23:20:11] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023089_20260302_231949.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 23:20:11] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 23:20:19] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023092_20260302_232019.XML
[2026-03-02 23:20:19] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023092_20260302_232019.XML for user: 68f1466aed072ad4a
[2026-03-02 23:20:19] [INFO] File size: 5644 bytes
[2026-03-02 23:20:19] [INFO] Created FTPFiles record with ID: 69a61b33b874579cd
[2026-03-02 23:20:19] [INFO] About to extract fields from XML. File size: 5644 bytes
[2026-03-02 23:20:19] [INFO] Number of mappings: 28
[2026-03-02 23:20:19] [INFO] Starting XML parsing. Content length: 5644
[2026-03-02 23:20:19] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 23:20:19] [INFO] Processing 28 field mappings
[2026-03-02 23:20:19] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 23:20:19] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 23:20:19] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 23:20:19] [INFO] Found 5 elements for 'AgencyCode', concatenating 5 non-empty values
[2026-03-02 23:20:19] [INFO]   -> Found value: BFD
PCFD
PCSO
EMS
BFD
[2026-03-02 23:20:19] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nPCFD\nPCSO\nEMS\nBFD"
[2026-03-02 23:20:19] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 23:20:19] [INFO] Found 5 elements for 'ReportNumber', using FIRST value only
[2026-03-02 23:20:19] [INFO]   -> Found value: 2026000072
[2026-03-02 23:20:19] [INFO]   -> Set field 'incidentInternalId' = "2026000072"
[2026-03-02 23:20:19] [INFO]   -> Set field 'dispatchRunNumber' = "2026000072"
[2026-03-02 23:20:19] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 23:20:19] [INFO]   -> Found value: FIRE - OTHER STRUCTURE
[2026-03-02 23:20:19] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE - OTHER STRUCTURE"
[2026-03-02 23:20:19] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 23:20:19] [INFO]   -> Found value: 1699
[2026-03-02 23:20:19] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1699
[2026-03-02 23:20:19] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 23:20:19] [INFO]   -> Found value: TN
[2026-03-02 23:20:19] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 23:20:19] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 23:20:19] [INFO]   -> Found value: 38544
[2026-03-02 23:20:19] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 23:20:19] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 23:20:19] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:19] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 23:20:19] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:19] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 23:20:19] [INFO]   -> Found value: 36.19278
[2026-03-02 23:20:19] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.192779999999999063220457173883914947509765625
[2026-03-02 23:20:19] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 23:20:19] [INFO]   -> Found value: -85.61668
[2026-03-02 23:20:19] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.616680000000002337401383556425571441650390625
[2026-03-02 23:20:19] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 23:20:19] [INFO]   -> Found value: 2026-03-02 17:19:30
[2026-03-02 23:20:19] [INFO]   -> Set field 'alarm' = "2026-03-02 17:19:30"
[2026-03-02 23:20:19] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 23:20:19] [INFO]   -> Found value: 2026-03-02 17:20:13
[2026-03-02 23:20:19] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:20:13"
[2026-03-02 23:20:19] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 23:20:19] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:19] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 23:20:19] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:19] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 23:20:19] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:19] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 23:20:19] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:19] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 23:20:19] [INFO]   -> Found value: BEN2
[2026-03-02 23:20:19] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-02 23:20:19] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 23:20:19] [INFO]   -> Found value: 2026-03-02 17:20:13
[2026-03-02 23:20:19] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:20:13"
[2026-03-02 23:20:19] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 23:20:19] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:19] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 23:20:19] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:19] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 23:20:19] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:19] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 23:20:19] [INFO]   -> No value found (null or empty)
[2026-03-02 23:20:19] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 23:20:19] [INFO] Found 5 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 23:20:19] [INFO]   -> Found value: 20260023092
[2026-03-02 23:20:19] [INFO]   -> Set field 'policeReportNumber' = "20260023092"
[2026-03-02 23:20:19] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 23:20:19] [INFO]   -> Found value: [FIRE] SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [0...
[2026-03-02 23:20:19] [INFO]   -> Set field 'dispatchNotes' = "[FIRE] SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned from FIRE - OTHER STRUCTURE.  [03\/02\/2026 17:19:30 KBURTON]"
[2026-03-02 23:20:19] [INFO]   -> Set field 'cADLog' = "[FIRE] SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned from FIRE - OTHER STRUCTURE.  [03\/02\/2026 17:19:30 KBURTON]"
[2026-03-02 23:20:19] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 23:20:19] [INFO]   -> Found value: BAXTER
[2026-03-02 23:20:19] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 23:20:19] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 23:20:19] [INFO]   -> Found value: OLD GAINESBORO
[2026-03-02 23:20:19] [INFO]   -> Set field 'streetName' = "OLD GAINESBORO"
[2026-03-02 23:20:19] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 23:20:19] [INFO]   -> Found value: RD
[2026-03-02 23:20:19] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 23:20:19] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 23:20:19] [INFO]   -> Found value: OLD GAINESBORO RD/BLOOMINGTON RD
[2026-03-02 23:20:19] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "OLD GAINESBORO RD\/BLOOMINGTON RD"
[2026-03-02 23:20:19] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-03-02 23:20:19] [INFO] Concatenating street name and type
[2026-03-02 23:20:19] [INFO]   -> Combined street name: OLD GAINESBORO RD
[2026-03-02 23:20:19] [INFO] Built locationCoordinates from lat/lng: 36.19278,-85.61668
[2026-03-02 23:20:19] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nPCFD\nPCSO\nEMS\nBFD","incidentInternalId":"2026000072","dispatchRunNumber":"2026000072","incidentTypeValue1":"FIRE - OTHER STRUCTURE","incidentLocationStreetNumber":1699,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.192779999999999063220457173883914947509765625,"nERISIncidentLongitude":-85.616680000000002337401383556425571441650390625,"alarm":"2026-03-02 17:19:30","dispatched":"2026-03-02 17:20:13","cADVehicleID":"BEN2","timedispatch":"2026-03-02 17:20:13","policeReportNumber":"20260023092","dispatchNotes":"[FIRE] SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned from FIRE - OTHER STRUCTURE.  [03\/02\/2026 17:19:30 KBURTON]","cADLog":"[FIRE] SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned from FIRE - OTHER STRUCTURE.  [03\/02\/2026 17:19:30 KBURTON]","incidentLocationCity":"BAXTER","streetName":"OLD GAINESBORO RD","incidentAddressTextVersionStreet":"OLD GAINESBORO RD\/BLOOMINGTON RD","locationCoordinates":"36.19278,-85.61668"}
[2026-03-02 23:20:19] [INFO] Number of extracted fields: 20
[2026-03-02 23:20:19] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
PCFD
PCSO
EMS
BFD'
[2026-03-02 23:20:19] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
PCFD
PCSO
EMS
BFD', Parsed IDs = ["BFD","PCFD","PCSO","EMS","BFD"], Non-empty count = 5, Total agency count = 5, Assigned Agencies count = 4
[2026-03-02 23:20:19] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","PCFD","PCSO","EMS","BFD"]
[2026-03-02 23:20:19] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-02 23:20:19] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-02 23:20:19] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCFD","PCSO","EMS","BFD"]
[2026-03-02 23:20:20] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-02 23:20:20] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-02 23:20:20] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 5)
[2026-03-02 23:20:20] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-02 23:20:20] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-02 23:20:20] [INFO] Found existing IncidentTypeMapping with ID: 6945b6d88387b330f
[2026-03-02 23:20:26] [INFO] Created new Dispatches record with ID: 69a61b36ed638e8ff
[2026-03-02 23:20:26] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 23:20:26] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 23:20: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-03-02 23:20:29] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023092_20260302_232019.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 23:20:29] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 23:23:11] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023092_20260302_232311.XML
[2026-03-02 23:23:11] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023092_20260302_232311.XML for user: 68f1466aed072ad4a
[2026-03-02 23:23:11] [INFO] File size: 5761 bytes
[2026-03-02 23:23:12] [INFO] Created FTPFiles record with ID: 69a61be000c9c6b8b
[2026-03-02 23:23:12] [INFO] About to extract fields from XML. File size: 5761 bytes
[2026-03-02 23:23:12] [INFO] Number of mappings: 28
[2026-03-02 23:23:12] [INFO] Starting XML parsing. Content length: 5761
[2026-03-02 23:23:12] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 23:23:12] [INFO] Processing 28 field mappings
[2026-03-02 23:23:12] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 23:23:12] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 23:23:12] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 23:23:12] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-02 23:23:12] [INFO]   -> Found value: BFD
PCFD
PCSO
EMS
[2026-03-02 23:23:12] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nPCFD\nPCSO\nEMS"
[2026-03-02 23:23:12] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 23:23:12] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-02 23:23:12] [INFO]   -> Found value: 2026000072
[2026-03-02 23:23:12] [INFO]   -> Set field 'incidentInternalId' = "2026000072"
[2026-03-02 23:23:12] [INFO]   -> Set field 'dispatchRunNumber' = "2026000072"
[2026-03-02 23:23:12] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 23:23:12] [INFO]   -> Found value: FIRE - OTHER STRUCTURE
[2026-03-02 23:23:12] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE - OTHER STRUCTURE"
[2026-03-02 23:23:12] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 23:23:12] [INFO]   -> Found value: 1699
[2026-03-02 23:23:12] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1699
[2026-03-02 23:23:12] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 23:23:12] [INFO]   -> Found value: TN
[2026-03-02 23:23:12] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 23:23:12] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 23:23:12] [INFO]   -> Found value: 38544
[2026-03-02 23:23:12] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 23:23:12] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 23:23:12] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:12] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 23:23:12] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:12] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 23:23:12] [INFO]   -> Found value: 36.19278
[2026-03-02 23:23:12] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.192779999999999063220457173883914947509765625
[2026-03-02 23:23:12] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 23:23:12] [INFO]   -> Found value: -85.61668
[2026-03-02 23:23:12] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.616680000000002337401383556425571441650390625
[2026-03-02 23:23:12] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 23:23:12] [INFO]   -> Found value: 2026-03-02 17:19:30
[2026-03-02 23:23:12] [INFO]   -> Set field 'alarm' = "2026-03-02 17:19:30"
[2026-03-02 23:23:12] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 23:23:12] [INFO]   -> Found value: 2026-03-02 17:20:13
[2026-03-02 23:23:12] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:20:13"
[2026-03-02 23:23:12] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 23:23:12] [INFO]   -> Found value: 2026-03-02 17:23:03
[2026-03-02 23:23:12] [INFO]   -> Set field 'enroute' = "2026-03-02 17:23:03"
[2026-03-02 23:23:12] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 23:23:12] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:12] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 23:23:12] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:12] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 23:23:12] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:12] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 23:23:12] [INFO]   -> Found value: BEN2
[2026-03-02 23:23:12] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-02 23:23:12] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 23:23:12] [INFO]   -> Found value: 2026-03-02 17:20:13
[2026-03-02 23:23:12] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:20:13"
[2026-03-02 23:23:12] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 23:23:12] [INFO]   -> Found value: 2026-03-02 17:23:03
[2026-03-02 23:23:12] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-02 17:23:03"
[2026-03-02 23:23:12] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 23:23:12] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:12] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 23:23:12] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:12] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 23:23:12] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:12] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 23:23:12] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 23:23:12] [INFO]   -> Found value: 20260023092
[2026-03-02 23:23:12] [INFO]   -> Set field 'policeReportNumber' = "20260023092"
[2026-03-02 23:23:12] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 23:23:12] [INFO]   -> Found value: [FIRE] PCFD PASSED LOCATION A FEW MINS AGO SEEN BRUSH FINE BEHIND A SHED  [03/02/26 17:21:16 KBURTON...
[2026-03-02 23:23:12] [INFO]   -> Set field 'dispatchNotes' = "[FIRE] PCFD PASSED LOCATION A FEW MINS AGO SEEN BRUSH FINE BEHIND A SHED  [03\/02\/26 17:21:16 KBURTON] [LAW] PCSO ENRT  [03\/02\/26 17:20:34 RJGIPSON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/02\/26 17:20:31 RJGIPSON] [FIRE] SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned from FIRE - OTHER STRUCTURE.  [03\/02\/2026 17:19:30 KBURTON]"
[2026-03-02 23:23:12] [INFO]   -> Set field 'cADLog' = "[FIRE] PCFD PASSED LOCATION A FEW MINS AGO SEEN BRUSH FINE BEHIND A SHED  [03\/02\/26 17:21:16 KBURTON] [LAW] PCSO ENRT  [03\/02\/26 17:20:34 RJGIPSON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/02\/26 17:20:31 RJGIPSON] [FIRE] SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned from FIRE - OTHER STRUCTURE.  [03\/02\/2026 17:19:30 KBURTON]"
[2026-03-02 23:23:12] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 23:23:12] [INFO]   -> Found value: BAXTER
[2026-03-02 23:23:12] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 23:23:12] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 23:23:12] [INFO]   -> Found value: OLD GAINESBORO
[2026-03-02 23:23:12] [INFO]   -> Set field 'streetName' = "OLD GAINESBORO"
[2026-03-02 23:23:12] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 23:23:12] [INFO]   -> Found value: RD
[2026-03-02 23:23:12] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 23:23:12] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 23:23:12] [INFO]   -> Found value: OLD GAINESBORO RD/BLOOMINGTON RD
[2026-03-02 23:23:12] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "OLD GAINESBORO RD\/BLOOMINGTON RD"
[2026-03-02 23:23:12] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-02 23:23:12] [INFO] Concatenating street name and type
[2026-03-02 23:23:12] [INFO]   -> Combined street name: OLD GAINESBORO RD
[2026-03-02 23:23:12] [INFO] Built locationCoordinates from lat/lng: 36.19278,-85.61668
[2026-03-02 23:23:12] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nPCFD\nPCSO\nEMS","incidentInternalId":"2026000072","dispatchRunNumber":"2026000072","incidentTypeValue1":"FIRE - OTHER STRUCTURE","incidentLocationStreetNumber":1699,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.192779999999999063220457173883914947509765625,"nERISIncidentLongitude":-85.616680000000002337401383556425571441650390625,"alarm":"2026-03-02 17:19:30","dispatched":"2026-03-02 17:20:13","enroute":"2026-03-02 17:23:03","cADVehicleID":"BEN2","timedispatch":"2026-03-02 17:20:13","timeenroutetoscene":"2026-03-02 17:23:03","policeReportNumber":"20260023092","dispatchNotes":"[FIRE] PCFD PASSED LOCATION A FEW MINS AGO SEEN BRUSH FINE BEHIND A SHED  [03\/02\/26 17:21:16 KBURTON] [LAW] PCSO ENRT  [03\/02\/26 17:20:34 RJGIPSON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/02\/26 17:20:31 RJGIPSON] [FIRE] SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned from FIRE - OTHER STRUCTURE.  [03\/02\/2026 17:19:30 KBURTON]","cADLog":"[FIRE] PCFD PASSED LOCATION A FEW MINS AGO SEEN BRUSH FINE BEHIND A SHED  [03\/02\/26 17:21:16 KBURTON] [LAW] PCSO ENRT  [03\/02\/26 17:20:34 RJGIPSON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/02\/26 17:20:31 RJGIPSON] [FIRE] SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned from FIRE - OTHER STRUCTURE.  [03\/02\/2026 17:19:30 KBURTON]","incidentLocationCity":"BAXTER","streetName":"OLD GAINESBORO RD","incidentAddressTextVersionStreet":"OLD GAINESBORO RD\/BLOOMINGTON RD","locationCoordinates":"36.19278,-85.61668"}
[2026-03-02 23:23:12] [INFO] Number of extracted fields: 22
[2026-03-02 23:23:12] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
PCFD
PCSO
EMS'
[2026-03-02 23:23:12] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
PCFD
PCSO
EMS', Parsed IDs = ["BFD","PCFD","PCSO","EMS"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-02 23:23:12] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","PCFD","PCSO","EMS"]
[2026-03-02 23:23:12] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-02 23:23:12] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-02 23:23:12] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCFD","PCSO","EMS"]
[2026-03-02 23:23:12] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-02 23:23:12] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-02 23:23:12] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-02 23:23:12] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-02 23:23:12] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-02 23:23:12] [INFO] Found existing IncidentTypeMapping with ID: 6945b6d88387b330f
[2026-03-02 23:23:12] [INFO] Found existing Dispatch with cADNumber '2026000072', ID: 69a61b36ed638e8ff - will update instead of create
[2026-03-02 23:23:12] [INFO] Updated existing Dispatches record with ID: 69a61b36ed638e8ff
[2026-03-02 23:23:12] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 23:23:13] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 23:23:16] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 23:23:16] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023092_20260302_232311.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 23:23:16] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 23:23:16] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023092_20260302_232313.XML
[2026-03-02 23:23:16] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023092_20260302_232313.XML for user: 68f1466aed072ad4a
[2026-03-02 23:23:16] [INFO] File size: 5761 bytes
[2026-03-02 23:23:16] [INFO] Created FTPFiles record with ID: 69a61be4cd43b9c24
[2026-03-02 23:23:16] [INFO] About to extract fields from XML. File size: 5761 bytes
[2026-03-02 23:23:16] [INFO] Number of mappings: 28
[2026-03-02 23:23:16] [INFO] Starting XML parsing. Content length: 5761
[2026-03-02 23:23:16] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 23:23:16] [INFO] Processing 28 field mappings
[2026-03-02 23:23:16] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 23:23:16] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 23:23:16] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 23:23:16] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-02 23:23:16] [INFO]   -> Found value: BFD
PCFD
PCSO
EMS
[2026-03-02 23:23:16] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nPCFD\nPCSO\nEMS"
[2026-03-02 23:23:16] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 23:23:16] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-02 23:23:16] [INFO]   -> Found value: 2026000072
[2026-03-02 23:23:16] [INFO]   -> Set field 'incidentInternalId' = "2026000072"
[2026-03-02 23:23:16] [INFO]   -> Set field 'dispatchRunNumber' = "2026000072"
[2026-03-02 23:23:16] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 23:23:16] [INFO]   -> Found value: FIRE - OTHER STRUCTURE
[2026-03-02 23:23:16] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE - OTHER STRUCTURE"
[2026-03-02 23:23:16] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 23:23:16] [INFO]   -> Found value: 1699
[2026-03-02 23:23:16] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1699
[2026-03-02 23:23:16] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 23:23:16] [INFO]   -> Found value: TN
[2026-03-02 23:23:16] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 23:23:16] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 23:23:16] [INFO]   -> Found value: 38544
[2026-03-02 23:23:16] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 23:23:16] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 23:23:16] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:16] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 23:23:16] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:16] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 23:23:16] [INFO]   -> Found value: 36.19278
[2026-03-02 23:23:16] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.192779999999999063220457173883914947509765625
[2026-03-02 23:23:16] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 23:23:16] [INFO]   -> Found value: -85.61668
[2026-03-02 23:23:16] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.616680000000002337401383556425571441650390625
[2026-03-02 23:23:16] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 23:23:16] [INFO]   -> Found value: 2026-03-02 17:19:30
[2026-03-02 23:23:16] [INFO]   -> Set field 'alarm' = "2026-03-02 17:19:30"
[2026-03-02 23:23:16] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 23:23:16] [INFO]   -> Found value: 2026-03-02 17:20:13
[2026-03-02 23:23:16] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:20:13"
[2026-03-02 23:23:16] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 23:23:16] [INFO]   -> Found value: 2026-03-02 17:23:03
[2026-03-02 23:23:16] [INFO]   -> Set field 'enroute' = "2026-03-02 17:23:03"
[2026-03-02 23:23:16] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 23:23:16] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:16] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 23:23:16] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:16] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 23:23:16] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:16] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 23:23:16] [INFO]   -> Found value: BEN2
[2026-03-02 23:23:16] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-02 23:23:16] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 23:23:16] [INFO]   -> Found value: 2026-03-02 17:20:13
[2026-03-02 23:23:16] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:20:13"
[2026-03-02 23:23:16] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 23:23:16] [INFO]   -> Found value: 2026-03-02 17:23:03
[2026-03-02 23:23:16] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-02 17:23:03"
[2026-03-02 23:23:16] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 23:23:16] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:16] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 23:23:16] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:16] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 23:23:16] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:16] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 23:23:16] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 23:23:16] [INFO]   -> Found value: 20260023092
[2026-03-02 23:23:16] [INFO]   -> Set field 'policeReportNumber' = "20260023092"
[2026-03-02 23:23:16] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 23:23:16] [INFO]   -> Found value: [FIRE] PCFD PASSED LOCATION A FEW MINS AGO SEEN BRUSH FINE BEHIND A SHED  [03/02/26 17:21:16 KBURTON...
[2026-03-02 23:23:16] [INFO]   -> Set field 'dispatchNotes' = "[FIRE] PCFD PASSED LOCATION A FEW MINS AGO SEEN BRUSH FINE BEHIND A SHED  [03\/02\/26 17:21:16 KBURTON] [LAW] PCSO ENRT  [03\/02\/26 17:20:34 RJGIPSON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/02\/26 17:20:31 RJGIPSON] [FIRE] SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned from FIRE - OTHER STRUCTURE.  [03\/02\/2026 17:19:30 KBURTON]"
[2026-03-02 23:23:16] [INFO]   -> Set field 'cADLog' = "[FIRE] PCFD PASSED LOCATION A FEW MINS AGO SEEN BRUSH FINE BEHIND A SHED  [03\/02\/26 17:21:16 KBURTON] [LAW] PCSO ENRT  [03\/02\/26 17:20:34 RJGIPSON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/02\/26 17:20:31 RJGIPSON] [FIRE] SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned from FIRE - OTHER STRUCTURE.  [03\/02\/2026 17:19:30 KBURTON]"
[2026-03-02 23:23:16] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 23:23:16] [INFO]   -> Found value: BAXTER
[2026-03-02 23:23:16] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 23:23:16] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 23:23:16] [INFO]   -> Found value: OLD GAINESBORO
[2026-03-02 23:23:16] [INFO]   -> Set field 'streetName' = "OLD GAINESBORO"
[2026-03-02 23:23:16] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 23:23:16] [INFO]   -> Found value: RD
[2026-03-02 23:23:16] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 23:23:16] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 23:23:16] [INFO]   -> Found value: OLD GAINESBORO RD/BLOOMINGTON RD
[2026-03-02 23:23:16] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "OLD GAINESBORO RD\/BLOOMINGTON RD"
[2026-03-02 23:23:16] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-02 23:23:16] [INFO] Concatenating street name and type
[2026-03-02 23:23:16] [INFO]   -> Combined street name: OLD GAINESBORO RD
[2026-03-02 23:23:16] [INFO] Built locationCoordinates from lat/lng: 36.19278,-85.61668
[2026-03-02 23:23:16] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nPCFD\nPCSO\nEMS","incidentInternalId":"2026000072","dispatchRunNumber":"2026000072","incidentTypeValue1":"FIRE - OTHER STRUCTURE","incidentLocationStreetNumber":1699,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.192779999999999063220457173883914947509765625,"nERISIncidentLongitude":-85.616680000000002337401383556425571441650390625,"alarm":"2026-03-02 17:19:30","dispatched":"2026-03-02 17:20:13","enroute":"2026-03-02 17:23:03","cADVehicleID":"BEN2","timedispatch":"2026-03-02 17:20:13","timeenroutetoscene":"2026-03-02 17:23:03","policeReportNumber":"20260023092","dispatchNotes":"[FIRE] PCFD PASSED LOCATION A FEW MINS AGO SEEN BRUSH FINE BEHIND A SHED  [03\/02\/26 17:21:16 KBURTON] [LAW] PCSO ENRT  [03\/02\/26 17:20:34 RJGIPSON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/02\/26 17:20:31 RJGIPSON] [FIRE] SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned from FIRE - OTHER STRUCTURE.  [03\/02\/2026 17:19:30 KBURTON]","cADLog":"[FIRE] PCFD PASSED LOCATION A FEW MINS AGO SEEN BRUSH FINE BEHIND A SHED  [03\/02\/26 17:21:16 KBURTON] [LAW] PCSO ENRT  [03\/02\/26 17:20:34 RJGIPSON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/02\/26 17:20:31 RJGIPSON] [FIRE] SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned from FIRE - OTHER STRUCTURE.  [03\/02\/2026 17:19:30 KBURTON]","incidentLocationCity":"BAXTER","streetName":"OLD GAINESBORO RD","incidentAddressTextVersionStreet":"OLD GAINESBORO RD\/BLOOMINGTON RD","locationCoordinates":"36.19278,-85.61668"}
[2026-03-02 23:23:16] [INFO] Number of extracted fields: 22
[2026-03-02 23:23:16] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
PCFD
PCSO
EMS'
[2026-03-02 23:23:16] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
PCFD
PCSO
EMS', Parsed IDs = ["BFD","PCFD","PCSO","EMS"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-02 23:23:16] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","PCFD","PCSO","EMS"]
[2026-03-02 23:23:16] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-02 23:23:17] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-02 23:23:17] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCFD","PCSO","EMS"]
[2026-03-02 23:23:17] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-02 23:23:17] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-02 23:23:17] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-02 23:23:17] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-02 23:23:17] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-02 23:23:17] [INFO] Found existing IncidentTypeMapping with ID: 6945b6d88387b330f
[2026-03-02 23:23:17] [INFO] Found existing Dispatch with cADNumber '2026000072', ID: 69a61b36ed638e8ff - will update instead of create
[2026-03-02 23:23:17] [INFO] Updated existing Dispatches record with ID: 69a61b36ed638e8ff
[2026-03-02 23:23:17] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 23:23:17] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 23:23: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-03-02 23:23:21] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023092_20260302_232313.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 23:23:21] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 23:23:21] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023092_20260302_232314.XML
[2026-03-02 23:23:21] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023092_20260302_232314.XML for user: 68f1466aed072ad4a
[2026-03-02 23:23:21] [INFO] File size: 5761 bytes
[2026-03-02 23:23:21] [INFO] Created FTPFiles record with ID: 69a61be98d7667759
[2026-03-02 23:23:21] [INFO] About to extract fields from XML. File size: 5761 bytes
[2026-03-02 23:23:21] [INFO] Number of mappings: 28
[2026-03-02 23:23:21] [INFO] Starting XML parsing. Content length: 5761
[2026-03-02 23:23:21] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 23:23:21] [INFO] Processing 28 field mappings
[2026-03-02 23:23:21] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 23:23:21] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 23:23:21] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 23:23:21] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-02 23:23:21] [INFO]   -> Found value: BFD
PCFD
PCSO
EMS
[2026-03-02 23:23:21] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nPCFD\nPCSO\nEMS"
[2026-03-02 23:23:21] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 23:23:21] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-02 23:23:21] [INFO]   -> Found value: 2026000072
[2026-03-02 23:23:21] [INFO]   -> Set field 'incidentInternalId' = "2026000072"
[2026-03-02 23:23:21] [INFO]   -> Set field 'dispatchRunNumber' = "2026000072"
[2026-03-02 23:23:21] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 23:23:21] [INFO]   -> Found value: FIRE - OTHER STRUCTURE
[2026-03-02 23:23:21] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE - OTHER STRUCTURE"
[2026-03-02 23:23:21] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 23:23:21] [INFO]   -> Found value: 1699
[2026-03-02 23:23:21] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1699
[2026-03-02 23:23:21] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 23:23:21] [INFO]   -> Found value: TN
[2026-03-02 23:23:21] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 23:23:21] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 23:23:21] [INFO]   -> Found value: 38544
[2026-03-02 23:23:21] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 23:23:21] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 23:23:21] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:21] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 23:23:21] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:21] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 23:23:21] [INFO]   -> Found value: 36.19278
[2026-03-02 23:23:21] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.192779999999999063220457173883914947509765625
[2026-03-02 23:23:21] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 23:23:21] [INFO]   -> Found value: -85.61668
[2026-03-02 23:23:21] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.616680000000002337401383556425571441650390625
[2026-03-02 23:23:21] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 23:23:21] [INFO]   -> Found value: 2026-03-02 17:19:30
[2026-03-02 23:23:21] [INFO]   -> Set field 'alarm' = "2026-03-02 17:19:30"
[2026-03-02 23:23:21] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 23:23:21] [INFO]   -> Found value: 2026-03-02 17:20:13
[2026-03-02 23:23:21] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:20:13"
[2026-03-02 23:23:21] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 23:23:21] [INFO]   -> Found value: 2026-03-02 17:23:03
[2026-03-02 23:23:21] [INFO]   -> Set field 'enroute' = "2026-03-02 17:23:03"
[2026-03-02 23:23:21] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 23:23:21] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:21] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 23:23:21] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:21] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 23:23:21] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:21] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 23:23:21] [INFO]   -> Found value: BEN2
[2026-03-02 23:23:21] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-02 23:23:21] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 23:23:21] [INFO]   -> Found value: 2026-03-02 17:20:13
[2026-03-02 23:23:21] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:20:13"
[2026-03-02 23:23:21] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 23:23:21] [INFO]   -> Found value: 2026-03-02 17:23:03
[2026-03-02 23:23:21] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-02 17:23:03"
[2026-03-02 23:23:21] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 23:23:21] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:21] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 23:23:21] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:21] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 23:23:21] [INFO]   -> No value found (null or empty)
[2026-03-02 23:23:21] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 23:23:21] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 23:23:21] [INFO]   -> Found value: 20260023092
[2026-03-02 23:23:21] [INFO]   -> Set field 'policeReportNumber' = "20260023092"
[2026-03-02 23:23:21] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 23:23:21] [INFO]   -> Found value: [FIRE] PCFD PASSED LOCATION A FEW MINS AGO SEEN BRUSH FINE BEHIND A SHED  [03/02/26 17:21:16 KBURTON...
[2026-03-02 23:23:21] [INFO]   -> Set field 'dispatchNotes' = "[FIRE] PCFD PASSED LOCATION A FEW MINS AGO SEEN BRUSH FINE BEHIND A SHED  [03\/02\/26 17:21:16 KBURTON] [LAW] PCSO ENRT  [03\/02\/26 17:20:34 RJGIPSON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/02\/26 17:20:31 RJGIPSON] [FIRE] SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned from FIRE - OTHER STRUCTURE.  [03\/02\/2026 17:19:30 KBURTON]"
[2026-03-02 23:23:21] [INFO]   -> Set field 'cADLog' = "[FIRE] PCFD PASSED LOCATION A FEW MINS AGO SEEN BRUSH FINE BEHIND A SHED  [03\/02\/26 17:21:16 KBURTON] [LAW] PCSO ENRT  [03\/02\/26 17:20:34 RJGIPSON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/02\/26 17:20:31 RJGIPSON] [FIRE] SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned from FIRE - OTHER STRUCTURE.  [03\/02\/2026 17:19:30 KBURTON]"
[2026-03-02 23:23:21] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 23:23:21] [INFO]   -> Found value: BAXTER
[2026-03-02 23:23:21] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 23:23:21] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 23:23:21] [INFO]   -> Found value: OLD GAINESBORO
[2026-03-02 23:23:21] [INFO]   -> Set field 'streetName' = "OLD GAINESBORO"
[2026-03-02 23:23:21] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 23:23:21] [INFO]   -> Found value: RD
[2026-03-02 23:23:21] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 23:23:21] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 23:23:21] [INFO]   -> Found value: OLD GAINESBORO RD/BLOOMINGTON RD
[2026-03-02 23:23:21] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "OLD GAINESBORO RD\/BLOOMINGTON RD"
[2026-03-02 23:23:21] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-02 23:23:21] [INFO] Concatenating street name and type
[2026-03-02 23:23:21] [INFO]   -> Combined street name: OLD GAINESBORO RD
[2026-03-02 23:23:21] [INFO] Built locationCoordinates from lat/lng: 36.19278,-85.61668
[2026-03-02 23:23:21] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nPCFD\nPCSO\nEMS","incidentInternalId":"2026000072","dispatchRunNumber":"2026000072","incidentTypeValue1":"FIRE - OTHER STRUCTURE","incidentLocationStreetNumber":1699,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.192779999999999063220457173883914947509765625,"nERISIncidentLongitude":-85.616680000000002337401383556425571441650390625,"alarm":"2026-03-02 17:19:30","dispatched":"2026-03-02 17:20:13","enroute":"2026-03-02 17:23:03","cADVehicleID":"BEN2","timedispatch":"2026-03-02 17:20:13","timeenroutetoscene":"2026-03-02 17:23:03","policeReportNumber":"20260023092","dispatchNotes":"[FIRE] PCFD PASSED LOCATION A FEW MINS AGO SEEN BRUSH FINE BEHIND A SHED  [03\/02\/26 17:21:16 KBURTON] [LAW] PCSO ENRT  [03\/02\/26 17:20:34 RJGIPSON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/02\/26 17:20:31 RJGIPSON] [FIRE] SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned from FIRE - OTHER STRUCTURE.  [03\/02\/2026 17:19:30 KBURTON]","cADLog":"[FIRE] PCFD PASSED LOCATION A FEW MINS AGO SEEN BRUSH FINE BEHIND A SHED  [03\/02\/26 17:21:16 KBURTON] [LAW] PCSO ENRT  [03\/02\/26 17:20:34 RJGIPSON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/02\/26 17:20:31 RJGIPSON] [FIRE] SOME TYPE OF STRUCTURE ON FIRE. NEIGHBOR CAN SEE FLAMES FROM HER ADDRESS  ACROSS THE ROAD  [03\/02\/26 17:19:41 KBEATY] Event spawned from FIRE - OTHER STRUCTURE.  [03\/02\/2026 17:19:30 KBURTON]","incidentLocationCity":"BAXTER","streetName":"OLD GAINESBORO RD","incidentAddressTextVersionStreet":"OLD GAINESBORO RD\/BLOOMINGTON RD","locationCoordinates":"36.19278,-85.61668"}
[2026-03-02 23:23:21] [INFO] Number of extracted fields: 22
[2026-03-02 23:23:21] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
PCFD
PCSO
EMS'
[2026-03-02 23:23:21] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
PCFD
PCSO
EMS', Parsed IDs = ["BFD","PCFD","PCSO","EMS"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-02 23:23:21] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","PCFD","PCSO","EMS"]
[2026-03-02 23:23:21] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-02 23:23:21] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-02 23:23:21] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCFD","PCSO","EMS"]
[2026-03-02 23:23:21] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-02 23:23:21] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-02 23:23:21] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-02 23:23:21] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-02 23:23:22] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-02 23:23:22] [INFO] Found existing IncidentTypeMapping with ID: 6945b6d88387b330f
[2026-03-02 23:23:22] [INFO] Found existing Dispatch with cADNumber '2026000072', ID: 69a61b36ed638e8ff - will update instead of create
[2026-03-02 23:23:22] [INFO] Updated existing Dispatches record with ID: 69a61b36ed638e8ff
[2026-03-02 23:23:22] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 23:23:22] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 23:23:25] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 23:23:25] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023092_20260302_232314.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 23:23:25] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 23:39:29] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023102_20260302_233929.XML
[2026-03-02 23:39:29] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023102_20260302_233929.XML for user: 68f1466aed072ad4a
[2026-03-02 23:39:29] [INFO] File size: 5259 bytes
[2026-03-02 23:39:29] [INFO] Created FTPFiles record with ID: 69a61fb1d8ad1cc36
[2026-03-02 23:39:29] [INFO] About to extract fields from XML. File size: 5259 bytes
[2026-03-02 23:39:29] [INFO] Number of mappings: 28
[2026-03-02 23:39:29] [INFO] Starting XML parsing. Content length: 5259
[2026-03-02 23:39:29] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 23:39:29] [INFO] Processing 28 field mappings
[2026-03-02 23:39:29] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 23:39:29] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 23:39:29] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 23:39:29] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-02 23:39:29] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-02 23:39:29] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-02 23:39:29] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 23:39:29] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-02 23:39:29] [INFO]   -> Found value: 2026000576
[2026-03-02 23:39:29] [INFO]   -> Set field 'incidentInternalId' = "2026000576"
[2026-03-02 23:39:29] [INFO]   -> Set field 'dispatchRunNumber' = "2026000576"
[2026-03-02 23:39:29] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 23:39:29] [INFO]   -> Found value: FALL VICTIM
[2026-03-02 23:39:29] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-02 23:39:29] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 23:39:29] [INFO]   -> Found value: 3055
[2026-03-02 23:39:29] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3055
[2026-03-02 23:39:29] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 23:39:29] [INFO]   -> Found value: TN
[2026-03-02 23:39:29] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 23:39:29] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 23:39:29] [INFO]   -> Found value: 38545
[2026-03-02 23:39:29] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38545
[2026-03-02 23:39:29] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 23:39:29] [INFO]   -> No value found (null or empty)
[2026-03-02 23:39:29] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 23:39:29] [INFO]   -> No value found (null or empty)
[2026-03-02 23:39:29] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 23:39:29] [INFO]   -> Found value: 36.20774
[2026-03-02 23:39:29] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20774000000000114596332423388957977294921875
[2026-03-02 23:39:29] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 23:39:29] [INFO]   -> Found value: -85.60830
[2026-03-02 23:39:29] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6082999999999998408384271897375583648681640625
[2026-03-02 23:39:29] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 23:39:29] [INFO]   -> Found value: 2026-03-02 17:39:03
[2026-03-02 23:39:29] [INFO]   -> Set field 'alarm' = "2026-03-02 17:39:03"
[2026-03-02 23:39:29] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 23:39:29] [INFO]   -> Found value: 2026-03-02 17:39:22
[2026-03-02 23:39:29] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:39:22"
[2026-03-02 23:39:29] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 23:39:29] [INFO]   -> No value found (null or empty)
[2026-03-02 23:39:29] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 23:39:29] [INFO]   -> No value found (null or empty)
[2026-03-02 23:39:29] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 23:39:29] [INFO]   -> No value found (null or empty)
[2026-03-02 23:39:29] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 23:39:29] [INFO]   -> Found value: SWAFFORD RD/OLD GAINESBORO RD
[2026-03-02 23:39:29] [INFO]   -> Set field 'incidentLocationCross' = "SWAFFORD RD\/OLD GAINESBORO RD"
[2026-03-02 23:39:29] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 23:39:29] [INFO]   -> Found value: PCFR
[2026-03-02 23:39:29] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-02 23:39:29] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 23:39:29] [INFO]   -> Found value: 2026-03-02 17:39:22
[2026-03-02 23:39:29] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:39:22"
[2026-03-02 23:39:29] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 23:39:29] [INFO]   -> No value found (null or empty)
[2026-03-02 23:39:29] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 23:39:29] [INFO]   -> No value found (null or empty)
[2026-03-02 23:39:29] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 23:39:29] [INFO]   -> No value found (null or empty)
[2026-03-02 23:39:29] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 23:39:29] [INFO]   -> No value found (null or empty)
[2026-03-02 23:39:29] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 23:39:29] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 23:39:29] [INFO]   -> Found value: 20260023102
[2026-03-02 23:39:29] [INFO]   -> Set field 'policeReportNumber' = "20260023102"
[2026-03-02 23:39:29] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 23:39:29] [INFO]   -> Found value: [EMS] LYNN BROWN  [03/02/26 17:39:15 KBEATY] [EMS] UDTS: SEMI-RESPONSIVE  [03/02/26 17:39:07 KBEATY]...
[2026-03-02 23:39:29] [INFO]   -> Set field 'dispatchNotes' = "[EMS] LYNN BROWN  [03\/02\/26 17:39:15 KBEATY] [EMS] UDTS: SEMI-RESPONSIVE  [03\/02\/26 17:39:07 KBEATY] Event spawned from FALL VICTIM.  [03\/02\/2026 17:39:03 KBEATY]"
[2026-03-02 23:39:29] [INFO]   -> Set field 'cADLog' = "[EMS] LYNN BROWN  [03\/02\/26 17:39:15 KBEATY] [EMS] UDTS: SEMI-RESPONSIVE  [03\/02\/26 17:39:07 KBEATY] Event spawned from FALL VICTIM.  [03\/02\/2026 17:39:03 KBEATY]"
[2026-03-02 23:39:29] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 23:39:29] [INFO]   -> Found value: BLOOMINGTON SPRINGS
[2026-03-02 23:39:29] [INFO]   -> Set field 'incidentLocationCity' = "BLOOMINGTON SPRINGS"
[2026-03-02 23:39:29] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 23:39:29] [INFO]   -> Found value: CLEMMONS
[2026-03-02 23:39:29] [INFO]   -> Set field 'streetName' = "CLEMMONS"
[2026-03-02 23:39:29] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 23:39:29] [INFO]   -> Found value: RD
[2026-03-02 23:39:29] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 23:39:29] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 23:39:29] [INFO]   -> Found value: 3055 CLEMMONS RD
[2026-03-02 23:39:29] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3055 CLEMMONS RD"
[2026-03-02 23:39:29] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-02 23:39:29] [INFO] Concatenating street name and type
[2026-03-02 23:39:29] [INFO]   -> Combined street name: CLEMMONS RD
[2026-03-02 23:39:29] [INFO] Built locationCoordinates from lat/lng: 36.20774,-85.6083
[2026-03-02 23:39:29] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000576","dispatchRunNumber":"2026000576","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":3055,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38545,"nERISIncidentLatitude":36.20774000000000114596332423388957977294921875,"nERISIncidentLongitude":-85.6082999999999998408384271897375583648681640625,"alarm":"2026-03-02 17:39:03","dispatched":"2026-03-02 17:39:22","incidentLocationCross":"SWAFFORD RD\/OLD GAINESBORO RD","cADVehicleID":"PCFR","timedispatch":"2026-03-02 17:39:22","policeReportNumber":"20260023102","dispatchNotes":"[EMS] LYNN BROWN  [03\/02\/26 17:39:15 KBEATY] [EMS] UDTS: SEMI-RESPONSIVE  [03\/02\/26 17:39:07 KBEATY] Event spawned from FALL VICTIM.  [03\/02\/2026 17:39:03 KBEATY]","cADLog":"[EMS] LYNN BROWN  [03\/02\/26 17:39:15 KBEATY] [EMS] UDTS: SEMI-RESPONSIVE  [03\/02\/26 17:39:07 KBEATY] Event spawned from FALL VICTIM.  [03\/02\/2026 17:39:03 KBEATY]","incidentLocationCity":"BLOOMINGTON SPRINGS","streetName":"CLEMMONS RD","incidentAddressTextVersionStreet":"3055 CLEMMONS RD","locationCoordinates":"36.20774,-85.6083"}
[2026-03-02 23:39:29] [INFO] Number of extracted fields: 21
[2026-03-02 23:39:29] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-02 23:39:29] [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-03-02 23:39:29] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-02 23:39:29] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 23:39:30] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 23:39:30] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-02 23:39: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-03-02 23:39:30] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 23:39:30] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-02 23:39:30] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 23:39:30] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 23:39:30] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-02 23:39:39] [INFO] Created new Dispatches record with ID: 69a61fb2b0e1adec9
[2026-03-02 23:39:39] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 23:39:39] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 23:39:43] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 23:39:43] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023102_20260302_233929.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 23:39:43] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 23:40:41] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023102_20260302_234041.XML
[2026-03-02 23:40:41] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023102_20260302_234041.XML for user: 68f1466aed072ad4a
[2026-03-02 23:40:41] [INFO] File size: 6243 bytes
[2026-03-02 23:40:42] [INFO] Created FTPFiles record with ID: 69a61ffa3346ae110
[2026-03-02 23:40:42] [INFO] About to extract fields from XML. File size: 6243 bytes
[2026-03-02 23:40:42] [INFO] Number of mappings: 28
[2026-03-02 23:40:42] [INFO] Starting XML parsing. Content length: 6243
[2026-03-02 23:40:42] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 23:40:42] [INFO] Processing 28 field mappings
[2026-03-02 23:40:42] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 23:40:42] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 23:40:42] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 23:40:42] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-02 23:40:42] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-02 23:40:42] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-02 23:40:42] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 23:40:42] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-02 23:40:42] [INFO]   -> Found value: 2026000576
[2026-03-02 23:40:42] [INFO]   -> Set field 'incidentInternalId' = "2026000576"
[2026-03-02 23:40:42] [INFO]   -> Set field 'dispatchRunNumber' = "2026000576"
[2026-03-02 23:40:42] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 23:40:42] [INFO]   -> Found value: FALL VICTIM
[2026-03-02 23:40:42] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-02 23:40:42] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 23:40:42] [INFO]   -> Found value: 3055
[2026-03-02 23:40:42] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3055
[2026-03-02 23:40:42] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 23:40:42] [INFO]   -> Found value: TN
[2026-03-02 23:40:42] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 23:40:42] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 23:40:42] [INFO]   -> Found value: 38545
[2026-03-02 23:40:42] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38545
[2026-03-02 23:40:42] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 23:40:42] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:42] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 23:40:42] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:42] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 23:40:42] [INFO]   -> Found value: 36.20774
[2026-03-02 23:40:42] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20774000000000114596332423388957977294921875
[2026-03-02 23:40:42] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 23:40:42] [INFO]   -> Found value: -85.60830
[2026-03-02 23:40:42] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6082999999999998408384271897375583648681640625
[2026-03-02 23:40:42] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 23:40:42] [INFO]   -> Found value: 2026-03-02 17:39:03
[2026-03-02 23:40:42] [INFO]   -> Set field 'alarm' = "2026-03-02 17:39:03"
[2026-03-02 23:40:42] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 23:40:42] [INFO]   -> Found value: 2026-03-02 17:39:22
[2026-03-02 23:40:42] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:39:22"
[2026-03-02 23:40:42] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 23:40:42] [INFO]   -> Found value: 2026-03-02 17:40:36
[2026-03-02 23:40:42] [INFO]   -> Set field 'enroute' = "2026-03-02 17:40:36"
[2026-03-02 23:40:42] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 23:40:42] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:42] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 23:40:42] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:42] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 23:40:42] [INFO]   -> Found value: SWAFFORD RD/OLD GAINESBORO RD
[2026-03-02 23:40:42] [INFO]   -> Set field 'incidentLocationCross' = "SWAFFORD RD\/OLD GAINESBORO RD"
[2026-03-02 23:40:42] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 23:40:42] [INFO]   -> Found value: TK31
[2026-03-02 23:40:42] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-02 23:40:42] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 23:40:42] [INFO]   -> Found value: 2026-03-02 17:40:33
[2026-03-02 23:40:42] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:40:33"
[2026-03-02 23:40:42] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 23:40:42] [INFO]   -> Found value: 2026-03-02 17:40:36
[2026-03-02 23:40:42] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-02 17:40:36"
[2026-03-02 23:40:42] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 23:40:42] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:42] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 23:40:42] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:42] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 23:40:42] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:42] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 23:40:42] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 23:40:42] [INFO]   -> Found value: 20260023102
[2026-03-02 23:40:42] [INFO]   -> Set field 'policeReportNumber' = "20260023102"
[2026-03-02 23:40:42] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 23:40:42] [INFO]   -> Found value: [EMS] SLURRED SPEECH  [03/02/26 17:40:15 KBEATY] [EMS] DOB 1/27/1951  [03/02/26 17:39:27 KBEATY] [EM...
[2026-03-02 23:40:42] [INFO]   -> Set field 'dispatchNotes' = "[EMS] SLURRED SPEECH  [03\/02\/26 17:40:15 KBEATY] [EMS] DOB 1\/27\/1951  [03\/02\/26 17:39:27 KBEATY] [EMS] LYNN BROWN  [03\/02\/26 17:39:15 KBEATY] [EMS] UDTS: SEMI-RESPONSIVE  [03\/02\/26 17:39:07 KBEATY] Event spawned from FALL VICTIM.  [03\/02\/2026 17:39:03 KBEATY]"
[2026-03-02 23:40:42] [INFO]   -> Set field 'cADLog' = "[EMS] SLURRED SPEECH  [03\/02\/26 17:40:15 KBEATY] [EMS] DOB 1\/27\/1951  [03\/02\/26 17:39:27 KBEATY] [EMS] LYNN BROWN  [03\/02\/26 17:39:15 KBEATY] [EMS] UDTS: SEMI-RESPONSIVE  [03\/02\/26 17:39:07 KBEATY] Event spawned from FALL VICTIM.  [03\/02\/2026 17:39:03 KBEATY]"
[2026-03-02 23:40:42] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 23:40:42] [INFO]   -> Found value: BLOOMINGTON SPRINGS
[2026-03-02 23:40:42] [INFO]   -> Set field 'incidentLocationCity' = "BLOOMINGTON SPRINGS"
[2026-03-02 23:40:42] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 23:40:42] [INFO]   -> Found value: CLEMMONS
[2026-03-02 23:40:42] [INFO]   -> Set field 'streetName' = "CLEMMONS"
[2026-03-02 23:40:42] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 23:40:42] [INFO]   -> Found value: RD
[2026-03-02 23:40:42] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 23:40:42] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 23:40:42] [INFO]   -> Found value: 3055 CLEMMONS RD
[2026-03-02 23:40:42] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3055 CLEMMONS RD"
[2026-03-02 23:40:42] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-02 23:40:42] [INFO] Concatenating street name and type
[2026-03-02 23:40:42] [INFO]   -> Combined street name: CLEMMONS RD
[2026-03-02 23:40:42] [INFO] Built locationCoordinates from lat/lng: 36.20774,-85.6083
[2026-03-02 23:40:42] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000576","dispatchRunNumber":"2026000576","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":3055,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38545,"nERISIncidentLatitude":36.20774000000000114596332423388957977294921875,"nERISIncidentLongitude":-85.6082999999999998408384271897375583648681640625,"alarm":"2026-03-02 17:39:03","dispatched":"2026-03-02 17:39:22","enroute":"2026-03-02 17:40:36","incidentLocationCross":"SWAFFORD RD\/OLD GAINESBORO RD","cADVehicleID":"TK31","timedispatch":"2026-03-02 17:40:33","timeenroutetoscene":"2026-03-02 17:40:36","policeReportNumber":"20260023102","dispatchNotes":"[EMS] SLURRED SPEECH  [03\/02\/26 17:40:15 KBEATY] [EMS] DOB 1\/27\/1951  [03\/02\/26 17:39:27 KBEATY] [EMS] LYNN BROWN  [03\/02\/26 17:39:15 KBEATY] [EMS] UDTS: SEMI-RESPONSIVE  [03\/02\/26 17:39:07 KBEATY] Event spawned from FALL VICTIM.  [03\/02\/2026 17:39:03 KBEATY]","cADLog":"[EMS] SLURRED SPEECH  [03\/02\/26 17:40:15 KBEATY] [EMS] DOB 1\/27\/1951  [03\/02\/26 17:39:27 KBEATY] [EMS] LYNN BROWN  [03\/02\/26 17:39:15 KBEATY] [EMS] UDTS: SEMI-RESPONSIVE  [03\/02\/26 17:39:07 KBEATY] Event spawned from FALL VICTIM.  [03\/02\/2026 17:39:03 KBEATY]","incidentLocationCity":"BLOOMINGTON SPRINGS","streetName":"CLEMMONS RD","incidentAddressTextVersionStreet":"3055 CLEMMONS RD","locationCoordinates":"36.20774,-85.6083"}
[2026-03-02 23:40:42] [INFO] Number of extracted fields: 23
[2026-03-02 23:40:42] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-02 23:40:42] [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-03-02 23:40:42] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-02 23:40:42] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 23:40:42] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 23:40:42] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-02 23:40: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-03-02 23:40:42] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 23:40:42] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-02 23:40:42] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 23:40:42] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 23:40:42] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-02 23:40:42] [INFO] Found existing Dispatch with cADNumber '2026000576', ID: 69a61fb2b0e1adec9 - will update instead of create
[2026-03-02 23:40:43] [INFO] Updated existing Dispatches record with ID: 69a61fb2b0e1adec9
[2026-03-02 23:40:43] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 23:40:43] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 23:40:46] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 23:40:46] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023102_20260302_234041.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 23:40:46] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 23:40:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023102_20260302_234043.XML
[2026-03-02 23:40:46] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023102_20260302_234043.XML for user: 68f1466aed072ad4a
[2026-03-02 23:40:46] [INFO] File size: 6243 bytes
[2026-03-02 23:40:49] [INFO] Created FTPFiles record with ID: 69a620019fa541287
[2026-03-02 23:40:49] [INFO] About to extract fields from XML. File size: 6243 bytes
[2026-03-02 23:40:49] [INFO] Number of mappings: 28
[2026-03-02 23:40:49] [INFO] Starting XML parsing. Content length: 6243
[2026-03-02 23:40:49] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 23:40:49] [INFO] Processing 28 field mappings
[2026-03-02 23:40:49] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 23:40:49] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 23:40:49] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 23:40:49] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-02 23:40:49] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-02 23:40:49] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-02 23:40:49] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 23:40:49] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-02 23:40:49] [INFO]   -> Found value: 2026000576
[2026-03-02 23:40:49] [INFO]   -> Set field 'incidentInternalId' = "2026000576"
[2026-03-02 23:40:49] [INFO]   -> Set field 'dispatchRunNumber' = "2026000576"
[2026-03-02 23:40:49] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 23:40:49] [INFO]   -> Found value: FALL VICTIM
[2026-03-02 23:40:49] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-02 23:40:49] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 23:40:49] [INFO]   -> Found value: 3055
[2026-03-02 23:40:49] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3055
[2026-03-02 23:40:49] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 23:40:49] [INFO]   -> Found value: TN
[2026-03-02 23:40:49] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 23:40:49] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 23:40:49] [INFO]   -> Found value: 38545
[2026-03-02 23:40:49] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38545
[2026-03-02 23:40:49] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 23:40:49] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:49] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 23:40:49] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:49] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 23:40:49] [INFO]   -> Found value: 36.20774
[2026-03-02 23:40:49] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20774000000000114596332423388957977294921875
[2026-03-02 23:40:49] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 23:40:49] [INFO]   -> Found value: -85.60830
[2026-03-02 23:40:49] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6082999999999998408384271897375583648681640625
[2026-03-02 23:40:49] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 23:40:49] [INFO]   -> Found value: 2026-03-02 17:39:03
[2026-03-02 23:40:49] [INFO]   -> Set field 'alarm' = "2026-03-02 17:39:03"
[2026-03-02 23:40:49] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 23:40:49] [INFO]   -> Found value: 2026-03-02 17:39:22
[2026-03-02 23:40:49] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:39:22"
[2026-03-02 23:40:49] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 23:40:49] [INFO]   -> Found value: 2026-03-02 17:40:36
[2026-03-02 23:40:49] [INFO]   -> Set field 'enroute' = "2026-03-02 17:40:36"
[2026-03-02 23:40:49] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 23:40:49] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:49] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 23:40:49] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:49] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 23:40:49] [INFO]   -> Found value: SWAFFORD RD/OLD GAINESBORO RD
[2026-03-02 23:40:49] [INFO]   -> Set field 'incidentLocationCross' = "SWAFFORD RD\/OLD GAINESBORO RD"
[2026-03-02 23:40:49] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 23:40:49] [INFO]   -> Found value: TK31
[2026-03-02 23:40:49] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-02 23:40:49] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 23:40:49] [INFO]   -> Found value: 2026-03-02 17:40:33
[2026-03-02 23:40:49] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:40:33"
[2026-03-02 23:40:49] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 23:40:49] [INFO]   -> Found value: 2026-03-02 17:40:36
[2026-03-02 23:40:49] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-02 17:40:36"
[2026-03-02 23:40:49] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 23:40:49] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:49] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 23:40:49] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:49] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 23:40:49] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:49] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 23:40:49] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 23:40:49] [INFO]   -> Found value: 20260023102
[2026-03-02 23:40:49] [INFO]   -> Set field 'policeReportNumber' = "20260023102"
[2026-03-02 23:40:49] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 23:40:49] [INFO]   -> Found value: [EMS] SLURRED SPEECH  [03/02/26 17:40:15 KBEATY] [EMS] DOB 1/27/1951  [03/02/26 17:39:27 KBEATY] [EM...
[2026-03-02 23:40:49] [INFO]   -> Set field 'dispatchNotes' = "[EMS] SLURRED SPEECH  [03\/02\/26 17:40:15 KBEATY] [EMS] DOB 1\/27\/1951  [03\/02\/26 17:39:27 KBEATY] [EMS] LYNN BROWN  [03\/02\/26 17:39:15 KBEATY] [EMS] UDTS: SEMI-RESPONSIVE  [03\/02\/26 17:39:07 KBEATY] Event spawned from FALL VICTIM.  [03\/02\/2026 17:39:03 KBEATY]"
[2026-03-02 23:40:49] [INFO]   -> Set field 'cADLog' = "[EMS] SLURRED SPEECH  [03\/02\/26 17:40:15 KBEATY] [EMS] DOB 1\/27\/1951  [03\/02\/26 17:39:27 KBEATY] [EMS] LYNN BROWN  [03\/02\/26 17:39:15 KBEATY] [EMS] UDTS: SEMI-RESPONSIVE  [03\/02\/26 17:39:07 KBEATY] Event spawned from FALL VICTIM.  [03\/02\/2026 17:39:03 KBEATY]"
[2026-03-02 23:40:49] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 23:40:49] [INFO]   -> Found value: BLOOMINGTON SPRINGS
[2026-03-02 23:40:49] [INFO]   -> Set field 'incidentLocationCity' = "BLOOMINGTON SPRINGS"
[2026-03-02 23:40:49] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 23:40:49] [INFO]   -> Found value: CLEMMONS
[2026-03-02 23:40:49] [INFO]   -> Set field 'streetName' = "CLEMMONS"
[2026-03-02 23:40:49] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 23:40:49] [INFO]   -> Found value: RD
[2026-03-02 23:40:49] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 23:40:49] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 23:40:49] [INFO]   -> Found value: 3055 CLEMMONS RD
[2026-03-02 23:40:49] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3055 CLEMMONS RD"
[2026-03-02 23:40:49] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-02 23:40:49] [INFO] Concatenating street name and type
[2026-03-02 23:40:49] [INFO]   -> Combined street name: CLEMMONS RD
[2026-03-02 23:40:49] [INFO] Built locationCoordinates from lat/lng: 36.20774,-85.6083
[2026-03-02 23:40:49] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000576","dispatchRunNumber":"2026000576","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":3055,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38545,"nERISIncidentLatitude":36.20774000000000114596332423388957977294921875,"nERISIncidentLongitude":-85.6082999999999998408384271897375583648681640625,"alarm":"2026-03-02 17:39:03","dispatched":"2026-03-02 17:39:22","enroute":"2026-03-02 17:40:36","incidentLocationCross":"SWAFFORD RD\/OLD GAINESBORO RD","cADVehicleID":"TK31","timedispatch":"2026-03-02 17:40:33","timeenroutetoscene":"2026-03-02 17:40:36","policeReportNumber":"20260023102","dispatchNotes":"[EMS] SLURRED SPEECH  [03\/02\/26 17:40:15 KBEATY] [EMS] DOB 1\/27\/1951  [03\/02\/26 17:39:27 KBEATY] [EMS] LYNN BROWN  [03\/02\/26 17:39:15 KBEATY] [EMS] UDTS: SEMI-RESPONSIVE  [03\/02\/26 17:39:07 KBEATY] Event spawned from FALL VICTIM.  [03\/02\/2026 17:39:03 KBEATY]","cADLog":"[EMS] SLURRED SPEECH  [03\/02\/26 17:40:15 KBEATY] [EMS] DOB 1\/27\/1951  [03\/02\/26 17:39:27 KBEATY] [EMS] LYNN BROWN  [03\/02\/26 17:39:15 KBEATY] [EMS] UDTS: SEMI-RESPONSIVE  [03\/02\/26 17:39:07 KBEATY] Event spawned from FALL VICTIM.  [03\/02\/2026 17:39:03 KBEATY]","incidentLocationCity":"BLOOMINGTON SPRINGS","streetName":"CLEMMONS RD","incidentAddressTextVersionStreet":"3055 CLEMMONS RD","locationCoordinates":"36.20774,-85.6083"}
[2026-03-02 23:40:49] [INFO] Number of extracted fields: 23
[2026-03-02 23:40:49] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-02 23:40: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-03-02 23:40:49] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-02 23:40:49] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 23:40:49] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 23:40:49] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-02 23:40:49] [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-03-02 23:40:49] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 23:40:49] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-02 23:40:49] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 23:40:49] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 23:40:50] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-02 23:40:50] [INFO] Found existing Dispatch with cADNumber '2026000576', ID: 69a61fb2b0e1adec9 - will update instead of create
[2026-03-02 23:40:50] [INFO] Updated existing Dispatches record with ID: 69a61fb2b0e1adec9
[2026-03-02 23:40:50] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 23:40:50] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 23:40:54] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 23:40:54] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023102_20260302_234043.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 23:40:54] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 23:40:54] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023102_20260302_234045.XML
[2026-03-02 23:40:54] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023102_20260302_234045.XML for user: 68f1466aed072ad4a
[2026-03-02 23:40:54] [INFO] File size: 6243 bytes
[2026-03-02 23:40:54] [INFO] Created FTPFiles record with ID: 69a62006b57a4daa2
[2026-03-02 23:40:54] [INFO] About to extract fields from XML. File size: 6243 bytes
[2026-03-02 23:40:54] [INFO] Number of mappings: 28
[2026-03-02 23:40:54] [INFO] Starting XML parsing. Content length: 6243
[2026-03-02 23:40:54] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 23:40:54] [INFO] Processing 28 field mappings
[2026-03-02 23:40:54] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 23:40:54] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 23:40:54] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 23:40:54] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-02 23:40:54] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-02 23:40:54] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-02 23:40:54] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 23:40:54] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-02 23:40:54] [INFO]   -> Found value: 2026000576
[2026-03-02 23:40:54] [INFO]   -> Set field 'incidentInternalId' = "2026000576"
[2026-03-02 23:40:54] [INFO]   -> Set field 'dispatchRunNumber' = "2026000576"
[2026-03-02 23:40:54] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 23:40:54] [INFO]   -> Found value: FALL VICTIM
[2026-03-02 23:40:54] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-02 23:40:54] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 23:40:54] [INFO]   -> Found value: 3055
[2026-03-02 23:40:54] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3055
[2026-03-02 23:40:54] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 23:40:54] [INFO]   -> Found value: TN
[2026-03-02 23:40:54] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 23:40:54] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 23:40:54] [INFO]   -> Found value: 38545
[2026-03-02 23:40:54] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38545
[2026-03-02 23:40:54] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 23:40:54] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:54] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 23:40:54] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:54] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 23:40:54] [INFO]   -> Found value: 36.20774
[2026-03-02 23:40:54] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20774000000000114596332423388957977294921875
[2026-03-02 23:40:54] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 23:40:54] [INFO]   -> Found value: -85.60830
[2026-03-02 23:40:54] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6082999999999998408384271897375583648681640625
[2026-03-02 23:40:54] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 23:40:54] [INFO]   -> Found value: 2026-03-02 17:39:03
[2026-03-02 23:40:54] [INFO]   -> Set field 'alarm' = "2026-03-02 17:39:03"
[2026-03-02 23:40:54] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 23:40:54] [INFO]   -> Found value: 2026-03-02 17:39:22
[2026-03-02 23:40:54] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:39:22"
[2026-03-02 23:40:54] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 23:40:54] [INFO]   -> Found value: 2026-03-02 17:40:36
[2026-03-02 23:40:54] [INFO]   -> Set field 'enroute' = "2026-03-02 17:40:36"
[2026-03-02 23:40:54] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 23:40:54] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:54] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 23:40:54] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:54] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 23:40:54] [INFO]   -> Found value: SWAFFORD RD/OLD GAINESBORO RD
[2026-03-02 23:40:54] [INFO]   -> Set field 'incidentLocationCross' = "SWAFFORD RD\/OLD GAINESBORO RD"
[2026-03-02 23:40:54] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 23:40:54] [INFO]   -> Found value: TK31
[2026-03-02 23:40:54] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-02 23:40:54] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 23:40:54] [INFO]   -> Found value: 2026-03-02 17:40:33
[2026-03-02 23:40:54] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:40:33"
[2026-03-02 23:40:54] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 23:40:54] [INFO]   -> Found value: 2026-03-02 17:40:36
[2026-03-02 23:40:54] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-02 17:40:36"
[2026-03-02 23:40:54] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 23:40:54] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:54] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 23:40:54] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:54] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 23:40:54] [INFO]   -> No value found (null or empty)
[2026-03-02 23:40:54] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 23:40:54] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 23:40:54] [INFO]   -> Found value: 20260023102
[2026-03-02 23:40:54] [INFO]   -> Set field 'policeReportNumber' = "20260023102"
[2026-03-02 23:40:54] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 23:40:54] [INFO]   -> Found value: [EMS] SLURRED SPEECH  [03/02/26 17:40:15 KBEATY] [EMS] DOB 1/27/1951  [03/02/26 17:39:27 KBEATY] [EM...
[2026-03-02 23:40:54] [INFO]   -> Set field 'dispatchNotes' = "[EMS] SLURRED SPEECH  [03\/02\/26 17:40:15 KBEATY] [EMS] DOB 1\/27\/1951  [03\/02\/26 17:39:27 KBEATY] [EMS] LYNN BROWN  [03\/02\/26 17:39:15 KBEATY] [EMS] UDTS: SEMI-RESPONSIVE  [03\/02\/26 17:39:07 KBEATY] Event spawned from FALL VICTIM.  [03\/02\/2026 17:39:03 KBEATY]"
[2026-03-02 23:40:54] [INFO]   -> Set field 'cADLog' = "[EMS] SLURRED SPEECH  [03\/02\/26 17:40:15 KBEATY] [EMS] DOB 1\/27\/1951  [03\/02\/26 17:39:27 KBEATY] [EMS] LYNN BROWN  [03\/02\/26 17:39:15 KBEATY] [EMS] UDTS: SEMI-RESPONSIVE  [03\/02\/26 17:39:07 KBEATY] Event spawned from FALL VICTIM.  [03\/02\/2026 17:39:03 KBEATY]"
[2026-03-02 23:40:54] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 23:40:54] [INFO]   -> Found value: BLOOMINGTON SPRINGS
[2026-03-02 23:40:54] [INFO]   -> Set field 'incidentLocationCity' = "BLOOMINGTON SPRINGS"
[2026-03-02 23:40:54] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 23:40:54] [INFO]   -> Found value: CLEMMONS
[2026-03-02 23:40:54] [INFO]   -> Set field 'streetName' = "CLEMMONS"
[2026-03-02 23:40:54] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 23:40:54] [INFO]   -> Found value: RD
[2026-03-02 23:40:54] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-02 23:40:54] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 23:40:54] [INFO]   -> Found value: 3055 CLEMMONS RD
[2026-03-02 23:40:54] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3055 CLEMMONS RD"
[2026-03-02 23:40:54] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-02 23:40:54] [INFO] Concatenating street name and type
[2026-03-02 23:40:54] [INFO]   -> Combined street name: CLEMMONS RD
[2026-03-02 23:40:54] [INFO] Built locationCoordinates from lat/lng: 36.20774,-85.6083
[2026-03-02 23:40:54] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000576","dispatchRunNumber":"2026000576","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":3055,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38545,"nERISIncidentLatitude":36.20774000000000114596332423388957977294921875,"nERISIncidentLongitude":-85.6082999999999998408384271897375583648681640625,"alarm":"2026-03-02 17:39:03","dispatched":"2026-03-02 17:39:22","enroute":"2026-03-02 17:40:36","incidentLocationCross":"SWAFFORD RD\/OLD GAINESBORO RD","cADVehicleID":"TK31","timedispatch":"2026-03-02 17:40:33","timeenroutetoscene":"2026-03-02 17:40:36","policeReportNumber":"20260023102","dispatchNotes":"[EMS] SLURRED SPEECH  [03\/02\/26 17:40:15 KBEATY] [EMS] DOB 1\/27\/1951  [03\/02\/26 17:39:27 KBEATY] [EMS] LYNN BROWN  [03\/02\/26 17:39:15 KBEATY] [EMS] UDTS: SEMI-RESPONSIVE  [03\/02\/26 17:39:07 KBEATY] Event spawned from FALL VICTIM.  [03\/02\/2026 17:39:03 KBEATY]","cADLog":"[EMS] SLURRED SPEECH  [03\/02\/26 17:40:15 KBEATY] [EMS] DOB 1\/27\/1951  [03\/02\/26 17:39:27 KBEATY] [EMS] LYNN BROWN  [03\/02\/26 17:39:15 KBEATY] [EMS] UDTS: SEMI-RESPONSIVE  [03\/02\/26 17:39:07 KBEATY] Event spawned from FALL VICTIM.  [03\/02\/2026 17:39:03 KBEATY]","incidentLocationCity":"BLOOMINGTON SPRINGS","streetName":"CLEMMONS RD","incidentAddressTextVersionStreet":"3055 CLEMMONS RD","locationCoordinates":"36.20774,-85.6083"}
[2026-03-02 23:40:54] [INFO] Number of extracted fields: 23
[2026-03-02 23:40:54] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-02 23:40:54] [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-03-02 23:40:54] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-02 23:40:54] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-02 23:40:54] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-02 23:40:54] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-02 23:40: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-03-02 23:40:55] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-02 23:40:55] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-02 23:40:55] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-02 23:40:55] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-02 23:40:55] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-02 23:40:55] [INFO] Found existing Dispatch with cADNumber '2026000576', ID: 69a61fb2b0e1adec9 - will update instead of create
[2026-03-02 23:40:55] [INFO] Updated existing Dispatches record with ID: 69a61fb2b0e1adec9
[2026-03-02 23:40:55] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 23:40:56] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 23:40:59] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-02 23:40:59] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023102_20260302_234045.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 23:40:59] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-02 23:59:39] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023108_20260302_235939.XML
[2026-03-02 23:59:39] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023108_20260302_235939.XML for user: 68f1466aed072ad4a
[2026-03-02 23:59:39] [INFO] File size: 5054 bytes
[2026-03-02 23:59:40] [INFO] Created FTPFiles record with ID: 69a6246c34c40b5f4
[2026-03-02 23:59:40] [INFO] About to extract fields from XML. File size: 5054 bytes
[2026-03-02 23:59:40] [INFO] Number of mappings: 28
[2026-03-02 23:59:40] [INFO] Starting XML parsing. Content length: 5054
[2026-03-02 23:59:40] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-02 23:59:40] [INFO] Processing 28 field mappings
[2026-03-02 23:59:40] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-02 23:59:40] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-02 23:59:40] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-02 23:59:40] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-02 23:59:40] [INFO]   -> Found value: BFD
EMS
[2026-03-02 23:59:40] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nEMS"
[2026-03-02 23:59:40] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-02 23:59:40] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-02 23:59:40] [INFO]   -> Found value: 2026000073
[2026-03-02 23:59:40] [INFO]   -> Set field 'incidentInternalId' = "2026000073"
[2026-03-02 23:59:40] [INFO]   -> Set field 'dispatchRunNumber' = "2026000073"
[2026-03-02 23:59:40] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-02 23:59:40] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-02 23:59:40] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-02 23:59:40] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-02 23:59:40] [INFO]   -> Found value: 415
[2026-03-02 23:59:40] [INFO]   -> Set field 'incidentLocationStreetNumber' = 415
[2026-03-02 23:59:40] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-02 23:59:40] [INFO]   -> Found value: TN
[2026-03-02 23:59:40] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-02 23:59:40] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-02 23:59:40] [INFO]   -> Found value: 38544
[2026-03-02 23:59:40] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-02 23:59:40] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-02 23:59:40] [INFO]   -> No value found (null or empty)
[2026-03-02 23:59:40] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-02 23:59:40] [INFO]   -> No value found (null or empty)
[2026-03-02 23:59:40] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-02 23:59:40] [INFO]   -> Found value: 36.15894
[2026-03-02 23:59:40] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.158940000000001191438059322535991668701171875
[2026-03-02 23:59:40] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-02 23:59:40] [INFO]   -> Found value: -85.64935
[2026-03-02 23:59:40] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.649349999999998317434801720082759857177734375
[2026-03-02 23:59:40] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-02 23:59:40] [INFO]   -> Found value: 2026-03-02 17:58:36
[2026-03-02 23:59:40] [INFO]   -> Set field 'alarm' = "2026-03-02 17:58:36"
[2026-03-02 23:59:40] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-02 23:59:40] [INFO]   -> Found value: 2026-03-02 17:59:34
[2026-03-02 23:59:40] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:59:34"
[2026-03-02 23:59:40] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-02 23:59:40] [INFO]   -> No value found (null or empty)
[2026-03-02 23:59:40] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-02 23:59:40] [INFO]   -> No value found (null or empty)
[2026-03-02 23:59:40] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-02 23:59:40] [INFO]   -> No value found (null or empty)
[2026-03-02 23:59:40] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-02 23:59:40] [INFO]   -> Found value: CHESTNUT ST/CHESTNUT ST
[2026-03-02 23:59:40] [INFO]   -> Set field 'incidentLocationCross' = "CHESTNUT ST\/CHESTNUT ST"
[2026-03-02 23:59:40] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-02 23:59:40] [INFO]   -> Found value: BEN2
[2026-03-02 23:59:40] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-02 23:59:40] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-02 23:59:40] [INFO]   -> Found value: 2026-03-02 17:59:34
[2026-03-02 23:59:40] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:59:34"
[2026-03-02 23:59:40] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-02 23:59:40] [INFO]   -> No value found (null or empty)
[2026-03-02 23:59:40] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-02 23:59:40] [INFO]   -> No value found (null or empty)
[2026-03-02 23:59:40] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-02 23:59:40] [INFO]   -> No value found (null or empty)
[2026-03-02 23:59:40] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-02 23:59:40] [INFO]   -> No value found (null or empty)
[2026-03-02 23:59:40] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-02 23:59:40] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-02 23:59:40] [INFO]   -> Found value: 20260023108
[2026-03-02 23:59:40] [INFO]   -> Set field 'policeReportNumber' = "20260023108"
[2026-03-02 23:59:40] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-02 23:59:40] [INFO]   -> Found value: [EMS] POSS. GALL BLADDER ATTACK  [03/02/26 17:58:48 KBEATY] Event spawned from ABDOMINAL PAIN.  [03/...
[2026-03-02 23:59:40] [INFO]   -> Set field 'dispatchNotes' = "[EMS] POSS. GALL BLADDER ATTACK  [03\/02\/26 17:58:48 KBEATY] Event spawned from ABDOMINAL PAIN.  [03\/02\/2026 17:58:36 KBEATY]"
[2026-03-02 23:59:40] [INFO]   -> Set field 'cADLog' = "[EMS] POSS. GALL BLADDER ATTACK  [03\/02\/26 17:58:48 KBEATY] Event spawned from ABDOMINAL PAIN.  [03\/02\/2026 17:58:36 KBEATY]"
[2026-03-02 23:59:40] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-02 23:59:40] [INFO]   -> Found value: BAXTER
[2026-03-02 23:59:40] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-02 23:59:40] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-02 23:59:40] [INFO]   -> Found value: FIRST
[2026-03-02 23:59:40] [INFO]   -> Set field 'streetName' = "FIRST"
[2026-03-02 23:59:40] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-02 23:59:40] [INFO]   -> Found value: AVE
[2026-03-02 23:59:40] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-02 23:59:40] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-02 23:59:40] [INFO]   -> Found value: 415 FIRST AVE N
[2026-03-02 23:59:40] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "415 FIRST AVE N"
[2026-03-02 23:59:40] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-02 23:59:40] [INFO] Concatenating street name and type
[2026-03-02 23:59:40] [INFO]   -> Combined street name: FIRST AVE
[2026-03-02 23:59:40] [INFO] Built locationCoordinates from lat/lng: 36.15894,-85.64935
[2026-03-02 23:59:40] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nEMS","incidentInternalId":"2026000073","dispatchRunNumber":"2026000073","incidentTypeValue1":"ABDOMINAL PAIN","incidentLocationStreetNumber":415,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.158940000000001191438059322535991668701171875,"nERISIncidentLongitude":-85.649349999999998317434801720082759857177734375,"alarm":"2026-03-02 17:58:36","dispatched":"2026-03-02 17:59:34","incidentLocationCross":"CHESTNUT ST\/CHESTNUT ST","cADVehicleID":"BEN2","timedispatch":"2026-03-02 17:59:34","policeReportNumber":"20260023108","dispatchNotes":"[EMS] POSS. GALL BLADDER ATTACK  [03\/02\/26 17:58:48 KBEATY] Event spawned from ABDOMINAL PAIN.  [03\/02\/2026 17:58:36 KBEATY]","cADLog":"[EMS] POSS. GALL BLADDER ATTACK  [03\/02\/26 17:58:48 KBEATY] Event spawned from ABDOMINAL PAIN.  [03\/02\/2026 17:58:36 KBEATY]","incidentLocationCity":"BAXTER","streetName":"FIRST AVE","incidentAddressTextVersionStreet":"415 FIRST AVE N","locationCoordinates":"36.15894,-85.64935"}
[2026-03-02 23:59:40] [INFO] Number of extracted fields: 21
[2026-03-02 23:59:40] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
EMS'
[2026-03-02 23:59:40] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
EMS', Parsed IDs = ["BFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-02 23:59:40] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","EMS"]
[2026-03-02 23:59:40] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-02 23:59:40] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-02 23:59:40] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-03-02 23:59:40] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-02 23:59:40] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-02 23:59:40] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-02 23:59:40] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-02 23:59:40] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-02 23:59:40] [INFO] Found existing IncidentTypeMapping with ID: 6945b247e7ea30221
[2026-03-02 23:59:44] [INFO] Created new Dispatches record with ID: 69a6246d2418db2b2
[2026-03-02 23:59:44] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-02 23:59:44] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-02 23:59: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-03-02 23:59:47] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023108_20260302_235939.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-02 23:59:47] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
