[2026-03-03 00:01:42] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023108_20260303_000142.XML
[2026-03-03 00:01:42] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023108_20260303_000142.XML for user: 68f1466aed072ad4a
[2026-03-03 00:01:42] [INFO] File size: 5121 bytes
[2026-03-03 00:01:42] [INFO] Created FTPFiles record with ID: 69a624e66d691cab1
[2026-03-03 00:01:42] [INFO] About to extract fields from XML. File size: 5121 bytes
[2026-03-03 00:01:42] [INFO] Number of mappings: 28
[2026-03-03 00:01:42] [INFO] Starting XML parsing. Content length: 5121
[2026-03-03 00:01:42] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 00:01:42] [INFO] Processing 28 field mappings
[2026-03-03 00:01:42] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 00:01:42] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 00:01:42] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 00:01:42] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-03 00:01:42] [INFO]   -> Found value: BFD
EMS
[2026-03-03 00:01:42] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nEMS"
[2026-03-03 00:01:42] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 00:01:42] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-03 00:01:42] [INFO]   -> Found value: 2026000073
[2026-03-03 00:01:42] [INFO]   -> Set field 'incidentInternalId' = "2026000073"
[2026-03-03 00:01:42] [INFO]   -> Set field 'dispatchRunNumber' = "2026000073"
[2026-03-03 00:01:42] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 00:01:42] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-03 00:01:42] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-03 00:01:42] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 00:01:42] [INFO]   -> Found value: 415
[2026-03-03 00:01:42] [INFO]   -> Set field 'incidentLocationStreetNumber' = 415
[2026-03-03 00:01:42] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 00:01:42] [INFO]   -> Found value: TN
[2026-03-03 00:01:42] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 00:01:42] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 00:01:42] [INFO]   -> Found value: 38544
[2026-03-03 00:01:42] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-03 00:01:42] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 00:01:42] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:42] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 00:01:42] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:42] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 00:01:42] [INFO]   -> Found value: 36.15894
[2026-03-03 00:01:42] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.158940000000001191438059322535991668701171875
[2026-03-03 00:01:42] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 00:01:42] [INFO]   -> Found value: -85.64935
[2026-03-03 00:01:42] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.649349999999998317434801720082759857177734375
[2026-03-03 00:01:42] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 00:01:42] [INFO]   -> Found value: 2026-03-02 17:58:36
[2026-03-03 00:01:42] [INFO]   -> Set field 'alarm' = "2026-03-02 17:58:36"
[2026-03-03 00:01:42] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 00:01:42] [INFO]   -> Found value: 2026-03-02 17:59:34
[2026-03-03 00:01:42] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:59:34"
[2026-03-03 00:01:42] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 00:01:42] [INFO]   -> Found value: 2026-03-02 18:01:34
[2026-03-03 00:01:42] [INFO]   -> Set field 'enroute' = "2026-03-02 18:01:34"
[2026-03-03 00:01:42] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 00:01:42] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:42] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 00:01:42] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:42] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 00:01:42] [INFO]   -> Found value: CHESTNUT ST/CHESTNUT ST
[2026-03-03 00:01:42] [INFO]   -> Set field 'incidentLocationCross' = "CHESTNUT ST\/CHESTNUT ST"
[2026-03-03 00:01:42] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 00:01:42] [INFO]   -> Found value: BEN2
[2026-03-03 00:01:42] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-03 00:01:42] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 00:01:42] [INFO]   -> Found value: 2026-03-02 17:59:34
[2026-03-03 00:01:42] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:59:34"
[2026-03-03 00:01:42] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 00:01:42] [INFO]   -> Found value: 2026-03-02 18:01:34
[2026-03-03 00:01:42] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-02 18:01:34"
[2026-03-03 00:01:42] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 00:01:42] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:42] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 00:01:42] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:42] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 00:01:42] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:42] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 00:01:42] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 00:01:42] [INFO]   -> Found value: 20260023108
[2026-03-03 00:01:42] [INFO]   -> Set field 'policeReportNumber' = "20260023108"
[2026-03-03 00:01:42] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 00:01:42] [INFO]   -> Found value: [EMS] POSS. GALL BLADDER ATTACK  [03/02/26 17:58:48 KBEATY] Event spawned from ABDOMINAL PAIN.  [03/...
[2026-03-03 00:01:42] [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-03 00:01:42] [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-03 00:01:42] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 00:01:42] [INFO]   -> Found value: BAXTER
[2026-03-03 00:01:42] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-03 00:01:42] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 00:01:42] [INFO]   -> Found value: FIRST
[2026-03-03 00:01:42] [INFO]   -> Set field 'streetName' = "FIRST"
[2026-03-03 00:01:42] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 00:01:42] [INFO]   -> Found value: AVE
[2026-03-03 00:01:42] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-03 00:01:42] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 00:01:42] [INFO]   -> Found value: 415 FIRST AVE N
[2026-03-03 00:01:42] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "415 FIRST AVE N"
[2026-03-03 00:01:42] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 00:01:42] [INFO] Concatenating street name and type
[2026-03-03 00:01:42] [INFO]   -> Combined street name: FIRST AVE
[2026-03-03 00:01:42] [INFO] Built locationCoordinates from lat/lng: 36.15894,-85.64935
[2026-03-03 00:01:42] [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","enroute":"2026-03-02 18:01:34","incidentLocationCross":"CHESTNUT ST\/CHESTNUT ST","cADVehicleID":"BEN2","timedispatch":"2026-03-02 17:59:34","timeenroutetoscene":"2026-03-02 18:01: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-03 00:01:42] [INFO] Number of extracted fields: 23
[2026-03-03 00:01:42] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
EMS'
[2026-03-03 00:01:42] [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-03 00:01:42] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","EMS"]
[2026-03-03 00:01:42] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-03 00:01:42] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-03 00:01:42] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-03-03 00:01:42] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-03 00:01:42] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-03 00:01:42] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-03 00:01:42] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-03 00:01:42] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-03 00:01:43] [INFO] Found existing IncidentTypeMapping with ID: 6945b247e7ea30221
[2026-03-03 00:01:43] [INFO] Found existing Dispatch with cADNumber '2026000073', ID: 69a6246d2418db2b2 - will update instead of create
[2026-03-03 00:01:43] [INFO] Updated existing Dispatches record with ID: 69a6246d2418db2b2
[2026-03-03 00:01:43] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 00:01:43] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 00:01: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-03 00:01:47] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023108_20260303_000142.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 00:01:47] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 00:01:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023108_20260303_000144.XML
[2026-03-03 00:01:47] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023108_20260303_000144.XML for user: 68f1466aed072ad4a
[2026-03-03 00:01:47] [INFO] File size: 5121 bytes
[2026-03-03 00:01:47] [INFO] Created FTPFiles record with ID: 69a624ebcd37cb552
[2026-03-03 00:01:47] [INFO] About to extract fields from XML. File size: 5121 bytes
[2026-03-03 00:01:47] [INFO] Number of mappings: 28
[2026-03-03 00:01:47] [INFO] Starting XML parsing. Content length: 5121
[2026-03-03 00:01:47] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 00:01:47] [INFO] Processing 28 field mappings
[2026-03-03 00:01:47] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 00:01:47] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 00:01:47] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 00:01:47] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-03 00:01:47] [INFO]   -> Found value: BFD
EMS
[2026-03-03 00:01:47] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nEMS"
[2026-03-03 00:01:47] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 00:01:47] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-03 00:01:47] [INFO]   -> Found value: 2026000073
[2026-03-03 00:01:47] [INFO]   -> Set field 'incidentInternalId' = "2026000073"
[2026-03-03 00:01:47] [INFO]   -> Set field 'dispatchRunNumber' = "2026000073"
[2026-03-03 00:01:47] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 00:01:47] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-03 00:01:47] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-03 00:01:47] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 00:01:47] [INFO]   -> Found value: 415
[2026-03-03 00:01:47] [INFO]   -> Set field 'incidentLocationStreetNumber' = 415
[2026-03-03 00:01:47] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 00:01:47] [INFO]   -> Found value: TN
[2026-03-03 00:01:47] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 00:01:47] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 00:01:47] [INFO]   -> Found value: 38544
[2026-03-03 00:01:47] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-03 00:01:47] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 00:01:47] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:47] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 00:01:47] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:47] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 00:01:47] [INFO]   -> Found value: 36.15894
[2026-03-03 00:01:47] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.158940000000001191438059322535991668701171875
[2026-03-03 00:01:47] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 00:01:47] [INFO]   -> Found value: -85.64935
[2026-03-03 00:01:47] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.649349999999998317434801720082759857177734375
[2026-03-03 00:01:47] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 00:01:47] [INFO]   -> Found value: 2026-03-02 17:58:36
[2026-03-03 00:01:47] [INFO]   -> Set field 'alarm' = "2026-03-02 17:58:36"
[2026-03-03 00:01:47] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 00:01:47] [INFO]   -> Found value: 2026-03-02 17:59:34
[2026-03-03 00:01:47] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:59:34"
[2026-03-03 00:01:47] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 00:01:47] [INFO]   -> Found value: 2026-03-02 18:01:34
[2026-03-03 00:01:47] [INFO]   -> Set field 'enroute' = "2026-03-02 18:01:34"
[2026-03-03 00:01:47] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 00:01:47] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:47] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 00:01:47] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:47] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 00:01:47] [INFO]   -> Found value: CHESTNUT ST/CHESTNUT ST
[2026-03-03 00:01:47] [INFO]   -> Set field 'incidentLocationCross' = "CHESTNUT ST\/CHESTNUT ST"
[2026-03-03 00:01:47] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 00:01:47] [INFO]   -> Found value: BEN2
[2026-03-03 00:01:47] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-03 00:01:47] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 00:01:47] [INFO]   -> Found value: 2026-03-02 17:59:34
[2026-03-03 00:01:47] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:59:34"
[2026-03-03 00:01:47] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 00:01:47] [INFO]   -> Found value: 2026-03-02 18:01:34
[2026-03-03 00:01:47] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-02 18:01:34"
[2026-03-03 00:01:47] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 00:01:47] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:47] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 00:01:47] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:47] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 00:01:47] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:47] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 00:01:47] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 00:01:47] [INFO]   -> Found value: 20260023108
[2026-03-03 00:01:47] [INFO]   -> Set field 'policeReportNumber' = "20260023108"
[2026-03-03 00:01:47] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 00:01:47] [INFO]   -> Found value: [EMS] POSS. GALL BLADDER ATTACK  [03/02/26 17:58:48 KBEATY] Event spawned from ABDOMINAL PAIN.  [03/...
[2026-03-03 00:01:47] [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-03 00:01:47] [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-03 00:01:47] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 00:01:47] [INFO]   -> Found value: BAXTER
[2026-03-03 00:01:47] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-03 00:01:47] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 00:01:47] [INFO]   -> Found value: FIRST
[2026-03-03 00:01:47] [INFO]   -> Set field 'streetName' = "FIRST"
[2026-03-03 00:01:47] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 00:01:47] [INFO]   -> Found value: AVE
[2026-03-03 00:01:47] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-03 00:01:47] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 00:01:47] [INFO]   -> Found value: 415 FIRST AVE N
[2026-03-03 00:01:47] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "415 FIRST AVE N"
[2026-03-03 00:01:47] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 00:01:47] [INFO] Concatenating street name and type
[2026-03-03 00:01:47] [INFO]   -> Combined street name: FIRST AVE
[2026-03-03 00:01:47] [INFO] Built locationCoordinates from lat/lng: 36.15894,-85.64935
[2026-03-03 00:01:47] [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","enroute":"2026-03-02 18:01:34","incidentLocationCross":"CHESTNUT ST\/CHESTNUT ST","cADVehicleID":"BEN2","timedispatch":"2026-03-02 17:59:34","timeenroutetoscene":"2026-03-02 18:01: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-03 00:01:47] [INFO] Number of extracted fields: 23
[2026-03-03 00:01:47] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
EMS'
[2026-03-03 00:01:47] [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-03 00:01:47] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","EMS"]
[2026-03-03 00:01:47] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-03 00:01:48] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-03 00:01:48] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-03-03 00:01:48] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-03 00:01:48] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-03 00:01:48] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-03 00:01:48] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-03 00:01:48] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-03 00:01:48] [INFO] Found existing IncidentTypeMapping with ID: 6945b247e7ea30221
[2026-03-03 00:01:48] [INFO] Found existing Dispatch with cADNumber '2026000073', ID: 69a6246d2418db2b2 - will update instead of create
[2026-03-03 00:01:48] [INFO] Updated existing Dispatches record with ID: 69a6246d2418db2b2
[2026-03-03 00:01:48] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 00:01:49] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 00:01: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-03 00:01:52] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023108_20260303_000144.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 00:01:52] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 00:01:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023108_20260303_000145.XML
[2026-03-03 00:01:52] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023108_20260303_000145.XML for user: 68f1466aed072ad4a
[2026-03-03 00:01:52] [INFO] File size: 5121 bytes
[2026-03-03 00:01:53] [INFO] Created FTPFiles record with ID: 69a624f17612eb7bb
[2026-03-03 00:01:53] [INFO] About to extract fields from XML. File size: 5121 bytes
[2026-03-03 00:01:53] [INFO] Number of mappings: 28
[2026-03-03 00:01:53] [INFO] Starting XML parsing. Content length: 5121
[2026-03-03 00:01:53] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 00:01:53] [INFO] Processing 28 field mappings
[2026-03-03 00:01:53] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 00:01:53] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 00:01:53] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 00:01:53] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-03 00:01:53] [INFO]   -> Found value: BFD
EMS
[2026-03-03 00:01:53] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nEMS"
[2026-03-03 00:01:53] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 00:01:53] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-03 00:01:53] [INFO]   -> Found value: 2026000073
[2026-03-03 00:01:53] [INFO]   -> Set field 'incidentInternalId' = "2026000073"
[2026-03-03 00:01:53] [INFO]   -> Set field 'dispatchRunNumber' = "2026000073"
[2026-03-03 00:01:53] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 00:01:53] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-03 00:01:53] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-03 00:01:53] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 00:01:53] [INFO]   -> Found value: 415
[2026-03-03 00:01:53] [INFO]   -> Set field 'incidentLocationStreetNumber' = 415
[2026-03-03 00:01:53] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 00:01:53] [INFO]   -> Found value: TN
[2026-03-03 00:01:53] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 00:01:53] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 00:01:53] [INFO]   -> Found value: 38544
[2026-03-03 00:01:53] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-03 00:01:53] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 00:01:53] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:53] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 00:01:53] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:53] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 00:01:53] [INFO]   -> Found value: 36.15894
[2026-03-03 00:01:53] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.158940000000001191438059322535991668701171875
[2026-03-03 00:01:53] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 00:01:53] [INFO]   -> Found value: -85.64935
[2026-03-03 00:01:53] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.649349999999998317434801720082759857177734375
[2026-03-03 00:01:53] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 00:01:53] [INFO]   -> Found value: 2026-03-02 17:58:36
[2026-03-03 00:01:53] [INFO]   -> Set field 'alarm' = "2026-03-02 17:58:36"
[2026-03-03 00:01:53] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 00:01:53] [INFO]   -> Found value: 2026-03-02 17:59:34
[2026-03-03 00:01:53] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:59:34"
[2026-03-03 00:01:53] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 00:01:53] [INFO]   -> Found value: 2026-03-02 18:01:34
[2026-03-03 00:01:53] [INFO]   -> Set field 'enroute' = "2026-03-02 18:01:34"
[2026-03-03 00:01:53] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 00:01:53] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:53] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 00:01:53] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:53] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 00:01:53] [INFO]   -> Found value: CHESTNUT ST/CHESTNUT ST
[2026-03-03 00:01:53] [INFO]   -> Set field 'incidentLocationCross' = "CHESTNUT ST\/CHESTNUT ST"
[2026-03-03 00:01:53] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 00:01:53] [INFO]   -> Found value: BEN2
[2026-03-03 00:01:53] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-03 00:01:53] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 00:01:53] [INFO]   -> Found value: 2026-03-02 17:59:34
[2026-03-03 00:01:53] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:59:34"
[2026-03-03 00:01:53] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 00:01:53] [INFO]   -> Found value: 2026-03-02 18:01:34
[2026-03-03 00:01:53] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-02 18:01:34"
[2026-03-03 00:01:53] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 00:01:53] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:53] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 00:01:53] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:53] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 00:01:53] [INFO]   -> No value found (null or empty)
[2026-03-03 00:01:53] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 00:01:53] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 00:01:53] [INFO]   -> Found value: 20260023108
[2026-03-03 00:01:53] [INFO]   -> Set field 'policeReportNumber' = "20260023108"
[2026-03-03 00:01:53] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 00:01:53] [INFO]   -> Found value: [EMS] POSS. GALL BLADDER ATTACK  [03/02/26 17:58:48 KBEATY] Event spawned from ABDOMINAL PAIN.  [03/...
[2026-03-03 00:01:53] [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-03 00:01:53] [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-03 00:01:53] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 00:01:53] [INFO]   -> Found value: BAXTER
[2026-03-03 00:01:53] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-03 00:01:53] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 00:01:53] [INFO]   -> Found value: FIRST
[2026-03-03 00:01:53] [INFO]   -> Set field 'streetName' = "FIRST"
[2026-03-03 00:01:53] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 00:01:53] [INFO]   -> Found value: AVE
[2026-03-03 00:01:53] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-03 00:01:53] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 00:01:53] [INFO]   -> Found value: 415 FIRST AVE N
[2026-03-03 00:01:53] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "415 FIRST AVE N"
[2026-03-03 00:01:53] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 00:01:53] [INFO] Concatenating street name and type
[2026-03-03 00:01:53] [INFO]   -> Combined street name: FIRST AVE
[2026-03-03 00:01:53] [INFO] Built locationCoordinates from lat/lng: 36.15894,-85.64935
[2026-03-03 00:01:53] [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","enroute":"2026-03-02 18:01:34","incidentLocationCross":"CHESTNUT ST\/CHESTNUT ST","cADVehicleID":"BEN2","timedispatch":"2026-03-02 17:59:34","timeenroutetoscene":"2026-03-02 18:01: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-03 00:01:53] [INFO] Number of extracted fields: 23
[2026-03-03 00:01:53] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
EMS'
[2026-03-03 00:01:53] [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-03 00:01:53] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","EMS"]
[2026-03-03 00:01:53] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-03 00:01:53] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-03 00:01:53] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-03-03 00:01:54] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-03 00:01:54] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-03 00:01:54] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-03 00:01:54] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-03 00:01:54] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-03 00:01:54] [INFO] Found existing IncidentTypeMapping with ID: 6945b247e7ea30221
[2026-03-03 00:01:54] [INFO] Found existing Dispatch with cADNumber '2026000073', ID: 69a6246d2418db2b2 - will update instead of create
[2026-03-03 00:01:54] [INFO] Updated existing Dispatches record with ID: 69a6246d2418db2b2
[2026-03-03 00:01:54] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 00:01:54] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 00:01: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-03 00:01:58] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023108_20260303_000145.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 00:01:58] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 03:12:05] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023167_20260303_031205.XML
[2026-03-03 03:12:05] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023167_20260303_031205.XML for user: 68f1466aed072ad4a
[2026-03-03 03:12:05] [INFO] File size: 5228 bytes
[2026-03-03 03:12:06] [INFO] Created FTPFiles record with ID: 69a651865413911b6
[2026-03-03 03:12:06] [INFO] About to extract fields from XML. File size: 5228 bytes
[2026-03-03 03:12:06] [INFO] Number of mappings: 28
[2026-03-03 03:12:06] [INFO] Starting XML parsing. Content length: 5228
[2026-03-03 03:12:06] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 03:12:06] [INFO] Processing 28 field mappings
[2026-03-03 03:12:06] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 03:12:06] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 03:12:06] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 03:12:06] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 03:12:06] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 03:12:06] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 03:12:06] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 03:12:06] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 03:12:06] [INFO]   -> Found value: 2026000577
[2026-03-03 03:12:06] [INFO]   -> Set field 'incidentInternalId' = "2026000577"
[2026-03-03 03:12:06] [INFO]   -> Set field 'dispatchRunNumber' = "2026000577"
[2026-03-03 03:12:06] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 03:12:06] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 03:12:06] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 03:12:06] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 03:12:06] [INFO]   -> Found value: 2345
[2026-03-03 03:12:06] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2345
[2026-03-03 03:12:06] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 03:12:06] [INFO]   -> Found value: TN
[2026-03-03 03:12:06] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 03:12:06] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 03:12:06] [INFO]   -> Found value: 38506
[2026-03-03 03:12:06] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 03:12:06] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 03:12:06] [INFO]   -> No value found (null or empty)
[2026-03-03 03:12:06] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 03:12:06] [INFO]   -> No value found (null or empty)
[2026-03-03 03:12:06] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 03:12:06] [INFO]   -> Found value: 36.16567
[2026-03-03 03:12:06] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.16566999999999865167410462163388729095458984375
[2026-03-03 03:12:06] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 03:12:06] [INFO]   -> Found value: -85.39429
[2026-03-03 03:12:06] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.3942899999999980309439706616103649139404296875
[2026-03-03 03:12:06] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 03:12:06] [INFO]   -> Found value: 2026-03-02 21:11:25
[2026-03-03 03:12:06] [INFO]   -> Set field 'alarm' = "2026-03-02 21:11:25"
[2026-03-03 03:12:06] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 03:12:06] [INFO]   -> Found value: 2026-03-02 21:12:02
[2026-03-03 03:12:06] [INFO]   -> Set field 'dispatched' = "2026-03-02 21:12:02"
[2026-03-03 03:12:06] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 03:12:06] [INFO]   -> No value found (null or empty)
[2026-03-03 03:12:06] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 03:12:06] [INFO]   -> No value found (null or empty)
[2026-03-03 03:12:06] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 03:12:06] [INFO]   -> No value found (null or empty)
[2026-03-03 03:12:06] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 03:12:06] [INFO]   -> Found value: CANADA FLATT RD
[2026-03-03 03:12:06] [INFO]   -> Set field 'incidentLocationCross' = "CANADA FLATT RD"
[2026-03-03 03:12:06] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 03:12:06] [INFO]   -> Found value: PCFR
[2026-03-03 03:12:06] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 03:12:06] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 03:12:06] [INFO]   -> Found value: 2026-03-02 21:12:02
[2026-03-03 03:12:06] [INFO]   -> Set field 'timedispatch' = "2026-03-02 21:12:02"
[2026-03-03 03:12:06] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 03:12:06] [INFO]   -> No value found (null or empty)
[2026-03-03 03:12:06] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 03:12:06] [INFO]   -> No value found (null or empty)
[2026-03-03 03:12:06] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 03:12:06] [INFO]   -> No value found (null or empty)
[2026-03-03 03:12:06] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 03:12:06] [INFO]   -> No value found (null or empty)
[2026-03-03 03:12:06] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 03:12:06] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 03:12:06] [INFO]   -> Found value: 20260023167
[2026-03-03 03:12:06] [INFO]   -> Set field 'policeReportNumber' = "20260023167"
[2026-03-03 03:12:06] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 03:12:06] [INFO]   -> Found value: [EMS] CHEST DISCOMFORT- CLAMMY  [03/02/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [0...
[2026-03-03 03:12:06] [INFO]   -> Set field 'dispatchNotes' = "[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]"
[2026-03-03 03:12:06] [INFO]   -> Set field 'cADLog' = "[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]"
[2026-03-03 03:12:06] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 03:12:06] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 03:12:06] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 03:12:06] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 03:12:06] [INFO]   -> Found value: CLINTON CONLEY
[2026-03-03 03:12:06] [INFO]   -> Set field 'streetName' = "CLINTON CONLEY"
[2026-03-03 03:12:06] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 03:12:06] [INFO]   -> Found value: RD
[2026-03-03 03:12:06] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 03:12:06] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 03:12:06] [INFO]   -> Found value: 2345 CLINTON CONLEY RD
[2026-03-03 03:12:06] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2345 CLINTON CONLEY RD"
[2026-03-03 03:12:06] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-03 03:12:06] [INFO] Concatenating street name and type
[2026-03-03 03:12:06] [INFO]   -> Combined street name: CLINTON CONLEY RD
[2026-03-03 03:12:06] [INFO] Built locationCoordinates from lat/lng: 36.16567,-85.39429
[2026-03-03 03:12:06] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000577","dispatchRunNumber":"2026000577","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":2345,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.16566999999999865167410462163388729095458984375,"nERISIncidentLongitude":-85.3942899999999980309439706616103649139404296875,"alarm":"2026-03-02 21:11:25","dispatched":"2026-03-02 21:12:02","incidentLocationCross":"CANADA FLATT RD","cADVehicleID":"PCFR","timedispatch":"2026-03-02 21:12:02","policeReportNumber":"20260023167","dispatchNotes":"[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]","cADLog":"[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"CLINTON CONLEY RD","incidentAddressTextVersionStreet":"2345 CLINTON CONLEY RD","locationCoordinates":"36.16567,-85.39429"}
[2026-03-03 03:12:06] [INFO] Number of extracted fields: 21
[2026-03-03 03:12:06] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 03:12:06] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-03 03:12:06] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 03:12:06] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 03:12:06] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 03:12:06] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 03:12: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-03 03:12: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-03 03:12:06] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 03:12:06] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 03:12:06] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 03:12:06] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-03 03:12:17] [INFO] Created new Dispatches record with ID: 69a651872d78c74ce
[2026-03-03 03:12:17] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 03:12:17] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 03:12: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-03 03:12:20] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023167_20260303_031205.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 03:12:20] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 03:13:06] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023167_20260303_031306.XML
[2026-03-03 03:13:06] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023167_20260303_031306.XML for user: 68f1466aed072ad4a
[2026-03-03 03:13:06] [INFO] File size: 6106 bytes
[2026-03-03 03:13:07] [INFO] Created FTPFiles record with ID: 69a651c30da2a030b
[2026-03-03 03:13:07] [INFO] About to extract fields from XML. File size: 6106 bytes
[2026-03-03 03:13:07] [INFO] Number of mappings: 28
[2026-03-03 03:13:07] [INFO] Starting XML parsing. Content length: 6106
[2026-03-03 03:13:07] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 03:13:07] [INFO] Processing 28 field mappings
[2026-03-03 03:13:07] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 03:13:07] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 03:13:07] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 03:13:07] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 03:13:07] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 03:13:07] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 03:13:07] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 03:13:07] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 03:13:07] [INFO]   -> Found value: 2026000577
[2026-03-03 03:13:07] [INFO]   -> Set field 'incidentInternalId' = "2026000577"
[2026-03-03 03:13:07] [INFO]   -> Set field 'dispatchRunNumber' = "2026000577"
[2026-03-03 03:13:07] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 03:13:07] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 03:13:07] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 03:13:07] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 03:13:07] [INFO]   -> Found value: 2345
[2026-03-03 03:13:07] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2345
[2026-03-03 03:13:07] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 03:13:07] [INFO]   -> Found value: TN
[2026-03-03 03:13:07] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 03:13:07] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 03:13:07] [INFO]   -> Found value: 38506
[2026-03-03 03:13:07] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 03:13:07] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 03:13:07] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:07] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 03:13:07] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:07] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 03:13:07] [INFO]   -> Found value: 36.16567
[2026-03-03 03:13:07] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.16566999999999865167410462163388729095458984375
[2026-03-03 03:13:07] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 03:13:07] [INFO]   -> Found value: -85.39429
[2026-03-03 03:13:07] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.3942899999999980309439706616103649139404296875
[2026-03-03 03:13:07] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 03:13:07] [INFO]   -> Found value: 2026-03-02 21:11:25
[2026-03-03 03:13:07] [INFO]   -> Set field 'alarm' = "2026-03-02 21:11:25"
[2026-03-03 03:13:07] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 03:13:07] [INFO]   -> Found value: 2026-03-02 21:12:02
[2026-03-03 03:13:07] [INFO]   -> Set field 'dispatched' = "2026-03-02 21:12:02"
[2026-03-03 03:13:07] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 03:13:07] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:07] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 03:13:07] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:07] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 03:13:07] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:07] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 03:13:07] [INFO]   -> Found value: CANADA FLATT RD
[2026-03-03 03:13:07] [INFO]   -> Set field 'incidentLocationCross' = "CANADA FLATT RD"
[2026-03-03 03:13:07] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 03:13:07] [INFO]   -> Found value: PCFR
[2026-03-03 03:13:07] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 03:13:07] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 03:13:07] [INFO]   -> Found value: 2026-03-02 21:12:02
[2026-03-03 03:13:07] [INFO]   -> Set field 'timedispatch' = "2026-03-02 21:12:02"
[2026-03-03 03:13:07] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 03:13:07] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:07] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 03:13:07] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:07] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 03:13:07] [INFO]   -> Found value: 2026-03-02 21:13:01
[2026-03-03 03:13:07] [INFO]   -> Set field 'timeunitclear' = "2026-03-02 21:13:01"
[2026-03-03 03:13:07] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 03:13:07] [INFO]   -> Found value: 2026-03-02 21:13:01
[2026-03-03 03:13:07] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-02 21:13:01"
[2026-03-03 03:13:07] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 03:13:07] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 03:13:07] [INFO]   -> Found value: 20260023167
[2026-03-03 03:13:07] [INFO]   -> Set field 'policeReportNumber' = "20260023167"
[2026-03-03 03:13:07] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 03:13:07] [INFO]   -> Found value: [EMS] CHEST DISCOMFORT- CLAMMY  [03/02/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [0...
[2026-03-03 03:13:07] [INFO]   -> Set field 'dispatchNotes' = "[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]"
[2026-03-03 03:13:07] [INFO]   -> Set field 'cADLog' = "[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]"
[2026-03-03 03:13:07] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 03:13:07] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 03:13:07] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 03:13:07] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 03:13:07] [INFO]   -> Found value: CLINTON CONLEY
[2026-03-03 03:13:07] [INFO]   -> Set field 'streetName' = "CLINTON CONLEY"
[2026-03-03 03:13:07] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 03:13:07] [INFO]   -> Found value: RD
[2026-03-03 03:13:07] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 03:13:07] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 03:13:07] [INFO]   -> Found value: 2345 CLINTON CONLEY RD
[2026-03-03 03:13:07] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2345 CLINTON CONLEY RD"
[2026-03-03 03:13:07] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 03:13:07] [INFO] Concatenating street name and type
[2026-03-03 03:13:07] [INFO]   -> Combined street name: CLINTON CONLEY RD
[2026-03-03 03:13:07] [INFO] Built locationCoordinates from lat/lng: 36.16567,-85.39429
[2026-03-03 03:13:07] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000577","dispatchRunNumber":"2026000577","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":2345,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.16566999999999865167410462163388729095458984375,"nERISIncidentLongitude":-85.3942899999999980309439706616103649139404296875,"alarm":"2026-03-02 21:11:25","dispatched":"2026-03-02 21:12:02","incidentLocationCross":"CANADA FLATT RD","cADVehicleID":"PCFR","timedispatch":"2026-03-02 21:12:02","timeunitclear":"2026-03-02 21:13:01","timecanceledenroute":"2026-03-02 21:13:01","policeReportNumber":"20260023167","dispatchNotes":"[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]","cADLog":"[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"CLINTON CONLEY RD","incidentAddressTextVersionStreet":"2345 CLINTON CONLEY RD","locationCoordinates":"36.16567,-85.39429"}
[2026-03-03 03:13:07] [INFO] Number of extracted fields: 23
[2026-03-03 03:13:07] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 03:13:07] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-03 03:13:07] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 03:13:07] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 03:13:07] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 03:13:07] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 03:13: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-03 03:13: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-03 03:13:07] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 03:13:07] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 03:13:07] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 03:13:07] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-03 03:13:07] [INFO] Found existing Dispatch with cADNumber '2026000577', ID: 69a651872d78c74ce - will update instead of create
[2026-03-03 03:13:07] [INFO] Updated existing Dispatches record with ID: 69a651872d78c74ce
[2026-03-03 03:13:07] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 03:13:08] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 03:13: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-03 03:13:11] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023167_20260303_031306.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 03:13:11] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 03:13:11] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023167_20260303_031311.XML
[2026-03-03 03:13:11] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023167_20260303_031311.XML for user: 68f1466aed072ad4a
[2026-03-03 03:13:11] [INFO] File size: 6106 bytes
[2026-03-03 03:13:11] [INFO] Created FTPFiles record with ID: 69a651c7df46a8d96
[2026-03-03 03:13:11] [INFO] About to extract fields from XML. File size: 6106 bytes
[2026-03-03 03:13:11] [INFO] Number of mappings: 28
[2026-03-03 03:13:11] [INFO] Starting XML parsing. Content length: 6106
[2026-03-03 03:13:11] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 03:13:11] [INFO] Processing 28 field mappings
[2026-03-03 03:13:11] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 03:13:11] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 03:13:11] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 03:13:11] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 03:13:11] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 03:13:11] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 03:13:11] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 03:13:11] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 03:13:11] [INFO]   -> Found value: 2026000577
[2026-03-03 03:13:11] [INFO]   -> Set field 'incidentInternalId' = "2026000577"
[2026-03-03 03:13:11] [INFO]   -> Set field 'dispatchRunNumber' = "2026000577"
[2026-03-03 03:13:11] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 03:13:11] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 03:13:11] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 03:13:11] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 03:13:11] [INFO]   -> Found value: 2345
[2026-03-03 03:13:11] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2345
[2026-03-03 03:13:11] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 03:13:11] [INFO]   -> Found value: TN
[2026-03-03 03:13:11] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 03:13:11] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 03:13:11] [INFO]   -> Found value: 38506
[2026-03-03 03:13:11] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 03:13:11] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 03:13:11] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:11] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 03:13:11] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:11] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 03:13:11] [INFO]   -> Found value: 36.16567
[2026-03-03 03:13:11] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.16566999999999865167410462163388729095458984375
[2026-03-03 03:13:11] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 03:13:11] [INFO]   -> Found value: -85.39429
[2026-03-03 03:13:11] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.3942899999999980309439706616103649139404296875
[2026-03-03 03:13:11] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 03:13:11] [INFO]   -> Found value: 2026-03-02 21:11:25
[2026-03-03 03:13:11] [INFO]   -> Set field 'alarm' = "2026-03-02 21:11:25"
[2026-03-03 03:13:11] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 03:13:11] [INFO]   -> Found value: 2026-03-02 21:12:02
[2026-03-03 03:13:11] [INFO]   -> Set field 'dispatched' = "2026-03-02 21:12:02"
[2026-03-03 03:13:11] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 03:13:11] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:11] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 03:13:11] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:11] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 03:13:11] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:11] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 03:13:11] [INFO]   -> Found value: CANADA FLATT RD
[2026-03-03 03:13:11] [INFO]   -> Set field 'incidentLocationCross' = "CANADA FLATT RD"
[2026-03-03 03:13:11] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 03:13:11] [INFO]   -> Found value: PCFR
[2026-03-03 03:13:11] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 03:13:11] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 03:13:11] [INFO]   -> Found value: 2026-03-02 21:12:02
[2026-03-03 03:13:11] [INFO]   -> Set field 'timedispatch' = "2026-03-02 21:12:02"
[2026-03-03 03:13:11] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 03:13:11] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:11] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 03:13:11] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:11] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 03:13:11] [INFO]   -> Found value: 2026-03-02 21:13:01
[2026-03-03 03:13:11] [INFO]   -> Set field 'timeunitclear' = "2026-03-02 21:13:01"
[2026-03-03 03:13:11] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 03:13:11] [INFO]   -> Found value: 2026-03-02 21:13:01
[2026-03-03 03:13:11] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-02 21:13:01"
[2026-03-03 03:13:11] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 03:13:11] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 03:13:11] [INFO]   -> Found value: 20260023167
[2026-03-03 03:13:11] [INFO]   -> Set field 'policeReportNumber' = "20260023167"
[2026-03-03 03:13:11] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 03:13:11] [INFO]   -> Found value: [EMS] CHEST DISCOMFORT- CLAMMY  [03/02/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [0...
[2026-03-03 03:13:11] [INFO]   -> Set field 'dispatchNotes' = "[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]"
[2026-03-03 03:13:11] [INFO]   -> Set field 'cADLog' = "[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]"
[2026-03-03 03:13:11] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 03:13:11] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 03:13:11] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 03:13:11] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 03:13:11] [INFO]   -> Found value: CLINTON CONLEY
[2026-03-03 03:13:11] [INFO]   -> Set field 'streetName' = "CLINTON CONLEY"
[2026-03-03 03:13:11] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 03:13:11] [INFO]   -> Found value: RD
[2026-03-03 03:13:11] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 03:13:11] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 03:13:11] [INFO]   -> Found value: 2345 CLINTON CONLEY RD
[2026-03-03 03:13:11] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2345 CLINTON CONLEY RD"
[2026-03-03 03:13:11] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 03:13:11] [INFO] Concatenating street name and type
[2026-03-03 03:13:11] [INFO]   -> Combined street name: CLINTON CONLEY RD
[2026-03-03 03:13:11] [INFO] Built locationCoordinates from lat/lng: 36.16567,-85.39429
[2026-03-03 03:13:11] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000577","dispatchRunNumber":"2026000577","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":2345,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.16566999999999865167410462163388729095458984375,"nERISIncidentLongitude":-85.3942899999999980309439706616103649139404296875,"alarm":"2026-03-02 21:11:25","dispatched":"2026-03-02 21:12:02","incidentLocationCross":"CANADA FLATT RD","cADVehicleID":"PCFR","timedispatch":"2026-03-02 21:12:02","timeunitclear":"2026-03-02 21:13:01","timecanceledenroute":"2026-03-02 21:13:01","policeReportNumber":"20260023167","dispatchNotes":"[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]","cADLog":"[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"CLINTON CONLEY RD","incidentAddressTextVersionStreet":"2345 CLINTON CONLEY RD","locationCoordinates":"36.16567,-85.39429"}
[2026-03-03 03:13:11] [INFO] Number of extracted fields: 23
[2026-03-03 03:13:11] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 03:13:11] [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-03 03:13:11] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 03:13:11] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 03:13:12] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 03:13:12] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 03:13: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-03 03:13: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-03 03:13:12] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 03:13:12] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 03:13:12] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 03:13:12] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-03 03:13:12] [INFO] Found existing Dispatch with cADNumber '2026000577', ID: 69a651872d78c74ce - will update instead of create
[2026-03-03 03:13:12] [INFO] Updated existing Dispatches record with ID: 69a651872d78c74ce
[2026-03-03 03:13:12] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 03:13:12] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 03:13: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-03 03:13:16] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023167_20260303_031311.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 03:13:16] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 03:13:16] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023167_20260303_031313.XML
[2026-03-03 03:13:16] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023167_20260303_031313.XML for user: 68f1466aed072ad4a
[2026-03-03 03:13:16] [INFO] File size: 6106 bytes
[2026-03-03 03:13:16] [INFO] Created FTPFiles record with ID: 69a651cc5de391008
[2026-03-03 03:13:16] [INFO] About to extract fields from XML. File size: 6106 bytes
[2026-03-03 03:13:16] [INFO] Number of mappings: 28
[2026-03-03 03:13:16] [INFO] Starting XML parsing. Content length: 6106
[2026-03-03 03:13:16] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 03:13:16] [INFO] Processing 28 field mappings
[2026-03-03 03:13:16] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 03:13:16] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 03:13:16] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 03:13:16] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 03:13:16] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 03:13:16] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 03:13:16] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 03:13:16] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 03:13:16] [INFO]   -> Found value: 2026000577
[2026-03-03 03:13:16] [INFO]   -> Set field 'incidentInternalId' = "2026000577"
[2026-03-03 03:13:16] [INFO]   -> Set field 'dispatchRunNumber' = "2026000577"
[2026-03-03 03:13:16] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 03:13:16] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 03:13:16] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 03:13:16] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 03:13:16] [INFO]   -> Found value: 2345
[2026-03-03 03:13:16] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2345
[2026-03-03 03:13:16] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 03:13:16] [INFO]   -> Found value: TN
[2026-03-03 03:13:16] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 03:13:16] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 03:13:16] [INFO]   -> Found value: 38506
[2026-03-03 03:13:16] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 03:13:16] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 03:13:16] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:16] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 03:13:16] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:16] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 03:13:16] [INFO]   -> Found value: 36.16567
[2026-03-03 03:13:16] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.16566999999999865167410462163388729095458984375
[2026-03-03 03:13:16] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 03:13:16] [INFO]   -> Found value: -85.39429
[2026-03-03 03:13:16] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.3942899999999980309439706616103649139404296875
[2026-03-03 03:13:16] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 03:13:16] [INFO]   -> Found value: 2026-03-02 21:11:25
[2026-03-03 03:13:16] [INFO]   -> Set field 'alarm' = "2026-03-02 21:11:25"
[2026-03-03 03:13:16] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 03:13:16] [INFO]   -> Found value: 2026-03-02 21:12:02
[2026-03-03 03:13:16] [INFO]   -> Set field 'dispatched' = "2026-03-02 21:12:02"
[2026-03-03 03:13:16] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 03:13:16] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:16] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 03:13:16] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:16] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 03:13:16] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:16] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 03:13:16] [INFO]   -> Found value: CANADA FLATT RD
[2026-03-03 03:13:16] [INFO]   -> Set field 'incidentLocationCross' = "CANADA FLATT RD"
[2026-03-03 03:13:16] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 03:13:16] [INFO]   -> Found value: PCFR
[2026-03-03 03:13:16] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 03:13:16] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 03:13:16] [INFO]   -> Found value: 2026-03-02 21:12:02
[2026-03-03 03:13:16] [INFO]   -> Set field 'timedispatch' = "2026-03-02 21:12:02"
[2026-03-03 03:13:16] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 03:13:16] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:16] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 03:13:16] [INFO]   -> No value found (null or empty)
[2026-03-03 03:13:16] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 03:13:16] [INFO]   -> Found value: 2026-03-02 21:13:01
[2026-03-03 03:13:16] [INFO]   -> Set field 'timeunitclear' = "2026-03-02 21:13:01"
[2026-03-03 03:13:16] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 03:13:16] [INFO]   -> Found value: 2026-03-02 21:13:01
[2026-03-03 03:13:16] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-02 21:13:01"
[2026-03-03 03:13:16] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 03:13:16] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 03:13:16] [INFO]   -> Found value: 20260023167
[2026-03-03 03:13:16] [INFO]   -> Set field 'policeReportNumber' = "20260023167"
[2026-03-03 03:13:16] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 03:13:16] [INFO]   -> Found value: [EMS] CHEST DISCOMFORT- CLAMMY  [03/02/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [0...
[2026-03-03 03:13:16] [INFO]   -> Set field 'dispatchNotes' = "[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]"
[2026-03-03 03:13:16] [INFO]   -> Set field 'cADLog' = "[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]"
[2026-03-03 03:13:16] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 03:13:16] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 03:13:16] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 03:13:16] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 03:13:16] [INFO]   -> Found value: CLINTON CONLEY
[2026-03-03 03:13:16] [INFO]   -> Set field 'streetName' = "CLINTON CONLEY"
[2026-03-03 03:13:16] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 03:13:16] [INFO]   -> Found value: RD
[2026-03-03 03:13:16] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 03:13:16] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 03:13:16] [INFO]   -> Found value: 2345 CLINTON CONLEY RD
[2026-03-03 03:13:16] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2345 CLINTON CONLEY RD"
[2026-03-03 03:13:16] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 03:13:16] [INFO] Concatenating street name and type
[2026-03-03 03:13:16] [INFO]   -> Combined street name: CLINTON CONLEY RD
[2026-03-03 03:13:16] [INFO] Built locationCoordinates from lat/lng: 36.16567,-85.39429
[2026-03-03 03:13:16] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000577","dispatchRunNumber":"2026000577","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":2345,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.16566999999999865167410462163388729095458984375,"nERISIncidentLongitude":-85.3942899999999980309439706616103649139404296875,"alarm":"2026-03-02 21:11:25","dispatched":"2026-03-02 21:12:02","incidentLocationCross":"CANADA FLATT RD","cADVehicleID":"PCFR","timedispatch":"2026-03-02 21:12:02","timeunitclear":"2026-03-02 21:13:01","timecanceledenroute":"2026-03-02 21:13:01","policeReportNumber":"20260023167","dispatchNotes":"[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]","cADLog":"[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"CLINTON CONLEY RD","incidentAddressTextVersionStreet":"2345 CLINTON CONLEY RD","locationCoordinates":"36.16567,-85.39429"}
[2026-03-03 03:13:16] [INFO] Number of extracted fields: 23
[2026-03-03 03:13:16] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 03:13:16] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-03 03:13:16] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 03:13:16] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 03:13:16] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 03:13:16] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 03:13: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-03 03:13: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-03 03:13:16] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 03:13:16] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 03:13:16] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 03:13:16] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-03 03:13:17] [INFO] Found existing Dispatch with cADNumber '2026000577', ID: 69a651872d78c74ce - will update instead of create
[2026-03-03 03:13:17] [INFO] Updated existing Dispatches record with ID: 69a651872d78c74ce
[2026-03-03 03:13:17] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 03:13:17] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 03:13: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-03 03:13:20] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023167_20260303_031313.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 03:13:20] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 04:11:31] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260023186_20260303_041131.XML
[2026-03-03 04:11:31] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260023186_20260303_041131.XML for user: 68f1466aed072ad4a
[2026-03-03 04:11:31] [INFO] File size: 4715 bytes
[2026-03-03 04:11:31] [INFO] Created FTPFiles record with ID: 69a65f73c16e4dbac
[2026-03-03 04:11:31] [INFO] About to extract fields from XML. File size: 4715 bytes
[2026-03-03 04:11:31] [INFO] Number of mappings: 28
[2026-03-03 04:11:31] [INFO] Starting XML parsing. Content length: 4715
[2026-03-03 04:11:31] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 04:11:31] [INFO] Processing 28 field mappings
[2026-03-03 04:11:31] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 04:11:31] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 04:11:31] [INFO]   -> Found value: MFD
[2026-03-03 04:11:31] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD"
[2026-03-03 04:11:31] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 04:11:31] [INFO]   -> Found value: 2026000080
[2026-03-03 04:11:31] [INFO]   -> Set field 'incidentInternalId' = "2026000080"
[2026-03-03 04:11:31] [INFO]   -> Set field 'dispatchRunNumber' = "2026000080"
[2026-03-03 04:11:31] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 04:11:31] [INFO]   -> Found value: FIRE ALARM
[2026-03-03 04:11:31] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-03 04:11:31] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 04:11:31] [INFO]   -> Found value: 522
[2026-03-03 04:11:31] [INFO]   -> Set field 'incidentLocationStreetNumber' = 522
[2026-03-03 04:11:31] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 04:11:31] [INFO]   -> Found value: TN
[2026-03-03 04:11:31] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 04:11:31] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 04:11:31] [INFO]   -> Found value: 38574
[2026-03-03 04:11:31] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-03 04:11:31] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 04:11:31] [INFO]   -> Found value: BETHEL INN  HOTEL
[2026-03-03 04:11:31] [INFO]   -> Set field 'businessName' = "BETHEL INN  HOTEL"
[2026-03-03 04:11:31] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 04:11:31] [INFO]   -> No value found (null or empty)
[2026-03-03 04:11:31] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 04:11:31] [INFO]   -> Found value: 36.14078
[2026-03-03 04:11:31] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14077999999999946112438919954001903533935546875
[2026-03-03 04:11:31] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 04:11:31] [INFO]   -> Found value: -85.26656
[2026-03-03 04:11:31] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.266559999999998353814589790999889373779296875
[2026-03-03 04:11:31] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 04:11:31] [INFO]   -> Found value: 2026-03-02 22:09:52
[2026-03-03 04:11:31] [INFO]   -> Set field 'alarm' = "2026-03-02 22:09:52"
[2026-03-03 04:11:31] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 04:11:31] [INFO]   -> Found value: 2026-03-02 22:11:26
[2026-03-03 04:11:31] [INFO]   -> Set field 'dispatched' = "2026-03-02 22:11:26"
[2026-03-03 04:11:31] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 04:11:31] [INFO]   -> No value found (null or empty)
[2026-03-03 04:11:31] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 04:11:31] [INFO]   -> No value found (null or empty)
[2026-03-03 04:11:31] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 04:11:31] [INFO]   -> No value found (null or empty)
[2026-03-03 04:11:31] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 04:11:31] [INFO]   -> Found value: AGEE ST/INDUSTRIAL DR
[2026-03-03 04:11:31] [INFO]   -> Set field 'incidentLocationCross' = "AGEE ST\/INDUSTRIAL DR"
[2026-03-03 04:11:31] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 04:11:31] [INFO]   -> Found value: MFEN1
[2026-03-03 04:11:31] [INFO]   -> Set field 'cADVehicleID' = "MFEN1"
[2026-03-03 04:11:31] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 04:11:31] [INFO]   -> Found value: 2026-03-02 22:11:26
[2026-03-03 04:11:31] [INFO]   -> Set field 'timedispatch' = "2026-03-02 22:11:26"
[2026-03-03 04:11:31] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 04:11:31] [INFO]   -> No value found (null or empty)
[2026-03-03 04:11:31] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 04:11:31] [INFO]   -> No value found (null or empty)
[2026-03-03 04:11:31] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 04:11:31] [INFO]   -> No value found (null or empty)
[2026-03-03 04:11:31] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 04:11:31] [INFO]   -> No value found (null or empty)
[2026-03-03 04:11:31] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 04:11:31] [INFO]   -> Found value: 20260023186
[2026-03-03 04:11:31] [INFO]   -> Set field 'policeReportNumber' = "20260023186"
[2026-03-03 04:11:31] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 04:11:31] [INFO]   -> Found value: ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03/02/26 22:10:48 JDICK]]
[2026-03-03 04:11:31] [INFO]   -> Set field 'dispatchNotes' = "ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]"
[2026-03-03 04:11:31] [INFO]   -> Set field 'cADLog' = "ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]"
[2026-03-03 04:11:31] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 04:11:31] [INFO]   -> Found value: MONTEREY
[2026-03-03 04:11:31] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-03 04:11:31] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 04:11:31] [INFO]   -> Found value: STRATTON
[2026-03-03 04:11:31] [INFO]   -> Set field 'streetName' = "STRATTON"
[2026-03-03 04:11:31] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 04:11:31] [INFO]   -> Found value: AVE
[2026-03-03 04:11:31] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-03 04:11:31] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 04:11:31] [INFO]   -> Found value: 522 E STRATTON AVE
[2026-03-03 04:11:31] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "522 E STRATTON AVE"
[2026-03-03 04:11:31] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-03 04:11:31] [INFO] Concatenating street name and type
[2026-03-03 04:11:31] [INFO]   -> Combined street name: STRATTON AVE
[2026-03-03 04:11:31] [INFO] Built locationCoordinates from lat/lng: 36.14078,-85.26656
[2026-03-03 04:11:31] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD","incidentInternalId":"2026000080","dispatchRunNumber":"2026000080","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":522,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"BETHEL INN  HOTEL","nERISIncidentLatitude":36.14077999999999946112438919954001903533935546875,"nERISIncidentLongitude":-85.266559999999998353814589790999889373779296875,"alarm":"2026-03-02 22:09:52","dispatched":"2026-03-02 22:11:26","incidentLocationCross":"AGEE ST\/INDUSTRIAL DR","cADVehicleID":"MFEN1","timedispatch":"2026-03-02 22:11:26","policeReportNumber":"20260023186","dispatchNotes":"ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]","cADLog":"ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]","incidentLocationCity":"MONTEREY","streetName":"STRATTON AVE","incidentAddressTextVersionStreet":"522 E STRATTON AVE","locationCoordinates":"36.14078,-85.26656"}
[2026-03-03 04:11:31] [INFO] Number of extracted fields: 22
[2026-03-03 04:11:31] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD'
[2026-03-03 04:11:31] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD', Parsed IDs = ["MFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-03 04:11:31] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD"]
[2026-03-03 04:11:31] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-03 04:11:31] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-03 04:11:32] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-03 04:11:32] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-03 04:11:32] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-03 04:11:32] [INFO] Found existing IncidentTypeMapping with ID: 69678f4b9453355aa
[2026-03-03 04:11:35] [INFO] Created new Dispatches record with ID: 69a65f74af5d0a5cd
[2026-03-03 04:11:35] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 04:11:35] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 04:11: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-03 04:11:40] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260023186_20260303_041131.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 04:11:40] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 04:12:04] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260023186_20260303_041204.XML
[2026-03-03 04:12:04] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260023186_20260303_041204.XML for user: 68f1466aed072ad4a
[2026-03-03 04:12:04] [INFO] File size: 5664 bytes
[2026-03-03 04:12:04] [INFO] Created FTPFiles record with ID: 69a65f94ecf27cbb2
[2026-03-03 04:12:04] [INFO] About to extract fields from XML. File size: 5664 bytes
[2026-03-03 04:12:04] [INFO] Number of mappings: 28
[2026-03-03 04:12:04] [INFO] Starting XML parsing. Content length: 5664
[2026-03-03 04:12:04] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 04:12:04] [INFO] Processing 28 field mappings
[2026-03-03 04:12:04] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 04:12:04] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 04:12:04] [INFO]   -> Found value: MFD
[2026-03-03 04:12:04] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD"
[2026-03-03 04:12:04] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 04:12:04] [INFO]   -> Found value: 2026000080
[2026-03-03 04:12:04] [INFO]   -> Set field 'incidentInternalId' = "2026000080"
[2026-03-03 04:12:04] [INFO]   -> Set field 'dispatchRunNumber' = "2026000080"
[2026-03-03 04:12:04] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 04:12:04] [INFO]   -> Found value: FIRE ALARM
[2026-03-03 04:12:04] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-03 04:12:04] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 04:12:04] [INFO]   -> Found value: 522
[2026-03-03 04:12:04] [INFO]   -> Set field 'incidentLocationStreetNumber' = 522
[2026-03-03 04:12:04] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 04:12:04] [INFO]   -> Found value: TN
[2026-03-03 04:12:04] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 04:12:04] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 04:12:04] [INFO]   -> Found value: 38574
[2026-03-03 04:12:04] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-03 04:12:04] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 04:12:04] [INFO]   -> Found value: BETHEL INN  HOTEL
[2026-03-03 04:12:04] [INFO]   -> Set field 'businessName' = "BETHEL INN  HOTEL"
[2026-03-03 04:12:04] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 04:12:04] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:04] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 04:12:04] [INFO]   -> Found value: 36.14078
[2026-03-03 04:12:04] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14077999999999946112438919954001903533935546875
[2026-03-03 04:12:04] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 04:12:04] [INFO]   -> Found value: -85.26656
[2026-03-03 04:12:04] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.266559999999998353814589790999889373779296875
[2026-03-03 04:12:04] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 04:12:04] [INFO]   -> Found value: 2026-03-02 22:09:52
[2026-03-03 04:12:04] [INFO]   -> Set field 'alarm' = "2026-03-02 22:09:52"
[2026-03-03 04:12:04] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 04:12:04] [INFO]   -> Found value: 2026-03-02 22:11:26
[2026-03-03 04:12:04] [INFO]   -> Set field 'dispatched' = "2026-03-02 22:11:26"
[2026-03-03 04:12:04] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 04:12:04] [INFO]   -> Found value: 2026-03-02 22:12:00
[2026-03-03 04:12:04] [INFO]   -> Set field 'enroute' = "2026-03-02 22:12:00"
[2026-03-03 04:12:04] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 04:12:04] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:04] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 04:12:04] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:04] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 04:12:04] [INFO]   -> Found value: AGEE ST/INDUSTRIAL DR
[2026-03-03 04:12:04] [INFO]   -> Set field 'incidentLocationCross' = "AGEE ST\/INDUSTRIAL DR"
[2026-03-03 04:12:04] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 04:12:04] [INFO]   -> Found value: MF110
[2026-03-03 04:12:04] [INFO]   -> Set field 'cADVehicleID' = "MF110"
[2026-03-03 04:12:04] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 04:12:04] [INFO]   -> Found value: 2026-03-02 22:12:00
[2026-03-03 04:12:04] [INFO]   -> Set field 'timedispatch' = "2026-03-02 22:12:00"
[2026-03-03 04:12:04] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 04:12:04] [INFO]   -> Found value: 2026-03-02 22:12:00
[2026-03-03 04:12:04] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-02 22:12:00"
[2026-03-03 04:12:04] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 04:12:04] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:04] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 04:12:04] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:04] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 04:12:04] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:04] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 04:12:04] [INFO]   -> Found value: 20260023186
[2026-03-03 04:12:04] [INFO]   -> Set field 'policeReportNumber' = "20260023186"
[2026-03-03 04:12:04] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 04:12:04] [INFO]   -> Found value: ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03/02/26 22:10:48 JDICK]]
[2026-03-03 04:12:04] [INFO]   -> Set field 'dispatchNotes' = "ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]"
[2026-03-03 04:12:04] [INFO]   -> Set field 'cADLog' = "ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]"
[2026-03-03 04:12:04] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 04:12:04] [INFO]   -> Found value: MONTEREY
[2026-03-03 04:12:04] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-03 04:12:04] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 04:12:04] [INFO]   -> Found value: STRATTON
[2026-03-03 04:12:04] [INFO]   -> Set field 'streetName' = "STRATTON"
[2026-03-03 04:12:04] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 04:12:04] [INFO]   -> Found value: AVE
[2026-03-03 04:12:04] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-03 04:12:04] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 04:12:04] [INFO]   -> Found value: 522 E STRATTON AVE
[2026-03-03 04:12:04] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "522 E STRATTON AVE"
[2026-03-03 04:12:04] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-03 04:12:04] [INFO] Concatenating street name and type
[2026-03-03 04:12:04] [INFO]   -> Combined street name: STRATTON AVE
[2026-03-03 04:12:04] [INFO] Built locationCoordinates from lat/lng: 36.14078,-85.26656
[2026-03-03 04:12:04] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD","incidentInternalId":"2026000080","dispatchRunNumber":"2026000080","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":522,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"BETHEL INN  HOTEL","nERISIncidentLatitude":36.14077999999999946112438919954001903533935546875,"nERISIncidentLongitude":-85.266559999999998353814589790999889373779296875,"alarm":"2026-03-02 22:09:52","dispatched":"2026-03-02 22:11:26","enroute":"2026-03-02 22:12:00","incidentLocationCross":"AGEE ST\/INDUSTRIAL DR","cADVehicleID":"MF110","timedispatch":"2026-03-02 22:12:00","timeenroutetoscene":"2026-03-02 22:12:00","policeReportNumber":"20260023186","dispatchNotes":"ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]","cADLog":"ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]","incidentLocationCity":"MONTEREY","streetName":"STRATTON AVE","incidentAddressTextVersionStreet":"522 E STRATTON AVE","locationCoordinates":"36.14078,-85.26656"}
[2026-03-03 04:12:04] [INFO] Number of extracted fields: 24
[2026-03-03 04:12:04] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD'
[2026-03-03 04:12:04] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD', Parsed IDs = ["MFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-03 04:12:04] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD"]
[2026-03-03 04:12:04] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-03 04:12:05] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-03 04:12:05] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-03 04:12:05] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-03 04:12:05] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-03 04:12:05] [INFO] Found existing IncidentTypeMapping with ID: 69678f4b9453355aa
[2026-03-03 04:12:05] [INFO] Found existing Dispatch with cADNumber '2026000080', ID: 69a65f74af5d0a5cd - will update instead of create
[2026-03-03 04:12:05] [INFO] Updated existing Dispatches record with ID: 69a65f74af5d0a5cd
[2026-03-03 04:12:05] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 04:12:06] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 04:12: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-03 04:12:09] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260023186_20260303_041204.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 04:12:09] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 04:12:09] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260023186_20260303_041206.XML
[2026-03-03 04:12:09] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260023186_20260303_041206.XML for user: 68f1466aed072ad4a
[2026-03-03 04:12:09] [INFO] File size: 5664 bytes
[2026-03-03 04:12:09] [INFO] Created FTPFiles record with ID: 69a65f99ba0c13159
[2026-03-03 04:12:09] [INFO] About to extract fields from XML. File size: 5664 bytes
[2026-03-03 04:12:09] [INFO] Number of mappings: 28
[2026-03-03 04:12:09] [INFO] Starting XML parsing. Content length: 5664
[2026-03-03 04:12:09] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 04:12:09] [INFO] Processing 28 field mappings
[2026-03-03 04:12:09] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 04:12:09] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 04:12:09] [INFO]   -> Found value: MFD
[2026-03-03 04:12:09] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD"
[2026-03-03 04:12:09] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 04:12:09] [INFO]   -> Found value: 2026000080
[2026-03-03 04:12:09] [INFO]   -> Set field 'incidentInternalId' = "2026000080"
[2026-03-03 04:12:09] [INFO]   -> Set field 'dispatchRunNumber' = "2026000080"
[2026-03-03 04:12:09] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 04:12:09] [INFO]   -> Found value: FIRE ALARM
[2026-03-03 04:12:09] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-03 04:12:09] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 04:12:09] [INFO]   -> Found value: 522
[2026-03-03 04:12:09] [INFO]   -> Set field 'incidentLocationStreetNumber' = 522
[2026-03-03 04:12:09] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 04:12:09] [INFO]   -> Found value: TN
[2026-03-03 04:12:09] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 04:12:09] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 04:12:09] [INFO]   -> Found value: 38574
[2026-03-03 04:12:09] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-03 04:12:09] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 04:12:09] [INFO]   -> Found value: BETHEL INN  HOTEL
[2026-03-03 04:12:09] [INFO]   -> Set field 'businessName' = "BETHEL INN  HOTEL"
[2026-03-03 04:12:09] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 04:12:09] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:09] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 04:12:09] [INFO]   -> Found value: 36.14078
[2026-03-03 04:12:09] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14077999999999946112438919954001903533935546875
[2026-03-03 04:12:09] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 04:12:09] [INFO]   -> Found value: -85.26656
[2026-03-03 04:12:09] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.266559999999998353814589790999889373779296875
[2026-03-03 04:12:09] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 04:12:09] [INFO]   -> Found value: 2026-03-02 22:09:52
[2026-03-03 04:12:09] [INFO]   -> Set field 'alarm' = "2026-03-02 22:09:52"
[2026-03-03 04:12:09] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 04:12:09] [INFO]   -> Found value: 2026-03-02 22:11:26
[2026-03-03 04:12:09] [INFO]   -> Set field 'dispatched' = "2026-03-02 22:11:26"
[2026-03-03 04:12:09] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 04:12:09] [INFO]   -> Found value: 2026-03-02 22:12:00
[2026-03-03 04:12:09] [INFO]   -> Set field 'enroute' = "2026-03-02 22:12:00"
[2026-03-03 04:12:09] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 04:12:09] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:09] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 04:12:09] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:09] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 04:12:09] [INFO]   -> Found value: AGEE ST/INDUSTRIAL DR
[2026-03-03 04:12:09] [INFO]   -> Set field 'incidentLocationCross' = "AGEE ST\/INDUSTRIAL DR"
[2026-03-03 04:12:09] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 04:12:09] [INFO]   -> Found value: MF110
[2026-03-03 04:12:09] [INFO]   -> Set field 'cADVehicleID' = "MF110"
[2026-03-03 04:12:09] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 04:12:09] [INFO]   -> Found value: 2026-03-02 22:12:00
[2026-03-03 04:12:09] [INFO]   -> Set field 'timedispatch' = "2026-03-02 22:12:00"
[2026-03-03 04:12:09] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 04:12:09] [INFO]   -> Found value: 2026-03-02 22:12:00
[2026-03-03 04:12:09] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-02 22:12:00"
[2026-03-03 04:12:09] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 04:12:09] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:09] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 04:12:09] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:09] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 04:12:09] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:09] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 04:12:09] [INFO]   -> Found value: 20260023186
[2026-03-03 04:12:09] [INFO]   -> Set field 'policeReportNumber' = "20260023186"
[2026-03-03 04:12:09] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 04:12:09] [INFO]   -> Found value: ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03/02/26 22:10:48 JDICK]]
[2026-03-03 04:12:09] [INFO]   -> Set field 'dispatchNotes' = "ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]"
[2026-03-03 04:12:09] [INFO]   -> Set field 'cADLog' = "ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]"
[2026-03-03 04:12:09] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 04:12:09] [INFO]   -> Found value: MONTEREY
[2026-03-03 04:12:09] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-03 04:12:09] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 04:12:09] [INFO]   -> Found value: STRATTON
[2026-03-03 04:12:09] [INFO]   -> Set field 'streetName' = "STRATTON"
[2026-03-03 04:12:09] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 04:12:09] [INFO]   -> Found value: AVE
[2026-03-03 04:12:09] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-03 04:12:09] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 04:12:09] [INFO]   -> Found value: 522 E STRATTON AVE
[2026-03-03 04:12:09] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "522 E STRATTON AVE"
[2026-03-03 04:12:09] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-03 04:12:09] [INFO] Concatenating street name and type
[2026-03-03 04:12:09] [INFO]   -> Combined street name: STRATTON AVE
[2026-03-03 04:12:09] [INFO] Built locationCoordinates from lat/lng: 36.14078,-85.26656
[2026-03-03 04:12:09] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD","incidentInternalId":"2026000080","dispatchRunNumber":"2026000080","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":522,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"BETHEL INN  HOTEL","nERISIncidentLatitude":36.14077999999999946112438919954001903533935546875,"nERISIncidentLongitude":-85.266559999999998353814589790999889373779296875,"alarm":"2026-03-02 22:09:52","dispatched":"2026-03-02 22:11:26","enroute":"2026-03-02 22:12:00","incidentLocationCross":"AGEE ST\/INDUSTRIAL DR","cADVehicleID":"MF110","timedispatch":"2026-03-02 22:12:00","timeenroutetoscene":"2026-03-02 22:12:00","policeReportNumber":"20260023186","dispatchNotes":"ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]","cADLog":"ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]","incidentLocationCity":"MONTEREY","streetName":"STRATTON AVE","incidentAddressTextVersionStreet":"522 E STRATTON AVE","locationCoordinates":"36.14078,-85.26656"}
[2026-03-03 04:12:09] [INFO] Number of extracted fields: 24
[2026-03-03 04:12:09] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD'
[2026-03-03 04:12:09] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD', Parsed IDs = ["MFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-03 04:12:09] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD"]
[2026-03-03 04:12:09] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-03 04:12:09] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-03 04:12:10] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-03 04:12:10] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-03 04:12:10] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-03 04:12:10] [INFO] Found existing IncidentTypeMapping with ID: 69678f4b9453355aa
[2026-03-03 04:12:10] [INFO] Found existing Dispatch with cADNumber '2026000080', ID: 69a65f74af5d0a5cd - will update instead of create
[2026-03-03 04:12:10] [INFO] Updated existing Dispatches record with ID: 69a65f74af5d0a5cd
[2026-03-03 04:12:10] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 04:12:10] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 04:12: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-03 04:12:14] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260023186_20260303_041206.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 04:12:14] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 04:12:14] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260023186_20260303_041207.XML
[2026-03-03 04:12:14] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260023186_20260303_041207.XML for user: 68f1466aed072ad4a
[2026-03-03 04:12:14] [INFO] File size: 5664 bytes
[2026-03-03 04:12:14] [INFO] Created FTPFiles record with ID: 69a65f9e771b85852
[2026-03-03 04:12:14] [INFO] About to extract fields from XML. File size: 5664 bytes
[2026-03-03 04:12:14] [INFO] Number of mappings: 28
[2026-03-03 04:12:14] [INFO] Starting XML parsing. Content length: 5664
[2026-03-03 04:12:14] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 04:12:14] [INFO] Processing 28 field mappings
[2026-03-03 04:12:14] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 04:12:14] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 04:12:14] [INFO]   -> Found value: MFD
[2026-03-03 04:12:14] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD"
[2026-03-03 04:12:14] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 04:12:14] [INFO]   -> Found value: 2026000080
[2026-03-03 04:12:14] [INFO]   -> Set field 'incidentInternalId' = "2026000080"
[2026-03-03 04:12:14] [INFO]   -> Set field 'dispatchRunNumber' = "2026000080"
[2026-03-03 04:12:14] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 04:12:14] [INFO]   -> Found value: FIRE ALARM
[2026-03-03 04:12:14] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-03 04:12:14] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 04:12:14] [INFO]   -> Found value: 522
[2026-03-03 04:12:14] [INFO]   -> Set field 'incidentLocationStreetNumber' = 522
[2026-03-03 04:12:14] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 04:12:14] [INFO]   -> Found value: TN
[2026-03-03 04:12:14] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 04:12:14] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 04:12:14] [INFO]   -> Found value: 38574
[2026-03-03 04:12:14] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-03 04:12:14] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 04:12:14] [INFO]   -> Found value: BETHEL INN  HOTEL
[2026-03-03 04:12:14] [INFO]   -> Set field 'businessName' = "BETHEL INN  HOTEL"
[2026-03-03 04:12:14] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 04:12:14] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:14] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 04:12:14] [INFO]   -> Found value: 36.14078
[2026-03-03 04:12:14] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14077999999999946112438919954001903533935546875
[2026-03-03 04:12:14] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 04:12:14] [INFO]   -> Found value: -85.26656
[2026-03-03 04:12:14] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.266559999999998353814589790999889373779296875
[2026-03-03 04:12:14] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 04:12:14] [INFO]   -> Found value: 2026-03-02 22:09:52
[2026-03-03 04:12:14] [INFO]   -> Set field 'alarm' = "2026-03-02 22:09:52"
[2026-03-03 04:12:14] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 04:12:14] [INFO]   -> Found value: 2026-03-02 22:11:26
[2026-03-03 04:12:14] [INFO]   -> Set field 'dispatched' = "2026-03-02 22:11:26"
[2026-03-03 04:12:14] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 04:12:14] [INFO]   -> Found value: 2026-03-02 22:12:00
[2026-03-03 04:12:14] [INFO]   -> Set field 'enroute' = "2026-03-02 22:12:00"
[2026-03-03 04:12:14] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 04:12:14] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:14] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 04:12:14] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:14] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 04:12:14] [INFO]   -> Found value: AGEE ST/INDUSTRIAL DR
[2026-03-03 04:12:14] [INFO]   -> Set field 'incidentLocationCross' = "AGEE ST\/INDUSTRIAL DR"
[2026-03-03 04:12:14] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 04:12:14] [INFO]   -> Found value: MF110
[2026-03-03 04:12:14] [INFO]   -> Set field 'cADVehicleID' = "MF110"
[2026-03-03 04:12:14] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 04:12:14] [INFO]   -> Found value: 2026-03-02 22:12:00
[2026-03-03 04:12:14] [INFO]   -> Set field 'timedispatch' = "2026-03-02 22:12:00"
[2026-03-03 04:12:14] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 04:12:14] [INFO]   -> Found value: 2026-03-02 22:12:00
[2026-03-03 04:12:14] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-02 22:12:00"
[2026-03-03 04:12:14] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 04:12:14] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:14] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 04:12:14] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:14] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 04:12:14] [INFO]   -> No value found (null or empty)
[2026-03-03 04:12:14] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 04:12:14] [INFO]   -> Found value: 20260023186
[2026-03-03 04:12:14] [INFO]   -> Set field 'policeReportNumber' = "20260023186"
[2026-03-03 04:12:14] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 04:12:14] [INFO]   -> Found value: ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03/02/26 22:10:48 JDICK]]
[2026-03-03 04:12:14] [INFO]   -> Set field 'dispatchNotes' = "ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]"
[2026-03-03 04:12:14] [INFO]   -> Set field 'cADLog' = "ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]"
[2026-03-03 04:12:14] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 04:12:14] [INFO]   -> Found value: MONTEREY
[2026-03-03 04:12:14] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-03 04:12:14] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 04:12:14] [INFO]   -> Found value: STRATTON
[2026-03-03 04:12:14] [INFO]   -> Set field 'streetName' = "STRATTON"
[2026-03-03 04:12:14] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 04:12:14] [INFO]   -> Found value: AVE
[2026-03-03 04:12:14] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-03 04:12:14] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 04:12:14] [INFO]   -> Found value: 522 E STRATTON AVE
[2026-03-03 04:12:14] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "522 E STRATTON AVE"
[2026-03-03 04:12:14] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-03 04:12:14] [INFO] Concatenating street name and type
[2026-03-03 04:12:14] [INFO]   -> Combined street name: STRATTON AVE
[2026-03-03 04:12:14] [INFO] Built locationCoordinates from lat/lng: 36.14078,-85.26656
[2026-03-03 04:12:14] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD","incidentInternalId":"2026000080","dispatchRunNumber":"2026000080","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":522,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"BETHEL INN  HOTEL","nERISIncidentLatitude":36.14077999999999946112438919954001903533935546875,"nERISIncidentLongitude":-85.266559999999998353814589790999889373779296875,"alarm":"2026-03-02 22:09:52","dispatched":"2026-03-02 22:11:26","enroute":"2026-03-02 22:12:00","incidentLocationCross":"AGEE ST\/INDUSTRIAL DR","cADVehicleID":"MF110","timedispatch":"2026-03-02 22:12:00","timeenroutetoscene":"2026-03-02 22:12:00","policeReportNumber":"20260023186","dispatchNotes":"ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]","cADLog":"ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]","incidentLocationCity":"MONTEREY","streetName":"STRATTON AVE","incidentAddressTextVersionStreet":"522 E STRATTON AVE","locationCoordinates":"36.14078,-85.26656"}
[2026-03-03 04:12:14] [INFO] Number of extracted fields: 24
[2026-03-03 04:12:14] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD'
[2026-03-03 04:12:14] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD', Parsed IDs = ["MFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-03 04:12:14] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD"]
[2026-03-03 04:12:14] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-03 04:12:14] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-03 04:12:14] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-03 04:12:14] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-03 04:12:14] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-03 04:12:15] [INFO] Found existing IncidentTypeMapping with ID: 69678f4b9453355aa
[2026-03-03 04:12:15] [INFO] Found existing Dispatch with cADNumber '2026000080', ID: 69a65f74af5d0a5cd - will update instead of create
[2026-03-03 04:12:15] [INFO] Updated existing Dispatches record with ID: 69a65f74af5d0a5cd
[2026-03-03 04:12:15] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 04:12:15] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 04:12: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-03 04:12:18] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260023186_20260303_041207.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 04:12:18] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 05:25:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-06393.xml
[2026-03-03 05:25:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-06393.xml for user: 68d56363ec1209189
[2026-03-03 05:25:51] [INFO] File size: 1769 bytes
[2026-03-03 05:25:52] [INFO] Created FTPFiles record with ID: 69a670e03df8a1590
[2026-03-03 05:25:52] [INFO] About to extract fields from XML. File size: 1769 bytes
[2026-03-03 05:25:52] [INFO] Number of mappings: 21
[2026-03-03 05:25:52] [INFO] Starting XML parsing. Content length: 1769
[2026-03-03 05:25:52] [INFO] XML parsed successfully. Root element: Incident
[2026-03-03 05:25:52] [INFO] Processing 21 field mappings
[2026-03-03 05:25:52] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-03 05:25:52] [INFO]   -> Found value: 26-06393
[2026-03-03 05:25:52] [INFO]   -> Set field 'dispatchRunNumber' = "26-06393"
[2026-03-03 05:25:52] [INFO]   -> Set field 'cADNumber' = "26-06393"
[2026-03-03 05:25:52] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-03 05:25:52] [INFO]   -> Found value: 220
[2026-03-03 05:25:52] [INFO]   -> Set field 'incidentLocationStreetNumber' = 220
[2026-03-03 05:25:52] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-03 05:25:52] [INFO]   -> Found value: LOCUST ST
[2026-03-03 05:25:52] [INFO]   -> Set field 'streetName' = "LOCUST ST"
[2026-03-03 05:25:52] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-03 05:25:52] [INFO]   -> No value found (null or empty)
[2026-03-03 05:25:52] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-03 05:25:52] [INFO]   -> Found value: BLODGETT
[2026-03-03 05:25:52] [INFO]   -> Set field 'incidentLocationCity' = "BLODGETT"
[2026-03-03 05:25:52] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-03 05:25:52] [INFO]   -> No value found (null or empty)
[2026-03-03 05:25:52] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-03 05:25:52] [INFO]   -> Found value: MO
[2026-03-03 05:25:52] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-03-03 05:25:52] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-03 05:25:52] [INFO]   -> Found value: 63824
[2026-03-03 05:25:52] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63824
[2026-03-03 05:25:52] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-03 05:25:52] [INFO]   -> Found value: 0
[2026-03-03 05:25:52] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-03 05:25:52] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-03 05:25:52] [INFO]   -> Found value: 0
[2026-03-03 05:25:52] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-03 05:25:52] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-03 05:25:52] [INFO]   -> Found value: MEDICAL
[2026-03-03 05:25:52] [INFO]   -> Set field 'incidentTypeValue1' = "MEDICAL"
[2026-03-03 05:25:52] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-03 05:25:52] [INFO]   -> Found value: 03-02-2026 23:04:42|RP STATED SHE WAS BIT BY A SNAKE
CALLER IS BEING VERY UNCOOPERATIVE
UNK WHAT TYP...
[2026-03-03 05:25:52] [INFO]   -> Set field 'dispatchNotes' = "03-02-2026 23:04:42|RP STATED SHE WAS BIT BY A SNAKE\nCALLER IS BEING VERY UNCOOPERATIVE\nUNK WHAT TYPE OF SNAKE 03-02-2026 23:08:51|20 YEAR OLD FEMALE 03-02-2026 23:10:29|****** Appended notes from E911 Call begin ******\nSource: E911 \nLaw Enf: Sikeston Department of Public Safety \nOpened DateTime: 03\/02\/2026 23:06:45\nNotes: Call Received on 03\/02\/2026 @ 23:06\n\nLocation: 1 COUNTY RD 539\n****** Appended notes from E911 Call end   ******\n 03-02-2026 23:12:20|Disposition - SSCA UNIT:  RPT"
[2026-03-03 05:25:52] [INFO]   -> Set field 'cADLog' = "03-02-2026 23:04:42|RP STATED SHE WAS BIT BY A SNAKE\nCALLER IS BEING VERY UNCOOPERATIVE\nUNK WHAT TYPE OF SNAKE 03-02-2026 23:08:51|20 YEAR OLD FEMALE 03-02-2026 23:10:29|****** Appended notes from E911 Call begin ******\nSource: E911 \nLaw Enf: Sikeston Department of Public Safety \nOpened DateTime: 03\/02\/2026 23:06:45\nNotes: Call Received on 03\/02\/2026 @ 23:06\n\nLocation: 1 COUNTY RD 539\n****** Appended notes from E911 Call end   ******\n 03-02-2026 23:12:20|Disposition - SSCA UNIT:  RPT"
[2026-03-03 05:25:52] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-03 05:25:52] [INFO]   -> Found value: 03-02-2026T23:07:59
[2026-03-03 05:25:52] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T23:07:59
[2026-03-03 05:25:52] [INFO]   -> Set field 'alarm' = "2026-02-03 23:07:59"
[2026-03-03 05:25:52] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T23:07:59
[2026-03-03 05:25:52] [INFO]   -> Set field 'dispatched' = "2026-02-03 23:07:59"
[2026-03-03 05:25:52] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-03 05:25:52] [INFO]   -> No value found (null or empty)
[2026-03-03 05:25:52] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-03 05:25:52] [INFO]   -> No value found (null or empty)
[2026-03-03 05:25:52] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-03 05:25:52] [INFO]   -> Found value: RURAL PAGE
[2026-03-03 05:25:52] [INFO]   -> Set field 'cADVehicleID' = "RURAL PAGE"
[2026-03-03 05:25:52] [INFO]   -> Set field 'name' = "RURAL PAGE"
[2026-03-03 05:25:52] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-03 05:25:52] [INFO]   -> No value found (null or empty)
[2026-03-03 05:25:52] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-03 05:25:52] [INFO]   -> No value found (null or empty)
[2026-03-03 05:25:52] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-03 05:25:52] [INFO]   -> Found value: 03-02-2026T23:24:52
[2026-03-03 05:25:52] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T23:24:52
[2026-03-03 05:25:52] [INFO]   -> Set field 'timeunitclear' = "2026-02-03 23:24:52"
[2026-03-03 05:25:52] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-03 05:25:52] [INFO]   -> Found value: 03-02-2026T23:09:34
[2026-03-03 05:25:52] [INFO] Reformatted DD-MM-YYYY date '03-02-2026' (day=03, month=02) to ISO: 2026-02-03T23:09:34
[2026-03-03 05:25:52] [INFO]   -> Set field 'timedispatch' = "2026-02-03 23:09:34"
[2026-03-03 05:25:52] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-03 05:25:52] [INFO]   -> Found value: SCRFD
[2026-03-03 05:25:52] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2026-03-03 05:25:52] [INFO] Finished extracting fields. Total fields extracted: 19
[2026-03-03 05:25:52] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-03 05:25:52] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-06393","cADNumber":"26-06393","incidentLocationStreetNumber":220,"streetName":"LOCUST ST","incidentLocationCity":"BLODGETT","incidentLocationStateName":"MO","nERISIncidentPostalCode":63824,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"MEDICAL","dispatchNotes":"03-02-2026 23:04:42|RP STATED SHE WAS BIT BY A SNAKE\nCALLER IS BEING VERY UNCOOPERATIVE\nUNK WHAT TYPE OF SNAKE 03-02-2026 23:08:51|20 YEAR OLD FEMALE 03-02-2026 23:10:29|****** Appended notes from E911 Call begin ******\nSource: E911 \nLaw Enf: Sikeston Department of Public Safety \nOpened DateTime: 03\/02\/2026 23:06:45\nNotes: Call Received on 03\/02\/2026 @ 23:06\n\nLocation: 1 COUNTY RD 539\n****** Appended notes from E911 Call end   ******\n 03-02-2026 23:12:20|Disposition - SSCA UNIT:  RPT","cADLog":"03-02-2026 23:04:42|RP STATED SHE WAS BIT BY A SNAKE\nCALLER IS BEING VERY UNCOOPERATIVE\nUNK WHAT TYPE OF SNAKE 03-02-2026 23:08:51|20 YEAR OLD FEMALE 03-02-2026 23:10:29|****** Appended notes from E911 Call begin ******\nSource: E911 \nLaw Enf: Sikeston Department of Public Safety \nOpened DateTime: 03\/02\/2026 23:06:45\nNotes: Call Received on 03\/02\/2026 @ 23:06\n\nLocation: 1 COUNTY RD 539\n****** Appended notes from E911 Call end   ******\n 03-02-2026 23:12:20|Disposition - SSCA UNIT:  RPT","alarm":"2026-02-03 23:07:59","dispatched":"2026-02-03 23:07:59","cADVehicleID":"RURAL PAGE","name":"RURAL PAGE","timeunitclear":"2026-02-03 23:24:52","timedispatch":"2026-02-03 23:09:34","cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2026-03-03 05:25:52] [INFO] Number of extracted fields: 20
[2026-03-03 05:25:52] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2026-03-03 05:25:52] [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-03 05:25:52] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2026-03-03 05:25:52] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (index 0) within mailbox's assigned agencies
[2026-03-03 05:25:52] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) at INDEX 0 based on AgencyCode 'SCRFD'
[2026-03-03 05:25:52] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2026-03-03 05:25:52] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"], matchedAgencyIndex = 0
[2026-03-03 05:25:52] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2026-03-03 05:25:52] [INFO] Found existing IncidentTypeMapping with ID: 6979040ce473322a8
[2026-03-03 05:25:53] [INFO] Found existing Dispatch with cADNumber '26-06393', ID: 69a66d12e4366ce8f - will update instead of create
[2026-03-03 05:25:53] [INFO] Updated existing Dispatches record with ID: 69a66d12e4366ce8f
[2026-03-03 05:25:53] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-03
[2026-03-03 05:25:53] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-06393.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-03/SCRFD_26-06393.xml
[2026-03-03 05:25:53] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-06393.xml
[2026-03-03 08:04:56] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023244_20260303_080456.XML
[2026-03-03 08:04:56] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023244_20260303_080456.XML for user: 68f1466aed072ad4a
[2026-03-03 08:04:56] [INFO] File size: 5271 bytes
[2026-03-03 08:04:57] [INFO] Created FTPFiles record with ID: 69a69629624a9f5d6
[2026-03-03 08:04:57] [INFO] About to extract fields from XML. File size: 5271 bytes
[2026-03-03 08:04:57] [INFO] Number of mappings: 28
[2026-03-03 08:04:57] [INFO] Starting XML parsing. Content length: 5271
[2026-03-03 08:04:57] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 08:04:57] [INFO] Processing 28 field mappings
[2026-03-03 08:04:57] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 08:04:57] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 08:04:57] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 08:04:57] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 08:04:57] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 08:04:57] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 08:04:57] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 08:04:57] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 08:04:57] [INFO]   -> Found value: 2026000578
[2026-03-03 08:04:57] [INFO]   -> Set field 'incidentInternalId' = "2026000578"
[2026-03-03 08:04:57] [INFO]   -> Set field 'dispatchRunNumber' = "2026000578"
[2026-03-03 08:04:57] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 08:04:57] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-03 08:04:57] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-03 08:04:57] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 08:04:57] [INFO]   -> Found value: 5244
[2026-03-03 08:04:57] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5244
[2026-03-03 08:04:57] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 08:04:57] [INFO]   -> Found value: TN
[2026-03-03 08:04:57] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 08:04:57] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 08:04:57] [INFO]   -> Found value: 38544
[2026-03-03 08:04:57] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-03 08:04:57] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 08:04:57] [INFO]   -> Found value: ROBERT DEDMON
[2026-03-03 08:04:57] [INFO]   -> Set field 'businessName' = "ROBERT DEDMON"
[2026-03-03 08:04:57] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 08:04:57] [INFO]   -> No value found (null or empty)
[2026-03-03 08:04:57] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 08:04:57] [INFO]   -> Found value: 36.16971
[2026-03-03 08:04:57] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.16971000000000202589944819919764995574951171875
[2026-03-03 08:04:57] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 08:04:57] [INFO]   -> Found value: -85.60717
[2026-03-03 08:04:57] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.607169999999996434780769050121307373046875
[2026-03-03 08:04:57] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 08:04:57] [INFO]   -> Found value: 2026-03-03 02:04:27
[2026-03-03 08:04:57] [INFO]   -> Set field 'alarm' = "2026-03-03 02:04:27"
[2026-03-03 08:04:57] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 08:04:57] [INFO]   -> Found value: 2026-03-03 02:04:52
[2026-03-03 08:04:57] [INFO]   -> Set field 'dispatched' = "2026-03-03 02:04:52"
[2026-03-03 08:04:57] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 08:04:57] [INFO]   -> No value found (null or empty)
[2026-03-03 08:04:57] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 08:04:57] [INFO]   -> No value found (null or empty)
[2026-03-03 08:04:57] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 08:04:57] [INFO]   -> No value found (null or empty)
[2026-03-03 08:04:57] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 08:04:57] [INFO]   -> Found value: WEST GATE RD/LEFFEW RD
[2026-03-03 08:04:57] [INFO]   -> Set field 'incidentLocationCross' = "WEST GATE RD\/LEFFEW RD"
[2026-03-03 08:04:57] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 08:04:57] [INFO]   -> Found value: PCFR
[2026-03-03 08:04:57] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 08:04:57] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 08:04:57] [INFO]   -> Found value: 2026-03-03 02:04:52
[2026-03-03 08:04:57] [INFO]   -> Set field 'timedispatch' = "2026-03-03 02:04:52"
[2026-03-03 08:04:57] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 08:04:57] [INFO]   -> No value found (null or empty)
[2026-03-03 08:04:57] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 08:04:57] [INFO]   -> No value found (null or empty)
[2026-03-03 08:04:57] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 08:04:57] [INFO]   -> No value found (null or empty)
[2026-03-03 08:04:57] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 08:04:57] [INFO]   -> No value found (null or empty)
[2026-03-03 08:04:57] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 08:04:57] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 08:04:57] [INFO]   -> Found value: 20260023244
[2026-03-03 08:04:57] [INFO]   -> Set field 'policeReportNumber' = "20260023244"
[2026-03-03 08:04:57] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 08:04:57] [INFO]   -> Found value: [EMS] DIZZY- FEVER-  [03/03/26 02:04:52 JDICK] Event spawned from FAINTING / SYNCOPE.  [03/03/2026 0...
[2026-03-03 08:04:57] [INFO]   -> Set field 'dispatchNotes' = "[EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]"
[2026-03-03 08:04:57] [INFO]   -> Set field 'cADLog' = "[EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]"
[2026-03-03 08:04:57] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 08:04:57] [INFO]   -> Found value: BAXTER
[2026-03-03 08:04:57] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-03 08:04:57] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 08:04:57] [INFO]   -> Found value: NASHVILLE
[2026-03-03 08:04:57] [INFO]   -> Set field 'streetName' = "NASHVILLE"
[2026-03-03 08:04:57] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 08:04:57] [INFO]   -> Found value: HWY
[2026-03-03 08:04:57] [INFO]   -> Set field 'streetType' = "HWY"
[2026-03-03 08:04:57] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 08:04:57] [INFO]   -> Found value: 5244 NASHVILLE HWY
[2026-03-03 08:04:57] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "5244 NASHVILLE HWY"
[2026-03-03 08:04:57] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-03 08:04:57] [INFO] Concatenating street name and type
[2026-03-03 08:04:57] [INFO]   -> Combined street name: NASHVILLE HWY
[2026-03-03 08:04:57] [INFO] Built locationCoordinates from lat/lng: 36.16971,-85.60717
[2026-03-03 08:04:57] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000578","dispatchRunNumber":"2026000578","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":5244,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"businessName":"ROBERT DEDMON","nERISIncidentLatitude":36.16971000000000202589944819919764995574951171875,"nERISIncidentLongitude":-85.607169999999996434780769050121307373046875,"alarm":"2026-03-03 02:04:27","dispatched":"2026-03-03 02:04:52","incidentLocationCross":"WEST GATE RD\/LEFFEW RD","cADVehicleID":"PCFR","timedispatch":"2026-03-03 02:04:52","policeReportNumber":"20260023244","dispatchNotes":"[EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]","cADLog":"[EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]","incidentLocationCity":"BAXTER","streetName":"NASHVILLE HWY","incidentAddressTextVersionStreet":"5244 NASHVILLE HWY","locationCoordinates":"36.16971,-85.60717"}
[2026-03-03 08:04:57] [INFO] Number of extracted fields: 22
[2026-03-03 08:04:57] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 08:04:57] [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-03 08:04:57] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 08:04:57] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 08:04:57] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 08:04:57] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 08:04: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-03 08:04: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-03 08:04:57] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 08:04:57] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 08:04:57] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 08:04:57] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-03 08:05:08] [INFO] Created new Dispatches record with ID: 69a6962a2ba39638f
[2026-03-03 08:05:08] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 08:05:08] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 08: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-03 08:05:11] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023244_20260303_080456.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 08:05:11] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 08:07:19] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023244_20260303_080718.XML
[2026-03-03 08:07:19] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023244_20260303_080718.XML for user: 68f1466aed072ad4a
[2026-03-03 08:07:19] [INFO] File size: 6280 bytes
[2026-03-03 08:07:19] [INFO] Created FTPFiles record with ID: 69a696b74ed0dbaf8
[2026-03-03 08:07:19] [INFO] About to extract fields from XML. File size: 6280 bytes
[2026-03-03 08:07:19] [INFO] Number of mappings: 28
[2026-03-03 08:07:19] [INFO] Starting XML parsing. Content length: 6280
[2026-03-03 08:07:19] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 08:07:19] [INFO] Processing 28 field mappings
[2026-03-03 08:07:19] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 08:07:19] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 08:07:19] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 08:07:19] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 08:07:19] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 08:07:19] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 08:07:19] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 08:07:19] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 08:07:19] [INFO]   -> Found value: 2026000578
[2026-03-03 08:07:19] [INFO]   -> Set field 'incidentInternalId' = "2026000578"
[2026-03-03 08:07:19] [INFO]   -> Set field 'dispatchRunNumber' = "2026000578"
[2026-03-03 08:07:19] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 08:07:19] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-03 08:07:19] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-03 08:07:19] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 08:07:19] [INFO]   -> Found value: 5244
[2026-03-03 08:07:19] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5244
[2026-03-03 08:07:19] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 08:07:19] [INFO]   -> Found value: TN
[2026-03-03 08:07:19] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 08:07:19] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 08:07:19] [INFO]   -> Found value: 38544
[2026-03-03 08:07:19] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-03 08:07:19] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 08:07:19] [INFO]   -> Found value: ROBERT DEDMON
[2026-03-03 08:07:19] [INFO]   -> Set field 'businessName' = "ROBERT DEDMON"
[2026-03-03 08:07:19] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 08:07:19] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:19] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 08:07:19] [INFO]   -> Found value: 36.16971
[2026-03-03 08:07:19] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.16971000000000202589944819919764995574951171875
[2026-03-03 08:07:19] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 08:07:19] [INFO]   -> Found value: -85.60717
[2026-03-03 08:07:19] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.607169999999996434780769050121307373046875
[2026-03-03 08:07:19] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 08:07:19] [INFO]   -> Found value: 2026-03-03 02:04:27
[2026-03-03 08:07:19] [INFO]   -> Set field 'alarm' = "2026-03-03 02:04:27"
[2026-03-03 08:07:19] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 08:07:19] [INFO]   -> Found value: 2026-03-03 02:04:52
[2026-03-03 08:07:19] [INFO]   -> Set field 'dispatched' = "2026-03-03 02:04:52"
[2026-03-03 08:07:19] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 08:07:19] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:19] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 08:07:19] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:19] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 08:07:19] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:19] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 08:07:19] [INFO]   -> Found value: WEST GATE RD/LEFFEW RD
[2026-03-03 08:07:19] [INFO]   -> Set field 'incidentLocationCross' = "WEST GATE RD\/LEFFEW RD"
[2026-03-03 08:07:19] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 08:07:19] [INFO]   -> Found value: PCFR
[2026-03-03 08:07:19] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 08:07:19] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 08:07:19] [INFO]   -> Found value: 2026-03-03 02:04:52
[2026-03-03 08:07:19] [INFO]   -> Set field 'timedispatch' = "2026-03-03 02:04:52"
[2026-03-03 08:07:19] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 08:07:19] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:19] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 08:07:19] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:19] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 08:07:19] [INFO]   -> Found value: 2026-03-03 02:07:14
[2026-03-03 08:07:19] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 02:07:14"
[2026-03-03 08:07:19] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 08:07:19] [INFO]   -> Found value: 2026-03-03 02:07:14
[2026-03-03 08:07:19] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-03 02:07:14"
[2026-03-03 08:07:19] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 08:07:19] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 08:07:19] [INFO]   -> Found value: 20260023244
[2026-03-03 08:07:19] [INFO]   -> Set field 'policeReportNumber' = "20260023244"
[2026-03-03 08:07:19] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 08:07:19] [INFO]   -> Found value: [EMS] DIZZY- FEVER-  [03/03/26 02:04:52 JDICK] Event spawned from FAINTING / SYNCOPE.  [03/03/2026 0...
[2026-03-03 08:07:19] [INFO]   -> Set field 'dispatchNotes' = "[EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]"
[2026-03-03 08:07:19] [INFO]   -> Set field 'cADLog' = "[EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]"
[2026-03-03 08:07:19] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 08:07:19] [INFO]   -> Found value: BAXTER
[2026-03-03 08:07:19] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-03 08:07:19] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 08:07:19] [INFO]   -> Found value: NASHVILLE
[2026-03-03 08:07:19] [INFO]   -> Set field 'streetName' = "NASHVILLE"
[2026-03-03 08:07:19] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 08:07:19] [INFO]   -> Found value: HWY
[2026-03-03 08:07:19] [INFO]   -> Set field 'streetType' = "HWY"
[2026-03-03 08:07:19] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 08:07:19] [INFO]   -> Found value: 5244 NASHVILLE HWY
[2026-03-03 08:07:19] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "5244 NASHVILLE HWY"
[2026-03-03 08:07:19] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-03 08:07:19] [INFO] Concatenating street name and type
[2026-03-03 08:07:19] [INFO]   -> Combined street name: NASHVILLE HWY
[2026-03-03 08:07:19] [INFO] Built locationCoordinates from lat/lng: 36.16971,-85.60717
[2026-03-03 08:07:19] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000578","dispatchRunNumber":"2026000578","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":5244,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"businessName":"ROBERT DEDMON","nERISIncidentLatitude":36.16971000000000202589944819919764995574951171875,"nERISIncidentLongitude":-85.607169999999996434780769050121307373046875,"alarm":"2026-03-03 02:04:27","dispatched":"2026-03-03 02:04:52","incidentLocationCross":"WEST GATE RD\/LEFFEW RD","cADVehicleID":"PCFR","timedispatch":"2026-03-03 02:04:52","timeunitclear":"2026-03-03 02:07:14","timecanceledenroute":"2026-03-03 02:07:14","policeReportNumber":"20260023244","dispatchNotes":"[EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]","cADLog":"[EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]","incidentLocationCity":"BAXTER","streetName":"NASHVILLE HWY","incidentAddressTextVersionStreet":"5244 NASHVILLE HWY","locationCoordinates":"36.16971,-85.60717"}
[2026-03-03 08:07:19] [INFO] Number of extracted fields: 24
[2026-03-03 08:07:19] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 08:07:19] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-03 08:07:19] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 08:07:19] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 08:07:19] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 08:07:19] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 08:07: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-03 08:07: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-03 08:07:19] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 08:07:19] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 08:07:19] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 08:07:19] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-03 08:07:19] [INFO] Found existing Dispatch with cADNumber '2026000578', ID: 69a6962a2ba39638f - will update instead of create
[2026-03-03 08:07:20] [INFO] Updated existing Dispatches record with ID: 69a6962a2ba39638f
[2026-03-03 08:07:20] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 08:07:20] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 08:07: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-03 08:07:23] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023244_20260303_080718.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 08:07:23] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 08:07:23] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023244_20260303_080723.XML
[2026-03-03 08:07:23] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023244_20260303_080723.XML for user: 68f1466aed072ad4a
[2026-03-03 08:07:23] [INFO] File size: 6280 bytes
[2026-03-03 08:07:23] [INFO] Created FTPFiles record with ID: 69a696bbe5583bbd2
[2026-03-03 08:07:23] [INFO] About to extract fields from XML. File size: 6280 bytes
[2026-03-03 08:07:23] [INFO] Number of mappings: 28
[2026-03-03 08:07:23] [INFO] Starting XML parsing. Content length: 6280
[2026-03-03 08:07:23] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 08:07:23] [INFO] Processing 28 field mappings
[2026-03-03 08:07:23] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 08:07:23] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 08:07:23] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 08:07:23] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 08:07:23] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 08:07:23] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 08:07:23] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 08:07:23] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 08:07:23] [INFO]   -> Found value: 2026000578
[2026-03-03 08:07:23] [INFO]   -> Set field 'incidentInternalId' = "2026000578"
[2026-03-03 08:07:23] [INFO]   -> Set field 'dispatchRunNumber' = "2026000578"
[2026-03-03 08:07:23] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 08:07:23] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-03 08:07:23] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-03 08:07:23] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 08:07:23] [INFO]   -> Found value: 5244
[2026-03-03 08:07:23] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5244
[2026-03-03 08:07:23] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 08:07:23] [INFO]   -> Found value: TN
[2026-03-03 08:07:23] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 08:07:23] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 08:07:23] [INFO]   -> Found value: 38544
[2026-03-03 08:07:23] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-03 08:07:23] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 08:07:23] [INFO]   -> Found value: ROBERT DEDMON
[2026-03-03 08:07:23] [INFO]   -> Set field 'businessName' = "ROBERT DEDMON"
[2026-03-03 08:07:23] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 08:07:23] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:23] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 08:07:23] [INFO]   -> Found value: 36.16971
[2026-03-03 08:07:23] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.16971000000000202589944819919764995574951171875
[2026-03-03 08:07:23] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 08:07:23] [INFO]   -> Found value: -85.60717
[2026-03-03 08:07:23] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.607169999999996434780769050121307373046875
[2026-03-03 08:07:23] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 08:07:23] [INFO]   -> Found value: 2026-03-03 02:04:27
[2026-03-03 08:07:23] [INFO]   -> Set field 'alarm' = "2026-03-03 02:04:27"
[2026-03-03 08:07:23] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 08:07:23] [INFO]   -> Found value: 2026-03-03 02:04:52
[2026-03-03 08:07:23] [INFO]   -> Set field 'dispatched' = "2026-03-03 02:04:52"
[2026-03-03 08:07:23] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 08:07:23] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:23] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 08:07:23] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:23] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 08:07:23] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:23] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 08:07:23] [INFO]   -> Found value: WEST GATE RD/LEFFEW RD
[2026-03-03 08:07:23] [INFO]   -> Set field 'incidentLocationCross' = "WEST GATE RD\/LEFFEW RD"
[2026-03-03 08:07:23] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 08:07:23] [INFO]   -> Found value: PCFR
[2026-03-03 08:07:23] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 08:07:23] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 08:07:23] [INFO]   -> Found value: 2026-03-03 02:04:52
[2026-03-03 08:07:23] [INFO]   -> Set field 'timedispatch' = "2026-03-03 02:04:52"
[2026-03-03 08:07:23] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 08:07:23] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:23] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 08:07:23] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:23] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 08:07:23] [INFO]   -> Found value: 2026-03-03 02:07:14
[2026-03-03 08:07:23] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 02:07:14"
[2026-03-03 08:07:23] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 08:07:23] [INFO]   -> Found value: 2026-03-03 02:07:14
[2026-03-03 08:07:23] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-03 02:07:14"
[2026-03-03 08:07:23] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 08:07:23] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 08:07:23] [INFO]   -> Found value: 20260023244
[2026-03-03 08:07:23] [INFO]   -> Set field 'policeReportNumber' = "20260023244"
[2026-03-03 08:07:23] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 08:07:23] [INFO]   -> Found value: [EMS] DIZZY- FEVER-  [03/03/26 02:04:52 JDICK] Event spawned from FAINTING / SYNCOPE.  [03/03/2026 0...
[2026-03-03 08:07:23] [INFO]   -> Set field 'dispatchNotes' = "[EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]"
[2026-03-03 08:07:23] [INFO]   -> Set field 'cADLog' = "[EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]"
[2026-03-03 08:07:23] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 08:07:23] [INFO]   -> Found value: BAXTER
[2026-03-03 08:07:23] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-03 08:07:23] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 08:07:23] [INFO]   -> Found value: NASHVILLE
[2026-03-03 08:07:23] [INFO]   -> Set field 'streetName' = "NASHVILLE"
[2026-03-03 08:07:23] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 08:07:23] [INFO]   -> Found value: HWY
[2026-03-03 08:07:23] [INFO]   -> Set field 'streetType' = "HWY"
[2026-03-03 08:07:23] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 08:07:23] [INFO]   -> Found value: 5244 NASHVILLE HWY
[2026-03-03 08:07:23] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "5244 NASHVILLE HWY"
[2026-03-03 08:07:23] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-03 08:07:23] [INFO] Concatenating street name and type
[2026-03-03 08:07:23] [INFO]   -> Combined street name: NASHVILLE HWY
[2026-03-03 08:07:23] [INFO] Built locationCoordinates from lat/lng: 36.16971,-85.60717
[2026-03-03 08:07:23] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000578","dispatchRunNumber":"2026000578","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":5244,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"businessName":"ROBERT DEDMON","nERISIncidentLatitude":36.16971000000000202589944819919764995574951171875,"nERISIncidentLongitude":-85.607169999999996434780769050121307373046875,"alarm":"2026-03-03 02:04:27","dispatched":"2026-03-03 02:04:52","incidentLocationCross":"WEST GATE RD\/LEFFEW RD","cADVehicleID":"PCFR","timedispatch":"2026-03-03 02:04:52","timeunitclear":"2026-03-03 02:07:14","timecanceledenroute":"2026-03-03 02:07:14","policeReportNumber":"20260023244","dispatchNotes":"[EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]","cADLog":"[EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]","incidentLocationCity":"BAXTER","streetName":"NASHVILLE HWY","incidentAddressTextVersionStreet":"5244 NASHVILLE HWY","locationCoordinates":"36.16971,-85.60717"}
[2026-03-03 08:07:23] [INFO] Number of extracted fields: 24
[2026-03-03 08:07:23] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 08:07:23] [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-03 08:07:23] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 08:07:23] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 08:07:24] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 08:07:24] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 08:07:24] [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-03 08:07:24] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-03 08:07:24] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 08:07:24] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 08:07:24] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 08:07:24] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-03 08:07:24] [INFO] Found existing Dispatch with cADNumber '2026000578', ID: 69a6962a2ba39638f - will update instead of create
[2026-03-03 08:07:24] [INFO] Updated existing Dispatches record with ID: 69a6962a2ba39638f
[2026-03-03 08:07:24] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 08:07:24] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 08:07: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-03 08:07:28] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023244_20260303_080723.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 08:07:28] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 08:07:28] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023244_20260303_080727.XML
[2026-03-03 08:07:28] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023244_20260303_080727.XML for user: 68f1466aed072ad4a
[2026-03-03 08:07:28] [INFO] File size: 6280 bytes
[2026-03-03 08:07:28] [INFO] Created FTPFiles record with ID: 69a696c09965e5ca3
[2026-03-03 08:07:28] [INFO] About to extract fields from XML. File size: 6280 bytes
[2026-03-03 08:07:28] [INFO] Number of mappings: 28
[2026-03-03 08:07:28] [INFO] Starting XML parsing. Content length: 6280
[2026-03-03 08:07:28] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 08:07:28] [INFO] Processing 28 field mappings
[2026-03-03 08:07:28] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 08:07:28] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 08:07:28] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 08:07:28] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 08:07:28] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 08:07:28] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 08:07:28] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 08:07:28] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 08:07:28] [INFO]   -> Found value: 2026000578
[2026-03-03 08:07:28] [INFO]   -> Set field 'incidentInternalId' = "2026000578"
[2026-03-03 08:07:28] [INFO]   -> Set field 'dispatchRunNumber' = "2026000578"
[2026-03-03 08:07:28] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 08:07:28] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-03 08:07:28] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-03 08:07:28] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 08:07:28] [INFO]   -> Found value: 5244
[2026-03-03 08:07:28] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5244
[2026-03-03 08:07:28] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 08:07:28] [INFO]   -> Found value: TN
[2026-03-03 08:07:28] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 08:07:28] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 08:07:28] [INFO]   -> Found value: 38544
[2026-03-03 08:07:28] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-03 08:07:28] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 08:07:28] [INFO]   -> Found value: ROBERT DEDMON
[2026-03-03 08:07:28] [INFO]   -> Set field 'businessName' = "ROBERT DEDMON"
[2026-03-03 08:07:28] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 08:07:28] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:28] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 08:07:28] [INFO]   -> Found value: 36.16971
[2026-03-03 08:07:28] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.16971000000000202589944819919764995574951171875
[2026-03-03 08:07:28] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 08:07:28] [INFO]   -> Found value: -85.60717
[2026-03-03 08:07:28] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.607169999999996434780769050121307373046875
[2026-03-03 08:07:28] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 08:07:28] [INFO]   -> Found value: 2026-03-03 02:04:27
[2026-03-03 08:07:28] [INFO]   -> Set field 'alarm' = "2026-03-03 02:04:27"
[2026-03-03 08:07:28] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 08:07:28] [INFO]   -> Found value: 2026-03-03 02:04:52
[2026-03-03 08:07:28] [INFO]   -> Set field 'dispatched' = "2026-03-03 02:04:52"
[2026-03-03 08:07:28] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 08:07:28] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:28] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 08:07:28] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:28] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 08:07:28] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:28] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 08:07:28] [INFO]   -> Found value: WEST GATE RD/LEFFEW RD
[2026-03-03 08:07:28] [INFO]   -> Set field 'incidentLocationCross' = "WEST GATE RD\/LEFFEW RD"
[2026-03-03 08:07:28] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 08:07:28] [INFO]   -> Found value: PCFR
[2026-03-03 08:07:28] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 08:07:28] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 08:07:28] [INFO]   -> Found value: 2026-03-03 02:04:52
[2026-03-03 08:07:28] [INFO]   -> Set field 'timedispatch' = "2026-03-03 02:04:52"
[2026-03-03 08:07:28] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 08:07:28] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:28] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 08:07:28] [INFO]   -> No value found (null or empty)
[2026-03-03 08:07:28] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 08:07:28] [INFO]   -> Found value: 2026-03-03 02:07:14
[2026-03-03 08:07:28] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 02:07:14"
[2026-03-03 08:07:28] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 08:07:28] [INFO]   -> Found value: 2026-03-03 02:07:14
[2026-03-03 08:07:28] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-03 02:07:14"
[2026-03-03 08:07:28] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 08:07:28] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 08:07:28] [INFO]   -> Found value: 20260023244
[2026-03-03 08:07:28] [INFO]   -> Set field 'policeReportNumber' = "20260023244"
[2026-03-03 08:07:28] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 08:07:28] [INFO]   -> Found value: [EMS] DIZZY- FEVER-  [03/03/26 02:04:52 JDICK] Event spawned from FAINTING / SYNCOPE.  [03/03/2026 0...
[2026-03-03 08:07:28] [INFO]   -> Set field 'dispatchNotes' = "[EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]"
[2026-03-03 08:07:28] [INFO]   -> Set field 'cADLog' = "[EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]"
[2026-03-03 08:07:28] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 08:07:28] [INFO]   -> Found value: BAXTER
[2026-03-03 08:07:28] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-03 08:07:28] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 08:07:28] [INFO]   -> Found value: NASHVILLE
[2026-03-03 08:07:28] [INFO]   -> Set field 'streetName' = "NASHVILLE"
[2026-03-03 08:07:28] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 08:07:28] [INFO]   -> Found value: HWY
[2026-03-03 08:07:28] [INFO]   -> Set field 'streetType' = "HWY"
[2026-03-03 08:07:28] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 08:07:28] [INFO]   -> Found value: 5244 NASHVILLE HWY
[2026-03-03 08:07:28] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "5244 NASHVILLE HWY"
[2026-03-03 08:07:28] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-03 08:07:28] [INFO] Concatenating street name and type
[2026-03-03 08:07:28] [INFO]   -> Combined street name: NASHVILLE HWY
[2026-03-03 08:07:28] [INFO] Built locationCoordinates from lat/lng: 36.16971,-85.60717
[2026-03-03 08:07:28] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000578","dispatchRunNumber":"2026000578","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":5244,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"businessName":"ROBERT DEDMON","nERISIncidentLatitude":36.16971000000000202589944819919764995574951171875,"nERISIncidentLongitude":-85.607169999999996434780769050121307373046875,"alarm":"2026-03-03 02:04:27","dispatched":"2026-03-03 02:04:52","incidentLocationCross":"WEST GATE RD\/LEFFEW RD","cADVehicleID":"PCFR","timedispatch":"2026-03-03 02:04:52","timeunitclear":"2026-03-03 02:07:14","timecanceledenroute":"2026-03-03 02:07:14","policeReportNumber":"20260023244","dispatchNotes":"[EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]","cADLog":"[EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]","incidentLocationCity":"BAXTER","streetName":"NASHVILLE HWY","incidentAddressTextVersionStreet":"5244 NASHVILLE HWY","locationCoordinates":"36.16971,-85.60717"}
[2026-03-03 08:07:28] [INFO] Number of extracted fields: 24
[2026-03-03 08:07:28] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 08:07:28] [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-03 08:07:28] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 08:07:28] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 08:07:28] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 08:07:28] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 08:07: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-03 08:07: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-03 08:07:28] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 08:07:28] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 08:07:28] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 08:07:29] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-03 08:07:29] [INFO] Found existing Dispatch with cADNumber '2026000578', ID: 69a6962a2ba39638f - will update instead of create
[2026-03-03 08:07:29] [INFO] Updated existing Dispatches record with ID: 69a6962a2ba39638f
[2026-03-03 08:07:29] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 08:07:29] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 08:07: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-03 08:07:32] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023244_20260303_080727.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 08:07:32] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 09:02:13] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023251_20260303_090213.XML
[2026-03-03 09:02:13] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023251_20260303_090213.XML for user: 68f1466aed072ad4a
[2026-03-03 09:02:13] [INFO] File size: 5412 bytes
[2026-03-03 09:02:13] [INFO] Created FTPFiles record with ID: 69a6a395e0328dcfd
[2026-03-03 09:02:13] [INFO] About to extract fields from XML. File size: 5412 bytes
[2026-03-03 09:02:13] [INFO] Number of mappings: 28
[2026-03-03 09:02:13] [INFO] Starting XML parsing. Content length: 5412
[2026-03-03 09:02:13] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 09:02:13] [INFO] Processing 28 field mappings
[2026-03-03 09:02:13] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 09:02:13] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 09:02:13] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 09:02:13] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-03 09:02:13] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-03 09:02:13] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-03 09:02:13] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 09:02:13] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-03 09:02:13] [INFO]   -> Found value: 2026000579
[2026-03-03 09:02:13] [INFO]   -> Set field 'incidentInternalId' = "2026000579"
[2026-03-03 09:02:13] [INFO]   -> Set field 'dispatchRunNumber' = "2026000579"
[2026-03-03 09:02:13] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 09:02:13] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-03 09:02:13] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-03 09:02:13] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 09:02:13] [INFO]   -> Found value: 1492
[2026-03-03 09:02:13] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1492
[2026-03-03 09:02:13] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 09:02:13] [INFO]   -> Found value: TN
[2026-03-03 09:02:13] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 09:02:13] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 09:02:13] [INFO]   -> Found value: 38506
[2026-03-03 09:02:13] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 09:02:13] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 09:02:13] [INFO]   -> No value found (null or empty)
[2026-03-03 09:02:13] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 09:02:13] [INFO]   -> No value found (null or empty)
[2026-03-03 09:02:13] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 09:02:13] [INFO]   -> Found value: 36.23264
[2026-03-03 09:02:13] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.23264000000000351064954884350299835205078125
[2026-03-03 09:02:13] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 09:02:13] [INFO]   -> Found value: -85.46288
[2026-03-03 09:02:13] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4628799999999984038367983885109424591064453125
[2026-03-03 09:02:13] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 09:02:13] [INFO]   -> Found value: 2026-03-03 03:01:42
[2026-03-03 09:02:13] [INFO]   -> Set field 'alarm' = "2026-03-03 03:01:42"
[2026-03-03 09:02:13] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 09:02:13] [INFO]   -> Found value: 2026-03-03 03:02:09
[2026-03-03 09:02:13] [INFO]   -> Set field 'dispatched' = "2026-03-03 03:02:09"
[2026-03-03 09:02:13] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 09:02:13] [INFO]   -> No value found (null or empty)
[2026-03-03 09:02:13] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 09:02:13] [INFO]   -> No value found (null or empty)
[2026-03-03 09:02:13] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 09:02:13] [INFO]   -> No value found (null or empty)
[2026-03-03 09:02:13] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 09:02:13] [INFO]   -> Found value: N QUINLAND LAKE RD/BEAR CREEK PT
[2026-03-03 09:02:13] [INFO]   -> Set field 'incidentLocationCross' = "N QUINLAND LAKE RD\/BEAR CREEK PT"
[2026-03-03 09:02:13] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 09:02:13] [INFO]   -> Found value: PCFR
[2026-03-03 09:02:13] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 09:02:13] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 09:02:13] [INFO]   -> Found value: 2026-03-03 03:02:09
[2026-03-03 09:02:13] [INFO]   -> Set field 'timedispatch' = "2026-03-03 03:02:09"
[2026-03-03 09:02:13] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 09:02:13] [INFO]   -> No value found (null or empty)
[2026-03-03 09:02:13] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 09:02:13] [INFO]   -> No value found (null or empty)
[2026-03-03 09:02:13] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 09:02:13] [INFO]   -> No value found (null or empty)
[2026-03-03 09:02:13] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 09:02:13] [INFO]   -> No value found (null or empty)
[2026-03-03 09:02:13] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 09:02:13] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 09:02:13] [INFO]   -> Found value: 20260023251
[2026-03-03 09:02:13] [INFO]   -> Set field 'policeReportNumber' = "20260023251"
[2026-03-03 09:02:13] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 09:02:13] [INFO]   -> Found value: [EMS] BREATHING  FELL IN BATHROOM  [03/03/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03/03...
[2026-03-03 09:02:13] [INFO]   -> Set field 'dispatchNotes' = "[EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]"
[2026-03-03 09:02:13] [INFO]   -> Set field 'cADLog' = "[EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]"
[2026-03-03 09:02:13] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 09:02:13] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 09:02:13] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 09:02:13] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 09:02:13] [INFO]   -> Found value: BEAR CREEK
[2026-03-03 09:02:13] [INFO]   -> Set field 'streetName' = "BEAR CREEK"
[2026-03-03 09:02:13] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 09:02:13] [INFO]   -> Found value: RD
[2026-03-03 09:02:13] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 09:02:13] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 09:02:13] [INFO]   -> Found value: 1492 BEAR CREEK RD
[2026-03-03 09:02:13] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1492 BEAR CREEK RD"
[2026-03-03 09:02:13] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-03 09:02:13] [INFO] Concatenating street name and type
[2026-03-03 09:02:13] [INFO]   -> Combined street name: BEAR CREEK RD
[2026-03-03 09:02:13] [INFO] Built locationCoordinates from lat/lng: 36.23264,-85.46288
[2026-03-03 09:02:13] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000579","dispatchRunNumber":"2026000579","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":1492,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.23264000000000351064954884350299835205078125,"nERISIncidentLongitude":-85.4628799999999984038367983885109424591064453125,"alarm":"2026-03-03 03:01:42","dispatched":"2026-03-03 03:02:09","incidentLocationCross":"N QUINLAND LAKE RD\/BEAR CREEK PT","cADVehicleID":"PCFR","timedispatch":"2026-03-03 03:02:09","policeReportNumber":"20260023251","dispatchNotes":"[EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]","cADLog":"[EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]","incidentLocationCity":"COOKEVILLE","streetName":"BEAR CREEK RD","incidentAddressTextVersionStreet":"1492 BEAR CREEK RD","locationCoordinates":"36.23264,-85.46288"}
[2026-03-03 09:02:13] [INFO] Number of extracted fields: 21
[2026-03-03 09:02:13] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-03 09:02:13] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-03 09:02:13] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-03 09:02:13] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 09:02:14] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 09:02:14] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-03 09:02: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-03 09:02: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-03 09:02:14] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-03 09:02:14] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 09:02:14] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 09:02:14] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-03 09:02:24] [INFO] Created new Dispatches record with ID: 69a6a396b28a1a1d3
[2026-03-03 09:02:24] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 09:02:24] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 09:02: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-03 09:02:28] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023251_20260303_090213.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 09:02:28] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 09:04:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023251_20260303_090447.XML
[2026-03-03 09:04:47] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023251_20260303_090447.XML for user: 68f1466aed072ad4a
[2026-03-03 09:04:47] [INFO] File size: 6319 bytes
[2026-03-03 09:04:47] [INFO] Created FTPFiles record with ID: 69a6a42fad64128a5
[2026-03-03 09:04:47] [INFO] About to extract fields from XML. File size: 6319 bytes
[2026-03-03 09:04:47] [INFO] Number of mappings: 28
[2026-03-03 09:04:47] [INFO] Starting XML parsing. Content length: 6319
[2026-03-03 09:04:47] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 09:04:47] [INFO] Processing 28 field mappings
[2026-03-03 09:04:47] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 09:04:47] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 09:04:47] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 09:04:47] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-03 09:04:47] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-03 09:04:47] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-03 09:04:47] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 09:04:47] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-03 09:04:47] [INFO]   -> Found value: 2026000579
[2026-03-03 09:04:47] [INFO]   -> Set field 'incidentInternalId' = "2026000579"
[2026-03-03 09:04:47] [INFO]   -> Set field 'dispatchRunNumber' = "2026000579"
[2026-03-03 09:04:47] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 09:04:47] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-03 09:04:47] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-03 09:04:47] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 09:04:47] [INFO]   -> Found value: 1492
[2026-03-03 09:04:47] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1492
[2026-03-03 09:04:47] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 09:04:47] [INFO]   -> Found value: TN
[2026-03-03 09:04:47] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 09:04:47] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 09:04:47] [INFO]   -> Found value: 38506
[2026-03-03 09:04:47] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 09:04:47] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 09:04:47] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:47] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 09:04:47] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:47] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 09:04:47] [INFO]   -> Found value: 36.23264
[2026-03-03 09:04:47] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.23264000000000351064954884350299835205078125
[2026-03-03 09:04:47] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 09:04:47] [INFO]   -> Found value: -85.46288
[2026-03-03 09:04:47] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4628799999999984038367983885109424591064453125
[2026-03-03 09:04:47] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 09:04:47] [INFO]   -> Found value: 2026-03-03 03:01:42
[2026-03-03 09:04:47] [INFO]   -> Set field 'alarm' = "2026-03-03 03:01:42"
[2026-03-03 09:04:47] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 09:04:47] [INFO]   -> Found value: 2026-03-03 03:02:09
[2026-03-03 09:04:47] [INFO]   -> Set field 'dispatched' = "2026-03-03 03:02:09"
[2026-03-03 09:04:47] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 09:04:47] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:47] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 09:04:47] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:47] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 09:04:47] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:47] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 09:04:47] [INFO]   -> Found value: N QUINLAND LAKE RD/BEAR CREEK PT
[2026-03-03 09:04:47] [INFO]   -> Set field 'incidentLocationCross' = "N QUINLAND LAKE RD\/BEAR CREEK PT"
[2026-03-03 09:04:47] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 09:04:47] [INFO]   -> Found value: PCFR
[2026-03-03 09:04:47] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 09:04:47] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 09:04:47] [INFO]   -> Found value: 2026-03-03 03:02:09
[2026-03-03 09:04:47] [INFO]   -> Set field 'timedispatch' = "2026-03-03 03:02:09"
[2026-03-03 09:04:47] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 09:04:47] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:47] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 09:04:47] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:47] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 09:04:47] [INFO]   -> Found value: 2026-03-03 03:04:39
[2026-03-03 09:04:47] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 03:04:39"
[2026-03-03 09:04:47] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 09:04:47] [INFO]   -> Found value: 2026-03-03 03:04:39
[2026-03-03 09:04:47] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-03 03:04:39"
[2026-03-03 09:04:47] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 09:04:47] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 09:04:47] [INFO]   -> Found value: 20260023251
[2026-03-03 09:04:47] [INFO]   -> Set field 'policeReportNumber' = "20260023251"
[2026-03-03 09:04:47] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 09:04:47] [INFO]   -> Found value: [EMS] 38 YOM  [03/03/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03/03/26 03:02:12 JDICK] [EMS] BREATHI...
[2026-03-03 09:04:47] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 38 YOM  [03\/03\/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03\/03\/26 03:02:12 JDICK] [EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]"
[2026-03-03 09:04:47] [INFO]   -> Set field 'cADLog' = "[EMS] 38 YOM  [03\/03\/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03\/03\/26 03:02:12 JDICK] [EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]"
[2026-03-03 09:04:47] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 09:04:47] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 09:04:47] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 09:04:47] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 09:04:47] [INFO]   -> Found value: BEAR CREEK
[2026-03-03 09:04:47] [INFO]   -> Set field 'streetName' = "BEAR CREEK"
[2026-03-03 09:04:47] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 09:04:47] [INFO]   -> Found value: RD
[2026-03-03 09:04:47] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 09:04:47] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 09:04:47] [INFO]   -> Found value: 1492 BEAR CREEK RD
[2026-03-03 09:04:47] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1492 BEAR CREEK RD"
[2026-03-03 09:04:47] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 09:04:47] [INFO] Concatenating street name and type
[2026-03-03 09:04:47] [INFO]   -> Combined street name: BEAR CREEK RD
[2026-03-03 09:04:47] [INFO] Built locationCoordinates from lat/lng: 36.23264,-85.46288
[2026-03-03 09:04:47] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000579","dispatchRunNumber":"2026000579","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":1492,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.23264000000000351064954884350299835205078125,"nERISIncidentLongitude":-85.4628799999999984038367983885109424591064453125,"alarm":"2026-03-03 03:01:42","dispatched":"2026-03-03 03:02:09","incidentLocationCross":"N QUINLAND LAKE RD\/BEAR CREEK PT","cADVehicleID":"PCFR","timedispatch":"2026-03-03 03:02:09","timeunitclear":"2026-03-03 03:04:39","timecanceledenroute":"2026-03-03 03:04:39","policeReportNumber":"20260023251","dispatchNotes":"[EMS] 38 YOM  [03\/03\/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03\/03\/26 03:02:12 JDICK] [EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]","cADLog":"[EMS] 38 YOM  [03\/03\/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03\/03\/26 03:02:12 JDICK] [EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]","incidentLocationCity":"COOKEVILLE","streetName":"BEAR CREEK RD","incidentAddressTextVersionStreet":"1492 BEAR CREEK RD","locationCoordinates":"36.23264,-85.46288"}
[2026-03-03 09:04:47] [INFO] Number of extracted fields: 23
[2026-03-03 09:04:47] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-03 09:04:47] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-03 09:04:47] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-03 09:04:47] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 09:04:47] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 09:04:47] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-03 09:04: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-03 09:04: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-03 09:04:48] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-03 09:04:48] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 09:04:48] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 09:04:48] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-03 09:04:48] [INFO] Found existing Dispatch with cADNumber '2026000579', ID: 69a6a396b28a1a1d3 - will update instead of create
[2026-03-03 09:04:48] [INFO] Updated existing Dispatches record with ID: 69a6a396b28a1a1d3
[2026-03-03 09:04:48] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 09:04:48] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 09:04: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-03 09:04:52] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023251_20260303_090447.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 09:04:52] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 09:04:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023251_20260303_090449.XML
[2026-03-03 09:04:52] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023251_20260303_090449.XML for user: 68f1466aed072ad4a
[2026-03-03 09:04:52] [INFO] File size: 6319 bytes
[2026-03-03 09:04:52] [INFO] Created FTPFiles record with ID: 69a6a43477d5ab9db
[2026-03-03 09:04:52] [INFO] About to extract fields from XML. File size: 6319 bytes
[2026-03-03 09:04:52] [INFO] Number of mappings: 28
[2026-03-03 09:04:52] [INFO] Starting XML parsing. Content length: 6319
[2026-03-03 09:04:52] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 09:04:52] [INFO] Processing 28 field mappings
[2026-03-03 09:04:52] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 09:04:52] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 09:04:52] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 09:04:52] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-03 09:04:52] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-03 09:04:52] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-03 09:04:52] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 09:04:52] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-03 09:04:52] [INFO]   -> Found value: 2026000579
[2026-03-03 09:04:52] [INFO]   -> Set field 'incidentInternalId' = "2026000579"
[2026-03-03 09:04:52] [INFO]   -> Set field 'dispatchRunNumber' = "2026000579"
[2026-03-03 09:04:52] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 09:04:52] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-03 09:04:52] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-03 09:04:52] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 09:04:52] [INFO]   -> Found value: 1492
[2026-03-03 09:04:52] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1492
[2026-03-03 09:04:52] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 09:04:52] [INFO]   -> Found value: TN
[2026-03-03 09:04:52] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 09:04:52] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 09:04:52] [INFO]   -> Found value: 38506
[2026-03-03 09:04:52] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 09:04:52] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 09:04:52] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:52] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 09:04:52] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:52] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 09:04:52] [INFO]   -> Found value: 36.23264
[2026-03-03 09:04:52] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.23264000000000351064954884350299835205078125
[2026-03-03 09:04:52] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 09:04:52] [INFO]   -> Found value: -85.46288
[2026-03-03 09:04:52] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4628799999999984038367983885109424591064453125
[2026-03-03 09:04:52] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 09:04:52] [INFO]   -> Found value: 2026-03-03 03:01:42
[2026-03-03 09:04:52] [INFO]   -> Set field 'alarm' = "2026-03-03 03:01:42"
[2026-03-03 09:04:52] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 09:04:52] [INFO]   -> Found value: 2026-03-03 03:02:09
[2026-03-03 09:04:52] [INFO]   -> Set field 'dispatched' = "2026-03-03 03:02:09"
[2026-03-03 09:04:52] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 09:04:52] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:52] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 09:04:52] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:52] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 09:04:52] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:52] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 09:04:52] [INFO]   -> Found value: N QUINLAND LAKE RD/BEAR CREEK PT
[2026-03-03 09:04:52] [INFO]   -> Set field 'incidentLocationCross' = "N QUINLAND LAKE RD\/BEAR CREEK PT"
[2026-03-03 09:04:52] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 09:04:52] [INFO]   -> Found value: PCFR
[2026-03-03 09:04:52] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 09:04:52] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 09:04:52] [INFO]   -> Found value: 2026-03-03 03:02:09
[2026-03-03 09:04:52] [INFO]   -> Set field 'timedispatch' = "2026-03-03 03:02:09"
[2026-03-03 09:04:52] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 09:04:52] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:52] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 09:04:52] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:52] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 09:04:52] [INFO]   -> Found value: 2026-03-03 03:04:39
[2026-03-03 09:04:52] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 03:04:39"
[2026-03-03 09:04:52] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 09:04:52] [INFO]   -> Found value: 2026-03-03 03:04:39
[2026-03-03 09:04:52] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-03 03:04:39"
[2026-03-03 09:04:52] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 09:04:52] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 09:04:52] [INFO]   -> Found value: 20260023251
[2026-03-03 09:04:52] [INFO]   -> Set field 'policeReportNumber' = "20260023251"
[2026-03-03 09:04:52] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 09:04:52] [INFO]   -> Found value: [EMS] 38 YOM  [03/03/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03/03/26 03:02:12 JDICK] [EMS] BREATHI...
[2026-03-03 09:04:52] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 38 YOM  [03\/03\/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03\/03\/26 03:02:12 JDICK] [EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]"
[2026-03-03 09:04:52] [INFO]   -> Set field 'cADLog' = "[EMS] 38 YOM  [03\/03\/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03\/03\/26 03:02:12 JDICK] [EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]"
[2026-03-03 09:04:52] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 09:04:52] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 09:04:52] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 09:04:52] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 09:04:52] [INFO]   -> Found value: BEAR CREEK
[2026-03-03 09:04:52] [INFO]   -> Set field 'streetName' = "BEAR CREEK"
[2026-03-03 09:04:52] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 09:04:52] [INFO]   -> Found value: RD
[2026-03-03 09:04:52] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 09:04:52] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 09:04:52] [INFO]   -> Found value: 1492 BEAR CREEK RD
[2026-03-03 09:04:52] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1492 BEAR CREEK RD"
[2026-03-03 09:04:52] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 09:04:52] [INFO] Concatenating street name and type
[2026-03-03 09:04:52] [INFO]   -> Combined street name: BEAR CREEK RD
[2026-03-03 09:04:52] [INFO] Built locationCoordinates from lat/lng: 36.23264,-85.46288
[2026-03-03 09:04:52] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000579","dispatchRunNumber":"2026000579","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":1492,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.23264000000000351064954884350299835205078125,"nERISIncidentLongitude":-85.4628799999999984038367983885109424591064453125,"alarm":"2026-03-03 03:01:42","dispatched":"2026-03-03 03:02:09","incidentLocationCross":"N QUINLAND LAKE RD\/BEAR CREEK PT","cADVehicleID":"PCFR","timedispatch":"2026-03-03 03:02:09","timeunitclear":"2026-03-03 03:04:39","timecanceledenroute":"2026-03-03 03:04:39","policeReportNumber":"20260023251","dispatchNotes":"[EMS] 38 YOM  [03\/03\/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03\/03\/26 03:02:12 JDICK] [EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]","cADLog":"[EMS] 38 YOM  [03\/03\/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03\/03\/26 03:02:12 JDICK] [EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]","incidentLocationCity":"COOKEVILLE","streetName":"BEAR CREEK RD","incidentAddressTextVersionStreet":"1492 BEAR CREEK RD","locationCoordinates":"36.23264,-85.46288"}
[2026-03-03 09:04:52] [INFO] Number of extracted fields: 23
[2026-03-03 09:04:52] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-03 09:04:52] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-03 09:04:52] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-03 09:04:52] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 09:04:52] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 09:04:52] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-03 09:04: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-03 09:04: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-03 09:04:52] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-03 09:04:52] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 09:04:52] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 09:04:52] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-03 09:04:53] [INFO] Found existing Dispatch with cADNumber '2026000579', ID: 69a6a396b28a1a1d3 - will update instead of create
[2026-03-03 09:04:53] [INFO] Updated existing Dispatches record with ID: 69a6a396b28a1a1d3
[2026-03-03 09:04:53] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 09:04:53] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 09:04:57] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-03 09:04:57] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023251_20260303_090449.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 09:04:57] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 09:04:57] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023251_20260303_090449_1.XML
[2026-03-03 09:04:57] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023251_20260303_090449_1.XML for user: 68f1466aed072ad4a
[2026-03-03 09:04:57] [INFO] File size: 6319 bytes
[2026-03-03 09:04:57] [INFO] Created FTPFiles record with ID: 69a6a4396a6bf242d
[2026-03-03 09:04:57] [INFO] About to extract fields from XML. File size: 6319 bytes
[2026-03-03 09:04:57] [INFO] Number of mappings: 28
[2026-03-03 09:04:57] [INFO] Starting XML parsing. Content length: 6319
[2026-03-03 09:04:57] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 09:04:57] [INFO] Processing 28 field mappings
[2026-03-03 09:04:57] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 09:04:57] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 09:04:57] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 09:04:57] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-03 09:04:57] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-03 09:04:57] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-03 09:04:57] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 09:04:57] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-03 09:04:57] [INFO]   -> Found value: 2026000579
[2026-03-03 09:04:57] [INFO]   -> Set field 'incidentInternalId' = "2026000579"
[2026-03-03 09:04:57] [INFO]   -> Set field 'dispatchRunNumber' = "2026000579"
[2026-03-03 09:04:57] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 09:04:57] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-03 09:04:57] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-03 09:04:57] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 09:04:57] [INFO]   -> Found value: 1492
[2026-03-03 09:04:57] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1492
[2026-03-03 09:04:57] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 09:04:57] [INFO]   -> Found value: TN
[2026-03-03 09:04:57] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 09:04:57] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 09:04:57] [INFO]   -> Found value: 38506
[2026-03-03 09:04:57] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 09:04:57] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 09:04:57] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:57] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 09:04:57] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:57] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 09:04:57] [INFO]   -> Found value: 36.23264
[2026-03-03 09:04:57] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.23264000000000351064954884350299835205078125
[2026-03-03 09:04:57] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 09:04:57] [INFO]   -> Found value: -85.46288
[2026-03-03 09:04:57] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4628799999999984038367983885109424591064453125
[2026-03-03 09:04:57] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 09:04:57] [INFO]   -> Found value: 2026-03-03 03:01:42
[2026-03-03 09:04:57] [INFO]   -> Set field 'alarm' = "2026-03-03 03:01:42"
[2026-03-03 09:04:57] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 09:04:57] [INFO]   -> Found value: 2026-03-03 03:02:09
[2026-03-03 09:04:57] [INFO]   -> Set field 'dispatched' = "2026-03-03 03:02:09"
[2026-03-03 09:04:57] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 09:04:57] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:57] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 09:04:57] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:57] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 09:04:57] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:57] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 09:04:57] [INFO]   -> Found value: N QUINLAND LAKE RD/BEAR CREEK PT
[2026-03-03 09:04:57] [INFO]   -> Set field 'incidentLocationCross' = "N QUINLAND LAKE RD\/BEAR CREEK PT"
[2026-03-03 09:04:57] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 09:04:57] [INFO]   -> Found value: PCFR
[2026-03-03 09:04:57] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 09:04:57] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 09:04:57] [INFO]   -> Found value: 2026-03-03 03:02:09
[2026-03-03 09:04:57] [INFO]   -> Set field 'timedispatch' = "2026-03-03 03:02:09"
[2026-03-03 09:04:57] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 09:04:57] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:57] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 09:04:57] [INFO]   -> No value found (null or empty)
[2026-03-03 09:04:57] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 09:04:57] [INFO]   -> Found value: 2026-03-03 03:04:39
[2026-03-03 09:04:57] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 03:04:39"
[2026-03-03 09:04:57] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 09:04:57] [INFO]   -> Found value: 2026-03-03 03:04:39
[2026-03-03 09:04:57] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-03 03:04:39"
[2026-03-03 09:04:57] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 09:04:57] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 09:04:57] [INFO]   -> Found value: 20260023251
[2026-03-03 09:04:57] [INFO]   -> Set field 'policeReportNumber' = "20260023251"
[2026-03-03 09:04:57] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 09:04:57] [INFO]   -> Found value: [EMS] 38 YOM  [03/03/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03/03/26 03:02:12 JDICK] [EMS] BREATHI...
[2026-03-03 09:04:57] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 38 YOM  [03\/03\/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03\/03\/26 03:02:12 JDICK] [EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]"
[2026-03-03 09:04:57] [INFO]   -> Set field 'cADLog' = "[EMS] 38 YOM  [03\/03\/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03\/03\/26 03:02:12 JDICK] [EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]"
[2026-03-03 09:04:57] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 09:04:57] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 09:04:57] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 09:04:57] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 09:04:57] [INFO]   -> Found value: BEAR CREEK
[2026-03-03 09:04:57] [INFO]   -> Set field 'streetName' = "BEAR CREEK"
[2026-03-03 09:04:57] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 09:04:57] [INFO]   -> Found value: RD
[2026-03-03 09:04:57] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 09:04:57] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 09:04:57] [INFO]   -> Found value: 1492 BEAR CREEK RD
[2026-03-03 09:04:57] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1492 BEAR CREEK RD"
[2026-03-03 09:04:57] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 09:04:57] [INFO] Concatenating street name and type
[2026-03-03 09:04:57] [INFO]   -> Combined street name: BEAR CREEK RD
[2026-03-03 09:04:57] [INFO] Built locationCoordinates from lat/lng: 36.23264,-85.46288
[2026-03-03 09:04:57] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000579","dispatchRunNumber":"2026000579","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":1492,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.23264000000000351064954884350299835205078125,"nERISIncidentLongitude":-85.4628799999999984038367983885109424591064453125,"alarm":"2026-03-03 03:01:42","dispatched":"2026-03-03 03:02:09","incidentLocationCross":"N QUINLAND LAKE RD\/BEAR CREEK PT","cADVehicleID":"PCFR","timedispatch":"2026-03-03 03:02:09","timeunitclear":"2026-03-03 03:04:39","timecanceledenroute":"2026-03-03 03:04:39","policeReportNumber":"20260023251","dispatchNotes":"[EMS] 38 YOM  [03\/03\/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03\/03\/26 03:02:12 JDICK] [EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]","cADLog":"[EMS] 38 YOM  [03\/03\/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03\/03\/26 03:02:12 JDICK] [EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]","incidentLocationCity":"COOKEVILLE","streetName":"BEAR CREEK RD","incidentAddressTextVersionStreet":"1492 BEAR CREEK RD","locationCoordinates":"36.23264,-85.46288"}
[2026-03-03 09:04:57] [INFO] Number of extracted fields: 23
[2026-03-03 09:04:57] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-03 09:04:57] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-03 09:04:57] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-03 09:04:57] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 09:04:57] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 09:04:57] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-03 09:04: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-03 09:04: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-03 09:04:57] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-03 09:04:57] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 09:04:57] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 09:04:57] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-03 09:04:58] [INFO] Found existing Dispatch with cADNumber '2026000579', ID: 69a6a396b28a1a1d3 - will update instead of create
[2026-03-03 09:04:58] [INFO] Updated existing Dispatches record with ID: 69a6a396b28a1a1d3
[2026-03-03 09:04:58] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 09:04:58] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 09:05:02] [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-03 09:05:02] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023251_20260303_090449_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 09:05:02] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 11:29:28] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023258_20260303_112928.XML
[2026-03-03 11:29:28] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023258_20260303_112928.XML for user: 68f1466aed072ad4a
[2026-03-03 11:29:28] [INFO] File size: 5042 bytes
[2026-03-03 11:29:29] [INFO] Created FTPFiles record with ID: 69a6c61904077a2ff
[2026-03-03 11:29:29] [INFO] About to extract fields from XML. File size: 5042 bytes
[2026-03-03 11:29:29] [INFO] Number of mappings: 28
[2026-03-03 11:29:29] [INFO] Starting XML parsing. Content length: 5042
[2026-03-03 11:29:29] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 11:29:29] [INFO] Processing 28 field mappings
[2026-03-03 11:29:29] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 11:29:29] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 11:29:29] [INFO]   -> Found value: PCFD
[2026-03-03 11:29:29] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 11:29:29] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 11:29:29] [INFO]   -> Found value: 2026000580
[2026-03-03 11:29:29] [INFO]   -> Set field 'incidentInternalId' = "2026000580"
[2026-03-03 11:29:29] [INFO]   -> Set field 'dispatchRunNumber' = "2026000580"
[2026-03-03 11:29:29] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 11:29:29] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-03 11:29:29] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-03 11:29:29] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 11:29:29] [INFO]   -> Found value: 333
[2026-03-03 11:29:29] [INFO]   -> Set field 'incidentLocationStreetNumber' = 333
[2026-03-03 11:29:29] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 11:29:29] [INFO]   -> Found value: TN
[2026-03-03 11:29:29] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 11:29:29] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 11:29:29] [INFO]   -> Found value: 38506
[2026-03-03 11:29:29] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 11:29:29] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 11:29:29] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:29] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 11:29:29] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:29] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 11:29:29] [INFO]   -> Found value: 36.17397
[2026-03-03 11:29:29] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.17396999999999707142706029117107391357421875
[2026-03-03 11:29:29] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 11:29:29] [INFO]   -> Found value: -85.44318
[2026-03-03 11:29:29] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4431799999999981309883878566324710845947265625
[2026-03-03 11:29:29] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 11:29:29] [INFO]   -> Found value: 2026-03-03 05:27:09
[2026-03-03 11:29:29] [INFO]   -> Set field 'alarm' = "2026-03-03 05:27:09"
[2026-03-03 11:29:29] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 11:29:29] [INFO]   -> Found value: 2026-03-03 05:29:23
[2026-03-03 11:29:29] [INFO]   -> Set field 'dispatched' = "2026-03-03 05:29:23"
[2026-03-03 11:29:29] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 11:29:29] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:29] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 11:29:29] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:29] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 11:29:29] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:29] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 11:29:29] [INFO]   -> Found value: SHENANDOAH LN/OLD WALTON RD
[2026-03-03 11:29:29] [INFO]   -> Set field 'incidentLocationCross' = "SHENANDOAH LN\/OLD WALTON RD"
[2026-03-03 11:29:29] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 11:29:29] [INFO]   -> Found value: TK21
[2026-03-03 11:29:29] [INFO]   -> Set field 'cADVehicleID' = "TK21"
[2026-03-03 11:29:29] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 11:29:29] [INFO]   -> Found value: 2026-03-03 05:29:23
[2026-03-03 11:29:29] [INFO]   -> Set field 'timedispatch' = "2026-03-03 05:29:23"
[2026-03-03 11:29:29] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 11:29:29] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:29] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 11:29:29] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:29] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 11:29:29] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:29] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 11:29:29] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:29] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 11:29:29] [INFO]   -> Found value: 20260023258
[2026-03-03 11:29:29] [INFO]   -> Set field 'policeReportNumber' = "20260023258"
[2026-03-03 11:29:29] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 11:29:29] [INFO]   -> Found value: STATED ITS SMALL AT THIS TIME  [03/03/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [0...
[2026-03-03 11:29:29] [INFO]   -> Set field 'dispatchNotes' = "STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]"
[2026-03-03 11:29:29] [INFO]   -> Set field 'cADLog' = "STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]"
[2026-03-03 11:29:29] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 11:29:29] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 11:29:29] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 11:29:29] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 11:29:29] [INFO]   -> Found value: OLD QUALLS
[2026-03-03 11:29:29] [INFO]   -> Set field 'streetName' = "OLD QUALLS"
[2026-03-03 11:29:29] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 11:29:29] [INFO]   -> Found value: RD
[2026-03-03 11:29:29] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 11:29:29] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 11:29:29] [INFO]   -> Found value: 333 OLD QUALLS RD
[2026-03-03 11:29:29] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "333 OLD QUALLS RD"
[2026-03-03 11:29:29] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-03 11:29:29] [INFO] Concatenating street name and type
[2026-03-03 11:29:29] [INFO]   -> Combined street name: OLD QUALLS RD
[2026-03-03 11:29:29] [INFO] Built locationCoordinates from lat/lng: 36.17397,-85.44318
[2026-03-03 11:29:29] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000580","dispatchRunNumber":"2026000580","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":333,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.17396999999999707142706029117107391357421875,"nERISIncidentLongitude":-85.4431799999999981309883878566324710845947265625,"alarm":"2026-03-03 05:27:09","dispatched":"2026-03-03 05:29:23","incidentLocationCross":"SHENANDOAH LN\/OLD WALTON RD","cADVehicleID":"TK21","timedispatch":"2026-03-03 05:29:23","policeReportNumber":"20260023258","dispatchNotes":"STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]","cADLog":"STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"OLD QUALLS RD","incidentAddressTextVersionStreet":"333 OLD QUALLS RD","locationCoordinates":"36.17397,-85.44318"}
[2026-03-03 11:29:29] [INFO] Number of extracted fields: 21
[2026-03-03 11:29:29] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 11:29: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-03 11:29:29] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 11:29:29] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 11:29:29] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 11:29: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-03 11:29: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-03 11:29:29] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 11:29:29] [INFO] Found existing IncidentTypeMapping with ID: 693de9e1e8922fc29
[2026-03-03 11:29:38] [INFO] Created new Dispatches record with ID: 69a6c619c6dabc502
[2026-03-03 11:29:38] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 11:29:39] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 11:29: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-03 11:29:42] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023258_20260303_112928.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 11:29:42] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 11:29:42] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023258_20260303_112928_1.XML
[2026-03-03 11:29:42] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023258_20260303_112928_1.XML for user: 68f1466aed072ad4a
[2026-03-03 11:29:42] [INFO] File size: 5042 bytes
[2026-03-03 11:29:42] [INFO] Created FTPFiles record with ID: 69a6c626deb372b56
[2026-03-03 11:29:42] [INFO] About to extract fields from XML. File size: 5042 bytes
[2026-03-03 11:29:42] [INFO] Number of mappings: 28
[2026-03-03 11:29:42] [INFO] Starting XML parsing. Content length: 5042
[2026-03-03 11:29:42] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 11:29:42] [INFO] Processing 28 field mappings
[2026-03-03 11:29:42] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 11:29:42] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 11:29:42] [INFO]   -> Found value: PCFD
[2026-03-03 11:29:42] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 11:29:42] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 11:29:42] [INFO]   -> Found value: 2026000580
[2026-03-03 11:29:42] [INFO]   -> Set field 'incidentInternalId' = "2026000580"
[2026-03-03 11:29:42] [INFO]   -> Set field 'dispatchRunNumber' = "2026000580"
[2026-03-03 11:29:42] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 11:29:42] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-03 11:29:42] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-03 11:29:42] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 11:29:42] [INFO]   -> Found value: 333
[2026-03-03 11:29:42] [INFO]   -> Set field 'incidentLocationStreetNumber' = 333
[2026-03-03 11:29:42] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 11:29:42] [INFO]   -> Found value: TN
[2026-03-03 11:29:42] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 11:29:42] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 11:29:42] [INFO]   -> Found value: 38506
[2026-03-03 11:29:42] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 11:29:42] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 11:29:42] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:42] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 11:29:42] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:42] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 11:29:42] [INFO]   -> Found value: 36.17397
[2026-03-03 11:29:42] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.17396999999999707142706029117107391357421875
[2026-03-03 11:29:42] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 11:29:42] [INFO]   -> Found value: -85.44318
[2026-03-03 11:29:42] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4431799999999981309883878566324710845947265625
[2026-03-03 11:29:42] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 11:29:42] [INFO]   -> Found value: 2026-03-03 05:27:09
[2026-03-03 11:29:42] [INFO]   -> Set field 'alarm' = "2026-03-03 05:27:09"
[2026-03-03 11:29:42] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 11:29:42] [INFO]   -> Found value: 2026-03-03 05:29:23
[2026-03-03 11:29:42] [INFO]   -> Set field 'dispatched' = "2026-03-03 05:29:23"
[2026-03-03 11:29:42] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 11:29:42] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:42] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 11:29:42] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:42] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 11:29:42] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:42] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 11:29:42] [INFO]   -> Found value: SHENANDOAH LN/OLD WALTON RD
[2026-03-03 11:29:42] [INFO]   -> Set field 'incidentLocationCross' = "SHENANDOAH LN\/OLD WALTON RD"
[2026-03-03 11:29:42] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 11:29:42] [INFO]   -> Found value: TK21
[2026-03-03 11:29:42] [INFO]   -> Set field 'cADVehicleID' = "TK21"
[2026-03-03 11:29:42] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 11:29:42] [INFO]   -> Found value: 2026-03-03 05:29:23
[2026-03-03 11:29:42] [INFO]   -> Set field 'timedispatch' = "2026-03-03 05:29:23"
[2026-03-03 11:29:42] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 11:29:42] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:42] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 11:29:42] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:42] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 11:29:42] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:42] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 11:29:42] [INFO]   -> No value found (null or empty)
[2026-03-03 11:29:42] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 11:29:42] [INFO]   -> Found value: 20260023258
[2026-03-03 11:29:42] [INFO]   -> Set field 'policeReportNumber' = "20260023258"
[2026-03-03 11:29:42] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 11:29:42] [INFO]   -> Found value: STATED ITS SMALL AT THIS TIME  [03/03/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [0...
[2026-03-03 11:29:42] [INFO]   -> Set field 'dispatchNotes' = "STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]"
[2026-03-03 11:29:42] [INFO]   -> Set field 'cADLog' = "STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]"
[2026-03-03 11:29:42] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 11:29:42] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 11:29:42] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 11:29:42] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 11:29:42] [INFO]   -> Found value: OLD QUALLS
[2026-03-03 11:29:42] [INFO]   -> Set field 'streetName' = "OLD QUALLS"
[2026-03-03 11:29:42] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 11:29:42] [INFO]   -> Found value: RD
[2026-03-03 11:29:42] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 11:29:42] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 11:29:42] [INFO]   -> Found value: 333 OLD QUALLS RD
[2026-03-03 11:29:42] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "333 OLD QUALLS RD"
[2026-03-03 11:29:42] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-03 11:29:42] [INFO] Concatenating street name and type
[2026-03-03 11:29:42] [INFO]   -> Combined street name: OLD QUALLS RD
[2026-03-03 11:29:42] [INFO] Built locationCoordinates from lat/lng: 36.17397,-85.44318
[2026-03-03 11:29:42] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000580","dispatchRunNumber":"2026000580","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":333,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.17396999999999707142706029117107391357421875,"nERISIncidentLongitude":-85.4431799999999981309883878566324710845947265625,"alarm":"2026-03-03 05:27:09","dispatched":"2026-03-03 05:29:23","incidentLocationCross":"SHENANDOAH LN\/OLD WALTON RD","cADVehicleID":"TK21","timedispatch":"2026-03-03 05:29:23","policeReportNumber":"20260023258","dispatchNotes":"STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]","cADLog":"STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"OLD QUALLS RD","incidentAddressTextVersionStreet":"333 OLD QUALLS RD","locationCoordinates":"36.17397,-85.44318"}
[2026-03-03 11:29:42] [INFO] Number of extracted fields: 21
[2026-03-03 11:29:42] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 11:29: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-03 11:29:42] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 11:29:42] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 11:29:43] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 11:29: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-03 11:29: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-03 11:29:43] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 11:29:43] [INFO] Found existing IncidentTypeMapping with ID: 693de9e1e8922fc29
[2026-03-03 11:29:43] [INFO] Found existing Dispatch with cADNumber '2026000580', ID: 69a6c619c6dabc502 - will update instead of create
[2026-03-03 11:29:43] [INFO] Updated existing Dispatches record with ID: 69a6c619c6dabc502
[2026-03-03 11:29:43] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 11:29:43] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 11:29: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-03 11:29:47] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023258_20260303_112928_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 11:29:47] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 11:31:19] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023258_20260303_113119.XML
[2026-03-03 11:31:19] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023258_20260303_113119.XML for user: 68f1466aed072ad4a
[2026-03-03 11:31:19] [INFO] File size: 5784 bytes
[2026-03-03 11:31:20] [INFO] Created FTPFiles record with ID: 69a6c6884676ca32b
[2026-03-03 11:31:20] [INFO] About to extract fields from XML. File size: 5784 bytes
[2026-03-03 11:31:20] [INFO] Number of mappings: 28
[2026-03-03 11:31:20] [INFO] Starting XML parsing. Content length: 5784
[2026-03-03 11:31:20] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 11:31:20] [INFO] Processing 28 field mappings
[2026-03-03 11:31:20] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 11:31:20] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 11:31:20] [INFO]   -> Found value: PCFD
[2026-03-03 11:31:20] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 11:31:20] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 11:31:20] [INFO]   -> Found value: 2026000580
[2026-03-03 11:31:20] [INFO]   -> Set field 'incidentInternalId' = "2026000580"
[2026-03-03 11:31:20] [INFO]   -> Set field 'dispatchRunNumber' = "2026000580"
[2026-03-03 11:31:20] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 11:31:20] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-03 11:31:20] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-03 11:31:20] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 11:31:20] [INFO]   -> Found value: 333
[2026-03-03 11:31:20] [INFO]   -> Set field 'incidentLocationStreetNumber' = 333
[2026-03-03 11:31:20] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 11:31:20] [INFO]   -> Found value: TN
[2026-03-03 11:31:20] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 11:31:20] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 11:31:20] [INFO]   -> Found value: 38506
[2026-03-03 11:31:20] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 11:31:20] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 11:31:20] [INFO]   -> No value found (null or empty)
[2026-03-03 11:31:20] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 11:31:20] [INFO]   -> No value found (null or empty)
[2026-03-03 11:31:20] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 11:31:20] [INFO]   -> Found value: 36.17397
[2026-03-03 11:31:20] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.17396999999999707142706029117107391357421875
[2026-03-03 11:31:20] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 11:31:20] [INFO]   -> Found value: -85.44318
[2026-03-03 11:31:20] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4431799999999981309883878566324710845947265625
[2026-03-03 11:31:20] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 11:31:20] [INFO]   -> Found value: 2026-03-03 05:27:09
[2026-03-03 11:31:20] [INFO]   -> Set field 'alarm' = "2026-03-03 05:27:09"
[2026-03-03 11:31:20] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 11:31:20] [INFO]   -> Found value: 2026-03-03 05:29:23
[2026-03-03 11:31:20] [INFO]   -> Set field 'dispatched' = "2026-03-03 05:29:23"
[2026-03-03 11:31:20] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 11:31:20] [INFO]   -> Found value: 2026-03-03 05:31:11
[2026-03-03 11:31:20] [INFO]   -> Set field 'enroute' = "2026-03-03 05:31:11"
[2026-03-03 11:31:20] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 11:31:20] [INFO]   -> No value found (null or empty)
[2026-03-03 11:31:20] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 11:31:20] [INFO]   -> No value found (null or empty)
[2026-03-03 11:31:20] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 11:31:20] [INFO]   -> Found value: SHENANDOAH LN/OLD WALTON RD
[2026-03-03 11:31:20] [INFO]   -> Set field 'incidentLocationCross' = "SHENANDOAH LN\/OLD WALTON RD"
[2026-03-03 11:31:20] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 11:31:20] [INFO]   -> Found value: TK12
[2026-03-03 11:31:20] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-03 11:31:20] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 11:31:20] [INFO]   -> Found value: 2026-03-03 05:31:11
[2026-03-03 11:31:20] [INFO]   -> Set field 'timedispatch' = "2026-03-03 05:31:11"
[2026-03-03 11:31:20] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 11:31:20] [INFO]   -> Found value: 2026-03-03 05:31:11
[2026-03-03 11:31:20] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 05:31:11"
[2026-03-03 11:31:20] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 11:31:20] [INFO]   -> No value found (null or empty)
[2026-03-03 11:31:20] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 11:31:20] [INFO]   -> No value found (null or empty)
[2026-03-03 11:31:20] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 11:31:20] [INFO]   -> No value found (null or empty)
[2026-03-03 11:31:20] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 11:31:20] [INFO]   -> Found value: 20260023258
[2026-03-03 11:31:20] [INFO]   -> Set field 'policeReportNumber' = "20260023258"
[2026-03-03 11:31:20] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 11:31:20] [INFO]   -> Found value: STATED ITS SMALL AT THIS TIME  [03/03/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [0...
[2026-03-03 11:31:20] [INFO]   -> Set field 'dispatchNotes' = "STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]"
[2026-03-03 11:31:20] [INFO]   -> Set field 'cADLog' = "STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]"
[2026-03-03 11:31:20] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 11:31:20] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 11:31:20] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 11:31:20] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 11:31:20] [INFO]   -> Found value: OLD QUALLS
[2026-03-03 11:31:20] [INFO]   -> Set field 'streetName' = "OLD QUALLS"
[2026-03-03 11:31:20] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 11:31:20] [INFO]   -> Found value: RD
[2026-03-03 11:31:20] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 11:31:20] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 11:31:20] [INFO]   -> Found value: 333 OLD QUALLS RD
[2026-03-03 11:31:20] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "333 OLD QUALLS RD"
[2026-03-03 11:31:20] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 11:31:20] [INFO] Concatenating street name and type
[2026-03-03 11:31:20] [INFO]   -> Combined street name: OLD QUALLS RD
[2026-03-03 11:31:20] [INFO] Built locationCoordinates from lat/lng: 36.17397,-85.44318
[2026-03-03 11:31:20] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000580","dispatchRunNumber":"2026000580","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":333,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.17396999999999707142706029117107391357421875,"nERISIncidentLongitude":-85.4431799999999981309883878566324710845947265625,"alarm":"2026-03-03 05:27:09","dispatched":"2026-03-03 05:29:23","enroute":"2026-03-03 05:31:11","incidentLocationCross":"SHENANDOAH LN\/OLD WALTON RD","cADVehicleID":"TK12","timedispatch":"2026-03-03 05:31:11","timeenroutetoscene":"2026-03-03 05:31:11","policeReportNumber":"20260023258","dispatchNotes":"STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]","cADLog":"STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"OLD QUALLS RD","incidentAddressTextVersionStreet":"333 OLD QUALLS RD","locationCoordinates":"36.17397,-85.44318"}
[2026-03-03 11:31:20] [INFO] Number of extracted fields: 23
[2026-03-03 11:31:20] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 11:31:20] [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-03 11:31:20] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 11:31:20] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 11:31:20] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 11:31: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-03 11:31: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-03 11:31:20] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 11:31:20] [INFO] Found existing IncidentTypeMapping with ID: 693de9e1e8922fc29
[2026-03-03 11:31:20] [INFO] Found existing Dispatch with cADNumber '2026000580', ID: 69a6c619c6dabc502 - will update instead of create
[2026-03-03 11:31:21] [INFO] Updated existing Dispatches record with ID: 69a6c619c6dabc502
[2026-03-03 11:31:21] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 11:31:21] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 11:31: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-03 11:31:24] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023258_20260303_113119.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 11:31:24] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 11:31:24] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023258_20260303_113124.XML
[2026-03-03 11:31:24] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023258_20260303_113124.XML for user: 68f1466aed072ad4a
[2026-03-03 11:31:24] [INFO] File size: 5784 bytes
[2026-03-03 11:31:25] [INFO] Created FTPFiles record with ID: 69a6c68d477f9da4e
[2026-03-03 11:31:25] [INFO] About to extract fields from XML. File size: 5784 bytes
[2026-03-03 11:31:25] [INFO] Number of mappings: 28
[2026-03-03 11:31:25] [INFO] Starting XML parsing. Content length: 5784
[2026-03-03 11:31:25] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 11:31:25] [INFO] Processing 28 field mappings
[2026-03-03 11:31:25] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 11:31:25] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 11:31:25] [INFO]   -> Found value: PCFD
[2026-03-03 11:31:25] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 11:31:25] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 11:31:25] [INFO]   -> Found value: 2026000580
[2026-03-03 11:31:25] [INFO]   -> Set field 'incidentInternalId' = "2026000580"
[2026-03-03 11:31:25] [INFO]   -> Set field 'dispatchRunNumber' = "2026000580"
[2026-03-03 11:31:25] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 11:31:25] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-03 11:31:25] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-03 11:31:25] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 11:31:25] [INFO]   -> Found value: 333
[2026-03-03 11:31:25] [INFO]   -> Set field 'incidentLocationStreetNumber' = 333
[2026-03-03 11:31:25] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 11:31:25] [INFO]   -> Found value: TN
[2026-03-03 11:31:25] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 11:31:25] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 11:31:25] [INFO]   -> Found value: 38506
[2026-03-03 11:31:25] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 11:31:25] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 11:31:25] [INFO]   -> No value found (null or empty)
[2026-03-03 11:31:25] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 11:31:25] [INFO]   -> No value found (null or empty)
[2026-03-03 11:31:25] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 11:31:25] [INFO]   -> Found value: 36.17397
[2026-03-03 11:31:25] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.17396999999999707142706029117107391357421875
[2026-03-03 11:31:25] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 11:31:25] [INFO]   -> Found value: -85.44318
[2026-03-03 11:31:25] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4431799999999981309883878566324710845947265625
[2026-03-03 11:31:25] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 11:31:25] [INFO]   -> Found value: 2026-03-03 05:27:09
[2026-03-03 11:31:25] [INFO]   -> Set field 'alarm' = "2026-03-03 05:27:09"
[2026-03-03 11:31:25] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 11:31:25] [INFO]   -> Found value: 2026-03-03 05:29:23
[2026-03-03 11:31:25] [INFO]   -> Set field 'dispatched' = "2026-03-03 05:29:23"
[2026-03-03 11:31:25] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 11:31:25] [INFO]   -> Found value: 2026-03-03 05:31:11
[2026-03-03 11:31:25] [INFO]   -> Set field 'enroute' = "2026-03-03 05:31:11"
[2026-03-03 11:31:25] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 11:31:25] [INFO]   -> No value found (null or empty)
[2026-03-03 11:31:25] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 11:31:25] [INFO]   -> No value found (null or empty)
[2026-03-03 11:31:25] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 11:31:25] [INFO]   -> Found value: SHENANDOAH LN/OLD WALTON RD
[2026-03-03 11:31:25] [INFO]   -> Set field 'incidentLocationCross' = "SHENANDOAH LN\/OLD WALTON RD"
[2026-03-03 11:31:25] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 11:31:25] [INFO]   -> Found value: TK12
[2026-03-03 11:31:25] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-03 11:31:25] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 11:31:25] [INFO]   -> Found value: 2026-03-03 05:31:11
[2026-03-03 11:31:25] [INFO]   -> Set field 'timedispatch' = "2026-03-03 05:31:11"
[2026-03-03 11:31:25] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 11:31:25] [INFO]   -> Found value: 2026-03-03 05:31:11
[2026-03-03 11:31:25] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 05:31:11"
[2026-03-03 11:31:25] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 11:31:25] [INFO]   -> No value found (null or empty)
[2026-03-03 11:31:25] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 11:31:25] [INFO]   -> No value found (null or empty)
[2026-03-03 11:31:25] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 11:31:25] [INFO]   -> No value found (null or empty)
[2026-03-03 11:31:25] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 11:31:25] [INFO]   -> Found value: 20260023258
[2026-03-03 11:31:25] [INFO]   -> Set field 'policeReportNumber' = "20260023258"
[2026-03-03 11:31:25] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 11:31:25] [INFO]   -> Found value: STATED ITS SMALL AT THIS TIME  [03/03/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [0...
[2026-03-03 11:31:25] [INFO]   -> Set field 'dispatchNotes' = "STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]"
[2026-03-03 11:31:25] [INFO]   -> Set field 'cADLog' = "STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]"
[2026-03-03 11:31:25] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 11:31:25] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 11:31:25] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 11:31:25] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 11:31:25] [INFO]   -> Found value: OLD QUALLS
[2026-03-03 11:31:25] [INFO]   -> Set field 'streetName' = "OLD QUALLS"
[2026-03-03 11:31:25] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 11:31:25] [INFO]   -> Found value: RD
[2026-03-03 11:31:25] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 11:31:25] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 11:31:25] [INFO]   -> Found value: 333 OLD QUALLS RD
[2026-03-03 11:31:25] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "333 OLD QUALLS RD"
[2026-03-03 11:31:25] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 11:31:25] [INFO] Concatenating street name and type
[2026-03-03 11:31:25] [INFO]   -> Combined street name: OLD QUALLS RD
[2026-03-03 11:31:25] [INFO] Built locationCoordinates from lat/lng: 36.17397,-85.44318
[2026-03-03 11:31:25] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000580","dispatchRunNumber":"2026000580","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":333,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.17396999999999707142706029117107391357421875,"nERISIncidentLongitude":-85.4431799999999981309883878566324710845947265625,"alarm":"2026-03-03 05:27:09","dispatched":"2026-03-03 05:29:23","enroute":"2026-03-03 05:31:11","incidentLocationCross":"SHENANDOAH LN\/OLD WALTON RD","cADVehicleID":"TK12","timedispatch":"2026-03-03 05:31:11","timeenroutetoscene":"2026-03-03 05:31:11","policeReportNumber":"20260023258","dispatchNotes":"STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]","cADLog":"STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"OLD QUALLS RD","incidentAddressTextVersionStreet":"333 OLD QUALLS RD","locationCoordinates":"36.17397,-85.44318"}
[2026-03-03 11:31:25] [INFO] Number of extracted fields: 23
[2026-03-03 11:31:25] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 11:31:25] [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-03 11:31:25] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 11:31:25] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 11:31:25] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 11:31: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-03 11:31: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-03 11:31:25] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 11:31:25] [INFO] Found existing IncidentTypeMapping with ID: 693de9e1e8922fc29
[2026-03-03 11:31:25] [INFO] Found existing Dispatch with cADNumber '2026000580', ID: 69a6c619c6dabc502 - will update instead of create
[2026-03-03 11:31:26] [INFO] Updated existing Dispatches record with ID: 69a6c619c6dabc502
[2026-03-03 11:31:26] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 11:31:26] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 11:31: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-03 11:31:29] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023258_20260303_113124.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 11:31:29] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 15:14:30] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023322_20260303_151430.XML
[2026-03-03 15:14:30] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023322_20260303_151430.XML for user: 68f1466aed072ad4a
[2026-03-03 15:14:30] [INFO] File size: 5294 bytes
[2026-03-03 15:14:30] [INFO] Created FTPFiles record with ID: 69a6fad6816179693
[2026-03-03 15:14:30] [INFO] About to extract fields from XML. File size: 5294 bytes
[2026-03-03 15:14:30] [INFO] Number of mappings: 28
[2026-03-03 15:14:30] [INFO] Starting XML parsing. Content length: 5294
[2026-03-03 15:14:30] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 15:14:30] [INFO] Processing 28 field mappings
[2026-03-03 15:14:30] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 15:14:30] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 15:14:30] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 15:14:30] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 15:14:30] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 15:14:30] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 15:14:30] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 15:14:30] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 15:14:30] [INFO]   -> Found value: 2026000581
[2026-03-03 15:14:30] [INFO]   -> Set field 'incidentInternalId' = "2026000581"
[2026-03-03 15:14:30] [INFO]   -> Set field 'dispatchRunNumber' = "2026000581"
[2026-03-03 15:14:30] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 15:14:30] [INFO]   -> Found value: MEDICAL CALL
[2026-03-03 15:14:30] [INFO]   -> Set field 'incidentTypeValue1' = "MEDICAL CALL"
[2026-03-03 15:14:30] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 15:14:30] [INFO]   -> Found value: 4335
[2026-03-03 15:14:30] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4335
[2026-03-03 15:14:30] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 15:14:30] [INFO]   -> Found value: TN
[2026-03-03 15:14:30] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 15:14:30] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 15:14:30] [INFO]   -> Found value: 38501
[2026-03-03 15:14:30] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-03 15:14:30] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 15:14:30] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:30] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 15:14:30] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:30] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 15:14:30] [INFO]   -> Found value: 36.21309
[2026-03-03 15:14:30] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21309000000000111185727291740477085113525390625
[2026-03-03 15:14:30] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 15:14:30] [INFO]   -> Found value: -85.59000
[2026-03-03 15:14:30] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.590000000000003410605131648480892181396484375
[2026-03-03 15:14:30] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 15:14:30] [INFO]   -> Found value: 2026-03-03 09:13:48
[2026-03-03 15:14:30] [INFO]   -> Set field 'alarm' = "2026-03-03 09:13:48"
[2026-03-03 15:14:30] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 15:14:30] [INFO]   -> Found value: 2026-03-03 09:14:26
[2026-03-03 15:14:30] [INFO]   -> Set field 'dispatched' = "2026-03-03 09:14:26"
[2026-03-03 15:14:30] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 15:14:30] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:30] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 15:14:30] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:30] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 15:14:30] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:30] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 15:14:30] [INFO]   -> Found value: TULIP LN/WEST POINTE DR
[2026-03-03 15:14:30] [INFO]   -> Set field 'incidentLocationCross' = "TULIP LN\/WEST POINTE DR"
[2026-03-03 15:14:30] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 15:14:30] [INFO]   -> Found value: PCFR
[2026-03-03 15:14:30] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 15:14:30] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 15:14:30] [INFO]   -> Found value: 2026-03-03 09:14:26
[2026-03-03 15:14:30] [INFO]   -> Set field 'timedispatch' = "2026-03-03 09:14:26"
[2026-03-03 15:14:30] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 15:14:30] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:30] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 15:14:30] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:30] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 15:14:30] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:30] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 15:14:30] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:30] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 15:14:30] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 15:14:30] [INFO]   -> Found value: 20260023322
[2026-03-03 15:14:30] [INFO]   -> Set field 'policeReportNumber' = "20260023322"
[2026-03-03 15:14:30] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 15:14:30] [INFO]   -> Found value: Event spawned from MEDICAL ALARM.  [03/03/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03/03...
[2026-03-03 15:14:30] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]"
[2026-03-03 15:14:30] [INFO]   -> Set field 'cADLog' = "Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]"
[2026-03-03 15:14:30] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 15:14:30] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 15:14:30] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 15:14:30] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 15:14:30] [INFO]   -> Found value: CUMBY
[2026-03-03 15:14:30] [INFO]   -> Set field 'streetName' = "CUMBY"
[2026-03-03 15:14:30] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 15:14:30] [INFO]   -> Found value: RD
[2026-03-03 15:14:30] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 15:14:30] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 15:14:30] [INFO]   -> Found value: 4335 CUMBY RD
[2026-03-03 15:14:30] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4335 CUMBY RD"
[2026-03-03 15:14:30] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-03 15:14:30] [INFO] Concatenating street name and type
[2026-03-03 15:14:30] [INFO]   -> Combined street name: CUMBY RD
[2026-03-03 15:14:30] [INFO] Built locationCoordinates from lat/lng: 36.21309,-85.59
[2026-03-03 15:14:30] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000581","dispatchRunNumber":"2026000581","incidentTypeValue1":"MEDICAL CALL","incidentLocationStreetNumber":4335,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.21309000000000111185727291740477085113525390625,"nERISIncidentLongitude":-85.590000000000003410605131648480892181396484375,"alarm":"2026-03-03 09:13:48","dispatched":"2026-03-03 09:14:26","incidentLocationCross":"TULIP LN\/WEST POINTE DR","cADVehicleID":"PCFR","timedispatch":"2026-03-03 09:14:26","policeReportNumber":"20260023322","dispatchNotes":"Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]","cADLog":"Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]","incidentLocationCity":"COOKEVILLE","streetName":"CUMBY RD","incidentAddressTextVersionStreet":"4335 CUMBY RD","locationCoordinates":"36.21309,-85.59"}
[2026-03-03 15:14:30] [INFO] Number of extracted fields: 21
[2026-03-03 15:14:30] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 15:14:30] [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-03 15:14:30] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 15:14:30] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 15:14:30] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 15:14:30] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 15:14: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-03 15:14: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-03 15:14:30] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 15:14:30] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 15:14:30] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 15:14:31] [INFO] Found existing IncidentTypeMapping with ID: 6939328c99c5522d2
[2026-03-03 15:14:40] [INFO] Created new Dispatches record with ID: 69a6fad7652254137
[2026-03-03 15:14:40] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 15:14:41] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 15:14: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-03 15:14:44] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023322_20260303_151430.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 15:14:44] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 15:14:44] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023322_20260303_151430_1.XML
[2026-03-03 15:14:44] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023322_20260303_151430_1.XML for user: 68f1466aed072ad4a
[2026-03-03 15:14:44] [INFO] File size: 5294 bytes
[2026-03-03 15:14:45] [INFO] Created FTPFiles record with ID: 69a6fae53439674d5
[2026-03-03 15:14:45] [INFO] About to extract fields from XML. File size: 5294 bytes
[2026-03-03 15:14:45] [INFO] Number of mappings: 28
[2026-03-03 15:14:45] [INFO] Starting XML parsing. Content length: 5294
[2026-03-03 15:14:45] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 15:14:45] [INFO] Processing 28 field mappings
[2026-03-03 15:14:45] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 15:14:45] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 15:14:45] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 15:14:45] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 15:14:45] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 15:14:45] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 15:14:45] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 15:14:45] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 15:14:45] [INFO]   -> Found value: 2026000581
[2026-03-03 15:14:45] [INFO]   -> Set field 'incidentInternalId' = "2026000581"
[2026-03-03 15:14:45] [INFO]   -> Set field 'dispatchRunNumber' = "2026000581"
[2026-03-03 15:14:45] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 15:14:45] [INFO]   -> Found value: MEDICAL CALL
[2026-03-03 15:14:45] [INFO]   -> Set field 'incidentTypeValue1' = "MEDICAL CALL"
[2026-03-03 15:14:45] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 15:14:45] [INFO]   -> Found value: 4335
[2026-03-03 15:14:45] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4335
[2026-03-03 15:14:45] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 15:14:45] [INFO]   -> Found value: TN
[2026-03-03 15:14:45] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 15:14:45] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 15:14:45] [INFO]   -> Found value: 38501
[2026-03-03 15:14:45] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-03 15:14:45] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 15:14:45] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:45] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 15:14:45] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:45] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 15:14:45] [INFO]   -> Found value: 36.21309
[2026-03-03 15:14:45] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21309000000000111185727291740477085113525390625
[2026-03-03 15:14:45] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 15:14:45] [INFO]   -> Found value: -85.59000
[2026-03-03 15:14:45] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.590000000000003410605131648480892181396484375
[2026-03-03 15:14:45] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 15:14:45] [INFO]   -> Found value: 2026-03-03 09:13:48
[2026-03-03 15:14:45] [INFO]   -> Set field 'alarm' = "2026-03-03 09:13:48"
[2026-03-03 15:14:45] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 15:14:45] [INFO]   -> Found value: 2026-03-03 09:14:26
[2026-03-03 15:14:45] [INFO]   -> Set field 'dispatched' = "2026-03-03 09:14:26"
[2026-03-03 15:14:45] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 15:14:45] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:45] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 15:14:45] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:45] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 15:14:45] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:45] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 15:14:45] [INFO]   -> Found value: TULIP LN/WEST POINTE DR
[2026-03-03 15:14:45] [INFO]   -> Set field 'incidentLocationCross' = "TULIP LN\/WEST POINTE DR"
[2026-03-03 15:14:45] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 15:14:45] [INFO]   -> Found value: PCFR
[2026-03-03 15:14:45] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 15:14:45] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 15:14:45] [INFO]   -> Found value: 2026-03-03 09:14:26
[2026-03-03 15:14:45] [INFO]   -> Set field 'timedispatch' = "2026-03-03 09:14:26"
[2026-03-03 15:14:45] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 15:14:45] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:45] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 15:14:45] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:45] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 15:14:45] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:45] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 15:14:45] [INFO]   -> No value found (null or empty)
[2026-03-03 15:14:45] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 15:14:45] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 15:14:45] [INFO]   -> Found value: 20260023322
[2026-03-03 15:14:45] [INFO]   -> Set field 'policeReportNumber' = "20260023322"
[2026-03-03 15:14:45] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 15:14:45] [INFO]   -> Found value: Event spawned from MEDICAL ALARM.  [03/03/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03/03...
[2026-03-03 15:14:45] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]"
[2026-03-03 15:14:45] [INFO]   -> Set field 'cADLog' = "Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]"
[2026-03-03 15:14:45] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 15:14:45] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 15:14:45] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 15:14:45] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 15:14:45] [INFO]   -> Found value: CUMBY
[2026-03-03 15:14:45] [INFO]   -> Set field 'streetName' = "CUMBY"
[2026-03-03 15:14:45] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 15:14:45] [INFO]   -> Found value: RD
[2026-03-03 15:14:45] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 15:14:45] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 15:14:45] [INFO]   -> Found value: 4335 CUMBY RD
[2026-03-03 15:14:45] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4335 CUMBY RD"
[2026-03-03 15:14:45] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-03 15:14:45] [INFO] Concatenating street name and type
[2026-03-03 15:14:45] [INFO]   -> Combined street name: CUMBY RD
[2026-03-03 15:14:45] [INFO] Built locationCoordinates from lat/lng: 36.21309,-85.59
[2026-03-03 15:14:45] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000581","dispatchRunNumber":"2026000581","incidentTypeValue1":"MEDICAL CALL","incidentLocationStreetNumber":4335,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.21309000000000111185727291740477085113525390625,"nERISIncidentLongitude":-85.590000000000003410605131648480892181396484375,"alarm":"2026-03-03 09:13:48","dispatched":"2026-03-03 09:14:26","incidentLocationCross":"TULIP LN\/WEST POINTE DR","cADVehicleID":"PCFR","timedispatch":"2026-03-03 09:14:26","policeReportNumber":"20260023322","dispatchNotes":"Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]","cADLog":"Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]","incidentLocationCity":"COOKEVILLE","streetName":"CUMBY RD","incidentAddressTextVersionStreet":"4335 CUMBY RD","locationCoordinates":"36.21309,-85.59"}
[2026-03-03 15:14:45] [INFO] Number of extracted fields: 21
[2026-03-03 15:14:45] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 15:14:45] [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-03 15:14:45] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 15:14:45] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 15:14:45] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 15:14:45] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 15:14: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-03 15:14: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-03 15:14:59] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 15:14:59] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 15:14:59] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 15:14:59] [INFO] Found existing IncidentTypeMapping with ID: 6939328c99c5522d2
[2026-03-03 15:14:59] [INFO] Found existing Dispatch with cADNumber '2026000581', ID: 69a6fad7652254137 - will update instead of create
[2026-03-03 15:14:59] [INFO] Updated existing Dispatches record with ID: 69a6fad7652254137
[2026-03-03 15:14:59] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 15:14:59] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 15:15: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-03 15:15:03] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023322_20260303_151430_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 15:15:03] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 15:17:25] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023322_20260303_151725.XML
[2026-03-03 15:17:25] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023322_20260303_151725.XML for user: 68f1466aed072ad4a
[2026-03-03 15:17:25] [INFO] File size: 6183 bytes
[2026-03-03 15:17:26] [INFO] Created FTPFiles record with ID: 69a6fb862c032e32a
[2026-03-03 15:17:26] [INFO] About to extract fields from XML. File size: 6183 bytes
[2026-03-03 15:17:26] [INFO] Number of mappings: 28
[2026-03-03 15:17:26] [INFO] Starting XML parsing. Content length: 6183
[2026-03-03 15:17:26] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 15:17:26] [INFO] Processing 28 field mappings
[2026-03-03 15:17:26] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 15:17:26] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 15:17:26] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 15:17:26] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 15:17:26] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 15:17:26] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 15:17:26] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 15:17:26] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 15:17:26] [INFO]   -> Found value: 2026000581
[2026-03-03 15:17:26] [INFO]   -> Set field 'incidentInternalId' = "2026000581"
[2026-03-03 15:17:26] [INFO]   -> Set field 'dispatchRunNumber' = "2026000581"
[2026-03-03 15:17:26] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 15:17:26] [INFO]   -> Found value: MEDICAL CALL
[2026-03-03 15:17:26] [INFO]   -> Set field 'incidentTypeValue1' = "MEDICAL CALL"
[2026-03-03 15:17:26] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 15:17:26] [INFO]   -> Found value: 4335
[2026-03-03 15:17:26] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4335
[2026-03-03 15:17:26] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 15:17:26] [INFO]   -> Found value: TN
[2026-03-03 15:17:26] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 15:17:26] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 15:17:26] [INFO]   -> Found value: 38501
[2026-03-03 15:17:26] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-03 15:17:26] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 15:17:26] [INFO]   -> No value found (null or empty)
[2026-03-03 15:17:26] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 15:17:26] [INFO]   -> No value found (null or empty)
[2026-03-03 15:17:26] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 15:17:26] [INFO]   -> Found value: 36.21309
[2026-03-03 15:17:26] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21309000000000111185727291740477085113525390625
[2026-03-03 15:17:26] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 15:17:26] [INFO]   -> Found value: -85.59000
[2026-03-03 15:17:26] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.590000000000003410605131648480892181396484375
[2026-03-03 15:17:26] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 15:17:26] [INFO]   -> Found value: 2026-03-03 09:13:48
[2026-03-03 15:17:26] [INFO]   -> Set field 'alarm' = "2026-03-03 09:13:48"
[2026-03-03 15:17:26] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 15:17:26] [INFO]   -> Found value: 2026-03-03 09:14:26
[2026-03-03 15:17:26] [INFO]   -> Set field 'dispatched' = "2026-03-03 09:14:26"
[2026-03-03 15:17:26] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 15:17:26] [INFO]   -> Found value: 2026-03-03 09:17:22
[2026-03-03 15:17:26] [INFO]   -> Set field 'enroute' = "2026-03-03 09:17:22"
[2026-03-03 15:17:26] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 15:17:26] [INFO]   -> No value found (null or empty)
[2026-03-03 15:17:26] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 15:17:26] [INFO]   -> No value found (null or empty)
[2026-03-03 15:17:26] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 15:17:26] [INFO]   -> Found value: TULIP LN/WEST POINTE DR
[2026-03-03 15:17:26] [INFO]   -> Set field 'incidentLocationCross' = "TULIP LN\/WEST POINTE DR"
[2026-03-03 15:17:26] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 15:17:26] [INFO]   -> Found value: TK31
[2026-03-03 15:17:26] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-03 15:17:26] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 15:17:26] [INFO]   -> Found value: 2026-03-03 09:17:19
[2026-03-03 15:17:26] [INFO]   -> Set field 'timedispatch' = "2026-03-03 09:17:19"
[2026-03-03 15:17:26] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 15:17:26] [INFO]   -> Found value: 2026-03-03 09:17:22
[2026-03-03 15:17:26] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 09:17:22"
[2026-03-03 15:17:26] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 15:17:26] [INFO]   -> No value found (null or empty)
[2026-03-03 15:17:26] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 15:17:26] [INFO]   -> No value found (null or empty)
[2026-03-03 15:17:26] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 15:17:26] [INFO]   -> No value found (null or empty)
[2026-03-03 15:17:26] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 15:17:26] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 15:17:26] [INFO]   -> Found value: 20260023322
[2026-03-03 15:17:26] [INFO]   -> Set field 'policeReportNumber' = "20260023322"
[2026-03-03 15:17:26] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 15:17:26] [INFO]   -> Found value: Event spawned from MEDICAL ALARM.  [03/03/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03/03...
[2026-03-03 15:17:26] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]"
[2026-03-03 15:17:26] [INFO]   -> Set field 'cADLog' = "Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]"
[2026-03-03 15:17:26] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 15:17:26] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 15:17:26] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 15:17:26] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 15:17:26] [INFO]   -> Found value: CUMBY
[2026-03-03 15:17:26] [INFO]   -> Set field 'streetName' = "CUMBY"
[2026-03-03 15:17:26] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 15:17:26] [INFO]   -> Found value: RD
[2026-03-03 15:17:26] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 15:17:26] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 15:17:26] [INFO]   -> Found value: 4335 CUMBY RD
[2026-03-03 15:17:26] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4335 CUMBY RD"
[2026-03-03 15:17:26] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 15:17:26] [INFO] Concatenating street name and type
[2026-03-03 15:17:26] [INFO]   -> Combined street name: CUMBY RD
[2026-03-03 15:17:26] [INFO] Built locationCoordinates from lat/lng: 36.21309,-85.59
[2026-03-03 15:17:26] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000581","dispatchRunNumber":"2026000581","incidentTypeValue1":"MEDICAL CALL","incidentLocationStreetNumber":4335,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.21309000000000111185727291740477085113525390625,"nERISIncidentLongitude":-85.590000000000003410605131648480892181396484375,"alarm":"2026-03-03 09:13:48","dispatched":"2026-03-03 09:14:26","enroute":"2026-03-03 09:17:22","incidentLocationCross":"TULIP LN\/WEST POINTE DR","cADVehicleID":"TK31","timedispatch":"2026-03-03 09:17:19","timeenroutetoscene":"2026-03-03 09:17:22","policeReportNumber":"20260023322","dispatchNotes":"Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]","cADLog":"Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]","incidentLocationCity":"COOKEVILLE","streetName":"CUMBY RD","incidentAddressTextVersionStreet":"4335 CUMBY RD","locationCoordinates":"36.21309,-85.59"}
[2026-03-03 15:17:26] [INFO] Number of extracted fields: 23
[2026-03-03 15:17:26] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 15:17:26] [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-03 15:17:26] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 15:17:26] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 15:17:26] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 15:17:26] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 15:17: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-03 15:17: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-03 15:17:26] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 15:17:26] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 15:17:26] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 15:17:26] [INFO] Found existing IncidentTypeMapping with ID: 6939328c99c5522d2
[2026-03-03 15:17:26] [INFO] Found existing Dispatch with cADNumber '2026000581', ID: 69a6fad7652254137 - will update instead of create
[2026-03-03 15:17:27] [INFO] Updated existing Dispatches record with ID: 69a6fad7652254137
[2026-03-03 15:17:27] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 15:17:27] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 15:17: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-03 15:17:30] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023322_20260303_151725.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 15:17:30] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 15:17:31] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023322_20260303_151731.XML
[2026-03-03 15:17:31] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023322_20260303_151731.XML for user: 68f1466aed072ad4a
[2026-03-03 15:17:31] [INFO] File size: 6183 bytes
[2026-03-03 15:17:31] [INFO] Created FTPFiles record with ID: 69a6fb8b69f2bfba2
[2026-03-03 15:17:31] [INFO] About to extract fields from XML. File size: 6183 bytes
[2026-03-03 15:17:31] [INFO] Number of mappings: 28
[2026-03-03 15:17:31] [INFO] Starting XML parsing. Content length: 6183
[2026-03-03 15:17:31] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 15:17:31] [INFO] Processing 28 field mappings
[2026-03-03 15:17:31] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 15:17:31] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 15:17:31] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 15:17:31] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 15:17:31] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 15:17:31] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 15:17:31] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 15:17:31] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 15:17:31] [INFO]   -> Found value: 2026000581
[2026-03-03 15:17:31] [INFO]   -> Set field 'incidentInternalId' = "2026000581"
[2026-03-03 15:17:31] [INFO]   -> Set field 'dispatchRunNumber' = "2026000581"
[2026-03-03 15:17:31] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 15:17:31] [INFO]   -> Found value: MEDICAL CALL
[2026-03-03 15:17:31] [INFO]   -> Set field 'incidentTypeValue1' = "MEDICAL CALL"
[2026-03-03 15:17:31] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 15:17:31] [INFO]   -> Found value: 4335
[2026-03-03 15:17:31] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4335
[2026-03-03 15:17:31] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 15:17:31] [INFO]   -> Found value: TN
[2026-03-03 15:17:31] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 15:17:31] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 15:17:31] [INFO]   -> Found value: 38501
[2026-03-03 15:17:31] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-03 15:17:31] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 15:17:31] [INFO]   -> No value found (null or empty)
[2026-03-03 15:17:31] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 15:17:31] [INFO]   -> No value found (null or empty)
[2026-03-03 15:17:31] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 15:17:31] [INFO]   -> Found value: 36.21309
[2026-03-03 15:17:31] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21309000000000111185727291740477085113525390625
[2026-03-03 15:17:31] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 15:17:31] [INFO]   -> Found value: -85.59000
[2026-03-03 15:17:31] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.590000000000003410605131648480892181396484375
[2026-03-03 15:17:31] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 15:17:31] [INFO]   -> Found value: 2026-03-03 09:13:48
[2026-03-03 15:17:31] [INFO]   -> Set field 'alarm' = "2026-03-03 09:13:48"
[2026-03-03 15:17:31] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 15:17:31] [INFO]   -> Found value: 2026-03-03 09:14:26
[2026-03-03 15:17:31] [INFO]   -> Set field 'dispatched' = "2026-03-03 09:14:26"
[2026-03-03 15:17:31] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 15:17:31] [INFO]   -> Found value: 2026-03-03 09:17:22
[2026-03-03 15:17:31] [INFO]   -> Set field 'enroute' = "2026-03-03 09:17:22"
[2026-03-03 15:17:31] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 15:17:31] [INFO]   -> No value found (null or empty)
[2026-03-03 15:17:31] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 15:17:31] [INFO]   -> No value found (null or empty)
[2026-03-03 15:17:31] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 15:17:31] [INFO]   -> Found value: TULIP LN/WEST POINTE DR
[2026-03-03 15:17:31] [INFO]   -> Set field 'incidentLocationCross' = "TULIP LN\/WEST POINTE DR"
[2026-03-03 15:17:31] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 15:17:31] [INFO]   -> Found value: TK31
[2026-03-03 15:17:31] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-03 15:17:31] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 15:17:31] [INFO]   -> Found value: 2026-03-03 09:17:19
[2026-03-03 15:17:31] [INFO]   -> Set field 'timedispatch' = "2026-03-03 09:17:19"
[2026-03-03 15:17:31] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 15:17:31] [INFO]   -> Found value: 2026-03-03 09:17:22
[2026-03-03 15:17:31] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 09:17:22"
[2026-03-03 15:17:31] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 15:17:31] [INFO]   -> No value found (null or empty)
[2026-03-03 15:17:31] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 15:17:31] [INFO]   -> No value found (null or empty)
[2026-03-03 15:17:31] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 15:17:31] [INFO]   -> No value found (null or empty)
[2026-03-03 15:17:31] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 15:17:31] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 15:17:31] [INFO]   -> Found value: 20260023322
[2026-03-03 15:17:31] [INFO]   -> Set field 'policeReportNumber' = "20260023322"
[2026-03-03 15:17:31] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 15:17:31] [INFO]   -> Found value: Event spawned from MEDICAL ALARM.  [03/03/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03/03...
[2026-03-03 15:17:31] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]"
[2026-03-03 15:17:31] [INFO]   -> Set field 'cADLog' = "Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]"
[2026-03-03 15:17:31] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 15:17:31] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 15:17:31] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 15:17:31] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 15:17:31] [INFO]   -> Found value: CUMBY
[2026-03-03 15:17:31] [INFO]   -> Set field 'streetName' = "CUMBY"
[2026-03-03 15:17:31] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 15:17:31] [INFO]   -> Found value: RD
[2026-03-03 15:17:31] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 15:17:31] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 15:17:31] [INFO]   -> Found value: 4335 CUMBY RD
[2026-03-03 15:17:31] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4335 CUMBY RD"
[2026-03-03 15:17:31] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 15:17:31] [INFO] Concatenating street name and type
[2026-03-03 15:17:31] [INFO]   -> Combined street name: CUMBY RD
[2026-03-03 15:17:31] [INFO] Built locationCoordinates from lat/lng: 36.21309,-85.59
[2026-03-03 15:17:31] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000581","dispatchRunNumber":"2026000581","incidentTypeValue1":"MEDICAL CALL","incidentLocationStreetNumber":4335,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.21309000000000111185727291740477085113525390625,"nERISIncidentLongitude":-85.590000000000003410605131648480892181396484375,"alarm":"2026-03-03 09:13:48","dispatched":"2026-03-03 09:14:26","enroute":"2026-03-03 09:17:22","incidentLocationCross":"TULIP LN\/WEST POINTE DR","cADVehicleID":"TK31","timedispatch":"2026-03-03 09:17:19","timeenroutetoscene":"2026-03-03 09:17:22","policeReportNumber":"20260023322","dispatchNotes":"Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]","cADLog":"Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]","incidentLocationCity":"COOKEVILLE","streetName":"CUMBY RD","incidentAddressTextVersionStreet":"4335 CUMBY RD","locationCoordinates":"36.21309,-85.59"}
[2026-03-03 15:17:31] [INFO] Number of extracted fields: 23
[2026-03-03 15:17:31] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 15:17:31] [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-03 15:17:31] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 15:17:31] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 15:17:31] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 15:17:31] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 15:17: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-03 15:17: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-03 15:17:31] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 15:17:31] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 15:17:31] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 15:17:31] [INFO] Found existing IncidentTypeMapping with ID: 6939328c99c5522d2
[2026-03-03 15:17:32] [INFO] Found existing Dispatch with cADNumber '2026000581', ID: 69a6fad7652254137 - will update instead of create
[2026-03-03 15:17:32] [INFO] Updated existing Dispatches record with ID: 69a6fad7652254137
[2026-03-03 15:17:32] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 15:17:32] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 15:17:35] [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-03 15:17:35] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023322_20260303_151731.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 15:17:35] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 16:11:10] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023356_20260303_161110.XML
[2026-03-03 16:11:10] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023356_20260303_161110.XML for user: 68f1466aed072ad4a
[2026-03-03 16:11:10] [INFO] File size: 5273 bytes
[2026-03-03 16:11:11] [INFO] Created FTPFiles record with ID: 69a7081f06f7d4c32
[2026-03-03 16:11:11] [INFO] About to extract fields from XML. File size: 5273 bytes
[2026-03-03 16:11:11] [INFO] Number of mappings: 28
[2026-03-03 16:11:11] [INFO] Starting XML parsing. Content length: 5273
[2026-03-03 16:11:11] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 16:11:11] [INFO] Processing 28 field mappings
[2026-03-03 16:11:11] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 16:11:11] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 16:11:11] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 16:11:11] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 16:11:11] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 16:11:11] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 16:11:11] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 16:11:11] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 16:11:11] [INFO]   -> Found value: 2026000582
[2026-03-03 16:11:11] [INFO]   -> Set field 'incidentInternalId' = "2026000582"
[2026-03-03 16:11:11] [INFO]   -> Set field 'dispatchRunNumber' = "2026000582"
[2026-03-03 16:11:11] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 16:11:11] [INFO]   -> Found value: FALL VICTIM
[2026-03-03 16:11:11] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-03 16:11:11] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 16:11:11] [INFO]   -> Found value: 2803
[2026-03-03 16:11:11] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2803
[2026-03-03 16:11:11] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 16:11:11] [INFO]   -> Found value: TN
[2026-03-03 16:11:11] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 16:11:11] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 16:11:11] [INFO]   -> Found value: 38501
[2026-03-03 16:11:11] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-03 16:11:11] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 16:11:11] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:11] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 16:11:11] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:11] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 16:11:11] [INFO]   -> Found value: 36.21144
[2026-03-03 16:11:11] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21144000000000318095771945081651210784912109375
[2026-03-03 16:11:11] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 16:11:11] [INFO]   -> Found value: -85.58246
[2026-03-03 16:11:11] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.582459999999997535269358195364475250244140625
[2026-03-03 16:11:11] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 16:11:11] [INFO]   -> Found value: 2026-03-03 10:10:06
[2026-03-03 16:11:11] [INFO]   -> Set field 'alarm' = "2026-03-03 10:10:06"
[2026-03-03 16:11:11] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 16:11:11] [INFO]   -> Found value: 2026-03-03 10:11:05
[2026-03-03 16:11:11] [INFO]   -> Set field 'dispatched' = "2026-03-03 10:11:05"
[2026-03-03 16:11:11] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 16:11:11] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:11] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 16:11:11] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:11] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 16:11:11] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:11] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 16:11:11] [INFO]   -> Found value: WINTER HAVEN DR/WHISPERING OAKS LN
[2026-03-03 16:11:11] [INFO]   -> Set field 'incidentLocationCross' = "WINTER HAVEN DR\/WHISPERING OAKS LN"
[2026-03-03 16:11:11] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 16:11:11] [INFO]   -> Found value: PCFR
[2026-03-03 16:11:11] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 16:11:11] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 16:11:11] [INFO]   -> Found value: 2026-03-03 10:11:05
[2026-03-03 16:11:11] [INFO]   -> Set field 'timedispatch' = "2026-03-03 10:11:05"
[2026-03-03 16:11:11] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 16:11:11] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:11] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 16:11:11] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:11] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 16:11:11] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:11] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 16:11:11] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:11] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 16:11:11] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 16:11:11] [INFO]   -> Found value: 20260023356
[2026-03-03 16:11:11] [INFO]   -> Set field 'policeReportNumber' = "20260023356"
[2026-03-03 16:11:11] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 16:11:11] [INFO]   -> Found value: [EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03/03/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM...
[2026-03-03 16:11:11] [INFO]   -> Set field 'dispatchNotes' = "[EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]"
[2026-03-03 16:11:11] [INFO]   -> Set field 'cADLog' = "[EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]"
[2026-03-03 16:11:11] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 16:11:11] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 16:11:11] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 16:11:11] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 16:11:11] [INFO]   -> Found value: AUTUMN WOODS
[2026-03-03 16:11:11] [INFO]   -> Set field 'streetName' = "AUTUMN WOODS"
[2026-03-03 16:11:11] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 16:11:11] [INFO]   -> Found value: TRL
[2026-03-03 16:11:11] [INFO]   -> Set field 'streetType' = "TRL"
[2026-03-03 16:11:11] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 16:11:11] [INFO]   -> Found value: 2803 AUTUMN WOODS TRL
[2026-03-03 16:11:11] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2803 AUTUMN WOODS TRL"
[2026-03-03 16:11:11] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-03 16:11:11] [INFO] Concatenating street name and type
[2026-03-03 16:11:11] [INFO]   -> Combined street name: AUTUMN WOODS TRL
[2026-03-03 16:11:11] [INFO] Built locationCoordinates from lat/lng: 36.21144,-85.58246
[2026-03-03 16:11:11] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000582","dispatchRunNumber":"2026000582","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":2803,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.21144000000000318095771945081651210784912109375,"nERISIncidentLongitude":-85.582459999999997535269358195364475250244140625,"alarm":"2026-03-03 10:10:06","dispatched":"2026-03-03 10:11:05","incidentLocationCross":"WINTER HAVEN DR\/WHISPERING OAKS LN","cADVehicleID":"PCFR","timedispatch":"2026-03-03 10:11:05","policeReportNumber":"20260023356","dispatchNotes":"[EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]","cADLog":"[EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]","incidentLocationCity":"COOKEVILLE","streetName":"AUTUMN WOODS TRL","incidentAddressTextVersionStreet":"2803 AUTUMN WOODS TRL","locationCoordinates":"36.21144,-85.58246"}
[2026-03-03 16:11:11] [INFO] Number of extracted fields: 21
[2026-03-03 16:11:11] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 16:11:11] [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-03 16:11:11] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 16:11:11] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 16:11:11] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 16:11:11] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 16:11:11] [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-03 16:11:11] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-03 16:11:11] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 16:11:11] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 16:11:11] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 16:11:11] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-03 16:11:21] [INFO] Created new Dispatches record with ID: 69a7081fe8c8988c6
[2026-03-03 16:11:21] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 16:11:21] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 16:11: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-03 16:11:24] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023356_20260303_161110.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 16:11:24] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 16:11:24] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023356_20260303_161111.XML
[2026-03-03 16:11:24] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023356_20260303_161111.XML for user: 68f1466aed072ad4a
[2026-03-03 16:11:24] [INFO] File size: 5273 bytes
[2026-03-03 16:11:25] [INFO] Created FTPFiles record with ID: 69a7082d4e6497900
[2026-03-03 16:11:25] [INFO] About to extract fields from XML. File size: 5273 bytes
[2026-03-03 16:11:25] [INFO] Number of mappings: 28
[2026-03-03 16:11:25] [INFO] Starting XML parsing. Content length: 5273
[2026-03-03 16:11:25] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 16:11:25] [INFO] Processing 28 field mappings
[2026-03-03 16:11:25] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 16:11:25] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 16:11:25] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 16:11:25] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 16:11:25] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 16:11:25] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 16:11:25] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 16:11:25] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 16:11:25] [INFO]   -> Found value: 2026000582
[2026-03-03 16:11:25] [INFO]   -> Set field 'incidentInternalId' = "2026000582"
[2026-03-03 16:11:25] [INFO]   -> Set field 'dispatchRunNumber' = "2026000582"
[2026-03-03 16:11:25] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 16:11:25] [INFO]   -> Found value: FALL VICTIM
[2026-03-03 16:11:25] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-03 16:11:25] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 16:11:25] [INFO]   -> Found value: 2803
[2026-03-03 16:11:25] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2803
[2026-03-03 16:11:25] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 16:11:25] [INFO]   -> Found value: TN
[2026-03-03 16:11:25] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 16:11:25] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 16:11:25] [INFO]   -> Found value: 38501
[2026-03-03 16:11:25] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-03 16:11:25] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 16:11:25] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:25] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 16:11:25] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:25] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 16:11:25] [INFO]   -> Found value: 36.21144
[2026-03-03 16:11:25] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21144000000000318095771945081651210784912109375
[2026-03-03 16:11:25] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 16:11:25] [INFO]   -> Found value: -85.58246
[2026-03-03 16:11:25] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.582459999999997535269358195364475250244140625
[2026-03-03 16:11:25] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 16:11:25] [INFO]   -> Found value: 2026-03-03 10:10:06
[2026-03-03 16:11:25] [INFO]   -> Set field 'alarm' = "2026-03-03 10:10:06"
[2026-03-03 16:11:25] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 16:11:25] [INFO]   -> Found value: 2026-03-03 10:11:05
[2026-03-03 16:11:25] [INFO]   -> Set field 'dispatched' = "2026-03-03 10:11:05"
[2026-03-03 16:11:25] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 16:11:25] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:25] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 16:11:25] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:25] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 16:11:25] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:25] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 16:11:25] [INFO]   -> Found value: WINTER HAVEN DR/WHISPERING OAKS LN
[2026-03-03 16:11:25] [INFO]   -> Set field 'incidentLocationCross' = "WINTER HAVEN DR\/WHISPERING OAKS LN"
[2026-03-03 16:11:25] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 16:11:25] [INFO]   -> Found value: PCFR
[2026-03-03 16:11:25] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 16:11:25] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 16:11:25] [INFO]   -> Found value: 2026-03-03 10:11:05
[2026-03-03 16:11:25] [INFO]   -> Set field 'timedispatch' = "2026-03-03 10:11:05"
[2026-03-03 16:11:25] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 16:11:25] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:25] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 16:11:25] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:25] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 16:11:25] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:25] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 16:11:25] [INFO]   -> No value found (null or empty)
[2026-03-03 16:11:25] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 16:11:25] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 16:11:25] [INFO]   -> Found value: 20260023356
[2026-03-03 16:11:25] [INFO]   -> Set field 'policeReportNumber' = "20260023356"
[2026-03-03 16:11:25] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 16:11:25] [INFO]   -> Found value: [EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03/03/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM...
[2026-03-03 16:11:25] [INFO]   -> Set field 'dispatchNotes' = "[EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]"
[2026-03-03 16:11:25] [INFO]   -> Set field 'cADLog' = "[EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]"
[2026-03-03 16:11:25] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 16:11:25] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 16:11:25] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 16:11:25] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 16:11:25] [INFO]   -> Found value: AUTUMN WOODS
[2026-03-03 16:11:25] [INFO]   -> Set field 'streetName' = "AUTUMN WOODS"
[2026-03-03 16:11:25] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 16:11:25] [INFO]   -> Found value: TRL
[2026-03-03 16:11:25] [INFO]   -> Set field 'streetType' = "TRL"
[2026-03-03 16:11:25] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 16:11:25] [INFO]   -> Found value: 2803 AUTUMN WOODS TRL
[2026-03-03 16:11:25] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2803 AUTUMN WOODS TRL"
[2026-03-03 16:11:25] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-03 16:11:25] [INFO] Concatenating street name and type
[2026-03-03 16:11:25] [INFO]   -> Combined street name: AUTUMN WOODS TRL
[2026-03-03 16:11:25] [INFO] Built locationCoordinates from lat/lng: 36.21144,-85.58246
[2026-03-03 16:11:25] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000582","dispatchRunNumber":"2026000582","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":2803,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.21144000000000318095771945081651210784912109375,"nERISIncidentLongitude":-85.582459999999997535269358195364475250244140625,"alarm":"2026-03-03 10:10:06","dispatched":"2026-03-03 10:11:05","incidentLocationCross":"WINTER HAVEN DR\/WHISPERING OAKS LN","cADVehicleID":"PCFR","timedispatch":"2026-03-03 10:11:05","policeReportNumber":"20260023356","dispatchNotes":"[EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]","cADLog":"[EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]","incidentLocationCity":"COOKEVILLE","streetName":"AUTUMN WOODS TRL","incidentAddressTextVersionStreet":"2803 AUTUMN WOODS TRL","locationCoordinates":"36.21144,-85.58246"}
[2026-03-03 16:11:25] [INFO] Number of extracted fields: 21
[2026-03-03 16:11:25] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 16:11:25] [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-03 16:11:25] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 16:11:25] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 16:11:25] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 16:11:25] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 16:11: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-03 16:11: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-03 16:11:25] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 16:11:25] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 16:11:25] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 16:11:25] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-03 16:11:26] [INFO] Found existing Dispatch with cADNumber '2026000582', ID: 69a7081fe8c8988c6 - will update instead of create
[2026-03-03 16:11:26] [INFO] Updated existing Dispatches record with ID: 69a7081fe8c8988c6
[2026-03-03 16:11:26] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 16:11:26] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 16:11: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-03 16:11:29] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023356_20260303_161111.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 16:11:29] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 16:12:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023356_20260303_161246.XML
[2026-03-03 16:12:46] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023356_20260303_161246.XML for user: 68f1466aed072ad4a
[2026-03-03 16:12:46] [INFO] File size: 6137 bytes
[2026-03-03 16:12:46] [INFO] Created FTPFiles record with ID: 69a7087ea49b5b9ef
[2026-03-03 16:12:46] [INFO] About to extract fields from XML. File size: 6137 bytes
[2026-03-03 16:12:46] [INFO] Number of mappings: 28
[2026-03-03 16:12:46] [INFO] Starting XML parsing. Content length: 6137
[2026-03-03 16:12:46] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 16:12:46] [INFO] Processing 28 field mappings
[2026-03-03 16:12:46] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 16:12:46] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 16:12:46] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 16:12:46] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 16:12:46] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 16:12:46] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 16:12:46] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 16:12:46] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 16:12:46] [INFO]   -> Found value: 2026000582
[2026-03-03 16:12:46] [INFO]   -> Set field 'incidentInternalId' = "2026000582"
[2026-03-03 16:12:46] [INFO]   -> Set field 'dispatchRunNumber' = "2026000582"
[2026-03-03 16:12:46] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 16:12:46] [INFO]   -> Found value: FALL VICTIM
[2026-03-03 16:12:46] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-03 16:12:46] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 16:12:46] [INFO]   -> Found value: 2803
[2026-03-03 16:12:46] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2803
[2026-03-03 16:12:46] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 16:12:46] [INFO]   -> Found value: TN
[2026-03-03 16:12:46] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 16:12:46] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 16:12:46] [INFO]   -> Found value: 38501
[2026-03-03 16:12:46] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-03 16:12:46] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 16:12:46] [INFO]   -> No value found (null or empty)
[2026-03-03 16:12:46] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 16:12:46] [INFO]   -> No value found (null or empty)
[2026-03-03 16:12:46] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 16:12:46] [INFO]   -> Found value: 36.21144
[2026-03-03 16:12:46] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21144000000000318095771945081651210784912109375
[2026-03-03 16:12:46] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 16:12:46] [INFO]   -> Found value: -85.58246
[2026-03-03 16:12:46] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.582459999999997535269358195364475250244140625
[2026-03-03 16:12:46] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 16:12:46] [INFO]   -> Found value: 2026-03-03 10:10:06
[2026-03-03 16:12:46] [INFO]   -> Set field 'alarm' = "2026-03-03 10:10:06"
[2026-03-03 16:12:46] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 16:12:46] [INFO]   -> Found value: 2026-03-03 10:11:05
[2026-03-03 16:12:46] [INFO]   -> Set field 'dispatched' = "2026-03-03 10:11:05"
[2026-03-03 16:12:46] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 16:12:46] [INFO]   -> Found value: 2026-03-03 10:12:42
[2026-03-03 16:12:46] [INFO]   -> Set field 'enroute' = "2026-03-03 10:12:42"
[2026-03-03 16:12:46] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 16:12:46] [INFO]   -> No value found (null or empty)
[2026-03-03 16:12:46] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 16:12:46] [INFO]   -> No value found (null or empty)
[2026-03-03 16:12:46] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 16:12:46] [INFO]   -> Found value: WINTER HAVEN DR/WHISPERING OAKS LN
[2026-03-03 16:12:46] [INFO]   -> Set field 'incidentLocationCross' = "WINTER HAVEN DR\/WHISPERING OAKS LN"
[2026-03-03 16:12:46] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 16:12:46] [INFO]   -> Found value: TK31
[2026-03-03 16:12:46] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-03 16:12:46] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 16:12:46] [INFO]   -> Found value: 2026-03-03 10:12:40
[2026-03-03 16:12:46] [INFO]   -> Set field 'timedispatch' = "2026-03-03 10:12:40"
[2026-03-03 16:12:46] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 16:12:46] [INFO]   -> Found value: 2026-03-03 10:12:42
[2026-03-03 16:12:46] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 10:12:42"
[2026-03-03 16:12:46] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 16:12:46] [INFO]   -> No value found (null or empty)
[2026-03-03 16:12:46] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 16:12:46] [INFO]   -> No value found (null or empty)
[2026-03-03 16:12:46] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 16:12:46] [INFO]   -> No value found (null or empty)
[2026-03-03 16:12:46] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 16:12:46] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 16:12:46] [INFO]   -> Found value: 20260023356
[2026-03-03 16:12:46] [INFO]   -> Set field 'policeReportNumber' = "20260023356"
[2026-03-03 16:12:46] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 16:12:46] [INFO]   -> Found value: [EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03/03/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM...
[2026-03-03 16:12:46] [INFO]   -> Set field 'dispatchNotes' = "[EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]"
[2026-03-03 16:12:46] [INFO]   -> Set field 'cADLog' = "[EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]"
[2026-03-03 16:12:46] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 16:12:46] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 16:12:46] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 16:12:46] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 16:12:46] [INFO]   -> Found value: AUTUMN WOODS
[2026-03-03 16:12:46] [INFO]   -> Set field 'streetName' = "AUTUMN WOODS"
[2026-03-03 16:12:46] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 16:12:46] [INFO]   -> Found value: TRL
[2026-03-03 16:12:46] [INFO]   -> Set field 'streetType' = "TRL"
[2026-03-03 16:12:46] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 16:12:46] [INFO]   -> Found value: 2803 AUTUMN WOODS TRL
[2026-03-03 16:12:46] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2803 AUTUMN WOODS TRL"
[2026-03-03 16:12:46] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 16:12:46] [INFO] Concatenating street name and type
[2026-03-03 16:12:46] [INFO]   -> Combined street name: AUTUMN WOODS TRL
[2026-03-03 16:12:46] [INFO] Built locationCoordinates from lat/lng: 36.21144,-85.58246
[2026-03-03 16:12:46] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000582","dispatchRunNumber":"2026000582","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":2803,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.21144000000000318095771945081651210784912109375,"nERISIncidentLongitude":-85.582459999999997535269358195364475250244140625,"alarm":"2026-03-03 10:10:06","dispatched":"2026-03-03 10:11:05","enroute":"2026-03-03 10:12:42","incidentLocationCross":"WINTER HAVEN DR\/WHISPERING OAKS LN","cADVehicleID":"TK31","timedispatch":"2026-03-03 10:12:40","timeenroutetoscene":"2026-03-03 10:12:42","policeReportNumber":"20260023356","dispatchNotes":"[EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]","cADLog":"[EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]","incidentLocationCity":"COOKEVILLE","streetName":"AUTUMN WOODS TRL","incidentAddressTextVersionStreet":"2803 AUTUMN WOODS TRL","locationCoordinates":"36.21144,-85.58246"}
[2026-03-03 16:12:46] [INFO] Number of extracted fields: 23
[2026-03-03 16:12:46] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 16:12:46] [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-03 16:12:46] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 16:12:46] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 16:12:46] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 16:12:46] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 16:12: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-03 16:12: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-03 16:12:47] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 16:12:47] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 16:12:47] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 16:12:48] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-03 16:12:48] [INFO] Found existing Dispatch with cADNumber '2026000582', ID: 69a7081fe8c8988c6 - will update instead of create
[2026-03-03 16:12:48] [INFO] Updated existing Dispatches record with ID: 69a7081fe8c8988c6
[2026-03-03 16:12:48] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 16:12:48] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 16:12: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-03 16:12:52] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023356_20260303_161246.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 16:12:52] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 16:12:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023356_20260303_161251.XML
[2026-03-03 16:12:52] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023356_20260303_161251.XML for user: 68f1466aed072ad4a
[2026-03-03 16:12:52] [INFO] File size: 6137 bytes
[2026-03-03 16:12:52] [INFO] Created FTPFiles record with ID: 69a708847110f3e03
[2026-03-03 16:12:52] [INFO] About to extract fields from XML. File size: 6137 bytes
[2026-03-03 16:12:52] [INFO] Number of mappings: 28
[2026-03-03 16:12:52] [INFO] Starting XML parsing. Content length: 6137
[2026-03-03 16:12:52] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 16:12:52] [INFO] Processing 28 field mappings
[2026-03-03 16:12:52] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 16:12:52] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 16:12:52] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 16:12:52] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 16:12:52] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 16:12:52] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 16:12:52] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 16:12:52] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 16:12:52] [INFO]   -> Found value: 2026000582
[2026-03-03 16:12:52] [INFO]   -> Set field 'incidentInternalId' = "2026000582"
[2026-03-03 16:12:52] [INFO]   -> Set field 'dispatchRunNumber' = "2026000582"
[2026-03-03 16:12:52] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 16:12:52] [INFO]   -> Found value: FALL VICTIM
[2026-03-03 16:12:52] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-03 16:12:52] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 16:12:52] [INFO]   -> Found value: 2803
[2026-03-03 16:12:52] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2803
[2026-03-03 16:12:52] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 16:12:52] [INFO]   -> Found value: TN
[2026-03-03 16:12:52] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 16:12:52] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 16:12:52] [INFO]   -> Found value: 38501
[2026-03-03 16:12:52] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-03 16:12:52] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 16:12:52] [INFO]   -> No value found (null or empty)
[2026-03-03 16:12:52] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 16:12:52] [INFO]   -> No value found (null or empty)
[2026-03-03 16:12:52] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 16:12:52] [INFO]   -> Found value: 36.21144
[2026-03-03 16:12:52] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21144000000000318095771945081651210784912109375
[2026-03-03 16:12:52] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 16:12:52] [INFO]   -> Found value: -85.58246
[2026-03-03 16:12:52] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.582459999999997535269358195364475250244140625
[2026-03-03 16:12:52] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 16:12:52] [INFO]   -> Found value: 2026-03-03 10:10:06
[2026-03-03 16:12:52] [INFO]   -> Set field 'alarm' = "2026-03-03 10:10:06"
[2026-03-03 16:12:52] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 16:12:52] [INFO]   -> Found value: 2026-03-03 10:11:05
[2026-03-03 16:12:52] [INFO]   -> Set field 'dispatched' = "2026-03-03 10:11:05"
[2026-03-03 16:12:52] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 16:12:52] [INFO]   -> Found value: 2026-03-03 10:12:42
[2026-03-03 16:12:52] [INFO]   -> Set field 'enroute' = "2026-03-03 10:12:42"
[2026-03-03 16:12:52] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 16:12:52] [INFO]   -> No value found (null or empty)
[2026-03-03 16:12:52] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 16:12:52] [INFO]   -> No value found (null or empty)
[2026-03-03 16:12:52] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 16:12:52] [INFO]   -> Found value: WINTER HAVEN DR/WHISPERING OAKS LN
[2026-03-03 16:12:52] [INFO]   -> Set field 'incidentLocationCross' = "WINTER HAVEN DR\/WHISPERING OAKS LN"
[2026-03-03 16:12:52] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 16:12:52] [INFO]   -> Found value: TK31
[2026-03-03 16:12:52] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-03 16:12:52] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 16:12:52] [INFO]   -> Found value: 2026-03-03 10:12:40
[2026-03-03 16:12:52] [INFO]   -> Set field 'timedispatch' = "2026-03-03 10:12:40"
[2026-03-03 16:12:52] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 16:12:52] [INFO]   -> Found value: 2026-03-03 10:12:42
[2026-03-03 16:12:52] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 10:12:42"
[2026-03-03 16:12:52] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 16:12:52] [INFO]   -> No value found (null or empty)
[2026-03-03 16:12:52] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 16:12:52] [INFO]   -> No value found (null or empty)
[2026-03-03 16:12:52] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 16:12:52] [INFO]   -> No value found (null or empty)
[2026-03-03 16:12:52] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 16:12:52] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 16:12:52] [INFO]   -> Found value: 20260023356
[2026-03-03 16:12:52] [INFO]   -> Set field 'policeReportNumber' = "20260023356"
[2026-03-03 16:12:52] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 16:12:52] [INFO]   -> Found value: [EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03/03/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM...
[2026-03-03 16:12:52] [INFO]   -> Set field 'dispatchNotes' = "[EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]"
[2026-03-03 16:12:52] [INFO]   -> Set field 'cADLog' = "[EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]"
[2026-03-03 16:12:52] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 16:12:52] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 16:12:52] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 16:12:52] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 16:12:52] [INFO]   -> Found value: AUTUMN WOODS
[2026-03-03 16:12:52] [INFO]   -> Set field 'streetName' = "AUTUMN WOODS"
[2026-03-03 16:12:52] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 16:12:52] [INFO]   -> Found value: TRL
[2026-03-03 16:12:52] [INFO]   -> Set field 'streetType' = "TRL"
[2026-03-03 16:12:52] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 16:12:52] [INFO]   -> Found value: 2803 AUTUMN WOODS TRL
[2026-03-03 16:12:52] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2803 AUTUMN WOODS TRL"
[2026-03-03 16:12:52] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 16:12:52] [INFO] Concatenating street name and type
[2026-03-03 16:12:52] [INFO]   -> Combined street name: AUTUMN WOODS TRL
[2026-03-03 16:12:52] [INFO] Built locationCoordinates from lat/lng: 36.21144,-85.58246
[2026-03-03 16:12:52] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000582","dispatchRunNumber":"2026000582","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":2803,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.21144000000000318095771945081651210784912109375,"nERISIncidentLongitude":-85.582459999999997535269358195364475250244140625,"alarm":"2026-03-03 10:10:06","dispatched":"2026-03-03 10:11:05","enroute":"2026-03-03 10:12:42","incidentLocationCross":"WINTER HAVEN DR\/WHISPERING OAKS LN","cADVehicleID":"TK31","timedispatch":"2026-03-03 10:12:40","timeenroutetoscene":"2026-03-03 10:12:42","policeReportNumber":"20260023356","dispatchNotes":"[EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]","cADLog":"[EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]","incidentLocationCity":"COOKEVILLE","streetName":"AUTUMN WOODS TRL","incidentAddressTextVersionStreet":"2803 AUTUMN WOODS TRL","locationCoordinates":"36.21144,-85.58246"}
[2026-03-03 16:12:52] [INFO] Number of extracted fields: 23
[2026-03-03 16:12:52] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 16:12:52] [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-03 16:12:52] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 16:12:52] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 16:12:52] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 16:12:52] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 16:12: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-03 16:12: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-03 16:12:52] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 16:12:52] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 16:12:52] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 16:12:52] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-03 16:12:53] [INFO] Found existing Dispatch with cADNumber '2026000582', ID: 69a7081fe8c8988c6 - will update instead of create
[2026-03-03 16:12:53] [INFO] Updated existing Dispatches record with ID: 69a7081fe8c8988c6
[2026-03-03 16:12:53] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 16:12:53] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 16:12: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-03 16:12:56] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023356_20260303_161251.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 16:12:56] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 16:28:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023369_20260303_162851.XML
[2026-03-03 16:28:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023369_20260303_162851.XML for user: 68f1466aed072ad4a
[2026-03-03 16:28:51] [INFO] File size: 5212 bytes
[2026-03-03 16:28:51] [INFO] Created FTPFiles record with ID: 69a70c43bcb235543
[2026-03-03 16:28:51] [INFO] About to extract fields from XML. File size: 5212 bytes
[2026-03-03 16:28:51] [INFO] Number of mappings: 28
[2026-03-03 16:28:51] [INFO] Starting XML parsing. Content length: 5212
[2026-03-03 16:28:51] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 16:28:51] [INFO] Processing 28 field mappings
[2026-03-03 16:28:51] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 16:28:51] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 16:28:51] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 16:28:51] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 16:28:51] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 16:28:51] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 16:28:51] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 16:28:51] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 16:28:51] [INFO]   -> Found value: 2026000583
[2026-03-03 16:28:51] [INFO]   -> Set field 'incidentInternalId' = "2026000583"
[2026-03-03 16:28:51] [INFO]   -> Set field 'dispatchRunNumber' = "2026000583"
[2026-03-03 16:28:51] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 16:28:51] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 16:28:51] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 16:28:51] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 16:28:51] [INFO]   -> Found value: 2675
[2026-03-03 16:28:51] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2675
[2026-03-03 16:28:51] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 16:28:51] [INFO]   -> Found value: TN
[2026-03-03 16:28:51] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 16:28:51] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 16:28:51] [INFO]   -> Found value: 38506
[2026-03-03 16:28:51] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 16:28:51] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 16:28:51] [INFO]   -> Found value: 2675 CLOVERDALE
[2026-03-03 16:28:51] [INFO]   -> Set field 'businessName' = "2675 CLOVERDALE"
[2026-03-03 16:28:51] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 16:28:51] [INFO]   -> No value found (null or empty)
[2026-03-03 16:28:51] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 16:28:51] [INFO]   -> Found value: 36.11796
[2026-03-03 16:28:51] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1179599999999965120878187008202075958251953125
[2026-03-03 16:28:51] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 16:28:51] [INFO]   -> Found value: -85.55356
[2026-03-03 16:28:51] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.55356000000000449290382675826549530029296875
[2026-03-03 16:28:51] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 16:28:51] [INFO]   -> Found value: 2026-03-03 10:28:08
[2026-03-03 16:28:51] [INFO]   -> Set field 'alarm' = "2026-03-03 10:28:08"
[2026-03-03 16:28:51] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 16:28:51] [INFO]   -> Found value: 2026-03-03 10:28:48
[2026-03-03 16:28:51] [INFO]   -> Set field 'dispatched' = "2026-03-03 10:28:48"
[2026-03-03 16:28:51] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 16:28:51] [INFO]   -> No value found (null or empty)
[2026-03-03 16:28:51] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 16:28:51] [INFO]   -> No value found (null or empty)
[2026-03-03 16:28:51] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 16:28:51] [INFO]   -> No value found (null or empty)
[2026-03-03 16:28:51] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 16:28:51] [INFO]   -> Found value: OAKHURST CIR/SKYMONT DR
[2026-03-03 16:28:51] [INFO]   -> Set field 'incidentLocationCross' = "OAKHURST CIR\/SKYMONT DR"
[2026-03-03 16:28:51] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 16:28:51] [INFO]   -> Found value: PCFR
[2026-03-03 16:28:51] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 16:28:51] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 16:28:51] [INFO]   -> Found value: 2026-03-03 10:28:48
[2026-03-03 16:28:51] [INFO]   -> Set field 'timedispatch' = "2026-03-03 10:28:48"
[2026-03-03 16:28:51] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 16:28:51] [INFO]   -> No value found (null or empty)
[2026-03-03 16:28:51] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 16:28:51] [INFO]   -> No value found (null or empty)
[2026-03-03 16:28:51] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 16:28:51] [INFO]   -> No value found (null or empty)
[2026-03-03 16:28:51] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 16:28:51] [INFO]   -> No value found (null or empty)
[2026-03-03 16:28:51] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 16:28:51] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 16:28:51] [INFO]   -> Found value: 20260023369
[2026-03-03 16:28:51] [INFO]   -> Set field 'policeReportNumber' = "20260023369"
[2026-03-03 16:28:51] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 16:28:51] [INFO]   -> Found value: Event spawned from BREATHING PROBLEMS.  [03/03/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH ...
[2026-03-03 16:28:51] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]"
[2026-03-03 16:28:51] [INFO]   -> Set field 'cADLog' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]"
[2026-03-03 16:28:51] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 16:28:51] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 16:28:51] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 16:28:51] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 16:28:51] [INFO]   -> Found value: CLOVERDALE
[2026-03-03 16:28:51] [INFO]   -> Set field 'streetName' = "CLOVERDALE"
[2026-03-03 16:28:51] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 16:28:51] [INFO]   -> Found value: DR
[2026-03-03 16:28:51] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-03 16:28:51] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 16:28:51] [INFO]   -> Found value: 2675 CLOVERDALE DR
[2026-03-03 16:28:51] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2675 CLOVERDALE DR"
[2026-03-03 16:28:51] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-03 16:28:51] [INFO] Concatenating street name and type
[2026-03-03 16:28:51] [INFO]   -> Combined street name: CLOVERDALE DR
[2026-03-03 16:28:51] [INFO] Built locationCoordinates from lat/lng: 36.11796,-85.55356
[2026-03-03 16:28:51] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000583","dispatchRunNumber":"2026000583","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":2675,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"2675 CLOVERDALE","nERISIncidentLatitude":36.1179599999999965120878187008202075958251953125,"nERISIncidentLongitude":-85.55356000000000449290382675826549530029296875,"alarm":"2026-03-03 10:28:08","dispatched":"2026-03-03 10:28:48","incidentLocationCross":"OAKHURST CIR\/SKYMONT DR","cADVehicleID":"PCFR","timedispatch":"2026-03-03 10:28:48","policeReportNumber":"20260023369","dispatchNotes":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]","cADLog":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]","incidentLocationCity":"COOKEVILLE","streetName":"CLOVERDALE DR","incidentAddressTextVersionStreet":"2675 CLOVERDALE DR","locationCoordinates":"36.11796,-85.55356"}
[2026-03-03 16:28:51] [INFO] Number of extracted fields: 22
[2026-03-03 16:28:51] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 16:28:51] [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-03 16:28:51] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 16:28:51] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 16:28:51] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 16:28:51] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 16:28: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-03 16:28: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-03 16:28:52] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 16:28:52] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 16:28:52] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 16:28:52] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-03 16:29:02] [INFO] Created new Dispatches record with ID: 69a70c44a89d6fe72
[2026-03-03 16:29:02] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 16:29:02] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 16:29: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-03 16:29:05] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023369_20260303_162851.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 16:29:05] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 16:30:36] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023369_20260303_163036.XML
[2026-03-03 16:30:36] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023369_20260303_163036.XML for user: 68f1466aed072ad4a
[2026-03-03 16:30:36] [INFO] File size: 6032 bytes
[2026-03-03 16:30:36] [INFO] Created FTPFiles record with ID: 69a70cacbb97fed68
[2026-03-03 16:30:36] [INFO] About to extract fields from XML. File size: 6032 bytes
[2026-03-03 16:30:36] [INFO] Number of mappings: 28
[2026-03-03 16:30:36] [INFO] Starting XML parsing. Content length: 6032
[2026-03-03 16:30:36] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 16:30:36] [INFO] Processing 28 field mappings
[2026-03-03 16:30:36] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 16:30:36] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 16:30:36] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 16:30:36] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 16:30:36] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 16:30:36] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 16:30:36] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 16:30:36] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 16:30:36] [INFO]   -> Found value: 2026000583
[2026-03-03 16:30:36] [INFO]   -> Set field 'incidentInternalId' = "2026000583"
[2026-03-03 16:30:36] [INFO]   -> Set field 'dispatchRunNumber' = "2026000583"
[2026-03-03 16:30:36] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 16:30:36] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 16:30:36] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 16:30:36] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 16:30:36] [INFO]   -> Found value: 2675
[2026-03-03 16:30:36] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2675
[2026-03-03 16:30:36] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 16:30:36] [INFO]   -> Found value: TN
[2026-03-03 16:30:36] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 16:30:36] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 16:30:36] [INFO]   -> Found value: 38506
[2026-03-03 16:30:36] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 16:30:36] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 16:30:36] [INFO]   -> Found value: 2675 CLOVERDALE
[2026-03-03 16:30:36] [INFO]   -> Set field 'businessName' = "2675 CLOVERDALE"
[2026-03-03 16:30:36] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 16:30:36] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:36] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 16:30:36] [INFO]   -> Found value: 36.11796
[2026-03-03 16:30:36] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1179599999999965120878187008202075958251953125
[2026-03-03 16:30:36] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 16:30:36] [INFO]   -> Found value: -85.55356
[2026-03-03 16:30:36] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.55356000000000449290382675826549530029296875
[2026-03-03 16:30:36] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 16:30:36] [INFO]   -> Found value: 2026-03-03 10:28:08
[2026-03-03 16:30:36] [INFO]   -> Set field 'alarm' = "2026-03-03 10:28:08"
[2026-03-03 16:30:36] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 16:30:36] [INFO]   -> Found value: 2026-03-03 10:28:48
[2026-03-03 16:30:36] [INFO]   -> Set field 'dispatched' = "2026-03-03 10:28:48"
[2026-03-03 16:30:36] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 16:30:36] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:36] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 16:30:36] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:36] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 16:30:36] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:36] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 16:30:36] [INFO]   -> Found value: OAKHURST CIR/SKYMONT DR
[2026-03-03 16:30:36] [INFO]   -> Set field 'incidentLocationCross' = "OAKHURST CIR\/SKYMONT DR"
[2026-03-03 16:30:36] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 16:30:36] [INFO]   -> Found value: PCFR
[2026-03-03 16:30:36] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 16:30:36] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 16:30:36] [INFO]   -> Found value: 2026-03-03 10:28:48
[2026-03-03 16:30:36] [INFO]   -> Set field 'timedispatch' = "2026-03-03 10:28:48"
[2026-03-03 16:30:36] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 16:30:36] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:36] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 16:30:36] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:36] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 16:30:36] [INFO]   -> Found value: 2026-03-03 10:30:33
[2026-03-03 16:30:36] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 10:30:33"
[2026-03-03 16:30:36] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 16:30:36] [INFO]   -> Found value: 2026-03-03 10:30:33
[2026-03-03 16:30:36] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-03 10:30:33"
[2026-03-03 16:30:36] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 16:30:36] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 16:30:36] [INFO]   -> Found value: 20260023369
[2026-03-03 16:30:36] [INFO]   -> Set field 'policeReportNumber' = "20260023369"
[2026-03-03 16:30:36] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 16:30:36] [INFO]   -> Found value: Event spawned from BREATHING PROBLEMS.  [03/03/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH ...
[2026-03-03 16:30:36] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]"
[2026-03-03 16:30:36] [INFO]   -> Set field 'cADLog' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]"
[2026-03-03 16:30:36] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 16:30:36] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 16:30:36] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 16:30:36] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 16:30:36] [INFO]   -> Found value: CLOVERDALE
[2026-03-03 16:30:36] [INFO]   -> Set field 'streetName' = "CLOVERDALE"
[2026-03-03 16:30:36] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 16:30:36] [INFO]   -> Found value: DR
[2026-03-03 16:30:36] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-03 16:30:36] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 16:30:36] [INFO]   -> Found value: 2675 CLOVERDALE DR
[2026-03-03 16:30:36] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2675 CLOVERDALE DR"
[2026-03-03 16:30:36] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-03 16:30:36] [INFO] Concatenating street name and type
[2026-03-03 16:30:36] [INFO]   -> Combined street name: CLOVERDALE DR
[2026-03-03 16:30:36] [INFO] Built locationCoordinates from lat/lng: 36.11796,-85.55356
[2026-03-03 16:30:36] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000583","dispatchRunNumber":"2026000583","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":2675,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"2675 CLOVERDALE","nERISIncidentLatitude":36.1179599999999965120878187008202075958251953125,"nERISIncidentLongitude":-85.55356000000000449290382675826549530029296875,"alarm":"2026-03-03 10:28:08","dispatched":"2026-03-03 10:28:48","incidentLocationCross":"OAKHURST CIR\/SKYMONT DR","cADVehicleID":"PCFR","timedispatch":"2026-03-03 10:28:48","timeunitclear":"2026-03-03 10:30:33","timecanceledenroute":"2026-03-03 10:30:33","policeReportNumber":"20260023369","dispatchNotes":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]","cADLog":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]","incidentLocationCity":"COOKEVILLE","streetName":"CLOVERDALE DR","incidentAddressTextVersionStreet":"2675 CLOVERDALE DR","locationCoordinates":"36.11796,-85.55356"}
[2026-03-03 16:30:36] [INFO] Number of extracted fields: 24
[2026-03-03 16:30:36] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 16:30:36] [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-03 16:30:36] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 16:30:36] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 16:30:36] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 16:30:36] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 16:30: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-03 16:30: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-03 16:30:37] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 16:30:37] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 16:30:37] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 16:30:37] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-03 16:30:37] [INFO] Found existing Dispatch with cADNumber '2026000583', ID: 69a70c44a89d6fe72 - will update instead of create
[2026-03-03 16:30:37] [INFO] Updated existing Dispatches record with ID: 69a70c44a89d6fe72
[2026-03-03 16:30:37] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 16:30:37] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 16:30: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-03 16:30:41] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023369_20260303_163036.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 16:30:41] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 16:30:41] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023369_20260303_163040.XML
[2026-03-03 16:30:41] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023369_20260303_163040.XML for user: 68f1466aed072ad4a
[2026-03-03 16:30:41] [INFO] File size: 6099 bytes
[2026-03-03 16:30:41] [INFO] Created FTPFiles record with ID: 69a70cb1eab46c34f
[2026-03-03 16:30:41] [INFO] About to extract fields from XML. File size: 6099 bytes
[2026-03-03 16:30:41] [INFO] Number of mappings: 28
[2026-03-03 16:30:41] [INFO] Starting XML parsing. Content length: 6099
[2026-03-03 16:30:41] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 16:30:41] [INFO] Processing 28 field mappings
[2026-03-03 16:30:41] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 16:30:41] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 16:30:41] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 16:30:41] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 16:30:41] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 16:30:41] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 16:30:41] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 16:30:41] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 16:30:41] [INFO]   -> Found value: 2026000583
[2026-03-03 16:30:41] [INFO]   -> Set field 'incidentInternalId' = "2026000583"
[2026-03-03 16:30:41] [INFO]   -> Set field 'dispatchRunNumber' = "2026000583"
[2026-03-03 16:30:41] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 16:30:41] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 16:30:41] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 16:30:41] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 16:30:41] [INFO]   -> Found value: 2675
[2026-03-03 16:30:41] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2675
[2026-03-03 16:30:41] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 16:30:41] [INFO]   -> Found value: TN
[2026-03-03 16:30:41] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 16:30:41] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 16:30:41] [INFO]   -> Found value: 38506
[2026-03-03 16:30:41] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 16:30:41] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 16:30:41] [INFO]   -> Found value: 2675 CLOVERDALE
[2026-03-03 16:30:41] [INFO]   -> Set field 'businessName' = "2675 CLOVERDALE"
[2026-03-03 16:30:41] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 16:30:41] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:41] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 16:30:41] [INFO]   -> Found value: 36.11796
[2026-03-03 16:30:41] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1179599999999965120878187008202075958251953125
[2026-03-03 16:30:41] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 16:30:41] [INFO]   -> Found value: -85.55356
[2026-03-03 16:30:41] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.55356000000000449290382675826549530029296875
[2026-03-03 16:30:41] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 16:30:41] [INFO]   -> Found value: 2026-03-03 10:28:08
[2026-03-03 16:30:41] [INFO]   -> Set field 'alarm' = "2026-03-03 10:28:08"
[2026-03-03 16:30:41] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 16:30:41] [INFO]   -> Found value: 2026-03-03 10:28:48
[2026-03-03 16:30:41] [INFO]   -> Set field 'dispatched' = "2026-03-03 10:28:48"
[2026-03-03 16:30:41] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 16:30:41] [INFO]   -> Found value: 2026-03-03 10:30:35
[2026-03-03 16:30:41] [INFO]   -> Set field 'enroute' = "2026-03-03 10:30:35"
[2026-03-03 16:30:41] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 16:30:41] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:41] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 16:30:41] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:41] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 16:30:41] [INFO]   -> Found value: OAKHURST CIR/SKYMONT DR
[2026-03-03 16:30:41] [INFO]   -> Set field 'incidentLocationCross' = "OAKHURST CIR\/SKYMONT DR"
[2026-03-03 16:30:41] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 16:30:41] [INFO]   -> Found value: TK13
[2026-03-03 16:30:41] [INFO]   -> Set field 'cADVehicleID' = "TK13"
[2026-03-03 16:30:41] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 16:30:41] [INFO]   -> Found value: 2026-03-03 10:30:33
[2026-03-03 16:30:41] [INFO]   -> Set field 'timedispatch' = "2026-03-03 10:30:33"
[2026-03-03 16:30:41] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 16:30:41] [INFO]   -> Found value: 2026-03-03 10:30:35
[2026-03-03 16:30:41] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 10:30:35"
[2026-03-03 16:30:41] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 16:30:41] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:41] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 16:30:41] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:41] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 16:30:41] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:41] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 16:30:41] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 16:30:41] [INFO]   -> Found value: 20260023369
[2026-03-03 16:30:41] [INFO]   -> Set field 'policeReportNumber' = "20260023369"
[2026-03-03 16:30:41] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 16:30:41] [INFO]   -> Found value: Event spawned from BREATHING PROBLEMS.  [03/03/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH ...
[2026-03-03 16:30:41] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]"
[2026-03-03 16:30:41] [INFO]   -> Set field 'cADLog' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]"
[2026-03-03 16:30:41] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 16:30:41] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 16:30:41] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 16:30:41] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 16:30:41] [INFO]   -> Found value: CLOVERDALE
[2026-03-03 16:30:41] [INFO]   -> Set field 'streetName' = "CLOVERDALE"
[2026-03-03 16:30:41] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 16:30:41] [INFO]   -> Found value: DR
[2026-03-03 16:30:41] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-03 16:30:41] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 16:30:41] [INFO]   -> Found value: 2675 CLOVERDALE DR
[2026-03-03 16:30:41] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2675 CLOVERDALE DR"
[2026-03-03 16:30:41] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-03 16:30:41] [INFO] Concatenating street name and type
[2026-03-03 16:30:41] [INFO]   -> Combined street name: CLOVERDALE DR
[2026-03-03 16:30:41] [INFO] Built locationCoordinates from lat/lng: 36.11796,-85.55356
[2026-03-03 16:30:41] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000583","dispatchRunNumber":"2026000583","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":2675,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"2675 CLOVERDALE","nERISIncidentLatitude":36.1179599999999965120878187008202075958251953125,"nERISIncidentLongitude":-85.55356000000000449290382675826549530029296875,"alarm":"2026-03-03 10:28:08","dispatched":"2026-03-03 10:28:48","enroute":"2026-03-03 10:30:35","incidentLocationCross":"OAKHURST CIR\/SKYMONT DR","cADVehicleID":"TK13","timedispatch":"2026-03-03 10:30:33","timeenroutetoscene":"2026-03-03 10:30:35","policeReportNumber":"20260023369","dispatchNotes":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]","cADLog":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]","incidentLocationCity":"COOKEVILLE","streetName":"CLOVERDALE DR","incidentAddressTextVersionStreet":"2675 CLOVERDALE DR","locationCoordinates":"36.11796,-85.55356"}
[2026-03-03 16:30:41] [INFO] Number of extracted fields: 24
[2026-03-03 16:30:41] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 16:30:41] [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-03 16:30:41] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 16:30:41] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 16:30:42] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 16:30:42] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 16:30: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-03 16:30: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-03 16:30:42] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 16:30:42] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 16:30:42] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 16:30:42] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-03 16:30:42] [INFO] Found existing Dispatch with cADNumber '2026000583', ID: 69a70c44a89d6fe72 - will update instead of create
[2026-03-03 16:30:42] [INFO] Updated existing Dispatches record with ID: 69a70c44a89d6fe72
[2026-03-03 16:30:42] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 16:30:42] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 16:30: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-03 16:30:46] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023369_20260303_163040.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 16:30:46] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 16:30:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023369_20260303_163041.XML
[2026-03-03 16:30:46] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023369_20260303_163041.XML for user: 68f1466aed072ad4a
[2026-03-03 16:30:46] [INFO] File size: 6099 bytes
[2026-03-03 16:30:46] [INFO] Created FTPFiles record with ID: 69a70cb6b989b5d6a
[2026-03-03 16:30:46] [INFO] About to extract fields from XML. File size: 6099 bytes
[2026-03-03 16:30:46] [INFO] Number of mappings: 28
[2026-03-03 16:30:46] [INFO] Starting XML parsing. Content length: 6099
[2026-03-03 16:30:46] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 16:30:46] [INFO] Processing 28 field mappings
[2026-03-03 16:30:46] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 16:30:46] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 16:30:46] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 16:30:46] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 16:30:46] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-03 16:30:46] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-03 16:30:46] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 16:30:46] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 16:30:46] [INFO]   -> Found value: 2026000583
[2026-03-03 16:30:46] [INFO]   -> Set field 'incidentInternalId' = "2026000583"
[2026-03-03 16:30:46] [INFO]   -> Set field 'dispatchRunNumber' = "2026000583"
[2026-03-03 16:30:46] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 16:30:46] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 16:30:46] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 16:30:46] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 16:30:46] [INFO]   -> Found value: 2675
[2026-03-03 16:30:46] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2675
[2026-03-03 16:30:46] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 16:30:46] [INFO]   -> Found value: TN
[2026-03-03 16:30:46] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 16:30:46] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 16:30:46] [INFO]   -> Found value: 38506
[2026-03-03 16:30:46] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 16:30:46] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 16:30:46] [INFO]   -> Found value: 2675 CLOVERDALE
[2026-03-03 16:30:46] [INFO]   -> Set field 'businessName' = "2675 CLOVERDALE"
[2026-03-03 16:30:46] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 16:30:46] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:46] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 16:30:46] [INFO]   -> Found value: 36.11796
[2026-03-03 16:30:46] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1179599999999965120878187008202075958251953125
[2026-03-03 16:30:46] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 16:30:46] [INFO]   -> Found value: -85.55356
[2026-03-03 16:30:46] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.55356000000000449290382675826549530029296875
[2026-03-03 16:30:46] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 16:30:46] [INFO]   -> Found value: 2026-03-03 10:28:08
[2026-03-03 16:30:46] [INFO]   -> Set field 'alarm' = "2026-03-03 10:28:08"
[2026-03-03 16:30:46] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 16:30:46] [INFO]   -> Found value: 2026-03-03 10:28:48
[2026-03-03 16:30:46] [INFO]   -> Set field 'dispatched' = "2026-03-03 10:28:48"
[2026-03-03 16:30:46] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 16:30:46] [INFO]   -> Found value: 2026-03-03 10:30:35
[2026-03-03 16:30:46] [INFO]   -> Set field 'enroute' = "2026-03-03 10:30:35"
[2026-03-03 16:30:46] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 16:30:46] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:46] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 16:30:46] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:46] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 16:30:46] [INFO]   -> Found value: OAKHURST CIR/SKYMONT DR
[2026-03-03 16:30:46] [INFO]   -> Set field 'incidentLocationCross' = "OAKHURST CIR\/SKYMONT DR"
[2026-03-03 16:30:46] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 16:30:46] [INFO]   -> Found value: TK13
[2026-03-03 16:30:46] [INFO]   -> Set field 'cADVehicleID' = "TK13"
[2026-03-03 16:30:46] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 16:30:46] [INFO]   -> Found value: 2026-03-03 10:30:33
[2026-03-03 16:30:46] [INFO]   -> Set field 'timedispatch' = "2026-03-03 10:30:33"
[2026-03-03 16:30:46] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 16:30:46] [INFO]   -> Found value: 2026-03-03 10:30:35
[2026-03-03 16:30:46] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 10:30:35"
[2026-03-03 16:30:46] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 16:30:46] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:46] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 16:30:46] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:46] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 16:30:46] [INFO]   -> No value found (null or empty)
[2026-03-03 16:30:46] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 16:30:46] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 16:30:46] [INFO]   -> Found value: 20260023369
[2026-03-03 16:30:46] [INFO]   -> Set field 'policeReportNumber' = "20260023369"
[2026-03-03 16:30:46] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 16:30:46] [INFO]   -> Found value: Event spawned from BREATHING PROBLEMS.  [03/03/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH ...
[2026-03-03 16:30:46] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]"
[2026-03-03 16:30:46] [INFO]   -> Set field 'cADLog' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]"
[2026-03-03 16:30:46] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 16:30:46] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 16:30:46] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 16:30:46] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 16:30:46] [INFO]   -> Found value: CLOVERDALE
[2026-03-03 16:30:46] [INFO]   -> Set field 'streetName' = "CLOVERDALE"
[2026-03-03 16:30:46] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 16:30:46] [INFO]   -> Found value: DR
[2026-03-03 16:30:46] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-03 16:30:46] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 16:30:46] [INFO]   -> Found value: 2675 CLOVERDALE DR
[2026-03-03 16:30:46] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2675 CLOVERDALE DR"
[2026-03-03 16:30:46] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-03 16:30:46] [INFO] Concatenating street name and type
[2026-03-03 16:30:46] [INFO]   -> Combined street name: CLOVERDALE DR
[2026-03-03 16:30:46] [INFO] Built locationCoordinates from lat/lng: 36.11796,-85.55356
[2026-03-03 16:30:46] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000583","dispatchRunNumber":"2026000583","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":2675,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"2675 CLOVERDALE","nERISIncidentLatitude":36.1179599999999965120878187008202075958251953125,"nERISIncidentLongitude":-85.55356000000000449290382675826549530029296875,"alarm":"2026-03-03 10:28:08","dispatched":"2026-03-03 10:28:48","enroute":"2026-03-03 10:30:35","incidentLocationCross":"OAKHURST CIR\/SKYMONT DR","cADVehicleID":"TK13","timedispatch":"2026-03-03 10:30:33","timeenroutetoscene":"2026-03-03 10:30:35","policeReportNumber":"20260023369","dispatchNotes":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]","cADLog":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]","incidentLocationCity":"COOKEVILLE","streetName":"CLOVERDALE DR","incidentAddressTextVersionStreet":"2675 CLOVERDALE DR","locationCoordinates":"36.11796,-85.55356"}
[2026-03-03 16:30:46] [INFO] Number of extracted fields: 24
[2026-03-03 16:30:46] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-03 16:30:46] [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-03 16:30:46] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-03 16:30:46] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 16:30:46] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 16:30:46] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-03 16:30: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-03 16:30: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-03 16:30:47] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 16:30:47] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 16:30:47] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 16:30:47] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-03 16:30:47] [INFO] Found existing Dispatch with cADNumber '2026000583', ID: 69a70c44a89d6fe72 - will update instead of create
[2026-03-03 16:30:47] [INFO] Updated existing Dispatches record with ID: 69a70c44a89d6fe72
[2026-03-03 16:30:47] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 16:30:47] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 16:30: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-03 16:30:51] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023369_20260303_163041.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 16:30:51] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:07:39] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021936_20260303_180739.XML
[2026-03-03 18:07:39] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021936_20260303_180739.XML for user: 68f1466aed072ad4a
[2026-03-03 18:07:39] [INFO] File size: 7178 bytes
[2026-03-03 18:07:39] [INFO] Created FTPFiles record with ID: 69a7236b62fa3baea
[2026-03-03 18:07:39] [INFO] About to extract fields from XML. File size: 7178 bytes
[2026-03-03 18:07:39] [INFO] Number of mappings: 28
[2026-03-03 18:07:39] [INFO] Starting XML parsing. Content length: 7178
[2026-03-03 18:07:39] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:07:39] [INFO] Processing 28 field mappings
[2026-03-03 18:07:39] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:07:39] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:07:39] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 18:07:39] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 18:07:39] [INFO]   -> Found value: BFD
PCSO
BPD
[2026-03-03 18:07:39] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nPCSO\nBPD"
[2026-03-03 18:07:39] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:07:39] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 18:07:39] [INFO]   -> Found value: 2026000069
[2026-03-03 18:07:39] [INFO]   -> Set field 'incidentInternalId' = "2026000069"
[2026-03-03 18:07:39] [INFO]   -> Set field 'dispatchRunNumber' = "2026000069"
[2026-03-03 18:07:39] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:07:39] [INFO]   -> Found value: HAZARDOUS MATERIALS INCIDENT
[2026-03-03 18:07:39] [INFO]   -> Set field 'incidentTypeValue1' = "HAZARDOUS MATERIALS INCIDENT"
[2026-03-03 18:07:39] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:07:39] [INFO]   -> Found value: 110
[2026-03-03 18:07:39] [INFO]   -> Set field 'incidentLocationStreetNumber' = 110
[2026-03-03 18:07:39] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:07:39] [INFO]   -> Found value: TN
[2026-03-03 18:07:39] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:07:39] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:07:39] [INFO]   -> Found value: 38544
[2026-03-03 18:07:39] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-03 18:07:39] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:07:39] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:39] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:07:39] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:39] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:07:39] [INFO]   -> Found value: 36.13976
[2026-03-03 18:07:39] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.13976000000000254885890171863138675689697265625
[2026-03-03 18:07:39] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:07:39] [INFO]   -> Found value: -85.63028
[2026-03-03 18:07:39] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.630279999999999063220457173883914947509765625
[2026-03-03 18:07:39] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:07:39] [INFO]   -> Found value: 2026-02-27 14:42:00
[2026-03-03 18:07:39] [INFO]   -> Set field 'alarm' = "2026-02-27 14:42:00"
[2026-03-03 18:07:39] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:07:39] [INFO]   -> Found value: 2026-02-27 14:43:44
[2026-03-03 18:07:39] [INFO]   -> Set field 'dispatched' = "2026-02-27 14:43:44"
[2026-03-03 18:07:39] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:07:39] [INFO]   -> Found value: 2026-02-27 14:44:18
[2026-03-03 18:07:39] [INFO]   -> Set field 'enroute' = "2026-02-27 14:44:18"
[2026-03-03 18:07:39] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:07:39] [INFO]   -> Found value: 2026-02-27 14:49:41
[2026-03-03 18:07:39] [INFO]   -> Set field 'onScene' = "2026-02-27 14:49:41"
[2026-03-03 18:07:39] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:07:39] [INFO]   -> Found value: 2026-02-27 15:39:14
[2026-03-03 18:07:39] [INFO]   -> Set field 'cleared' = "2026-02-27 15:39:14"
[2026-03-03 18:07:39] [INFO]   -> Set field 'inService' = "2026-02-27 15:39:14"
[2026-03-03 18:07:39] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:07:39] [INFO]   -> Found value: FIRST AVE S
[2026-03-03 18:07:39] [INFO]   -> Set field 'incidentLocationCross' = "FIRST AVE S"
[2026-03-03 18:07:39] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:07:39] [INFO]   -> Found value: B1100
[2026-03-03 18:07:39] [INFO]   -> Set field 'cADVehicleID' = "B1100"
[2026-03-03 18:07:39] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:07:39] [INFO]   -> Found value: 2026-02-27 14:45:31
[2026-03-03 18:07:39] [INFO]   -> Set field 'timedispatch' = "2026-02-27 14:45:31"
[2026-03-03 18:07:39] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:07:39] [INFO]   -> Found value: 2026-02-27 14:45:31
[2026-03-03 18:07:39] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 14:45:31"
[2026-03-03 18:07:39] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:07:39] [INFO]   -> Found value: 2026-02-27 14:49:41
[2026-03-03 18:07:39] [INFO]   -> Set field 'timeonscene' = "2026-02-27 14:49:41"
[2026-03-03 18:07:39] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:07:39] [INFO]   -> Found value: 2026-02-27 15:39:14
[2026-03-03 18:07:39] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 15:39:14"
[2026-03-03 18:07:39] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:07:39] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:39] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:07:39] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 18:07:39] [INFO]   -> Found value: 20260021936
[2026-03-03 18:07:39] [INFO]   -> Set field 'policeReportNumber' = "20260021936"
[2026-03-03 18:07:39] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:07:39] [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-03 18:07:39] [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-03 18:07:39] [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-03 18:07:39] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:07:39] [INFO]   -> Found value: BAXTER
[2026-03-03 18:07:39] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-03 18:07:39] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:07:39] [INFO]   -> Found value: FAST
[2026-03-03 18:07:39] [INFO]   -> Set field 'streetName' = "FAST"
[2026-03-03 18:07:39] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:07:39] [INFO]   -> Found value: LN
[2026-03-03 18:07:39] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-03 18:07:39] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:07:39] [INFO]   -> Found value: 110 FAST LN
[2026-03-03 18:07:39] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "110 FAST LN"
[2026-03-03 18:07:39] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-03 18:07:39] [INFO] Concatenating street name and type
[2026-03-03 18:07:39] [INFO]   -> Combined street name: FAST LN
[2026-03-03 18:07:39] [INFO] Built locationCoordinates from lat/lng: 36.13976,-85.63028
[2026-03-03 18:07:39] [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-03 18:07:39] [INFO] Number of extracted fields: 28
[2026-03-03 18:07:39] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
PCSO
BPD'
[2026-03-03 18:07:39] [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-03 18:07:39] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","PCSO","BPD"]
[2026-03-03 18:07:39] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:07:39] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-03 18:07:39] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","BPD"]
[2026-03-03 18:07:39] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-03 18:07:39] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-03 18:07:39] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 18:07:39] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-03 18:07:39] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-03 18:07:40] [INFO] Found existing IncidentTypeMapping with ID: 69a20faeb27fbc102
[2026-03-03 18:07:40] [INFO] Found existing Dispatch with cADNumber '2026000069', ID: 69a20faf06eb0f317 - will update instead of create
[2026-03-03 18:07:40] [INFO] Updated existing Dispatches record with ID: 69a20faf06eb0f317
[2026-03-03 18:07:40] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:07:40] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:07: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-03 18:07:44] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260021936_20260303_180739.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:07:44] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:07:44] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023092_20260303_180740.XML
[2026-03-03 18:07:44] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023092_20260303_180740.XML for user: 68f1466aed072ad4a
[2026-03-03 18:07:44] [INFO] File size: 5940 bytes
[2026-03-03 18:07:44] [INFO] Created FTPFiles record with ID: 69a723709725bec27
[2026-03-03 18:07:44] [INFO] About to extract fields from XML. File size: 5940 bytes
[2026-03-03 18:07:44] [INFO] Number of mappings: 28
[2026-03-03 18:07:44] [INFO] Starting XML parsing. Content length: 5940
[2026-03-03 18:07:44] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:07:44] [INFO] Processing 28 field mappings
[2026-03-03 18:07:44] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:07:44] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:07:44] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 18:07:44] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-03 18:07:44] [INFO]   -> Found value: BFD
BFD
EMS
[2026-03-03 18:07:44] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nBFD\nEMS"
[2026-03-03 18:07:44] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:07:44] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-03 18:07:44] [INFO]   -> Found value: 2026000072
[2026-03-03 18:07:44] [INFO]   -> Set field 'incidentInternalId' = "2026000072"
[2026-03-03 18:07:44] [INFO]   -> Set field 'dispatchRunNumber' = "2026000072"
[2026-03-03 18:07:44] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:07:44] [INFO]   -> Found value: FIRE - OTHER STRUCTURE
[2026-03-03 18:07:44] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE - OTHER STRUCTURE"
[2026-03-03 18:07:44] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:07:44] [INFO]   -> Found value: 1699
[2026-03-03 18:07:44] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1699
[2026-03-03 18:07:44] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:07:44] [INFO]   -> Found value: TN
[2026-03-03 18:07:44] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:07:44] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:07:44] [INFO]   -> Found value: 38544
[2026-03-03 18:07:44] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-03 18:07:44] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:07:44] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:44] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:07:44] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:44] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:07:44] [INFO]   -> Found value: 36.19278
[2026-03-03 18:07:44] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.192779999999999063220457173883914947509765625
[2026-03-03 18:07:44] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:07:44] [INFO]   -> Found value: -85.61668
[2026-03-03 18:07:44] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.616680000000002337401383556425571441650390625
[2026-03-03 18:07:44] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:07:44] [INFO]   -> Found value: 2026-03-02 17:19:30
[2026-03-03 18:07:44] [INFO]   -> Set field 'alarm' = "2026-03-02 17:19:30"
[2026-03-03 18:07:44] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:07:44] [INFO]   -> Found value: 2026-03-02 17:20:13
[2026-03-03 18:07:44] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:20:13"
[2026-03-03 18:07:44] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:07:44] [INFO]   -> Found value: 2026-03-02 17:23:03
[2026-03-03 18:07:44] [INFO]   -> Set field 'enroute' = "2026-03-02 17:23:03"
[2026-03-03 18:07:44] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:07:44] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:44] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:07:44] [INFO]   -> Found value: 2026-03-02 17:24:24
[2026-03-03 18:07:44] [INFO]   -> Set field 'cleared' = "2026-03-02 17:24:24"
[2026-03-03 18:07:44] [INFO]   -> Set field 'inService' = "2026-03-02 17:24:24"
[2026-03-03 18:07:44] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:07:44] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:44] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:07:44] [INFO]   -> Found value: BEN2
[2026-03-03 18:07:44] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-03 18:07:44] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:07:44] [INFO]   -> Found value: 2026-03-02 17:20:13
[2026-03-03 18:07:44] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:20:13"
[2026-03-03 18:07:44] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:07:44] [INFO]   -> Found value: 2026-03-02 17:23:03
[2026-03-03 18:07:44] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-02 17:23:03"
[2026-03-03 18:07:44] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:07:44] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:44] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:07:44] [INFO]   -> Found value: 2026-03-02 17:24:24
[2026-03-03 18:07:44] [INFO]   -> Set field 'timeunitclear' = "2026-03-02 17:24:24"
[2026-03-03 18:07:44] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:07:44] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:44] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:07:44] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 18:07:44] [INFO]   -> Found value: 20260023092
[2026-03-03 18:07:44] [INFO]   -> Set field 'policeReportNumber' = "20260023092"
[2026-03-03 18:07:44] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:07:44] [INFO]   -> Found value: [FIRE] CONFIRMED BRUSH FIRE - CANCEL ALL UNITS NOT ON SCENE  [03/02/26 17:24:21 KBURTON] [FIRE] PCFD...
[2026-03-03 18:07:44] [INFO]   -> Set field 'dispatchNotes' = "[FIRE] CONFIRMED BRUSH FIRE - CANCEL ALL UNITS NOT ON SCENE  [03\/02\/26 17:24:21 KBURTON] [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-03 18:07:44] [INFO]   -> Set field 'cADLog' = "[FIRE] CONFIRMED BRUSH FIRE - CANCEL ALL UNITS NOT ON SCENE  [03\/02\/26 17:24:21 KBURTON] [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-03 18:07:44] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:07:44] [INFO]   -> Found value: BAXTER
[2026-03-03 18:07:44] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-03 18:07:44] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:07:44] [INFO]   -> Found value: OLD GAINESBORO
[2026-03-03 18:07:44] [INFO]   -> Set field 'streetName' = "OLD GAINESBORO"
[2026-03-03 18:07:44] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:07:44] [INFO]   -> Found value: RD
[2026-03-03 18:07:44] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 18:07:44] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:07:44] [INFO]   -> Found value: OLD GAINESBORO RD/BLOOMINGTON RD
[2026-03-03 18:07:44] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "OLD GAINESBORO RD\/BLOOMINGTON RD"
[2026-03-03 18:07:44] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-03-03 18:07:44] [INFO] Concatenating street name and type
[2026-03-03 18:07:44] [INFO]   -> Combined street name: OLD GAINESBORO RD
[2026-03-03 18:07:44] [INFO] Built locationCoordinates from lat/lng: 36.19278,-85.61668
[2026-03-03 18:07:44] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nBFD\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","cleared":"2026-03-02 17:24:24","inService":"2026-03-02 17:24:24","cADVehicleID":"BEN2","timedispatch":"2026-03-02 17:20:13","timeenroutetoscene":"2026-03-02 17:23:03","timeunitclear":"2026-03-02 17:24:24","policeReportNumber":"20260023092","dispatchNotes":"[FIRE] CONFIRMED BRUSH FIRE - CANCEL ALL UNITS NOT ON SCENE  [03\/02\/26 17:24:21 KBURTON] [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] CONFIRMED BRUSH FIRE - CANCEL ALL UNITS NOT ON SCENE  [03\/02\/26 17:24:21 KBURTON] [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-03 18:07:44] [INFO] Number of extracted fields: 25
[2026-03-03 18:07:44] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
BFD
EMS'
[2026-03-03 18:07:44] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
BFD
EMS', Parsed IDs = ["BFD","BFD","EMS"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-03 18:07:44] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","BFD","EMS"]
[2026-03-03 18:07:44] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:07:44] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-03 18:07:44] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["BFD","EMS"]
[2026-03-03 18:07:44] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-03 18:07:44] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-03 18:07:44] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-03 18:07:44] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-03 18:07:45] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-03 18:07:45] [INFO] Found existing IncidentTypeMapping with ID: 6945b6d88387b330f
[2026-03-03 18:07:45] [INFO] Found existing Dispatch with cADNumber '2026000072', ID: 69a61b36ed638e8ff - will update instead of create
[2026-03-03 18:07:45] [INFO] Updated existing Dispatches record with ID: 69a61b36ed638e8ff
[2026-03-03 18:07:45] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:07:46] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:07: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-03 18:07:49] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023092_20260303_180740.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:07:49] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:07:49] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023108_20260303_180742.XML
[2026-03-03 18:07:49] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023108_20260303_180742.XML for user: 68f1466aed072ad4a
[2026-03-03 18:07:49] [INFO] File size: 5364 bytes
[2026-03-03 18:07:49] [INFO] Created FTPFiles record with ID: 69a72375719e19a9f
[2026-03-03 18:07:49] [INFO] About to extract fields from XML. File size: 5364 bytes
[2026-03-03 18:07:49] [INFO] Number of mappings: 28
[2026-03-03 18:07:49] [INFO] Starting XML parsing. Content length: 5364
[2026-03-03 18:07:49] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:07:49] [INFO] Processing 28 field mappings
[2026-03-03 18:07:49] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:07:49] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:07:49] [INFO]   -> Found value: BFD
[2026-03-03 18:07:49] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD"
[2026-03-03 18:07:49] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:07:49] [INFO]   -> Found value: 2026000073
[2026-03-03 18:07:49] [INFO]   -> Set field 'incidentInternalId' = "2026000073"
[2026-03-03 18:07:49] [INFO]   -> Set field 'dispatchRunNumber' = "2026000073"
[2026-03-03 18:07:49] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:07:49] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-03 18:07:49] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-03 18:07:49] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:07:49] [INFO]   -> Found value: 415
[2026-03-03 18:07:49] [INFO]   -> Set field 'incidentLocationStreetNumber' = 415
[2026-03-03 18:07:49] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:07:49] [INFO]   -> Found value: TN
[2026-03-03 18:07:49] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:07:49] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:07:49] [INFO]   -> Found value: 38544
[2026-03-03 18:07:49] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-03 18:07:49] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:07:49] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:49] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:07:49] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:49] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:07:49] [INFO]   -> Found value: 36.15894
[2026-03-03 18:07:49] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.158940000000001191438059322535991668701171875
[2026-03-03 18:07:49] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:07:49] [INFO]   -> Found value: -85.64935
[2026-03-03 18:07:49] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.649349999999998317434801720082759857177734375
[2026-03-03 18:07:49] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:07:49] [INFO]   -> Found value: 2026-03-02 17:58:36
[2026-03-03 18:07:49] [INFO]   -> Set field 'alarm' = "2026-03-02 17:58:36"
[2026-03-03 18:07:49] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:07:49] [INFO]   -> Found value: 2026-03-02 17:59:34
[2026-03-03 18:07:49] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:59:34"
[2026-03-03 18:07:49] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:07:49] [INFO]   -> Found value: 2026-03-02 18:01:34
[2026-03-03 18:07:49] [INFO]   -> Set field 'enroute' = "2026-03-02 18:01:34"
[2026-03-03 18:07:49] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:07:49] [INFO]   -> Found value: 2026-03-02 18:04:09
[2026-03-03 18:07:49] [INFO]   -> Set field 'onScene' = "2026-03-02 18:04:09"
[2026-03-03 18:07:49] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:07:49] [INFO]   -> Found value: 2026-03-02 18:21:31
[2026-03-03 18:07:49] [INFO]   -> Set field 'cleared' = "2026-03-02 18:21:31"
[2026-03-03 18:07:49] [INFO]   -> Set field 'inService' = "2026-03-02 18:21:31"
[2026-03-03 18:07:49] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:07:49] [INFO]   -> Found value: CHESTNUT ST/CHESTNUT ST
[2026-03-03 18:07:49] [INFO]   -> Set field 'incidentLocationCross' = "CHESTNUT ST\/CHESTNUT ST"
[2026-03-03 18:07:49] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:07:49] [INFO]   -> Found value: BEN2
[2026-03-03 18:07:49] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-03 18:07:49] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:07:49] [INFO]   -> Found value: 2026-03-02 17:59:34
[2026-03-03 18:07:49] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:59:34"
[2026-03-03 18:07:49] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:07:49] [INFO]   -> Found value: 2026-03-02 18:01:34
[2026-03-03 18:07:49] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-02 18:01:34"
[2026-03-03 18:07:49] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:07:49] [INFO]   -> Found value: 2026-03-02 18:04:09
[2026-03-03 18:07:49] [INFO]   -> Set field 'timeonscene' = "2026-03-02 18:04:09"
[2026-03-03 18:07:49] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:07:49] [INFO]   -> Found value: 2026-03-02 18:21:31
[2026-03-03 18:07:49] [INFO]   -> Set field 'timeunitclear' = "2026-03-02 18:21:31"
[2026-03-03 18:07:49] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:07:49] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:49] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:07:49] [INFO]   -> Found value: 20260023108
[2026-03-03 18:07:49] [INFO]   -> Set field 'policeReportNumber' = "20260023108"
[2026-03-03 18:07:49] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:07:49] [INFO]   -> Found value: [EMS] UDTS: {731} PATIENT LOADED  [03/02/26 18:20:18 DSWINK] [EMS] POSS. GALL BLADDER ATTACK  [03/02...
[2026-03-03 18:07:49] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: {731} PATIENT LOADED  [03\/02\/26 18:20:18 DSWINK] [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-03 18:07:49] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: {731} PATIENT LOADED  [03\/02\/26 18:20:18 DSWINK] [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-03 18:07:49] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:07:49] [INFO]   -> Found value: BAXTER
[2026-03-03 18:07:49] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-03 18:07:49] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:07:49] [INFO]   -> Found value: FIRST
[2026-03-03 18:07:49] [INFO]   -> Set field 'streetName' = "FIRST"
[2026-03-03 18:07:49] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:07:49] [INFO]   -> Found value: AVE
[2026-03-03 18:07:49] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-03 18:07:49] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:07:49] [INFO]   -> Found value: 415 FIRST AVE N
[2026-03-03 18:07:49] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "415 FIRST AVE N"
[2026-03-03 18:07:49] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-03 18:07:49] [INFO] Concatenating street name and type
[2026-03-03 18:07:49] [INFO]   -> Combined street name: FIRST AVE
[2026-03-03 18:07:49] [INFO] Built locationCoordinates from lat/lng: 36.15894,-85.64935
[2026-03-03 18:07:49] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD","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","enroute":"2026-03-02 18:01:34","onScene":"2026-03-02 18:04:09","cleared":"2026-03-02 18:21:31","inService":"2026-03-02 18:21:31","incidentLocationCross":"CHESTNUT ST\/CHESTNUT ST","cADVehicleID":"BEN2","timedispatch":"2026-03-02 17:59:34","timeenroutetoscene":"2026-03-02 18:01:34","timeonscene":"2026-03-02 18:04:09","timeunitclear":"2026-03-02 18:21:31","policeReportNumber":"20260023108","dispatchNotes":"[EMS] UDTS: {731} PATIENT LOADED  [03\/02\/26 18:20:18 DSWINK] [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] UDTS: {731} PATIENT LOADED  [03\/02\/26 18:20:18 DSWINK] [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-03 18:07:49] [INFO] Number of extracted fields: 28
[2026-03-03 18:07:49] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD'
[2026-03-03 18:07:49] [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-03 18:07:49] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD"]
[2026-03-03 18:07:49] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:07:49] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-03 18:07:49] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-03 18:07:49] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-03 18:07:49] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-03 18:07:50] [INFO] Found existing IncidentTypeMapping with ID: 6945b247e7ea30221
[2026-03-03 18:07:50] [INFO] Found existing Dispatch with cADNumber '2026000073', ID: 69a6246d2418db2b2 - will update instead of create
[2026-03-03 18:07:50] [INFO] Updated existing Dispatches record with ID: 69a6246d2418db2b2
[2026-03-03 18:07:50] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:07:50] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:07: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-03 18:07:54] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260023108_20260303_180742.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:07:54] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:07:54] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260023186_20260303_180743.XML
[2026-03-03 18:07:54] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260023186_20260303_180743.XML for user: 68f1466aed072ad4a
[2026-03-03 18:07:54] [INFO] File size: 9500 bytes
[2026-03-03 18:07:54] [INFO] Created FTPFiles record with ID: 69a7237a7555d9751
[2026-03-03 18:07:54] [INFO] About to extract fields from XML. File size: 9500 bytes
[2026-03-03 18:07:54] [INFO] Number of mappings: 28
[2026-03-03 18:07:54] [INFO] Starting XML parsing. Content length: 9500
[2026-03-03 18:07:54] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:07:54] [INFO] Processing 28 field mappings
[2026-03-03 18:07:54] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:07:54] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:07:54] [INFO]   -> Found value: MFD
[2026-03-03 18:07:54] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD"
[2026-03-03 18:07:54] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:07:54] [INFO]   -> Found value: 2026000080
[2026-03-03 18:07:54] [INFO]   -> Set field 'incidentInternalId' = "2026000080"
[2026-03-03 18:07:54] [INFO]   -> Set field 'dispatchRunNumber' = "2026000080"
[2026-03-03 18:07:54] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:07:54] [INFO]   -> Found value: FIRE ALARM
[2026-03-03 18:07:54] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-03 18:07:54] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:07:54] [INFO]   -> Found value: 522
[2026-03-03 18:07:54] [INFO]   -> Set field 'incidentLocationStreetNumber' = 522
[2026-03-03 18:07:54] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:07:54] [INFO]   -> Found value: TN
[2026-03-03 18:07:54] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:07:54] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:07:54] [INFO]   -> Found value: 38574
[2026-03-03 18:07:54] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-03 18:07:54] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:07:54] [INFO]   -> Found value: BETHEL INN  HOTEL
[2026-03-03 18:07:54] [INFO]   -> Set field 'businessName' = "BETHEL INN  HOTEL"
[2026-03-03 18:07:54] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:07:54] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:54] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:07:54] [INFO]   -> Found value: 36.14078
[2026-03-03 18:07:54] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14077999999999946112438919954001903533935546875
[2026-03-03 18:07:54] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:07:54] [INFO]   -> Found value: -85.26656
[2026-03-03 18:07:54] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.266559999999998353814589790999889373779296875
[2026-03-03 18:07:54] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:07:54] [INFO]   -> Found value: 2026-03-02 22:09:52
[2026-03-03 18:07:54] [INFO]   -> Set field 'alarm' = "2026-03-02 22:09:52"
[2026-03-03 18:07:54] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:07:54] [INFO]   -> Found value: 2026-03-02 22:11:26
[2026-03-03 18:07:54] [INFO]   -> Set field 'dispatched' = "2026-03-02 22:11:26"
[2026-03-03 18:07:54] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:07:54] [INFO]   -> Found value: 2026-03-02 22:12:00
[2026-03-03 18:07:54] [INFO]   -> Set field 'enroute' = "2026-03-02 22:12:00"
[2026-03-03 18:07:54] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:07:54] [INFO]   -> Found value: 2026-03-02 22:14:39
[2026-03-03 18:07:54] [INFO]   -> Set field 'onScene' = "2026-03-02 22:14:39"
[2026-03-03 18:07:54] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:07:54] [INFO]   -> Found value: 2026-03-02 22:27:31
[2026-03-03 18:07:54] [INFO]   -> Set field 'cleared' = "2026-03-02 22:27:31"
[2026-03-03 18:07:54] [INFO]   -> Set field 'inService' = "2026-03-02 22:27:31"
[2026-03-03 18:07:54] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:07:54] [INFO]   -> Found value: AGEE ST/INDUSTRIAL DR
[2026-03-03 18:07:54] [INFO]   -> Set field 'incidentLocationCross' = "AGEE ST\/INDUSTRIAL DR"
[2026-03-03 18:07:54] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:07:54] [INFO]   -> Found value: MF110
[2026-03-03 18:07:54] [INFO]   -> Set field 'cADVehicleID' = "MF110"
[2026-03-03 18:07:54] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:07:54] [INFO]   -> Found value: 2026-03-02 22:12:00
[2026-03-03 18:07:54] [INFO]   -> Set field 'timedispatch' = "2026-03-02 22:12:00"
[2026-03-03 18:07:54] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:07:54] [INFO]   -> Found value: 2026-03-02 22:12:00
[2026-03-03 18:07:54] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-02 22:12:00"
[2026-03-03 18:07:54] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:07:54] [INFO]   -> Found value: 2026-03-02 22:14:39
[2026-03-03 18:07:54] [INFO]   -> Set field 'timeonscene' = "2026-03-02 22:14:39"
[2026-03-03 18:07:54] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:07:54] [INFO]   -> Found value: 2026-03-02 22:27:31
[2026-03-03 18:07:54] [INFO]   -> Set field 'timeunitclear' = "2026-03-02 22:27:31"
[2026-03-03 18:07:54] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:07:54] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:54] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:07:54] [INFO]   -> Found value: 20260023186
[2026-03-03 18:07:54] [INFO]   -> Set field 'policeReportNumber' = "20260023186"
[2026-03-03 18:07:54] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:07:54] [INFO]   -> Found value: {MF110} WILL CONTINUE TO CHECK. CANCEL OTHER UNITS  [03/02/26 22:14:03 EALMENDAREZ] FALSE PER HEATHE...
[2026-03-03 18:07:54] [INFO]   -> Set field 'dispatchNotes' = "{MF110} WILL CONTINUE TO CHECK. CANCEL OTHER UNITS  [03\/02\/26 22:14:03 EALMENDAREZ] FALSE PER HEATHER- STEAM FROM SHOWER  [03\/02\/26 22:12:54 JDICK] ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]"
[2026-03-03 18:07:54] [INFO]   -> Set field 'cADLog' = "{MF110} WILL CONTINUE TO CHECK. CANCEL OTHER UNITS  [03\/02\/26 22:14:03 EALMENDAREZ] FALSE PER HEATHER- STEAM FROM SHOWER  [03\/02\/26 22:12:54 JDICK] ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]"
[2026-03-03 18:07:54] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:07:54] [INFO]   -> Found value: MONTEREY
[2026-03-03 18:07:54] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-03 18:07:54] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:07:54] [INFO]   -> Found value: STRATTON
[2026-03-03 18:07:54] [INFO]   -> Set field 'streetName' = "STRATTON"
[2026-03-03 18:07:54] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:07:54] [INFO]   -> Found value: AVE
[2026-03-03 18:07:54] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-03 18:07:54] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:07:54] [INFO]   -> Found value: 522 E STRATTON AVE
[2026-03-03 18:07:54] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "522 E STRATTON AVE"
[2026-03-03 18:07:54] [INFO] Finished extracting fields. Total fields extracted: 29
[2026-03-03 18:07:54] [INFO] Concatenating street name and type
[2026-03-03 18:07:54] [INFO]   -> Combined street name: STRATTON AVE
[2026-03-03 18:07:54] [INFO] Built locationCoordinates from lat/lng: 36.14078,-85.26656
[2026-03-03 18:07:54] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD","incidentInternalId":"2026000080","dispatchRunNumber":"2026000080","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":522,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"BETHEL INN  HOTEL","nERISIncidentLatitude":36.14077999999999946112438919954001903533935546875,"nERISIncidentLongitude":-85.266559999999998353814589790999889373779296875,"alarm":"2026-03-02 22:09:52","dispatched":"2026-03-02 22:11:26","enroute":"2026-03-02 22:12:00","onScene":"2026-03-02 22:14:39","cleared":"2026-03-02 22:27:31","inService":"2026-03-02 22:27:31","incidentLocationCross":"AGEE ST\/INDUSTRIAL DR","cADVehicleID":"MF110","timedispatch":"2026-03-02 22:12:00","timeenroutetoscene":"2026-03-02 22:12:00","timeonscene":"2026-03-02 22:14:39","timeunitclear":"2026-03-02 22:27:31","policeReportNumber":"20260023186","dispatchNotes":"{MF110} WILL CONTINUE TO CHECK. CANCEL OTHER UNITS  [03\/02\/26 22:14:03 EALMENDAREZ] FALSE PER HEATHER- STEAM FROM SHOWER  [03\/02\/26 22:12:54 JDICK] ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]","cADLog":"{MF110} WILL CONTINUE TO CHECK. CANCEL OTHER UNITS  [03\/02\/26 22:14:03 EALMENDAREZ] FALSE PER HEATHER- STEAM FROM SHOWER  [03\/02\/26 22:12:54 JDICK] ZONE 53 SMOKE 877-206-9141 REF AAM33214E  [03\/02\/26 22:10:48 JDICK]]","incidentLocationCity":"MONTEREY","streetName":"STRATTON AVE","incidentAddressTextVersionStreet":"522 E STRATTON AVE","locationCoordinates":"36.14078,-85.26656"}
[2026-03-03 18:07:54] [INFO] Number of extracted fields: 29
[2026-03-03 18:07:54] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD'
[2026-03-03 18:07:54] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD', Parsed IDs = ["MFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-03 18:07:54] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD"]
[2026-03-03 18:07:54] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:07:54] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-03 18:07:54] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-03 18:07:54] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-03 18:07:55] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-03 18:07:55] [INFO] Found existing IncidentTypeMapping with ID: 69678f4b9453355aa
[2026-03-03 18:07:55] [INFO] Found existing Dispatch with cADNumber '2026000080', ID: 69a65f74af5d0a5cd - will update instead of create
[2026-03-03 18:07:55] [INFO] Updated existing Dispatches record with ID: 69a65f74af5d0a5cd
[2026-03-03 18:07:55] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:07:55] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:07: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-03 18:07:59] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260023186_20260303_180743.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:07:59] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:07:59] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021987_20260303_180745.XML
[2026-03-03 18:07:59] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021987_20260303_180745.XML for user: 68f1466aed072ad4a
[2026-03-03 18:07:59] [INFO] File size: 6243 bytes
[2026-03-03 18:07:59] [INFO] Created FTPFiles record with ID: 69a7237f75fd01c9f
[2026-03-03 18:07:59] [INFO] About to extract fields from XML. File size: 6243 bytes
[2026-03-03 18:07:59] [INFO] Number of mappings: 28
[2026-03-03 18:07:59] [INFO] Starting XML parsing. Content length: 6243
[2026-03-03 18:07:59] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:07:59] [INFO] Processing 28 field mappings
[2026-03-03 18:07:59] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:07:59] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:07:59] [INFO]   -> Found value: PCFD
[2026-03-03 18:07:59] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 18:07:59] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:07:59] [INFO]   -> Found value: 2026000554
[2026-03-03 18:07:59] [INFO]   -> Set field 'incidentInternalId' = "2026000554"
[2026-03-03 18:07:59] [INFO]   -> Set field 'dispatchRunNumber' = "2026000554"
[2026-03-03 18:07:59] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:07:59] [INFO]   -> Found value: ALLERGIC REACTION/ANAPHYLAXIS
[2026-03-03 18:07:59] [INFO]   -> Set field 'incidentTypeValue1' = "ALLERGIC REACTION\/ANAPHYLAXIS"
[2026-03-03 18:07:59] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:07:59] [INFO]   -> Found value: 2381
[2026-03-03 18:07:59] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2381
[2026-03-03 18:07:59] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:07:59] [INFO]   -> Found value: TN
[2026-03-03 18:07:59] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:07:59] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:07:59] [INFO]   -> Found value: 38506
[2026-03-03 18:07:59] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 18:07:59] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:07:59] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:59] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:07:59] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:59] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:07:59] [INFO]   -> Found value: 36.13354
[2026-03-03 18:07:59] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.13354000000000354475560015998780727386474609375
[2026-03-03 18:07:59] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:07:59] [INFO]   -> Found value: -85.44377
[2026-03-03 18:07:59] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.443770000000000663931132294237613677978515625
[2026-03-03 18:07:59] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:07:59] [INFO]   -> Found value: 2026-02-27 16:10:53
[2026-03-03 18:07:59] [INFO]   -> Set field 'alarm' = "2026-02-27 16:10:53"
[2026-03-03 18:07:59] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:07:59] [INFO]   -> Found value: 2026-02-27 16:11:13
[2026-03-03 18:07:59] [INFO]   -> Set field 'dispatched' = "2026-02-27 16:11:13"
[2026-03-03 18:07:59] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:07:59] [INFO]   -> Found value: 2026-02-27 16:12:14
[2026-03-03 18:07:59] [INFO]   -> Set field 'enroute' = "2026-02-27 16:12:14"
[2026-03-03 18:07:59] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:07:59] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:59] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:07:59] [INFO]   -> Found value: 2026-02-27 16:12:59
[2026-03-03 18:07:59] [INFO]   -> Set field 'cleared' = "2026-02-27 16:12:59"
[2026-03-03 18:07:59] [INFO]   -> Set field 'inService' = "2026-02-27 16:12:59"
[2026-03-03 18:07:59] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:07:59] [INFO]   -> Found value: POPLAR GROVE RD/DIETZ DR
[2026-03-03 18:07:59] [INFO]   -> Set field 'incidentLocationCross' = "POPLAR GROVE RD\/DIETZ DR"
[2026-03-03 18:07:59] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:07:59] [INFO]   -> Found value: EN11
[2026-03-03 18:07:59] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-03 18:07:59] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:07:59] [INFO]   -> Found value: 2026-02-27 16:12:11
[2026-03-03 18:07:59] [INFO]   -> Set field 'timedispatch' = "2026-02-27 16:12:11"
[2026-03-03 18:07:59] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:07:59] [INFO]   -> Found value: 2026-02-27 16:12:14
[2026-03-03 18:07:59] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 16:12:14"
[2026-03-03 18:07:59] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:07:59] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:59] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:07:59] [INFO]   -> Found value: 2026-02-27 16:12:59
[2026-03-03 18:07:59] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 16:12:59"
[2026-03-03 18:07:59] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:07:59] [INFO]   -> No value found (null or empty)
[2026-03-03 18:07:59] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:07:59] [INFO]   -> Found value: 20260021987
[2026-03-03 18:07:59] [INFO]   -> Set field 'policeReportNumber' = "20260021987"
[2026-03-03 18:07:59] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:07:59] [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-03 18:07:59] [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-03 18:07:59] [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-03 18:07:59] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:07:59] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 18:07:59] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 18:07:59] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:07:59] [INFO]   -> Found value: LAKELAND
[2026-03-03 18:07:59] [INFO]   -> Set field 'streetName' = "LAKELAND"
[2026-03-03 18:07:59] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:07:59] [INFO]   -> Found value: DR
[2026-03-03 18:07:59] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-03 18:07:59] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:07:59] [INFO]   -> Found value: 2381 LAKELAND DR
[2026-03-03 18:07:59] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2381 LAKELAND DR"
[2026-03-03 18:07:59] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-03 18:07:59] [INFO] Concatenating street name and type
[2026-03-03 18:07:59] [INFO]   -> Combined street name: LAKELAND DR
[2026-03-03 18:07:59] [INFO] Built locationCoordinates from lat/lng: 36.13354,-85.44377
[2026-03-03 18:07:59] [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-03 18:07:59] [INFO] Number of extracted fields: 26
[2026-03-03 18:07:59] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 18:07: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-03 18:07:59] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 18:07:59] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:07:59] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 18:07: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-03 18:07: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-03 18:07:59] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 18:08:00] [INFO] Found existing IncidentTypeMapping with ID: 693deda26218f0479
[2026-03-03 18:08:00] [INFO] Found existing Dispatch with cADNumber '2026000554', ID: 69a222d3cc34132b2 - will update instead of create
[2026-03-03 18:08:00] [INFO] Updated existing Dispatches record with ID: 69a222d3cc34132b2
[2026-03-03 18:08:00] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:08:00] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:08: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-03 18:08:03] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260021987_20260303_180745.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:08:03] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:08:03] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260303_180746.XML
[2026-03-03 18:08:03] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260303_180746.XML for user: 68f1466aed072ad4a
[2026-03-03 18:08:03] [INFO] File size: 8779 bytes
[2026-03-03 18:08:03] [INFO] Created FTPFiles record with ID: 69a72383c03f4231b
[2026-03-03 18:08:03] [INFO] About to extract fields from XML. File size: 8779 bytes
[2026-03-03 18:08:03] [INFO] Number of mappings: 28
[2026-03-03 18:08:03] [INFO] Starting XML parsing. Content length: 8779
[2026-03-03 18:08:03] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:08:03] [INFO] Processing 28 field mappings
[2026-03-03 18:08:03] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:08:03] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:08:03] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 18:08:03] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-03 18:08:03] [INFO]   -> Found value: PCFD
BFD
RESC
PCSO
[2026-03-03 18:08:03] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nBFD\nRESC\nPCSO"
[2026-03-03 18:08:03] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:08:03] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-03 18:08:03] [INFO]   -> Found value: 2026000555
[2026-03-03 18:08:03] [INFO]   -> Set field 'incidentInternalId' = "2026000555"
[2026-03-03 18:08:03] [INFO]   -> Set field 'dispatchRunNumber' = "2026000555"
[2026-03-03 18:08:03] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:08:03] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-03 18:08:03] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-03 18:08:03] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:08:03] [INFO]   -> Found value: 281
[2026-03-03 18:08:03] [INFO]   -> Set field 'incidentLocationStreetNumber' = 281
[2026-03-03 18:08:03] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:08:03] [INFO]   -> Found value: TN
[2026-03-03 18:08:03] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:08:03] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:08:03] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:03] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:08:03] [INFO]   -> Found value: MM281W
[2026-03-03 18:08:03] [INFO]   -> Set field 'businessName' = "MM281W"
[2026-03-03 18:08:03] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:08:03] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:03] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:08:03] [INFO]   -> Found value: 36.14031
[2026-03-03 18:08:03] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.140309999999999490682967007160186767578125
[2026-03-03 18:08:03] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:08:03] [INFO]   -> Found value: -85.61141
[2026-03-03 18:08:03] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.611410000000006448317435570061206817626953125
[2026-03-03 18:08:03] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:08:03] [INFO]   -> Found value: 2026-02-27 17:25:12
[2026-03-03 18:08:03] [INFO]   -> Set field 'alarm' = "2026-02-27 17:25:12"
[2026-03-03 18:08:03] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:08:03] [INFO]   -> Found value: 2026-02-27 17:26:46
[2026-03-03 18:08:03] [INFO]   -> Set field 'dispatched' = "2026-02-27 17:26:46"
[2026-03-03 18:08:03] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:08:03] [INFO]   -> Found value: 2026-02-27 17:28:00
[2026-03-03 18:08:03] [INFO]   -> Set field 'enroute' = "2026-02-27 17:28:00"
[2026-03-03 18:08:03] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:08:03] [INFO]   -> Found value: 2026-02-27 17:32:26
[2026-03-03 18:08:03] [INFO]   -> Set field 'onScene' = "2026-02-27 17:32:26"
[2026-03-03 18:08:03] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:08:03] [INFO]   -> Found value: 2026-02-27 17:52:30
[2026-03-03 18:08:03] [INFO]   -> Set field 'cleared' = "2026-02-27 17:52:30"
[2026-03-03 18:08:03] [INFO]   -> Set field 'inService' = "2026-02-27 17:52:30"
[2026-03-03 18:08:03] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:08:03] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:03] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:08:03] [INFO]   -> Found value: EN11
[2026-03-03 18:08:03] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-03 18:08:03] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:08:03] [INFO]   -> Found value: 2026-02-27 17:30:19
[2026-03-03 18:08:03] [INFO]   -> Set field 'timedispatch' = "2026-02-27 17:30:19"
[2026-03-03 18:08:03] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:08:03] [INFO]   -> Found value: 2026-02-27 17:30:19
[2026-03-03 18:08:03] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 17:30:19"
[2026-03-03 18:08:03] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:08:03] [INFO]   -> Found value: 2026-02-27 17:32:26
[2026-03-03 18:08:03] [INFO]   -> Set field 'timeonscene' = "2026-02-27 17:32:26"
[2026-03-03 18:08:03] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:08:03] [INFO]   -> Found value: 2026-02-27 17:52:30
[2026-03-03 18:08:03] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 17:52:30"
[2026-03-03 18:08:03] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:08:03] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:03] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:08:03] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 18:08:03] [INFO]   -> Found value: 20260022018
[2026-03-03 18:08:03] [INFO]   -> Set field 'policeReportNumber' = "20260022018"
[2026-03-03 18:08:03] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:08:03] [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-03 18:08:03] [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-03 18:08:03] [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-03 18:08:03] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:08:03] [INFO]   -> Found value: BAXTER
[2026-03-03 18:08:03] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-03 18:08:03] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:08:03] [INFO]   -> Found value: I 40
[2026-03-03 18:08:03] [INFO]   -> Set field 'streetName' = "I 40"
[2026-03-03 18:08:03] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:08:03] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:03] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:08:03] [INFO]   -> Found value: 281 W I 40
[2026-03-03 18:08:03] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "281 W I 40"
[2026-03-03 18:08:03] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-03 18:08:03] [INFO] Built locationCoordinates from lat/lng: 36.14031,-85.61141
[2026-03-03 18:08:03] [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-03 18:08:03] [INFO] Number of extracted fields: 27
[2026-03-03 18:08:03] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
BFD
RESC
PCSO'
[2026-03-03 18:08:03] [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-03 18:08:03] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","BFD","RESC","PCSO"]
[2026-03-03 18:08:03] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:08:03] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 18:08:03] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["BFD","RESC","PCSO"]
[2026-03-03 18:08: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-03 18:08: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-03 18:08:04] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-03 18:08:04] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 18:08:04] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 18:08:04] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-03-03 18:08:04] [INFO] Found existing Dispatch with cADNumber '2026000555', ID: 69a2283c5bf03c5c4 - will update instead of create
[2026-03-03 18:08:04] [INFO] Updated existing Dispatches record with ID: 69a2283c5bf03c5c4
[2026-03-03 18:08:04] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:08:04] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:08: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-03 18:08:08] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022018_20260303_180746.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:08:08] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:08:08] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022021_20260303_180748.XML
[2026-03-03 18:08:08] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022021_20260303_180748.XML for user: 68f1466aed072ad4a
[2026-03-03 18:08:08] [INFO] File size: 5955 bytes
[2026-03-03 18:08:08] [INFO] Created FTPFiles record with ID: 69a723889f9f0e57b
[2026-03-03 18:08:08] [INFO] About to extract fields from XML. File size: 5955 bytes
[2026-03-03 18:08:08] [INFO] Number of mappings: 28
[2026-03-03 18:08:08] [INFO] Starting XML parsing. Content length: 5955
[2026-03-03 18:08:08] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:08:08] [INFO] Processing 28 field mappings
[2026-03-03 18:08:08] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:08:08] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:08:08] [INFO]   -> Found value: PCFD
[2026-03-03 18:08:08] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 18:08:08] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:08:08] [INFO]   -> Found value: 2026000556
[2026-03-03 18:08:08] [INFO]   -> Set field 'incidentInternalId' = "2026000556"
[2026-03-03 18:08:08] [INFO]   -> Set field 'dispatchRunNumber' = "2026000556"
[2026-03-03 18:08:08] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:08:08] [INFO]   -> Found value: FIRE ALARM
[2026-03-03 18:08:08] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-03 18:08:08] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:08:08] [INFO]   -> Found value: 7450
[2026-03-03 18:08:08] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7450
[2026-03-03 18:08:08] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:08:08] [INFO]   -> Found value: TN
[2026-03-03 18:08:08] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:08:08] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:08:08] [INFO]   -> Found value: 38506
[2026-03-03 18:08:08] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 18:08:08] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:08:08] [INFO]   -> Found value: GENERATIONS HEALTH
[2026-03-03 18:08:08] [INFO]   -> Set field 'businessName' = "GENERATIONS HEALTH"
[2026-03-03 18:08:08] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:08:08] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:08] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:08:08] [INFO]   -> Found value: 36.27395
[2026-03-03 18:08:08] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2739499999999992496668710373342037200927734375
[2026-03-03 18:08:08] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:08:08] [INFO]   -> Found value: -85.45937
[2026-03-03 18:08:08] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.459370000000006939444574527442455291748046875
[2026-03-03 18:08:08] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:08:08] [INFO]   -> Found value: 2026-02-27 17:26:32
[2026-03-03 18:08:08] [INFO]   -> Set field 'alarm' = "2026-02-27 17:26:32"
[2026-03-03 18:08:08] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:08:08] [INFO]   -> Found value: 2026-02-27 17:28:42
[2026-03-03 18:08:08] [INFO]   -> Set field 'dispatched' = "2026-02-27 17:28:42"
[2026-03-03 18:08:08] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:08:08] [INFO]   -> Found value: 2026-02-27 17:29:56
[2026-03-03 18:08:08] [INFO]   -> Set field 'enroute' = "2026-02-27 17:29:56"
[2026-03-03 18:08:08] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:08:08] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:08] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:08:08] [INFO]   -> Found value: 2026-02-27 17:30:05
[2026-03-03 18:08:08] [INFO]   -> Set field 'cleared' = "2026-02-27 17:30:05"
[2026-03-03 18:08:08] [INFO]   -> Set field 'inService' = "2026-02-27 17:30:05"
[2026-03-03 18:08:08] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:08:08] [INFO]   -> Found value: DUNCANS CHAPEL RD
[2026-03-03 18:08:08] [INFO]   -> Set field 'incidentLocationCross' = "DUNCANS CHAPEL RD"
[2026-03-03 18:08:08] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:08:08] [INFO]   -> Found value: TK11
[2026-03-03 18:08:08] [INFO]   -> Set field 'cADVehicleID' = "TK11"
[2026-03-03 18:08:08] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:08:08] [INFO]   -> Found value: 2026-02-27 17:29:56
[2026-03-03 18:08:08] [INFO]   -> Set field 'timedispatch' = "2026-02-27 17:29:56"
[2026-03-03 18:08:08] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:08:08] [INFO]   -> Found value: 2026-02-27 17:29:56
[2026-03-03 18:08:08] [INFO]   -> Set field 'timeenroutetoscene' = "2026-02-27 17:29:56"
[2026-03-03 18:08:08] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:08:08] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:08] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:08:08] [INFO]   -> Found value: 2026-02-27 17:30:00
[2026-03-03 18:08:08] [INFO]   -> Set field 'timeunitclear' = "2026-02-27 17:30:00"
[2026-03-03 18:08:08] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:08:08] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:08] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:08:08] [INFO]   -> Found value: 20260022021
[2026-03-03 18:08:08] [INFO]   -> Set field 'policeReportNumber' = "20260022021"
[2026-03-03 18:08:08] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:08:08] [INFO]   -> Found value: SPOKE WITH AMANDA//CORRECT PASSWORD //FALSE ALARM  [02/27/26 17:29:40 KMORGAN2] FIRE SMOKE 011 014 0...
[2026-03-03 18:08:08] [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-03 18:08:08] [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-03 18:08:08] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:08:08] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 18:08:08] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 18:08:08] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:08:08] [INFO]   -> Found value: HILHAM
[2026-03-03 18:08:08] [INFO]   -> Set field 'streetName' = "HILHAM"
[2026-03-03 18:08:08] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:08:08] [INFO]   -> Found value: RD
[2026-03-03 18:08:08] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 18:08:08] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:08:08] [INFO]   -> Found value: 7450 HILHAM RD
[2026-03-03 18:08:08] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7450 HILHAM RD"
[2026-03-03 18:08:08] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-03 18:08:08] [INFO] Concatenating street name and type
[2026-03-03 18:08:08] [INFO]   -> Combined street name: HILHAM RD
[2026-03-03 18:08:08] [INFO] Built locationCoordinates from lat/lng: 36.27395,-85.45937
[2026-03-03 18:08:08] [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-03 18:08:08] [INFO] Number of extracted fields: 27
[2026-03-03 18:08:08] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 18:08: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-03 18:08:08] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 18:08:08] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:08:08] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 18:08: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-03 18:08: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-03 18:08:09] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 18:08:09] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-03 18:08:09] [INFO] Found existing Dispatch with cADNumber '2026000556', ID: 69a228b48e6b54b2f - will update instead of create
[2026-03-03 18:08:09] [INFO] Updated existing Dispatches record with ID: 69a228b48e6b54b2f
[2026-03-03 18:08:09] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:08:09] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:08: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-03 18:08:12] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260022021_20260303_180748.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:08:12] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:08:12] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023089_20260303_180749.XML
[2026-03-03 18:08:12] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023089_20260303_180749.XML for user: 68f1466aed072ad4a
[2026-03-03 18:08:12] [INFO] File size: 11066 bytes
[2026-03-03 18:08:13] [INFO] Created FTPFiles record with ID: 69a7238d23d5c70f5
[2026-03-03 18:08:13] [INFO] About to extract fields from XML. File size: 11066 bytes
[2026-03-03 18:08:13] [INFO] Number of mappings: 28
[2026-03-03 18:08:13] [INFO] Starting XML parsing. Content length: 11066
[2026-03-03 18:08:13] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:08:13] [INFO] Processing 28 field mappings
[2026-03-03 18:08:13] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:08:13] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:08:13] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 18:08:13] [INFO] Found 5 elements for 'AgencyCode', concatenating 5 non-empty values
[2026-03-03 18:08:13] [INFO]   -> Found value: PCFD
BFD
EMS
PCSO
BFD
[2026-03-03 18:08:13] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nBFD\nEMS\nPCSO\nBFD"
[2026-03-03 18:08:13] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:08:13] [INFO] Found 5 elements for 'ReportNumber', using FIRST value only
[2026-03-03 18:08:13] [INFO]   -> Found value: 2026000575
[2026-03-03 18:08:13] [INFO]   -> Set field 'incidentInternalId' = "2026000575"
[2026-03-03 18:08:13] [INFO]   -> Set field 'dispatchRunNumber' = "2026000575"
[2026-03-03 18:08:13] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:08:13] [INFO]   -> Found value: FIRE - OTHER STRUCTURE
[2026-03-03 18:08:13] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE - OTHER STRUCTURE"
[2026-03-03 18:08:13] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:08:13] [INFO]   -> Found value: 1699
[2026-03-03 18:08:13] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1699
[2026-03-03 18:08:13] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:08:13] [INFO]   -> Found value: TN
[2026-03-03 18:08:13] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:08:13] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:08:13] [INFO]   -> Found value: 38544
[2026-03-03 18:08:13] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-03 18:08:13] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:08:13] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:13] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:08:13] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:13] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:08:13] [INFO]   -> Found value: 36.19278
[2026-03-03 18:08:13] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.192779999999999063220457173883914947509765625
[2026-03-03 18:08:13] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:08:13] [INFO]   -> Found value: -85.61668
[2026-03-03 18:08:13] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.616680000000002337401383556425571441650390625
[2026-03-03 18:08:13] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:08:13] [INFO]   -> Found value: 2026-03-02 17:18:01
[2026-03-03 18:08:13] [INFO]   -> Set field 'alarm' = "2026-03-02 17:18:01"
[2026-03-03 18:08:13] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:08:13] [INFO]   -> Found value: 2026-03-02 17:19:39
[2026-03-03 18:08:13] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:19:39"
[2026-03-03 18:08:13] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:08:13] [INFO]   -> Found value: 2026-03-02 17:20:28
[2026-03-03 18:08:13] [INFO]   -> Set field 'enroute' = "2026-03-02 17:20:28"
[2026-03-03 18:08:13] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:08:13] [INFO]   -> Found value: 2026-03-02 17:23:36
[2026-03-03 18:08:13] [INFO]   -> Set field 'onScene' = "2026-03-02 17:23:36"
[2026-03-03 18:08:13] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:08:13] [INFO]   -> Found value: 2026-03-02 17:28:29
[2026-03-03 18:08:13] [INFO]   -> Set field 'cleared' = "2026-03-02 17:28:29"
[2026-03-03 18:08:13] [INFO]   -> Set field 'inService' = "2026-03-02 17:28:29"
[2026-03-03 18:08:13] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:08:13] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:13] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:08:13] [INFO]   -> Found value: 900
[2026-03-03 18:08:13] [INFO]   -> Set field 'cADVehicleID' = 900
[2026-03-03 18:08:13] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:08:13] [INFO]   -> Found value: 2026-03-02 17:21:44
[2026-03-03 18:08:13] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:21:44"
[2026-03-03 18:08:13] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:08:13] [INFO]   -> Found value: 2026-03-02 17:21:44
[2026-03-03 18:08:13] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-02 17:21:44"
[2026-03-03 18:08:13] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:08:13] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:13] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:08:13] [INFO]   -> Found value: 2026-03-02 17:24:30
[2026-03-03 18:08:13] [INFO]   -> Set field 'timeunitclear' = "2026-03-02 17:24:30"
[2026-03-03 18:08:13] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:08:13] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:13] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:08:13] [INFO] Found 5 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 18:08:13] [INFO]   -> Found value: 20260023089
[2026-03-03 18:08:13] [INFO]   -> Set field 'policeReportNumber' = "20260023089"
[2026-03-03 18:08:13] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:08:13] [INFO]   -> Found value: CONFIRMED BRUSH FIRE - CANCEL ALL UNITS NOT ON SCENE  [03/02/26 17:24:21 KBURTON] PCFD PASSED LOCATI...
[2026-03-03 18:08:13] [INFO]   -> Set field 'dispatchNotes' = "CONFIRMED BRUSH FIRE - CANCEL ALL UNITS NOT ON SCENE  [03\/02\/26 17:24:21 KBURTON] 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] Radio Channel: PUTNAM FIRE  [03\/02\/26 17:20:16 JBOHANNON] 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-03 18:08:13] [INFO]   -> Set field 'cADLog' = "CONFIRMED BRUSH FIRE - CANCEL ALL UNITS NOT ON SCENE  [03\/02\/26 17:24:21 KBURTON] 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] Radio Channel: PUTNAM FIRE  [03\/02\/26 17:20:16 JBOHANNON] 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-03 18:08:13] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:08:13] [INFO]   -> Found value: BAXTER
[2026-03-03 18:08:13] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-03 18:08:13] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:08:13] [INFO]   -> Found value: OLD GAINESBORO
[2026-03-03 18:08:13] [INFO]   -> Set field 'streetName' = "OLD GAINESBORO"
[2026-03-03 18:08:13] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:08:13] [INFO]   -> Found value: RD
[2026-03-03 18:08:13] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 18:08:13] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:08:13] [INFO]   -> Found value: OLD GAINESBORO RD/BLOOMINGTON RD
[2026-03-03 18:08:13] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "OLD GAINESBORO RD\/BLOOMINGTON RD"
[2026-03-03 18:08:13] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-03 18:08:13] [INFO] Concatenating street name and type
[2026-03-03 18:08:13] [INFO]   -> Combined street name: OLD GAINESBORO RD
[2026-03-03 18:08:13] [INFO] Built locationCoordinates from lat/lng: 36.19278,-85.61668
[2026-03-03 18:08:13] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nBFD\nEMS\nPCSO\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","enroute":"2026-03-02 17:20:28","onScene":"2026-03-02 17:23:36","cleared":"2026-03-02 17:28:29","inService":"2026-03-02 17:28:29","cADVehicleID":900,"timedispatch":"2026-03-02 17:21:44","timeenroutetoscene":"2026-03-02 17:21:44","timeunitclear":"2026-03-02 17:24:30","policeReportNumber":"20260023089","dispatchNotes":"CONFIRMED BRUSH FIRE - CANCEL ALL UNITS NOT ON SCENE  [03\/02\/26 17:24:21 KBURTON] 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] Radio Channel: PUTNAM FIRE  [03\/02\/26 17:20:16 JBOHANNON] 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":"CONFIRMED BRUSH FIRE - CANCEL ALL UNITS NOT ON SCENE  [03\/02\/26 17:24:21 KBURTON] 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] Radio Channel: PUTNAM FIRE  [03\/02\/26 17:20:16 JBOHANNON] 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-03 18:08:13] [INFO] Number of extracted fields: 26
[2026-03-03 18:08:13] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
BFD
EMS
PCSO
BFD'
[2026-03-03 18:08:13] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
BFD
EMS
PCSO
BFD', Parsed IDs = ["PCFD","BFD","EMS","PCSO","BFD"], Non-empty count = 5, Total agency count = 5, Assigned Agencies count = 4
[2026-03-03 18:08:13] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","BFD","EMS","PCSO","BFD"]
[2026-03-03 18:08:13] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:08:13] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 18:08:13] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["BFD","EMS","PCSO","BFD"]
[2026-03-03 18:08: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-03 18:08: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-03 18:08:13] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 5)
[2026-03-03 18:08:13] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 18:08:13] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 18:08:13] [INFO] Found existing IncidentTypeMapping with ID: 6938a74a7628435d2
[2026-03-03 18:08:14] [INFO] Found existing Dispatch with cADNumber '2026000575', ID: 69a61b0ed0c5cdaa6 - will update instead of create
[2026-03-03 18:08:14] [INFO] Updated existing Dispatches record with ID: 69a61b0ed0c5cdaa6
[2026-03-03 18:08:14] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:08:14] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:08: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-03 18:08:17] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023089_20260303_180749.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:08:17] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:08:17] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023102_20260303_180750.XML
[2026-03-03 18:08:17] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023102_20260303_180750.XML for user: 68f1466aed072ad4a
[2026-03-03 18:08:17] [INFO] File size: 6502 bytes
[2026-03-03 18:08:18] [INFO] Created FTPFiles record with ID: 69a723923d66e330f
[2026-03-03 18:08:18] [INFO] About to extract fields from XML. File size: 6502 bytes
[2026-03-03 18:08:18] [INFO] Number of mappings: 28
[2026-03-03 18:08:18] [INFO] Starting XML parsing. Content length: 6502
[2026-03-03 18:08:18] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:08:18] [INFO] Processing 28 field mappings
[2026-03-03 18:08:18] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:08:18] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:08:18] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 18:08:18] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-03 18:08:18] [INFO]   -> Found value: PCFD
RESC
[2026-03-03 18:08:18] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC"
[2026-03-03 18:08:18] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:08:18] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-03 18:08:18] [INFO]   -> Found value: 2026000576
[2026-03-03 18:08:18] [INFO]   -> Set field 'incidentInternalId' = "2026000576"
[2026-03-03 18:08:18] [INFO]   -> Set field 'dispatchRunNumber' = "2026000576"
[2026-03-03 18:08:18] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:08:18] [INFO]   -> Found value: FALL VICTIM
[2026-03-03 18:08:18] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-03 18:08:18] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:08:18] [INFO]   -> Found value: 3055
[2026-03-03 18:08:18] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3055
[2026-03-03 18:08:18] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:08:18] [INFO]   -> Found value: TN
[2026-03-03 18:08:18] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:08:18] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:08:18] [INFO]   -> Found value: 38545
[2026-03-03 18:08:18] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38545
[2026-03-03 18:08:18] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:08:18] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:18] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:08:18] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:18] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:08:18] [INFO]   -> Found value: 36.20774
[2026-03-03 18:08:18] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20774000000000114596332423388957977294921875
[2026-03-03 18:08:18] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:08:18] [INFO]   -> Found value: -85.60830
[2026-03-03 18:08:18] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6082999999999998408384271897375583648681640625
[2026-03-03 18:08:18] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:08:18] [INFO]   -> Found value: 2026-03-02 17:39:03
[2026-03-03 18:08:18] [INFO]   -> Set field 'alarm' = "2026-03-02 17:39:03"
[2026-03-03 18:08:18] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:08:18] [INFO]   -> Found value: 2026-03-02 17:39:22
[2026-03-03 18:08:18] [INFO]   -> Set field 'dispatched' = "2026-03-02 17:39:22"
[2026-03-03 18:08:18] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:08:18] [INFO]   -> Found value: 2026-03-02 17:40:36
[2026-03-03 18:08:18] [INFO]   -> Set field 'enroute' = "2026-03-02 17:40:36"
[2026-03-03 18:08:18] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:08:18] [INFO]   -> Found value: 2026-03-02 17:52:55
[2026-03-03 18:08:18] [INFO]   -> Set field 'onScene' = "2026-03-02 17:52:55"
[2026-03-03 18:08:18] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:08:18] [INFO]   -> Found value: 2026-03-02 18:11:18
[2026-03-03 18:08:18] [INFO]   -> Set field 'cleared' = "2026-03-02 18:11:18"
[2026-03-03 18:08:18] [INFO]   -> Set field 'inService' = "2026-03-02 18:11:18"
[2026-03-03 18:08:18] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:08:18] [INFO]   -> Found value: SWAFFORD RD/OLD GAINESBORO RD
[2026-03-03 18:08:18] [INFO]   -> Set field 'incidentLocationCross' = "SWAFFORD RD\/OLD GAINESBORO RD"
[2026-03-03 18:08:18] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:08:18] [INFO]   -> Found value: PCFR
[2026-03-03 18:08:18] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 18:08:18] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:08:18] [INFO]   -> Found value: 2026-03-02 17:39:22
[2026-03-03 18:08:18] [INFO]   -> Set field 'timedispatch' = "2026-03-02 17:39:22"
[2026-03-03 18:08:18] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:08:18] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:18] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:08:18] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:18] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:08:18] [INFO]   -> Found value: 2026-03-02 17:40:33
[2026-03-03 18:08:18] [INFO]   -> Set field 'timeunitclear' = "2026-03-02 17:40:33"
[2026-03-03 18:08:18] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:08:18] [INFO]   -> Found value: 2026-03-02 17:40:33
[2026-03-03 18:08:18] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-02 17:40:33"
[2026-03-03 18:08:18] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:08:18] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 18:08:18] [INFO]   -> Found value: 20260023102
[2026-03-03 18:08:18] [INFO]   -> Set field 'policeReportNumber' = "20260023102"
[2026-03-03 18:08:18] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:08:18] [INFO]   -> Found value: [EMS] UDTS: {723} PATIENT LOADED  [03/02/26 17:52:20 JDICK] [EMS] SLURRED SPEECH  [03/02/26 17:40:15...
[2026-03-03 18:08:18] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: {723} PATIENT LOADED  [03\/02\/26 17:52:20 JDICK] [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-03 18:08:18] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: {723} PATIENT LOADED  [03\/02\/26 17:52:20 JDICK] [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-03 18:08:18] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:08:18] [INFO]   -> Found value: BLOOMINGTON SPRINGS
[2026-03-03 18:08:18] [INFO]   -> Set field 'incidentLocationCity' = "BLOOMINGTON SPRINGS"
[2026-03-03 18:08:18] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:08:18] [INFO]   -> Found value: CLEMMONS
[2026-03-03 18:08:18] [INFO]   -> Set field 'streetName' = "CLEMMONS"
[2026-03-03 18:08:18] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:08:18] [INFO]   -> Found value: RD
[2026-03-03 18:08:18] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 18:08:18] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:08:18] [INFO]   -> Found value: 3055 CLEMMONS RD
[2026-03-03 18:08:18] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3055 CLEMMONS RD"
[2026-03-03 18:08:18] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-03 18:08:18] [INFO] Concatenating street name and type
[2026-03-03 18:08:18] [INFO]   -> Combined street name: CLEMMONS RD
[2026-03-03 18:08:18] [INFO] Built locationCoordinates from lat/lng: 36.20774,-85.6083
[2026-03-03 18:08:18] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\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","onScene":"2026-03-02 17:52:55","cleared":"2026-03-02 18:11:18","inService":"2026-03-02 18:11:18","incidentLocationCross":"SWAFFORD RD\/OLD GAINESBORO RD","cADVehicleID":"PCFR","timedispatch":"2026-03-02 17:39:22","timeunitclear":"2026-03-02 17:40:33","timecanceledenroute":"2026-03-02 17:40:33","policeReportNumber":"20260023102","dispatchNotes":"[EMS] UDTS: {723} PATIENT LOADED  [03\/02\/26 17:52:20 JDICK] [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] UDTS: {723} PATIENT LOADED  [03\/02\/26 17:52:20 JDICK] [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-03 18:08:18] [INFO] Number of extracted fields: 27
[2026-03-03 18:08:18] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC'
[2026-03-03 18:08:18] [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-03 18:08:18] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC"]
[2026-03-03 18:08:18] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:08:18] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 18:08:18] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-03 18:08: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-03 18:08: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-03 18:08:18] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-03 18:08:18] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 18:08:18] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 18:08:18] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-03 18:08:18] [INFO] Found existing Dispatch with cADNumber '2026000576', ID: 69a61fb2b0e1adec9 - will update instead of create
[2026-03-03 18:08:19] [INFO] Updated existing Dispatches record with ID: 69a61fb2b0e1adec9
[2026-03-03 18:08:19] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:08:19] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:08:22] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-03 18:08:22] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023102_20260303_180750.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:08:22] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:08:22] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023167_20260303_180751.XML
[2026-03-03 18:08:22] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023167_20260303_180751.XML for user: 68f1466aed072ad4a
[2026-03-03 18:08:22] [INFO] File size: 7410 bytes
[2026-03-03 18:08:22] [INFO] Created FTPFiles record with ID: 69a72396adefb7c25
[2026-03-03 18:08:22] [INFO] About to extract fields from XML. File size: 7410 bytes
[2026-03-03 18:08:22] [INFO] Number of mappings: 28
[2026-03-03 18:08:22] [INFO] Starting XML parsing. Content length: 7410
[2026-03-03 18:08:22] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:08:22] [INFO] Processing 28 field mappings
[2026-03-03 18:08:22] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:08:22] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:08:22] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 18:08:22] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-03 18:08:22] [INFO]   -> Found value: PCFD
RESC
[2026-03-03 18:08:22] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC"
[2026-03-03 18:08:22] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:08:22] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-03 18:08:22] [INFO]   -> Found value: 2026000577
[2026-03-03 18:08:22] [INFO]   -> Set field 'incidentInternalId' = "2026000577"
[2026-03-03 18:08:22] [INFO]   -> Set field 'dispatchRunNumber' = "2026000577"
[2026-03-03 18:08:22] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:08:22] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 18:08:22] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 18:08:22] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:08:22] [INFO]   -> Found value: 2345
[2026-03-03 18:08:22] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2345
[2026-03-03 18:08:22] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:08:22] [INFO]   -> Found value: TN
[2026-03-03 18:08:22] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:08:22] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:08:22] [INFO]   -> Found value: 38506
[2026-03-03 18:08:22] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 18:08:22] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:08:22] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:22] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:08:22] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:22] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:08:22] [INFO]   -> Found value: 36.16567
[2026-03-03 18:08:22] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.16566999999999865167410462163388729095458984375
[2026-03-03 18:08:22] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:08:22] [INFO]   -> Found value: -85.39429
[2026-03-03 18:08:22] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.3942899999999980309439706616103649139404296875
[2026-03-03 18:08:22] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:08:22] [INFO]   -> Found value: 2026-03-02 21:11:25
[2026-03-03 18:08:22] [INFO]   -> Set field 'alarm' = "2026-03-02 21:11:25"
[2026-03-03 18:08:22] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:08:22] [INFO]   -> Found value: 2026-03-02 21:12:02
[2026-03-03 18:08:22] [INFO]   -> Set field 'dispatched' = "2026-03-02 21:12:02"
[2026-03-03 18:08:22] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:08:22] [INFO]   -> Found value: 2026-03-02 21:13:12
[2026-03-03 18:08:22] [INFO]   -> Set field 'enroute' = "2026-03-02 21:13:12"
[2026-03-03 18:08:22] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:08:22] [INFO]   -> Found value: 2026-03-02 21:29:29
[2026-03-03 18:08:22] [INFO]   -> Set field 'onScene' = "2026-03-02 21:29:29"
[2026-03-03 18:08:22] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:08:22] [INFO]   -> Found value: 2026-03-02 21:52:11
[2026-03-03 18:08:22] [INFO]   -> Set field 'cleared' = "2026-03-02 21:52:11"
[2026-03-03 18:08:22] [INFO]   -> Set field 'inService' = "2026-03-02 21:52:11"
[2026-03-03 18:08:22] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:08:22] [INFO]   -> Found value: CANADA FLATT RD
[2026-03-03 18:08:22] [INFO]   -> Set field 'incidentLocationCross' = "CANADA FLATT RD"
[2026-03-03 18:08:22] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:08:22] [INFO]   -> Found value: 984
[2026-03-03 18:08:22] [INFO]   -> Set field 'cADVehicleID' = 984
[2026-03-03 18:08:22] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:08:22] [INFO]   -> Found value: 2026-03-02 21:26:56
[2026-03-03 18:08:22] [INFO]   -> Set field 'timedispatch' = "2026-03-02 21:26:56"
[2026-03-03 18:08:22] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:08:22] [INFO]   -> Found value: 2026-03-02 21:26:56
[2026-03-03 18:08:22] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-02 21:26:56"
[2026-03-03 18:08:22] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:08:22] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:22] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:08:22] [INFO]   -> Found value: 2026-03-02 21:52:11
[2026-03-03 18:08:22] [INFO]   -> Set field 'timeunitclear' = "2026-03-02 21:52:11"
[2026-03-03 18:08:22] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:08:22] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:22] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:08:22] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 18:08:22] [INFO]   -> Found value: 20260023167
[2026-03-03 18:08:22] [INFO]   -> Set field 'policeReportNumber' = "20260023167"
[2026-03-03 18:08:22] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:08:22] [INFO]   -> Found value: [EMS] CHEST DISCOMFORT- CLAMMY  [03/02/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [0...
[2026-03-03 18:08:22] [INFO]   -> Set field 'dispatchNotes' = "[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]"
[2026-03-03 18:08:22] [INFO]   -> Set field 'cADLog' = "[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]"
[2026-03-03 18:08:22] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:08:22] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 18:08:22] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 18:08:22] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:08:22] [INFO]   -> Found value: CLINTON CONLEY
[2026-03-03 18:08:22] [INFO]   -> Set field 'streetName' = "CLINTON CONLEY"
[2026-03-03 18:08:22] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:08:22] [INFO]   -> Found value: RD
[2026-03-03 18:08:22] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 18:08:22] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:08:22] [INFO]   -> Found value: 2345 CLINTON CONLEY RD
[2026-03-03 18:08:22] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2345 CLINTON CONLEY RD"
[2026-03-03 18:08:22] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-03 18:08:22] [INFO] Concatenating street name and type
[2026-03-03 18:08:22] [INFO]   -> Combined street name: CLINTON CONLEY RD
[2026-03-03 18:08:22] [INFO] Built locationCoordinates from lat/lng: 36.16567,-85.39429
[2026-03-03 18:08:22] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nRESC","incidentInternalId":"2026000577","dispatchRunNumber":"2026000577","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":2345,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.16566999999999865167410462163388729095458984375,"nERISIncidentLongitude":-85.3942899999999980309439706616103649139404296875,"alarm":"2026-03-02 21:11:25","dispatched":"2026-03-02 21:12:02","enroute":"2026-03-02 21:13:12","onScene":"2026-03-02 21:29:29","cleared":"2026-03-02 21:52:11","inService":"2026-03-02 21:52:11","incidentLocationCross":"CANADA FLATT RD","cADVehicleID":984,"timedispatch":"2026-03-02 21:26:56","timeenroutetoscene":"2026-03-02 21:26:56","timeunitclear":"2026-03-02 21:52:11","policeReportNumber":"20260023167","dispatchNotes":"[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]","cADLog":"[EMS] CHEST DISCOMFORT- CLAMMY  [03\/02\/26 21:11:49 JDICK] Event spawned from BREATHING PROBLEMS.  [03\/02\/2026 21:11:25 JDICK] 92 YOF-LEFT ARM NUMBNESS  [03\/02\/26 21:11:19 JDICK]]","incidentLocationCity":"COOKEVILLE","streetName":"CLINTON CONLEY RD","incidentAddressTextVersionStreet":"2345 CLINTON CONLEY RD","locationCoordinates":"36.16567,-85.39429"}
[2026-03-03 18:08:22] [INFO] Number of extracted fields: 27
[2026-03-03 18:08:22] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC'
[2026-03-03 18:08:22] [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-03 18:08:22] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC"]
[2026-03-03 18:08:22] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:08:22] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 18:08:22] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-03 18:08: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-03 18:08: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-03 18:08:23] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-03 18:08:23] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 18:08:23] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 18:08:23] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-03 18:08:23] [INFO] Found existing Dispatch with cADNumber '2026000577', ID: 69a651872d78c74ce - will update instead of create
[2026-03-03 18:08:23] [INFO] Updated existing Dispatches record with ID: 69a651872d78c74ce
[2026-03-03 18:08:23] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:08:23] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:08: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-03 18:08:27] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023167_20260303_180751.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:08:27] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:08:27] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023244_20260303_180752.XML
[2026-03-03 18:08:27] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023244_20260303_180752.XML for user: 68f1466aed072ad4a
[2026-03-03 18:08:27] [INFO] File size: 7490 bytes
[2026-03-03 18:08:27] [INFO] Created FTPFiles record with ID: 69a7239be7f00aa27
[2026-03-03 18:08:27] [INFO] About to extract fields from XML. File size: 7490 bytes
[2026-03-03 18:08:27] [INFO] Number of mappings: 28
[2026-03-03 18:08:27] [INFO] Starting XML parsing. Content length: 7490
[2026-03-03 18:08:27] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:08:27] [INFO] Processing 28 field mappings
[2026-03-03 18:08:27] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:08:27] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:08:27] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 18:08:27] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-03 18:08:27] [INFO]   -> Found value: PCFD
RESC
[2026-03-03 18:08:27] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC"
[2026-03-03 18:08:27] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:08:27] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-03 18:08:27] [INFO]   -> Found value: 2026000578
[2026-03-03 18:08:27] [INFO]   -> Set field 'incidentInternalId' = "2026000578"
[2026-03-03 18:08:27] [INFO]   -> Set field 'dispatchRunNumber' = "2026000578"
[2026-03-03 18:08:27] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:08:27] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-03 18:08:27] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-03 18:08:27] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:08:27] [INFO]   -> Found value: 5244
[2026-03-03 18:08:27] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5244
[2026-03-03 18:08:27] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:08:27] [INFO]   -> Found value: TN
[2026-03-03 18:08:27] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:08:27] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:08:27] [INFO]   -> Found value: 38544
[2026-03-03 18:08:27] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-03 18:08:27] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:08:27] [INFO]   -> Found value: ROBERT DEDMON
[2026-03-03 18:08:27] [INFO]   -> Set field 'businessName' = "ROBERT DEDMON"
[2026-03-03 18:08:27] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:08:27] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:27] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:08:27] [INFO]   -> Found value: 36.16971
[2026-03-03 18:08:27] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.16971000000000202589944819919764995574951171875
[2026-03-03 18:08:27] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:08:27] [INFO]   -> Found value: -85.60717
[2026-03-03 18:08:27] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.607169999999996434780769050121307373046875
[2026-03-03 18:08:27] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:08:27] [INFO]   -> Found value: 2026-03-03 02:04:27
[2026-03-03 18:08:27] [INFO]   -> Set field 'alarm' = "2026-03-03 02:04:27"
[2026-03-03 18:08:27] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:08:27] [INFO]   -> Found value: 2026-03-03 02:04:52
[2026-03-03 18:08:27] [INFO]   -> Set field 'dispatched' = "2026-03-03 02:04:52"
[2026-03-03 18:08:27] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:08:27] [INFO]   -> Found value: 2026-03-03 02:07:17
[2026-03-03 18:08:27] [INFO]   -> Set field 'enroute' = "2026-03-03 02:07:17"
[2026-03-03 18:08:27] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:08:27] [INFO]   -> Found value: 2026-03-03 02:08:26
[2026-03-03 18:08:27] [INFO]   -> Set field 'onScene' = "2026-03-03 02:08:26"
[2026-03-03 18:08:27] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:08:27] [INFO]   -> Found value: 2026-03-03 02:26:52
[2026-03-03 18:08:27] [INFO]   -> Set field 'cleared' = "2026-03-03 02:26:52"
[2026-03-03 18:08:27] [INFO]   -> Set field 'inService' = "2026-03-03 02:26:52"
[2026-03-03 18:08:27] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:08:27] [INFO]   -> Found value: WEST GATE RD/LEFFEW RD
[2026-03-03 18:08:27] [INFO]   -> Set field 'incidentLocationCross' = "WEST GATE RD\/LEFFEW RD"
[2026-03-03 18:08:27] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:08:27] [INFO]   -> Found value: 984
[2026-03-03 18:08:27] [INFO]   -> Set field 'cADVehicleID' = 984
[2026-03-03 18:08:27] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:08:27] [INFO]   -> Found value: 2026-03-03 02:07:14
[2026-03-03 18:08:27] [INFO]   -> Set field 'timedispatch' = "2026-03-03 02:07:14"
[2026-03-03 18:08:27] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:08:27] [INFO]   -> Found value: 2026-03-03 02:07:17
[2026-03-03 18:08:27] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 02:07:17"
[2026-03-03 18:08:27] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:08:27] [INFO]   -> Found value: 2026-03-03 02:08:26
[2026-03-03 18:08:27] [INFO]   -> Set field 'timeonscene' = "2026-03-03 02:08:26"
[2026-03-03 18:08:27] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:08:27] [INFO]   -> Found value: 2026-03-03 02:26:52
[2026-03-03 18:08:27] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 02:26:52"
[2026-03-03 18:08:27] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:08:27] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:27] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:08:27] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 18:08:27] [INFO]   -> Found value: 20260023244
[2026-03-03 18:08:27] [INFO]   -> Set field 'policeReportNumber' = "20260023244"
[2026-03-03 18:08:27] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:08:27] [INFO]   -> Found value: [EMS] UDTS: {732} PATIENT LOADED  [03/03/26 02:26:18 DSWINK] [EMS] DIZZY- FEVER-  [03/03/26 02:04:52...
[2026-03-03 18:08:27] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: {732} PATIENT LOADED  [03\/03\/26 02:26:18 DSWINK] [EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]"
[2026-03-03 18:08:27] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: {732} PATIENT LOADED  [03\/03\/26 02:26:18 DSWINK] [EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]"
[2026-03-03 18:08:27] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:08:27] [INFO]   -> Found value: BAXTER
[2026-03-03 18:08:27] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-03 18:08:27] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:08:27] [INFO]   -> Found value: NASHVILLE
[2026-03-03 18:08:27] [INFO]   -> Set field 'streetName' = "NASHVILLE"
[2026-03-03 18:08:27] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:08:27] [INFO]   -> Found value: HWY
[2026-03-03 18:08:27] [INFO]   -> Set field 'streetType' = "HWY"
[2026-03-03 18:08:27] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:08:27] [INFO]   -> Found value: 5244 NASHVILLE HWY
[2026-03-03 18:08:27] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "5244 NASHVILLE HWY"
[2026-03-03 18:08:27] [INFO] Finished extracting fields. Total fields extracted: 29
[2026-03-03 18:08:27] [INFO] Concatenating street name and type
[2026-03-03 18:08:27] [INFO]   -> Combined street name: NASHVILLE HWY
[2026-03-03 18:08:27] [INFO] Built locationCoordinates from lat/lng: 36.16971,-85.60717
[2026-03-03 18:08:27] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nRESC","incidentInternalId":"2026000578","dispatchRunNumber":"2026000578","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":5244,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"businessName":"ROBERT DEDMON","nERISIncidentLatitude":36.16971000000000202589944819919764995574951171875,"nERISIncidentLongitude":-85.607169999999996434780769050121307373046875,"alarm":"2026-03-03 02:04:27","dispatched":"2026-03-03 02:04:52","enroute":"2026-03-03 02:07:17","onScene":"2026-03-03 02:08:26","cleared":"2026-03-03 02:26:52","inService":"2026-03-03 02:26:52","incidentLocationCross":"WEST GATE RD\/LEFFEW RD","cADVehicleID":984,"timedispatch":"2026-03-03 02:07:14","timeenroutetoscene":"2026-03-03 02:07:17","timeonscene":"2026-03-03 02:08:26","timeunitclear":"2026-03-03 02:26:52","policeReportNumber":"20260023244","dispatchNotes":"[EMS] UDTS: {732} PATIENT LOADED  [03\/03\/26 02:26:18 DSWINK] [EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]","cADLog":"[EMS] UDTS: {732} PATIENT LOADED  [03\/03\/26 02:26:18 DSWINK] [EMS] DIZZY- FEVER-  [03\/03\/26 02:04:52 JDICK] Event spawned from FAINTING \/ SYNCOPE.  [03\/03\/2026 02:04:27 JDICK]","incidentLocationCity":"BAXTER","streetName":"NASHVILLE HWY","incidentAddressTextVersionStreet":"5244 NASHVILLE HWY","locationCoordinates":"36.16971,-85.60717"}
[2026-03-03 18:08:27] [INFO] Number of extracted fields: 29
[2026-03-03 18:08:27] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC'
[2026-03-03 18:08:27] [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-03 18:08:27] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC"]
[2026-03-03 18:08:27] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:08:28] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 18:08:28] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-03 18:08: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-03 18:08: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-03 18:08:28] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-03 18:08:28] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 18:08:28] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 18:08:28] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-03 18:08:28] [INFO] Found existing Dispatch with cADNumber '2026000578', ID: 69a6962a2ba39638f - will update instead of create
[2026-03-03 18:08:28] [INFO] Updated existing Dispatches record with ID: 69a6962a2ba39638f
[2026-03-03 18:08:28] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:08:28] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:08: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-03 18:08:32] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023244_20260303_180752.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:08:32] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:08:32] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023251_20260303_180753.XML
[2026-03-03 18:08:32] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023251_20260303_180753.XML for user: 68f1466aed072ad4a
[2026-03-03 18:08:32] [INFO] File size: 6404 bytes
[2026-03-03 18:08:32] [INFO] Created FTPFiles record with ID: 69a723a0667707365
[2026-03-03 18:08:32] [INFO] About to extract fields from XML. File size: 6404 bytes
[2026-03-03 18:08:32] [INFO] Number of mappings: 28
[2026-03-03 18:08:32] [INFO] Starting XML parsing. Content length: 6404
[2026-03-03 18:08:32] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:08:32] [INFO] Processing 28 field mappings
[2026-03-03 18:08:32] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:08:32] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:08:32] [INFO]   -> Found value: PCFD
[2026-03-03 18:08:32] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 18:08:32] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:08:32] [INFO]   -> Found value: 2026000579
[2026-03-03 18:08:32] [INFO]   -> Set field 'incidentInternalId' = "2026000579"
[2026-03-03 18:08:32] [INFO]   -> Set field 'dispatchRunNumber' = "2026000579"
[2026-03-03 18:08:32] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:08:32] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-03 18:08:32] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-03 18:08:32] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:08:32] [INFO]   -> Found value: 1492
[2026-03-03 18:08:32] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1492
[2026-03-03 18:08:32] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:08:32] [INFO]   -> Found value: TN
[2026-03-03 18:08:32] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:08:32] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:08:32] [INFO]   -> Found value: 38506
[2026-03-03 18:08:32] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 18:08:32] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:08:32] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:32] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:08:32] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:32] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:08:32] [INFO]   -> Found value: 36.23264
[2026-03-03 18:08:32] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.23264000000000351064954884350299835205078125
[2026-03-03 18:08:32] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:08:32] [INFO]   -> Found value: -85.46288
[2026-03-03 18:08:32] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4628799999999984038367983885109424591064453125
[2026-03-03 18:08:32] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:08:32] [INFO]   -> Found value: 2026-03-03 03:01:42
[2026-03-03 18:08:32] [INFO]   -> Set field 'alarm' = "2026-03-03 03:01:42"
[2026-03-03 18:08:32] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:08:32] [INFO]   -> Found value: 2026-03-03 03:02:09
[2026-03-03 18:08:32] [INFO]   -> Set field 'dispatched' = "2026-03-03 03:02:09"
[2026-03-03 18:08:32] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:08:32] [INFO]   -> Found value: 2026-03-03 03:04:46
[2026-03-03 18:08:32] [INFO]   -> Set field 'enroute' = "2026-03-03 03:04:46"
[2026-03-03 18:08:32] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:08:32] [INFO]   -> Found value: 2026-03-03 03:09:53
[2026-03-03 18:08:32] [INFO]   -> Set field 'onScene' = "2026-03-03 03:09:53"
[2026-03-03 18:08:32] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:08:32] [INFO]   -> Found value: 2026-03-03 03:26:26
[2026-03-03 18:08:32] [INFO]   -> Set field 'cleared' = "2026-03-03 03:26:26"
[2026-03-03 18:08:32] [INFO]   -> Set field 'inService' = "2026-03-03 03:26:26"
[2026-03-03 18:08:32] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:08:32] [INFO]   -> Found value: N QUINLAND LAKE RD/BEAR CREEK PT
[2026-03-03 18:08:32] [INFO]   -> Set field 'incidentLocationCross' = "N QUINLAND LAKE RD\/BEAR CREEK PT"
[2026-03-03 18:08:32] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:08:32] [INFO]   -> Found value: PCFR
[2026-03-03 18:08:32] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 18:08:32] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:08:32] [INFO]   -> Found value: 2026-03-03 03:02:09
[2026-03-03 18:08:32] [INFO]   -> Set field 'timedispatch' = "2026-03-03 03:02:09"
[2026-03-03 18:08:32] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:08:32] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:32] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:08:32] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:32] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:08:32] [INFO]   -> Found value: 2026-03-03 03:04:39
[2026-03-03 18:08:32] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 03:04:39"
[2026-03-03 18:08:32] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:08:32] [INFO]   -> Found value: 2026-03-03 03:04:39
[2026-03-03 18:08:32] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-03 03:04:39"
[2026-03-03 18:08:32] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:08:32] [INFO]   -> Found value: 20260023251
[2026-03-03 18:08:32] [INFO]   -> Set field 'policeReportNumber' = "20260023251"
[2026-03-03 18:08:32] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:08:32] [INFO]   -> Found value: [LAW] {P3329} MALE IS RESPONSIVE// EMS ON SCENE  [03/03/26 03:13:01 RJGIPSON] [LAW] PCSO ENRT  [03/0...
[2026-03-03 18:08:32] [INFO]   -> Set field 'dispatchNotes' = "[LAW] {P3329} MALE IS RESPONSIVE\/\/ EMS ON SCENE  [03\/03\/26 03:13:01 RJGIPSON] [LAW] PCSO ENRT  [03\/03\/26 03:04:47 RJGIPSON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/03\/26 03:04:44 RJGIPSON] [EMS] 38 YOM  [03\/03\/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03\/03\/26 03:02:12 JDICK] [EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]"
[2026-03-03 18:08:32] [INFO]   -> Set field 'cADLog' = "[LAW] {P3329} MALE IS RESPONSIVE\/\/ EMS ON SCENE  [03\/03\/26 03:13:01 RJGIPSON] [LAW] PCSO ENRT  [03\/03\/26 03:04:47 RJGIPSON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/03\/26 03:04:44 RJGIPSON] [EMS] 38 YOM  [03\/03\/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03\/03\/26 03:02:12 JDICK] [EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]"
[2026-03-03 18:08:32] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:08:32] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 18:08:32] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 18:08:32] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:08:32] [INFO]   -> Found value: BEAR CREEK
[2026-03-03 18:08:32] [INFO]   -> Set field 'streetName' = "BEAR CREEK"
[2026-03-03 18:08:32] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:08:32] [INFO]   -> Found value: RD
[2026-03-03 18:08:32] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 18:08:32] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:08:32] [INFO]   -> Found value: 1492 BEAR CREEK RD
[2026-03-03 18:08:32] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1492 BEAR CREEK RD"
[2026-03-03 18:08:32] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-03 18:08:32] [INFO] Concatenating street name and type
[2026-03-03 18:08:32] [INFO]   -> Combined street name: BEAR CREEK RD
[2026-03-03 18:08:32] [INFO] Built locationCoordinates from lat/lng: 36.23264,-85.46288
[2026-03-03 18:08:32] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000579","dispatchRunNumber":"2026000579","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":1492,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.23264000000000351064954884350299835205078125,"nERISIncidentLongitude":-85.4628799999999984038367983885109424591064453125,"alarm":"2026-03-03 03:01:42","dispatched":"2026-03-03 03:02:09","enroute":"2026-03-03 03:04:46","onScene":"2026-03-03 03:09:53","cleared":"2026-03-03 03:26:26","inService":"2026-03-03 03:26:26","incidentLocationCross":"N QUINLAND LAKE RD\/BEAR CREEK PT","cADVehicleID":"PCFR","timedispatch":"2026-03-03 03:02:09","timeunitclear":"2026-03-03 03:04:39","timecanceledenroute":"2026-03-03 03:04:39","policeReportNumber":"20260023251","dispatchNotes":"[LAW] {P3329} MALE IS RESPONSIVE\/\/ EMS ON SCENE  [03\/03\/26 03:13:01 RJGIPSON] [LAW] PCSO ENRT  [03\/03\/26 03:04:47 RJGIPSON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/03\/26 03:04:44 RJGIPSON] [EMS] 38 YOM  [03\/03\/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03\/03\/26 03:02:12 JDICK] [EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]","cADLog":"[LAW] {P3329} MALE IS RESPONSIVE\/\/ EMS ON SCENE  [03\/03\/26 03:13:01 RJGIPSON] [LAW] PCSO ENRT  [03\/03\/26 03:04:47 RJGIPSON] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/03\/26 03:04:44 RJGIPSON] [EMS] 38 YOM  [03\/03\/26 03:02:18 JDICK] [EMS] HOUSE IN BACK  [03\/03\/26 03:02:12 JDICK] [EMS] BREATHING  FELL IN BATHROOM  [03\/03\/26 03:02:01 JDICK] Event spawned from UNCONSCIOUS.  [03\/03\/2026 03:01:42 JDICK]","incidentLocationCity":"COOKEVILLE","streetName":"BEAR CREEK RD","incidentAddressTextVersionStreet":"1492 BEAR CREEK RD","locationCoordinates":"36.23264,-85.46288"}
[2026-03-03 18:08:32] [INFO] Number of extracted fields: 27
[2026-03-03 18:08:32] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 18:08:32] [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-03 18:08:32] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 18:08:32] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:08:32] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 18:08: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-03 18:08: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-03 18:08:32] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 18:08:32] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-03 18:08:33] [INFO] Found existing Dispatch with cADNumber '2026000579', ID: 69a6a396b28a1a1d3 - will update instead of create
[2026-03-03 18:08:33] [INFO] Updated existing Dispatches record with ID: 69a6a396b28a1a1d3
[2026-03-03 18:08:33] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:08:33] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:08: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-03 18:08:36] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023251_20260303_180753.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:08:36] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:08:36] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023258_20260303_180754.XML
[2026-03-03 18:08:36] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023258_20260303_180754.XML for user: 68f1466aed072ad4a
[2026-03-03 18:08:36] [INFO] File size: 6451 bytes
[2026-03-03 18:08:36] [INFO] Created FTPFiles record with ID: 69a723a4d759ca79b
[2026-03-03 18:08:36] [INFO] About to extract fields from XML. File size: 6451 bytes
[2026-03-03 18:08:36] [INFO] Number of mappings: 28
[2026-03-03 18:08:36] [INFO] Starting XML parsing. Content length: 6451
[2026-03-03 18:08:36] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:08:36] [INFO] Processing 28 field mappings
[2026-03-03 18:08:36] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:08:36] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:08:36] [INFO]   -> Found value: PCFD
[2026-03-03 18:08:36] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 18:08:36] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:08:36] [INFO]   -> Found value: 2026000580
[2026-03-03 18:08:36] [INFO]   -> Set field 'incidentInternalId' = "2026000580"
[2026-03-03 18:08:36] [INFO]   -> Set field 'dispatchRunNumber' = "2026000580"
[2026-03-03 18:08:36] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:08:36] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-03 18:08:36] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-03 18:08:36] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:08:36] [INFO]   -> Found value: 333
[2026-03-03 18:08:36] [INFO]   -> Set field 'incidentLocationStreetNumber' = 333
[2026-03-03 18:08:36] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:08:36] [INFO]   -> Found value: TN
[2026-03-03 18:08:36] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:08:36] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:08:36] [INFO]   -> Found value: 38506
[2026-03-03 18:08:36] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 18:08:36] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:08:36] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:36] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:08:36] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:36] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:08:36] [INFO]   -> Found value: 36.17397
[2026-03-03 18:08:36] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.17396999999999707142706029117107391357421875
[2026-03-03 18:08:36] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:08:36] [INFO]   -> Found value: -85.44318
[2026-03-03 18:08:36] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4431799999999981309883878566324710845947265625
[2026-03-03 18:08:36] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:08:36] [INFO]   -> Found value: 2026-03-03 05:27:09
[2026-03-03 18:08:36] [INFO]   -> Set field 'alarm' = "2026-03-03 05:27:09"
[2026-03-03 18:08:36] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:08:36] [INFO]   -> Found value: 2026-03-03 05:29:23
[2026-03-03 18:08:36] [INFO]   -> Set field 'dispatched' = "2026-03-03 05:29:23"
[2026-03-03 18:08:36] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:08:36] [INFO]   -> Found value: 2026-03-03 05:31:11
[2026-03-03 18:08:36] [INFO]   -> Set field 'enroute' = "2026-03-03 05:31:11"
[2026-03-03 18:08:36] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:08:36] [INFO]   -> Found value: 2026-03-03 05:41:49
[2026-03-03 18:08:36] [INFO]   -> Set field 'onScene' = "2026-03-03 05:41:49"
[2026-03-03 18:08:36] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:08:36] [INFO]   -> Found value: 2026-03-03 05:45:46
[2026-03-03 18:08:36] [INFO]   -> Set field 'cleared' = "2026-03-03 05:45:46"
[2026-03-03 18:08:36] [INFO]   -> Set field 'inService' = "2026-03-03 05:45:46"
[2026-03-03 18:08:36] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:08:36] [INFO]   -> Found value: SHENANDOAH LN/OLD WALTON RD
[2026-03-03 18:08:36] [INFO]   -> Set field 'incidentLocationCross' = "SHENANDOAH LN\/OLD WALTON RD"
[2026-03-03 18:08:36] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:08:36] [INFO]   -> Found value: TK12
[2026-03-03 18:08:36] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-03 18:08:36] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:08:36] [INFO]   -> Found value: 2026-03-03 05:31:11
[2026-03-03 18:08:36] [INFO]   -> Set field 'timedispatch' = "2026-03-03 05:31:11"
[2026-03-03 18:08:36] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:08:36] [INFO]   -> Found value: 2026-03-03 05:31:11
[2026-03-03 18:08:36] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 05:31:11"
[2026-03-03 18:08:36] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:08:36] [INFO]   -> Found value: 2026-03-03 05:41:49
[2026-03-03 18:08:36] [INFO]   -> Set field 'timeonscene' = "2026-03-03 05:41:49"
[2026-03-03 18:08:36] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:08:36] [INFO]   -> Found value: 2026-03-03 05:45:46
[2026-03-03 18:08:36] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 05:45:46"
[2026-03-03 18:08:36] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:08:36] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:36] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:08:36] [INFO]   -> Found value: 20260023258
[2026-03-03 18:08:36] [INFO]   -> Set field 'policeReportNumber' = "20260023258"
[2026-03-03 18:08:36] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:08:36] [INFO]   -> Found value: HOMEOWNER JUST PULLED UP AND SAY THEY HAVE THE FIRE KNOCKED OUT BUT MAY WANT TO DOUBLE CHECK IT..  [...
[2026-03-03 18:08:36] [INFO]   -> Set field 'dispatchNotes' = "HOMEOWNER JUST PULLED UP AND SAY THEY HAVE THE FIRE KNOCKED OUT BUT MAY WANT TO DOUBLE CHECK IT..  [03\/03\/26 05:36:45 MCLAYBURN2] STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]"
[2026-03-03 18:08:36] [INFO]   -> Set field 'cADLog' = "HOMEOWNER JUST PULLED UP AND SAY THEY HAVE THE FIRE KNOCKED OUT BUT MAY WANT TO DOUBLE CHECK IT..  [03\/03\/26 05:36:45 MCLAYBURN2] STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]"
[2026-03-03 18:08:36] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:08:36] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 18:08:36] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 18:08:36] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:08:36] [INFO]   -> Found value: OLD QUALLS
[2026-03-03 18:08:36] [INFO]   -> Set field 'streetName' = "OLD QUALLS"
[2026-03-03 18:08:36] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:08:36] [INFO]   -> Found value: RD
[2026-03-03 18:08:36] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 18:08:36] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:08:36] [INFO]   -> Found value: 333 OLD QUALLS RD
[2026-03-03 18:08:36] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "333 OLD QUALLS RD"
[2026-03-03 18:08:36] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-03 18:08:36] [INFO] Concatenating street name and type
[2026-03-03 18:08:36] [INFO]   -> Combined street name: OLD QUALLS RD
[2026-03-03 18:08:36] [INFO] Built locationCoordinates from lat/lng: 36.17397,-85.44318
[2026-03-03 18:08:36] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000580","dispatchRunNumber":"2026000580","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":333,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.17396999999999707142706029117107391357421875,"nERISIncidentLongitude":-85.4431799999999981309883878566324710845947265625,"alarm":"2026-03-03 05:27:09","dispatched":"2026-03-03 05:29:23","enroute":"2026-03-03 05:31:11","onScene":"2026-03-03 05:41:49","cleared":"2026-03-03 05:45:46","inService":"2026-03-03 05:45:46","incidentLocationCross":"SHENANDOAH LN\/OLD WALTON RD","cADVehicleID":"TK12","timedispatch":"2026-03-03 05:31:11","timeenroutetoscene":"2026-03-03 05:31:11","timeonscene":"2026-03-03 05:41:49","timeunitclear":"2026-03-03 05:45:46","policeReportNumber":"20260023258","dispatchNotes":"HOMEOWNER JUST PULLED UP AND SAY THEY HAVE THE FIRE KNOCKED OUT BUT MAY WANT TO DOUBLE CHECK IT..  [03\/03\/26 05:36:45 MCLAYBURN2] STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]","cADLog":"HOMEOWNER JUST PULLED UP AND SAY THEY HAVE THE FIRE KNOCKED OUT BUT MAY WANT TO DOUBLE CHECK IT..  [03\/03\/26 05:36:45 MCLAYBURN2] STATED ITS SMALL AT THIS TIME  [03\/03\/26 05:29:22 MCLAYBURN2] BRUSH FIRE BY THE HOUSE PER CALLER  [03\/03\/26 05:28:44 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"OLD QUALLS RD","incidentAddressTextVersionStreet":"333 OLD QUALLS RD","locationCoordinates":"36.17397,-85.44318"}
[2026-03-03 18:08:36] [INFO] Number of extracted fields: 28
[2026-03-03 18:08:36] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 18:08:36] [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-03 18:08:36] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 18:08:36] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:08:37] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 18:08: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-03 18:08: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-03 18:08:37] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 18:08:37] [INFO] Found existing IncidentTypeMapping with ID: 693de9e1e8922fc29
[2026-03-03 18:08:37] [INFO] Found existing Dispatch with cADNumber '2026000580', ID: 69a6c619c6dabc502 - will update instead of create
[2026-03-03 18:08:37] [INFO] Updated existing Dispatches record with ID: 69a6c619c6dabc502
[2026-03-03 18:08:37] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:08:37] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:08: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-03 18:08:41] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023258_20260303_180754.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:08:41] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:08:41] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023322_20260303_180755.XML
[2026-03-03 18:08:41] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023322_20260303_180755.XML for user: 68f1466aed072ad4a
[2026-03-03 18:08:41] [INFO] File size: 6444 bytes
[2026-03-03 18:08:41] [INFO] Created FTPFiles record with ID: 69a723a9767a38a8c
[2026-03-03 18:08:41] [INFO] About to extract fields from XML. File size: 6444 bytes
[2026-03-03 18:08:41] [INFO] Number of mappings: 28
[2026-03-03 18:08:41] [INFO] Starting XML parsing. Content length: 6444
[2026-03-03 18:08:41] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:08:41] [INFO] Processing 28 field mappings
[2026-03-03 18:08:41] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:08:41] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:08:41] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 18:08:41] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-03 18:08:41] [INFO]   -> Found value: PCFD
RESC
[2026-03-03 18:08:41] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC"
[2026-03-03 18:08:41] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:08:41] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-03 18:08:41] [INFO]   -> Found value: 2026000581
[2026-03-03 18:08:41] [INFO]   -> Set field 'incidentInternalId' = "2026000581"
[2026-03-03 18:08:41] [INFO]   -> Set field 'dispatchRunNumber' = "2026000581"
[2026-03-03 18:08:41] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:08:41] [INFO]   -> Found value: MEDICAL CALL
[2026-03-03 18:08:41] [INFO]   -> Set field 'incidentTypeValue1' = "MEDICAL CALL"
[2026-03-03 18:08:41] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:08:41] [INFO]   -> Found value: 4335
[2026-03-03 18:08:41] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4335
[2026-03-03 18:08:41] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:08:41] [INFO]   -> Found value: TN
[2026-03-03 18:08:41] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:08:41] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:08:41] [INFO]   -> Found value: 38501
[2026-03-03 18:08:41] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-03 18:08:41] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:08:41] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:41] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:08:41] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:41] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:08:41] [INFO]   -> Found value: 36.21309
[2026-03-03 18:08:41] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21309000000000111185727291740477085113525390625
[2026-03-03 18:08:41] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:08:41] [INFO]   -> Found value: -85.59000
[2026-03-03 18:08:41] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.590000000000003410605131648480892181396484375
[2026-03-03 18:08:41] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:08:41] [INFO]   -> Found value: 2026-03-03 09:13:48
[2026-03-03 18:08:41] [INFO]   -> Set field 'alarm' = "2026-03-03 09:13:48"
[2026-03-03 18:08:41] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:08:41] [INFO]   -> Found value: 2026-03-03 09:14:26
[2026-03-03 18:08:41] [INFO]   -> Set field 'dispatched' = "2026-03-03 09:14:26"
[2026-03-03 18:08:41] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:08:41] [INFO]   -> Found value: 2026-03-03 09:17:22
[2026-03-03 18:08:41] [INFO]   -> Set field 'enroute' = "2026-03-03 09:17:22"
[2026-03-03 18:08:41] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:08:41] [INFO]   -> Found value: 2026-03-03 09:26:35
[2026-03-03 18:08:41] [INFO]   -> Set field 'onScene' = "2026-03-03 09:26:35"
[2026-03-03 18:08:41] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:08:41] [INFO]   -> Found value: 2026-03-03 09:46:03
[2026-03-03 18:08:41] [INFO]   -> Set field 'cleared' = "2026-03-03 09:46:03"
[2026-03-03 18:08:41] [INFO]   -> Set field 'inService' = "2026-03-03 09:46:03"
[2026-03-03 18:08:41] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:08:41] [INFO]   -> Found value: TULIP LN/WEST POINTE DR
[2026-03-03 18:08:41] [INFO]   -> Set field 'incidentLocationCross' = "TULIP LN\/WEST POINTE DR"
[2026-03-03 18:08:41] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:08:41] [INFO]   -> Found value: PCFR
[2026-03-03 18:08:41] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 18:08:41] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:08:41] [INFO]   -> Found value: 2026-03-03 09:14:26
[2026-03-03 18:08:41] [INFO]   -> Set field 'timedispatch' = "2026-03-03 09:14:26"
[2026-03-03 18:08:41] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:08:41] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:41] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:08:41] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:41] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:08:41] [INFO]   -> Found value: 2026-03-03 09:17:19
[2026-03-03 18:08:41] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 09:17:19"
[2026-03-03 18:08:41] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:08:41] [INFO]   -> Found value: 2026-03-03 09:17:19
[2026-03-03 18:08:41] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-03 09:17:19"
[2026-03-03 18:08:41] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:08:41] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 18:08:41] [INFO]   -> Found value: 20260023322
[2026-03-03 18:08:41] [INFO]   -> Set field 'policeReportNumber' = "20260023322"
[2026-03-03 18:08:41] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:08:41] [INFO]   -> Found value: [EMS] UDTS: {731} PATIENT LOADED  [03/03/26 09:41:49 JBOHANNON] Event spawned from MEDICAL ALARM.  [...
[2026-03-03 18:08:41] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: {731} PATIENT LOADED  [03\/03\/26 09:41:49 JBOHANNON] Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]"
[2026-03-03 18:08:41] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: {731} PATIENT LOADED  [03\/03\/26 09:41:49 JBOHANNON] Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]"
[2026-03-03 18:08:41] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:08:41] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 18:08:41] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 18:08:41] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:08:41] [INFO]   -> Found value: CUMBY
[2026-03-03 18:08:41] [INFO]   -> Set field 'streetName' = "CUMBY"
[2026-03-03 18:08:41] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:08:41] [INFO]   -> Found value: RD
[2026-03-03 18:08:41] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 18:08:41] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:08:41] [INFO]   -> Found value: 4335 CUMBY RD
[2026-03-03 18:08:41] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4335 CUMBY RD"
[2026-03-03 18:08:41] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-03 18:08:41] [INFO] Concatenating street name and type
[2026-03-03 18:08:41] [INFO]   -> Combined street name: CUMBY RD
[2026-03-03 18:08:41] [INFO] Built locationCoordinates from lat/lng: 36.21309,-85.59
[2026-03-03 18:08:41] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nRESC","incidentInternalId":"2026000581","dispatchRunNumber":"2026000581","incidentTypeValue1":"MEDICAL CALL","incidentLocationStreetNumber":4335,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.21309000000000111185727291740477085113525390625,"nERISIncidentLongitude":-85.590000000000003410605131648480892181396484375,"alarm":"2026-03-03 09:13:48","dispatched":"2026-03-03 09:14:26","enroute":"2026-03-03 09:17:22","onScene":"2026-03-03 09:26:35","cleared":"2026-03-03 09:46:03","inService":"2026-03-03 09:46:03","incidentLocationCross":"TULIP LN\/WEST POINTE DR","cADVehicleID":"PCFR","timedispatch":"2026-03-03 09:14:26","timeunitclear":"2026-03-03 09:17:19","timecanceledenroute":"2026-03-03 09:17:19","policeReportNumber":"20260023322","dispatchNotes":"[EMS] UDTS: {731} PATIENT LOADED  [03\/03\/26 09:41:49 JBOHANNON] Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]","cADLog":"[EMS] UDTS: {731} PATIENT LOADED  [03\/03\/26 09:41:49 JBOHANNON] Event spawned from MEDICAL ALARM.  [03\/03\/2026 09:13:48 KBURTON] UDTS: EMS RESPOND EMERGENCY  [03\/03\/26 09:13:36 KBURTON] FALL OVERNIGHT  UNKNOWN DOWN TIME  BACK AND KIDNEY PAIN  CAREGIVER ON SCENE ENTER THROUGH THE BACK DOOR  931-239-8472  931-261-466  REF # I34557  [03\/03\/26 09:13:10 KBURTON]]","incidentLocationCity":"COOKEVILLE","streetName":"CUMBY RD","incidentAddressTextVersionStreet":"4335 CUMBY RD","locationCoordinates":"36.21309,-85.59"}
[2026-03-03 18:08:41] [INFO] Number of extracted fields: 27
[2026-03-03 18:08:41] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC'
[2026-03-03 18:08:41] [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-03 18:08:41] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC"]
[2026-03-03 18:08:41] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:08:41] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 18:08:41] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-03 18:08: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-03 18:08: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-03 18:08:41] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-03 18:08:41] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 18:08:41] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 18:08:42] [INFO] Found existing IncidentTypeMapping with ID: 6939328c99c5522d2
[2026-03-03 18:08:42] [INFO] Found existing Dispatch with cADNumber '2026000581', ID: 69a6fad7652254137 - will update instead of create
[2026-03-03 18:08:42] [INFO] Updated existing Dispatches record with ID: 69a6fad7652254137
[2026-03-03 18:08:42] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:08:42] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:08: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-03 18:08:46] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023322_20260303_180755.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:08:46] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:08:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023356_20260303_180756.XML
[2026-03-03 18:08:46] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023356_20260303_180756.XML for user: 68f1466aed072ad4a
[2026-03-03 18:08:46] [INFO] File size: 6468 bytes
[2026-03-03 18:08:46] [INFO] Created FTPFiles record with ID: 69a723aea41cf8236
[2026-03-03 18:08:46] [INFO] About to extract fields from XML. File size: 6468 bytes
[2026-03-03 18:08:46] [INFO] Number of mappings: 28
[2026-03-03 18:08:46] [INFO] Starting XML parsing. Content length: 6468
[2026-03-03 18:08:46] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:08:46] [INFO] Processing 28 field mappings
[2026-03-03 18:08:46] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:08:46] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:08:46] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 18:08:46] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-03 18:08:46] [INFO]   -> Found value: PCFD
RESC
[2026-03-03 18:08:46] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC"
[2026-03-03 18:08:46] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:08:46] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-03 18:08:46] [INFO]   -> Found value: 2026000582
[2026-03-03 18:08:46] [INFO]   -> Set field 'incidentInternalId' = "2026000582"
[2026-03-03 18:08:46] [INFO]   -> Set field 'dispatchRunNumber' = "2026000582"
[2026-03-03 18:08:46] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:08:46] [INFO]   -> Found value: FALL VICTIM
[2026-03-03 18:08:46] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-03 18:08:46] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:08:46] [INFO]   -> Found value: 2803
[2026-03-03 18:08:46] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2803
[2026-03-03 18:08:46] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:08:46] [INFO]   -> Found value: TN
[2026-03-03 18:08:46] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:08:46] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:08:46] [INFO]   -> Found value: 38501
[2026-03-03 18:08:46] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-03 18:08:46] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:08:46] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:46] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:08:46] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:46] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:08:46] [INFO]   -> Found value: 36.21144
[2026-03-03 18:08:46] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21144000000000318095771945081651210784912109375
[2026-03-03 18:08:46] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:08:46] [INFO]   -> Found value: -85.58246
[2026-03-03 18:08:46] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.582459999999997535269358195364475250244140625
[2026-03-03 18:08:46] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:08:46] [INFO]   -> Found value: 2026-03-03 10:10:06
[2026-03-03 18:08:46] [INFO]   -> Set field 'alarm' = "2026-03-03 10:10:06"
[2026-03-03 18:08:46] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:08:46] [INFO]   -> Found value: 2026-03-03 10:11:05
[2026-03-03 18:08:46] [INFO]   -> Set field 'dispatched' = "2026-03-03 10:11:05"
[2026-03-03 18:08:46] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:08:46] [INFO]   -> Found value: 2026-03-03 10:12:42
[2026-03-03 18:08:46] [INFO]   -> Set field 'enroute' = "2026-03-03 10:12:42"
[2026-03-03 18:08:46] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:08:46] [INFO]   -> Found value: 2026-03-03 10:19:59
[2026-03-03 18:08:46] [INFO]   -> Set field 'onScene' = "2026-03-03 10:19:59"
[2026-03-03 18:08:46] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:08:46] [INFO]   -> Found value: 2026-03-03 10:55:32
[2026-03-03 18:08:46] [INFO]   -> Set field 'cleared' = "2026-03-03 10:55:32"
[2026-03-03 18:08:46] [INFO]   -> Set field 'inService' = "2026-03-03 10:55:32"
[2026-03-03 18:08:46] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:08:46] [INFO]   -> Found value: WINTER HAVEN DR/WHISPERING OAKS LN
[2026-03-03 18:08:46] [INFO]   -> Set field 'incidentLocationCross' = "WINTER HAVEN DR\/WHISPERING OAKS LN"
[2026-03-03 18:08:46] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:08:46] [INFO]   -> Found value: PCFR
[2026-03-03 18:08:46] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 18:08:46] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:08:46] [INFO]   -> Found value: 2026-03-03 10:11:05
[2026-03-03 18:08:46] [INFO]   -> Set field 'timedispatch' = "2026-03-03 10:11:05"
[2026-03-03 18:08:46] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:08:46] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:46] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:08:46] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:46] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:08:46] [INFO]   -> Found value: 2026-03-03 10:12:40
[2026-03-03 18:08:46] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 10:12:40"
[2026-03-03 18:08:46] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:08:46] [INFO]   -> Found value: 2026-03-03 10:12:40
[2026-03-03 18:08:46] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-03 10:12:40"
[2026-03-03 18:08:46] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:08:46] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 18:08:46] [INFO]   -> Found value: 20260023356
[2026-03-03 18:08:46] [INFO]   -> Set field 'policeReportNumber' = "20260023356"
[2026-03-03 18:08:46] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:08:46] [INFO]   -> Found value: [EMS] UDTS: {723} PATIENT LOADED  [03/03/26 10:46:41 JWOMACK] ROBERT DORSTY 81 YOM - UNKNOWN DOWN TI...
[2026-03-03 18:08:46] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: {723} PATIENT LOADED  [03\/03\/26 10:46:41 JWOMACK] ROBERT DORSTY 81 YOM - UNKNOWN DOWN TIME  [03\/03\/26 10:22:50 KBURTON] [EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]"
[2026-03-03 18:08:46] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: {723} PATIENT LOADED  [03\/03\/26 10:46:41 JWOMACK] ROBERT DORSTY 81 YOM - UNKNOWN DOWN TIME  [03\/03\/26 10:22:50 KBURTON] [EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]"
[2026-03-03 18:08:46] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:08:46] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 18:08:46] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 18:08:46] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:08:46] [INFO]   -> Found value: AUTUMN WOODS
[2026-03-03 18:08:46] [INFO]   -> Set field 'streetName' = "AUTUMN WOODS"
[2026-03-03 18:08:46] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:08:46] [INFO]   -> Found value: TRL
[2026-03-03 18:08:46] [INFO]   -> Set field 'streetType' = "TRL"
[2026-03-03 18:08:46] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:08:46] [INFO]   -> Found value: 2803 AUTUMN WOODS TRL
[2026-03-03 18:08:46] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2803 AUTUMN WOODS TRL"
[2026-03-03 18:08:46] [INFO] Finished extracting fields. Total fields extracted: 27
[2026-03-03 18:08:46] [INFO] Concatenating street name and type
[2026-03-03 18:08:46] [INFO]   -> Combined street name: AUTUMN WOODS TRL
[2026-03-03 18:08:46] [INFO] Built locationCoordinates from lat/lng: 36.21144,-85.58246
[2026-03-03 18:08:46] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nRESC","incidentInternalId":"2026000582","dispatchRunNumber":"2026000582","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":2803,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.21144000000000318095771945081651210784912109375,"nERISIncidentLongitude":-85.582459999999997535269358195364475250244140625,"alarm":"2026-03-03 10:10:06","dispatched":"2026-03-03 10:11:05","enroute":"2026-03-03 10:12:42","onScene":"2026-03-03 10:19:59","cleared":"2026-03-03 10:55:32","inService":"2026-03-03 10:55:32","incidentLocationCross":"WINTER HAVEN DR\/WHISPERING OAKS LN","cADVehicleID":"PCFR","timedispatch":"2026-03-03 10:11:05","timeunitclear":"2026-03-03 10:12:40","timecanceledenroute":"2026-03-03 10:12:40","policeReportNumber":"20260023356","dispatchNotes":"[EMS] UDTS: {723} PATIENT LOADED  [03\/03\/26 10:46:41 JWOMACK] ROBERT DORSTY 81 YOM - UNKNOWN DOWN TIME  [03\/03\/26 10:22:50 KBURTON] [EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]","cADLog":"[EMS] UDTS: {723} PATIENT LOADED  [03\/03\/26 10:46:41 JWOMACK] ROBERT DORSTY 81 YOM - UNKNOWN DOWN TIME  [03\/03\/26 10:22:50 KBURTON] [EMS] PT. IN THE GARAGE  SHOULDER PAIN  [03\/03\/26 10:10:36 JBOHANNON] Event spawned from FALL VICTIM.  [03\/03\/2026 10:10:06 JBOHANNON]","incidentLocationCity":"COOKEVILLE","streetName":"AUTUMN WOODS TRL","incidentAddressTextVersionStreet":"2803 AUTUMN WOODS TRL","locationCoordinates":"36.21144,-85.58246"}
[2026-03-03 18:08:46] [INFO] Number of extracted fields: 27
[2026-03-03 18:08:46] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC'
[2026-03-03 18:08:46] [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-03 18:08:46] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC"]
[2026-03-03 18:08:46] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:08:46] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 18:08:46] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-03 18:08: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-03 18:08: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-03 18:08:47] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-03 18:08:47] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 18:08:47] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 18:08:47] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-03 18:08:47] [INFO] Found existing Dispatch with cADNumber '2026000582', ID: 69a7081fe8c8988c6 - will update instead of create
[2026-03-03 18:08:47] [INFO] Updated existing Dispatches record with ID: 69a7081fe8c8988c6
[2026-03-03 18:08:47] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:08:47] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:08: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-03 18:08:51] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023356_20260303_180756.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:08:51] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:08:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023369_20260303_180757.XML
[2026-03-03 18:08:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023369_20260303_180757.XML for user: 68f1466aed072ad4a
[2026-03-03 18:08:51] [INFO] File size: 6091 bytes
[2026-03-03 18:08:52] [INFO] Created FTPFiles record with ID: 69a723b3f2a8ca524
[2026-03-03 18:08:52] [INFO] About to extract fields from XML. File size: 6091 bytes
[2026-03-03 18:08:52] [INFO] Number of mappings: 28
[2026-03-03 18:08:52] [INFO] Starting XML parsing. Content length: 6091
[2026-03-03 18:08:52] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:08:52] [INFO] Processing 28 field mappings
[2026-03-03 18:08:52] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:08:52] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:08:52] [INFO]   -> Found value: PCFD
[2026-03-03 18:08:52] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 18:08:52] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:08:52] [INFO]   -> Found value: 2026000583
[2026-03-03 18:08:52] [INFO]   -> Set field 'incidentInternalId' = "2026000583"
[2026-03-03 18:08:52] [INFO]   -> Set field 'dispatchRunNumber' = "2026000583"
[2026-03-03 18:08:52] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:08:52] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 18:08:52] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 18:08:52] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:08:52] [INFO]   -> Found value: 2675
[2026-03-03 18:08:52] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2675
[2026-03-03 18:08:52] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:08:52] [INFO]   -> Found value: TN
[2026-03-03 18:08:52] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:08:52] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:08:52] [INFO]   -> Found value: 38506
[2026-03-03 18:08:52] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 18:08:52] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:08:52] [INFO]   -> Found value: 2675 CLOVERDALE
[2026-03-03 18:08:52] [INFO]   -> Set field 'businessName' = "2675 CLOVERDALE"
[2026-03-03 18:08:52] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:08:52] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:52] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:08:52] [INFO]   -> Found value: 36.11796
[2026-03-03 18:08:52] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1179599999999965120878187008202075958251953125
[2026-03-03 18:08:52] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:08:52] [INFO]   -> Found value: -85.55356
[2026-03-03 18:08:52] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.55356000000000449290382675826549530029296875
[2026-03-03 18:08:52] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:08:52] [INFO]   -> Found value: 2026-03-03 10:28:08
[2026-03-03 18:08:52] [INFO]   -> Set field 'alarm' = "2026-03-03 10:28:08"
[2026-03-03 18:08:52] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:08:52] [INFO]   -> Found value: 2026-03-03 10:28:48
[2026-03-03 18:08:52] [INFO]   -> Set field 'dispatched' = "2026-03-03 10:28:48"
[2026-03-03 18:08:52] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:08:52] [INFO]   -> Found value: 2026-03-03 10:30:35
[2026-03-03 18:08:52] [INFO]   -> Set field 'enroute' = "2026-03-03 10:30:35"
[2026-03-03 18:08:52] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:08:52] [INFO]   -> Found value: 2026-03-03 10:36:49
[2026-03-03 18:08:52] [INFO]   -> Set field 'onScene' = "2026-03-03 10:36:49"
[2026-03-03 18:08:52] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:08:52] [INFO]   -> Found value: 2026-03-03 10:38:03
[2026-03-03 18:08:52] [INFO]   -> Set field 'cleared' = "2026-03-03 10:38:03"
[2026-03-03 18:08:52] [INFO]   -> Set field 'inService' = "2026-03-03 10:38:03"
[2026-03-03 18:08:52] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:08:52] [INFO]   -> Found value: OAKHURST CIR/SKYMONT DR
[2026-03-03 18:08:52] [INFO]   -> Set field 'incidentLocationCross' = "OAKHURST CIR\/SKYMONT DR"
[2026-03-03 18:08:52] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:08:52] [INFO]   -> Found value: PCFR
[2026-03-03 18:08:52] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 18:08:52] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:08:52] [INFO]   -> Found value: 2026-03-03 10:28:48
[2026-03-03 18:08:52] [INFO]   -> Set field 'timedispatch' = "2026-03-03 10:28:48"
[2026-03-03 18:08:52] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:08:52] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:52] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:08:52] [INFO]   -> No value found (null or empty)
[2026-03-03 18:08:52] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:08:52] [INFO]   -> Found value: 2026-03-03 10:30:33
[2026-03-03 18:08:52] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 10:30:33"
[2026-03-03 18:08:52] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:08:52] [INFO]   -> Found value: 2026-03-03 10:30:33
[2026-03-03 18:08:52] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-03 10:30:33"
[2026-03-03 18:08:52] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:08:52] [INFO]   -> Found value: 20260023369
[2026-03-03 18:08:52] [INFO]   -> Set field 'policeReportNumber' = "20260023369"
[2026-03-03 18:08:52] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:08:52] [INFO]   -> Found value: Event spawned from BREATHING PROBLEMS.  [03/03/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH ...
[2026-03-03 18:08:52] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]"
[2026-03-03 18:08:52] [INFO]   -> Set field 'cADLog' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]"
[2026-03-03 18:08:52] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:08:52] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 18:08:52] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 18:08:52] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:08:52] [INFO]   -> Found value: CLOVERDALE
[2026-03-03 18:08:52] [INFO]   -> Set field 'streetName' = "CLOVERDALE"
[2026-03-03 18:08:52] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:08:52] [INFO]   -> Found value: DR
[2026-03-03 18:08:52] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-03 18:08:52] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:08:52] [INFO]   -> Found value: 2675 CLOVERDALE DR
[2026-03-03 18:08:52] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2675 CLOVERDALE DR"
[2026-03-03 18:08:52] [INFO] Finished extracting fields. Total fields extracted: 28
[2026-03-03 18:08:52] [INFO] Concatenating street name and type
[2026-03-03 18:08:52] [INFO]   -> Combined street name: CLOVERDALE DR
[2026-03-03 18:08:52] [INFO] Built locationCoordinates from lat/lng: 36.11796,-85.55356
[2026-03-03 18:08:52] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000583","dispatchRunNumber":"2026000583","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":2675,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"2675 CLOVERDALE","nERISIncidentLatitude":36.1179599999999965120878187008202075958251953125,"nERISIncidentLongitude":-85.55356000000000449290382675826549530029296875,"alarm":"2026-03-03 10:28:08","dispatched":"2026-03-03 10:28:48","enroute":"2026-03-03 10:30:35","onScene":"2026-03-03 10:36:49","cleared":"2026-03-03 10:38:03","inService":"2026-03-03 10:38:03","incidentLocationCross":"OAKHURST CIR\/SKYMONT DR","cADVehicleID":"PCFR","timedispatch":"2026-03-03 10:28:48","timeunitclear":"2026-03-03 10:30:33","timecanceledenroute":"2026-03-03 10:30:33","policeReportNumber":"20260023369","dispatchNotes":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]","cADLog":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 10:28:08 KBURTON] CHF COPD  SHORTNESS OF BREATH  REQUESTING HIGHLANDS MEDICAL CENTER  BETTY TOMMASO  STRUGGLING TO FROM SENTENCES  COUGHING  [03\/03\/26 10:28:00 KBURTON]","incidentLocationCity":"COOKEVILLE","streetName":"CLOVERDALE DR","incidentAddressTextVersionStreet":"2675 CLOVERDALE DR","locationCoordinates":"36.11796,-85.55356"}
[2026-03-03 18:08:52] [INFO] Number of extracted fields: 28
[2026-03-03 18:08:52] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 18:08: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-03 18:08:52] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 18:08:52] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:08:52] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 18:08: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-03 18:08: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-03 18:08:52] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 18:08:52] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-03 18:08:52] [INFO] Found existing Dispatch with cADNumber '2026000583', ID: 69a70c44a89d6fe72 - will update instead of create
[2026-03-03 18:08:52] [INFO] Updated existing Dispatches record with ID: 69a70c44a89d6fe72
[2026-03-03 18:08:52] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:08:52] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:08: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-03 18:08:56] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023369_20260303_180757.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:08:56] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:57:11] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023444_20260303_185710.XML
[2026-03-03 18:57:11] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023444_20260303_185710.XML for user: 68f1466aed072ad4a
[2026-03-03 18:57:11] [INFO] File size: 4616 bytes
[2026-03-03 18:57:11] [INFO] Created FTPFiles record with ID: 69a72f075bd6221e9
[2026-03-03 18:57:11] [INFO] About to extract fields from XML. File size: 4616 bytes
[2026-03-03 18:57:11] [INFO] Number of mappings: 28
[2026-03-03 18:57:11] [INFO] Starting XML parsing. Content length: 4616
[2026-03-03 18:57:11] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:57:11] [INFO] Processing 28 field mappings
[2026-03-03 18:57:11] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:57:11] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:57:11] [INFO]   -> Found value: PCFD
[2026-03-03 18:57:11] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 18:57:11] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:57:11] [INFO]   -> Found value: 2026000584
[2026-03-03 18:57:11] [INFO]   -> Set field 'incidentInternalId' = "2026000584"
[2026-03-03 18:57:11] [INFO]   -> Set field 'dispatchRunNumber' = "2026000584"
[2026-03-03 18:57:11] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:57:11] [INFO]   -> Found value: SMOKE ALARM INSTALL
[2026-03-03 18:57:11] [INFO]   -> Set field 'incidentTypeValue1' = "SMOKE ALARM INSTALL"
[2026-03-03 18:57:11] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:57:11] [INFO]   -> Found value: 5939
[2026-03-03 18:57:11] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5939
[2026-03-03 18:57:11] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:57:11] [INFO]   -> Found value: TN
[2026-03-03 18:57:11] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:57:11] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:57:11] [INFO]   -> Found value: 38501
[2026-03-03 18:57:11] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-03 18:57:11] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:57:11] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:11] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:57:11] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:11] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:57:11] [INFO]   -> Found value: 36.24476
[2026-03-03 18:57:11] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2447599999999994224708643741905689239501953125
[2026-03-03 18:57:11] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:57:11] [INFO]   -> Found value: -85.49942
[2026-03-03 18:57:11] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4994200000000006411937647499144077301025390625
[2026-03-03 18:57:11] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:57:11] [INFO]   -> Found value: 2026-03-03 12:56:54
[2026-03-03 18:57:11] [INFO]   -> Set field 'alarm' = "2026-03-03 12:56:54"
[2026-03-03 18:57:11] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:57:11] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:11] [INFO]   -> Set field 'dispatched' = "2026-03-03 12:57:08"
[2026-03-03 18:57:11] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:57:11] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:11] [INFO]   -> Set field 'enroute' = "2026-03-03 12:57:08"
[2026-03-03 18:57:11] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:57:11] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:11] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:57:11] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:11] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:57:11] [INFO]   -> Found value: BARTLETT RD/W BANGHAM RD
[2026-03-03 18:57:11] [INFO]   -> Set field 'incidentLocationCross' = "BARTLETT RD\/W BANGHAM RD"
[2026-03-03 18:57:11] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:57:11] [INFO]   -> Found value: TK12
[2026-03-03 18:57:11] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-03 18:57:11] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:57:11] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:11] [INFO]   -> Set field 'timedispatch' = "2026-03-03 12:57:08"
[2026-03-03 18:57:11] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:57:11] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:11] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 12:57:08"
[2026-03-03 18:57:11] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:57:11] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:11] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:57:11] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:11] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:57:11] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:11] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:57:11] [INFO]   -> Found value: 20260023444
[2026-03-03 18:57:11] [INFO]   -> Set field 'policeReportNumber' = "20260023444"
[2026-03-03 18:57:11] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:57:11] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:11] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:57:11] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 18:57:11] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 18:57:11] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:57:11] [INFO]   -> Found value: BOB LYNN
[2026-03-03 18:57:11] [INFO]   -> Set field 'streetName' = "BOB LYNN"
[2026-03-03 18:57:11] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:57:11] [INFO]   -> Found value: RD
[2026-03-03 18:57:11] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 18:57:11] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:57:11] [INFO]   -> Found value: 5939 BOB LYNN RD
[2026-03-03 18:57:11] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "5939 BOB LYNN RD"
[2026-03-03 18:57:11] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-03 18:57:11] [INFO] Concatenating street name and type
[2026-03-03 18:57:11] [INFO]   -> Combined street name: BOB LYNN RD
[2026-03-03 18:57:11] [INFO] Built locationCoordinates from lat/lng: 36.24476,-85.49942
[2026-03-03 18:57:11] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000584","dispatchRunNumber":"2026000584","incidentTypeValue1":"SMOKE ALARM INSTALL","incidentLocationStreetNumber":5939,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.2447599999999994224708643741905689239501953125,"nERISIncidentLongitude":-85.4994200000000006411937647499144077301025390625,"alarm":"2026-03-03 12:56:54","dispatched":"2026-03-03 12:57:08","enroute":"2026-03-03 12:57:08","incidentLocationCross":"BARTLETT RD\/W BANGHAM RD","cADVehicleID":"TK12","timedispatch":"2026-03-03 12:57:08","timeenroutetoscene":"2026-03-03 12:57:08","policeReportNumber":"20260023444","incidentLocationCity":"COOKEVILLE","streetName":"BOB LYNN RD","incidentAddressTextVersionStreet":"5939 BOB LYNN RD","locationCoordinates":"36.24476,-85.49942"}
[2026-03-03 18:57:11] [INFO] Number of extracted fields: 21
[2026-03-03 18:57:11] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 18:57:11] [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-03 18:57:11] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 18:57:11] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:57:11] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 18:57:11] [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-03 18:57:11] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-03 18:57:11] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 18:57:11] [INFO] Found existing IncidentTypeMapping with ID: 69384adcd7833eaa3
[2026-03-03 18:57:21] [INFO] Created new Dispatches record with ID: 69a72f083cca40fdc
[2026-03-03 18:57:21] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:57:21] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:57: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-03 18:57:25] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023444_20260303_185710.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:57:25] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:57:25] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023444_20260303_185722.XML
[2026-03-03 18:57:25] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023444_20260303_185722.XML for user: 68f1466aed072ad4a
[2026-03-03 18:57:25] [INFO] File size: 4723 bytes
[2026-03-03 18:57:25] [INFO] Created FTPFiles record with ID: 69a72f15937a3f3b8
[2026-03-03 18:57:25] [INFO] About to extract fields from XML. File size: 4723 bytes
[2026-03-03 18:57:25] [INFO] Number of mappings: 28
[2026-03-03 18:57:25] [INFO] Starting XML parsing. Content length: 4723
[2026-03-03 18:57:25] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:57:25] [INFO] Processing 28 field mappings
[2026-03-03 18:57:25] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:57:25] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:57:25] [INFO]   -> Found value: PCFD
[2026-03-03 18:57:25] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 18:57:25] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:57:25] [INFO]   -> Found value: 2026000584
[2026-03-03 18:57:25] [INFO]   -> Set field 'incidentInternalId' = "2026000584"
[2026-03-03 18:57:25] [INFO]   -> Set field 'dispatchRunNumber' = "2026000584"
[2026-03-03 18:57:25] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:57:25] [INFO]   -> Found value: SMOKE ALARM INSTALL
[2026-03-03 18:57:25] [INFO]   -> Set field 'incidentTypeValue1' = "SMOKE ALARM INSTALL"
[2026-03-03 18:57:25] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:57:25] [INFO]   -> Found value: 5939
[2026-03-03 18:57:25] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5939
[2026-03-03 18:57:25] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:57:25] [INFO]   -> Found value: TN
[2026-03-03 18:57:25] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:57:25] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:57:25] [INFO]   -> Found value: 38501
[2026-03-03 18:57:25] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-03 18:57:25] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:57:25] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:25] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:57:25] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:25] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:57:25] [INFO]   -> Found value: 36.24476
[2026-03-03 18:57:25] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2447599999999994224708643741905689239501953125
[2026-03-03 18:57:25] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:57:25] [INFO]   -> Found value: -85.49942
[2026-03-03 18:57:25] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4994200000000006411937647499144077301025390625
[2026-03-03 18:57:25] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:57:25] [INFO]   -> Found value: 2026-03-03 12:56:54
[2026-03-03 18:57:25] [INFO]   -> Set field 'alarm' = "2026-03-03 12:56:54"
[2026-03-03 18:57:25] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:57:25] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:25] [INFO]   -> Set field 'dispatched' = "2026-03-03 12:57:08"
[2026-03-03 18:57:25] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:57:25] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:25] [INFO]   -> Set field 'enroute' = "2026-03-03 12:57:08"
[2026-03-03 18:57:25] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:57:25] [INFO]   -> Found value: 2026-03-03 12:57:15
[2026-03-03 18:57:25] [INFO]   -> Set field 'onScene' = "2026-03-03 12:57:15"
[2026-03-03 18:57:25] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:57:25] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:25] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:57:25] [INFO]   -> Found value: BARTLETT RD/W BANGHAM RD
[2026-03-03 18:57:25] [INFO]   -> Set field 'incidentLocationCross' = "BARTLETT RD\/W BANGHAM RD"
[2026-03-03 18:57:25] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:57:25] [INFO]   -> Found value: TK12
[2026-03-03 18:57:25] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-03 18:57:25] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:57:25] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:25] [INFO]   -> Set field 'timedispatch' = "2026-03-03 12:57:08"
[2026-03-03 18:57:25] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:57:25] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:25] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 12:57:08"
[2026-03-03 18:57:25] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:57:25] [INFO]   -> Found value: 2026-03-03 12:57:15
[2026-03-03 18:57:25] [INFO]   -> Set field 'timeonscene' = "2026-03-03 12:57:15"
[2026-03-03 18:57:25] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:57:25] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:25] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:57:25] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:25] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:57:25] [INFO]   -> Found value: 20260023444
[2026-03-03 18:57:25] [INFO]   -> Set field 'policeReportNumber' = "20260023444"
[2026-03-03 18:57:25] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:57:25] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:25] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:57:25] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 18:57:25] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 18:57:25] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:57:25] [INFO]   -> Found value: BOB LYNN
[2026-03-03 18:57:25] [INFO]   -> Set field 'streetName' = "BOB LYNN"
[2026-03-03 18:57:25] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:57:25] [INFO]   -> Found value: RD
[2026-03-03 18:57:25] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 18:57:25] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:57:25] [INFO]   -> Found value: 5939 BOB LYNN RD
[2026-03-03 18:57:25] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "5939 BOB LYNN RD"
[2026-03-03 18:57:25] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 18:57:25] [INFO] Concatenating street name and type
[2026-03-03 18:57:25] [INFO]   -> Combined street name: BOB LYNN RD
[2026-03-03 18:57:25] [INFO] Built locationCoordinates from lat/lng: 36.24476,-85.49942
[2026-03-03 18:57:25] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000584","dispatchRunNumber":"2026000584","incidentTypeValue1":"SMOKE ALARM INSTALL","incidentLocationStreetNumber":5939,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.2447599999999994224708643741905689239501953125,"nERISIncidentLongitude":-85.4994200000000006411937647499144077301025390625,"alarm":"2026-03-03 12:56:54","dispatched":"2026-03-03 12:57:08","enroute":"2026-03-03 12:57:08","onScene":"2026-03-03 12:57:15","incidentLocationCross":"BARTLETT RD\/W BANGHAM RD","cADVehicleID":"TK12","timedispatch":"2026-03-03 12:57:08","timeenroutetoscene":"2026-03-03 12:57:08","timeonscene":"2026-03-03 12:57:15","policeReportNumber":"20260023444","incidentLocationCity":"COOKEVILLE","streetName":"BOB LYNN RD","incidentAddressTextVersionStreet":"5939 BOB LYNN RD","locationCoordinates":"36.24476,-85.49942"}
[2026-03-03 18:57:25] [INFO] Number of extracted fields: 23
[2026-03-03 18:57:25] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 18:57:25] [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-03 18:57:25] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 18:57:25] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:57:25] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 18:57: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-03 18:57: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-03 18:57:26] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 18:57:26] [INFO] Found existing IncidentTypeMapping with ID: 69384adcd7833eaa3
[2026-03-03 18:57:26] [INFO] Found existing Dispatch with cADNumber '2026000584', ID: 69a72f083cca40fdc - will update instead of create
[2026-03-03 18:57:26] [INFO] Updated existing Dispatches record with ID: 69a72f083cca40fdc
[2026-03-03 18:57:26] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:57:26] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:57: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-03 18:57:29] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023444_20260303_185722.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:57:29] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:57:29] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023444_20260303_185722_1.XML
[2026-03-03 18:57:29] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023444_20260303_185722_1.XML for user: 68f1466aed072ad4a
[2026-03-03 18:57:29] [INFO] File size: 4723 bytes
[2026-03-03 18:57:30] [INFO] Created FTPFiles record with ID: 69a72f1a45b1e925a
[2026-03-03 18:57:30] [INFO] About to extract fields from XML. File size: 4723 bytes
[2026-03-03 18:57:30] [INFO] Number of mappings: 28
[2026-03-03 18:57:30] [INFO] Starting XML parsing. Content length: 4723
[2026-03-03 18:57:30] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:57:30] [INFO] Processing 28 field mappings
[2026-03-03 18:57:30] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:57:30] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:57:30] [INFO]   -> Found value: PCFD
[2026-03-03 18:57:30] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 18:57:30] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:57:30] [INFO]   -> Found value: 2026000584
[2026-03-03 18:57:30] [INFO]   -> Set field 'incidentInternalId' = "2026000584"
[2026-03-03 18:57:30] [INFO]   -> Set field 'dispatchRunNumber' = "2026000584"
[2026-03-03 18:57:30] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:57:30] [INFO]   -> Found value: SMOKE ALARM INSTALL
[2026-03-03 18:57:30] [INFO]   -> Set field 'incidentTypeValue1' = "SMOKE ALARM INSTALL"
[2026-03-03 18:57:30] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:57:30] [INFO]   -> Found value: 5939
[2026-03-03 18:57:30] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5939
[2026-03-03 18:57:30] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:57:30] [INFO]   -> Found value: TN
[2026-03-03 18:57:30] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:57:30] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:57:30] [INFO]   -> Found value: 38501
[2026-03-03 18:57:30] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-03 18:57:30] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:57:30] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:30] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:57:30] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:30] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:57:30] [INFO]   -> Found value: 36.24476
[2026-03-03 18:57:30] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2447599999999994224708643741905689239501953125
[2026-03-03 18:57:30] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:57:30] [INFO]   -> Found value: -85.49942
[2026-03-03 18:57:30] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4994200000000006411937647499144077301025390625
[2026-03-03 18:57:30] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:57:30] [INFO]   -> Found value: 2026-03-03 12:56:54
[2026-03-03 18:57:30] [INFO]   -> Set field 'alarm' = "2026-03-03 12:56:54"
[2026-03-03 18:57:30] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:57:30] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:30] [INFO]   -> Set field 'dispatched' = "2026-03-03 12:57:08"
[2026-03-03 18:57:30] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:57:30] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:30] [INFO]   -> Set field 'enroute' = "2026-03-03 12:57:08"
[2026-03-03 18:57:30] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:57:30] [INFO]   -> Found value: 2026-03-03 12:57:15
[2026-03-03 18:57:30] [INFO]   -> Set field 'onScene' = "2026-03-03 12:57:15"
[2026-03-03 18:57:30] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:57:30] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:30] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:57:30] [INFO]   -> Found value: BARTLETT RD/W BANGHAM RD
[2026-03-03 18:57:30] [INFO]   -> Set field 'incidentLocationCross' = "BARTLETT RD\/W BANGHAM RD"
[2026-03-03 18:57:30] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:57:30] [INFO]   -> Found value: TK12
[2026-03-03 18:57:30] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-03 18:57:30] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:57:30] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:30] [INFO]   -> Set field 'timedispatch' = "2026-03-03 12:57:08"
[2026-03-03 18:57:30] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:57:30] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:30] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 12:57:08"
[2026-03-03 18:57:30] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:57:30] [INFO]   -> Found value: 2026-03-03 12:57:15
[2026-03-03 18:57:30] [INFO]   -> Set field 'timeonscene' = "2026-03-03 12:57:15"
[2026-03-03 18:57:30] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:57:30] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:30] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:57:30] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:30] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:57:30] [INFO]   -> Found value: 20260023444
[2026-03-03 18:57:30] [INFO]   -> Set field 'policeReportNumber' = "20260023444"
[2026-03-03 18:57:30] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:57:30] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:30] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:57:30] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 18:57:30] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 18:57:30] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:57:30] [INFO]   -> Found value: BOB LYNN
[2026-03-03 18:57:30] [INFO]   -> Set field 'streetName' = "BOB LYNN"
[2026-03-03 18:57:30] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:57:30] [INFO]   -> Found value: RD
[2026-03-03 18:57:30] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 18:57:30] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:57:30] [INFO]   -> Found value: 5939 BOB LYNN RD
[2026-03-03 18:57:30] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "5939 BOB LYNN RD"
[2026-03-03 18:57:30] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 18:57:30] [INFO] Concatenating street name and type
[2026-03-03 18:57:30] [INFO]   -> Combined street name: BOB LYNN RD
[2026-03-03 18:57:30] [INFO] Built locationCoordinates from lat/lng: 36.24476,-85.49942
[2026-03-03 18:57:30] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000584","dispatchRunNumber":"2026000584","incidentTypeValue1":"SMOKE ALARM INSTALL","incidentLocationStreetNumber":5939,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.2447599999999994224708643741905689239501953125,"nERISIncidentLongitude":-85.4994200000000006411937647499144077301025390625,"alarm":"2026-03-03 12:56:54","dispatched":"2026-03-03 12:57:08","enroute":"2026-03-03 12:57:08","onScene":"2026-03-03 12:57:15","incidentLocationCross":"BARTLETT RD\/W BANGHAM RD","cADVehicleID":"TK12","timedispatch":"2026-03-03 12:57:08","timeenroutetoscene":"2026-03-03 12:57:08","timeonscene":"2026-03-03 12:57:15","policeReportNumber":"20260023444","incidentLocationCity":"COOKEVILLE","streetName":"BOB LYNN RD","incidentAddressTextVersionStreet":"5939 BOB LYNN RD","locationCoordinates":"36.24476,-85.49942"}
[2026-03-03 18:57:30] [INFO] Number of extracted fields: 23
[2026-03-03 18:57:30] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 18:57:30] [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-03 18:57:30] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 18:57:30] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:57:30] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 18:57: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-03 18:57: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-03 18:57:30] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 18:57:30] [INFO] Found existing IncidentTypeMapping with ID: 69384adcd7833eaa3
[2026-03-03 18:57:31] [INFO] Found existing Dispatch with cADNumber '2026000584', ID: 69a72f083cca40fdc - will update instead of create
[2026-03-03 18:57:31] [INFO] Updated existing Dispatches record with ID: 69a72f083cca40fdc
[2026-03-03 18:57:31] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:57:31] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:57:34] [ERROR] PHP Error [WARNING]: ftp_login(): Login incorrect. in /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php on line 1002
[2026-03-03 18:57:34] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023444_20260303_185722_1.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:57:34] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:57:34] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023444_20260303_185722_2.XML
[2026-03-03 18:57:34] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023444_20260303_185722_2.XML for user: 68f1466aed072ad4a
[2026-03-03 18:57:34] [INFO] File size: 4723 bytes
[2026-03-03 18:57:35] [INFO] Created FTPFiles record with ID: 69a72f1f41f20264a
[2026-03-03 18:57:35] [INFO] About to extract fields from XML. File size: 4723 bytes
[2026-03-03 18:57:35] [INFO] Number of mappings: 28
[2026-03-03 18:57:35] [INFO] Starting XML parsing. Content length: 4723
[2026-03-03 18:57:35] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:57:35] [INFO] Processing 28 field mappings
[2026-03-03 18:57:35] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:57:35] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:57:35] [INFO]   -> Found value: PCFD
[2026-03-03 18:57:35] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 18:57:35] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:57:35] [INFO]   -> Found value: 2026000584
[2026-03-03 18:57:35] [INFO]   -> Set field 'incidentInternalId' = "2026000584"
[2026-03-03 18:57:35] [INFO]   -> Set field 'dispatchRunNumber' = "2026000584"
[2026-03-03 18:57:35] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:57:35] [INFO]   -> Found value: SMOKE ALARM INSTALL
[2026-03-03 18:57:35] [INFO]   -> Set field 'incidentTypeValue1' = "SMOKE ALARM INSTALL"
[2026-03-03 18:57:35] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:57:35] [INFO]   -> Found value: 5939
[2026-03-03 18:57:35] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5939
[2026-03-03 18:57:35] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:57:35] [INFO]   -> Found value: TN
[2026-03-03 18:57:35] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:57:35] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:57:35] [INFO]   -> Found value: 38501
[2026-03-03 18:57:35] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-03 18:57:35] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:57:35] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:35] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:57:35] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:35] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:57:35] [INFO]   -> Found value: 36.24476
[2026-03-03 18:57:35] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2447599999999994224708643741905689239501953125
[2026-03-03 18:57:35] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:57:35] [INFO]   -> Found value: -85.49942
[2026-03-03 18:57:35] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4994200000000006411937647499144077301025390625
[2026-03-03 18:57:35] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:57:35] [INFO]   -> Found value: 2026-03-03 12:56:54
[2026-03-03 18:57:35] [INFO]   -> Set field 'alarm' = "2026-03-03 12:56:54"
[2026-03-03 18:57:35] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:57:35] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:35] [INFO]   -> Set field 'dispatched' = "2026-03-03 12:57:08"
[2026-03-03 18:57:35] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:57:35] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:35] [INFO]   -> Set field 'enroute' = "2026-03-03 12:57:08"
[2026-03-03 18:57:35] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:57:35] [INFO]   -> Found value: 2026-03-03 12:57:15
[2026-03-03 18:57:35] [INFO]   -> Set field 'onScene' = "2026-03-03 12:57:15"
[2026-03-03 18:57:35] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:57:35] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:35] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:57:35] [INFO]   -> Found value: BARTLETT RD/W BANGHAM RD
[2026-03-03 18:57:35] [INFO]   -> Set field 'incidentLocationCross' = "BARTLETT RD\/W BANGHAM RD"
[2026-03-03 18:57:35] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:57:35] [INFO]   -> Found value: TK12
[2026-03-03 18:57:35] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-03 18:57:35] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:57:35] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:35] [INFO]   -> Set field 'timedispatch' = "2026-03-03 12:57:08"
[2026-03-03 18:57:35] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:57:35] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:35] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 12:57:08"
[2026-03-03 18:57:35] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:57:35] [INFO]   -> Found value: 2026-03-03 12:57:15
[2026-03-03 18:57:35] [INFO]   -> Set field 'timeonscene' = "2026-03-03 12:57:15"
[2026-03-03 18:57:35] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:57:35] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:35] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:57:35] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:35] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:57:35] [INFO]   -> Found value: 20260023444
[2026-03-03 18:57:35] [INFO]   -> Set field 'policeReportNumber' = "20260023444"
[2026-03-03 18:57:35] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:57:35] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:35] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:57:35] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 18:57:35] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 18:57:35] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:57:35] [INFO]   -> Found value: BOB LYNN
[2026-03-03 18:57:35] [INFO]   -> Set field 'streetName' = "BOB LYNN"
[2026-03-03 18:57:35] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:57:35] [INFO]   -> Found value: RD
[2026-03-03 18:57:35] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 18:57:35] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:57:35] [INFO]   -> Found value: 5939 BOB LYNN RD
[2026-03-03 18:57:35] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "5939 BOB LYNN RD"
[2026-03-03 18:57:35] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 18:57:35] [INFO] Concatenating street name and type
[2026-03-03 18:57:35] [INFO]   -> Combined street name: BOB LYNN RD
[2026-03-03 18:57:35] [INFO] Built locationCoordinates from lat/lng: 36.24476,-85.49942
[2026-03-03 18:57:35] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000584","dispatchRunNumber":"2026000584","incidentTypeValue1":"SMOKE ALARM INSTALL","incidentLocationStreetNumber":5939,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.2447599999999994224708643741905689239501953125,"nERISIncidentLongitude":-85.4994200000000006411937647499144077301025390625,"alarm":"2026-03-03 12:56:54","dispatched":"2026-03-03 12:57:08","enroute":"2026-03-03 12:57:08","onScene":"2026-03-03 12:57:15","incidentLocationCross":"BARTLETT RD\/W BANGHAM RD","cADVehicleID":"TK12","timedispatch":"2026-03-03 12:57:08","timeenroutetoscene":"2026-03-03 12:57:08","timeonscene":"2026-03-03 12:57:15","policeReportNumber":"20260023444","incidentLocationCity":"COOKEVILLE","streetName":"BOB LYNN RD","incidentAddressTextVersionStreet":"5939 BOB LYNN RD","locationCoordinates":"36.24476,-85.49942"}
[2026-03-03 18:57:35] [INFO] Number of extracted fields: 23
[2026-03-03 18:57:35] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 18:57:35] [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-03 18:57:35] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 18:57:35] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:57:35] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 18:57:35] [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-03 18:57:35] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-03 18:57:35] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 18:57:35] [INFO] Found existing IncidentTypeMapping with ID: 69384adcd7833eaa3
[2026-03-03 18:57:36] [INFO] Found existing Dispatch with cADNumber '2026000584', ID: 69a72f083cca40fdc - will update instead of create
[2026-03-03 18:57:36] [INFO] Updated existing Dispatches record with ID: 69a72f083cca40fdc
[2026-03-03 18:57:36] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:57:36] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:57: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-03 18:57:39] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023444_20260303_185722_2.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:57:39] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 18:57:39] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023444_20260303_185727.XML
[2026-03-03 18:57:39] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023444_20260303_185727.XML for user: 68f1466aed072ad4a
[2026-03-03 18:57:39] [INFO] File size: 4723 bytes
[2026-03-03 18:57:39] [INFO] Created FTPFiles record with ID: 69a72f23eac865a81
[2026-03-03 18:57:39] [INFO] About to extract fields from XML. File size: 4723 bytes
[2026-03-03 18:57:39] [INFO] Number of mappings: 28
[2026-03-03 18:57:39] [INFO] Starting XML parsing. Content length: 4723
[2026-03-03 18:57:39] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 18:57:39] [INFO] Processing 28 field mappings
[2026-03-03 18:57:39] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 18:57:39] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 18:57:39] [INFO]   -> Found value: PCFD
[2026-03-03 18:57:39] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 18:57:39] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 18:57:39] [INFO]   -> Found value: 2026000584
[2026-03-03 18:57:39] [INFO]   -> Set field 'incidentInternalId' = "2026000584"
[2026-03-03 18:57:39] [INFO]   -> Set field 'dispatchRunNumber' = "2026000584"
[2026-03-03 18:57:39] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 18:57:39] [INFO]   -> Found value: SMOKE ALARM INSTALL
[2026-03-03 18:57:39] [INFO]   -> Set field 'incidentTypeValue1' = "SMOKE ALARM INSTALL"
[2026-03-03 18:57:39] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 18:57:39] [INFO]   -> Found value: 5939
[2026-03-03 18:57:39] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5939
[2026-03-03 18:57:39] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 18:57:39] [INFO]   -> Found value: TN
[2026-03-03 18:57:39] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 18:57:39] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 18:57:39] [INFO]   -> Found value: 38501
[2026-03-03 18:57:39] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-03 18:57:39] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 18:57:39] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:39] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 18:57:39] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:39] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 18:57:39] [INFO]   -> Found value: 36.24476
[2026-03-03 18:57:39] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2447599999999994224708643741905689239501953125
[2026-03-03 18:57:39] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 18:57:39] [INFO]   -> Found value: -85.49942
[2026-03-03 18:57:39] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4994200000000006411937647499144077301025390625
[2026-03-03 18:57:39] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 18:57:39] [INFO]   -> Found value: 2026-03-03 12:56:54
[2026-03-03 18:57:39] [INFO]   -> Set field 'alarm' = "2026-03-03 12:56:54"
[2026-03-03 18:57:39] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 18:57:39] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:39] [INFO]   -> Set field 'dispatched' = "2026-03-03 12:57:08"
[2026-03-03 18:57:39] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 18:57:39] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:39] [INFO]   -> Set field 'enroute' = "2026-03-03 12:57:08"
[2026-03-03 18:57:39] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 18:57:39] [INFO]   -> Found value: 2026-03-03 12:57:15
[2026-03-03 18:57:39] [INFO]   -> Set field 'onScene' = "2026-03-03 12:57:15"
[2026-03-03 18:57:39] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 18:57:39] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:39] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 18:57:39] [INFO]   -> Found value: BARTLETT RD/W BANGHAM RD
[2026-03-03 18:57:39] [INFO]   -> Set field 'incidentLocationCross' = "BARTLETT RD\/W BANGHAM RD"
[2026-03-03 18:57:39] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 18:57:39] [INFO]   -> Found value: TK12
[2026-03-03 18:57:39] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-03 18:57:39] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 18:57:39] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:39] [INFO]   -> Set field 'timedispatch' = "2026-03-03 12:57:08"
[2026-03-03 18:57:39] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 18:57:39] [INFO]   -> Found value: 2026-03-03 12:57:08
[2026-03-03 18:57:39] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 12:57:08"
[2026-03-03 18:57:39] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 18:57:39] [INFO]   -> Found value: 2026-03-03 12:57:15
[2026-03-03 18:57:39] [INFO]   -> Set field 'timeonscene' = "2026-03-03 12:57:15"
[2026-03-03 18:57:39] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 18:57:39] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:39] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 18:57:39] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:39] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 18:57:39] [INFO]   -> Found value: 20260023444
[2026-03-03 18:57:39] [INFO]   -> Set field 'policeReportNumber' = "20260023444"
[2026-03-03 18:57:39] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 18:57:39] [INFO]   -> No value found (null or empty)
[2026-03-03 18:57:39] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 18:57:39] [INFO]   -> Found value: COOKEVILLE
[2026-03-03 18:57:39] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-03 18:57:39] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 18:57:39] [INFO]   -> Found value: BOB LYNN
[2026-03-03 18:57:39] [INFO]   -> Set field 'streetName' = "BOB LYNN"
[2026-03-03 18:57:39] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 18:57:39] [INFO]   -> Found value: RD
[2026-03-03 18:57:39] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 18:57:39] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 18:57:39] [INFO]   -> Found value: 5939 BOB LYNN RD
[2026-03-03 18:57:39] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "5939 BOB LYNN RD"
[2026-03-03 18:57:39] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 18:57:39] [INFO] Concatenating street name and type
[2026-03-03 18:57:39] [INFO]   -> Combined street name: BOB LYNN RD
[2026-03-03 18:57:39] [INFO] Built locationCoordinates from lat/lng: 36.24476,-85.49942
[2026-03-03 18:57:39] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000584","dispatchRunNumber":"2026000584","incidentTypeValue1":"SMOKE ALARM INSTALL","incidentLocationStreetNumber":5939,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.2447599999999994224708643741905689239501953125,"nERISIncidentLongitude":-85.4994200000000006411937647499144077301025390625,"alarm":"2026-03-03 12:56:54","dispatched":"2026-03-03 12:57:08","enroute":"2026-03-03 12:57:08","onScene":"2026-03-03 12:57:15","incidentLocationCross":"BARTLETT RD\/W BANGHAM RD","cADVehicleID":"TK12","timedispatch":"2026-03-03 12:57:08","timeenroutetoscene":"2026-03-03 12:57:08","timeonscene":"2026-03-03 12:57:15","policeReportNumber":"20260023444","incidentLocationCity":"COOKEVILLE","streetName":"BOB LYNN RD","incidentAddressTextVersionStreet":"5939 BOB LYNN RD","locationCoordinates":"36.24476,-85.49942"}
[2026-03-03 18:57:39] [INFO] Number of extracted fields: 23
[2026-03-03 18:57:39] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 18:57: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-03 18:57:39] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 18:57:39] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 18:57:40] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 18:57:40] [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-03 18:57:40] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-03 18:57:40] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 18:57:40] [INFO] Found existing IncidentTypeMapping with ID: 69384adcd7833eaa3
[2026-03-03 18:57:40] [INFO] Found existing Dispatch with cADNumber '2026000584', ID: 69a72f083cca40fdc - will update instead of create
[2026-03-03 18:57:40] [INFO] Updated existing Dispatches record with ID: 69a72f083cca40fdc
[2026-03-03 18:57:40] [INFO] Uploading file to V2 FTP server: alerts.stationboss.net, Remote Dir: /
[2026-03-03 18:57:40] [INFO] Using FTPS (SSL/TLS) connection
[2026-03-03 18:57: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-03 18:57:44] [ERROR] Processing failed for /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023444_20260303_185727.XML: Failed to login to V2 FTP server with username: f1bbfaea-7d70-4d6c-9b17-a1712a36552e@alerts.stationboss.net
[2026-03-03 18:57:44] [INFO] Error occurred at: /home/dodom2/public_html/ftp.stationboss.net/ftp_process_upload.php:1004
[2026-03-03 20:27:49] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06468.xml
[2026-03-03 20:27:49] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06468.xml for user: 68d56363ec1209189
[2026-03-03 20:27:49] [INFO] File size: 1311 bytes
[2026-03-03 20:27:50] [INFO] Created FTPFiles record with ID: 69a744462f2eadf4e
[2026-03-03 20:27:50] [INFO] About to extract fields from XML. File size: 1311 bytes
[2026-03-03 20:27:50] [INFO] Number of mappings: 21
[2026-03-03 20:27:50] [INFO] Starting XML parsing. Content length: 1311
[2026-03-03 20:27:50] [INFO] XML parsed successfully. Root element: Incident
[2026-03-03 20:27:50] [INFO] Processing 21 field mappings
[2026-03-03 20:27:50] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-03 20:27:50] [INFO]   -> Found value: 26-06468
[2026-03-03 20:27:50] [INFO]   -> Set field 'dispatchRunNumber' = "26-06468"
[2026-03-03 20:27:50] [INFO]   -> Set field 'cADNumber' = "26-06468"
[2026-03-03 20:27:50] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-03 20:27:50] [INFO]   -> Found value: 1015
[2026-03-03 20:27:50] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1015
[2026-03-03 20:27:50] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-03 20:27:50] [INFO]   -> Found value: APPLEGATE
[2026-03-03 20:27:50] [INFO]   -> Set field 'streetName' = "APPLEGATE"
[2026-03-03 20:27:50] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-03 20:27:50] [INFO]   -> No value found (null or empty)
[2026-03-03 20:27:50] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-03 20:27:50] [INFO]   -> Found value: SIKESTON
[2026-03-03 20:27:50] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-03-03 20:27:50] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-03 20:27:50] [INFO]   -> No value found (null or empty)
[2026-03-03 20:27:50] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-03 20:27:50] [INFO]   -> Found value: MO
[2026-03-03 20:27:50] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-03-03 20:27:50] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-03 20:27:50] [INFO]   -> Found value: 63801
[2026-03-03 20:27:50] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-03-03 20:27:50] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-03 20:27:50] [INFO]   -> Found value: 0
[2026-03-03 20:27:50] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-03 20:27:50] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-03 20:27:50] [INFO]   -> Found value: 0
[2026-03-03 20:27:50] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-03 20:27:50] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-03 20:27:50] [INFO]   -> Found value: PEDESTRIAN CHECK
[2026-03-03 20:27:50] [INFO]   -> Set field 'incidentTypeValue1' = "PEDESTRIAN CHECK"
[2026-03-03 20:27:50] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-03 20:27:50] [INFO]   -> Found value: 03-03-2026 14:16:39|99 CHECK
[2026-03-03 20:27:50] [INFO]   -> Set field 'dispatchNotes' = "03-03-2026 14:16:39|99 CHECK"
[2026-03-03 20:27:50] [INFO]   -> Set field 'cADLog' = "03-03-2026 14:16:39|99 CHECK"
[2026-03-03 20:27:50] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-03 20:27:50] [INFO]   -> Found value: 03-03-2026T14:16:52
[2026-03-03 20:27:50] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T14:16:52
[2026-03-03 20:27:50] [INFO]   -> Set field 'alarm' = "2026-03-03 14:16:52"
[2026-03-03 20:27:50] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T14:16:52
[2026-03-03 20:27:50] [INFO]   -> Set field 'dispatched' = "2026-03-03 14:16:52"
[2026-03-03 20:27:50] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-03 20:27:50] [INFO]   -> Found value: 03-03-2026T14:16:55
[2026-03-03 20:27:50] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T14:16:55
[2026-03-03 20:27:50] [INFO]   -> Set field 'onScene' = "2026-03-03 14:16:55"
[2026-03-03 20:27:50] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-03 20:27:50] [INFO]   -> No value found (null or empty)
[2026-03-03 20:27:50] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-03 20:27:50] [INFO]   -> Found value: ENG2
[2026-03-03 20:27:50] [INFO]   -> Set field 'cADVehicleID' = "ENG2"
[2026-03-03 20:27:50] [INFO]   -> Set field 'name' = "ENG2"
[2026-03-03 20:27:50] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-03 20:27:50] [INFO]   -> No value found (null or empty)
[2026-03-03 20:27:50] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-03 20:27:50] [INFO]   -> No value found (null or empty)
[2026-03-03 20:27:50] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-03 20:27:50] [INFO]   -> Found value: 03-03-2026T14:26:58
[2026-03-03 20:27:50] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T14:26:58
[2026-03-03 20:27:50] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 14:26:58"
[2026-03-03 20:27:50] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-03 20:27:50] [INFO]   -> Found value: 03-03-2026T14:26:51
[2026-03-03 20:27:50] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T14:26:51
[2026-03-03 20:27:50] [INFO]   -> Set field 'timedispatch' = "2026-03-03 14:26:51"
[2026-03-03 20:27:50] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-03 20:27:50] [INFO]   -> Found value: SDPSFD
[2026-03-03 20:27:50] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-03-03 20:27:50] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-03-03 20:27:50] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-03 20:27:50] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-06468","cADNumber":"26-06468","incidentLocationStreetNumber":1015,"streetName":"APPLEGATE","incidentLocationCity":"SIKESTON","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"PEDESTRIAN CHECK","dispatchNotes":"03-03-2026 14:16:39|99 CHECK","cADLog":"03-03-2026 14:16:39|99 CHECK","alarm":"2026-03-03 14:16:52","dispatched":"2026-03-03 14:16:52","onScene":"2026-03-03 14:16:55","cADVehicleID":"ENG2","name":"ENG2","timeunitclear":"2026-03-03 14:26:58","timedispatch":"2026-03-03 14:26:51","cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-03-03 20:27:50] [INFO] Number of extracted fields: 21
[2026-03-03 20:27:50] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-03-03 20:27:50] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-03-03 20:27:50] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-03-03 20:27:50] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-03-03 20:27:50] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-03-03 20:27:50] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-03-03 20:27:50] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-03-03 20:27:50] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-03-03 20:27:50] [INFO] Created new IncidentTypeMapping Data: {"cADIncidentType":"PEDESTRIAN CHECK","saasclientId":"6772cab7157b2ebde","name":"PEDESTRIAN CHECK"}
[2026-03-03 20:27:50] [INFO] Created new IncidentTypeMapping with ID: 69a74446d92807e40
[2026-03-03 20:27:52] [INFO] Created new Dispatches record with ID: 69a744473c3d1bcdd
[2026-03-03 20:27:52] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06468.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-03/SDPSFD_26-06468.xml
[2026-03-03 20:27:52] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06468.xml
[2026-03-03 20:29:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06468.xml
[2026-03-03 20:29:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06468.xml for user: 68d56363ec1209189
[2026-03-03 20:29:51] [INFO] File size: 2021 bytes
[2026-03-03 20:29:51] [INFO] Created FTPFiles record with ID: 69a744bf6a357daa7
[2026-03-03 20:29:51] [INFO] About to extract fields from XML. File size: 2021 bytes
[2026-03-03 20:29:51] [INFO] Number of mappings: 21
[2026-03-03 20:29:51] [INFO] Starting XML parsing. Content length: 2021
[2026-03-03 20:29:51] [INFO] XML parsed successfully. Root element: Incident
[2026-03-03 20:29:51] [INFO] Processing 21 field mappings
[2026-03-03 20:29:51] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-03 20:29:51] [INFO]   -> Found value: 26-06468
[2026-03-03 20:29:51] [INFO]   -> Set field 'dispatchRunNumber' = "26-06468"
[2026-03-03 20:29:51] [INFO]   -> Set field 'cADNumber' = "26-06468"
[2026-03-03 20:29:51] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-03 20:29:51] [INFO]   -> Found value: 1015
[2026-03-03 20:29:51] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1015
[2026-03-03 20:29:51] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-03 20:29:51] [INFO]   -> Found value: APPLEGATE
[2026-03-03 20:29:51] [INFO]   -> Set field 'streetName' = "APPLEGATE"
[2026-03-03 20:29:51] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-03 20:29:51] [INFO]   -> No value found (null or empty)
[2026-03-03 20:29:51] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-03 20:29:51] [INFO]   -> Found value: SIKESTON
[2026-03-03 20:29:51] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-03-03 20:29:51] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-03 20:29:51] [INFO]   -> No value found (null or empty)
[2026-03-03 20:29:51] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-03 20:29:51] [INFO]   -> Found value: MO
[2026-03-03 20:29:51] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-03-03 20:29:51] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-03 20:29:51] [INFO]   -> Found value: 63801
[2026-03-03 20:29:51] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-03-03 20:29:51] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-03 20:29:51] [INFO]   -> Found value: 0
[2026-03-03 20:29:51] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-03 20:29:51] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-03 20:29:51] [INFO]   -> Found value: 0
[2026-03-03 20:29:51] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-03 20:29:51] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-03 20:29:51] [INFO]   -> Found value: PEDESTRIAN CHECK
[2026-03-03 20:29:51] [INFO]   -> Set field 'incidentTypeValue1' = "PEDESTRIAN CHECK"
[2026-03-03 20:29:51] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-03 20:29:51] [INFO]   -> Found value: 03-03-2026 14:16:39|99 CHECK  03-03-2026 14:27:18|Disposition - SDPS FD:  NRN 03-03-2026 14:28:49|EN...
[2026-03-03 20:29:51] [INFO]   -> Set field 'dispatchNotes' = "03-03-2026 14:16:39|99 CHECK  03-03-2026 14:27:18|Disposition - SDPS FD:  NRN 03-03-2026 14:28:49|ENg1 l3 tw1 EN ROUTE 1426"
[2026-03-03 20:29:51] [INFO]   -> Set field 'cADLog' = "03-03-2026 14:16:39|99 CHECK  03-03-2026 14:27:18|Disposition - SDPS FD:  NRN 03-03-2026 14:28:49|ENg1 l3 tw1 EN ROUTE 1426"
[2026-03-03 20:29:51] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-03 20:29:51] [INFO]   -> Found value: 03-03-2026T14:16:52
[2026-03-03 20:29:51] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T14:16:52
[2026-03-03 20:29:51] [INFO]   -> Set field 'alarm' = "2026-03-03 14:16:52"
[2026-03-03 20:29:51] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T14:16:52
[2026-03-03 20:29:51] [INFO]   -> Set field 'dispatched' = "2026-03-03 14:16:52"
[2026-03-03 20:29:51] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-03 20:29:51] [INFO]   -> Found value: 03-03-2026T14:16:55
[2026-03-03 20:29:51] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T14:16:55
[2026-03-03 20:29:51] [INFO]   -> Set field 'onScene' = "2026-03-03 14:16:55"
[2026-03-03 20:29:51] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-03 20:29:51] [INFO]   -> Found value: 03-03-2026T14:28:58
[2026-03-03 20:29:51] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T14:28:58
[2026-03-03 20:29:51] [INFO]   -> Set field 'cleared' = "2026-03-03 14:28:58"
[2026-03-03 20:29:51] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T14:28:58
[2026-03-03 20:29:51] [INFO]   -> Set field 'inService' = "2026-03-03 14:28:58"
[2026-03-03 20:29:51] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-03 20:29:51] [INFO]   -> Found value: ENG2
[2026-03-03 20:29:51] [INFO]   -> Set field 'cADVehicleID' = "ENG2"
[2026-03-03 20:29:51] [INFO]   -> Set field 'name' = "ENG2"
[2026-03-03 20:29:51] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-03 20:29:51] [INFO]   -> Found value: 03-03-2026T14:27:36
[2026-03-03 20:29:51] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T14:27:36
[2026-03-03 20:29:51] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 14:27:36"
[2026-03-03 20:29:51] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-03 20:29:51] [INFO]   -> No value found (null or empty)
[2026-03-03 20:29:51] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-03 20:29:51] [INFO]   -> Found value: 03-03-2026T14:28:58
[2026-03-03 20:29:51] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T14:28:58
[2026-03-03 20:29:51] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 14:28:58"
[2026-03-03 20:29:51] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-03 20:29:51] [INFO]   -> Found value: 03-03-2026T14:26:51
[2026-03-03 20:29:51] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T14:26:51
[2026-03-03 20:29:51] [INFO]   -> Set field 'timedispatch' = "2026-03-03 14:26:51"
[2026-03-03 20:29:51] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-03 20:29:51] [INFO]   -> Found value: SDPSFD
[2026-03-03 20:29:51] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-03-03 20:29:51] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 20:29:51] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-03 20:29:51] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-06468","cADNumber":"26-06468","incidentLocationStreetNumber":1015,"streetName":"APPLEGATE","incidentLocationCity":"SIKESTON","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"PEDESTRIAN CHECK","dispatchNotes":"03-03-2026 14:16:39|99 CHECK  03-03-2026 14:27:18|Disposition - SDPS FD:  NRN 03-03-2026 14:28:49|ENg1 l3 tw1 EN ROUTE 1426","cADLog":"03-03-2026 14:16:39|99 CHECK  03-03-2026 14:27:18|Disposition - SDPS FD:  NRN 03-03-2026 14:28:49|ENg1 l3 tw1 EN ROUTE 1426","alarm":"2026-03-03 14:16:52","dispatched":"2026-03-03 14:16:52","onScene":"2026-03-03 14:16:55","cleared":"2026-03-03 14:28:58","inService":"2026-03-03 14:28:58","cADVehicleID":"ENG2","name":"ENG2","timeenroutetoscene":"2026-03-03 14:27:36","timeunitclear":"2026-03-03 14:28:58","timedispatch":"2026-03-03 14:26:51","cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-03-03 20:29:51] [INFO] Number of extracted fields: 24
[2026-03-03 20:29:51] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-03-03 20:29:51] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-03-03 20:29:51] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-03-03 20:29:51] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-03-03 20:29:51] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-03-03 20:29:51] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-03-03 20:29:51] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-03-03 20:29:51] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-03-03 20:29:51] [INFO] Found existing IncidentTypeMapping with ID: 69a74446d92807e40
[2026-03-03 20:29:52] [INFO] Found existing Dispatch with cADNumber '26-06468', ID: 69a744473c3d1bcdd - will update instead of create
[2026-03-03 20:29:52] [INFO] Updated existing Dispatches record with ID: 69a744473c3d1bcdd
[2026-03-03 20:29:52] [INFO] File already exists in archive, using unique name: SDPSFD_26-06468_1772569792.xml
[2026-03-03 20:29:52] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06468.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-03/SDPSFD_26-06468_1772569792.xml
[2026-03-03 20:29:52] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06468.xml
[2026-03-03 20:31:03] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:00Z.xml
[2026-03-03 20:31:03] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:00Z.xml
[2026-03-03 20:31:04] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:01Z.xml
[2026-03-03 20:31:04] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:01Z.xml
[2026-03-03 20:31:05] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:02Z.xml
[2026-03-03 20:31:05] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:02Z.xml
[2026-03-03 20:31:05] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:02Z.xml
[2026-03-03 20:31:05] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:02Z.xml
[2026-03-03 20:31:06] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:03Z.xml
[2026-03-03 20:31:06] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:03Z.xml
[2026-03-03 20:31:07] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:04Z.xml
[2026-03-03 20:31:07] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:04Z.xml
[2026-03-03 20:31:07] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:04Z.xml
[2026-03-03 20:31:07] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:04Z.xml
[2026-03-03 20:31:08] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:05Z.xml
[2026-03-03 20:31:08] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:05Z.xml
[2026-03-03 20:31:08] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:05Z.xml
[2026-03-03 20:31:08] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:05Z.xml
[2026-03-03 20:31:16] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:13Z.xml
[2026-03-03 20:31:16] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:13Z.xml
[2026-03-03 20:31:16] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:13Z.xml
[2026-03-03 20:31:16] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:13Z.xml
[2026-03-03 20:31:41] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:37Z.xml
[2026-03-03 20:31:41] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-009993_2026-03-03 14:31:37Z.xml
[2026-03-03 20:55:28] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-014104.xml
[2026-03-03 20:55:28] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-014104.xml for user: 69320e6a9e3e5ef71
[2026-03-03 20:55:28] [INFO] File size: 13036 bytes
[2026-03-03 20:55:28] [INFO] Created FTPFiles record with ID: 69a74ac0872434d9e
[2026-03-03 20:55:28] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-03 20:55:28] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-03
[2026-03-03 20:55:28] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-014104.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-03/cfs_2026-014104.xml
[2026-03-03 20:55:28] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-014104.xml
[2026-03-03 20:55:29] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-014104.xml
[2026-03-03 20:55:29] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-014104.xml for user: 69320e6a9e3e5ef71
[2026-03-03 20:55:29] [INFO] File size: 13036 bytes
[2026-03-03 20:55:29] [INFO] Created FTPFiles record with ID: 69a74ac181ffb3be8
[2026-03-03 20:55:29] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-03 20:55:29] [INFO] File already exists in archive, using unique name: cfs_2026-014104_1772571329.xml
[2026-03-03 20:55:29] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-014104.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-03/cfs_2026-014104_1772571329.xml
[2026-03-03 20:55:29] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-014104.xml
[2026-03-03 21:00:21] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-014104.xml
[2026-03-03 21:00:21] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-014104.xml for user: 69320e6a9e3e5ef71
[2026-03-03 21:00:21] [INFO] File size: 12771 bytes
[2026-03-03 21:00:21] [INFO] Created FTPFiles record with ID: 69a74be5a89085712
[2026-03-03 21:00:21] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-03 21:00:21] [INFO] File already exists in archive, using unique name: cfs_2026-014104_1772571621.xml
[2026-03-03 21:00:21] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-014104.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-03/cfs_2026-014104_1772571621.xml
[2026-03-03 21:00:21] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-014104.xml
[2026-03-03 21:02:20] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06469.xml
[2026-03-03 21:02:20] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06469.xml for user: 68d56363ec1209189
[2026-03-03 21:02:20] [INFO] File size: 2586 bytes
[2026-03-03 21:02:20] [INFO] Created FTPFiles record with ID: 69a74c5cc154cf778
[2026-03-03 21:02:20] [INFO] About to extract fields from XML. File size: 2586 bytes
[2026-03-03 21:02:20] [INFO] Number of mappings: 21
[2026-03-03 21:02:20] [INFO] Starting XML parsing. Content length: 2586
[2026-03-03 21:02:20] [INFO] XML parsed successfully. Root element: Incident
[2026-03-03 21:02:20] [INFO] Processing 21 field mappings
[2026-03-03 21:02:20] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-03 21:02:20] [INFO]   -> Found value: 26-06469
[2026-03-03 21:02:20] [INFO]   -> Set field 'dispatchRunNumber' = "26-06469"
[2026-03-03 21:02:20] [INFO]   -> Set field 'cADNumber' = "26-06469"
[2026-03-03 21:02:20] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-03 21:02:20] [INFO]   -> Found value: 412
[2026-03-03 21:02:20] [INFO]   -> Set field 'incidentLocationStreetNumber' = 412
[2026-03-03 21:02:20] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-03 21:02:20] [INFO]   -> Found value: LEE AVE
[2026-03-03 21:02:20] [INFO]   -> Set field 'streetName' = "LEE AVE"
[2026-03-03 21:02:20] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-03 21:02:20] [INFO]   -> No value found (null or empty)
[2026-03-03 21:02:20] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-03 21:02:20] [INFO]   -> Found value: SIKESTON
[2026-03-03 21:02:20] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-03-03 21:02:20] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-03 21:02:20] [INFO]   -> No value found (null or empty)
[2026-03-03 21:02:20] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-03 21:02:20] [INFO]   -> Found value: MO
[2026-03-03 21:02:20] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-03-03 21:02:20] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-03 21:02:20] [INFO]   -> Found value: 63801
[2026-03-03 21:02:20] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-03-03 21:02:20] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-03 21:02:20] [INFO]   -> Found value: 0
[2026-03-03 21:02:20] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-03 21:02:20] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-03 21:02:20] [INFO]   -> Found value: 0
[2026-03-03 21:02:20] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-03 21:02:20] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-03 21:02:20] [INFO]   -> Found value: FIRE-STRUCTURE
[2026-03-03 21:02:20] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-STRUCTURE"
[2026-03-03 21:02:20] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-03 21:02:20] [INFO]   -> Found value: 03-03-2026 14:22:50|BUILDING ON FIRE
CONTROL FIRE BLEW INTO THE HOUSE 
NO ONE INSIDE  03-03-2026 14:...
[2026-03-03 21:02:20] [INFO]   -> Set field 'dispatchNotes' = "03-03-2026 14:22:50|BUILDING ON FIRE\nCONTROL FIRE BLEW INTO THE HOUSE \nNO ONE INSIDE  03-03-2026 14:27:05|BMU CONTACTED 03-03-2026 14:29:36|B45 ON SCENE 03-03-2026 14:29:49|GRASS FIRE CAUGHT UT TRAILER 03-03-2026 14:31:12|DID NOT EXTEND INTO BUILDING 03-03-2026 14:32:18|DOWNGRADE PER C78 03-03-2026 14:35:17|COMMAND CANCEL BMU 03-03-2026 14:54:25|Disposition - SDPS PD:  NRN\nNotes on Close: B45 HAS COMMAND\n 03-03-2026 14:54:56|Disposition - SSCA:  RPT"
[2026-03-03 21:02:20] [INFO]   -> Set field 'cADLog' = "03-03-2026 14:22:50|BUILDING ON FIRE\nCONTROL FIRE BLEW INTO THE HOUSE \nNO ONE INSIDE  03-03-2026 14:27:05|BMU CONTACTED 03-03-2026 14:29:36|B45 ON SCENE 03-03-2026 14:29:49|GRASS FIRE CAUGHT UT TRAILER 03-03-2026 14:31:12|DID NOT EXTEND INTO BUILDING 03-03-2026 14:32:18|DOWNGRADE PER C78 03-03-2026 14:35:17|COMMAND CANCEL BMU 03-03-2026 14:54:25|Disposition - SDPS PD:  NRN\nNotes on Close: B45 HAS COMMAND\n 03-03-2026 14:54:56|Disposition - SSCA:  RPT"
[2026-03-03 21:02:20] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-03 21:02:20] [INFO]   -> Found value: 03-03-2026T14:25:18
[2026-03-03 21:02:20] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T14:25:18
[2026-03-03 21:02:20] [INFO]   -> Set field 'alarm' = "2026-03-03 14:25:18"
[2026-03-03 21:02:20] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T14:25:18
[2026-03-03 21:02:20] [INFO]   -> Set field 'dispatched' = "2026-03-03 14:25:18"
[2026-03-03 21:02:20] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-03 21:02:20] [INFO]   -> Found value: 03-03-2026T14:29:28
[2026-03-03 21:02:20] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T14:29:28
[2026-03-03 21:02:20] [INFO]   -> Set field 'onScene' = "2026-03-03 14:29:28"
[2026-03-03 21:02:20] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-03 21:02:20] [INFO]   -> Found value: 03-03-2026T15:01:52
[2026-03-03 21:02:20] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T15:01:52
[2026-03-03 21:02:20] [INFO]   -> Set field 'cleared' = "2026-03-03 15:01:52"
[2026-03-03 21:02:20] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T15:01:52
[2026-03-03 21:02:20] [INFO]   -> Set field 'inService' = "2026-03-03 15:01:52"
[2026-03-03 21:02:20] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-03 21:02:20] [INFO]   -> Found value: DOWNGRADE
[2026-03-03 21:02:20] [INFO]   -> Set field 'cADVehicleID' = "DOWNGRADE"
[2026-03-03 21:02:20] [INFO]   -> Set field 'name' = "DOWNGRADE"
[2026-03-03 21:02:20] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-03 21:02:20] [INFO]   -> No value found (null or empty)
[2026-03-03 21:02:20] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-03 21:02:20] [INFO]   -> No value found (null or empty)
[2026-03-03 21:02:20] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-03 21:02:20] [INFO]   -> Found value: 03-03-2026T15:01:52
[2026-03-03 21:02:20] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T15:01:52
[2026-03-03 21:02:20] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 15:01:52"
[2026-03-03 21:02:20] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-03 21:02:20] [INFO]   -> Found value: 03-03-2026T14:31:55
[2026-03-03 21:02:20] [INFO] Reformatted DD-MM-YYYY date '03-03-2026' (day=03, month=03) to ISO: 2026-03-03T14:31:55
[2026-03-03 21:02:20] [INFO]   -> Set field 'timedispatch' = "2026-03-03 14:31:55"
[2026-03-03 21:02:20] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-03 21:02:20] [INFO]   -> Found value: SDPSFD
[2026-03-03 21:02:20] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-03-03 21:02:20] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-03 21:02:20] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-03 21:02:20] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-06469","cADNumber":"26-06469","incidentLocationStreetNumber":412,"streetName":"LEE AVE","incidentLocationCity":"SIKESTON","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-STRUCTURE","dispatchNotes":"03-03-2026 14:22:50|BUILDING ON FIRE\nCONTROL FIRE BLEW INTO THE HOUSE \nNO ONE INSIDE  03-03-2026 14:27:05|BMU CONTACTED 03-03-2026 14:29:36|B45 ON SCENE 03-03-2026 14:29:49|GRASS FIRE CAUGHT UT TRAILER 03-03-2026 14:31:12|DID NOT EXTEND INTO BUILDING 03-03-2026 14:32:18|DOWNGRADE PER C78 03-03-2026 14:35:17|COMMAND CANCEL BMU 03-03-2026 14:54:25|Disposition - SDPS PD:  NRN\nNotes on Close: B45 HAS COMMAND\n 03-03-2026 14:54:56|Disposition - SSCA:  RPT","cADLog":"03-03-2026 14:22:50|BUILDING ON FIRE\nCONTROL FIRE BLEW INTO THE HOUSE \nNO ONE INSIDE  03-03-2026 14:27:05|BMU CONTACTED 03-03-2026 14:29:36|B45 ON SCENE 03-03-2026 14:29:49|GRASS FIRE CAUGHT UT TRAILER 03-03-2026 14:31:12|DID NOT EXTEND INTO BUILDING 03-03-2026 14:32:18|DOWNGRADE PER C78 03-03-2026 14:35:17|COMMAND CANCEL BMU 03-03-2026 14:54:25|Disposition - SDPS PD:  NRN\nNotes on Close: B45 HAS COMMAND\n 03-03-2026 14:54:56|Disposition - SSCA:  RPT","alarm":"2026-03-03 14:25:18","dispatched":"2026-03-03 14:25:18","onScene":"2026-03-03 14:29:28","cleared":"2026-03-03 15:01:52","inService":"2026-03-03 15:01:52","cADVehicleID":"DOWNGRADE","name":"DOWNGRADE","timeunitclear":"2026-03-03 15:01:52","timedispatch":"2026-03-03 14:31:55","cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-03-03 21:02:20] [INFO] Number of extracted fields: 23
[2026-03-03 21:02:20] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-03-03 21:02:20] [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-03 21:02:20] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-03-03 21:02:20] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-03-03 21:02:20] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-03-03 21:02:21] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-03-03 21:02:21] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-03-03 21:02:21] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-03-03 21:02:21] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e868e55c0c
[2026-03-03 21:02:23] [INFO] Created new Dispatches record with ID: 69a74c5e060e3458d
[2026-03-03 21:02:23] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06469.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-03/SDPSFD_26-06469.xml
[2026-03-03 21:02:23] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-06469.xml
[2026-03-03 21:20:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212052.XML
[2026-03-03 21:20:52] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212052.XML for user: 68f1466aed072ad4a
[2026-03-03 21:20:52] [INFO] File size: 5012 bytes
[2026-03-03 21:20:52] [INFO] Created FTPFiles record with ID: 69a750b480ef8d93a
[2026-03-03 21:20:52] [INFO] About to extract fields from XML. File size: 5012 bytes
[2026-03-03 21:20:52] [INFO] Number of mappings: 28
[2026-03-03 21:20:52] [INFO] Starting XML parsing. Content length: 5012
[2026-03-03 21:20:52] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 21:20:52] [INFO] Processing 28 field mappings
[2026-03-03 21:20:52] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 21:20:52] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 21:20:52] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 21:20:52] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-03 21:20:52] [INFO]   -> Found value: AFD
EMS
[2026-03-03 21:20:52] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nEMS"
[2026-03-03 21:20:52] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 21:20:52] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-03 21:20:52] [INFO]   -> Found value: 2026000097
[2026-03-03 21:20:52] [INFO]   -> Set field 'incidentInternalId' = "2026000097"
[2026-03-03 21:20:52] [INFO]   -> Set field 'dispatchRunNumber' = "2026000097"
[2026-03-03 21:20:52] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 21:20:52] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 21:20:52] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 21:20:52] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 21:20:52] [INFO]   -> Found value: 397
[2026-03-03 21:20:52] [INFO]   -> Set field 'incidentLocationStreetNumber' = 397
[2026-03-03 21:20:52] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 21:20:52] [INFO]   -> Found value: TN
[2026-03-03 21:20:52] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 21:20:52] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 21:20:52] [INFO]   -> Found value: 38506
[2026-03-03 21:20:52] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 21:20:52] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 21:20:52] [INFO]   -> No value found (null or empty)
[2026-03-03 21:20:52] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 21:20:52] [INFO]   -> No value found (null or empty)
[2026-03-03 21:20:52] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 21:20:52] [INFO]   -> Found value: 36.18140
[2026-03-03 21:20:52] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18139999999999645297066308557987213134765625
[2026-03-03 21:20:52] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 21:20:52] [INFO]   -> Found value: -85.44690
[2026-03-03 21:20:52] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.446899999999999408828443847596645355224609375
[2026-03-03 21:20:52] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 21:20:52] [INFO]   -> Found value: 2026-03-03 15:19:43
[2026-03-03 21:20:52] [INFO]   -> Set field 'alarm' = "2026-03-03 15:19:43"
[2026-03-03 21:20:52] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 21:20:52] [INFO]   -> Found value: 2026-03-03 15:20:47
[2026-03-03 21:20:52] [INFO]   -> Set field 'dispatched' = "2026-03-03 15:20:47"
[2026-03-03 21:20:52] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 21:20:52] [INFO]   -> No value found (null or empty)
[2026-03-03 21:20:52] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 21:20:52] [INFO]   -> No value found (null or empty)
[2026-03-03 21:20:52] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 21:20:52] [INFO]   -> No value found (null or empty)
[2026-03-03 21:20:52] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 21:20:52] [INFO]   -> Found value: BROOKSIDE DR/MASON PT
[2026-03-03 21:20:52] [INFO]   -> Set field 'incidentLocationCross' = "BROOKSIDE DR\/MASON PT"
[2026-03-03 21:20:52] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 21:20:52] [INFO]   -> Found value: AFR
[2026-03-03 21:20:52] [INFO]   -> Set field 'cADVehicleID' = "AFR"
[2026-03-03 21:20:52] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 21:20:52] [INFO]   -> Found value: 2026-03-03 15:20:47
[2026-03-03 21:20:52] [INFO]   -> Set field 'timedispatch' = "2026-03-03 15:20:47"
[2026-03-03 21:20:52] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 21:20:52] [INFO]   -> No value found (null or empty)
[2026-03-03 21:20:52] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 21:20:52] [INFO]   -> No value found (null or empty)
[2026-03-03 21:20:52] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 21:20:52] [INFO]   -> No value found (null or empty)
[2026-03-03 21:20:52] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 21:20:52] [INFO]   -> No value found (null or empty)
[2026-03-03 21:20:52] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 21:20:52] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 21:20:52] [INFO]   -> Found value: 20260023510
[2026-03-03 21:20:52] [INFO]   -> Set field 'policeReportNumber' = "20260023510"
[2026-03-03 21:20:52] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 21:20:52] [INFO]   -> Found value: [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03/03/26 15:20:39 KBURTON] Event spawne...
[2026-03-03 21:20:52] [INFO]   -> Set field 'dispatchNotes' = "[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:20:52] [INFO]   -> Set field 'cADLog' = "[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:20:52] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 21:20:52] [INFO]   -> Found value: ALGOOD
[2026-03-03 21:20:52] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-03 21:20:52] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 21:20:52] [INFO]   -> Found value: AVEY
[2026-03-03 21:20:52] [INFO]   -> Set field 'streetName' = "AVEY"
[2026-03-03 21:20:52] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 21:20:52] [INFO]   -> Found value: CIR
[2026-03-03 21:20:52] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-03 21:20:52] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 21:20:52] [INFO]   -> Found value: 397 AVEY CIR
[2026-03-03 21:20:52] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "397 AVEY CIR"
[2026-03-03 21:20:52] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-03 21:20:52] [INFO] Concatenating street name and type
[2026-03-03 21:20:52] [INFO]   -> Combined street name: AVEY CIR
[2026-03-03 21:20:52] [INFO] Built locationCoordinates from lat/lng: 36.1814,-85.4469
[2026-03-03 21:20:52] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nEMS","incidentInternalId":"2026000097","dispatchRunNumber":"2026000097","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":397,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.18139999999999645297066308557987213134765625,"nERISIncidentLongitude":-85.446899999999999408828443847596645355224609375,"alarm":"2026-03-03 15:19:43","dispatched":"2026-03-03 15:20:47","incidentLocationCross":"BROOKSIDE DR\/MASON PT","cADVehicleID":"AFR","timedispatch":"2026-03-03 15:20:47","policeReportNumber":"20260023510","dispatchNotes":"[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","cADLog":"[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","incidentLocationCity":"ALGOOD","streetName":"AVEY CIR","incidentAddressTextVersionStreet":"397 AVEY CIR","locationCoordinates":"36.1814,-85.4469"}
[2026-03-03 21:20:52] [INFO] Number of extracted fields: 21
[2026-03-03 21:20:52] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
EMS'
[2026-03-03 21:20:52] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
EMS', Parsed IDs = ["AFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-03 21:20:52] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","EMS"]
[2026-03-03 21:20:52] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-03 21:20:52] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-03 21:20:52] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-03-03 21:20:52] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-03 21:20:52] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-03 21:20:52] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-03 21:20:52] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-03-03 21:20:53] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-03 21:20:53] [INFO] Found existing IncidentTypeMapping with ID: 694d8ba84e4f3a45a
[2026-03-03 21:20:58] [INFO] Created new Dispatches record with ID: 69a750b57f946ed18
[2026-03-03 21:20:58] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-03
[2026-03-03 21:20:58] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212052.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-03/AFD_20260023510_20260303_212052.XML
[2026-03-03 21:20:58] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212052.XML
[2026-03-03 21:23:43] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212343.XML
[2026-03-03 21:23:43] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212343.XML for user: 68f1466aed072ad4a
[2026-03-03 21:23:43] [INFO] File size: 6266 bytes
[2026-03-03 21:23:43] [INFO] Created FTPFiles record with ID: 69a7515fc18359786
[2026-03-03 21:23:43] [INFO] About to extract fields from XML. File size: 6266 bytes
[2026-03-03 21:23:43] [INFO] Number of mappings: 28
[2026-03-03 21:23:43] [INFO] Starting XML parsing. Content length: 6266
[2026-03-03 21:23:43] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 21:23:43] [INFO] Processing 28 field mappings
[2026-03-03 21:23:43] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 21:23:43] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 21:23:43] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 21:23:43] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-03 21:23:43] [INFO]   -> Found value: PCFD
EMS
AFD
RESC
[2026-03-03 21:23:43] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nAFD\nRESC"
[2026-03-03 21:23:43] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 21:23:43] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-03 21:23:43] [INFO]   -> Found value: 2026000585
[2026-03-03 21:23:43] [INFO]   -> Set field 'incidentInternalId' = "2026000585"
[2026-03-03 21:23:43] [INFO]   -> Set field 'dispatchRunNumber' = "2026000585"
[2026-03-03 21:23:43] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 21:23:43] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 21:23:43] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 21:23:43] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 21:23:43] [INFO]   -> Found value: 397
[2026-03-03 21:23:43] [INFO]   -> Set field 'incidentLocationStreetNumber' = 397
[2026-03-03 21:23:43] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 21:23:43] [INFO]   -> Found value: TN
[2026-03-03 21:23:43] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 21:23:43] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 21:23:43] [INFO]   -> Found value: 38506
[2026-03-03 21:23:43] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 21:23:43] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 21:23:43] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:43] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 21:23:43] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:43] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 21:23:43] [INFO]   -> Found value: 36.18140
[2026-03-03 21:23:43] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18139999999999645297066308557987213134765625
[2026-03-03 21:23:43] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 21:23:43] [INFO]   -> Found value: -85.44690
[2026-03-03 21:23:43] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.446899999999999408828443847596645355224609375
[2026-03-03 21:23:43] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 21:23:43] [INFO]   -> Found value: 2026-03-03 15:23:05
[2026-03-03 21:23:43] [INFO]   -> Set field 'alarm' = "2026-03-03 15:23:05"
[2026-03-03 21:23:43] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 21:23:43] [INFO]   -> Found value: 2026-03-03 15:23:05
[2026-03-03 21:23:43] [INFO]   -> Set field 'dispatched' = "2026-03-03 15:23:05"
[2026-03-03 21:23:43] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 21:23:43] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:43] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 21:23:43] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:43] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 21:23:43] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:43] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 21:23:43] [INFO]   -> Found value: BROOKSIDE DR/MASON PT
[2026-03-03 21:23:43] [INFO]   -> Set field 'incidentLocationCross' = "BROOKSIDE DR\/MASON PT"
[2026-03-03 21:23:43] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 21:23:43] [INFO]   -> Found value: PCFR
[2026-03-03 21:23:43] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 21:23:43] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 21:23:43] [INFO]   -> Found value: 2026-03-03 15:23:05
[2026-03-03 21:23:43] [INFO]   -> Set field 'timedispatch' = "2026-03-03 15:23:05"
[2026-03-03 21:23:43] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 21:23:43] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:43] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 21:23:43] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:43] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 21:23:43] [INFO]   -> Found value: 2026-03-03 15:23:41
[2026-03-03 21:23:43] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 15:23:41"
[2026-03-03 21:23:43] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 21:23:43] [INFO]   -> Found value: 2026-03-03 15:23:41
[2026-03-03 21:23:43] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-03 15:23:41"
[2026-03-03 21:23:43] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 21:23:43] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 21:23:43] [INFO]   -> Found value: 20260023512
[2026-03-03 21:23:43] [INFO]   -> Set field 'policeReportNumber' = "20260023512"
[2026-03-03 21:23:43] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 21:23:43] [INFO]   -> Found value: Event spawned from BREATHING PROBLEMS.  [03/03/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID...
[2026-03-03 21:23:43] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:23:43] [INFO]   -> Set field 'cADLog' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:23:43] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 21:23:43] [INFO]   -> Found value: ALGOOD
[2026-03-03 21:23:43] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-03 21:23:43] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 21:23:43] [INFO]   -> Found value: AVEY
[2026-03-03 21:23:43] [INFO]   -> Set field 'streetName' = "AVEY"
[2026-03-03 21:23:43] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 21:23:43] [INFO]   -> Found value: CIR
[2026-03-03 21:23:43] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-03 21:23:43] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 21:23:43] [INFO]   -> Found value: 397 AVEY CIR
[2026-03-03 21:23:43] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "397 AVEY CIR"
[2026-03-03 21:23:43] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 21:23:43] [INFO] Concatenating street name and type
[2026-03-03 21:23:43] [INFO]   -> Combined street name: AVEY CIR
[2026-03-03 21:23:43] [INFO] Built locationCoordinates from lat/lng: 36.1814,-85.4469
[2026-03-03 21:23:43] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nAFD\nRESC","incidentInternalId":"2026000585","dispatchRunNumber":"2026000585","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":397,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.18139999999999645297066308557987213134765625,"nERISIncidentLongitude":-85.446899999999999408828443847596645355224609375,"alarm":"2026-03-03 15:23:05","dispatched":"2026-03-03 15:23:05","incidentLocationCross":"BROOKSIDE DR\/MASON PT","cADVehicleID":"PCFR","timedispatch":"2026-03-03 15:23:05","timeunitclear":"2026-03-03 15:23:41","timecanceledenroute":"2026-03-03 15:23:41","policeReportNumber":"20260023512","dispatchNotes":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","cADLog":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","incidentLocationCity":"ALGOOD","streetName":"AVEY CIR","incidentAddressTextVersionStreet":"397 AVEY CIR","locationCoordinates":"36.1814,-85.4469"}
[2026-03-03 21:23:43] [INFO] Number of extracted fields: 23
[2026-03-03 21:23:43] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
AFD
RESC'
[2026-03-03 21:23:43] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
AFD
RESC', Parsed IDs = ["PCFD","EMS","AFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-03 21:23:43] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","AFD","RESC"]
[2026-03-03 21:23:43] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 21:23:43] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 21:23:43] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","AFD","RESC"]
[2026-03-03 21:23: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-03 21:23: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-03 21:23:44] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-03 21:23:44] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 21:23:44] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 21:23:44] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-03 21:23:53] [INFO] Created new Dispatches record with ID: 69a751609f4f0b75d
[2026-03-03 21:23:53] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212343.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-03/PCFD_20260023512_20260303_212343.XML
[2026-03-03 21:23:53] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212343.XML
[2026-03-03 21:23:53] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212343_1.XML
[2026-03-03 21:23:53] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212343_1.XML for user: 68f1466aed072ad4a
[2026-03-03 21:23:53] [INFO] File size: 6266 bytes
[2026-03-03 21:23:53] [INFO] Created FTPFiles record with ID: 69a75169eb259d428
[2026-03-03 21:23:53] [INFO] About to extract fields from XML. File size: 6266 bytes
[2026-03-03 21:23:53] [INFO] Number of mappings: 28
[2026-03-03 21:23:53] [INFO] Starting XML parsing. Content length: 6266
[2026-03-03 21:23:53] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 21:23:53] [INFO] Processing 28 field mappings
[2026-03-03 21:23:53] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 21:23:53] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 21:23:53] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 21:23:53] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-03 21:23:53] [INFO]   -> Found value: PCFD
EMS
AFD
RESC
[2026-03-03 21:23:53] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nAFD\nRESC"
[2026-03-03 21:23:53] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 21:23:53] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-03 21:23:53] [INFO]   -> Found value: 2026000585
[2026-03-03 21:23:53] [INFO]   -> Set field 'incidentInternalId' = "2026000585"
[2026-03-03 21:23:53] [INFO]   -> Set field 'dispatchRunNumber' = "2026000585"
[2026-03-03 21:23:53] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 21:23:53] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 21:23:53] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 21:23:53] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 21:23:53] [INFO]   -> Found value: 397
[2026-03-03 21:23:53] [INFO]   -> Set field 'incidentLocationStreetNumber' = 397
[2026-03-03 21:23:53] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 21:23:53] [INFO]   -> Found value: TN
[2026-03-03 21:23:53] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 21:23:53] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 21:23:53] [INFO]   -> Found value: 38506
[2026-03-03 21:23:53] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 21:23:53] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 21:23:53] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:53] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 21:23:53] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:53] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 21:23:53] [INFO]   -> Found value: 36.18140
[2026-03-03 21:23:53] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18139999999999645297066308557987213134765625
[2026-03-03 21:23:53] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 21:23:53] [INFO]   -> Found value: -85.44690
[2026-03-03 21:23:53] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.446899999999999408828443847596645355224609375
[2026-03-03 21:23:53] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 21:23:53] [INFO]   -> Found value: 2026-03-03 15:23:05
[2026-03-03 21:23:53] [INFO]   -> Set field 'alarm' = "2026-03-03 15:23:05"
[2026-03-03 21:23:53] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 21:23:53] [INFO]   -> Found value: 2026-03-03 15:23:05
[2026-03-03 21:23:53] [INFO]   -> Set field 'dispatched' = "2026-03-03 15:23:05"
[2026-03-03 21:23:53] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 21:23:53] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:53] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 21:23:53] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:53] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 21:23:53] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:53] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 21:23:53] [INFO]   -> Found value: BROOKSIDE DR/MASON PT
[2026-03-03 21:23:53] [INFO]   -> Set field 'incidentLocationCross' = "BROOKSIDE DR\/MASON PT"
[2026-03-03 21:23:53] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 21:23:53] [INFO]   -> Found value: PCFR
[2026-03-03 21:23:53] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 21:23:53] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 21:23:53] [INFO]   -> Found value: 2026-03-03 15:23:05
[2026-03-03 21:23:53] [INFO]   -> Set field 'timedispatch' = "2026-03-03 15:23:05"
[2026-03-03 21:23:53] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 21:23:53] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:53] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 21:23:53] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:53] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 21:23:53] [INFO]   -> Found value: 2026-03-03 15:23:41
[2026-03-03 21:23:53] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 15:23:41"
[2026-03-03 21:23:53] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 21:23:53] [INFO]   -> Found value: 2026-03-03 15:23:41
[2026-03-03 21:23:53] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-03 15:23:41"
[2026-03-03 21:23:53] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 21:23:53] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 21:23:53] [INFO]   -> Found value: 20260023512
[2026-03-03 21:23:53] [INFO]   -> Set field 'policeReportNumber' = "20260023512"
[2026-03-03 21:23:53] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 21:23:53] [INFO]   -> Found value: Event spawned from BREATHING PROBLEMS.  [03/03/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID...
[2026-03-03 21:23:53] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:23:53] [INFO]   -> Set field 'cADLog' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:23:53] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 21:23:53] [INFO]   -> Found value: ALGOOD
[2026-03-03 21:23:53] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-03 21:23:53] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 21:23:53] [INFO]   -> Found value: AVEY
[2026-03-03 21:23:53] [INFO]   -> Set field 'streetName' = "AVEY"
[2026-03-03 21:23:53] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 21:23:53] [INFO]   -> Found value: CIR
[2026-03-03 21:23:53] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-03 21:23:53] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 21:23:53] [INFO]   -> Found value: 397 AVEY CIR
[2026-03-03 21:23:53] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "397 AVEY CIR"
[2026-03-03 21:23:53] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 21:23:53] [INFO] Concatenating street name and type
[2026-03-03 21:23:53] [INFO]   -> Combined street name: AVEY CIR
[2026-03-03 21:23:53] [INFO] Built locationCoordinates from lat/lng: 36.1814,-85.4469
[2026-03-03 21:23:53] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nAFD\nRESC","incidentInternalId":"2026000585","dispatchRunNumber":"2026000585","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":397,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.18139999999999645297066308557987213134765625,"nERISIncidentLongitude":-85.446899999999999408828443847596645355224609375,"alarm":"2026-03-03 15:23:05","dispatched":"2026-03-03 15:23:05","incidentLocationCross":"BROOKSIDE DR\/MASON PT","cADVehicleID":"PCFR","timedispatch":"2026-03-03 15:23:05","timeunitclear":"2026-03-03 15:23:41","timecanceledenroute":"2026-03-03 15:23:41","policeReportNumber":"20260023512","dispatchNotes":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","cADLog":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","incidentLocationCity":"ALGOOD","streetName":"AVEY CIR","incidentAddressTextVersionStreet":"397 AVEY CIR","locationCoordinates":"36.1814,-85.4469"}
[2026-03-03 21:23:53] [INFO] Number of extracted fields: 23
[2026-03-03 21:23:53] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
AFD
RESC'
[2026-03-03 21:23:53] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
AFD
RESC', Parsed IDs = ["PCFD","EMS","AFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-03 21:23:53] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","AFD","RESC"]
[2026-03-03 21:23:53] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 21:23:54] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 21:23:54] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","AFD","RESC"]
[2026-03-03 21:23: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-03 21:23: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-03 21:23:54] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-03 21:23:54] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 21:23:54] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 21:23:54] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-03 21:23:54] [INFO] Found existing Dispatch with cADNumber '2026000585', ID: 69a751609f4f0b75d - will update instead of create
[2026-03-03 21:23:54] [INFO] Updated existing Dispatches record with ID: 69a751609f4f0b75d
[2026-03-03 21:23:54] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212343_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-03/PCFD_20260023512_20260303_212343_1.XML
[2026-03-03 21:23:54] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212343_1.XML
[2026-03-03 21:23:54] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212343_2.XML
[2026-03-03 21:23:54] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212343_2.XML for user: 68f1466aed072ad4a
[2026-03-03 21:23:54] [INFO] File size: 6266 bytes
[2026-03-03 21:23:55] [INFO] Created FTPFiles record with ID: 69a7516b2ebd05b11
[2026-03-03 21:23:55] [INFO] About to extract fields from XML. File size: 6266 bytes
[2026-03-03 21:23:55] [INFO] Number of mappings: 28
[2026-03-03 21:23:55] [INFO] Starting XML parsing. Content length: 6266
[2026-03-03 21:23:55] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 21:23:55] [INFO] Processing 28 field mappings
[2026-03-03 21:23:55] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 21:23:55] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 21:23:55] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 21:23:55] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-03 21:23:55] [INFO]   -> Found value: PCFD
EMS
AFD
RESC
[2026-03-03 21:23:55] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nAFD\nRESC"
[2026-03-03 21:23:55] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 21:23:55] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-03 21:23:55] [INFO]   -> Found value: 2026000585
[2026-03-03 21:23:55] [INFO]   -> Set field 'incidentInternalId' = "2026000585"
[2026-03-03 21:23:55] [INFO]   -> Set field 'dispatchRunNumber' = "2026000585"
[2026-03-03 21:23:55] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 21:23:55] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 21:23:55] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 21:23:55] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 21:23:55] [INFO]   -> Found value: 397
[2026-03-03 21:23:55] [INFO]   -> Set field 'incidentLocationStreetNumber' = 397
[2026-03-03 21:23:55] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 21:23:55] [INFO]   -> Found value: TN
[2026-03-03 21:23:55] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 21:23:55] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 21:23:55] [INFO]   -> Found value: 38506
[2026-03-03 21:23:55] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 21:23:55] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 21:23:55] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:55] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 21:23:55] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:55] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 21:23:55] [INFO]   -> Found value: 36.18140
[2026-03-03 21:23:55] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18139999999999645297066308557987213134765625
[2026-03-03 21:23:55] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 21:23:55] [INFO]   -> Found value: -85.44690
[2026-03-03 21:23:55] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.446899999999999408828443847596645355224609375
[2026-03-03 21:23:55] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 21:23:55] [INFO]   -> Found value: 2026-03-03 15:23:05
[2026-03-03 21:23:55] [INFO]   -> Set field 'alarm' = "2026-03-03 15:23:05"
[2026-03-03 21:23:55] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 21:23:55] [INFO]   -> Found value: 2026-03-03 15:23:05
[2026-03-03 21:23:55] [INFO]   -> Set field 'dispatched' = "2026-03-03 15:23:05"
[2026-03-03 21:23:55] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 21:23:55] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:55] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 21:23:55] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:55] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 21:23:55] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:55] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 21:23:55] [INFO]   -> Found value: BROOKSIDE DR/MASON PT
[2026-03-03 21:23:55] [INFO]   -> Set field 'incidentLocationCross' = "BROOKSIDE DR\/MASON PT"
[2026-03-03 21:23:55] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 21:23:55] [INFO]   -> Found value: PCFR
[2026-03-03 21:23:55] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-03 21:23:55] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 21:23:55] [INFO]   -> Found value: 2026-03-03 15:23:05
[2026-03-03 21:23:55] [INFO]   -> Set field 'timedispatch' = "2026-03-03 15:23:05"
[2026-03-03 21:23:55] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 21:23:55] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:55] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 21:23:55] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:55] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 21:23:55] [INFO]   -> Found value: 2026-03-03 15:23:41
[2026-03-03 21:23:55] [INFO]   -> Set field 'timeunitclear' = "2026-03-03 15:23:41"
[2026-03-03 21:23:55] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 21:23:55] [INFO]   -> Found value: 2026-03-03 15:23:41
[2026-03-03 21:23:55] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-03 15:23:41"
[2026-03-03 21:23:55] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 21:23:55] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 21:23:55] [INFO]   -> Found value: 20260023512
[2026-03-03 21:23:55] [INFO]   -> Set field 'policeReportNumber' = "20260023512"
[2026-03-03 21:23:55] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 21:23:55] [INFO]   -> Found value: Event spawned from BREATHING PROBLEMS.  [03/03/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID...
[2026-03-03 21:23:55] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:23:55] [INFO]   -> Set field 'cADLog' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:23:55] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 21:23:55] [INFO]   -> Found value: ALGOOD
[2026-03-03 21:23:55] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-03 21:23:55] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 21:23:55] [INFO]   -> Found value: AVEY
[2026-03-03 21:23:55] [INFO]   -> Set field 'streetName' = "AVEY"
[2026-03-03 21:23:55] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 21:23:55] [INFO]   -> Found value: CIR
[2026-03-03 21:23:55] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-03 21:23:55] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 21:23:55] [INFO]   -> Found value: 397 AVEY CIR
[2026-03-03 21:23:55] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "397 AVEY CIR"
[2026-03-03 21:23:55] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 21:23:55] [INFO] Concatenating street name and type
[2026-03-03 21:23:55] [INFO]   -> Combined street name: AVEY CIR
[2026-03-03 21:23:55] [INFO] Built locationCoordinates from lat/lng: 36.1814,-85.4469
[2026-03-03 21:23:55] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nAFD\nRESC","incidentInternalId":"2026000585","dispatchRunNumber":"2026000585","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":397,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.18139999999999645297066308557987213134765625,"nERISIncidentLongitude":-85.446899999999999408828443847596645355224609375,"alarm":"2026-03-03 15:23:05","dispatched":"2026-03-03 15:23:05","incidentLocationCross":"BROOKSIDE DR\/MASON PT","cADVehicleID":"PCFR","timedispatch":"2026-03-03 15:23:05","timeunitclear":"2026-03-03 15:23:41","timecanceledenroute":"2026-03-03 15:23:41","policeReportNumber":"20260023512","dispatchNotes":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","cADLog":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","incidentLocationCity":"ALGOOD","streetName":"AVEY CIR","incidentAddressTextVersionStreet":"397 AVEY CIR","locationCoordinates":"36.1814,-85.4469"}
[2026-03-03 21:23:55] [INFO] Number of extracted fields: 23
[2026-03-03 21:23:55] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
AFD
RESC'
[2026-03-03 21:23:55] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
AFD
RESC', Parsed IDs = ["PCFD","EMS","AFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-03 21:23:55] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","AFD","RESC"]
[2026-03-03 21:23:55] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 21:23:55] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 21:23:55] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","AFD","RESC"]
[2026-03-03 21:23: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-03 21:23: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-03 21:23:55] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-03 21:23:55] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 21:23:55] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 21:23:55] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-03 21:23:55] [INFO] Found existing Dispatch with cADNumber '2026000585', ID: 69a751609f4f0b75d - will update instead of create
[2026-03-03 21:23:56] [INFO] Updated existing Dispatches record with ID: 69a751609f4f0b75d
[2026-03-03 21:23:56] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212343_2.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-03/PCFD_20260023512_20260303_212343_2.XML
[2026-03-03 21:23:56] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212343_2.XML
[2026-03-03 21:23:56] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212347.XML
[2026-03-03 21:23:56] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212347.XML for user: 68f1466aed072ad4a
[2026-03-03 21:23:56] [INFO] File size: 6333 bytes
[2026-03-03 21:23:56] [INFO] Created FTPFiles record with ID: 69a7516c6383f31dc
[2026-03-03 21:23:56] [INFO] About to extract fields from XML. File size: 6333 bytes
[2026-03-03 21:23:56] [INFO] Number of mappings: 28
[2026-03-03 21:23:56] [INFO] Starting XML parsing. Content length: 6333
[2026-03-03 21:23:56] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 21:23:56] [INFO] Processing 28 field mappings
[2026-03-03 21:23:56] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 21:23:56] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 21:23:56] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 21:23:56] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-03 21:23:56] [INFO]   -> Found value: PCFD
EMS
AFD
RESC
[2026-03-03 21:23:56] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nAFD\nRESC"
[2026-03-03 21:23:56] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 21:23:56] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-03 21:23:56] [INFO]   -> Found value: 2026000585
[2026-03-03 21:23:56] [INFO]   -> Set field 'incidentInternalId' = "2026000585"
[2026-03-03 21:23:56] [INFO]   -> Set field 'dispatchRunNumber' = "2026000585"
[2026-03-03 21:23:56] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 21:23:56] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 21:23:56] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 21:23:56] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 21:23:56] [INFO]   -> Found value: 397
[2026-03-03 21:23:56] [INFO]   -> Set field 'incidentLocationStreetNumber' = 397
[2026-03-03 21:23:56] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 21:23:56] [INFO]   -> Found value: TN
[2026-03-03 21:23:56] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 21:23:56] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 21:23:56] [INFO]   -> Found value: 38506
[2026-03-03 21:23:56] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 21:23:56] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 21:23:56] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:56] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 21:23:56] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:56] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 21:23:56] [INFO]   -> Found value: 36.18140
[2026-03-03 21:23:56] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18139999999999645297066308557987213134765625
[2026-03-03 21:23:56] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 21:23:56] [INFO]   -> Found value: -85.44690
[2026-03-03 21:23:56] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.446899999999999408828443847596645355224609375
[2026-03-03 21:23:56] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 21:23:56] [INFO]   -> Found value: 2026-03-03 15:23:05
[2026-03-03 21:23:56] [INFO]   -> Set field 'alarm' = "2026-03-03 15:23:05"
[2026-03-03 21:23:56] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 21:23:56] [INFO]   -> Found value: 2026-03-03 15:23:05
[2026-03-03 21:23:56] [INFO]   -> Set field 'dispatched' = "2026-03-03 15:23:05"
[2026-03-03 21:23:56] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 21:23:56] [INFO]   -> Found value: 2026-03-03 15:23:44
[2026-03-03 21:23:56] [INFO]   -> Set field 'enroute' = "2026-03-03 15:23:44"
[2026-03-03 21:23:56] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 21:23:56] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:56] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 21:23:56] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:56] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 21:23:56] [INFO]   -> Found value: BROOKSIDE DR/MASON PT
[2026-03-03 21:23:56] [INFO]   -> Set field 'incidentLocationCross' = "BROOKSIDE DR\/MASON PT"
[2026-03-03 21:23:56] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 21:23:56] [INFO]   -> Found value: TK12
[2026-03-03 21:23:56] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-03 21:23:56] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 21:23:56] [INFO]   -> Found value: 2026-03-03 15:23:41
[2026-03-03 21:23:56] [INFO]   -> Set field 'timedispatch' = "2026-03-03 15:23:41"
[2026-03-03 21:23:56] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 21:23:56] [INFO]   -> Found value: 2026-03-03 15:23:44
[2026-03-03 21:23:56] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 15:23:44"
[2026-03-03 21:23:56] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 21:23:56] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:56] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 21:23:56] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:56] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 21:23:56] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:56] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 21:23:56] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 21:23:56] [INFO]   -> Found value: 20260023512
[2026-03-03 21:23:56] [INFO]   -> Set field 'policeReportNumber' = "20260023512"
[2026-03-03 21:23:56] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 21:23:56] [INFO]   -> Found value: Event spawned from BREATHING PROBLEMS.  [03/03/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID...
[2026-03-03 21:23:56] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:23:56] [INFO]   -> Set field 'cADLog' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:23:56] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 21:23:56] [INFO]   -> Found value: ALGOOD
[2026-03-03 21:23:56] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-03 21:23:56] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 21:23:56] [INFO]   -> Found value: AVEY
[2026-03-03 21:23:56] [INFO]   -> Set field 'streetName' = "AVEY"
[2026-03-03 21:23:56] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 21:23:56] [INFO]   -> Found value: CIR
[2026-03-03 21:23:56] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-03 21:23:56] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 21:23:56] [INFO]   -> Found value: 397 AVEY CIR
[2026-03-03 21:23:56] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "397 AVEY CIR"
[2026-03-03 21:23:56] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 21:23:56] [INFO] Concatenating street name and type
[2026-03-03 21:23:56] [INFO]   -> Combined street name: AVEY CIR
[2026-03-03 21:23:56] [INFO] Built locationCoordinates from lat/lng: 36.1814,-85.4469
[2026-03-03 21:23:56] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nAFD\nRESC","incidentInternalId":"2026000585","dispatchRunNumber":"2026000585","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":397,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.18139999999999645297066308557987213134765625,"nERISIncidentLongitude":-85.446899999999999408828443847596645355224609375,"alarm":"2026-03-03 15:23:05","dispatched":"2026-03-03 15:23:05","enroute":"2026-03-03 15:23:44","incidentLocationCross":"BROOKSIDE DR\/MASON PT","cADVehicleID":"TK12","timedispatch":"2026-03-03 15:23:41","timeenroutetoscene":"2026-03-03 15:23:44","policeReportNumber":"20260023512","dispatchNotes":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","cADLog":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","incidentLocationCity":"ALGOOD","streetName":"AVEY CIR","incidentAddressTextVersionStreet":"397 AVEY CIR","locationCoordinates":"36.1814,-85.4469"}
[2026-03-03 21:23:56] [INFO] Number of extracted fields: 23
[2026-03-03 21:23:56] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
AFD
RESC'
[2026-03-03 21:23:56] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
AFD
RESC', Parsed IDs = ["PCFD","EMS","AFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-03 21:23:56] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","AFD","RESC"]
[2026-03-03 21:23:56] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 21:23:56] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 21:23:56] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","AFD","RESC"]
[2026-03-03 21:23: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-03 21:23: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-03 21:23:56] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-03 21:23:56] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 21:23:56] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 21:23:56] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-03 21:23:57] [INFO] Found existing Dispatch with cADNumber '2026000585', ID: 69a751609f4f0b75d - will update instead of create
[2026-03-03 21:23:57] [INFO] Updated existing Dispatches record with ID: 69a751609f4f0b75d
[2026-03-03 21:23:57] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212347.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-03/PCFD_20260023512_20260303_212347.XML
[2026-03-03 21:23:57] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212347.XML
[2026-03-03 21:23:57] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212352.XML
[2026-03-03 21:23:57] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212352.XML for user: 68f1466aed072ad4a
[2026-03-03 21:23:57] [INFO] File size: 6333 bytes
[2026-03-03 21:23:57] [INFO] Created FTPFiles record with ID: 69a7516d8e65634a8
[2026-03-03 21:23:57] [INFO] About to extract fields from XML. File size: 6333 bytes
[2026-03-03 21:23:57] [INFO] Number of mappings: 28
[2026-03-03 21:23:57] [INFO] Starting XML parsing. Content length: 6333
[2026-03-03 21:23:57] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 21:23:57] [INFO] Processing 28 field mappings
[2026-03-03 21:23:57] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 21:23:57] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 21:23:57] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 21:23:57] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-03 21:23:57] [INFO]   -> Found value: PCFD
EMS
AFD
RESC
[2026-03-03 21:23:57] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nAFD\nRESC"
[2026-03-03 21:23:57] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 21:23:57] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-03 21:23:57] [INFO]   -> Found value: 2026000585
[2026-03-03 21:23:57] [INFO]   -> Set field 'incidentInternalId' = "2026000585"
[2026-03-03 21:23:57] [INFO]   -> Set field 'dispatchRunNumber' = "2026000585"
[2026-03-03 21:23:57] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 21:23:57] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 21:23:57] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 21:23:57] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 21:23:57] [INFO]   -> Found value: 397
[2026-03-03 21:23:57] [INFO]   -> Set field 'incidentLocationStreetNumber' = 397
[2026-03-03 21:23:57] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 21:23:57] [INFO]   -> Found value: TN
[2026-03-03 21:23:57] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 21:23:57] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 21:23:57] [INFO]   -> Found value: 38506
[2026-03-03 21:23:57] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 21:23:57] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 21:23:57] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:57] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 21:23:57] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:57] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 21:23:57] [INFO]   -> Found value: 36.18140
[2026-03-03 21:23:57] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18139999999999645297066308557987213134765625
[2026-03-03 21:23:57] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 21:23:57] [INFO]   -> Found value: -85.44690
[2026-03-03 21:23:57] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.446899999999999408828443847596645355224609375
[2026-03-03 21:23:57] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 21:23:57] [INFO]   -> Found value: 2026-03-03 15:23:05
[2026-03-03 21:23:57] [INFO]   -> Set field 'alarm' = "2026-03-03 15:23:05"
[2026-03-03 21:23:57] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 21:23:57] [INFO]   -> Found value: 2026-03-03 15:23:05
[2026-03-03 21:23:57] [INFO]   -> Set field 'dispatched' = "2026-03-03 15:23:05"
[2026-03-03 21:23:57] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 21:23:57] [INFO]   -> Found value: 2026-03-03 15:23:44
[2026-03-03 21:23:57] [INFO]   -> Set field 'enroute' = "2026-03-03 15:23:44"
[2026-03-03 21:23:57] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 21:23:57] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:57] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 21:23:57] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:57] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 21:23:57] [INFO]   -> Found value: BROOKSIDE DR/MASON PT
[2026-03-03 21:23:57] [INFO]   -> Set field 'incidentLocationCross' = "BROOKSIDE DR\/MASON PT"
[2026-03-03 21:23:57] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 21:23:57] [INFO]   -> Found value: TK12
[2026-03-03 21:23:57] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-03 21:23:57] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 21:23:57] [INFO]   -> Found value: 2026-03-03 15:23:41
[2026-03-03 21:23:57] [INFO]   -> Set field 'timedispatch' = "2026-03-03 15:23:41"
[2026-03-03 21:23:57] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 21:23:57] [INFO]   -> Found value: 2026-03-03 15:23:44
[2026-03-03 21:23:57] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 15:23:44"
[2026-03-03 21:23:57] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 21:23:57] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:57] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 21:23:57] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:57] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 21:23:57] [INFO]   -> No value found (null or empty)
[2026-03-03 21:23:57] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 21:23:57] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 21:23:57] [INFO]   -> Found value: 20260023512
[2026-03-03 21:23:57] [INFO]   -> Set field 'policeReportNumber' = "20260023512"
[2026-03-03 21:23:57] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 21:23:57] [INFO]   -> Found value: Event spawned from BREATHING PROBLEMS.  [03/03/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID...
[2026-03-03 21:23:57] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:23:57] [INFO]   -> Set field 'cADLog' = "Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:23:57] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 21:23:57] [INFO]   -> Found value: ALGOOD
[2026-03-03 21:23:57] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-03 21:23:57] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 21:23:57] [INFO]   -> Found value: AVEY
[2026-03-03 21:23:57] [INFO]   -> Set field 'streetName' = "AVEY"
[2026-03-03 21:23:57] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 21:23:57] [INFO]   -> Found value: CIR
[2026-03-03 21:23:57] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-03 21:23:57] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 21:23:57] [INFO]   -> Found value: 397 AVEY CIR
[2026-03-03 21:23:57] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "397 AVEY CIR"
[2026-03-03 21:23:57] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 21:23:57] [INFO] Concatenating street name and type
[2026-03-03 21:23:57] [INFO]   -> Combined street name: AVEY CIR
[2026-03-03 21:23:57] [INFO] Built locationCoordinates from lat/lng: 36.1814,-85.4469
[2026-03-03 21:23:57] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nAFD\nRESC","incidentInternalId":"2026000585","dispatchRunNumber":"2026000585","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":397,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.18139999999999645297066308557987213134765625,"nERISIncidentLongitude":-85.446899999999999408828443847596645355224609375,"alarm":"2026-03-03 15:23:05","dispatched":"2026-03-03 15:23:05","enroute":"2026-03-03 15:23:44","incidentLocationCross":"BROOKSIDE DR\/MASON PT","cADVehicleID":"TK12","timedispatch":"2026-03-03 15:23:41","timeenroutetoscene":"2026-03-03 15:23:44","policeReportNumber":"20260023512","dispatchNotes":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","cADLog":"Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:23:05 JBOHANNON] [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","incidentLocationCity":"ALGOOD","streetName":"AVEY CIR","incidentAddressTextVersionStreet":"397 AVEY CIR","locationCoordinates":"36.1814,-85.4469"}
[2026-03-03 21:23:57] [INFO] Number of extracted fields: 23
[2026-03-03 21:23:57] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
AFD
RESC'
[2026-03-03 21:23:57] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
AFD
RESC', Parsed IDs = ["PCFD","EMS","AFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-03 21:23:57] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","AFD","RESC"]
[2026-03-03 21:23:57] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 21:23:57] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 21:23:57] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","AFD","RESC"]
[2026-03-03 21:23: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-03 21:23: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-03 21:23:57] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-03 21:23:57] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-03 21:23:57] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 21:23:58] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-03 21:23:58] [INFO] Found existing Dispatch with cADNumber '2026000585', ID: 69a751609f4f0b75d - will update instead of create
[2026-03-03 21:23:58] [INFO] Updated existing Dispatches record with ID: 69a751609f4f0b75d
[2026-03-03 21:23:58] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212352.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-03/PCFD_20260023512_20260303_212352.XML
[2026-03-03 21:23:58] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023512_20260303_212352.XML
[2026-03-03 21:24:07] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212407.XML
[2026-03-03 21:24:07] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212407.XML for user: 68f1466aed072ad4a
[2026-03-03 21:24:07] [INFO] File size: 6428 bytes
[2026-03-03 21:24:08] [INFO] Created FTPFiles record with ID: 69a751780f334b9ef
[2026-03-03 21:24:08] [INFO] About to extract fields from XML. File size: 6428 bytes
[2026-03-03 21:24:08] [INFO] Number of mappings: 28
[2026-03-03 21:24:08] [INFO] Starting XML parsing. Content length: 6428
[2026-03-03 21:24:08] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 21:24:08] [INFO] Processing 28 field mappings
[2026-03-03 21:24:08] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 21:24:08] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 21:24:08] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 21:24:08] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-03 21:24:08] [INFO]   -> Found value: AFD
EMS
PCFD
RESC
[2026-03-03 21:24:08] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nEMS\nPCFD\nRESC"
[2026-03-03 21:24:08] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 21:24:08] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-03 21:24:08] [INFO]   -> Found value: 2026000097
[2026-03-03 21:24:08] [INFO]   -> Set field 'incidentInternalId' = "2026000097"
[2026-03-03 21:24:08] [INFO]   -> Set field 'dispatchRunNumber' = "2026000097"
[2026-03-03 21:24:08] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 21:24:08] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 21:24:08] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 21:24:08] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 21:24:08] [INFO]   -> Found value: 397
[2026-03-03 21:24:08] [INFO]   -> Set field 'incidentLocationStreetNumber' = 397
[2026-03-03 21:24:08] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 21:24:08] [INFO]   -> Found value: TN
[2026-03-03 21:24:08] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 21:24:08] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 21:24:08] [INFO]   -> Found value: 38506
[2026-03-03 21:24:08] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 21:24:08] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 21:24:08] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:08] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 21:24:08] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:08] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 21:24:08] [INFO]   -> Found value: 36.18140
[2026-03-03 21:24:08] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18139999999999645297066308557987213134765625
[2026-03-03 21:24:08] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 21:24:08] [INFO]   -> Found value: -85.44690
[2026-03-03 21:24:08] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.446899999999999408828443847596645355224609375
[2026-03-03 21:24:08] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 21:24:08] [INFO]   -> Found value: 2026-03-03 15:19:43
[2026-03-03 21:24:08] [INFO]   -> Set field 'alarm' = "2026-03-03 15:19:43"
[2026-03-03 21:24:08] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 21:24:08] [INFO]   -> Found value: 2026-03-03 15:20:47
[2026-03-03 21:24:08] [INFO]   -> Set field 'dispatched' = "2026-03-03 15:20:47"
[2026-03-03 21:24:08] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 21:24:08] [INFO]   -> Found value: 2026-03-03 15:24:04
[2026-03-03 21:24:08] [INFO]   -> Set field 'enroute' = "2026-03-03 15:24:04"
[2026-03-03 21:24:08] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 21:24:08] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:08] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 21:24:08] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:08] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 21:24:08] [INFO]   -> Found value: BROOKSIDE DR/MASON PT
[2026-03-03 21:24:08] [INFO]   -> Set field 'incidentLocationCross' = "BROOKSIDE DR\/MASON PT"
[2026-03-03 21:24:08] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 21:24:08] [INFO]   -> Found value: A1200
[2026-03-03 21:24:08] [INFO]   -> Set field 'cADVehicleID' = "A1200"
[2026-03-03 21:24:08] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 21:24:08] [INFO]   -> Found value: 2026-03-03 15:24:02
[2026-03-03 21:24:08] [INFO]   -> Set field 'timedispatch' = "2026-03-03 15:24:02"
[2026-03-03 21:24:08] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 21:24:08] [INFO]   -> Found value: 2026-03-03 15:24:04
[2026-03-03 21:24:08] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 15:24:04"
[2026-03-03 21:24:08] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 21:24:08] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:08] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 21:24:08] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:08] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 21:24:08] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:08] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 21:24:08] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 21:24:08] [INFO]   -> Found value: 20260023510
[2026-03-03 21:24:08] [INFO]   -> Set field 'policeReportNumber' = "20260023510"
[2026-03-03 21:24:08] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 21:24:08] [INFO]   -> Found value: [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03/03/26 15:20:39 KBURTON] Event spawne...
[2026-03-03 21:24:08] [INFO]   -> Set field 'dispatchNotes' = "[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:24:08] [INFO]   -> Set field 'cADLog' = "[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:24:08] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 21:24:08] [INFO]   -> Found value: ALGOOD
[2026-03-03 21:24:08] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-03 21:24:08] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 21:24:08] [INFO]   -> Found value: AVEY
[2026-03-03 21:24:08] [INFO]   -> Set field 'streetName' = "AVEY"
[2026-03-03 21:24:08] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 21:24:08] [INFO]   -> Found value: CIR
[2026-03-03 21:24:08] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-03 21:24:08] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 21:24:08] [INFO]   -> Found value: 397 AVEY CIR
[2026-03-03 21:24:08] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "397 AVEY CIR"
[2026-03-03 21:24:08] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 21:24:08] [INFO] Concatenating street name and type
[2026-03-03 21:24:08] [INFO]   -> Combined street name: AVEY CIR
[2026-03-03 21:24:08] [INFO] Built locationCoordinates from lat/lng: 36.1814,-85.4469
[2026-03-03 21:24:08] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nEMS\nPCFD\nRESC","incidentInternalId":"2026000097","dispatchRunNumber":"2026000097","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":397,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.18139999999999645297066308557987213134765625,"nERISIncidentLongitude":-85.446899999999999408828443847596645355224609375,"alarm":"2026-03-03 15:19:43","dispatched":"2026-03-03 15:20:47","enroute":"2026-03-03 15:24:04","incidentLocationCross":"BROOKSIDE DR\/MASON PT","cADVehicleID":"A1200","timedispatch":"2026-03-03 15:24:02","timeenroutetoscene":"2026-03-03 15:24:04","policeReportNumber":"20260023510","dispatchNotes":"[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","cADLog":"[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","incidentLocationCity":"ALGOOD","streetName":"AVEY CIR","incidentAddressTextVersionStreet":"397 AVEY CIR","locationCoordinates":"36.1814,-85.4469"}
[2026-03-03 21:24:08] [INFO] Number of extracted fields: 23
[2026-03-03 21:24:08] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
EMS
PCFD
RESC'
[2026-03-03 21:24:08] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
EMS
PCFD
RESC', Parsed IDs = ["AFD","EMS","PCFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-03 21:24:08] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","EMS","PCFD","RESC"]
[2026-03-03 21:24:08] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-03 21:24:08] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-03 21:24:08] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCFD","RESC"]
[2026-03-03 21:24:08] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-03 21:24:08] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-03 21:24:08] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-03 21:24:08] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-03-03 21:24:08] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-03 21:24:08] [INFO] Found existing IncidentTypeMapping with ID: 694d8ba84e4f3a45a
[2026-03-03 21:24:08] [INFO] Found existing Dispatch with cADNumber '2026000097', ID: 69a750b57f946ed18 - will update instead of create
[2026-03-03 21:24:09] [INFO] Updated existing Dispatches record with ID: 69a750b57f946ed18
[2026-03-03 21:24:09] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212407.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-03/AFD_20260023510_20260303_212407.XML
[2026-03-03 21:24:09] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212407.XML
[2026-03-03 21:24:13] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212413.XML
[2026-03-03 21:24:13] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212413.XML for user: 68f1466aed072ad4a
[2026-03-03 21:24:13] [INFO] File size: 6535 bytes
[2026-03-03 21:24:13] [INFO] Created FTPFiles record with ID: 69a7517d8a3d0684b
[2026-03-03 21:24:13] [INFO] About to extract fields from XML. File size: 6535 bytes
[2026-03-03 21:24:13] [INFO] Number of mappings: 28
[2026-03-03 21:24:13] [INFO] Starting XML parsing. Content length: 6535
[2026-03-03 21:24:13] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 21:24:13] [INFO] Processing 28 field mappings
[2026-03-03 21:24:13] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 21:24:13] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 21:24:13] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 21:24:13] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-03 21:24:13] [INFO]   -> Found value: AFD
EMS
PCFD
RESC
[2026-03-03 21:24:13] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nEMS\nPCFD\nRESC"
[2026-03-03 21:24:13] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 21:24:13] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-03 21:24:13] [INFO]   -> Found value: 2026000097
[2026-03-03 21:24:13] [INFO]   -> Set field 'incidentInternalId' = "2026000097"
[2026-03-03 21:24:13] [INFO]   -> Set field 'dispatchRunNumber' = "2026000097"
[2026-03-03 21:24:13] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 21:24:13] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 21:24:13] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 21:24:13] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 21:24:13] [INFO]   -> Found value: 397
[2026-03-03 21:24:13] [INFO]   -> Set field 'incidentLocationStreetNumber' = 397
[2026-03-03 21:24:13] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 21:24:13] [INFO]   -> Found value: TN
[2026-03-03 21:24:13] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 21:24:13] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 21:24:13] [INFO]   -> Found value: 38506
[2026-03-03 21:24:13] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 21:24:13] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 21:24:13] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:13] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 21:24:13] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:13] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 21:24:13] [INFO]   -> Found value: 36.18140
[2026-03-03 21:24:13] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18139999999999645297066308557987213134765625
[2026-03-03 21:24:13] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 21:24:13] [INFO]   -> Found value: -85.44690
[2026-03-03 21:24:13] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.446899999999999408828443847596645355224609375
[2026-03-03 21:24:13] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 21:24:13] [INFO]   -> Found value: 2026-03-03 15:19:43
[2026-03-03 21:24:13] [INFO]   -> Set field 'alarm' = "2026-03-03 15:19:43"
[2026-03-03 21:24:13] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 21:24:13] [INFO]   -> Found value: 2026-03-03 15:20:47
[2026-03-03 21:24:13] [INFO]   -> Set field 'dispatched' = "2026-03-03 15:20:47"
[2026-03-03 21:24:13] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 21:24:13] [INFO]   -> Found value: 2026-03-03 15:24:04
[2026-03-03 21:24:13] [INFO]   -> Set field 'enroute' = "2026-03-03 15:24:04"
[2026-03-03 21:24:13] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 21:24:13] [INFO]   -> Found value: 2026-03-03 15:24:05
[2026-03-03 21:24:13] [INFO]   -> Set field 'onScene' = "2026-03-03 15:24:05"
[2026-03-03 21:24:13] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 21:24:13] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:13] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 21:24:13] [INFO]   -> Found value: BROOKSIDE DR/MASON PT
[2026-03-03 21:24:13] [INFO]   -> Set field 'incidentLocationCross' = "BROOKSIDE DR\/MASON PT"
[2026-03-03 21:24:13] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 21:24:13] [INFO]   -> Found value: A1200
[2026-03-03 21:24:13] [INFO]   -> Set field 'cADVehicleID' = "A1200"
[2026-03-03 21:24:13] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 21:24:13] [INFO]   -> Found value: 2026-03-03 15:24:02
[2026-03-03 21:24:13] [INFO]   -> Set field 'timedispatch' = "2026-03-03 15:24:02"
[2026-03-03 21:24:13] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 21:24:13] [INFO]   -> Found value: 2026-03-03 15:24:04
[2026-03-03 21:24:13] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 15:24:04"
[2026-03-03 21:24:13] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 21:24:13] [INFO]   -> Found value: 2026-03-03 15:24:05
[2026-03-03 21:24:13] [INFO]   -> Set field 'timeonscene' = "2026-03-03 15:24:05"
[2026-03-03 21:24:13] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 21:24:13] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:13] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 21:24:13] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:13] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 21:24:13] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 21:24:13] [INFO]   -> Found value: 20260023510
[2026-03-03 21:24:13] [INFO]   -> Set field 'policeReportNumber' = "20260023510"
[2026-03-03 21:24:13] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 21:24:13] [INFO]   -> Found value: [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03/03/26 15:20:39 KBURTON] Event spawne...
[2026-03-03 21:24:13] [INFO]   -> Set field 'dispatchNotes' = "[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:24:13] [INFO]   -> Set field 'cADLog' = "[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:24:13] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 21:24:13] [INFO]   -> Found value: ALGOOD
[2026-03-03 21:24:13] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-03 21:24:13] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 21:24:13] [INFO]   -> Found value: AVEY
[2026-03-03 21:24:13] [INFO]   -> Set field 'streetName' = "AVEY"
[2026-03-03 21:24:13] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 21:24:13] [INFO]   -> Found value: CIR
[2026-03-03 21:24:13] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-03 21:24:13] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 21:24:13] [INFO]   -> Found value: 397 AVEY CIR
[2026-03-03 21:24:13] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "397 AVEY CIR"
[2026-03-03 21:24:13] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-03-03 21:24:13] [INFO] Concatenating street name and type
[2026-03-03 21:24:13] [INFO]   -> Combined street name: AVEY CIR
[2026-03-03 21:24:13] [INFO] Built locationCoordinates from lat/lng: 36.1814,-85.4469
[2026-03-03 21:24:13] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nEMS\nPCFD\nRESC","incidentInternalId":"2026000097","dispatchRunNumber":"2026000097","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":397,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.18139999999999645297066308557987213134765625,"nERISIncidentLongitude":-85.446899999999999408828443847596645355224609375,"alarm":"2026-03-03 15:19:43","dispatched":"2026-03-03 15:20:47","enroute":"2026-03-03 15:24:04","onScene":"2026-03-03 15:24:05","incidentLocationCross":"BROOKSIDE DR\/MASON PT","cADVehicleID":"A1200","timedispatch":"2026-03-03 15:24:02","timeenroutetoscene":"2026-03-03 15:24:04","timeonscene":"2026-03-03 15:24:05","policeReportNumber":"20260023510","dispatchNotes":"[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","cADLog":"[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","incidentLocationCity":"ALGOOD","streetName":"AVEY CIR","incidentAddressTextVersionStreet":"397 AVEY CIR","locationCoordinates":"36.1814,-85.4469"}
[2026-03-03 21:24:13] [INFO] Number of extracted fields: 25
[2026-03-03 21:24:13] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
EMS
PCFD
RESC'
[2026-03-03 21:24:13] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
EMS
PCFD
RESC', Parsed IDs = ["AFD","EMS","PCFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-03 21:24:13] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","EMS","PCFD","RESC"]
[2026-03-03 21:24:13] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-03 21:24:13] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-03 21:24:13] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCFD","RESC"]
[2026-03-03 21:24:13] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-03 21:24:13] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-03 21:24:13] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-03 21:24:13] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-03-03 21:24:14] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-03 21:24:14] [INFO] Found existing IncidentTypeMapping with ID: 694d8ba84e4f3a45a
[2026-03-03 21:24:14] [INFO] Found existing Dispatch with cADNumber '2026000097', ID: 69a750b57f946ed18 - will update instead of create
[2026-03-03 21:24:14] [INFO] Updated existing Dispatches record with ID: 69a750b57f946ed18
[2026-03-03 21:24:14] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212413.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-03/AFD_20260023510_20260303_212413.XML
[2026-03-03 21:24:14] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212413.XML
[2026-03-03 21:24:14] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212413_1.XML
[2026-03-03 21:24:14] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212413_1.XML for user: 68f1466aed072ad4a
[2026-03-03 21:24:14] [INFO] File size: 6535 bytes
[2026-03-03 21:24:14] [INFO] Created FTPFiles record with ID: 69a7517edf5952c67
[2026-03-03 21:24:14] [INFO] About to extract fields from XML. File size: 6535 bytes
[2026-03-03 21:24:14] [INFO] Number of mappings: 28
[2026-03-03 21:24:14] [INFO] Starting XML parsing. Content length: 6535
[2026-03-03 21:24:14] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 21:24:14] [INFO] Processing 28 field mappings
[2026-03-03 21:24:14] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 21:24:14] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 21:24:14] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 21:24:14] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-03 21:24:14] [INFO]   -> Found value: AFD
EMS
PCFD
RESC
[2026-03-03 21:24:14] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nEMS\nPCFD\nRESC"
[2026-03-03 21:24:14] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 21:24:14] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-03 21:24:14] [INFO]   -> Found value: 2026000097
[2026-03-03 21:24:14] [INFO]   -> Set field 'incidentInternalId' = "2026000097"
[2026-03-03 21:24:14] [INFO]   -> Set field 'dispatchRunNumber' = "2026000097"
[2026-03-03 21:24:14] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 21:24:14] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 21:24:14] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 21:24:14] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 21:24:14] [INFO]   -> Found value: 397
[2026-03-03 21:24:14] [INFO]   -> Set field 'incidentLocationStreetNumber' = 397
[2026-03-03 21:24:14] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 21:24:14] [INFO]   -> Found value: TN
[2026-03-03 21:24:14] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 21:24:14] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 21:24:14] [INFO]   -> Found value: 38506
[2026-03-03 21:24:14] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 21:24:14] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 21:24:14] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:14] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 21:24:14] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:14] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 21:24:14] [INFO]   -> Found value: 36.18140
[2026-03-03 21:24:14] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18139999999999645297066308557987213134765625
[2026-03-03 21:24:14] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 21:24:14] [INFO]   -> Found value: -85.44690
[2026-03-03 21:24:14] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.446899999999999408828443847596645355224609375
[2026-03-03 21:24:14] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 21:24:14] [INFO]   -> Found value: 2026-03-03 15:19:43
[2026-03-03 21:24:14] [INFO]   -> Set field 'alarm' = "2026-03-03 15:19:43"
[2026-03-03 21:24:14] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 21:24:14] [INFO]   -> Found value: 2026-03-03 15:20:47
[2026-03-03 21:24:14] [INFO]   -> Set field 'dispatched' = "2026-03-03 15:20:47"
[2026-03-03 21:24:14] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 21:24:14] [INFO]   -> Found value: 2026-03-03 15:24:04
[2026-03-03 21:24:14] [INFO]   -> Set field 'enroute' = "2026-03-03 15:24:04"
[2026-03-03 21:24:14] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 21:24:14] [INFO]   -> Found value: 2026-03-03 15:24:05
[2026-03-03 21:24:14] [INFO]   -> Set field 'onScene' = "2026-03-03 15:24:05"
[2026-03-03 21:24:14] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 21:24:14] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:14] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 21:24:14] [INFO]   -> Found value: BROOKSIDE DR/MASON PT
[2026-03-03 21:24:14] [INFO]   -> Set field 'incidentLocationCross' = "BROOKSIDE DR\/MASON PT"
[2026-03-03 21:24:14] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 21:24:14] [INFO]   -> Found value: A1200
[2026-03-03 21:24:14] [INFO]   -> Set field 'cADVehicleID' = "A1200"
[2026-03-03 21:24:14] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 21:24:14] [INFO]   -> Found value: 2026-03-03 15:24:02
[2026-03-03 21:24:14] [INFO]   -> Set field 'timedispatch' = "2026-03-03 15:24:02"
[2026-03-03 21:24:14] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 21:24:14] [INFO]   -> Found value: 2026-03-03 15:24:04
[2026-03-03 21:24:14] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 15:24:04"
[2026-03-03 21:24:14] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 21:24:14] [INFO]   -> Found value: 2026-03-03 15:24:05
[2026-03-03 21:24:14] [INFO]   -> Set field 'timeonscene' = "2026-03-03 15:24:05"
[2026-03-03 21:24:14] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 21:24:14] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:14] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 21:24:14] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:14] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 21:24:14] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 21:24:14] [INFO]   -> Found value: 20260023510
[2026-03-03 21:24:14] [INFO]   -> Set field 'policeReportNumber' = "20260023510"
[2026-03-03 21:24:14] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 21:24:14] [INFO]   -> Found value: [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03/03/26 15:20:39 KBURTON] Event spawne...
[2026-03-03 21:24:14] [INFO]   -> Set field 'dispatchNotes' = "[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:24:14] [INFO]   -> Set field 'cADLog' = "[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:24:14] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 21:24:14] [INFO]   -> Found value: ALGOOD
[2026-03-03 21:24:14] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-03 21:24:14] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 21:24:14] [INFO]   -> Found value: AVEY
[2026-03-03 21:24:14] [INFO]   -> Set field 'streetName' = "AVEY"
[2026-03-03 21:24:14] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 21:24:14] [INFO]   -> Found value: CIR
[2026-03-03 21:24:14] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-03 21:24:14] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 21:24:14] [INFO]   -> Found value: 397 AVEY CIR
[2026-03-03 21:24:14] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "397 AVEY CIR"
[2026-03-03 21:24:14] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-03-03 21:24:14] [INFO] Concatenating street name and type
[2026-03-03 21:24:14] [INFO]   -> Combined street name: AVEY CIR
[2026-03-03 21:24:14] [INFO] Built locationCoordinates from lat/lng: 36.1814,-85.4469
[2026-03-03 21:24:14] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nEMS\nPCFD\nRESC","incidentInternalId":"2026000097","dispatchRunNumber":"2026000097","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":397,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.18139999999999645297066308557987213134765625,"nERISIncidentLongitude":-85.446899999999999408828443847596645355224609375,"alarm":"2026-03-03 15:19:43","dispatched":"2026-03-03 15:20:47","enroute":"2026-03-03 15:24:04","onScene":"2026-03-03 15:24:05","incidentLocationCross":"BROOKSIDE DR\/MASON PT","cADVehicleID":"A1200","timedispatch":"2026-03-03 15:24:02","timeenroutetoscene":"2026-03-03 15:24:04","timeonscene":"2026-03-03 15:24:05","policeReportNumber":"20260023510","dispatchNotes":"[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","cADLog":"[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","incidentLocationCity":"ALGOOD","streetName":"AVEY CIR","incidentAddressTextVersionStreet":"397 AVEY CIR","locationCoordinates":"36.1814,-85.4469"}
[2026-03-03 21:24:14] [INFO] Number of extracted fields: 25
[2026-03-03 21:24:14] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
EMS
PCFD
RESC'
[2026-03-03 21:24:14] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
EMS
PCFD
RESC', Parsed IDs = ["AFD","EMS","PCFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-03 21:24:14] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","EMS","PCFD","RESC"]
[2026-03-03 21:24:14] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-03 21:24:15] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-03 21:24:15] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCFD","RESC"]
[2026-03-03 21:24:15] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-03 21:24:15] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-03 21:24:15] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-03 21:24:15] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-03-03 21:24:15] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-03 21:24:15] [INFO] Found existing IncidentTypeMapping with ID: 694d8ba84e4f3a45a
[2026-03-03 21:24:15] [INFO] Found existing Dispatch with cADNumber '2026000097', ID: 69a750b57f946ed18 - will update instead of create
[2026-03-03 21:24:15] [INFO] Updated existing Dispatches record with ID: 69a750b57f946ed18
[2026-03-03 21:24:15] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212413_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-03/AFD_20260023510_20260303_212413_1.XML
[2026-03-03 21:24:15] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212413_1.XML
[2026-03-03 21:24:15] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212413_2.XML
[2026-03-03 21:24:15] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212413_2.XML for user: 68f1466aed072ad4a
[2026-03-03 21:24:15] [INFO] File size: 6535 bytes
[2026-03-03 21:24:16] [INFO] Created FTPFiles record with ID: 69a75180311de6a28
[2026-03-03 21:24:16] [INFO] About to extract fields from XML. File size: 6535 bytes
[2026-03-03 21:24:16] [INFO] Number of mappings: 28
[2026-03-03 21:24:16] [INFO] Starting XML parsing. Content length: 6535
[2026-03-03 21:24:16] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 21:24:16] [INFO] Processing 28 field mappings
[2026-03-03 21:24:16] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 21:24:16] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 21:24:16] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-03 21:24:16] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-03 21:24:16] [INFO]   -> Found value: AFD
EMS
PCFD
RESC
[2026-03-03 21:24:16] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nEMS\nPCFD\nRESC"
[2026-03-03 21:24:16] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 21:24:16] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-03 21:24:16] [INFO]   -> Found value: 2026000097
[2026-03-03 21:24:16] [INFO]   -> Set field 'incidentInternalId' = "2026000097"
[2026-03-03 21:24:16] [INFO]   -> Set field 'dispatchRunNumber' = "2026000097"
[2026-03-03 21:24:16] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 21:24:16] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-03 21:24:16] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-03 21:24:16] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 21:24:16] [INFO]   -> Found value: 397
[2026-03-03 21:24:16] [INFO]   -> Set field 'incidentLocationStreetNumber' = 397
[2026-03-03 21:24:16] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 21:24:16] [INFO]   -> Found value: TN
[2026-03-03 21:24:16] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 21:24:16] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 21:24:16] [INFO]   -> Found value: 38506
[2026-03-03 21:24:16] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-03 21:24:16] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 21:24:16] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:16] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 21:24:16] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:16] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 21:24:16] [INFO]   -> Found value: 36.18140
[2026-03-03 21:24:16] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18139999999999645297066308557987213134765625
[2026-03-03 21:24:16] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 21:24:16] [INFO]   -> Found value: -85.44690
[2026-03-03 21:24:16] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.446899999999999408828443847596645355224609375
[2026-03-03 21:24:16] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 21:24:16] [INFO]   -> Found value: 2026-03-03 15:19:43
[2026-03-03 21:24:16] [INFO]   -> Set field 'alarm' = "2026-03-03 15:19:43"
[2026-03-03 21:24:16] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 21:24:16] [INFO]   -> Found value: 2026-03-03 15:20:47
[2026-03-03 21:24:16] [INFO]   -> Set field 'dispatched' = "2026-03-03 15:20:47"
[2026-03-03 21:24:16] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 21:24:16] [INFO]   -> Found value: 2026-03-03 15:24:04
[2026-03-03 21:24:16] [INFO]   -> Set field 'enroute' = "2026-03-03 15:24:04"
[2026-03-03 21:24:16] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 21:24:16] [INFO]   -> Found value: 2026-03-03 15:24:05
[2026-03-03 21:24:16] [INFO]   -> Set field 'onScene' = "2026-03-03 15:24:05"
[2026-03-03 21:24:16] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 21:24:16] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:16] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 21:24:16] [INFO]   -> Found value: BROOKSIDE DR/MASON PT
[2026-03-03 21:24:16] [INFO]   -> Set field 'incidentLocationCross' = "BROOKSIDE DR\/MASON PT"
[2026-03-03 21:24:16] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 21:24:16] [INFO]   -> Found value: A1200
[2026-03-03 21:24:16] [INFO]   -> Set field 'cADVehicleID' = "A1200"
[2026-03-03 21:24:16] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 21:24:16] [INFO]   -> Found value: 2026-03-03 15:24:02
[2026-03-03 21:24:16] [INFO]   -> Set field 'timedispatch' = "2026-03-03 15:24:02"
[2026-03-03 21:24:16] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 21:24:16] [INFO]   -> Found value: 2026-03-03 15:24:04
[2026-03-03 21:24:16] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 15:24:04"
[2026-03-03 21:24:16] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 21:24:16] [INFO]   -> Found value: 2026-03-03 15:24:05
[2026-03-03 21:24:16] [INFO]   -> Set field 'timeonscene' = "2026-03-03 15:24:05"
[2026-03-03 21:24:16] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 21:24:16] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:16] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 21:24:16] [INFO]   -> No value found (null or empty)
[2026-03-03 21:24:16] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 21:24:16] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-03 21:24:16] [INFO]   -> Found value: 20260023510
[2026-03-03 21:24:16] [INFO]   -> Set field 'policeReportNumber' = "20260023510"
[2026-03-03 21:24:16] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 21:24:16] [INFO]   -> Found value: [EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03/03/26 15:20:39 KBURTON] Event spawne...
[2026-03-03 21:24:16] [INFO]   -> Set field 'dispatchNotes' = "[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:24:16] [INFO]   -> Set field 'cADLog' = "[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]"
[2026-03-03 21:24:16] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 21:24:16] [INFO]   -> Found value: ALGOOD
[2026-03-03 21:24:16] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-03 21:24:16] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 21:24:16] [INFO]   -> Found value: AVEY
[2026-03-03 21:24:16] [INFO]   -> Set field 'streetName' = "AVEY"
[2026-03-03 21:24:16] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 21:24:16] [INFO]   -> Found value: CIR
[2026-03-03 21:24:16] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-03 21:24:16] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 21:24:16] [INFO]   -> Found value: 397 AVEY CIR
[2026-03-03 21:24:16] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "397 AVEY CIR"
[2026-03-03 21:24:16] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-03-03 21:24:16] [INFO] Concatenating street name and type
[2026-03-03 21:24:16] [INFO]   -> Combined street name: AVEY CIR
[2026-03-03 21:24:16] [INFO] Built locationCoordinates from lat/lng: 36.1814,-85.4469
[2026-03-03 21:24:16] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nEMS\nPCFD\nRESC","incidentInternalId":"2026000097","dispatchRunNumber":"2026000097","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":397,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.18139999999999645297066308557987213134765625,"nERISIncidentLongitude":-85.446899999999999408828443847596645355224609375,"alarm":"2026-03-03 15:19:43","dispatched":"2026-03-03 15:20:47","enroute":"2026-03-03 15:24:04","onScene":"2026-03-03 15:24:05","incidentLocationCross":"BROOKSIDE DR\/MASON PT","cADVehicleID":"A1200","timedispatch":"2026-03-03 15:24:02","timeenroutetoscene":"2026-03-03 15:24:04","timeonscene":"2026-03-03 15:24:05","policeReportNumber":"20260023510","dispatchNotes":"[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","cADLog":"[EMS] JOHNNY MATTHEWS  FLUID RETENTION  SHORTESS OF BREATH  [03\/03\/26 15:20:39 KBURTON] Event spawned from BREATHING PROBLEMS.  [03\/03\/2026 15:19:43 KBURTON] 76% SPO2  [03\/03\/26 15:19:35 KBURTON]]","incidentLocationCity":"ALGOOD","streetName":"AVEY CIR","incidentAddressTextVersionStreet":"397 AVEY CIR","locationCoordinates":"36.1814,-85.4469"}
[2026-03-03 21:24:16] [INFO] Number of extracted fields: 25
[2026-03-03 21:24:16] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
EMS
PCFD
RESC'
[2026-03-03 21:24:16] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
EMS
PCFD
RESC', Parsed IDs = ["AFD","EMS","PCFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-03 21:24:16] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","EMS","PCFD","RESC"]
[2026-03-03 21:24:16] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-03 21:24:16] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-03 21:24:16] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCFD","RESC"]
[2026-03-03 21:24:16] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-03 21:24:16] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-03 21:24:16] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-03 21:24:16] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-03-03 21:24:16] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-03 21:24:16] [INFO] Found existing IncidentTypeMapping with ID: 694d8ba84e4f3a45a
[2026-03-03 21:24:16] [INFO] Found existing Dispatch with cADNumber '2026000097', ID: 69a750b57f946ed18 - will update instead of create
[2026-03-03 21:24:17] [INFO] Updated existing Dispatches record with ID: 69a750b57f946ed18
[2026-03-03 21:24:17] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212413_2.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-03/AFD_20260023510_20260303_212413_2.XML
[2026-03-03 21:24:17] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260023510_20260303_212413_2.XML
[2026-03-03 21:31:53] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213153.XML
[2026-03-03 21:31:53] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213153.XML for user: 68f1466aed072ad4a
[2026-03-03 21:31:53] [INFO] File size: 4762 bytes
[2026-03-03 21:31:53] [INFO] Created FTPFiles record with ID: 69a75349992bd308f
[2026-03-03 21:31:53] [INFO] About to extract fields from XML. File size: 4762 bytes
[2026-03-03 21:31:53] [INFO] Number of mappings: 28
[2026-03-03 21:31:53] [INFO] Starting XML parsing. Content length: 4762
[2026-03-03 21:31:53] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 21:31:53] [INFO] Processing 28 field mappings
[2026-03-03 21:31:53] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 21:31:53] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 21:31:53] [INFO]   -> Found value: PCFD
[2026-03-03 21:31:53] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 21:31:53] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 21:31:53] [INFO]   -> Found value: 2026000586
[2026-03-03 21:31:53] [INFO]   -> Set field 'incidentInternalId' = "2026000586"
[2026-03-03 21:31:53] [INFO]   -> Set field 'dispatchRunNumber' = "2026000586"
[2026-03-03 21:31:53] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 21:31:53] [INFO]   -> Found value: NATURAL GAS LEAK
[2026-03-03 21:31:53] [INFO]   -> Set field 'incidentTypeValue1' = "NATURAL GAS LEAK"
[2026-03-03 21:31:53] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 21:31:53] [INFO]   -> Found value: 1876
[2026-03-03 21:31:53] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1876
[2026-03-03 21:31:53] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 21:31:53] [INFO]   -> Found value: TN
[2026-03-03 21:31:53] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 21:31:53] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 21:31:53] [INFO]   -> Found value: 38545
[2026-03-03 21:31:53] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38545
[2026-03-03 21:31:53] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 21:31:53] [INFO]   -> No value found (null or empty)
[2026-03-03 21:31:53] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 21:31:53] [INFO]   -> No value found (null or empty)
[2026-03-03 21:31:53] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 21:31:53] [INFO]   -> Found value: 36.19525
[2026-03-03 21:31:53] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1952500000000014779288903810083866119384765625
[2026-03-03 21:31:53] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 21:31:53] [INFO]   -> Found value: -85.61566
[2026-03-03 21:31:53] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6156600000000054251358960755169391632080078125
[2026-03-03 21:31:53] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 21:31:53] [INFO]   -> Found value: 2026-03-03 15:29:19
[2026-03-03 21:31:53] [INFO]   -> Set field 'alarm' = "2026-03-03 15:29:19"
[2026-03-03 21:31:53] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 21:31:53] [INFO]   -> Found value: 2026-03-03 15:31:50
[2026-03-03 21:31:53] [INFO]   -> Set field 'dispatched' = "2026-03-03 15:31:50"
[2026-03-03 21:31:53] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 21:31:53] [INFO]   -> No value found (null or empty)
[2026-03-03 21:31:53] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 21:31:53] [INFO]   -> No value found (null or empty)
[2026-03-03 21:31:53] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 21:31:53] [INFO]   -> No value found (null or empty)
[2026-03-03 21:31:53] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 21:31:53] [INFO]   -> Found value: BLOOMINGTON RD/HULON FERRELL RD
[2026-03-03 21:31:53] [INFO]   -> Set field 'incidentLocationCross' = "BLOOMINGTON RD\/HULON FERRELL RD"
[2026-03-03 21:31:53] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 21:31:53] [INFO]   -> Found value: TK31
[2026-03-03 21:31:53] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-03 21:31:53] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 21:31:53] [INFO]   -> Found value: 2026-03-03 15:31:50
[2026-03-03 21:31:53] [INFO]   -> Set field 'timedispatch' = "2026-03-03 15:31:50"
[2026-03-03 21:31:53] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 21:31:53] [INFO]   -> No value found (null or empty)
[2026-03-03 21:31:53] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 21:31:53] [INFO]   -> No value found (null or empty)
[2026-03-03 21:31:53] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 21:31:53] [INFO]   -> No value found (null or empty)
[2026-03-03 21:31:53] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 21:31:53] [INFO]   -> No value found (null or empty)
[2026-03-03 21:31:53] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 21:31:53] [INFO]   -> Found value: 20260023516
[2026-03-03 21:31:53] [INFO]   -> Set field 'policeReportNumber' = "20260023516"
[2026-03-03 21:31:53] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 21:31:53] [INFO]   -> Found value: GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [...
[2026-03-03 21:31:53] [INFO]   -> Set field 'dispatchNotes' = "GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]"
[2026-03-03 21:31:53] [INFO]   -> Set field 'cADLog' = "GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]"
[2026-03-03 21:31:53] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 21:31:53] [INFO]   -> Found value: BLOOMINGTON SPRINGS
[2026-03-03 21:31:53] [INFO]   -> Set field 'incidentLocationCity' = "BLOOMINGTON SPRINGS"
[2026-03-03 21:31:53] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 21:31:53] [INFO]   -> Found value: OLD GAINESBORO
[2026-03-03 21:31:53] [INFO]   -> Set field 'streetName' = "OLD GAINESBORO"
[2026-03-03 21:31:53] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 21:31:53] [INFO]   -> Found value: RD
[2026-03-03 21:31:53] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 21:31:53] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 21:31:53] [INFO]   -> Found value: 1876 OLD GAINESBORO RD
[2026-03-03 21:31:53] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1876 OLD GAINESBORO RD"
[2026-03-03 21:31:53] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-03 21:31:53] [INFO] Concatenating street name and type
[2026-03-03 21:31:53] [INFO]   -> Combined street name: OLD GAINESBORO RD
[2026-03-03 21:31:53] [INFO] Built locationCoordinates from lat/lng: 36.19525,-85.61566
[2026-03-03 21:31:53] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000586","dispatchRunNumber":"2026000586","incidentTypeValue1":"NATURAL GAS LEAK","incidentLocationStreetNumber":1876,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38545,"nERISIncidentLatitude":36.1952500000000014779288903810083866119384765625,"nERISIncidentLongitude":-85.6156600000000054251358960755169391632080078125,"alarm":"2026-03-03 15:29:19","dispatched":"2026-03-03 15:31:50","incidentLocationCross":"BLOOMINGTON RD\/HULON FERRELL RD","cADVehicleID":"TK31","timedispatch":"2026-03-03 15:31:50","policeReportNumber":"20260023516","dispatchNotes":"GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]","cADLog":"GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]","incidentLocationCity":"BLOOMINGTON SPRINGS","streetName":"OLD GAINESBORO RD","incidentAddressTextVersionStreet":"1876 OLD GAINESBORO RD","locationCoordinates":"36.19525,-85.61566"}
[2026-03-03 21:31:53] [INFO] Number of extracted fields: 21
[2026-03-03 21:31:53] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 21:31:53] [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-03 21:31:53] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 21:31:53] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 21:31:53] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 21:31: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-03 21:31: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-03 21:31:53] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 21:31:54] [INFO] Found existing IncidentTypeMapping with ID: 695276993a4d83287
[2026-03-03 21:32:04] [INFO] Created new Dispatches record with ID: 69a7534a70f9de0ab
[2026-03-03 21:32:04] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213153.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-03/PCFD_20260023516_20260303_213153.XML
[2026-03-03 21:32:04] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213153.XML
[2026-03-03 21:32:04] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213153_1.XML
[2026-03-03 21:32:04] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213153_1.XML for user: 68f1466aed072ad4a
[2026-03-03 21:32:04] [INFO] File size: 4762 bytes
[2026-03-03 21:32:04] [INFO] Created FTPFiles record with ID: 69a75354a87992b46
[2026-03-03 21:32:04] [INFO] About to extract fields from XML. File size: 4762 bytes
[2026-03-03 21:32:04] [INFO] Number of mappings: 28
[2026-03-03 21:32:04] [INFO] Starting XML parsing. Content length: 4762
[2026-03-03 21:32:04] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 21:32:04] [INFO] Processing 28 field mappings
[2026-03-03 21:32:04] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 21:32:04] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 21:32:04] [INFO]   -> Found value: PCFD
[2026-03-03 21:32:04] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 21:32:04] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 21:32:04] [INFO]   -> Found value: 2026000586
[2026-03-03 21:32:04] [INFO]   -> Set field 'incidentInternalId' = "2026000586"
[2026-03-03 21:32:04] [INFO]   -> Set field 'dispatchRunNumber' = "2026000586"
[2026-03-03 21:32:04] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 21:32:04] [INFO]   -> Found value: NATURAL GAS LEAK
[2026-03-03 21:32:04] [INFO]   -> Set field 'incidentTypeValue1' = "NATURAL GAS LEAK"
[2026-03-03 21:32:04] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 21:32:04] [INFO]   -> Found value: 1876
[2026-03-03 21:32:04] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1876
[2026-03-03 21:32:04] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 21:32:04] [INFO]   -> Found value: TN
[2026-03-03 21:32:04] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 21:32:04] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 21:32:04] [INFO]   -> Found value: 38545
[2026-03-03 21:32:04] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38545
[2026-03-03 21:32:04] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 21:32:04] [INFO]   -> No value found (null or empty)
[2026-03-03 21:32:04] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 21:32:04] [INFO]   -> No value found (null or empty)
[2026-03-03 21:32:04] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 21:32:04] [INFO]   -> Found value: 36.19525
[2026-03-03 21:32:04] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1952500000000014779288903810083866119384765625
[2026-03-03 21:32:04] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 21:32:04] [INFO]   -> Found value: -85.61566
[2026-03-03 21:32:04] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6156600000000054251358960755169391632080078125
[2026-03-03 21:32:04] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 21:32:04] [INFO]   -> Found value: 2026-03-03 15:29:19
[2026-03-03 21:32:04] [INFO]   -> Set field 'alarm' = "2026-03-03 15:29:19"
[2026-03-03 21:32:04] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 21:32:04] [INFO]   -> Found value: 2026-03-03 15:31:50
[2026-03-03 21:32:04] [INFO]   -> Set field 'dispatched' = "2026-03-03 15:31:50"
[2026-03-03 21:32:04] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 21:32:04] [INFO]   -> No value found (null or empty)
[2026-03-03 21:32:04] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 21:32:04] [INFO]   -> No value found (null or empty)
[2026-03-03 21:32:04] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 21:32:04] [INFO]   -> No value found (null or empty)
[2026-03-03 21:32:04] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 21:32:04] [INFO]   -> Found value: BLOOMINGTON RD/HULON FERRELL RD
[2026-03-03 21:32:04] [INFO]   -> Set field 'incidentLocationCross' = "BLOOMINGTON RD\/HULON FERRELL RD"
[2026-03-03 21:32:04] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 21:32:04] [INFO]   -> Found value: TK31
[2026-03-03 21:32:04] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-03 21:32:04] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 21:32:04] [INFO]   -> Found value: 2026-03-03 15:31:50
[2026-03-03 21:32:04] [INFO]   -> Set field 'timedispatch' = "2026-03-03 15:31:50"
[2026-03-03 21:32:04] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 21:32:04] [INFO]   -> No value found (null or empty)
[2026-03-03 21:32:04] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 21:32:04] [INFO]   -> No value found (null or empty)
[2026-03-03 21:32:04] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 21:32:04] [INFO]   -> No value found (null or empty)
[2026-03-03 21:32:04] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 21:32:04] [INFO]   -> No value found (null or empty)
[2026-03-03 21:32:04] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 21:32:04] [INFO]   -> Found value: 20260023516
[2026-03-03 21:32:04] [INFO]   -> Set field 'policeReportNumber' = "20260023516"
[2026-03-03 21:32:04] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 21:32:04] [INFO]   -> Found value: GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [...
[2026-03-03 21:32:04] [INFO]   -> Set field 'dispatchNotes' = "GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]"
[2026-03-03 21:32:04] [INFO]   -> Set field 'cADLog' = "GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]"
[2026-03-03 21:32:04] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 21:32:04] [INFO]   -> Found value: BLOOMINGTON SPRINGS
[2026-03-03 21:32:04] [INFO]   -> Set field 'incidentLocationCity' = "BLOOMINGTON SPRINGS"
[2026-03-03 21:32:04] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 21:32:04] [INFO]   -> Found value: OLD GAINESBORO
[2026-03-03 21:32:04] [INFO]   -> Set field 'streetName' = "OLD GAINESBORO"
[2026-03-03 21:32:04] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 21:32:04] [INFO]   -> Found value: RD
[2026-03-03 21:32:04] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 21:32:04] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 21:32:04] [INFO]   -> Found value: 1876 OLD GAINESBORO RD
[2026-03-03 21:32:04] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1876 OLD GAINESBORO RD"
[2026-03-03 21:32:04] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-03 21:32:04] [INFO] Concatenating street name and type
[2026-03-03 21:32:04] [INFO]   -> Combined street name: OLD GAINESBORO RD
[2026-03-03 21:32:04] [INFO] Built locationCoordinates from lat/lng: 36.19525,-85.61566
[2026-03-03 21:32:04] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000586","dispatchRunNumber":"2026000586","incidentTypeValue1":"NATURAL GAS LEAK","incidentLocationStreetNumber":1876,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38545,"nERISIncidentLatitude":36.1952500000000014779288903810083866119384765625,"nERISIncidentLongitude":-85.6156600000000054251358960755169391632080078125,"alarm":"2026-03-03 15:29:19","dispatched":"2026-03-03 15:31:50","incidentLocationCross":"BLOOMINGTON RD\/HULON FERRELL RD","cADVehicleID":"TK31","timedispatch":"2026-03-03 15:31:50","policeReportNumber":"20260023516","dispatchNotes":"GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]","cADLog":"GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]","incidentLocationCity":"BLOOMINGTON SPRINGS","streetName":"OLD GAINESBORO RD","incidentAddressTextVersionStreet":"1876 OLD GAINESBORO RD","locationCoordinates":"36.19525,-85.61566"}
[2026-03-03 21:32:04] [INFO] Number of extracted fields: 21
[2026-03-03 21:32:04] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 21:32: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-03 21:32:04] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 21:32:04] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 21:32:04] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 21:32: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-03 21:32: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-03 21:32:05] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 21:32:05] [INFO] Found existing IncidentTypeMapping with ID: 695276993a4d83287
[2026-03-03 21:32:05] [INFO] Found existing Dispatch with cADNumber '2026000586', ID: 69a7534a70f9de0ab - will update instead of create
[2026-03-03 21:32:05] [INFO] Updated existing Dispatches record with ID: 69a7534a70f9de0ab
[2026-03-03 21:32:05] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213153_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-03/PCFD_20260023516_20260303_213153_1.XML
[2026-03-03 21:32:05] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213153_1.XML
[2026-03-03 21:33:02] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213302.XML
[2026-03-03 21:33:02] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213302.XML for user: 68f1466aed072ad4a
[2026-03-03 21:33:02] [INFO] File size: 4829 bytes
[2026-03-03 21:33:02] [INFO] Created FTPFiles record with ID: 69a7538ec26d0194e
[2026-03-03 21:33:02] [INFO] About to extract fields from XML. File size: 4829 bytes
[2026-03-03 21:33:02] [INFO] Number of mappings: 28
[2026-03-03 21:33:02] [INFO] Starting XML parsing. Content length: 4829
[2026-03-03 21:33:02] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 21:33:02] [INFO] Processing 28 field mappings
[2026-03-03 21:33:02] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 21:33:02] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 21:33:02] [INFO]   -> Found value: PCFD
[2026-03-03 21:33:02] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 21:33:02] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 21:33:02] [INFO]   -> Found value: 2026000586
[2026-03-03 21:33:02] [INFO]   -> Set field 'incidentInternalId' = "2026000586"
[2026-03-03 21:33:02] [INFO]   -> Set field 'dispatchRunNumber' = "2026000586"
[2026-03-03 21:33:02] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 21:33:02] [INFO]   -> Found value: NATURAL GAS LEAK
[2026-03-03 21:33:02] [INFO]   -> Set field 'incidentTypeValue1' = "NATURAL GAS LEAK"
[2026-03-03 21:33:02] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 21:33:02] [INFO]   -> Found value: 1876
[2026-03-03 21:33:02] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1876
[2026-03-03 21:33:02] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 21:33:02] [INFO]   -> Found value: TN
[2026-03-03 21:33:02] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 21:33:02] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 21:33:02] [INFO]   -> Found value: 38545
[2026-03-03 21:33:02] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38545
[2026-03-03 21:33:02] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 21:33:02] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:02] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 21:33:02] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:02] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 21:33:02] [INFO]   -> Found value: 36.19525
[2026-03-03 21:33:02] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1952500000000014779288903810083866119384765625
[2026-03-03 21:33:02] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 21:33:02] [INFO]   -> Found value: -85.61566
[2026-03-03 21:33:02] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6156600000000054251358960755169391632080078125
[2026-03-03 21:33:02] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 21:33:02] [INFO]   -> Found value: 2026-03-03 15:29:19
[2026-03-03 21:33:02] [INFO]   -> Set field 'alarm' = "2026-03-03 15:29:19"
[2026-03-03 21:33:02] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 21:33:02] [INFO]   -> Found value: 2026-03-03 15:31:50
[2026-03-03 21:33:02] [INFO]   -> Set field 'dispatched' = "2026-03-03 15:31:50"
[2026-03-03 21:33:02] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 21:33:02] [INFO]   -> Found value: 2026-03-03 15:32:58
[2026-03-03 21:33:02] [INFO]   -> Set field 'enroute' = "2026-03-03 15:32:58"
[2026-03-03 21:33:02] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 21:33:02] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:02] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 21:33:02] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:02] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 21:33:02] [INFO]   -> Found value: BLOOMINGTON RD/HULON FERRELL RD
[2026-03-03 21:33:02] [INFO]   -> Set field 'incidentLocationCross' = "BLOOMINGTON RD\/HULON FERRELL RD"
[2026-03-03 21:33:02] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 21:33:02] [INFO]   -> Found value: TK31
[2026-03-03 21:33:02] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-03 21:33:02] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 21:33:02] [INFO]   -> Found value: 2026-03-03 15:31:50
[2026-03-03 21:33:02] [INFO]   -> Set field 'timedispatch' = "2026-03-03 15:31:50"
[2026-03-03 21:33:02] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 21:33:02] [INFO]   -> Found value: 2026-03-03 15:32:58
[2026-03-03 21:33:02] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 15:32:58"
[2026-03-03 21:33:02] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 21:33:02] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:02] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 21:33:02] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:02] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 21:33:02] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:02] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 21:33:02] [INFO]   -> Found value: 20260023516
[2026-03-03 21:33:02] [INFO]   -> Set field 'policeReportNumber' = "20260023516"
[2026-03-03 21:33:02] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 21:33:02] [INFO]   -> Found value: GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [...
[2026-03-03 21:33:02] [INFO]   -> Set field 'dispatchNotes' = "GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]"
[2026-03-03 21:33:02] [INFO]   -> Set field 'cADLog' = "GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]"
[2026-03-03 21:33:02] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 21:33:02] [INFO]   -> Found value: BLOOMINGTON SPRINGS
[2026-03-03 21:33:02] [INFO]   -> Set field 'incidentLocationCity' = "BLOOMINGTON SPRINGS"
[2026-03-03 21:33:02] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 21:33:02] [INFO]   -> Found value: OLD GAINESBORO
[2026-03-03 21:33:02] [INFO]   -> Set field 'streetName' = "OLD GAINESBORO"
[2026-03-03 21:33:02] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 21:33:02] [INFO]   -> Found value: RD
[2026-03-03 21:33:02] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 21:33:02] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 21:33:02] [INFO]   -> Found value: 1876 OLD GAINESBORO RD
[2026-03-03 21:33:02] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1876 OLD GAINESBORO RD"
[2026-03-03 21:33:02] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 21:33:02] [INFO] Concatenating street name and type
[2026-03-03 21:33:02] [INFO]   -> Combined street name: OLD GAINESBORO RD
[2026-03-03 21:33:02] [INFO] Built locationCoordinates from lat/lng: 36.19525,-85.61566
[2026-03-03 21:33:02] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000586","dispatchRunNumber":"2026000586","incidentTypeValue1":"NATURAL GAS LEAK","incidentLocationStreetNumber":1876,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38545,"nERISIncidentLatitude":36.1952500000000014779288903810083866119384765625,"nERISIncidentLongitude":-85.6156600000000054251358960755169391632080078125,"alarm":"2026-03-03 15:29:19","dispatched":"2026-03-03 15:31:50","enroute":"2026-03-03 15:32:58","incidentLocationCross":"BLOOMINGTON RD\/HULON FERRELL RD","cADVehicleID":"TK31","timedispatch":"2026-03-03 15:31:50","timeenroutetoscene":"2026-03-03 15:32:58","policeReportNumber":"20260023516","dispatchNotes":"GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]","cADLog":"GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]","incidentLocationCity":"BLOOMINGTON SPRINGS","streetName":"OLD GAINESBORO RD","incidentAddressTextVersionStreet":"1876 OLD GAINESBORO RD","locationCoordinates":"36.19525,-85.61566"}
[2026-03-03 21:33:02] [INFO] Number of extracted fields: 23
[2026-03-03 21:33:02] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 21:33:02] [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-03 21:33:02] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 21:33:02] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 21:33:02] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 21:33:03] [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-03 21:33:03] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-03 21:33:03] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 21:33:03] [INFO] Found existing IncidentTypeMapping with ID: 695276993a4d83287
[2026-03-03 21:33:03] [INFO] Found existing Dispatch with cADNumber '2026000586', ID: 69a7534a70f9de0ab - will update instead of create
[2026-03-03 21:33:03] [INFO] Updated existing Dispatches record with ID: 69a7534a70f9de0ab
[2026-03-03 21:33:03] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213302.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-03/PCFD_20260023516_20260303_213302.XML
[2026-03-03 21:33:03] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213302.XML
[2026-03-03 21:33:04] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213303.XML
[2026-03-03 21:33:04] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213303.XML for user: 68f1466aed072ad4a
[2026-03-03 21:33:04] [INFO] File size: 4829 bytes
[2026-03-03 21:33:04] [INFO] Created FTPFiles record with ID: 69a753905d743e063
[2026-03-03 21:33:04] [INFO] About to extract fields from XML. File size: 4829 bytes
[2026-03-03 21:33:04] [INFO] Number of mappings: 28
[2026-03-03 21:33:04] [INFO] Starting XML parsing. Content length: 4829
[2026-03-03 21:33:04] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 21:33:04] [INFO] Processing 28 field mappings
[2026-03-03 21:33:04] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 21:33:04] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 21:33:04] [INFO]   -> Found value: PCFD
[2026-03-03 21:33:04] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 21:33:04] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 21:33:04] [INFO]   -> Found value: 2026000586
[2026-03-03 21:33:04] [INFO]   -> Set field 'incidentInternalId' = "2026000586"
[2026-03-03 21:33:04] [INFO]   -> Set field 'dispatchRunNumber' = "2026000586"
[2026-03-03 21:33:04] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 21:33:04] [INFO]   -> Found value: NATURAL GAS LEAK
[2026-03-03 21:33:04] [INFO]   -> Set field 'incidentTypeValue1' = "NATURAL GAS LEAK"
[2026-03-03 21:33:04] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 21:33:04] [INFO]   -> Found value: 1876
[2026-03-03 21:33:04] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1876
[2026-03-03 21:33:04] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 21:33:04] [INFO]   -> Found value: TN
[2026-03-03 21:33:04] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 21:33:04] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 21:33:04] [INFO]   -> Found value: 38545
[2026-03-03 21:33:04] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38545
[2026-03-03 21:33:04] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 21:33:04] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:04] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 21:33:04] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:04] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 21:33:04] [INFO]   -> Found value: 36.19525
[2026-03-03 21:33:04] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1952500000000014779288903810083866119384765625
[2026-03-03 21:33:04] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 21:33:04] [INFO]   -> Found value: -85.61566
[2026-03-03 21:33:04] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6156600000000054251358960755169391632080078125
[2026-03-03 21:33:04] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 21:33:04] [INFO]   -> Found value: 2026-03-03 15:29:19
[2026-03-03 21:33:04] [INFO]   -> Set field 'alarm' = "2026-03-03 15:29:19"
[2026-03-03 21:33:04] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 21:33:04] [INFO]   -> Found value: 2026-03-03 15:31:50
[2026-03-03 21:33:04] [INFO]   -> Set field 'dispatched' = "2026-03-03 15:31:50"
[2026-03-03 21:33:04] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 21:33:04] [INFO]   -> Found value: 2026-03-03 15:32:58
[2026-03-03 21:33:04] [INFO]   -> Set field 'enroute' = "2026-03-03 15:32:58"
[2026-03-03 21:33:04] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 21:33:04] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:04] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 21:33:04] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:04] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 21:33:04] [INFO]   -> Found value: BLOOMINGTON RD/HULON FERRELL RD
[2026-03-03 21:33:04] [INFO]   -> Set field 'incidentLocationCross' = "BLOOMINGTON RD\/HULON FERRELL RD"
[2026-03-03 21:33:04] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 21:33:04] [INFO]   -> Found value: TK31
[2026-03-03 21:33:04] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-03 21:33:04] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 21:33:04] [INFO]   -> Found value: 2026-03-03 15:31:50
[2026-03-03 21:33:04] [INFO]   -> Set field 'timedispatch' = "2026-03-03 15:31:50"
[2026-03-03 21:33:04] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 21:33:04] [INFO]   -> Found value: 2026-03-03 15:32:58
[2026-03-03 21:33:04] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 15:32:58"
[2026-03-03 21:33:04] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 21:33:04] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:04] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 21:33:04] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:04] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 21:33:04] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:04] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 21:33:04] [INFO]   -> Found value: 20260023516
[2026-03-03 21:33:04] [INFO]   -> Set field 'policeReportNumber' = "20260023516"
[2026-03-03 21:33:04] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 21:33:04] [INFO]   -> Found value: GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [...
[2026-03-03 21:33:04] [INFO]   -> Set field 'dispatchNotes' = "GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]"
[2026-03-03 21:33:04] [INFO]   -> Set field 'cADLog' = "GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]"
[2026-03-03 21:33:04] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 21:33:04] [INFO]   -> Found value: BLOOMINGTON SPRINGS
[2026-03-03 21:33:04] [INFO]   -> Set field 'incidentLocationCity' = "BLOOMINGTON SPRINGS"
[2026-03-03 21:33:04] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 21:33:04] [INFO]   -> Found value: OLD GAINESBORO
[2026-03-03 21:33:04] [INFO]   -> Set field 'streetName' = "OLD GAINESBORO"
[2026-03-03 21:33:04] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 21:33:04] [INFO]   -> Found value: RD
[2026-03-03 21:33:04] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 21:33:04] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 21:33:04] [INFO]   -> Found value: 1876 OLD GAINESBORO RD
[2026-03-03 21:33:04] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1876 OLD GAINESBORO RD"
[2026-03-03 21:33:04] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 21:33:04] [INFO] Concatenating street name and type
[2026-03-03 21:33:04] [INFO]   -> Combined street name: OLD GAINESBORO RD
[2026-03-03 21:33:04] [INFO] Built locationCoordinates from lat/lng: 36.19525,-85.61566
[2026-03-03 21:33:04] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000586","dispatchRunNumber":"2026000586","incidentTypeValue1":"NATURAL GAS LEAK","incidentLocationStreetNumber":1876,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38545,"nERISIncidentLatitude":36.1952500000000014779288903810083866119384765625,"nERISIncidentLongitude":-85.6156600000000054251358960755169391632080078125,"alarm":"2026-03-03 15:29:19","dispatched":"2026-03-03 15:31:50","enroute":"2026-03-03 15:32:58","incidentLocationCross":"BLOOMINGTON RD\/HULON FERRELL RD","cADVehicleID":"TK31","timedispatch":"2026-03-03 15:31:50","timeenroutetoscene":"2026-03-03 15:32:58","policeReportNumber":"20260023516","dispatchNotes":"GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]","cADLog":"GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]","incidentLocationCity":"BLOOMINGTON SPRINGS","streetName":"OLD GAINESBORO RD","incidentAddressTextVersionStreet":"1876 OLD GAINESBORO RD","locationCoordinates":"36.19525,-85.61566"}
[2026-03-03 21:33:04] [INFO] Number of extracted fields: 23
[2026-03-03 21:33:04] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 21:33: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-03 21:33:04] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 21:33:04] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 21:33:04] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 21:33: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-03 21:33: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-03 21:33:04] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 21:33:05] [INFO] Found existing IncidentTypeMapping with ID: 695276993a4d83287
[2026-03-03 21:33:05] [INFO] Found existing Dispatch with cADNumber '2026000586', ID: 69a7534a70f9de0ab - will update instead of create
[2026-03-03 21:33:06] [INFO] Updated existing Dispatches record with ID: 69a7534a70f9de0ab
[2026-03-03 21:33:06] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213303.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-03/PCFD_20260023516_20260303_213303.XML
[2026-03-03 21:33:06] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213303.XML
[2026-03-03 21:33:07] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213307.XML
[2026-03-03 21:33:07] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213307.XML for user: 68f1466aed072ad4a
[2026-03-03 21:33:07] [INFO] File size: 4829 bytes
[2026-03-03 21:33:08] [INFO] Created FTPFiles record with ID: 69a7539413d3711a1
[2026-03-03 21:33:08] [INFO] About to extract fields from XML. File size: 4829 bytes
[2026-03-03 21:33:08] [INFO] Number of mappings: 28
[2026-03-03 21:33:08] [INFO] Starting XML parsing. Content length: 4829
[2026-03-03 21:33:08] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-03 21:33:08] [INFO] Processing 28 field mappings
[2026-03-03 21:33:08] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-03 21:33:08] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-03 21:33:08] [INFO]   -> Found value: PCFD
[2026-03-03 21:33:08] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-03 21:33:08] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-03 21:33:08] [INFO]   -> Found value: 2026000586
[2026-03-03 21:33:08] [INFO]   -> Set field 'incidentInternalId' = "2026000586"
[2026-03-03 21:33:08] [INFO]   -> Set field 'dispatchRunNumber' = "2026000586"
[2026-03-03 21:33:08] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-03 21:33:08] [INFO]   -> Found value: NATURAL GAS LEAK
[2026-03-03 21:33:08] [INFO]   -> Set field 'incidentTypeValue1' = "NATURAL GAS LEAK"
[2026-03-03 21:33:08] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-03 21:33:08] [INFO]   -> Found value: 1876
[2026-03-03 21:33:08] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1876
[2026-03-03 21:33:08] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-03 21:33:08] [INFO]   -> Found value: TN
[2026-03-03 21:33:08] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-03 21:33:08] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-03 21:33:08] [INFO]   -> Found value: 38545
[2026-03-03 21:33:08] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38545
[2026-03-03 21:33:08] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-03 21:33:08] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:08] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-03 21:33:08] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:08] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-03 21:33:08] [INFO]   -> Found value: 36.19525
[2026-03-03 21:33:08] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1952500000000014779288903810083866119384765625
[2026-03-03 21:33:08] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-03 21:33:08] [INFO]   -> Found value: -85.61566
[2026-03-03 21:33:08] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6156600000000054251358960755169391632080078125
[2026-03-03 21:33:08] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-03 21:33:08] [INFO]   -> Found value: 2026-03-03 15:29:19
[2026-03-03 21:33:08] [INFO]   -> Set field 'alarm' = "2026-03-03 15:29:19"
[2026-03-03 21:33:08] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-03 21:33:08] [INFO]   -> Found value: 2026-03-03 15:31:50
[2026-03-03 21:33:08] [INFO]   -> Set field 'dispatched' = "2026-03-03 15:31:50"
[2026-03-03 21:33:08] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-03 21:33:08] [INFO]   -> Found value: 2026-03-03 15:32:58
[2026-03-03 21:33:08] [INFO]   -> Set field 'enroute' = "2026-03-03 15:32:58"
[2026-03-03 21:33:08] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-03 21:33:08] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:08] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-03 21:33:08] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:08] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-03 21:33:08] [INFO]   -> Found value: BLOOMINGTON RD/HULON FERRELL RD
[2026-03-03 21:33:08] [INFO]   -> Set field 'incidentLocationCross' = "BLOOMINGTON RD\/HULON FERRELL RD"
[2026-03-03 21:33:08] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-03 21:33:08] [INFO]   -> Found value: TK31
[2026-03-03 21:33:08] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-03 21:33:08] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-03 21:33:08] [INFO]   -> Found value: 2026-03-03 15:31:50
[2026-03-03 21:33:08] [INFO]   -> Set field 'timedispatch' = "2026-03-03 15:31:50"
[2026-03-03 21:33:08] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-03 21:33:08] [INFO]   -> Found value: 2026-03-03 15:32:58
[2026-03-03 21:33:08] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-03 15:32:58"
[2026-03-03 21:33:08] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-03 21:33:08] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:08] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-03 21:33:08] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:08] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-03 21:33:08] [INFO]   -> No value found (null or empty)
[2026-03-03 21:33:08] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-03 21:33:08] [INFO]   -> Found value: 20260023516
[2026-03-03 21:33:08] [INFO]   -> Set field 'policeReportNumber' = "20260023516"
[2026-03-03 21:33:08] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-03 21:33:08] [INFO]   -> Found value: GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [...
[2026-03-03 21:33:08] [INFO]   -> Set field 'dispatchNotes' = "GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]"
[2026-03-03 21:33:08] [INFO]   -> Set field 'cADLog' = "GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]"
[2026-03-03 21:33:08] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-03 21:33:08] [INFO]   -> Found value: BLOOMINGTON SPRINGS
[2026-03-03 21:33:08] [INFO]   -> Set field 'incidentLocationCity' = "BLOOMINGTON SPRINGS"
[2026-03-03 21:33:08] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-03 21:33:08] [INFO]   -> Found value: OLD GAINESBORO
[2026-03-03 21:33:08] [INFO]   -> Set field 'streetName' = "OLD GAINESBORO"
[2026-03-03 21:33:08] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-03 21:33:08] [INFO]   -> Found value: RD
[2026-03-03 21:33:08] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-03 21:33:08] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-03 21:33:08] [INFO]   -> Found value: 1876 OLD GAINESBORO RD
[2026-03-03 21:33:08] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1876 OLD GAINESBORO RD"
[2026-03-03 21:33:08] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-03 21:33:08] [INFO] Concatenating street name and type
[2026-03-03 21:33:08] [INFO]   -> Combined street name: OLD GAINESBORO RD
[2026-03-03 21:33:08] [INFO] Built locationCoordinates from lat/lng: 36.19525,-85.61566
[2026-03-03 21:33:08] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000586","dispatchRunNumber":"2026000586","incidentTypeValue1":"NATURAL GAS LEAK","incidentLocationStreetNumber":1876,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38545,"nERISIncidentLatitude":36.1952500000000014779288903810083866119384765625,"nERISIncidentLongitude":-85.6156600000000054251358960755169391632080078125,"alarm":"2026-03-03 15:29:19","dispatched":"2026-03-03 15:31:50","enroute":"2026-03-03 15:32:58","incidentLocationCross":"BLOOMINGTON RD\/HULON FERRELL RD","cADVehicleID":"TK31","timedispatch":"2026-03-03 15:31:50","timeenroutetoscene":"2026-03-03 15:32:58","policeReportNumber":"20260023516","dispatchNotes":"GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]","cADLog":"GAS NOTIFIED - CREW ON THE WAY  MIDDLE TN NATURAL GAS  FENCERS HIT THE GAS LINE  ACTIVELY HIZZING  [03\/03\/26 15:30:31 KBURTON]","incidentLocationCity":"BLOOMINGTON SPRINGS","streetName":"OLD GAINESBORO RD","incidentAddressTextVersionStreet":"1876 OLD GAINESBORO RD","locationCoordinates":"36.19525,-85.61566"}
[2026-03-03 21:33:08] [INFO] Number of extracted fields: 23
[2026-03-03 21:33:08] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-03 21:33: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-03 21:33:08] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-03 21:33:08] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-03 21:33:08] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-03 21:33:08] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-03 21:33:08] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-03 21:33:08] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-03 21:33:08] [INFO] Found existing IncidentTypeMapping with ID: 695276993a4d83287
[2026-03-03 21:33:08] [INFO] Found existing Dispatch with cADNumber '2026000586', ID: 69a7534a70f9de0ab - will update instead of create
[2026-03-03 21:33:09] [INFO] Updated existing Dispatches record with ID: 69a7534a70f9de0ab
[2026-03-03 21:33:09] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213307.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-03/PCFD_20260023516_20260303_213307.XML
[2026-03-03 21:33:09] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260023516_20260303_213307.XML
[2026-03-03 22:24:59] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:24:54Z.xml
[2026-03-03 22:24:59] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:24:54Z.xml
[2026-03-03 22:25:00] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:24:56Z.xml
[2026-03-03 22:25:00] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:24:56Z.xml
[2026-03-03 22:25:00] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:24:57Z.xml
[2026-03-03 22:25:00] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:24:57Z.xml
[2026-03-03 22:25:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:24:57Z.xml
[2026-03-03 22:25:01] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:24:57Z.xml
[2026-03-03 22:25:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:24:58Z.xml
[2026-03-03 22:25:01] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:24:58Z.xml
[2026-03-03 22:25:02] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:24:58Z.xml
[2026-03-03 22:25:02] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:24:58Z.xml
[2026-03-03 22:25:02] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:24:59Z.xml
[2026-03-03 22:25:02] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:24:59Z.xml
[2026-03-03 22:25:03] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:24:59Z.xml
[2026-03-03 22:25:03] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:24:59Z.xml
[2026-03-03 22:25:03] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:25:00Z.xml
[2026-03-03 22:25:03] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:25:00Z.xml
[2026-03-03 22:25:04] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:25:00Z.xml
[2026-03-03 22:25:04] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:25:00Z.xml
[2026-03-03 22:25:04] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:25:01Z.xml
[2026-03-03 22:25:04] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:25:01Z.xml
[2026-03-03 22:25:05] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:25:02Z.xml
[2026-03-03 22:25:05] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:25:02Z.xml
[2026-03-03 22:25:23] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:25:19Z.xml
[2026-03-03 22:25:23] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-010011_2026-03-03 16:25:19Z.xml
