[2026-01-17 00:48:17] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260006075_20260117_004817.XML
[2026-01-17 00:48:17] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260006075_20260117_004817.XML for user: 68f1466aed072ad4a
[2026-01-17 00:48:17] [INFO] File size: 4786 bytes
[2026-01-17 00:48:17] [INFO] Created FTPFiles record with ID: 696adc517fc49ffd1
[2026-01-17 00:48:17] [INFO] About to extract fields from XML. File size: 4786 bytes
[2026-01-17 00:48:17] [INFO] Number of mappings: 28
[2026-01-17 00:48:17] [INFO] Starting XML parsing. Content length: 4786
[2026-01-17 00:48:17] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-17 00:48:17] [INFO] Processing 28 field mappings
[2026-01-17 00:48:17] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-17 00:48:17] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-17 00:48:17] [INFO]   -> Found value: BFD
[2026-01-17 00:48:17] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD"
[2026-01-17 00:48:17] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-17 00:48:17] [INFO]   -> Found value: 2026000020
[2026-01-17 00:48:17] [INFO]   -> Set field 'incidentInternalId' = "2026000020"
[2026-01-17 00:48:17] [INFO]   -> Set field 'dispatchRunNumber' = "2026000020"
[2026-01-17 00:48:17] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-17 00:48:17] [INFO]   -> Found value: PUBLIC ASSIST
[2026-01-17 00:48:17] [INFO]   -> Set field 'incidentTypeValue1' = "PUBLIC ASSIST"
[2026-01-17 00:48:17] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-17 00:48:17] [INFO]   -> Found value: 317
[2026-01-17 00:48:17] [INFO]   -> Set field 'incidentLocationStreetNumber' = 317
[2026-01-17 00:48:17] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-17 00:48:17] [INFO]   -> Found value: TN
[2026-01-17 00:48:17] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-17 00:48:17] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-17 00:48:17] [INFO]   -> Found value: 38544
[2026-01-17 00:48:17] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-01-17 00:48:17] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-17 00:48:17] [INFO]   -> Found value: CLARENCE SEWELL
[2026-01-17 00:48:17] [INFO]   -> Set field 'businessName' = "CLARENCE SEWELL"
[2026-01-17 00:48:17] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-17 00:48:17] [INFO]   -> No value found (null or empty)
[2026-01-17 00:48:17] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-17 00:48:17] [INFO]   -> Found value: 36.15713
[2026-01-17 00:48:17] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.15713000000000221234586206264793872833251953125
[2026-01-17 00:48:17] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-17 00:48:17] [INFO]   -> Found value: -85.64162
[2026-01-17 00:48:17] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6416200000000031877789297141134738922119140625
[2026-01-17 00:48:17] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-17 00:48:17] [INFO]   -> Found value: 2026-01-16 18:47:36
[2026-01-17 00:48:17] [INFO]   -> Set field 'alarm' = "2026-01-16 18:47:36"
[2026-01-17 00:48:17] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-17 00:48:17] [INFO]   -> Found value: 2026-01-16 18:48:03
[2026-01-17 00:48:17] [INFO]   -> Set field 'dispatched' = "2026-01-16 18:48:03"
[2026-01-17 00:48:17] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-17 00:48:17] [INFO]   -> Found value: 2026-01-16 18:48:03
[2026-01-17 00:48:17] [INFO]   -> Set field 'enroute' = "2026-01-16 18:48:03"
[2026-01-17 00:48:17] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-17 00:48:17] [INFO]   -> Found value: 2026-01-16 18:48:03
[2026-01-17 00:48:17] [INFO]   -> Set field 'onScene' = "2026-01-16 18:48:03"
[2026-01-17 00:48:17] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-17 00:48:17] [INFO]   -> No value found (null or empty)
[2026-01-17 00:48:17] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-17 00:48:17] [INFO]   -> Found value: THIRD AVE N/FOURTH AVE N
[2026-01-17 00:48:17] [INFO]   -> Set field 'incidentLocationCross' = "THIRD AVE N\/FOURTH AVE N"
[2026-01-17 00:48:17] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-17 00:48:17] [INFO]   -> Found value: BEN2
[2026-01-17 00:48:17] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-01-17 00:48:17] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-17 00:48:17] [INFO]   -> Found value: 2026-01-16 18:48:03
[2026-01-17 00:48:17] [INFO]   -> Set field 'timedispatch' = "2026-01-16 18:48:03"
[2026-01-17 00:48:17] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-17 00:48:17] [INFO]   -> Found value: 2026-01-16 18:48:03
[2026-01-17 00:48:17] [INFO]   -> Set field 'timeenroutetoscene' = "2026-01-16 18:48:03"
[2026-01-17 00:48:17] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-17 00:48:17] [INFO]   -> Found value: 2026-01-16 18:48:03
[2026-01-17 00:48:17] [INFO]   -> Set field 'timeonscene' = "2026-01-16 18:48:03"
[2026-01-17 00:48:17] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-17 00:48:17] [INFO]   -> No value found (null or empty)
[2026-01-17 00:48:17] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-17 00:48:17] [INFO]   -> No value found (null or empty)
[2026-01-17 00:48:17] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-17 00:48:17] [INFO]   -> Found value: 20260006075
[2026-01-17 00:48:17] [INFO]   -> Set field 'policeReportNumber' = "20260006075"
[2026-01-17 00:48:17] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-17 00:48:17] [INFO]   -> No value found (null or empty)
[2026-01-17 00:48:17] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-17 00:48:17] [INFO]   -> Found value: BAXTER
[2026-01-17 00:48:17] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-01-17 00:48:17] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-17 00:48:17] [INFO]   -> Found value: ELM
[2026-01-17 00:48:17] [INFO]   -> Set field 'streetName' = "ELM"
[2026-01-17 00:48:17] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-17 00:48:17] [INFO]   -> Found value: ST
[2026-01-17 00:48:17] [INFO]   -> Set field 'streetType' = "ST"
[2026-01-17 00:48:17] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-17 00:48:17] [INFO]   -> Found value: 317 ELM ST
[2026-01-17 00:48:17] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "317 ELM ST"
[2026-01-17 00:48:17] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-01-17 00:48:17] [INFO] Concatenating street name and type
[2026-01-17 00:48:17] [INFO]   -> Combined street name: ELM ST
[2026-01-17 00:48:17] [INFO] Built locationCoordinates from lat/lng: 36.15713,-85.64162
[2026-01-17 00:48:17] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD","incidentInternalId":"2026000020","dispatchRunNumber":"2026000020","incidentTypeValue1":"PUBLIC ASSIST","incidentLocationStreetNumber":317,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"businessName":"CLARENCE SEWELL","nERISIncidentLatitude":36.15713000000000221234586206264793872833251953125,"nERISIncidentLongitude":-85.6416200000000031877789297141134738922119140625,"alarm":"2026-01-16 18:47:36","dispatched":"2026-01-16 18:48:03","enroute":"2026-01-16 18:48:03","onScene":"2026-01-16 18:48:03","incidentLocationCross":"THIRD AVE N\/FOURTH AVE N","cADVehicleID":"BEN2","timedispatch":"2026-01-16 18:48:03","timeenroutetoscene":"2026-01-16 18:48:03","timeonscene":"2026-01-16 18:48:03","policeReportNumber":"20260006075","incidentLocationCity":"BAXTER","streetName":"ELM ST","incidentAddressTextVersionStreet":"317 ELM ST","locationCoordinates":"36.15713,-85.64162"}
[2026-01-17 00:48:17] [INFO] Number of extracted fields: 24
[2026-01-17 00:48:17] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD'
[2026-01-17 00:48:17] [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-01-17 00:48:17] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD"]
[2026-01-17 00:48:17] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-01-17 00:48:17] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-01-17 00:48:17] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-01-17 00:48:17] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-01-17 00:48:17] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-01-17 00:48:18] [INFO] Found existing IncidentTypeMapping with ID: 6945bb1a914109b26
[2026-01-17 00:48:21] [INFO] Created new Dispatches record with ID: 696adc5269378d50e
[2026-01-17 00:48:21] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-17
[2026-01-17 00:48:21] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260006075_20260117_004817.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-17/BFD_20260006075_20260117_004817.XML
[2026-01-17 00:48:21] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260006075_20260117_004817.XML
[2026-01-17 01:10:14] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006082_20260117_011014.XML
[2026-01-17 01:10:14] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006082_20260117_011014.XML for user: 68f1466aed072ad4a
[2026-01-17 01:10:14] [INFO] File size: 5541 bytes
[2026-01-17 01:10:15] [INFO] Created FTPFiles record with ID: 696ae17706ab8af98
[2026-01-17 01:10:15] [INFO] About to extract fields from XML. File size: 5541 bytes
[2026-01-17 01:10:15] [INFO] Number of mappings: 28
[2026-01-17 01:10:15] [INFO] Starting XML parsing. Content length: 5541
[2026-01-17 01:10:15] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-17 01:10:15] [INFO] Processing 28 field mappings
[2026-01-17 01:10:15] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-17 01:10:15] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-17 01:10:15] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-01-17 01:10:15] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-01-17 01:10:15] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-01-17 01:10:15] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-01-17 01:10:15] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-17 01:10:15] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-01-17 01:10:15] [INFO]   -> Found value: 2026000147
[2026-01-17 01:10:15] [INFO]   -> Set field 'incidentInternalId' = "2026000147"
[2026-01-17 01:10:15] [INFO]   -> Set field 'dispatchRunNumber' = "2026000147"
[2026-01-17 01:10:15] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-17 01:10:15] [INFO]   -> Found value: MVC WITH INJURY
[2026-01-17 01:10:15] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-01-17 01:10:15] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-17 01:10:15] [INFO]   -> Found value: 12299
[2026-01-17 01:10:15] [INFO]   -> Set field 'incidentLocationStreetNumber' = 12299
[2026-01-17 01:10:15] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-17 01:10:15] [INFO]   -> Found value: TN
[2026-01-17 01:10:15] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-17 01:10:15] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-17 01:10:15] [INFO]   -> Found value: 38582
[2026-01-17 01:10:15] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38582
[2026-01-17 01:10:15] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-17 01:10:15] [INFO]   -> No value found (null or empty)
[2026-01-17 01:10:15] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-17 01:10:15] [INFO]   -> No value found (null or empty)
[2026-01-17 01:10:15] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-17 01:10:15] [INFO]   -> Found value: 36.10561
[2026-01-17 01:10:15] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1056099999999986494003678672015666961669921875
[2026-01-17 01:10:15] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-17 01:10:15] [INFO]   -> Found value: -85.69602
[2026-01-17 01:10:15] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.696020000000004301909939385950565338134765625
[2026-01-17 01:10:15] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-17 01:10:15] [INFO]   -> Found value: 2026-01-16 19:09:16
[2026-01-17 01:10:15] [INFO]   -> Set field 'alarm' = "2026-01-16 19:09:16"
[2026-01-17 01:10:15] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-17 01:10:15] [INFO]   -> Found value: 2026-01-16 19:10:03
[2026-01-17 01:10:15] [INFO]   -> Set field 'dispatched' = "2026-01-16 19:10:03"
[2026-01-17 01:10:15] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-17 01:10:15] [INFO]   -> No value found (null or empty)
[2026-01-17 01:10:15] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-17 01:10:15] [INFO]   -> No value found (null or empty)
[2026-01-17 01:10:15] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-17 01:10:15] [INFO]   -> No value found (null or empty)
[2026-01-17 01:10:15] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-17 01:10:15] [INFO]   -> No value found (null or empty)
[2026-01-17 01:10:15] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-17 01:10:15] [INFO]   -> Found value: TK31
[2026-01-17 01:10:15] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-01-17 01:10:15] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-17 01:10:15] [INFO]   -> Found value: 2026-01-16 19:10:03
[2026-01-17 01:10:15] [INFO]   -> Set field 'timedispatch' = "2026-01-16 19:10:03"
[2026-01-17 01:10:15] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-17 01:10:15] [INFO]   -> No value found (null or empty)
[2026-01-17 01:10:15] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-17 01:10:15] [INFO]   -> No value found (null or empty)
[2026-01-17 01:10:15] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-17 01:10:15] [INFO]   -> No value found (null or empty)
[2026-01-17 01:10:15] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-17 01:10:15] [INFO]   -> No value found (null or empty)
[2026-01-17 01:10:15] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-17 01:10:15] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-01-17 01:10:15] [INFO]   -> Found value: 20260006082
[2026-01-17 01:10:15] [INFO]   -> Set field 'policeReportNumber' = "20260006082"
[2026-01-17 01:10:15] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-17 01:10:15] [INFO]   -> Found value: [EMS] AIRBAGS DEPLOYED  [01/16/26 19:09:41 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01/16/26 1...
[2026-01-17 01:10:15] [INFO]   -> Set field 'dispatchNotes' = "[EMS] AIRBAGS DEPLOYED  [01\/16\/26 19:09:41 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/16\/26 19:09:33 ECLEMENS] [EMS] UNSURE OF INJURIES  [01\/16\/26 19:09:27 JDICK] Event spawned from MVC WITH INJURY.  [01\/16\/2026 19:09:16 JDICK] 2 VEHICLES-  [01\/16\/26 19:08:55 JDICK]]"
[2026-01-17 01:10:15] [INFO]   -> Set field 'cADLog' = "[EMS] AIRBAGS DEPLOYED  [01\/16\/26 19:09:41 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/16\/26 19:09:33 ECLEMENS] [EMS] UNSURE OF INJURIES  [01\/16\/26 19:09:27 JDICK] Event spawned from MVC WITH INJURY.  [01\/16\/2026 19:09:16 JDICK] 2 VEHICLES-  [01\/16\/26 19:08:55 JDICK]]"
[2026-01-17 01:10:15] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-17 01:10:15] [INFO]   -> Found value: SILVER POINT
[2026-01-17 01:10:15] [INFO]   -> Set field 'incidentLocationCity' = "SILVER POINT"
[2026-01-17 01:10:15] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-17 01:10:15] [INFO]   -> Found value: OLD BAXTER
[2026-01-17 01:10:15] [INFO]   -> Set field 'streetName' = "OLD BAXTER"
[2026-01-17 01:10:15] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-17 01:10:15] [INFO]   -> Found value: RD
[2026-01-17 01:10:15] [INFO]   -> Set field 'streetType' = "RD"
[2026-01-17 01:10:15] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-17 01:10:15] [INFO]   -> Found value: OLD BAXTER RD/ARNOLD THOMAS RD
[2026-01-17 01:10:15] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "OLD BAXTER RD\/ARNOLD THOMAS RD"
[2026-01-17 01:10:15] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-01-17 01:10:15] [INFO] Concatenating street name and type
[2026-01-17 01:10:15] [INFO]   -> Combined street name: OLD BAXTER RD
[2026-01-17 01:10:15] [INFO] Built locationCoordinates from lat/lng: 36.10561,-85.69602
[2026-01-17 01:10:15] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000147","dispatchRunNumber":"2026000147","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":12299,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38582,"nERISIncidentLatitude":36.1056099999999986494003678672015666961669921875,"nERISIncidentLongitude":-85.696020000000004301909939385950565338134765625,"alarm":"2026-01-16 19:09:16","dispatched":"2026-01-16 19:10:03","cADVehicleID":"TK31","timedispatch":"2026-01-16 19:10:03","policeReportNumber":"20260006082","dispatchNotes":"[EMS] AIRBAGS DEPLOYED  [01\/16\/26 19:09:41 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/16\/26 19:09:33 ECLEMENS] [EMS] UNSURE OF INJURIES  [01\/16\/26 19:09:27 JDICK] Event spawned from MVC WITH INJURY.  [01\/16\/2026 19:09:16 JDICK] 2 VEHICLES-  [01\/16\/26 19:08:55 JDICK]]","cADLog":"[EMS] AIRBAGS DEPLOYED  [01\/16\/26 19:09:41 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/16\/26 19:09:33 ECLEMENS] [EMS] UNSURE OF INJURIES  [01\/16\/26 19:09:27 JDICK] Event spawned from MVC WITH INJURY.  [01\/16\/2026 19:09:16 JDICK] 2 VEHICLES-  [01\/16\/26 19:08:55 JDICK]]","incidentLocationCity":"SILVER POINT","streetName":"OLD BAXTER RD","incidentAddressTextVersionStreet":"OLD BAXTER RD\/ARNOLD THOMAS RD","locationCoordinates":"36.10561,-85.69602"}
[2026-01-17 01:10:15] [INFO] Number of extracted fields: 20
[2026-01-17 01:10:15] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-01-17 01:10:15] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-01-17 01:10:15] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-01-17 01:10:15] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-01-17 01:10:15] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-01-17 01:10:15] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-01-17 01:10:15] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-01-17 01:10:15] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-01-17 01:10:15] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-01-17 01:10:15] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-01-17 01:10:15] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-01-17 01:10:15] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-01-17 01:10:23] [INFO] Created new Dispatches record with ID: 696ae177bd8a5c459
[2026-01-17 01:10:23] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006082_20260117_011014.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-17/PCFD_20260006082_20260117_011014.XML
[2026-01-17 01:10:23] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006082_20260117_011014.XML
[2026-01-17 04:22:04] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006141_20260117_042204.XML
[2026-01-17 04:22:04] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006141_20260117_042204.XML for user: 68f1466aed072ad4a
[2026-01-17 04:22:04] [INFO] File size: 5511 bytes
[2026-01-17 04:22:04] [INFO] Created FTPFiles record with ID: 696b0e6cdad21ab63
[2026-01-17 04:22:04] [INFO] About to extract fields from XML. File size: 5511 bytes
[2026-01-17 04:22:04] [INFO] Number of mappings: 28
[2026-01-17 04:22:04] [INFO] Starting XML parsing. Content length: 5511
[2026-01-17 04:22:04] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-17 04:22:04] [INFO] Processing 28 field mappings
[2026-01-17 04:22:04] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-17 04:22:04] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-17 04:22:04] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-01-17 04:22:04] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-01-17 04:22:04] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-01-17 04:22:04] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-01-17 04:22:04] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-17 04:22:04] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-01-17 04:22:04] [INFO]   -> Found value: 2026000148
[2026-01-17 04:22:04] [INFO]   -> Set field 'incidentInternalId' = "2026000148"
[2026-01-17 04:22:04] [INFO]   -> Set field 'dispatchRunNumber' = "2026000148"
[2026-01-17 04:22:04] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-17 04:22:04] [INFO]   -> Found value: DIABETIC PROBLEM
[2026-01-17 04:22:04] [INFO]   -> Set field 'incidentTypeValue1' = "DIABETIC PROBLEM"
[2026-01-17 04:22:04] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-17 04:22:04] [INFO]   -> Found value: 2950
[2026-01-17 04:22:04] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2950
[2026-01-17 04:22:04] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-17 04:22:04] [INFO]   -> Found value: TN
[2026-01-17 04:22:04] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-17 04:22:04] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-17 04:22:04] [INFO]   -> Found value: 38545
[2026-01-17 04:22:04] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38545
[2026-01-17 04:22:04] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-17 04:22:04] [INFO]   -> No value found (null or empty)
[2026-01-17 04:22:04] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-17 04:22:04] [INFO]   -> No value found (null or empty)
[2026-01-17 04:22:04] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-17 04:22:04] [INFO]   -> Found value: 36.21046
[2026-01-17 04:22:04] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2104599999999976489561959169805049896240234375
[2026-01-17 04:22:04] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-17 04:22:04] [INFO]   -> Found value: -85.61331
[2026-01-17 04:22:04] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6133099999999984675014275126159191131591796875
[2026-01-17 04:22:04] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-17 04:22:04] [INFO]   -> Found value: 2026-01-16 22:21:27
[2026-01-17 04:22:04] [INFO]   -> Set field 'alarm' = "2026-01-16 22:21:27"
[2026-01-17 04:22:04] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-17 04:22:04] [INFO]   -> Found value: 2026-01-16 22:21:55
[2026-01-17 04:22:04] [INFO]   -> Set field 'dispatched' = "2026-01-16 22:21:55"
[2026-01-17 04:22:04] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-17 04:22:04] [INFO]   -> No value found (null or empty)
[2026-01-17 04:22:04] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-17 04:22:04] [INFO]   -> No value found (null or empty)
[2026-01-17 04:22:04] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-17 04:22:04] [INFO]   -> No value found (null or empty)
[2026-01-17 04:22:04] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-17 04:22:04] [INFO]   -> Found value: OLD GAINESBORO RD/GREEN RD
[2026-01-17 04:22:04] [INFO]   -> Set field 'incidentLocationCross' = "OLD GAINESBORO RD\/GREEN RD"
[2026-01-17 04:22:04] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-17 04:22:04] [INFO]   -> Found value: PCFR
[2026-01-17 04:22:04] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-01-17 04:22:04] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-17 04:22:04] [INFO]   -> Found value: 2026-01-16 22:21:55
[2026-01-17 04:22:04] [INFO]   -> Set field 'timedispatch' = "2026-01-16 22:21:55"
[2026-01-17 04:22:04] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-17 04:22:04] [INFO]   -> No value found (null or empty)
[2026-01-17 04:22:04] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-17 04:22:04] [INFO]   -> No value found (null or empty)
[2026-01-17 04:22:04] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-17 04:22:04] [INFO]   -> No value found (null or empty)
[2026-01-17 04:22:04] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-17 04:22:04] [INFO]   -> No value found (null or empty)
[2026-01-17 04:22:04] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-17 04:22:04] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-01-17 04:22:04] [INFO]   -> Found value: 20260006141
[2026-01-17 04:22:04] [INFO]   -> Set field 'policeReportNumber' = "20260006141"
[2026-01-17 04:22:04] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-17 04:22:04] [INFO]   -> Found value: [EMS] AWAKE AND TALKING  [01/16/26 22:21:37 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01/16/26 ...
[2026-01-17 04:22:04] [INFO]   -> Set field 'dispatchNotes' = "[EMS] AWAKE AND TALKING  [01\/16\/26 22:21:37 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/16\/26 22:21:37 ECLEMENS] Event spawned from DIABETIC PROBLEM.  [01\/16\/2026 22:21:27 JDICK] BS- LOW IN 60`S  [01\/16\/26 22:21:21 JDICK]]"
[2026-01-17 04:22:04] [INFO]   -> Set field 'cADLog' = "[EMS] AWAKE AND TALKING  [01\/16\/26 22:21:37 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/16\/26 22:21:37 ECLEMENS] Event spawned from DIABETIC PROBLEM.  [01\/16\/2026 22:21:27 JDICK] BS- LOW IN 60`S  [01\/16\/26 22:21:21 JDICK]]"
[2026-01-17 04:22:04] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-17 04:22:04] [INFO]   -> Found value: BLOOMINGTON SPRINGS
[2026-01-17 04:22:04] [INFO]   -> Set field 'incidentLocationCity' = "BLOOMINGTON SPRINGS"
[2026-01-17 04:22:04] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-17 04:22:04] [INFO]   -> Found value: GAINESBORO
[2026-01-17 04:22:04] [INFO]   -> Set field 'streetName' = "GAINESBORO"
[2026-01-17 04:22:04] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-17 04:22:04] [INFO]   -> Found value: HWY
[2026-01-17 04:22:04] [INFO]   -> Set field 'streetType' = "HWY"
[2026-01-17 04:22:04] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-17 04:22:04] [INFO]   -> Found value: 2950 GAINESBORO HWY
[2026-01-17 04:22:04] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2950 GAINESBORO HWY"
[2026-01-17 04:22:04] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-01-17 04:22:04] [INFO] Concatenating street name and type
[2026-01-17 04:22:04] [INFO]   -> Combined street name: GAINESBORO HWY
[2026-01-17 04:22:04] [INFO] Built locationCoordinates from lat/lng: 36.21046,-85.61331
[2026-01-17 04:22:04] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000148","dispatchRunNumber":"2026000148","incidentTypeValue1":"DIABETIC PROBLEM","incidentLocationStreetNumber":2950,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38545,"nERISIncidentLatitude":36.2104599999999976489561959169805049896240234375,"nERISIncidentLongitude":-85.6133099999999984675014275126159191131591796875,"alarm":"2026-01-16 22:21:27","dispatched":"2026-01-16 22:21:55","incidentLocationCross":"OLD GAINESBORO RD\/GREEN RD","cADVehicleID":"PCFR","timedispatch":"2026-01-16 22:21:55","policeReportNumber":"20260006141","dispatchNotes":"[EMS] AWAKE AND TALKING  [01\/16\/26 22:21:37 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/16\/26 22:21:37 ECLEMENS] Event spawned from DIABETIC PROBLEM.  [01\/16\/2026 22:21:27 JDICK] BS- LOW IN 60`S  [01\/16\/26 22:21:21 JDICK]]","cADLog":"[EMS] AWAKE AND TALKING  [01\/16\/26 22:21:37 JDICK] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/16\/26 22:21:37 ECLEMENS] Event spawned from DIABETIC PROBLEM.  [01\/16\/2026 22:21:27 JDICK] BS- LOW IN 60`S  [01\/16\/26 22:21:21 JDICK]]","incidentLocationCity":"BLOOMINGTON SPRINGS","streetName":"GAINESBORO HWY","incidentAddressTextVersionStreet":"2950 GAINESBORO HWY","locationCoordinates":"36.21046,-85.61331"}
[2026-01-17 04:22:04] [INFO] Number of extracted fields: 21
[2026-01-17 04:22:04] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-01-17 04:22:04] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-01-17 04:22:04] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-01-17 04:22:04] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-01-17 04:22:05] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-01-17 04:22:05] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-01-17 04:22: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-01-17 04:22:05] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-01-17 04:22:05] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-01-17 04:22:05] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-01-17 04:22:05] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-01-17 04:22:05] [INFO] Found existing IncidentTypeMapping with ID: 6937a13f0053c6dd7
[2026-01-17 04:22:14] [INFO] Created new Dispatches record with ID: 696b0e6d9cb633fc5
[2026-01-17 04:22:14] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006141_20260117_042204.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-17/PCFD_20260006141_20260117_042204.XML
[2026-01-17 04:22:14] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006141_20260117_042204.XML
[2026-01-17 04:44:40] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 04:44:40] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml for user: 69320e6a9e3e5ef71
[2026-01-17 04:44:40] [INFO] File size: 14522 bytes
[2026-01-17 04:44:41] [INFO] Created FTPFiles record with ID: 696b13b93864ed7c8
[2026-01-17 04:44:41] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-17 04:44:41] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-17
[2026-01-17 04:44:41] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-17/cfs_2026-003610.xml
[2026-01-17 04:44:41] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 04:44:55] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 04:44:55] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml for user: 69320e6a9e3e5ef71
[2026-01-17 04:44:55] [INFO] File size: 15496 bytes
[2026-01-17 04:44:56] [INFO] Created FTPFiles record with ID: 696b13c83cd6cf709
[2026-01-17 04:44:56] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-17 04:44:56] [INFO] File already exists in archive, using unique name: cfs_2026-003610_1768625096.xml
[2026-01-17 04:44:56] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-17/cfs_2026-003610_1768625096.xml
[2026-01-17 04:44:56] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 04:45:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 04:45:01] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml for user: 69320e6a9e3e5ef71
[2026-01-17 04:45:01] [INFO] File size: 15496 bytes
[2026-01-17 04:45:01] [INFO] Created FTPFiles record with ID: 696b13cd541bc1362
[2026-01-17 04:45:01] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-17 04:45:01] [INFO] File already exists in archive, using unique name: cfs_2026-003610_1768625101.xml
[2026-01-17 04:45:01] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-17/cfs_2026-003610_1768625101.xml
[2026-01-17 04:45:01] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 04:45:21] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 04:45:21] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml for user: 69320e6a9e3e5ef71
[2026-01-17 04:45:21] [INFO] File size: 15496 bytes
[2026-01-17 04:45:21] [INFO] Created FTPFiles record with ID: 696b13e17a2f09e03
[2026-01-17 04:45:21] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-17 04:45:21] [INFO] File already exists in archive, using unique name: cfs_2026-003610_1768625121.xml
[2026-01-17 04:45:21] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-17/cfs_2026-003610_1768625121.xml
[2026-01-17 04:45:21] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 04:45:29] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 04:45:29] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml for user: 69320e6a9e3e5ef71
[2026-01-17 04:45:29] [INFO] File size: 16475 bytes
[2026-01-17 04:45:30] [INFO] Created FTPFiles record with ID: 696b13ea1fc07fa51
[2026-01-17 04:45:30] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-17 04:45:30] [INFO] File already exists in archive, using unique name: cfs_2026-003610_1768625130.xml
[2026-01-17 04:45:30] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-17/cfs_2026-003610_1768625130.xml
[2026-01-17 04:45:30] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 04:45:41] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 04:45:41] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml for user: 69320e6a9e3e5ef71
[2026-01-17 04:45:41] [INFO] File size: 16475 bytes
[2026-01-17 04:45:41] [INFO] Created FTPFiles record with ID: 696b13f59210b322d
[2026-01-17 04:45:41] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-17 04:45:41] [INFO] File already exists in archive, using unique name: cfs_2026-003610_1768625141.xml
[2026-01-17 04:45:41] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-17/cfs_2026-003610_1768625141.xml
[2026-01-17 04:45:41] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 04:45:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 04:45:47] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml for user: 69320e6a9e3e5ef71
[2026-01-17 04:45:47] [INFO] File size: 17453 bytes
[2026-01-17 04:45:48] [INFO] Created FTPFiles record with ID: 696b13fc133a84ea7
[2026-01-17 04:45:48] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-17 04:45:48] [INFO] File already exists in archive, using unique name: cfs_2026-003610_1768625148.xml
[2026-01-17 04:45:48] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-17/cfs_2026-003610_1768625148.xml
[2026-01-17 04:45:48] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 04:52:04] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006149_20260117_045204.XML
[2026-01-17 04:52:04] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006149_20260117_045204.XML for user: 68f1466aed072ad4a
[2026-01-17 04:52:04] [INFO] File size: 5560 bytes
[2026-01-17 04:52:05] [INFO] Created FTPFiles record with ID: 696b157534d07c1b2
[2026-01-17 04:52:05] [INFO] About to extract fields from XML. File size: 5560 bytes
[2026-01-17 04:52:05] [INFO] Number of mappings: 28
[2026-01-17 04:52:05] [INFO] Starting XML parsing. Content length: 5560
[2026-01-17 04:52:05] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-17 04:52:05] [INFO] Processing 28 field mappings
[2026-01-17 04:52:05] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-17 04:52:05] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-17 04:52:05] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-01-17 04:52:05] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-01-17 04:52:05] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-01-17 04:52:05] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-01-17 04:52:05] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-17 04:52:05] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-01-17 04:52:05] [INFO]   -> Found value: 2026000149
[2026-01-17 04:52:05] [INFO]   -> Set field 'incidentInternalId' = "2026000149"
[2026-01-17 04:52:05] [INFO]   -> Set field 'dispatchRunNumber' = "2026000149"
[2026-01-17 04:52:05] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-17 04:52:05] [INFO]   -> Found value: UNCONSCIOUS
[2026-01-17 04:52:05] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-01-17 04:52:05] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-17 04:52:05] [INFO]   -> Found value: 3901
[2026-01-17 04:52:05] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3901
[2026-01-17 04:52:05] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-17 04:52:05] [INFO]   -> Found value: TN
[2026-01-17 04:52:05] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-17 04:52:05] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-17 04:52:05] [INFO]   -> Found value: 38501
[2026-01-17 04:52:05] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-01-17 04:52:05] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-17 04:52:05] [INFO]   -> No value found (null or empty)
[2026-01-17 04:52:05] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-17 04:52:05] [INFO]   -> No value found (null or empty)
[2026-01-17 04:52:05] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-17 04:52:05] [INFO]   -> Found value: 36.21680
[2026-01-17 04:52:05] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21679999999999921556081972084939479827880859375
[2026-01-17 04:52:05] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-17 04:52:05] [INFO]   -> Found value: -85.49400
[2026-01-17 04:52:05] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.493999999999999772626324556767940521240234375
[2026-01-17 04:52:05] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-17 04:52:05] [INFO]   -> Found value: 2026-01-16 22:51:30
[2026-01-17 04:52:05] [INFO]   -> Set field 'alarm' = "2026-01-16 22:51:30"
[2026-01-17 04:52:05] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-17 04:52:05] [INFO]   -> Found value: 2026-01-16 22:51:58
[2026-01-17 04:52:05] [INFO]   -> Set field 'dispatched' = "2026-01-16 22:51:58"
[2026-01-17 04:52:05] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-17 04:52:05] [INFO]   -> No value found (null or empty)
[2026-01-17 04:52:05] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-17 04:52:05] [INFO]   -> No value found (null or empty)
[2026-01-17 04:52:05] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-17 04:52:05] [INFO]   -> No value found (null or empty)
[2026-01-17 04:52:05] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-17 04:52:05] [INFO]   -> Found value: EDGEWOOD DR/HUTCHESON RD
[2026-01-17 04:52:05] [INFO]   -> Set field 'incidentLocationCross' = "EDGEWOOD DR\/HUTCHESON RD"
[2026-01-17 04:52:05] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-17 04:52:05] [INFO]   -> Found value: PCFR
[2026-01-17 04:52:05] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-01-17 04:52:05] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-17 04:52:05] [INFO]   -> Found value: 2026-01-16 22:51:58
[2026-01-17 04:52:05] [INFO]   -> Set field 'timedispatch' = "2026-01-16 22:51:58"
[2026-01-17 04:52:05] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-17 04:52:05] [INFO]   -> No value found (null or empty)
[2026-01-17 04:52:05] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-17 04:52:05] [INFO]   -> No value found (null or empty)
[2026-01-17 04:52:05] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-17 04:52:05] [INFO]   -> No value found (null or empty)
[2026-01-17 04:52:05] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-17 04:52:05] [INFO]   -> No value found (null or empty)
[2026-01-17 04:52:05] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-17 04:52:05] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-01-17 04:52:05] [INFO]   -> Found value: 20260006149
[2026-01-17 04:52:05] [INFO]   -> Set field 'policeReportNumber' = "20260006149"
[2026-01-17 04:52:05] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-17 04:52:05] [INFO]   -> Found value: [EMS] 77 YOM  [01/16/26 22:51:46 DSWINK] [EMS] CALLER REFUSING TO DO CPR - THINKS HE HAS BEEN GONE F...
[2026-01-17 04:52:05] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 77 YOM  [01\/16\/26 22:51:46 DSWINK] [EMS] CALLER REFUSING TO DO CPR - THINKS HE HAS BEEN GONE FOR A WHILE  [01\/16\/26 22:51:42 DSWINK] Event spawned from UNCONSCIOUS.  [01\/16\/2026 22:51:30 DSWINK] MALE ON THE FLOOR UNABLE TO WAKE HIM UP COLD TO THE TOUCH  [01\/16\/26 22:51:23 DSWINK]]"
[2026-01-17 04:52:05] [INFO]   -> Set field 'cADLog' = "[EMS] 77 YOM  [01\/16\/26 22:51:46 DSWINK] [EMS] CALLER REFUSING TO DO CPR - THINKS HE HAS BEEN GONE FOR A WHILE  [01\/16\/26 22:51:42 DSWINK] Event spawned from UNCONSCIOUS.  [01\/16\/2026 22:51:30 DSWINK] MALE ON THE FLOOR UNABLE TO WAKE HIM UP COLD TO THE TOUCH  [01\/16\/26 22:51:23 DSWINK]]"
[2026-01-17 04:52:05] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-17 04:52:05] [INFO]   -> Found value: COOKEVILLE
[2026-01-17 04:52:05] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-01-17 04:52:05] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-17 04:52:05] [INFO]   -> Found value: FREEHILL
[2026-01-17 04:52:05] [INFO]   -> Set field 'streetName' = "FREEHILL"
[2026-01-17 04:52:05] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-17 04:52:05] [INFO]   -> Found value: RD
[2026-01-17 04:52:05] [INFO]   -> Set field 'streetType' = "RD"
[2026-01-17 04:52:05] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-17 04:52:05] [INFO]   -> Found value: 3901 FREEHILL RD
[2026-01-17 04:52:05] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3901 FREEHILL RD"
[2026-01-17 04:52:05] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-01-17 04:52:05] [INFO] Concatenating street name and type
[2026-01-17 04:52:05] [INFO]   -> Combined street name: FREEHILL RD
[2026-01-17 04:52:05] [INFO] Built locationCoordinates from lat/lng: 36.2168,-85.494
[2026-01-17 04:52:05] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000149","dispatchRunNumber":"2026000149","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":3901,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.21679999999999921556081972084939479827880859375,"nERISIncidentLongitude":-85.493999999999999772626324556767940521240234375,"alarm":"2026-01-16 22:51:30","dispatched":"2026-01-16 22:51:58","incidentLocationCross":"EDGEWOOD DR\/HUTCHESON RD","cADVehicleID":"PCFR","timedispatch":"2026-01-16 22:51:58","policeReportNumber":"20260006149","dispatchNotes":"[EMS] 77 YOM  [01\/16\/26 22:51:46 DSWINK] [EMS] CALLER REFUSING TO DO CPR - THINKS HE HAS BEEN GONE FOR A WHILE  [01\/16\/26 22:51:42 DSWINK] Event spawned from UNCONSCIOUS.  [01\/16\/2026 22:51:30 DSWINK] MALE ON THE FLOOR UNABLE TO WAKE HIM UP COLD TO THE TOUCH  [01\/16\/26 22:51:23 DSWINK]]","cADLog":"[EMS] 77 YOM  [01\/16\/26 22:51:46 DSWINK] [EMS] CALLER REFUSING TO DO CPR - THINKS HE HAS BEEN GONE FOR A WHILE  [01\/16\/26 22:51:42 DSWINK] Event spawned from UNCONSCIOUS.  [01\/16\/2026 22:51:30 DSWINK] MALE ON THE FLOOR UNABLE TO WAKE HIM UP COLD TO THE TOUCH  [01\/16\/26 22:51:23 DSWINK]]","incidentLocationCity":"COOKEVILLE","streetName":"FREEHILL RD","incidentAddressTextVersionStreet":"3901 FREEHILL RD","locationCoordinates":"36.2168,-85.494"}
[2026-01-17 04:52:05] [INFO] Number of extracted fields: 21
[2026-01-17 04:52:05] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-01-17 04:52:05] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-01-17 04:52:05] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-01-17 04:52:05] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-01-17 04:52:05] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-01-17 04:52:05] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-01-17 04:52: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-01-17 04:52:05] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-01-17 04:52:05] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-01-17 04:52:05] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-01-17 04:52:05] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-01-17 04:52:05] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-01-17 04:52:14] [INFO] Created new Dispatches record with ID: 696b157628ae9bded
[2026-01-17 04:52:14] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006149_20260117_045204.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-17/PCFD_20260006149_20260117_045204.XML
[2026-01-17 04:52:14] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006149_20260117_045204.XML
[2026-01-17 04:53:41] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 04:53:41] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml for user: 69320e6a9e3e5ef71
[2026-01-17 04:53:41] [INFO] File size: 41987 bytes
[2026-01-17 04:53:42] [INFO] Created FTPFiles record with ID: 696b15d60c78c241a
[2026-01-17 04:53:42] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-17 04:53:42] [INFO] File already exists in archive, using unique name: cfs_2026-003610_1768625622.xml
[2026-01-17 04:53:42] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-17/cfs_2026-003610_1768625622.xml
[2026-01-17 04:53:42] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 04:55:53] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 04:55:53] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml for user: 69320e6a9e3e5ef71
[2026-01-17 04:55:53] [INFO] File size: 42975 bytes
[2026-01-17 04:55:53] [INFO] Created FTPFiles record with ID: 696b165996f8ee14c
[2026-01-17 04:55:53] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-01-17 04:55:53] [INFO] File already exists in archive, using unique name: cfs_2026-003610_1768625753.xml
[2026-01-17 04:55:53] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-01-17/cfs_2026-003610_1768625753.xml
[2026-01-17 04:55:53] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-003610.xml
[2026-01-17 05:19:36] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01677.xml
[2026-01-17 05:19:36] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01677.xml for user: 68d56363ec1209189
[2026-01-17 05:19:36] [INFO] File size: 3147 bytes
[2026-01-17 05:19:36] [INFO] Created FTPFiles record with ID: 696b1be85b0fd0d27
[2026-01-17 05:19:36] [INFO] About to extract fields from XML. File size: 3147 bytes
[2026-01-17 05:19:36] [INFO] Number of mappings: 21
[2026-01-17 05:19:36] [INFO] Starting XML parsing. Content length: 3147
[2026-01-17 05:19:36] [INFO] XML parsed successfully. Root element: Incident
[2026-01-17 05:19:36] [INFO] Processing 21 field mappings
[2026-01-17 05:19:36] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-01-17 05:19:36] [INFO]   -> Found value: 26-01677
[2026-01-17 05:19:36] [INFO]   -> Set field 'dispatchRunNumber' = "26-01677"
[2026-01-17 05:19:36] [INFO]   -> Set field 'cADNumber' = "26-01677"
[2026-01-17 05:19:36] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-01-17 05:19:36] [INFO]   -> Found value: 103
[2026-01-17 05:19:36] [INFO]   -> Set field 'incidentLocationStreetNumber' = 103
[2026-01-17 05:19:36] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-01-17 05:19:36] [INFO]   -> Found value: E KATHLEEN ST
[2026-01-17 05:19:36] [INFO]   -> Set field 'streetName' = "E KATHLEEN ST"
[2026-01-17 05:19:36] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-01-17 05:19:36] [INFO]   -> No value found (null or empty)
[2026-01-17 05:19:36] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-01-17 05:19:36] [INFO]   -> Found value: SIKESTON
[2026-01-17 05:19:36] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-01-17 05:19:36] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-01-17 05:19:36] [INFO]   -> Found value: CHRISTIAN ACADEMY
[2026-01-17 05:19:36] [INFO]   -> Set field 'businessName' = "CHRISTIAN ACADEMY"
[2026-01-17 05:19:36] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-01-17 05:19:36] [INFO]   -> Found value: MO
[2026-01-17 05:19:36] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-01-17 05:19:36] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-01-17 05:19:36] [INFO]   -> Found value: 63801
[2026-01-17 05:19:36] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-01-17 05:19:36] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-01-17 05:19:36] [INFO]   -> Found value: 0
[2026-01-17 05:19:36] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-01-17 05:19:36] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-01-17 05:19:36] [INFO]   -> Found value: 0
[2026-01-17 05:19:36] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-01-17 05:19:36] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-01-17 05:19:36] [INFO]   -> Found value: FIRE-ALARM MECH
[2026-01-17 05:19:36] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-ALARM MECH"
[2026-01-17 05:19:36] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-01-17 05:19:36] [INFO]   -> Found value: 01-16-2026 22:27:14|DOWNSTAIRS PULL STATION 
 01-16-2026 22:33:59|C89 ON SCENE ADVISED 2 STORY COMME...
[2026-01-17 05:19:36] [INFO]   -> Set field 'dispatchNotes' = "01-16-2026 22:27:14|DOWNSTAIRS PULL STATION \n 01-16-2026 22:33:59|C89 ON SCENE ADVISED 2 STORY COMMERICAL STRUCTURE NOTHING SHOWING AUDIBLE ALARM FROM INSIDE 01-16-2026 22:37:54|COMMAND ADVISED WE GET A BURGLARY ALARM CALL 01-16-2026 22:39:20|COMMAND ADVISED TO CONTACT KEYHOLDER 01-16-2026 22:39:29|537 KEYHOLDER CONTACT 01-16-2026 22:47:09|KEYHOLDER CARLA ENROUTE RED ACADIA ETA 10 MINUTES 01-16-2026 22:48:55|FALSE ALARM ALL UNITS IN SERVICE 01-16-2026 22:49:55|KEYHOLDER ON SCENE 01-16-2026 22:50:11|COMMAND WAITING ON SCENE FOR KEYHOLDER 01-16-2026 22:54:08|Disposition - SDPS PD:  NRN 01-16-2026 22:54:45|2ND KEYHOLDER ON SCENE"
[2026-01-17 05:19:36] [INFO]   -> Set field 'cADLog' = "01-16-2026 22:27:14|DOWNSTAIRS PULL STATION \n 01-16-2026 22:33:59|C89 ON SCENE ADVISED 2 STORY COMMERICAL STRUCTURE NOTHING SHOWING AUDIBLE ALARM FROM INSIDE 01-16-2026 22:37:54|COMMAND ADVISED WE GET A BURGLARY ALARM CALL 01-16-2026 22:39:20|COMMAND ADVISED TO CONTACT KEYHOLDER 01-16-2026 22:39:29|537 KEYHOLDER CONTACT 01-16-2026 22:47:09|KEYHOLDER CARLA ENROUTE RED ACADIA ETA 10 MINUTES 01-16-2026 22:48:55|FALSE ALARM ALL UNITS IN SERVICE 01-16-2026 22:49:55|KEYHOLDER ON SCENE 01-16-2026 22:50:11|COMMAND WAITING ON SCENE FOR KEYHOLDER 01-16-2026 22:54:08|Disposition - SDPS PD:  NRN 01-16-2026 22:54:45|2ND KEYHOLDER ON SCENE"
[2026-01-17 05:19:36] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-01-17 05:19:36] [INFO]   -> Found value: 01-16-2026T22:28:48
[2026-01-17 05:19:36] [INFO] Reformatted DD-MM-YYYY date '01-16-2026' (day=01, month=16) to ISO: 2026-16-01T22:28:48
[2026-01-17 05:19:36] [ERROR] Error formatting datetime '2026-16-01T22:28:48': Failed to parse time string (2026-16-01T22:28:48) at position 6 (6): Unexpected character
[2026-01-17 05:19:36] [INFO]   -> Set field 'alarm' = null
[2026-01-17 05:19:36] [INFO] Reformatted DD-MM-YYYY date '01-16-2026' (day=01, month=16) to ISO: 2026-16-01T22:28:48
[2026-01-17 05:19:36] [ERROR] Error formatting datetime '2026-16-01T22:28:48': Failed to parse time string (2026-16-01T22:28:48) at position 6 (6): Unexpected character
[2026-01-17 05:19:36] [INFO]   -> Set field 'dispatched' = null
[2026-01-17 05:19:36] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-01-17 05:19:36] [INFO]   -> Found value: 01-16-2026T22:32:17
[2026-01-17 05:19:36] [INFO] Reformatted DD-MM-YYYY date '01-16-2026' (day=01, month=16) to ISO: 2026-16-01T22:32:17
[2026-01-17 05:19:36] [ERROR] Error formatting datetime '2026-16-01T22:32:17': Failed to parse time string (2026-16-01T22:32:17) at position 6 (6): Unexpected character
[2026-01-17 05:19:36] [INFO]   -> Set field 'onScene' = null
[2026-01-17 05:19:36] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-01-17 05:19:36] [INFO]   -> Found value: 01-16-2026T23:19:01
[2026-01-17 05:19:36] [INFO] Reformatted DD-MM-YYYY date '01-16-2026' (day=01, month=16) to ISO: 2026-16-01T23:19:01
[2026-01-17 05:19:36] [ERROR] Error formatting datetime '2026-16-01T23:19:01': Failed to parse time string (2026-16-01T23:19:01) at position 6 (6): Unexpected character
[2026-01-17 05:19:36] [INFO]   -> Set field 'cleared' = null
[2026-01-17 05:19:36] [INFO] Reformatted DD-MM-YYYY date '01-16-2026' (day=01, month=16) to ISO: 2026-16-01T23:19:01
[2026-01-17 05:19:36] [ERROR] Error formatting datetime '2026-16-01T23:19:01': Failed to parse time string (2026-16-01T23:19:01) at position 6 (6): Unexpected character
[2026-01-17 05:19:36] [INFO]   -> Set field 'inService' = null
[2026-01-17 05:19:36] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-01-17 05:19:36] [INFO]   -> Found value: ENG2
[2026-01-17 05:19:36] [INFO]   -> Set field 'cADVehicleID' = "ENG2"
[2026-01-17 05:19:36] [INFO]   -> Set field 'name' = "ENG2"
[2026-01-17 05:19:36] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-01-17 05:19:36] [INFO]   -> Found value: 01-16-2026T22:31:57
[2026-01-17 05:19:36] [INFO] Reformatted DD-MM-YYYY date '01-16-2026' (day=01, month=16) to ISO: 2026-16-01T22:31:57
[2026-01-17 05:19:36] [ERROR] Error formatting datetime '2026-16-01T22:31:57': Failed to parse time string (2026-16-01T22:31:57) at position 6 (6): Unexpected character
[2026-01-17 05:19:36] [INFO]   -> Set field 'timeenroutetoscene' = null
[2026-01-17 05:19:36] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-01-17 05:19:36] [INFO]   -> Found value: 01-16-2026T22:34:47
[2026-01-17 05:19:36] [INFO] Reformatted DD-MM-YYYY date '01-16-2026' (day=01, month=16) to ISO: 2026-16-01T22:34:47
[2026-01-17 05:19:36] [ERROR] Error formatting datetime '2026-16-01T22:34:47': Failed to parse time string (2026-16-01T22:34:47) at position 6 (6): Unexpected character
[2026-01-17 05:19:36] [INFO]   -> Set field 'timeonscene' = null
[2026-01-17 05:19:36] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-01-17 05:19:36] [INFO]   -> Found value: 01-16-2026T23:19:01
[2026-01-17 05:19:36] [INFO] Reformatted DD-MM-YYYY date '01-16-2026' (day=01, month=16) to ISO: 2026-16-01T23:19:01
[2026-01-17 05:19:36] [ERROR] Error formatting datetime '2026-16-01T23:19:01': Failed to parse time string (2026-16-01T23:19:01) at position 6 (6): Unexpected character
[2026-01-17 05:19:36] [INFO]   -> Set field 'timeunitclear' = null
[2026-01-17 05:19:36] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-01-17 05:19:36] [INFO]   -> Found value: 01-16-2026T22:31:55
[2026-01-17 05:19:36] [INFO] Reformatted DD-MM-YYYY date '01-16-2026' (day=01, month=16) to ISO: 2026-16-01T22:31:55
[2026-01-17 05:19:36] [ERROR] Error formatting datetime '2026-16-01T22:31:55': Failed to parse time string (2026-16-01T22:31:55) at position 6 (6): Unexpected character
[2026-01-17 05:19:36] [INFO]   -> Set field 'timedispatch' = null
[2026-01-17 05:19:36] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-01-17 05:19:36] [INFO]   -> Found value: SDPSFD
[2026-01-17 05:19:36] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-01-17 05:19:36] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-01-17 05:19:36] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-01-17 05:19:36] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-01677","cADNumber":"26-01677","incidentLocationStreetNumber":103,"streetName":"E KATHLEEN ST","incidentLocationCity":"SIKESTON","businessName":"CHRISTIAN ACADEMY","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-ALARM MECH","dispatchNotes":"01-16-2026 22:27:14|DOWNSTAIRS PULL STATION \n 01-16-2026 22:33:59|C89 ON SCENE ADVISED 2 STORY COMMERICAL STRUCTURE NOTHING SHOWING AUDIBLE ALARM FROM INSIDE 01-16-2026 22:37:54|COMMAND ADVISED WE GET A BURGLARY ALARM CALL 01-16-2026 22:39:20|COMMAND ADVISED TO CONTACT KEYHOLDER 01-16-2026 22:39:29|537 KEYHOLDER CONTACT 01-16-2026 22:47:09|KEYHOLDER CARLA ENROUTE RED ACADIA ETA 10 MINUTES 01-16-2026 22:48:55|FALSE ALARM ALL UNITS IN SERVICE 01-16-2026 22:49:55|KEYHOLDER ON SCENE 01-16-2026 22:50:11|COMMAND WAITING ON SCENE FOR KEYHOLDER 01-16-2026 22:54:08|Disposition - SDPS PD:  NRN 01-16-2026 22:54:45|2ND KEYHOLDER ON SCENE","cADLog":"01-16-2026 22:27:14|DOWNSTAIRS PULL STATION \n 01-16-2026 22:33:59|C89 ON SCENE ADVISED 2 STORY COMMERICAL STRUCTURE NOTHING SHOWING AUDIBLE ALARM FROM INSIDE 01-16-2026 22:37:54|COMMAND ADVISED WE GET A BURGLARY ALARM CALL 01-16-2026 22:39:20|COMMAND ADVISED TO CONTACT KEYHOLDER 01-16-2026 22:39:29|537 KEYHOLDER CONTACT 01-16-2026 22:47:09|KEYHOLDER CARLA ENROUTE RED ACADIA ETA 10 MINUTES 01-16-2026 22:48:55|FALSE ALARM ALL UNITS IN SERVICE 01-16-2026 22:49:55|KEYHOLDER ON SCENE 01-16-2026 22:50:11|COMMAND WAITING ON SCENE FOR KEYHOLDER 01-16-2026 22:54:08|Disposition - SDPS PD:  NRN 01-16-2026 22:54:45|2ND KEYHOLDER ON SCENE","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"ENG2","name":"ENG2","timeenroutetoscene":null,"timeonscene":null,"timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-01-17 05:19:36] [INFO] Number of extracted fields: 26
[2026-01-17 05:19:36] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-01-17 05:19:36] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-01-17 05:19:36] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-01-17 05:19:36] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-01-17 05:19:36] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-01-17 05:19:36] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-01-17 05:19:36] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-01-17 05:19:36] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-01-17 05:19:36] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e872e5ae13
[2026-01-17 05:19:38] [INFO] Created new Dispatches record with ID: 696b1be916e29ff92
[2026-01-17 05:19:38] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-01-17
[2026-01-17 05:19:38] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01677.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-01-17/SDPSFD_26-01677.xml
[2026-01-17 05:19:38] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01677.xml
[2026-01-17 13:42:16] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006216_20260117_134216.XML
[2026-01-17 13:42:16] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006216_20260117_134216.XML for user: 68f1466aed072ad4a
[2026-01-17 13:42:16] [INFO] File size: 5274 bytes
[2026-01-17 13:42:16] [INFO] Created FTPFiles record with ID: 696b91b88b40d8e85
[2026-01-17 13:42:16] [INFO] About to extract fields from XML. File size: 5274 bytes
[2026-01-17 13:42:16] [INFO] Number of mappings: 28
[2026-01-17 13:42:16] [INFO] Starting XML parsing. Content length: 5274
[2026-01-17 13:42:16] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-17 13:42:16] [INFO] Processing 28 field mappings
[2026-01-17 13:42:16] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-17 13:42:16] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-17 13:42:16] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-01-17 13:42:16] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-01-17 13:42:16] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-01-17 13:42:16] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-01-17 13:42:16] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-17 13:42:16] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-01-17 13:42:16] [INFO]   -> Found value: 2026000150
[2026-01-17 13:42:16] [INFO]   -> Set field 'incidentInternalId' = "2026000150"
[2026-01-17 13:42:16] [INFO]   -> Set field 'dispatchRunNumber' = "2026000150"
[2026-01-17 13:42:16] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-17 13:42:16] [INFO]   -> Found value: FALL VICTIM
[2026-01-17 13:42:16] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-01-17 13:42:16] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-17 13:42:16] [INFO]   -> Found value: 188
[2026-01-17 13:42:16] [INFO]   -> Set field 'incidentLocationStreetNumber' = 188
[2026-01-17 13:42:16] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-17 13:42:16] [INFO]   -> Found value: TN
[2026-01-17 13:42:16] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-17 13:42:16] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-17 13:42:16] [INFO]   -> Found value: 38506
[2026-01-17 13:42:16] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-01-17 13:42:16] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-17 13:42:16] [INFO]   -> No value found (null or empty)
[2026-01-17 13:42:16] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-17 13:42:16] [INFO]   -> No value found (null or empty)
[2026-01-17 13:42:16] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-17 13:42:16] [INFO]   -> Found value: 36.16738
[2026-01-17 13:42:16] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.16738000000000141653799801133573055267333984375
[2026-01-17 13:42:16] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-17 13:42:16] [INFO]   -> Found value: -85.43127
[2026-01-17 13:42:16] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4312699999999978217601892538368701934814453125
[2026-01-17 13:42:16] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-17 13:42:16] [INFO]   -> Found value: 2026-01-17 07:41:47
[2026-01-17 13:42:16] [INFO]   -> Set field 'alarm' = "2026-01-17 07:41:47"
[2026-01-17 13:42:16] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-17 13:42:16] [INFO]   -> Found value: 2026-01-17 07:42:12
[2026-01-17 13:42:16] [INFO]   -> Set field 'dispatched' = "2026-01-17 07:42:12"
[2026-01-17 13:42:16] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-17 13:42:16] [INFO]   -> No value found (null or empty)
[2026-01-17 13:42:16] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-17 13:42:16] [INFO]   -> No value found (null or empty)
[2026-01-17 13:42:16] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-17 13:42:16] [INFO]   -> No value found (null or empty)
[2026-01-17 13:42:16] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-17 13:42:16] [INFO]   -> Found value: BUCK MOUNTAIN RD
[2026-01-17 13:42:16] [INFO]   -> Set field 'incidentLocationCross' = "BUCK MOUNTAIN RD"
[2026-01-17 13:42:16] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-17 13:42:16] [INFO]   -> Found value: PCFR
[2026-01-17 13:42:16] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-01-17 13:42:16] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-17 13:42:16] [INFO]   -> Found value: 2026-01-17 07:42:12
[2026-01-17 13:42:16] [INFO]   -> Set field 'timedispatch' = "2026-01-17 07:42:12"
[2026-01-17 13:42:16] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-17 13:42:16] [INFO]   -> No value found (null or empty)
[2026-01-17 13:42:16] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-17 13:42:16] [INFO]   -> No value found (null or empty)
[2026-01-17 13:42:16] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-17 13:42:16] [INFO]   -> No value found (null or empty)
[2026-01-17 13:42:16] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-17 13:42:16] [INFO]   -> No value found (null or empty)
[2026-01-17 13:42:16] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-17 13:42:16] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-01-17 13:42:16] [INFO]   -> Found value: 20260006216
[2026-01-17 13:42:16] [INFO]   -> Set field 'policeReportNumber' = "20260006216"
[2026-01-17 13:42:16] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-17 13:42:16] [INFO]   -> Found value: [EMS] 180 LBS  [01/17/26 07:42:05 KBURTON] [EMS] HERTA OSWALD  [01/17/26 07:41:59 KBURTON] Event spa...
[2026-01-17 13:42:16] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 180 LBS  [01\/17\/26 07:42:05 KBURTON] [EMS] HERTA OSWALD  [01\/17\/26 07:41:59 KBURTON] Event spawned from FALL VICTIM.  [01\/17\/2026 07:41:47 KBURTON] FALL @ 1 AM  EXTENDED DOWN TIME  UNABLE TO GET PT UP  [01\/17\/26 07:41:41 KBURTON]]"
[2026-01-17 13:42:16] [INFO]   -> Set field 'cADLog' = "[EMS] 180 LBS  [01\/17\/26 07:42:05 KBURTON] [EMS] HERTA OSWALD  [01\/17\/26 07:41:59 KBURTON] Event spawned from FALL VICTIM.  [01\/17\/2026 07:41:47 KBURTON] FALL @ 1 AM  EXTENDED DOWN TIME  UNABLE TO GET PT UP  [01\/17\/26 07:41:41 KBURTON]]"
[2026-01-17 13:42:16] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-17 13:42:16] [INFO]   -> Found value: COOKEVILLE
[2026-01-17 13:42:16] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-01-17 13:42:16] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-17 13:42:16] [INFO]   -> Found value: WHITES POINT
[2026-01-17 13:42:16] [INFO]   -> Set field 'streetName' = "WHITES POINT"
[2026-01-17 13:42:16] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-17 13:42:16] [INFO]   -> Found value: DR
[2026-01-17 13:42:16] [INFO]   -> Set field 'streetType' = "DR"
[2026-01-17 13:42:16] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-17 13:42:16] [INFO]   -> Found value: 188 WHITES POINT DR
[2026-01-17 13:42:16] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "188 WHITES POINT DR"
[2026-01-17 13:42:16] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-01-17 13:42:16] [INFO] Concatenating street name and type
[2026-01-17 13:42:16] [INFO]   -> Combined street name: WHITES POINT DR
[2026-01-17 13:42:16] [INFO] Built locationCoordinates from lat/lng: 36.16738,-85.43127
[2026-01-17 13:42:16] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000150","dispatchRunNumber":"2026000150","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":188,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.16738000000000141653799801133573055267333984375,"nERISIncidentLongitude":-85.4312699999999978217601892538368701934814453125,"alarm":"2026-01-17 07:41:47","dispatched":"2026-01-17 07:42:12","incidentLocationCross":"BUCK MOUNTAIN RD","cADVehicleID":"PCFR","timedispatch":"2026-01-17 07:42:12","policeReportNumber":"20260006216","dispatchNotes":"[EMS] 180 LBS  [01\/17\/26 07:42:05 KBURTON] [EMS] HERTA OSWALD  [01\/17\/26 07:41:59 KBURTON] Event spawned from FALL VICTIM.  [01\/17\/2026 07:41:47 KBURTON] FALL @ 1 AM  EXTENDED DOWN TIME  UNABLE TO GET PT UP  [01\/17\/26 07:41:41 KBURTON]]","cADLog":"[EMS] 180 LBS  [01\/17\/26 07:42:05 KBURTON] [EMS] HERTA OSWALD  [01\/17\/26 07:41:59 KBURTON] Event spawned from FALL VICTIM.  [01\/17\/2026 07:41:47 KBURTON] FALL @ 1 AM  EXTENDED DOWN TIME  UNABLE TO GET PT UP  [01\/17\/26 07:41:41 KBURTON]]","incidentLocationCity":"COOKEVILLE","streetName":"WHITES POINT DR","incidentAddressTextVersionStreet":"188 WHITES POINT DR","locationCoordinates":"36.16738,-85.43127"}
[2026-01-17 13:42:16] [INFO] Number of extracted fields: 21
[2026-01-17 13:42:16] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-01-17 13:42: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-01-17 13:42:16] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-01-17 13:42:16] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-01-17 13:42:16] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-01-17 13:42:16] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-01-17 13:42:16] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-01-17 13:42:16] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-01-17 13:42:16] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-01-17 13:42:16] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-01-17 13:42:16] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-01-17 13:42:17] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-01-17 13:42:26] [INFO] Created new Dispatches record with ID: 696b91b95aa76a4f8
[2026-01-17 13:42:26] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006216_20260117_134216.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-17/PCFD_20260006216_20260117_134216.XML
[2026-01-17 13:42:26] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006216_20260117_134216.XML
[2026-01-17 14:00:44] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01705.xml
[2026-01-17 14:00:44] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01705.xml for user: 68d56363ec1209189
[2026-01-17 14:00:44] [INFO] File size: 2375 bytes
[2026-01-17 14:00:45] [INFO] Created FTPFiles record with ID: 696b960d1a82446ed
[2026-01-17 14:00:45] [INFO] About to extract fields from XML. File size: 2375 bytes
[2026-01-17 14:00:45] [INFO] Number of mappings: 21
[2026-01-17 14:00:45] [INFO] Starting XML parsing. Content length: 2375
[2026-01-17 14:00:45] [INFO] XML parsed successfully. Root element: Incident
[2026-01-17 14:00:45] [INFO] Processing 21 field mappings
[2026-01-17 14:00:45] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-01-17 14:00:45] [INFO]   -> Found value: 26-01705
[2026-01-17 14:00:45] [INFO]   -> Set field 'dispatchRunNumber' = "26-01705"
[2026-01-17 14:00:45] [INFO]   -> Set field 'cADNumber' = "26-01705"
[2026-01-17 14:00:45] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-01-17 14:00:45] [INFO]   -> Found value: 710
[2026-01-17 14:00:45] [INFO]   -> Set field 'incidentLocationStreetNumber' = 710
[2026-01-17 14:00:45] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-01-17 14:00:45] [INFO]   -> Found value: GLENN DR
[2026-01-17 14:00:45] [INFO]   -> Set field 'streetName' = "GLENN DR"
[2026-01-17 14:00:45] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-01-17 14:00:45] [INFO]   -> No value found (null or empty)
[2026-01-17 14:00:45] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-01-17 14:00:45] [INFO]   -> Found value: SIKESTON
[2026-01-17 14:00:45] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-01-17 14:00:45] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-01-17 14:00:45] [INFO]   -> Found value: NEW DAWN STATE SCHOOL
[2026-01-17 14:00:45] [INFO]   -> Set field 'businessName' = "NEW DAWN STATE SCHOOL"
[2026-01-17 14:00:45] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-01-17 14:00:45] [INFO]   -> Found value: MO
[2026-01-17 14:00:45] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-01-17 14:00:45] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-01-17 14:00:45] [INFO]   -> Found value: 63801
[2026-01-17 14:00:45] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-01-17 14:00:45] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-01-17 14:00:45] [INFO]   -> Found value: 0
[2026-01-17 14:00:45] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-01-17 14:00:45] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-01-17 14:00:45] [INFO]   -> Found value: 0
[2026-01-17 14:00:45] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-01-17 14:00:45] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-01-17 14:00:45] [INFO]   -> Found value: FIRE-ALARM MECH
[2026-01-17 14:00:45] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-ALARM MECH"
[2026-01-17 14:00:45] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-01-17 14:00:45] [INFO]   -> Found value: 01-17-2026 07:49:28|GENERAL FIRE ALARM UNK LOCATION
DIRECT DISPATCH NO CONTACT MADE WITH THE KEY HOL...
[2026-01-17 14:00:45] [INFO]   -> Set field 'dispatchNotes' = "01-17-2026 07:49:28|GENERAL FIRE ALARM UNK LOCATION\nDIRECT DISPATCH NO CONTACT MADE WITH THE KEY HOLDER 01-17-2026 07:53:27|ENG2 ADVISED SINGLE STORY STRUCTURE NOTHING SHOWING 01-17-2026 07:54:41|L3 STAGING AT HYDRANT 01-17-2026 07:56:38|ALARM COMPANY RECONTACTED AND STATED THAT THEY SPOKE TO A KEY HOLDER AND STATED THAT THERE ARE CONTRACTORS ON SCENE AND THEY STATED THAT DUST BLEW UP INTO THE SMOKE DETECTORS 01-17-2026 07:59:45|C92 MADE CONTACT WITH SUBJECT ON SCENE FALSE ALARM"
[2026-01-17 14:00:45] [INFO]   -> Set field 'cADLog' = "01-17-2026 07:49:28|GENERAL FIRE ALARM UNK LOCATION\nDIRECT DISPATCH NO CONTACT MADE WITH THE KEY HOLDER 01-17-2026 07:53:27|ENG2 ADVISED SINGLE STORY STRUCTURE NOTHING SHOWING 01-17-2026 07:54:41|L3 STAGING AT HYDRANT 01-17-2026 07:56:38|ALARM COMPANY RECONTACTED AND STATED THAT THEY SPOKE TO A KEY HOLDER AND STATED THAT THERE ARE CONTRACTORS ON SCENE AND THEY STATED THAT DUST BLEW UP INTO THE SMOKE DETECTORS 01-17-2026 07:59:45|C92 MADE CONTACT WITH SUBJECT ON SCENE FALSE ALARM"
[2026-01-17 14:00:45] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-01-17 14:00:45] [INFO]   -> Found value: 01-17-2026T07:51:15
[2026-01-17 14:00:45] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T07:51:15
[2026-01-17 14:00:45] [ERROR] Error formatting datetime '2026-17-01T07:51:15': Failed to parse time string (2026-17-01T07:51:15) at position 6 (7): Unexpected character
[2026-01-17 14:00:45] [INFO]   -> Set field 'alarm' = null
[2026-01-17 14:00:45] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T07:51:15
[2026-01-17 14:00:45] [ERROR] Error formatting datetime '2026-17-01T07:51:15': Failed to parse time string (2026-17-01T07:51:15) at position 6 (7): Unexpected character
[2026-01-17 14:00:45] [INFO]   -> Set field 'dispatched' = null
[2026-01-17 14:00:45] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-01-17 14:00:45] [INFO]   -> Found value: 01-17-2026T07:53:03
[2026-01-17 14:00:45] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T07:53:03
[2026-01-17 14:00:45] [ERROR] Error formatting datetime '2026-17-01T07:53:03': Failed to parse time string (2026-17-01T07:53:03) at position 6 (7): Unexpected character
[2026-01-17 14:00:45] [INFO]   -> Set field 'onScene' = null
[2026-01-17 14:00:45] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-01-17 14:00:45] [INFO]   -> Found value: 01-17-2026T07:59:48
[2026-01-17 14:00:45] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T07:59:48
[2026-01-17 14:00:45] [ERROR] Error formatting datetime '2026-17-01T07:59:48': Failed to parse time string (2026-17-01T07:59:48) at position 6 (7): Unexpected character
[2026-01-17 14:00:45] [INFO]   -> Set field 'cleared' = null
[2026-01-17 14:00:45] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T07:59:48
[2026-01-17 14:00:45] [ERROR] Error formatting datetime '2026-17-01T07:59:48': Failed to parse time string (2026-17-01T07:59:48) at position 6 (7): Unexpected character
[2026-01-17 14:00:45] [INFO]   -> Set field 'inService' = null
[2026-01-17 14:00:45] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-01-17 14:00:45] [INFO]   -> Found value: ENG2
[2026-01-17 14:00:45] [INFO]   -> Set field 'cADVehicleID' = "ENG2"
[2026-01-17 14:00:45] [INFO]   -> Set field 'name' = "ENG2"
[2026-01-17 14:00:45] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-01-17 14:00:45] [INFO]   -> Found value: 01-17-2026T07:51:53
[2026-01-17 14:00:45] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T07:51:53
[2026-01-17 14:00:45] [ERROR] Error formatting datetime '2026-17-01T07:51:53': Failed to parse time string (2026-17-01T07:51:53) at position 6 (7): Unexpected character
[2026-01-17 14:00:45] [INFO]   -> Set field 'timeenroutetoscene' = null
[2026-01-17 14:00:45] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-01-17 14:00:45] [INFO]   -> Found value: 01-17-2026T07:53:03
[2026-01-17 14:00:45] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T07:53:03
[2026-01-17 14:00:45] [ERROR] Error formatting datetime '2026-17-01T07:53:03': Failed to parse time string (2026-17-01T07:53:03) at position 6 (7): Unexpected character
[2026-01-17 14:00:45] [INFO]   -> Set field 'timeonscene' = null
[2026-01-17 14:00:45] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-01-17 14:00:45] [INFO]   -> Found value: 01-17-2026T07:59:48
[2026-01-17 14:00:45] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T07:59:48
[2026-01-17 14:00:45] [ERROR] Error formatting datetime '2026-17-01T07:59:48': Failed to parse time string (2026-17-01T07:59:48) at position 6 (7): Unexpected character
[2026-01-17 14:00:45] [INFO]   -> Set field 'timeunitclear' = null
[2026-01-17 14:00:45] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-01-17 14:00:45] [INFO]   -> No value found (null or empty)
[2026-01-17 14:00:45] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-01-17 14:00:45] [INFO]   -> Found value: SDPSFD
[2026-01-17 14:00:45] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-01-17 14:00:45] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-01-17 14:00:45] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-01-17 14:00:45] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-01705","cADNumber":"26-01705","incidentLocationStreetNumber":710,"streetName":"GLENN DR","incidentLocationCity":"SIKESTON","businessName":"NEW DAWN STATE SCHOOL","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-ALARM MECH","dispatchNotes":"01-17-2026 07:49:28|GENERAL FIRE ALARM UNK LOCATION\nDIRECT DISPATCH NO CONTACT MADE WITH THE KEY HOLDER 01-17-2026 07:53:27|ENG2 ADVISED SINGLE STORY STRUCTURE NOTHING SHOWING 01-17-2026 07:54:41|L3 STAGING AT HYDRANT 01-17-2026 07:56:38|ALARM COMPANY RECONTACTED AND STATED THAT THEY SPOKE TO A KEY HOLDER AND STATED THAT THERE ARE CONTRACTORS ON SCENE AND THEY STATED THAT DUST BLEW UP INTO THE SMOKE DETECTORS 01-17-2026 07:59:45|C92 MADE CONTACT WITH SUBJECT ON SCENE FALSE ALARM","cADLog":"01-17-2026 07:49:28|GENERAL FIRE ALARM UNK LOCATION\nDIRECT DISPATCH NO CONTACT MADE WITH THE KEY HOLDER 01-17-2026 07:53:27|ENG2 ADVISED SINGLE STORY STRUCTURE NOTHING SHOWING 01-17-2026 07:54:41|L3 STAGING AT HYDRANT 01-17-2026 07:56:38|ALARM COMPANY RECONTACTED AND STATED THAT THEY SPOKE TO A KEY HOLDER AND STATED THAT THERE ARE CONTRACTORS ON SCENE AND THEY STATED THAT DUST BLEW UP INTO THE SMOKE DETECTORS 01-17-2026 07:59:45|C92 MADE CONTACT WITH SUBJECT ON SCENE FALSE ALARM","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"ENG2","name":"ENG2","timeenroutetoscene":null,"timeonscene":null,"timeunitclear":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-01-17 14:00:45] [INFO] Number of extracted fields: 25
[2026-01-17 14:00:45] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-01-17 14:00:45] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-01-17 14:00:45] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-01-17 14:00:45] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-01-17 14:00:45] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-01-17 14:00:45] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-01-17 14:00:45] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-01-17 14:00:45] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-01-17 14:00:45] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e872e5ae13
[2026-01-17 14:00:47] [INFO] Created new Dispatches record with ID: 696b960de701d7447
[2026-01-17 14:00:47] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01705.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-01-17/SDPSFD_26-01705.xml
[2026-01-17 14:00:47] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01705.xml
[2026-01-17 14:46:22] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01707.xml
[2026-01-17 14:46:22] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01707.xml for user: 68d56363ec1209189
[2026-01-17 14:46:22] [INFO] File size: 2165 bytes
[2026-01-17 14:46:22] [INFO] Created FTPFiles record with ID: 696ba0be729b2dde6
[2026-01-17 14:46:22] [INFO] About to extract fields from XML. File size: 2165 bytes
[2026-01-17 14:46:22] [INFO] Number of mappings: 21
[2026-01-17 14:46:22] [INFO] Starting XML parsing. Content length: 2165
[2026-01-17 14:46:22] [INFO] XML parsed successfully. Root element: Incident
[2026-01-17 14:46:22] [INFO] Processing 21 field mappings
[2026-01-17 14:46:22] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-01-17 14:46:22] [INFO]   -> Found value: 26-01707
[2026-01-17 14:46:22] [INFO]   -> Set field 'dispatchRunNumber' = "26-01707"
[2026-01-17 14:46:22] [INFO]   -> Set field 'cADNumber' = "26-01707"
[2026-01-17 14:46:22] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-01-17 14:46:22] [INFO]   -> Found value: 1551
[2026-01-17 14:46:22] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1551
[2026-01-17 14:46:22] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-01-17 14:46:22] [INFO]   -> Found value: W WAKEFIELD AVE
[2026-01-17 14:46:22] [INFO]   -> Set field 'streetName' = "W WAKEFIELD AVE"
[2026-01-17 14:46:22] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-01-17 14:46:22] [INFO]   -> No value found (null or empty)
[2026-01-17 14:46:22] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-01-17 14:46:22] [INFO]   -> Found value: SIKESTON
[2026-01-17 14:46:22] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-01-17 14:46:22] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-01-17 14:46:22] [INFO]   -> Found value: SIKESTON POWER PLANT
[2026-01-17 14:46:22] [INFO]   -> Set field 'businessName' = "SIKESTON POWER PLANT"
[2026-01-17 14:46:22] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-01-17 14:46:22] [INFO]   -> Found value: MO
[2026-01-17 14:46:22] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-01-17 14:46:22] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-01-17 14:46:22] [INFO]   -> Found value: 63801
[2026-01-17 14:46:22] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-01-17 14:46:22] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-01-17 14:46:22] [INFO]   -> Found value: 0
[2026-01-17 14:46:22] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-01-17 14:46:22] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-01-17 14:46:22] [INFO]   -> Found value: 0
[2026-01-17 14:46:22] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-01-17 14:46:22] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-01-17 14:46:22] [INFO]   -> Found value: ACCIDENT-J2
[2026-01-17 14:46:22] [INFO]   -> Set field 'incidentTypeValue1' = "ACCIDENT-J2"
[2026-01-17 14:46:22] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-01-17 14:46:22] [INFO]   -> Found value: 01-17-2026 08:09:41|Call Received on 01/17/2026 @ 08:09

Location: 2729 STATE HIGHWAY BB

SINGLE VEH...
[2026-01-17 14:46:22] [INFO]   -> Set field 'dispatchNotes' = "01-17-2026 08:09:41|Call Received on 01\/17\/2026 @ 08:09\n\nLocation: 2729 STATE HIGHWAY BB\n\nSINGLE VEH ACCIDENT\n21 YEAR OLD MALE NECK PAIN\n\nBLK BMW 01-17-2026 08:15:37|570 ADVISED NO EXTRICATION NEEDED 01-17-2026 08:15:44|570 ADVISED ENG2 CAN DOWNGRADE 01-17-2026 08:22:30|570 ADVISED TO CALL 10-51 ON CALL 01-17-2026 08:23:31|D&K EN ROUTE 01-17-2026 08:35:54|1512 ADVISED ONE SIGNED REFUSAL 01-17-2026 08:36:39|Disposition - SSCA:  RPT 01-17-2026 08:36:51|Disposition - SSCA UNIT:  RPT 01-17-2026 08:39:31|ENG2 ON SCENE APPROX 10 MIN AGO"
[2026-01-17 14:46:22] [INFO]   -> Set field 'cADLog' = "01-17-2026 08:09:41|Call Received on 01\/17\/2026 @ 08:09\n\nLocation: 2729 STATE HIGHWAY BB\n\nSINGLE VEH ACCIDENT\n21 YEAR OLD MALE NECK PAIN\n\nBLK BMW 01-17-2026 08:15:37|570 ADVISED NO EXTRICATION NEEDED 01-17-2026 08:15:44|570 ADVISED ENG2 CAN DOWNGRADE 01-17-2026 08:22:30|570 ADVISED TO CALL 10-51 ON CALL 01-17-2026 08:23:31|D&K EN ROUTE 01-17-2026 08:35:54|1512 ADVISED ONE SIGNED REFUSAL 01-17-2026 08:36:39|Disposition - SSCA:  RPT 01-17-2026 08:36:51|Disposition - SSCA UNIT:  RPT 01-17-2026 08:39:31|ENG2 ON SCENE APPROX 10 MIN AGO"
[2026-01-17 14:46:22] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-01-17 14:46:22] [INFO]   -> Found value: 01-17-2026T08:12:49
[2026-01-17 14:46:22] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T08:12:49
[2026-01-17 14:46:22] [ERROR] Error formatting datetime '2026-17-01T08:12:49': Failed to parse time string (2026-17-01T08:12:49) at position 6 (7): Unexpected character
[2026-01-17 14:46:22] [INFO]   -> Set field 'alarm' = null
[2026-01-17 14:46:22] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T08:12:49
[2026-01-17 14:46:22] [ERROR] Error formatting datetime '2026-17-01T08:12:49': Failed to parse time string (2026-17-01T08:12:49) at position 6 (7): Unexpected character
[2026-01-17 14:46:22] [INFO]   -> Set field 'dispatched' = null
[2026-01-17 14:46:22] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-01-17 14:46:22] [INFO]   -> Found value: 01-17-2026T08:14:21
[2026-01-17 14:46:22] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T08:14:21
[2026-01-17 14:46:22] [ERROR] Error formatting datetime '2026-17-01T08:14:21': Failed to parse time string (2026-17-01T08:14:21) at position 6 (7): Unexpected character
[2026-01-17 14:46:22] [INFO]   -> Set field 'onScene' = null
[2026-01-17 14:46:22] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-01-17 14:46:22] [INFO]   -> Found value: 01-17-2026T08:45:27
[2026-01-17 14:46:22] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T08:45:27
[2026-01-17 14:46:22] [ERROR] Error formatting datetime '2026-17-01T08:45:27': Failed to parse time string (2026-17-01T08:45:27) at position 6 (7): Unexpected character
[2026-01-17 14:46:22] [INFO]   -> Set field 'cleared' = null
[2026-01-17 14:46:22] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T08:45:27
[2026-01-17 14:46:22] [ERROR] Error formatting datetime '2026-17-01T08:45:27': Failed to parse time string (2026-17-01T08:45:27) at position 6 (7): Unexpected character
[2026-01-17 14:46:22] [INFO]   -> Set field 'inService' = null
[2026-01-17 14:46:22] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-01-17 14:46:22] [INFO]   -> Found value: ENG2
[2026-01-17 14:46:22] [INFO]   -> Set field 'cADVehicleID' = "ENG2"
[2026-01-17 14:46:22] [INFO]   -> Set field 'name' = "ENG2"
[2026-01-17 14:46:22] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-01-17 14:46:22] [INFO]   -> Found value: 01-17-2026T08:13:31
[2026-01-17 14:46:22] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T08:13:31
[2026-01-17 14:46:22] [ERROR] Error formatting datetime '2026-17-01T08:13:31': Failed to parse time string (2026-17-01T08:13:31) at position 6 (7): Unexpected character
[2026-01-17 14:46:22] [INFO]   -> Set field 'timeenroutetoscene' = null
[2026-01-17 14:46:22] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-01-17 14:46:22] [INFO]   -> Found value: 01-17-2026T08:39:18
[2026-01-17 14:46:22] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T08:39:18
[2026-01-17 14:46:22] [ERROR] Error formatting datetime '2026-17-01T08:39:18': Failed to parse time string (2026-17-01T08:39:18) at position 6 (7): Unexpected character
[2026-01-17 14:46:22] [INFO]   -> Set field 'timeonscene' = null
[2026-01-17 14:46:22] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-01-17 14:46:22] [INFO]   -> Found value: 01-17-2026T08:45:27
[2026-01-17 14:46:22] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T08:45:27
[2026-01-17 14:46:22] [ERROR] Error formatting datetime '2026-17-01T08:45:27': Failed to parse time string (2026-17-01T08:45:27) at position 6 (7): Unexpected character
[2026-01-17 14:46:22] [INFO]   -> Set field 'timeunitclear' = null
[2026-01-17 14:46:22] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-01-17 14:46:22] [INFO]   -> No value found (null or empty)
[2026-01-17 14:46:22] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-01-17 14:46:22] [INFO]   -> Found value: SDPSFD
[2026-01-17 14:46:22] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-01-17 14:46:22] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-01-17 14:46:22] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-01-17 14:46:22] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-01707","cADNumber":"26-01707","incidentLocationStreetNumber":1551,"streetName":"W WAKEFIELD AVE","incidentLocationCity":"SIKESTON","businessName":"SIKESTON POWER PLANT","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"ACCIDENT-J2","dispatchNotes":"01-17-2026 08:09:41|Call Received on 01\/17\/2026 @ 08:09\n\nLocation: 2729 STATE HIGHWAY BB\n\nSINGLE VEH ACCIDENT\n21 YEAR OLD MALE NECK PAIN\n\nBLK BMW 01-17-2026 08:15:37|570 ADVISED NO EXTRICATION NEEDED 01-17-2026 08:15:44|570 ADVISED ENG2 CAN DOWNGRADE 01-17-2026 08:22:30|570 ADVISED TO CALL 10-51 ON CALL 01-17-2026 08:23:31|D&K EN ROUTE 01-17-2026 08:35:54|1512 ADVISED ONE SIGNED REFUSAL 01-17-2026 08:36:39|Disposition - SSCA:  RPT 01-17-2026 08:36:51|Disposition - SSCA UNIT:  RPT 01-17-2026 08:39:31|ENG2 ON SCENE APPROX 10 MIN AGO","cADLog":"01-17-2026 08:09:41|Call Received on 01\/17\/2026 @ 08:09\n\nLocation: 2729 STATE HIGHWAY BB\n\nSINGLE VEH ACCIDENT\n21 YEAR OLD MALE NECK PAIN\n\nBLK BMW 01-17-2026 08:15:37|570 ADVISED NO EXTRICATION NEEDED 01-17-2026 08:15:44|570 ADVISED ENG2 CAN DOWNGRADE 01-17-2026 08:22:30|570 ADVISED TO CALL 10-51 ON CALL 01-17-2026 08:23:31|D&K EN ROUTE 01-17-2026 08:35:54|1512 ADVISED ONE SIGNED REFUSAL 01-17-2026 08:36:39|Disposition - SSCA:  RPT 01-17-2026 08:36:51|Disposition - SSCA UNIT:  RPT 01-17-2026 08:39:31|ENG2 ON SCENE APPROX 10 MIN AGO","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"ENG2","name":"ENG2","timeenroutetoscene":null,"timeonscene":null,"timeunitclear":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-01-17 14:46:22] [INFO] Number of extracted fields: 25
[2026-01-17 14:46:22] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-01-17 14:46:22] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-01-17 14:46:22] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-01-17 14:46:22] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-01-17 14:46:22] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-01-17 14:46:22] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-01-17 14:46:22] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-01-17 14:46:22] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-01-17 14:46:22] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e87be42b7c
[2026-01-17 14:46:24] [INFO] Created new Dispatches record with ID: 696ba0bf31b6cae5d
[2026-01-17 14:46:24] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01707.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-01-17/SDPSFD_26-01707.xml
[2026-01-17 14:46:24] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01707.xml
[2026-01-17 15:40:16] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006251_20260117_154016.XML
[2026-01-17 15:40:16] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006251_20260117_154016.XML for user: 68f1466aed072ad4a
[2026-01-17 15:40:16] [INFO] File size: 5017 bytes
[2026-01-17 15:40:16] [INFO] Created FTPFiles record with ID: 696bad605bc55629d
[2026-01-17 15:40:16] [INFO] About to extract fields from XML. File size: 5017 bytes
[2026-01-17 15:40:16] [INFO] Number of mappings: 28
[2026-01-17 15:40:16] [INFO] Starting XML parsing. Content length: 5017
[2026-01-17 15:40:16] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-17 15:40:16] [INFO] Processing 28 field mappings
[2026-01-17 15:40:16] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-17 15:40:16] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-17 15:40:16] [INFO]   -> Found value: PCFD
[2026-01-17 15:40:16] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-01-17 15:40:16] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-17 15:40:16] [INFO]   -> Found value: 2026000151
[2026-01-17 15:40:16] [INFO]   -> Set field 'incidentInternalId' = "2026000151"
[2026-01-17 15:40:16] [INFO]   -> Set field 'dispatchRunNumber' = "2026000151"
[2026-01-17 15:40:16] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-17 15:40:16] [INFO]   -> Found value: FIRE ALARM
[2026-01-17 15:40:16] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-01-17 15:40:16] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-17 15:40:16] [INFO]   -> Found value: 5144
[2026-01-17 15:40:16] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5144
[2026-01-17 15:40:16] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-17 15:40:16] [INFO]   -> Found value: TN
[2026-01-17 15:40:16] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-17 15:40:16] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-17 15:40:16] [INFO]   -> Found value: 38544
[2026-01-17 15:40:16] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-01-17 15:40:16] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-17 15:40:16] [INFO]   -> Found value: TOTALLY KIDZ DAYCARE
[2026-01-17 15:40:16] [INFO]   -> Set field 'businessName' = "TOTALLY KIDZ DAYCARE"
[2026-01-17 15:40:16] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-17 15:40:16] [INFO]   -> No value found (null or empty)
[2026-01-17 15:40:16] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-17 15:40:16] [INFO]   -> Found value: 36.16982
[2026-01-17 15:40:16] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1698200000000014142642612569034099578857421875
[2026-01-17 15:40:16] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-17 15:40:16] [INFO]   -> Found value: -85.60500
[2026-01-17 15:40:16] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6050000000000039790393202565610408782958984375
[2026-01-17 15:40:16] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-17 15:40:16] [INFO]   -> Found value: 2026-01-17 09:38:41
[2026-01-17 15:40:16] [INFO]   -> Set field 'alarm' = "2026-01-17 09:38:41"
[2026-01-17 15:40:16] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-17 15:40:16] [INFO]   -> Found value: 2026-01-17 09:40:06
[2026-01-17 15:40:16] [INFO]   -> Set field 'dispatched' = "2026-01-17 09:40:06"
[2026-01-17 15:40:16] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-17 15:40:16] [INFO]   -> No value found (null or empty)
[2026-01-17 15:40:16] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-17 15:40:16] [INFO]   -> No value found (null or empty)
[2026-01-17 15:40:16] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-17 15:40:16] [INFO]   -> No value found (null or empty)
[2026-01-17 15:40:16] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-17 15:40:16] [INFO]   -> Found value: WEST GATE RD/LEFFEW RD
[2026-01-17 15:40:16] [INFO]   -> Set field 'incidentLocationCross' = "WEST GATE RD\/LEFFEW RD"
[2026-01-17 15:40:16] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-17 15:40:16] [INFO]   -> Found value: EN31
[2026-01-17 15:40:16] [INFO]   -> Set field 'cADVehicleID' = "EN31"
[2026-01-17 15:40:16] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-17 15:40:16] [INFO]   -> Found value: 2026-01-17 09:40:06
[2026-01-17 15:40:16] [INFO]   -> Set field 'timedispatch' = "2026-01-17 09:40:06"
[2026-01-17 15:40:16] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-17 15:40:16] [INFO]   -> No value found (null or empty)
[2026-01-17 15:40:16] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-17 15:40:16] [INFO]   -> No value found (null or empty)
[2026-01-17 15:40:16] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-17 15:40:16] [INFO]   -> No value found (null or empty)
[2026-01-17 15:40:16] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-17 15:40:16] [INFO]   -> No value found (null or empty)
[2026-01-17 15:40:16] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-17 15:40:16] [INFO]   -> Found value: 20260006251
[2026-01-17 15:40:16] [INFO]   -> Set field 'policeReportNumber' = "20260006251"
[2026-01-17 15:40:16] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-17 15:40:16] [INFO]   -> Found value: FIRE SMOKE DETECTOR KH LISTED DANIELLE HUGHES 704-9312  [01/17/26 09:39:14 MCLAYBURN2]]
[2026-01-17 15:40:16] [INFO]   -> Set field 'dispatchNotes' = "FIRE SMOKE DETECTOR KH LISTED DANIELLE HUGHES 704-9312  [01\/17\/26 09:39:14 MCLAYBURN2]]"
[2026-01-17 15:40:16] [INFO]   -> Set field 'cADLog' = "FIRE SMOKE DETECTOR KH LISTED DANIELLE HUGHES 704-9312  [01\/17\/26 09:39:14 MCLAYBURN2]]"
[2026-01-17 15:40:16] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-17 15:40:16] [INFO]   -> Found value: BAXTER
[2026-01-17 15:40:16] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-01-17 15:40:16] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-17 15:40:16] [INFO]   -> Found value: NASHVILLE
[2026-01-17 15:40:16] [INFO]   -> Set field 'streetName' = "NASHVILLE"
[2026-01-17 15:40:16] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-17 15:40:16] [INFO]   -> Found value: HWY
[2026-01-17 15:40:16] [INFO]   -> Set field 'streetType' = "HWY"
[2026-01-17 15:40:16] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-17 15:40:16] [INFO]   -> Found value: 5144 NASHVILLE HWY
[2026-01-17 15:40:16] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "5144 NASHVILLE HWY"
[2026-01-17 15:40:16] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-01-17 15:40:16] [INFO] Concatenating street name and type
[2026-01-17 15:40:16] [INFO]   -> Combined street name: NASHVILLE HWY
[2026-01-17 15:40:16] [INFO] Built locationCoordinates from lat/lng: 36.16982,-85.605
[2026-01-17 15:40:16] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000151","dispatchRunNumber":"2026000151","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":5144,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"businessName":"TOTALLY KIDZ DAYCARE","nERISIncidentLatitude":36.1698200000000014142642612569034099578857421875,"nERISIncidentLongitude":-85.6050000000000039790393202565610408782958984375,"alarm":"2026-01-17 09:38:41","dispatched":"2026-01-17 09:40:06","incidentLocationCross":"WEST GATE RD\/LEFFEW RD","cADVehicleID":"EN31","timedispatch":"2026-01-17 09:40:06","policeReportNumber":"20260006251","dispatchNotes":"FIRE SMOKE DETECTOR KH LISTED DANIELLE HUGHES 704-9312  [01\/17\/26 09:39:14 MCLAYBURN2]]","cADLog":"FIRE SMOKE DETECTOR KH LISTED DANIELLE HUGHES 704-9312  [01\/17\/26 09:39:14 MCLAYBURN2]]","incidentLocationCity":"BAXTER","streetName":"NASHVILLE HWY","incidentAddressTextVersionStreet":"5144 NASHVILLE HWY","locationCoordinates":"36.16982,-85.605"}
[2026-01-17 15:40:16] [INFO] Number of extracted fields: 22
[2026-01-17 15:40:16] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-01-17 15:40:16] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-01-17 15:40:16] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-01-17 15:40:16] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-01-17 15:40:16] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-01-17 15:40:16] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-01-17 15:40:16] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-01-17 15:40:16] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-01-17 15:40:16] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-01-17 15:40:25] [INFO] Created new Dispatches record with ID: 696bad61225b38c60
[2026-01-17 15:40:25] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006251_20260117_154016.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-17/PCFD_20260006251_20260117_154016.XML
[2026-01-17 15:40:25] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006251_20260117_154016.XML
[2026-01-17 15:55:35] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006258_20260117_155535.XML
[2026-01-17 15:55:35] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006258_20260117_155535.XML for user: 68f1466aed072ad4a
[2026-01-17 15:55:35] [INFO] File size: 4574 bytes
[2026-01-17 15:55:36] [INFO] Created FTPFiles record with ID: 696bb0f81255a66ca
[2026-01-17 15:55:36] [INFO] About to extract fields from XML. File size: 4574 bytes
[2026-01-17 15:55:36] [INFO] Number of mappings: 28
[2026-01-17 15:55:36] [INFO] Starting XML parsing. Content length: 4574
[2026-01-17 15:55:36] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-17 15:55:36] [INFO] Processing 28 field mappings
[2026-01-17 15:55:36] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-17 15:55:36] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-17 15:55:36] [INFO]   -> Found value: PCFD
[2026-01-17 15:55:36] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-01-17 15:55:36] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-17 15:55:36] [INFO]   -> Found value: 2026000152
[2026-01-17 15:55:36] [INFO]   -> Set field 'incidentInternalId' = "2026000152"
[2026-01-17 15:55:36] [INFO]   -> Set field 'dispatchRunNumber' = "2026000152"
[2026-01-17 15:55:36] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-17 15:55:36] [INFO]   -> Found value: FIRE ALARM
[2026-01-17 15:55:36] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-01-17 15:55:36] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-17 15:55:36] [INFO]   -> Found value: 2215
[2026-01-17 15:55:36] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2215
[2026-01-17 15:55:36] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-17 15:55:36] [INFO]   -> Found value: TN
[2026-01-17 15:55:36] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-17 15:55:36] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-17 15:55:36] [INFO]   -> Found value: 38506
[2026-01-17 15:55:36] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-01-17 15:55:36] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-17 15:55:36] [INFO]   -> No value found (null or empty)
[2026-01-17 15:55:36] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-17 15:55:36] [INFO]   -> No value found (null or empty)
[2026-01-17 15:55:36] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-17 15:55:36] [INFO]   -> Found value: 36.13592
[2026-01-17 15:55:36] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.13591999999999870851752348244190216064453125
[2026-01-17 15:55:36] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-17 15:55:36] [INFO]   -> Found value: -85.42376
[2026-01-17 15:55:36] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4237600000000014688339433632791042327880859375
[2026-01-17 15:55:36] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-17 15:55:36] [INFO]   -> Found value: 2026-01-17 09:54:10
[2026-01-17 15:55:36] [INFO]   -> Set field 'alarm' = "2026-01-17 09:54:10"
[2026-01-17 15:55:36] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-17 15:55:36] [INFO]   -> Found value: 2026-01-17 09:55:31
[2026-01-17 15:55:36] [INFO]   -> Set field 'dispatched' = "2026-01-17 09:55:31"
[2026-01-17 15:55:36] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-17 15:55:36] [INFO]   -> No value found (null or empty)
[2026-01-17 15:55:36] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-17 15:55:36] [INFO]   -> No value found (null or empty)
[2026-01-17 15:55:36] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-17 15:55:36] [INFO]   -> No value found (null or empty)
[2026-01-17 15:55:36] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-17 15:55:36] [INFO]   -> Found value: ROCKY POINT RD/JUANITA DR
[2026-01-17 15:55:36] [INFO]   -> Set field 'incidentLocationCross' = "ROCKY POINT RD\/JUANITA DR"
[2026-01-17 15:55:36] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-17 15:55:36] [INFO]   -> Found value: TK15
[2026-01-17 15:55:36] [INFO]   -> Set field 'cADVehicleID' = "TK15"
[2026-01-17 15:55:36] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-17 15:55:36] [INFO]   -> Found value: 2026-01-17 09:55:31
[2026-01-17 15:55:36] [INFO]   -> Set field 'timedispatch' = "2026-01-17 09:55:31"
[2026-01-17 15:55:36] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-17 15:55:36] [INFO]   -> No value found (null or empty)
[2026-01-17 15:55:36] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-17 15:55:36] [INFO]   -> No value found (null or empty)
[2026-01-17 15:55:36] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-17 15:55:36] [INFO]   -> No value found (null or empty)
[2026-01-17 15:55:36] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-17 15:55:36] [INFO]   -> No value found (null or empty)
[2026-01-17 15:55:36] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-17 15:55:36] [INFO]   -> Found value: 20260006258
[2026-01-17 15:55:36] [INFO]   -> Set field 'policeReportNumber' = "20260006258"
[2026-01-17 15:55:36] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-17 15:55:36] [INFO]   -> Found value: RESIDENTAL FIRE ALARM  ZONE 16 LIVINGROOM SMOKE ALARM  KH FRANCIS ABBATEMARCO 917-747-6851  [01/17/2...
[2026-01-17 15:55:36] [INFO]   -> Set field 'dispatchNotes' = "RESIDENTAL FIRE ALARM  ZONE 16 LIVINGROOM SMOKE ALARM  KH FRANCIS ABBATEMARCO 917-747-6851  [01\/17\/26 09:55:00 KBURTON]]"
[2026-01-17 15:55:36] [INFO]   -> Set field 'cADLog' = "RESIDENTAL FIRE ALARM  ZONE 16 LIVINGROOM SMOKE ALARM  KH FRANCIS ABBATEMARCO 917-747-6851  [01\/17\/26 09:55:00 KBURTON]]"
[2026-01-17 15:55:36] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-17 15:55:36] [INFO]   -> Found value: COOKEVILLE
[2026-01-17 15:55:36] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-01-17 15:55:36] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-17 15:55:36] [INFO]   -> Found value: SHELBY
[2026-01-17 15:55:36] [INFO]   -> Set field 'streetName' = "SHELBY"
[2026-01-17 15:55:36] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-17 15:55:36] [INFO]   -> Found value: DR
[2026-01-17 15:55:36] [INFO]   -> Set field 'streetType' = "DR"
[2026-01-17 15:55:36] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-17 15:55:36] [INFO]   -> Found value: 2215 SHELBY DR
[2026-01-17 15:55:36] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2215 SHELBY DR"
[2026-01-17 15:55:36] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-01-17 15:55:36] [INFO] Concatenating street name and type
[2026-01-17 15:55:36] [INFO]   -> Combined street name: SHELBY DR
[2026-01-17 15:55:36] [INFO] Built locationCoordinates from lat/lng: 36.13592,-85.42376
[2026-01-17 15:55:36] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000152","dispatchRunNumber":"2026000152","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":2215,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.13591999999999870851752348244190216064453125,"nERISIncidentLongitude":-85.4237600000000014688339433632791042327880859375,"alarm":"2026-01-17 09:54:10","dispatched":"2026-01-17 09:55:31","incidentLocationCross":"ROCKY POINT RD\/JUANITA DR","cADVehicleID":"TK15","timedispatch":"2026-01-17 09:55:31","policeReportNumber":"20260006258","dispatchNotes":"RESIDENTAL FIRE ALARM  ZONE 16 LIVINGROOM SMOKE ALARM  KH FRANCIS ABBATEMARCO 917-747-6851  [01\/17\/26 09:55:00 KBURTON]]","cADLog":"RESIDENTAL FIRE ALARM  ZONE 16 LIVINGROOM SMOKE ALARM  KH FRANCIS ABBATEMARCO 917-747-6851  [01\/17\/26 09:55:00 KBURTON]]","incidentLocationCity":"COOKEVILLE","streetName":"SHELBY DR","incidentAddressTextVersionStreet":"2215 SHELBY DR","locationCoordinates":"36.13592,-85.42376"}
[2026-01-17 15:55:36] [INFO] Number of extracted fields: 21
[2026-01-17 15:55:36] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-01-17 15:55: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-01-17 15:55:36] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-01-17 15:55:36] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-01-17 15:55:36] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-01-17 15:55:36] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-01-17 15:55:36] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-01-17 15:55:36] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-01-17 15:55:36] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-01-17 15:55:44] [INFO] Created new Dispatches record with ID: 696bb0f8c0c758af9
[2026-01-17 15:55:44] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006258_20260117_155535.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-17/PCFD_20260006258_20260117_155535.XML
[2026-01-17 15:55:44] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006258_20260117_155535.XML
[2026-01-17 16:30:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-01710.xml
[2026-01-17 16:30:46] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-01710.xml for user: 68d56363ec1209189
[2026-01-17 16:30:46] [INFO] File size: 1447 bytes
[2026-01-17 16:30:46] [INFO] Created FTPFiles record with ID: 696bb936defab1ba3
[2026-01-17 16:30:46] [INFO] About to extract fields from XML. File size: 1447 bytes
[2026-01-17 16:30:46] [INFO] Number of mappings: 21
[2026-01-17 16:30:46] [INFO] Starting XML parsing. Content length: 1447
[2026-01-17 16:30:46] [INFO] XML parsed successfully. Root element: Incident
[2026-01-17 16:30:46] [INFO] Processing 21 field mappings
[2026-01-17 16:30:46] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-01-17 16:30:46] [INFO]   -> Found value: 26-01710
[2026-01-17 16:30:46] [INFO]   -> Set field 'dispatchRunNumber' = "26-01710"
[2026-01-17 16:30:46] [INFO]   -> Set field 'cADNumber' = "26-01710"
[2026-01-17 16:30:46] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-01-17 16:30:46] [INFO]   -> Found value: 558
[2026-01-17 16:30:46] [INFO]   -> Set field 'incidentLocationStreetNumber' = 558
[2026-01-17 16:30:46] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-01-17 16:30:46] [INFO]   -> Found value: COUNTY HIGHWAY 405
[2026-01-17 16:30:46] [INFO]   -> Set field 'streetName' = "COUNTY HIGHWAY 405"
[2026-01-17 16:30:46] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-01-17 16:30:46] [INFO]   -> No value found (null or empty)
[2026-01-17 16:30:46] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-01-17 16:30:46] [INFO]   -> Found value: SIKESTON
[2026-01-17 16:30:46] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-01-17 16:30:46] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-01-17 16:30:46] [INFO]   -> No value found (null or empty)
[2026-01-17 16:30:46] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-01-17 16:30:46] [INFO]   -> No value found (null or empty)
[2026-01-17 16:30:46] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-01-17 16:30:46] [INFO]   -> No value found (null or empty)
[2026-01-17 16:30:46] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-01-17 16:30:46] [INFO]   -> Found value: 0
[2026-01-17 16:30:46] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-01-17 16:30:46] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-01-17 16:30:46] [INFO]   -> Found value: 0
[2026-01-17 16:30:46] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-01-17 16:30:46] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-01-17 16:30:46] [INFO]   -> Found value: RESPIRATORY DISTRESS
[2026-01-17 16:30:46] [INFO]   -> Set field 'incidentTypeValue1' = "RESPIRATORY DISTRESS"
[2026-01-17 16:30:46] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-01-17 16:30:46] [INFO]   -> Found value: 01-17-2026 08:41:24|41YO MALE SWELLING IN FACE, HANDS A FEET AND DIFFICULTY BREATHING
GASPING FOR AI...
[2026-01-17 16:30:46] [INFO]   -> Set field 'dispatchNotes' = "01-17-2026 08:41:24|41YO MALE SWELLING IN FACE, HANDS A FEET AND DIFFICULTY BREATHING\nGASPING FOR AIR\nHAS HEART CONDITION"
[2026-01-17 16:30:46] [INFO]   -> Set field 'cADLog' = "01-17-2026 08:41:24|41YO MALE SWELLING IN FACE, HANDS A FEET AND DIFFICULTY BREATHING\nGASPING FOR AIR\nHAS HEART CONDITION"
[2026-01-17 16:30:46] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-01-17 16:30:46] [INFO]   -> Found value: 01-17-2026T08:41:57
[2026-01-17 16:30:46] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T08:41:57
[2026-01-17 16:30:46] [ERROR] Error formatting datetime '2026-17-01T08:41:57': Failed to parse time string (2026-17-01T08:41:57) at position 6 (7): Unexpected character
[2026-01-17 16:30:46] [INFO]   -> Set field 'alarm' = null
[2026-01-17 16:30:46] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T08:41:57
[2026-01-17 16:30:46] [ERROR] Error formatting datetime '2026-17-01T08:41:57': Failed to parse time string (2026-17-01T08:41:57) at position 6 (7): Unexpected character
[2026-01-17 16:30:46] [INFO]   -> Set field 'dispatched' = null
[2026-01-17 16:30:46] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-01-17 16:30:46] [INFO]   -> Found value: 01-17-2026T09:48:51
[2026-01-17 16:30:46] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T09:48:51
[2026-01-17 16:30:46] [ERROR] Error formatting datetime '2026-17-01T09:48:51': Failed to parse time string (2026-17-01T09:48:51) at position 6 (7): Unexpected character
[2026-01-17 16:30:46] [INFO]   -> Set field 'onScene' = null
[2026-01-17 16:30:46] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-01-17 16:30:46] [INFO]   -> Found value: 01-17-2026T10:29:34
[2026-01-17 16:30:46] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T10:29:34
[2026-01-17 16:30:46] [ERROR] Error formatting datetime '2026-17-01T10:29:34': Failed to parse time string (2026-17-01T10:29:34) at position 6 (7): Unexpected character
[2026-01-17 16:30:46] [INFO]   -> Set field 'cleared' = null
[2026-01-17 16:30:46] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T10:29:34
[2026-01-17 16:30:46] [ERROR] Error formatting datetime '2026-17-01T10:29:34': Failed to parse time string (2026-17-01T10:29:34) at position 6 (7): Unexpected character
[2026-01-17 16:30:46] [INFO]   -> Set field 'inService' = null
[2026-01-17 16:30:46] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-01-17 16:30:46] [INFO]   -> Found value: RURAL PAGE
[2026-01-17 16:30:46] [INFO]   -> Set field 'cADVehicleID' = "RURAL PAGE"
[2026-01-17 16:30:46] [INFO]   -> Set field 'name' = "RURAL PAGE"
[2026-01-17 16:30:46] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-01-17 16:30:46] [INFO]   -> No value found (null or empty)
[2026-01-17 16:30:46] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-01-17 16:30:46] [INFO]   -> No value found (null or empty)
[2026-01-17 16:30:46] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-01-17 16:30:46] [INFO]   -> Found value: 01-17-2026T10:29:34
[2026-01-17 16:30:46] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T10:29:34
[2026-01-17 16:30:46] [ERROR] Error formatting datetime '2026-17-01T10:29:34': Failed to parse time string (2026-17-01T10:29:34) at position 6 (7): Unexpected character
[2026-01-17 16:30:46] [INFO]   -> Set field 'timeunitclear' = null
[2026-01-17 16:30:46] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-01-17 16:30:46] [INFO]   -> Found value: 01-17-2026T08:41:57
[2026-01-17 16:30:46] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T08:41:57
[2026-01-17 16:30:46] [ERROR] Error formatting datetime '2026-17-01T08:41:57': Failed to parse time string (2026-17-01T08:41:57) at position 6 (7): Unexpected character
[2026-01-17 16:30:46] [INFO]   -> Set field 'timedispatch' = null
[2026-01-17 16:30:46] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-01-17 16:30:46] [INFO]   -> Found value: SCRFD
[2026-01-17 16:30:46] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2026-01-17 16:30:46] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-01-17 16:30:46] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-01-17 16:30:46] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-01710","cADNumber":"26-01710","incidentLocationStreetNumber":558,"streetName":"COUNTY HIGHWAY 405","incidentLocationCity":"SIKESTON","nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"RESPIRATORY DISTRESS","dispatchNotes":"01-17-2026 08:41:24|41YO MALE SWELLING IN FACE, HANDS A FEET AND DIFFICULTY BREATHING\nGASPING FOR AIR\nHAS HEART CONDITION","cADLog":"01-17-2026 08:41:24|41YO MALE SWELLING IN FACE, HANDS A FEET AND DIFFICULTY BREATHING\nGASPING FOR AIR\nHAS HEART CONDITION","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"RURAL PAGE","name":"RURAL PAGE","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2026-01-17 16:30:46] [INFO] Number of extracted fields: 21
[2026-01-17 16:30:46] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2026-01-17 16:30:46] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SCRFD', Parsed IDs = ["SCRFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-01-17 16:30:46] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2026-01-17 16:30:46] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (index 0) within mailbox's assigned agencies
[2026-01-17 16:30:47] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) at INDEX 0 based on AgencyCode 'SCRFD'
[2026-01-17 16:30:47] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2026-01-17 16:30:47] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"], matchedAgencyIndex = 0
[2026-01-17 16:30:47] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2026-01-17 16:30:47] [INFO] Found existing IncidentTypeMapping with ID: 694459012cb7ddd64
[2026-01-17 16:30:47] [INFO] Found existing Dispatch with cADNumber '26-01710', ID: 696b9fe209d8e7c7b - will update instead of create
[2026-01-17 16:30:47] [INFO] Updated existing Dispatches record with ID: 696b9fe209d8e7c7b
[2026-01-17 16:30:47] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-01710.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-01-17/SCRFD_26-01710.xml
[2026-01-17 16:30:47] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-01710.xml
[2026-01-17 18:23:16] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006296_20260117_182316.XML
[2026-01-17 18:23:16] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006296_20260117_182316.XML for user: 68f1466aed072ad4a
[2026-01-17 18:23:16] [INFO] File size: 5122 bytes
[2026-01-17 18:23:16] [INFO] Created FTPFiles record with ID: 696bd3948d7d462c6
[2026-01-17 18:23:16] [INFO] About to extract fields from XML. File size: 5122 bytes
[2026-01-17 18:23:16] [INFO] Number of mappings: 28
[2026-01-17 18:23:16] [INFO] Starting XML parsing. Content length: 5122
[2026-01-17 18:23:16] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-17 18:23:16] [INFO] Processing 28 field mappings
[2026-01-17 18:23:16] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-17 18:23:16] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-17 18:23:16] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-01-17 18:23:16] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-01-17 18:23:16] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-01-17 18:23:16] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-01-17 18:23:16] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-17 18:23:16] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-01-17 18:23:16] [INFO]   -> Found value: 2026000153
[2026-01-17 18:23:16] [INFO]   -> Set field 'incidentInternalId' = "2026000153"
[2026-01-17 18:23:16] [INFO]   -> Set field 'dispatchRunNumber' = "2026000153"
[2026-01-17 18:23:16] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-17 18:23:16] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-01-17 18:23:16] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-01-17 18:23:16] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-17 18:23:16] [INFO]   -> Found value: 3084
[2026-01-17 18:23:16] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3084
[2026-01-17 18:23:16] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-17 18:23:16] [INFO]   -> Found value: TN
[2026-01-17 18:23:16] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-17 18:23:16] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-17 18:23:16] [INFO]   -> Found value: 38501
[2026-01-17 18:23:16] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-01-17 18:23:16] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-17 18:23:16] [INFO]   -> No value found (null or empty)
[2026-01-17 18:23:16] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-17 18:23:16] [INFO]   -> No value found (null or empty)
[2026-01-17 18:23:16] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-17 18:23:16] [INFO]   -> Found value: 36.22128
[2026-01-17 18:23:16] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.22128000000000014324541552923619747161865234375
[2026-01-17 18:23:16] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-17 18:23:16] [INFO]   -> Found value: -85.56018
[2026-01-17 18:23:16] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.56018000000000256477505899965763092041015625
[2026-01-17 18:23:16] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-17 18:23:16] [INFO]   -> Found value: 2026-01-17 12:22:41
[2026-01-17 18:23:16] [INFO]   -> Set field 'alarm' = "2026-01-17 12:22:41"
[2026-01-17 18:23:16] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-17 18:23:16] [INFO]   -> Found value: 2026-01-17 12:23:05
[2026-01-17 18:23:16] [INFO]   -> Set field 'dispatched' = "2026-01-17 12:23:05"
[2026-01-17 18:23:16] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-17 18:23:16] [INFO]   -> No value found (null or empty)
[2026-01-17 18:23:16] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-17 18:23:16] [INFO]   -> No value found (null or empty)
[2026-01-17 18:23:16] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-17 18:23:16] [INFO]   -> No value found (null or empty)
[2026-01-17 18:23:16] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-17 18:23:16] [INFO]   -> Found value: GAINESBORO GRADE
[2026-01-17 18:23:16] [INFO]   -> Set field 'incidentLocationCross' = "GAINESBORO GRADE"
[2026-01-17 18:23:16] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-17 18:23:16] [INFO]   -> Found value: PCFR
[2026-01-17 18:23:16] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-01-17 18:23:16] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-17 18:23:16] [INFO]   -> Found value: 2026-01-17 12:23:05
[2026-01-17 18:23:16] [INFO]   -> Set field 'timedispatch' = "2026-01-17 12:23:05"
[2026-01-17 18:23:16] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-17 18:23:16] [INFO]   -> No value found (null or empty)
[2026-01-17 18:23:16] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-17 18:23:16] [INFO]   -> No value found (null or empty)
[2026-01-17 18:23:16] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-17 18:23:16] [INFO]   -> No value found (null or empty)
[2026-01-17 18:23:16] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-17 18:23:16] [INFO]   -> No value found (null or empty)
[2026-01-17 18:23:16] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-17 18:23:16] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-01-17 18:23:16] [INFO]   -> Found value: 20260006296
[2026-01-17 18:23:16] [INFO]   -> Set field 'policeReportNumber' = "20260006296"
[2026-01-17 18:23:16] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-17 18:23:16] [INFO]   -> Found value: Event spawned from BREATHING PROBLEMS.  [01/17/2026 12:22:41 KBURTON] SHORTNESS OF BREATH  UTI OR KI...
[2026-01-17 18:23:16] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from BREATHING PROBLEMS.  [01\/17\/2026 12:22:41 KBURTON] SHORTNESS OF BREATH  UTI OR KIDNEY INFECTION  HEART PT  NICHOLASON  PAMALA  63M YOF  [01\/17\/26 12:22:36 KBURTON]"
[2026-01-17 18:23:16] [INFO]   -> Set field 'cADLog' = "Event spawned from BREATHING PROBLEMS.  [01\/17\/2026 12:22:41 KBURTON] SHORTNESS OF BREATH  UTI OR KIDNEY INFECTION  HEART PT  NICHOLASON  PAMALA  63M YOF  [01\/17\/26 12:22:36 KBURTON]"
[2026-01-17 18:23:16] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-17 18:23:16] [INFO]   -> Found value: COOKEVILLE
[2026-01-17 18:23:16] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-01-17 18:23:16] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-17 18:23:16] [INFO]   -> Found value: OAK TRACE
[2026-01-17 18:23:16] [INFO]   -> Set field 'streetName' = "OAK TRACE"
[2026-01-17 18:23:16] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-17 18:23:16] [INFO]   -> Found value: LN
[2026-01-17 18:23:16] [INFO]   -> Set field 'streetType' = "LN"
[2026-01-17 18:23:16] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-17 18:23:16] [INFO]   -> Found value: 3084 OAK TRACE LN
[2026-01-17 18:23:16] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3084 OAK TRACE LN"
[2026-01-17 18:23:16] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-01-17 18:23:16] [INFO] Concatenating street name and type
[2026-01-17 18:23:16] [INFO]   -> Combined street name: OAK TRACE LN
[2026-01-17 18:23:16] [INFO] Built locationCoordinates from lat/lng: 36.22128,-85.56018
[2026-01-17 18:23:16] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000153","dispatchRunNumber":"2026000153","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":3084,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.22128000000000014324541552923619747161865234375,"nERISIncidentLongitude":-85.56018000000000256477505899965763092041015625,"alarm":"2026-01-17 12:22:41","dispatched":"2026-01-17 12:23:05","incidentLocationCross":"GAINESBORO GRADE","cADVehicleID":"PCFR","timedispatch":"2026-01-17 12:23:05","policeReportNumber":"20260006296","dispatchNotes":"Event spawned from BREATHING PROBLEMS.  [01\/17\/2026 12:22:41 KBURTON] SHORTNESS OF BREATH  UTI OR KIDNEY INFECTION  HEART PT  NICHOLASON  PAMALA  63M YOF  [01\/17\/26 12:22:36 KBURTON]","cADLog":"Event spawned from BREATHING PROBLEMS.  [01\/17\/2026 12:22:41 KBURTON] SHORTNESS OF BREATH  UTI OR KIDNEY INFECTION  HEART PT  NICHOLASON  PAMALA  63M YOF  [01\/17\/26 12:22:36 KBURTON]","incidentLocationCity":"COOKEVILLE","streetName":"OAK TRACE LN","incidentAddressTextVersionStreet":"3084 OAK TRACE LN","locationCoordinates":"36.22128,-85.56018"}
[2026-01-17 18:23:16] [INFO] Number of extracted fields: 21
[2026-01-17 18:23:16] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-01-17 18:23: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-01-17 18:23:16] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-01-17 18:23:16] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-01-17 18:23:16] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-01-17 18:23:16] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-01-17 18:23:16] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-01-17 18:23:16] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-01-17 18:23:16] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-01-17 18:23:16] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-01-17 18:23:16] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-01-17 18:23:17] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-01-17 18:23:25] [INFO] Created new Dispatches record with ID: 696bd39550c472675
[2026-01-17 18:23:25] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006296_20260117_182316.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-17/PCFD_20260006296_20260117_182316.XML
[2026-01-17 18:23:25] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006296_20260117_182316.XML
[2026-01-17 20:36:09] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01726.xml
[2026-01-17 20:36:09] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01726.xml for user: 68d56363ec1209189
[2026-01-17 20:36:09] [INFO] File size: 2432 bytes
[2026-01-17 20:36:09] [INFO] Created FTPFiles record with ID: 696bf2b9b580c68dc
[2026-01-17 20:36:09] [INFO] About to extract fields from XML. File size: 2432 bytes
[2026-01-17 20:36:09] [INFO] Number of mappings: 21
[2026-01-17 20:36:09] [INFO] Starting XML parsing. Content length: 2432
[2026-01-17 20:36:09] [INFO] XML parsed successfully. Root element: Incident
[2026-01-17 20:36:09] [INFO] Processing 21 field mappings
[2026-01-17 20:36:09] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-01-17 20:36:09] [INFO]   -> Found value: 26-01726
[2026-01-17 20:36:09] [INFO]   -> Set field 'dispatchRunNumber' = "26-01726"
[2026-01-17 20:36:09] [INFO]   -> Set field 'cADNumber' = "26-01726"
[2026-01-17 20:36:09] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-01-17 20:36:09] [INFO]   -> Found value: 2021
[2026-01-17 20:36:09] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2021
[2026-01-17 20:36:09] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-01-17 20:36:09] [INFO]   -> Found value: E MALONE AVE
[2026-01-17 20:36:09] [INFO]   -> Set field 'streetName' = "E MALONE AVE"
[2026-01-17 20:36:09] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-01-17 20:36:09] [INFO]   -> No value found (null or empty)
[2026-01-17 20:36:09] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-01-17 20:36:09] [INFO]   -> Found value: SIKESTON
[2026-01-17 20:36:09] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-01-17 20:36:09] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-01-17 20:36:09] [INFO]   -> Found value: DISCOUNT CIGARETTES & BEER
[2026-01-17 20:36:09] [INFO]   -> Set field 'businessName' = "DISCOUNT CIGARETTES & BEER"
[2026-01-17 20:36:09] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-01-17 20:36:09] [INFO]   -> Found value: MO
[2026-01-17 20:36:09] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-01-17 20:36:09] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-01-17 20:36:09] [INFO]   -> Found value: 63801
[2026-01-17 20:36:09] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-01-17 20:36:09] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-01-17 20:36:09] [INFO]   -> Found value: 0
[2026-01-17 20:36:09] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-01-17 20:36:09] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-01-17 20:36:09] [INFO]   -> Found value: 0
[2026-01-17 20:36:09] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-01-17 20:36:09] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-01-17 20:36:09] [INFO]   -> Found value: ACCIDENT-J2
[2026-01-17 20:36:09] [INFO]   -> Set field 'incidentTypeValue1' = "ACCIDENT-J2"
[2026-01-17 20:36:09] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-01-17 20:36:09] [INFO]   -> Found value: 01-17-2026 12:57:27|MINI VAN VS SUV 

DEBRIS ALL OVER THE ROADWAY  01-17-2026 13:02:07|****** Append...
[2026-01-17 20:36:09] [INFO]   -> Set field 'dispatchNotes' = "01-17-2026 12:57:27|MINI VAN VS SUV \n\nDEBRIS ALL OVER THE ROADWAY  01-17-2026 13:02:07|****** Appended notes from Work Area begin ******\nBusiness Name: DISCOUNT CIGARETTES & BEER\nBusiness Phone: (573) 471-1278 \nAddress: 2021 E MALONE AVE, SIKESTON\nSector: 3 Source: E911 \nLaw Enf: SDPS PD Fire: SDPS FD EMS: SSCA \nOpened DateTime: 01\/17\/2026 13:01:34\nNotes: Call Received on 01\/17\/2026 @ 13:01\n\nLocation: 317 NORTH WEST ST\n****** Appended notes from Work Area end   ******\n 01-17-2026 13:05:35|B49 ADVISED MIN VAN FRONT SIDE DAMAGE,SMALL PASS FRONT END DAMAGE 01-17-2026 13:05:40|CONTACT 10-51 01-17-2026 13:06:32|10-51 EN ROUTE 01-17-2026 13:13:48|C91 ADVISED 10-51 ON SCENE 01-17-2026 13:44:29|C92 CLEAR WITH A LETS REPORT. ROADWAY IS CLEAR 01-17-2026 13:45:04|Disposition - SDPS PD:  NRN"
[2026-01-17 20:36:09] [INFO]   -> Set field 'cADLog' = "01-17-2026 12:57:27|MINI VAN VS SUV \n\nDEBRIS ALL OVER THE ROADWAY  01-17-2026 13:02:07|****** Appended notes from Work Area begin ******\nBusiness Name: DISCOUNT CIGARETTES & BEER\nBusiness Phone: (573) 471-1278 \nAddress: 2021 E MALONE AVE, SIKESTON\nSector: 3 Source: E911 \nLaw Enf: SDPS PD Fire: SDPS FD EMS: SSCA \nOpened DateTime: 01\/17\/2026 13:01:34\nNotes: Call Received on 01\/17\/2026 @ 13:01\n\nLocation: 317 NORTH WEST ST\n****** Appended notes from Work Area end   ******\n 01-17-2026 13:05:35|B49 ADVISED MIN VAN FRONT SIDE DAMAGE,SMALL PASS FRONT END DAMAGE 01-17-2026 13:05:40|CONTACT 10-51 01-17-2026 13:06:32|10-51 EN ROUTE 01-17-2026 13:13:48|C91 ADVISED 10-51 ON SCENE 01-17-2026 13:44:29|C92 CLEAR WITH A LETS REPORT. ROADWAY IS CLEAR 01-17-2026 13:45:04|Disposition - SDPS PD:  NRN"
[2026-01-17 20:36:09] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-01-17 20:36:09] [INFO]   -> Found value: 01-17-2026T12:58:55
[2026-01-17 20:36:09] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T12:58:55
[2026-01-17 20:36:09] [ERROR] Error formatting datetime '2026-17-01T12:58:55': Failed to parse time string (2026-17-01T12:58:55) at position 6 (7): Unexpected character
[2026-01-17 20:36:09] [INFO]   -> Set field 'alarm' = null
[2026-01-17 20:36:09] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T12:58:55
[2026-01-17 20:36:09] [ERROR] Error formatting datetime '2026-17-01T12:58:55': Failed to parse time string (2026-17-01T12:58:55) at position 6 (7): Unexpected character
[2026-01-17 20:36:09] [INFO]   -> Set field 'dispatched' = null
[2026-01-17 20:36:09] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-01-17 20:36:09] [INFO]   -> Found value: 01-17-2026T13:02:23
[2026-01-17 20:36:09] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T13:02:23
[2026-01-17 20:36:09] [ERROR] Error formatting datetime '2026-17-01T13:02:23': Failed to parse time string (2026-17-01T13:02:23) at position 6 (7): Unexpected character
[2026-01-17 20:36:09] [INFO]   -> Set field 'onScene' = null
[2026-01-17 20:36:09] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-01-17 20:36:09] [INFO]   -> Found value: 01-17-2026T14:35:28
[2026-01-17 20:36:09] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T14:35:28
[2026-01-17 20:36:09] [ERROR] Error formatting datetime '2026-17-01T14:35:28': Failed to parse time string (2026-17-01T14:35:28) at position 6 (7): Unexpected character
[2026-01-17 20:36:09] [INFO]   -> Set field 'cleared' = null
[2026-01-17 20:36:09] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T14:35:28
[2026-01-17 20:36:09] [ERROR] Error formatting datetime '2026-17-01T14:35:28': Failed to parse time string (2026-17-01T14:35:28) at position 6 (7): Unexpected character
[2026-01-17 20:36:09] [INFO]   -> Set field 'inService' = null
[2026-01-17 20:36:09] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-01-17 20:36:09] [INFO]   -> Found value: ENG2
[2026-01-17 20:36:09] [INFO]   -> Set field 'cADVehicleID' = "ENG2"
[2026-01-17 20:36:09] [INFO]   -> Set field 'name' = "ENG2"
[2026-01-17 20:36:09] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-01-17 20:36:09] [INFO]   -> Found value: 01-17-2026T12:59:49
[2026-01-17 20:36:09] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T12:59:49
[2026-01-17 20:36:09] [ERROR] Error formatting datetime '2026-17-01T12:59:49': Failed to parse time string (2026-17-01T12:59:49) at position 6 (7): Unexpected character
[2026-01-17 20:36:09] [INFO]   -> Set field 'timeenroutetoscene' = null
[2026-01-17 20:36:09] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-01-17 20:36:09] [INFO]   -> Found value: 01-17-2026T13:05:27
[2026-01-17 20:36:09] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T13:05:27
[2026-01-17 20:36:09] [ERROR] Error formatting datetime '2026-17-01T13:05:27': Failed to parse time string (2026-17-01T13:05:27) at position 6 (7): Unexpected character
[2026-01-17 20:36:09] [INFO]   -> Set field 'timeonscene' = null
[2026-01-17 20:36:09] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-01-17 20:36:09] [INFO]   -> Found value: 01-17-2026T13:36:45
[2026-01-17 20:36:09] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T13:36:45
[2026-01-17 20:36:09] [ERROR] Error formatting datetime '2026-17-01T13:36:45': Failed to parse time string (2026-17-01T13:36:45) at position 6 (7): Unexpected character
[2026-01-17 20:36:09] [INFO]   -> Set field 'timeunitclear' = null
[2026-01-17 20:36:09] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-01-17 20:36:09] [INFO]   -> No value found (null or empty)
[2026-01-17 20:36:09] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-01-17 20:36:09] [INFO]   -> Found value: SDPSFD
[2026-01-17 20:36:09] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-01-17 20:36:09] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-01-17 20:36:09] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-01-17 20:36:09] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-01726","cADNumber":"26-01726","incidentLocationStreetNumber":2021,"streetName":"E MALONE AVE","incidentLocationCity":"SIKESTON","businessName":"DISCOUNT CIGARETTES & BEER","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"ACCIDENT-J2","dispatchNotes":"01-17-2026 12:57:27|MINI VAN VS SUV \n\nDEBRIS ALL OVER THE ROADWAY  01-17-2026 13:02:07|****** Appended notes from Work Area begin ******\nBusiness Name: DISCOUNT CIGARETTES & BEER\nBusiness Phone: (573) 471-1278 \nAddress: 2021 E MALONE AVE, SIKESTON\nSector: 3 Source: E911 \nLaw Enf: SDPS PD Fire: SDPS FD EMS: SSCA \nOpened DateTime: 01\/17\/2026 13:01:34\nNotes: Call Received on 01\/17\/2026 @ 13:01\n\nLocation: 317 NORTH WEST ST\n****** Appended notes from Work Area end   ******\n 01-17-2026 13:05:35|B49 ADVISED MIN VAN FRONT SIDE DAMAGE,SMALL PASS FRONT END DAMAGE 01-17-2026 13:05:40|CONTACT 10-51 01-17-2026 13:06:32|10-51 EN ROUTE 01-17-2026 13:13:48|C91 ADVISED 10-51 ON SCENE 01-17-2026 13:44:29|C92 CLEAR WITH A LETS REPORT. ROADWAY IS CLEAR 01-17-2026 13:45:04|Disposition - SDPS PD:  NRN","cADLog":"01-17-2026 12:57:27|MINI VAN VS SUV \n\nDEBRIS ALL OVER THE ROADWAY  01-17-2026 13:02:07|****** Appended notes from Work Area begin ******\nBusiness Name: DISCOUNT CIGARETTES & BEER\nBusiness Phone: (573) 471-1278 \nAddress: 2021 E MALONE AVE, SIKESTON\nSector: 3 Source: E911 \nLaw Enf: SDPS PD Fire: SDPS FD EMS: SSCA \nOpened DateTime: 01\/17\/2026 13:01:34\nNotes: Call Received on 01\/17\/2026 @ 13:01\n\nLocation: 317 NORTH WEST ST\n****** Appended notes from Work Area end   ******\n 01-17-2026 13:05:35|B49 ADVISED MIN VAN FRONT SIDE DAMAGE,SMALL PASS FRONT END DAMAGE 01-17-2026 13:05:40|CONTACT 10-51 01-17-2026 13:06:32|10-51 EN ROUTE 01-17-2026 13:13:48|C91 ADVISED 10-51 ON SCENE 01-17-2026 13:44:29|C92 CLEAR WITH A LETS REPORT. ROADWAY IS CLEAR 01-17-2026 13:45:04|Disposition - SDPS PD:  NRN","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"ENG2","name":"ENG2","timeenroutetoscene":null,"timeonscene":null,"timeunitclear":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-01-17 20:36:09] [INFO] Number of extracted fields: 25
[2026-01-17 20:36:09] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-01-17 20:36:09] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-01-17 20:36:09] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-01-17 20:36:09] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-01-17 20:36:09] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-01-17 20:36:10] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-01-17 20:36:10] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-01-17 20:36:10] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-01-17 20:36:10] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e87be42b7c
[2026-01-17 20:36:12] [INFO] Created new Dispatches record with ID: 696bf2ba8a103b38e
[2026-01-17 20:36:12] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01726.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-01-17/SDPSFD_26-01726.xml
[2026-01-17 20:36:12] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01726.xml
[2026-01-17 22:24:16] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260006363_20260117_222416.XML
[2026-01-17 22:24:16] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260006363_20260117_222416.XML for user: 68f1466aed072ad4a
[2026-01-17 22:24:16] [INFO] File size: 5425 bytes
[2026-01-17 22:24:17] [INFO] Created FTPFiles record with ID: 696c0c110f6560940
[2026-01-17 22:24:17] [INFO] About to extract fields from XML. File size: 5425 bytes
[2026-01-17 22:24:17] [INFO] Number of mappings: 28
[2026-01-17 22:24:17] [INFO] Starting XML parsing. Content length: 5425
[2026-01-17 22:24:17] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-17 22:24:17] [INFO] Processing 28 field mappings
[2026-01-17 22:24:17] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-17 22:24:17] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-17 22:24:17] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-01-17 22:24:17] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-01-17 22:24:17] [INFO]   -> Found value: BFD
EMS
BPD
RESC
[2026-01-17 22:24:17] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nEMS\nBPD\nRESC"
[2026-01-17 22:24:17] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-17 22:24:17] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-01-17 22:24:17] [INFO]   -> Found value: 2026000021
[2026-01-17 22:24:17] [INFO]   -> Set field 'incidentInternalId' = "2026000021"
[2026-01-17 22:24:17] [INFO]   -> Set field 'dispatchRunNumber' = "2026000021"
[2026-01-17 22:24:17] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-17 22:24:17] [INFO]   -> Found value: MVC WITH INJURY
[2026-01-17 22:24:17] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-01-17 22:24:17] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-17 22:24:17] [INFO]   -> Found value: 99
[2026-01-17 22:24:17] [INFO]   -> Set field 'incidentLocationStreetNumber' = 99
[2026-01-17 22:24:17] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-17 22:24:17] [INFO]   -> Found value: TN
[2026-01-17 22:24:17] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-17 22:24:17] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-17 22:24:17] [INFO]   -> Found value: 38544
[2026-01-17 22:24:17] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-01-17 22:24:17] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-17 22:24:17] [INFO]   -> No value found (null or empty)
[2026-01-17 22:24:17] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-17 22:24:17] [INFO]   -> No value found (null or empty)
[2026-01-17 22:24:17] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-17 22:24:17] [INFO]   -> Found value: 36.14024
[2026-01-17 22:24:17] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14023999999999858800947549752891063690185546875
[2026-01-17 22:24:17] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-17 22:24:17] [INFO]   -> Found value: -85.62893
[2026-01-17 22:24:17] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.628929999999996880433172918856143951416015625
[2026-01-17 22:24:17] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-17 22:24:17] [INFO]   -> Found value: 2026-01-17 16:23:32
[2026-01-17 22:24:17] [INFO]   -> Set field 'alarm' = "2026-01-17 16:23:32"
[2026-01-17 22:24:17] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-17 22:24:17] [INFO]   -> Found value: 2026-01-17 16:24:09
[2026-01-17 22:24:17] [INFO]   -> Set field 'dispatched' = "2026-01-17 16:24:09"
[2026-01-17 22:24:17] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-17 22:24:17] [INFO]   -> No value found (null or empty)
[2026-01-17 22:24:17] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-17 22:24:17] [INFO]   -> No value found (null or empty)
[2026-01-17 22:24:17] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-17 22:24:17] [INFO]   -> No value found (null or empty)
[2026-01-17 22:24:17] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-17 22:24:17] [INFO]   -> No value found (null or empty)
[2026-01-17 22:24:17] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-17 22:24:17] [INFO]   -> Found value: BEN2
[2026-01-17 22:24:17] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-01-17 22:24:17] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-17 22:24:17] [INFO]   -> Found value: 2026-01-17 16:24:09
[2026-01-17 22:24:17] [INFO]   -> Set field 'timedispatch' = "2026-01-17 16:24:09"
[2026-01-17 22:24:17] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-17 22:24:17] [INFO]   -> No value found (null or empty)
[2026-01-17 22:24:17] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-17 22:24:17] [INFO]   -> No value found (null or empty)
[2026-01-17 22:24:17] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-17 22:24:17] [INFO]   -> No value found (null or empty)
[2026-01-17 22:24:17] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-17 22:24:17] [INFO]   -> No value found (null or empty)
[2026-01-17 22:24:17] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-17 22:24:17] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-01-17 22:24:17] [INFO]   -> Found value: 20260006363
[2026-01-17 22:24:17] [INFO]   -> Set field 'policeReportNumber' = "20260006363"
[2026-01-17 22:24:17] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-17 22:24:17] [INFO]   -> Found value: [LAW] ONE SUBJECT GOT OUT OF CAR AND HE FELL TO THE GROUND // NOW HE BACK UP  [01/17/26 16:24:07 MCL...
[2026-01-17 22:24:17] [INFO]   -> Set field 'dispatchNotes' = "[LAW] ONE SUBJECT GOT OUT OF CAR AND HE FELL TO THE GROUND \/\/ NOW HE BACK UP  [01\/17\/26 16:24:07 MCLAYBURN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/17\/26 16:24:05 RJGIPSON] Event spawned from MVC WITH INJURY.  [01\/17\/2026 16:23:32 KBURTON]"
[2026-01-17 22:24:17] [INFO]   -> Set field 'cADLog' = "[LAW] ONE SUBJECT GOT OUT OF CAR AND HE FELL TO THE GROUND \/\/ NOW HE BACK UP  [01\/17\/26 16:24:07 MCLAYBURN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/17\/26 16:24:05 RJGIPSON] Event spawned from MVC WITH INJURY.  [01\/17\/2026 16:23:32 KBURTON]"
[2026-01-17 22:24:17] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-17 22:24:17] [INFO]   -> Found value: BAXTER
[2026-01-17 22:24:17] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-01-17 22:24:17] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-17 22:24:17] [INFO]   -> Found value: GAINESBORO
[2026-01-17 22:24:17] [INFO]   -> Set field 'streetName' = "GAINESBORO"
[2026-01-17 22:24:17] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-17 22:24:17] [INFO]   -> Found value: HWY
[2026-01-17 22:24:17] [INFO]   -> Set field 'streetType' = "HWY"
[2026-01-17 22:24:17] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-17 22:24:17] [INFO]   -> Found value: GAINESBORO HWY/FIRST AVE S
[2026-01-17 22:24:17] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "GAINESBORO HWY\/FIRST AVE S"
[2026-01-17 22:24:17] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-01-17 22:24:17] [INFO] Concatenating street name and type
[2026-01-17 22:24:17] [INFO]   -> Combined street name: GAINESBORO HWY
[2026-01-17 22:24:17] [INFO] Built locationCoordinates from lat/lng: 36.14024,-85.62893
[2026-01-17 22:24:17] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nEMS\nBPD\nRESC","incidentInternalId":"2026000021","dispatchRunNumber":"2026000021","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":99,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.14023999999999858800947549752891063690185546875,"nERISIncidentLongitude":-85.628929999999996880433172918856143951416015625,"alarm":"2026-01-17 16:23:32","dispatched":"2026-01-17 16:24:09","cADVehicleID":"BEN2","timedispatch":"2026-01-17 16:24:09","policeReportNumber":"20260006363","dispatchNotes":"[LAW] ONE SUBJECT GOT OUT OF CAR AND HE FELL TO THE GROUND \/\/ NOW HE BACK UP  [01\/17\/26 16:24:07 MCLAYBURN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/17\/26 16:24:05 RJGIPSON] Event spawned from MVC WITH INJURY.  [01\/17\/2026 16:23:32 KBURTON]","cADLog":"[LAW] ONE SUBJECT GOT OUT OF CAR AND HE FELL TO THE GROUND \/\/ NOW HE BACK UP  [01\/17\/26 16:24:07 MCLAYBURN2] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/17\/26 16:24:05 RJGIPSON] Event spawned from MVC WITH INJURY.  [01\/17\/2026 16:23:32 KBURTON]","incidentLocationCity":"BAXTER","streetName":"GAINESBORO HWY","incidentAddressTextVersionStreet":"GAINESBORO HWY\/FIRST AVE S","locationCoordinates":"36.14024,-85.62893"}
[2026-01-17 22:24:17] [INFO] Number of extracted fields: 20
[2026-01-17 22:24:17] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
EMS
BPD
RESC'
[2026-01-17 22:24:17] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
EMS
BPD
RESC', Parsed IDs = ["BFD","EMS","BPD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-01-17 22:24:17] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","EMS","BPD","RESC"]
[2026-01-17 22:24:17] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-01-17 22:24:17] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-01-17 22:24:17] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","BPD","RESC"]
[2026-01-17 22:24:17] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-01-17 22:24:17] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-01-17 22:24:17] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-01-17 22:24:17] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-01-17 22:24:17] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-01-17 22:24:17] [INFO] Found existing IncidentTypeMapping with ID: 6945ba14169a84c4e
[2026-01-17 22:24:21] [INFO] Created new Dispatches record with ID: 696c0c11e7fafb1b3
[2026-01-17 22:24:21] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260006363_20260117_222416.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-17/BFD_20260006363_20260117_222416.XML
[2026-01-17 22:24:21] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260006363_20260117_222416.XML
[2026-01-17 22:29:26] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006368_20260117_222926.XML
[2026-01-17 22:29:26] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006368_20260117_222926.XML for user: 68f1466aed072ad4a
[2026-01-17 22:29:26] [INFO] File size: 6354 bytes
[2026-01-17 22:29:27] [INFO] Created FTPFiles record with ID: 696c0d4719af54266
[2026-01-17 22:29:27] [INFO] About to extract fields from XML. File size: 6354 bytes
[2026-01-17 22:29:27] [INFO] Number of mappings: 28
[2026-01-17 22:29:27] [INFO] Starting XML parsing. Content length: 6354
[2026-01-17 22:29:27] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-17 22:29:27] [INFO] Processing 28 field mappings
[2026-01-17 22:29:27] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-17 22:29:27] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-17 22:29:27] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-01-17 22:29:27] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-01-17 22:29:27] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-01-17 22:29:27] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-01-17 22:29:27] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-17 22:29:27] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-01-17 22:29:27] [INFO]   -> Found value: 2026000154
[2026-01-17 22:29:27] [INFO]   -> Set field 'incidentInternalId' = "2026000154"
[2026-01-17 22:29:27] [INFO]   -> Set field 'dispatchRunNumber' = "2026000154"
[2026-01-17 22:29:27] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-17 22:29:27] [INFO]   -> Found value: MVC WITH INJURY
[2026-01-17 22:29:27] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-01-17 22:29:27] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-17 22:29:27] [INFO]   -> Found value: 2530
[2026-01-17 22:29:27] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2530
[2026-01-17 22:29:27] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-17 22:29:27] [INFO]   -> Found value: TN
[2026-01-17 22:29:27] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-17 22:29:27] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-17 22:29:27] [INFO]   -> Found value: 38506
[2026-01-17 22:29:27] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-01-17 22:29:27] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-17 22:29:27] [INFO]   -> No value found (null or empty)
[2026-01-17 22:29:27] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-17 22:29:27] [INFO]   -> No value found (null or empty)
[2026-01-17 22:29:27] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-17 22:29:27] [INFO]   -> Found value: 36.11419
[2026-01-17 22:29:27] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.11419000000000067984728957526385784149169921875
[2026-01-17 22:29:27] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-17 22:29:27] [INFO]   -> Found value: -85.55241
[2026-01-17 22:29:27] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5524099999999947385731502436101436614990234375
[2026-01-17 22:29:27] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-17 22:29:27] [INFO]   -> Found value: 2026-01-17 16:28:51
[2026-01-17 22:29:27] [INFO]   -> Set field 'alarm' = "2026-01-17 16:28:51"
[2026-01-17 22:29:27] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-17 22:29:27] [INFO]   -> Found value: 2026-01-17 16:29:21
[2026-01-17 22:29:27] [INFO]   -> Set field 'dispatched' = "2026-01-17 16:29:21"
[2026-01-17 22:29:27] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-17 22:29:27] [INFO]   -> No value found (null or empty)
[2026-01-17 22:29:27] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-17 22:29:27] [INFO]   -> No value found (null or empty)
[2026-01-17 22:29:27] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-17 22:29:27] [INFO]   -> No value found (null or empty)
[2026-01-17 22:29:27] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-17 22:29:27] [INFO]   -> Found value: FOREST CIR/OLD SALEM DR
[2026-01-17 22:29:27] [INFO]   -> Set field 'incidentLocationCross' = "FOREST CIR\/OLD SALEM DR"
[2026-01-17 22:29:27] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-17 22:29:27] [INFO]   -> Found value: TK13
[2026-01-17 22:29:27] [INFO]   -> Set field 'cADVehicleID' = "TK13"
[2026-01-17 22:29:27] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-17 22:29:27] [INFO]   -> Found value: 2026-01-17 16:29:21
[2026-01-17 22:29:27] [INFO]   -> Set field 'timedispatch' = "2026-01-17 16:29:21"
[2026-01-17 22:29:27] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-17 22:29:27] [INFO]   -> No value found (null or empty)
[2026-01-17 22:29:27] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-17 22:29:27] [INFO]   -> No value found (null or empty)
[2026-01-17 22:29:27] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-17 22:29:27] [INFO]   -> No value found (null or empty)
[2026-01-17 22:29:27] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-17 22:29:27] [INFO]   -> No value found (null or empty)
[2026-01-17 22:29:27] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-17 22:29:27] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-01-17 22:29:27] [INFO]   -> Found value: 20260006368
[2026-01-17 22:29:27] [INFO]   -> Set field 'policeReportNumber' = "20260006368"
[2026-01-17 22:29:27] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-17 22:29:27] [INFO]   -> Found value: [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01/17/26 16:29:12 BWILSON] [EMS] LAYING ON ITS SIDE  [01/17/...
[2026-01-17 22:29:27] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/17\/26 16:29:12 BWILSON] [EMS] LAYING ON ITS SIDE  [01\/17\/26 16:29:06 MCLAYBURN2] [EMS] ONE VEHICLE  [01\/17\/26 16:29:00 MCLAYBURN2] Event spawned from MVC WITH INJURY.  [01\/17\/2026 16:28:51 MCLAYBURN2] GUY JUST ROLLED HIS TRUCK RIGHT PAST BURGESS SCHOOL RD  [01\/17\/26 16:28:49 MCLAYBURN2]]"
[2026-01-17 22:29:27] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/17\/26 16:29:12 BWILSON] [EMS] LAYING ON ITS SIDE  [01\/17\/26 16:29:06 MCLAYBURN2] [EMS] ONE VEHICLE  [01\/17\/26 16:29:00 MCLAYBURN2] Event spawned from MVC WITH INJURY.  [01\/17\/2026 16:28:51 MCLAYBURN2] GUY JUST ROLLED HIS TRUCK RIGHT PAST BURGESS SCHOOL RD  [01\/17\/26 16:28:49 MCLAYBURN2]]"
[2026-01-17 22:29:27] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-17 22:29:27] [INFO]   -> Found value: COOKEVILLE
[2026-01-17 22:29:27] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-01-17 22:29:27] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-17 22:29:27] [INFO]   -> Found value: BURGESS FALLS
[2026-01-17 22:29:27] [INFO]   -> Set field 'streetName' = "BURGESS FALLS"
[2026-01-17 22:29:27] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-17 22:29:27] [INFO]   -> Found value: RD
[2026-01-17 22:29:27] [INFO]   -> Set field 'streetType' = "RD"
[2026-01-17 22:29:27] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-17 22:29:27] [INFO]   -> Found value: 2530 BURGESS FALLS RD
[2026-01-17 22:29:27] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2530 BURGESS FALLS RD"
[2026-01-17 22:29:27] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-01-17 22:29:27] [INFO] Concatenating street name and type
[2026-01-17 22:29:27] [INFO]   -> Combined street name: BURGESS FALLS RD
[2026-01-17 22:29:27] [INFO] Built locationCoordinates from lat/lng: 36.11419,-85.55241
[2026-01-17 22:29:27] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000154","dispatchRunNumber":"2026000154","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":2530,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.11419000000000067984728957526385784149169921875,"nERISIncidentLongitude":-85.5524099999999947385731502436101436614990234375,"alarm":"2026-01-17 16:28:51","dispatched":"2026-01-17 16:29:21","incidentLocationCross":"FOREST CIR\/OLD SALEM DR","cADVehicleID":"TK13","timedispatch":"2026-01-17 16:29:21","policeReportNumber":"20260006368","dispatchNotes":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/17\/26 16:29:12 BWILSON] [EMS] LAYING ON ITS SIDE  [01\/17\/26 16:29:06 MCLAYBURN2] [EMS] ONE VEHICLE  [01\/17\/26 16:29:00 MCLAYBURN2] Event spawned from MVC WITH INJURY.  [01\/17\/2026 16:28:51 MCLAYBURN2] GUY JUST ROLLED HIS TRUCK RIGHT PAST BURGESS SCHOOL RD  [01\/17\/26 16:28:49 MCLAYBURN2]]","cADLog":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [01\/17\/26 16:29:12 BWILSON] [EMS] LAYING ON ITS SIDE  [01\/17\/26 16:29:06 MCLAYBURN2] [EMS] ONE VEHICLE  [01\/17\/26 16:29:00 MCLAYBURN2] Event spawned from MVC WITH INJURY.  [01\/17\/2026 16:28:51 MCLAYBURN2] GUY JUST ROLLED HIS TRUCK RIGHT PAST BURGESS SCHOOL RD  [01\/17\/26 16:28:49 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"BURGESS FALLS RD","incidentAddressTextVersionStreet":"2530 BURGESS FALLS RD","locationCoordinates":"36.11419,-85.55241"}
[2026-01-17 22:29:27] [INFO] Number of extracted fields: 21
[2026-01-17 22:29:27] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-01-17 22:29:27] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-01-17 22:29:27] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-01-17 22:29:27] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-01-17 22:29:27] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-01-17 22:29:27] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-01-17 22:29:27] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-01-17 22:29:27] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-01-17 22:29:27] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-01-17 22:29:27] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-01-17 22:29:27] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-01-17 22:29:27] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-01-17 22:29:36] [INFO] Created new Dispatches record with ID: 696c0d47cc54221c2
[2026-01-17 22:29:36] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006368_20260117_222926.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-17/PCFD_20260006368_20260117_222926.XML
[2026-01-17 22:29:36] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006368_20260117_222926.XML
[2026-01-17 22:41:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01738.xml
[2026-01-17 22:41:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01738.xml for user: 68d56363ec1209189
[2026-01-17 22:41:51] [INFO] File size: 1685 bytes
[2026-01-17 22:41:51] [INFO] Created FTPFiles record with ID: 696c102f53d5ffb81
[2026-01-17 22:41:51] [INFO] About to extract fields from XML. File size: 1685 bytes
[2026-01-17 22:41:51] [INFO] Number of mappings: 21
[2026-01-17 22:41:51] [INFO] Starting XML parsing. Content length: 1685
[2026-01-17 22:41:51] [INFO] XML parsed successfully. Root element: Incident
[2026-01-17 22:41:51] [INFO] Processing 21 field mappings
[2026-01-17 22:41:51] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-01-17 22:41:51] [INFO]   -> Found value: 26-01738
[2026-01-17 22:41:51] [INFO]   -> Set field 'dispatchRunNumber' = "26-01738"
[2026-01-17 22:41:51] [INFO]   -> Set field 'cADNumber' = "26-01738"
[2026-01-17 22:41:51] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-01-17 22:41:51] [INFO]   -> No value found (null or empty)
[2026-01-17 22:41:51] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-01-17 22:41:51] [INFO]   -> Found value: STATE HIGHWAY Z
[2026-01-17 22:41:51] [INFO]   -> Set field 'streetName' = "STATE HIGHWAY Z"
[2026-01-17 22:41:51] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-01-17 22:41:51] [INFO]   -> No value found (null or empty)
[2026-01-17 22:41:51] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-01-17 22:41:51] [INFO]   -> No value found (null or empty)
[2026-01-17 22:41:51] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-01-17 22:41:51] [INFO]   -> No value found (null or empty)
[2026-01-17 22:41:51] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-01-17 22:41:51] [INFO]   -> No value found (null or empty)
[2026-01-17 22:41:51] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-01-17 22:41:51] [INFO]   -> No value found (null or empty)
[2026-01-17 22:41:51] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-01-17 22:41:51] [INFO]   -> Found value: 0
[2026-01-17 22:41:51] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-01-17 22:41:51] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-01-17 22:41:51] [INFO]   -> Found value: 0
[2026-01-17 22:41:51] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-01-17 22:41:51] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-01-17 22:41:51] [INFO]   -> Found value: FIRE-OUT OF TOWN
[2026-01-17 22:41:51] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-OUT OF TOWN"
[2026-01-17 22:41:51] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-01-17 22:41:51] [INFO]   -> Found value: 01-17-2026 15:59:11|GRASS FIRE ON Z ONE MILE SOUTH OF THE CROWDER COTTON GIN
[2026-01-17 22:41:51] [INFO]   -> Set field 'dispatchNotes' = "01-17-2026 15:59:11|GRASS FIRE ON Z ONE MILE SOUTH OF THE CROWDER COTTON GIN"
[2026-01-17 22:41:51] [INFO]   -> Set field 'cADLog' = "01-17-2026 15:59:11|GRASS FIRE ON Z ONE MILE SOUTH OF THE CROWDER COTTON GIN"
[2026-01-17 22:41:51] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-01-17 22:41:51] [INFO]   -> Found value: 01-17-2026T16:02:55
[2026-01-17 22:41:51] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T16:02:55
[2026-01-17 22:41:51] [ERROR] Error formatting datetime '2026-17-01T16:02:55': Failed to parse time string (2026-17-01T16:02:55) at position 6 (7): Unexpected character
[2026-01-17 22:41:51] [INFO]   -> Set field 'alarm' = null
[2026-01-17 22:41:51] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T16:02:55
[2026-01-17 22:41:51] [ERROR] Error formatting datetime '2026-17-01T16:02:55': Failed to parse time string (2026-17-01T16:02:55) at position 6 (7): Unexpected character
[2026-01-17 22:41:51] [INFO]   -> Set field 'dispatched' = null
[2026-01-17 22:41:51] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-01-17 22:41:51] [INFO]   -> Found value: 01-17-2026T16:12:01
[2026-01-17 22:41:51] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T16:12:01
[2026-01-17 22:41:51] [ERROR] Error formatting datetime '2026-17-01T16:12:01': Failed to parse time string (2026-17-01T16:12:01) at position 6 (7): Unexpected character
[2026-01-17 22:41:51] [INFO]   -> Set field 'onScene' = null
[2026-01-17 22:41:51] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-01-17 22:41:51] [INFO]   -> Found value: 01-17-2026T16:41:29
[2026-01-17 22:41:51] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T16:41:29
[2026-01-17 22:41:51] [ERROR] Error formatting datetime '2026-17-01T16:41:29': Failed to parse time string (2026-17-01T16:41:29) at position 6 (7): Unexpected character
[2026-01-17 22:41:51] [INFO]   -> Set field 'cleared' = null
[2026-01-17 22:41:51] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T16:41:29
[2026-01-17 22:41:51] [ERROR] Error formatting datetime '2026-17-01T16:41:29': Failed to parse time string (2026-17-01T16:41:29) at position 6 (7): Unexpected character
[2026-01-17 22:41:51] [INFO]   -> Set field 'inService' = null
[2026-01-17 22:41:51] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-01-17 22:41:51] [INFO]   -> Found value: SIK ALL PAGE
[2026-01-17 22:41:51] [INFO]   -> Set field 'cADVehicleID' = "SIK ALL PAGE"
[2026-01-17 22:41:51] [INFO]   -> Set field 'name' = "SIK ALL PAGE"
[2026-01-17 22:41:51] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-01-17 22:41:51] [INFO]   -> No value found (null or empty)
[2026-01-17 22:41:51] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-01-17 22:41:51] [INFO]   -> No value found (null or empty)
[2026-01-17 22:41:51] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-01-17 22:41:51] [INFO]   -> Found value: 01-17-2026T16:41:29
[2026-01-17 22:41:51] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T16:41:29
[2026-01-17 22:41:51] [ERROR] Error formatting datetime '2026-17-01T16:41:29': Failed to parse time string (2026-17-01T16:41:29) at position 6 (7): Unexpected character
[2026-01-17 22:41:51] [INFO]   -> Set field 'timeunitclear' = null
[2026-01-17 22:41:51] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-01-17 22:41:51] [INFO]   -> Found value: 01-17-2026T16:02:55
[2026-01-17 22:41:51] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T16:02:55
[2026-01-17 22:41:51] [ERROR] Error formatting datetime '2026-17-01T16:02:55': Failed to parse time string (2026-17-01T16:02:55) at position 6 (7): Unexpected character
[2026-01-17 22:41:51] [INFO]   -> Set field 'timedispatch' = null
[2026-01-17 22:41:51] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-01-17 22:41:51] [INFO]   -> Found value: SDPSFD
[2026-01-17 22:41:51] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-01-17 22:41:51] [INFO] Finished extracting fields. Total fields extracted: 18
[2026-01-17 22:41:51] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-01-17 22:41:51] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-01738","cADNumber":"26-01738","streetName":"STATE HIGHWAY Z","nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-OUT OF TOWN","dispatchNotes":"01-17-2026 15:59:11|GRASS FIRE ON Z ONE MILE SOUTH OF THE CROWDER COTTON GIN","cADLog":"01-17-2026 15:59:11|GRASS FIRE ON Z ONE MILE SOUTH OF THE CROWDER COTTON GIN","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"SIK ALL PAGE","name":"SIK ALL PAGE","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-01-17 22:41:51] [INFO] Number of extracted fields: 19
[2026-01-17 22:41:51] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-01-17 22:41:51] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-01-17 22:41:51] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-01-17 22:41:51] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-01-17 22:41:51] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-01-17 22:41:51] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-01-17 22:41:51] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-01-17 22:41:51] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-01-17 22:41:51] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e878336f04
[2026-01-17 22:41:53] [INFO] Created new Dispatches record with ID: 696c1030159708bd1
[2026-01-17 22:41:53] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01738.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-01-17/SDPSFD_26-01738.xml
[2026-01-17 22:41:53] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01738.xml
[2026-01-17 22:41:53] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01739.xml
[2026-01-17 22:41:53] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01739.xml for user: 68d56363ec1209189
[2026-01-17 22:41:53] [INFO] File size: 1793 bytes
[2026-01-17 22:41:53] [INFO] Created FTPFiles record with ID: 696c1031c2aad25d5
[2026-01-17 22:41:53] [INFO] About to extract fields from XML. File size: 1793 bytes
[2026-01-17 22:41:53] [INFO] Number of mappings: 21
[2026-01-17 22:41:53] [INFO] Starting XML parsing. Content length: 1793
[2026-01-17 22:41:53] [INFO] XML parsed successfully. Root element: Incident
[2026-01-17 22:41:53] [INFO] Processing 21 field mappings
[2026-01-17 22:41:53] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-01-17 22:41:53] [INFO]   -> Found value: 26-01739
[2026-01-17 22:41:53] [INFO]   -> Set field 'dispatchRunNumber' = "26-01739"
[2026-01-17 22:41:53] [INFO]   -> Set field 'cADNumber' = "26-01739"
[2026-01-17 22:41:53] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-01-17 22:41:53] [INFO]   -> No value found (null or empty)
[2026-01-17 22:41:53] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-01-17 22:41:53] [INFO]   -> Found value: STATE HIGHWAY ZZ
[2026-01-17 22:41:53] [INFO]   -> Set field 'streetName' = "STATE HIGHWAY ZZ"
[2026-01-17 22:41:53] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-01-17 22:41:53] [INFO]   -> No value found (null or empty)
[2026-01-17 22:41:53] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-01-17 22:41:53] [INFO]   -> Found value: SIKESTON
[2026-01-17 22:41:53] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-01-17 22:41:53] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-01-17 22:41:53] [INFO]   -> No value found (null or empty)
[2026-01-17 22:41:53] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-01-17 22:41:53] [INFO]   -> No value found (null or empty)
[2026-01-17 22:41:53] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-01-17 22:41:53] [INFO]   -> No value found (null or empty)
[2026-01-17 22:41:53] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-01-17 22:41:53] [INFO]   -> Found value: 0
[2026-01-17 22:41:53] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-01-17 22:41:53] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-01-17 22:41:53] [INFO]   -> Found value: 0
[2026-01-17 22:41:53] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-01-17 22:41:53] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-01-17 22:41:53] [INFO]   -> Found value: FIRE-OUT OF TOWN
[2026-01-17 22:41:53] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-OUT OF TOWN"
[2026-01-17 22:41:53] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-01-17 22:41:53] [INFO]   -> Found value: 01-17-2026 16:00:36|2-3 MILES E OF ZZ AND TANNER LN
GRASS ON THE SIDE OF THE ROAD ON FIRE
 01-17-202...
[2026-01-17 22:41:53] [INFO]   -> Set field 'dispatchNotes' = "01-17-2026 16:00:36|2-3 MILES E OF ZZ AND TANNER LN\nGRASS ON THE SIDE OF THE ROAD ON FIRE\n 01-17-2026 16:11:35|W OF 475  ALONG DITCH BANK NOTHING MAJOR PER C84 01-17-2026 16:11:57|Disposition - SDPS PD:  NRN"
[2026-01-17 22:41:53] [INFO]   -> Set field 'cADLog' = "01-17-2026 16:00:36|2-3 MILES E OF ZZ AND TANNER LN\nGRASS ON THE SIDE OF THE ROAD ON FIRE\n 01-17-2026 16:11:35|W OF 475  ALONG DITCH BANK NOTHING MAJOR PER C84 01-17-2026 16:11:57|Disposition - SDPS PD:  NRN"
[2026-01-17 22:41:53] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-01-17 22:41:53] [INFO]   -> Found value: 01-17-2026T16:02:39
[2026-01-17 22:41:53] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T16:02:39
[2026-01-17 22:41:53] [ERROR] Error formatting datetime '2026-17-01T16:02:39': Failed to parse time string (2026-17-01T16:02:39) at position 6 (7): Unexpected character
[2026-01-17 22:41:53] [INFO]   -> Set field 'alarm' = null
[2026-01-17 22:41:53] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T16:02:39
[2026-01-17 22:41:53] [ERROR] Error formatting datetime '2026-17-01T16:02:39': Failed to parse time string (2026-17-01T16:02:39) at position 6 (7): Unexpected character
[2026-01-17 22:41:53] [INFO]   -> Set field 'dispatched' = null
[2026-01-17 22:41:53] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-01-17 22:41:53] [INFO]   -> Found value: 01-17-2026T16:11:52
[2026-01-17 22:41:53] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T16:11:52
[2026-01-17 22:41:53] [ERROR] Error formatting datetime '2026-17-01T16:11:52': Failed to parse time string (2026-17-01T16:11:52) at position 6 (7): Unexpected character
[2026-01-17 22:41:53] [INFO]   -> Set field 'onScene' = null
[2026-01-17 22:41:53] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-01-17 22:41:53] [INFO]   -> Found value: 01-17-2026T16:41:25
[2026-01-17 22:41:53] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T16:41:25
[2026-01-17 22:41:53] [ERROR] Error formatting datetime '2026-17-01T16:41:25': Failed to parse time string (2026-17-01T16:41:25) at position 6 (7): Unexpected character
[2026-01-17 22:41:53] [INFO]   -> Set field 'cleared' = null
[2026-01-17 22:41:53] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T16:41:25
[2026-01-17 22:41:53] [ERROR] Error formatting datetime '2026-17-01T16:41:25': Failed to parse time string (2026-17-01T16:41:25) at position 6 (7): Unexpected character
[2026-01-17 22:41:53] [INFO]   -> Set field 'inService' = null
[2026-01-17 22:41:53] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-01-17 22:41:53] [INFO]   -> Found value: R1
[2026-01-17 22:41:53] [INFO]   -> Set field 'cADVehicleID' = "R1"
[2026-01-17 22:41:53] [INFO]   -> Set field 'name' = "R1"
[2026-01-17 22:41:53] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-01-17 22:41:53] [INFO]   -> Found value: 01-17-2026T16:04:21
[2026-01-17 22:41:53] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T16:04:21
[2026-01-17 22:41:53] [ERROR] Error formatting datetime '2026-17-01T16:04:21': Failed to parse time string (2026-17-01T16:04:21) at position 6 (7): Unexpected character
[2026-01-17 22:41:53] [INFO]   -> Set field 'timeenroutetoscene' = null
[2026-01-17 22:41:53] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-01-17 22:41:53] [INFO]   -> No value found (null or empty)
[2026-01-17 22:41:53] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-01-17 22:41:53] [INFO]   -> Found value: 01-17-2026T16:41:25
[2026-01-17 22:41:53] [INFO] Reformatted DD-MM-YYYY date '01-17-2026' (day=01, month=17) to ISO: 2026-17-01T16:41:25
[2026-01-17 22:41:53] [ERROR] Error formatting datetime '2026-17-01T16:41:25': Failed to parse time string (2026-17-01T16:41:25) at position 6 (7): Unexpected character
[2026-01-17 22:41:53] [INFO]   -> Set field 'timeunitclear' = null
[2026-01-17 22:41:53] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-01-17 22:41:53] [INFO]   -> No value found (null or empty)
[2026-01-17 22:41:53] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-01-17 22:41:53] [INFO]   -> Found value: SDPSFD
[2026-01-17 22:41:53] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-01-17 22:41:53] [INFO] Finished extracting fields. Total fields extracted: 19
[2026-01-17 22:41:53] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-01-17 22:41:53] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-01739","cADNumber":"26-01739","streetName":"STATE HIGHWAY ZZ","incidentLocationCity":"SIKESTON","nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-OUT OF TOWN","dispatchNotes":"01-17-2026 16:00:36|2-3 MILES E OF ZZ AND TANNER LN\nGRASS ON THE SIDE OF THE ROAD ON FIRE\n 01-17-2026 16:11:35|W OF 475  ALONG DITCH BANK NOTHING MAJOR PER C84 01-17-2026 16:11:57|Disposition - SDPS PD:  NRN","cADLog":"01-17-2026 16:00:36|2-3 MILES E OF ZZ AND TANNER LN\nGRASS ON THE SIDE OF THE ROAD ON FIRE\n 01-17-2026 16:11:35|W OF 475  ALONG DITCH BANK NOTHING MAJOR PER C84 01-17-2026 16:11:57|Disposition - SDPS PD:  NRN","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"R1","name":"R1","timeenroutetoscene":null,"timeunitclear":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-01-17 22:41:53] [INFO] Number of extracted fields: 20
[2026-01-17 22:41:53] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-01-17 22:41:53] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-01-17 22:41:53] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-01-17 22:41:53] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-01-17 22:41:53] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-01-17 22:41:54] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-01-17 22:41:54] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-01-17 22:41:54] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-01-17 22:41:54] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e878336f04
[2026-01-17 22:41:55] [INFO] Created new Dispatches record with ID: 696c10327bfcc24a1
[2026-01-17 22:41:55] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01739.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-01-17/SDPSFD_26-01739.xml
[2026-01-17 22:41:55] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-01739.xml
[2026-01-17 23:45:26] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006396_20260117_234526.XML
[2026-01-17 23:45:26] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006396_20260117_234526.XML for user: 68f1466aed072ad4a
[2026-01-17 23:45:26] [INFO] File size: 5364 bytes
[2026-01-17 23:45:26] [INFO] Created FTPFiles record with ID: 696c1f16775d4fb1d
[2026-01-17 23:45:26] [INFO] About to extract fields from XML. File size: 5364 bytes
[2026-01-17 23:45:26] [INFO] Number of mappings: 28
[2026-01-17 23:45:26] [INFO] Starting XML parsing. Content length: 5364
[2026-01-17 23:45:26] [INFO] XML parsed successfully. Root element: CADExport
[2026-01-17 23:45:26] [INFO] Processing 28 field mappings
[2026-01-17 23:45:26] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-01-17 23:45:26] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-01-17 23:45:26] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-01-17 23:45:26] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-01-17 23:45:26] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-01-17 23:45:26] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-01-17 23:45:26] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-01-17 23:45:26] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-01-17 23:45:26] [INFO]   -> Found value: 2026000155
[2026-01-17 23:45:26] [INFO]   -> Set field 'incidentInternalId' = "2026000155"
[2026-01-17 23:45:26] [INFO]   -> Set field 'dispatchRunNumber' = "2026000155"
[2026-01-17 23:45:26] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-01-17 23:45:26] [INFO]   -> Found value: CHEST PAIN
[2026-01-17 23:45:26] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-01-17 23:45:26] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-01-17 23:45:26] [INFO]   -> Found value: 6700
[2026-01-17 23:45:26] [INFO]   -> Set field 'incidentLocationStreetNumber' = 6700
[2026-01-17 23:45:26] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-01-17 23:45:26] [INFO]   -> Found value: TN
[2026-01-17 23:45:26] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-01-17 23:45:26] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-01-17 23:45:26] [INFO]   -> Found value: 38582
[2026-01-17 23:45:26] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38582
[2026-01-17 23:45:26] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-01-17 23:45:26] [INFO]   -> No value found (null or empty)
[2026-01-17 23:45:26] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-01-17 23:45:26] [INFO]   -> No value found (null or empty)
[2026-01-17 23:45:26] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-01-17 23:45:26] [INFO]   -> Found value: 36.08691
[2026-01-17 23:45:26] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0869100000000031513991416431963443756103515625
[2026-01-17 23:45:26] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-01-17 23:45:26] [INFO]   -> Found value: -85.72269
[2026-01-17 23:45:26] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.72269000000000005456968210637569427490234375
[2026-01-17 23:45:26] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-01-17 23:45:26] [INFO]   -> Found value: 2026-01-17 17:45:08
[2026-01-17 23:45:26] [INFO]   -> Set field 'alarm' = "2026-01-17 17:45:08"
[2026-01-17 23:45:26] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-01-17 23:45:26] [INFO]   -> Found value: 2026-01-17 17:45:23
[2026-01-17 23:45:26] [INFO]   -> Set field 'dispatched' = "2026-01-17 17:45:23"
[2026-01-17 23:45:26] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-01-17 23:45:26] [INFO]   -> No value found (null or empty)
[2026-01-17 23:45:26] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-01-17 23:45:26] [INFO]   -> No value found (null or empty)
[2026-01-17 23:45:26] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-01-17 23:45:26] [INFO]   -> No value found (null or empty)
[2026-01-17 23:45:26] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-01-17 23:45:26] [INFO]   -> No value found (null or empty)
[2026-01-17 23:45:26] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-01-17 23:45:26] [INFO]   -> Found value: PCFR
[2026-01-17 23:45:26] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-01-17 23:45:26] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-01-17 23:45:26] [INFO]   -> Found value: 2026-01-17 17:45:23
[2026-01-17 23:45:26] [INFO]   -> Set field 'timedispatch' = "2026-01-17 17:45:23"
[2026-01-17 23:45:26] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-01-17 23:45:26] [INFO]   -> No value found (null or empty)
[2026-01-17 23:45:26] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-01-17 23:45:26] [INFO]   -> No value found (null or empty)
[2026-01-17 23:45:26] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-01-17 23:45:26] [INFO]   -> No value found (null or empty)
[2026-01-17 23:45:26] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-01-17 23:45:26] [INFO]   -> No value found (null or empty)
[2026-01-17 23:45:26] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-01-17 23:45:26] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-01-17 23:45:26] [INFO]   -> Found value: 20260006396
[2026-01-17 23:45:26] [INFO]   -> Set field 'policeReportNumber' = "20260006396"
[2026-01-17 23:45:26] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-01-17 23:45:26] [INFO]   -> Found value: [EMS] 33 YOM  [01/17/26 17:45:18 JDICK] Event spawned from CHEST PAIN.  [01/17/2026 17:45:08 JDICK] ...
[2026-01-17 23:45:26] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 33 YOM  [01\/17\/26 17:45:18 JDICK] Event spawned from CHEST PAIN.  [01\/17\/2026 17:45:08 JDICK] VERY DISTRESSED  [01\/17\/26 17:44:59 JDICK] ELEVATED PULSE  166-  [01\/17\/26 17:44:46 JDICK]"
[2026-01-17 23:45:26] [INFO]   -> Set field 'cADLog' = "[EMS] 33 YOM  [01\/17\/26 17:45:18 JDICK] Event spawned from CHEST PAIN.  [01\/17\/2026 17:45:08 JDICK] VERY DISTRESSED  [01\/17\/26 17:44:59 JDICK] ELEVATED PULSE  166-  [01\/17\/26 17:44:46 JDICK]"
[2026-01-17 23:45:26] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-01-17 23:45:26] [INFO]   -> Found value: SILVER POINT
[2026-01-17 23:45:26] [INFO]   -> Set field 'incidentLocationCity' = "SILVER POINT"
[2026-01-17 23:45:26] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-01-17 23:45:26] [INFO]   -> Found value: KEITH ALLISON
[2026-01-17 23:45:26] [INFO]   -> Set field 'streetName' = "KEITH ALLISON"
[2026-01-17 23:45:26] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-01-17 23:45:26] [INFO]   -> Found value: RD
[2026-01-17 23:45:26] [INFO]   -> Set field 'streetType' = "RD"
[2026-01-17 23:45:26] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-01-17 23:45:26] [INFO]   -> Found value: 6700 KEITH ALLISON RD
[2026-01-17 23:45:26] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "6700 KEITH ALLISON RD"
[2026-01-17 23:45:26] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-01-17 23:45:26] [INFO] Concatenating street name and type
[2026-01-17 23:45:26] [INFO]   -> Combined street name: KEITH ALLISON RD
[2026-01-17 23:45:26] [INFO] Built locationCoordinates from lat/lng: 36.08691,-85.72269
[2026-01-17 23:45:26] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000155","dispatchRunNumber":"2026000155","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":6700,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38582,"nERISIncidentLatitude":36.0869100000000031513991416431963443756103515625,"nERISIncidentLongitude":-85.72269000000000005456968210637569427490234375,"alarm":"2026-01-17 17:45:08","dispatched":"2026-01-17 17:45:23","cADVehicleID":"PCFR","timedispatch":"2026-01-17 17:45:23","policeReportNumber":"20260006396","dispatchNotes":"[EMS] 33 YOM  [01\/17\/26 17:45:18 JDICK] Event spawned from CHEST PAIN.  [01\/17\/2026 17:45:08 JDICK] VERY DISTRESSED  [01\/17\/26 17:44:59 JDICK] ELEVATED PULSE  166-  [01\/17\/26 17:44:46 JDICK]","cADLog":"[EMS] 33 YOM  [01\/17\/26 17:45:18 JDICK] Event spawned from CHEST PAIN.  [01\/17\/2026 17:45:08 JDICK] VERY DISTRESSED  [01\/17\/26 17:44:59 JDICK] ELEVATED PULSE  166-  [01\/17\/26 17:44:46 JDICK]","incidentLocationCity":"SILVER POINT","streetName":"KEITH ALLISON RD","incidentAddressTextVersionStreet":"6700 KEITH ALLISON RD","locationCoordinates":"36.08691,-85.72269"}
[2026-01-17 23:45:26] [INFO] Number of extracted fields: 20
[2026-01-17 23:45:26] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-01-17 23:45:26] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-01-17 23:45:26] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-01-17 23:45:26] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-01-17 23:45:26] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-01-17 23:45:26] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-01-17 23:45: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-01-17 23:45:26] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-01-17 23:45:26] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-01-17 23:45:26] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-01-17 23:45:26] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-01-17 23:45:26] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-01-17 23:45:34] [INFO] Created new Dispatches record with ID: 696c1f173aeda1287
[2026-01-17 23:45:34] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006396_20260117_234526.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-01-17/PCFD_20260006396_20260117_234526.XML
[2026-01-17 23:45:34] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260006396_20260117_234526.XML
