[2026-03-14 04:21:23] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042123.XML
[2026-03-14 04:21:23] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042123.XML for user: 68f1466aed072ad4a
[2026-03-14 04:21:23] [INFO] File size: 4858 bytes
[2026-03-14 04:21:24] [INFO] Created FTPFiles record with ID: 69b4e2441c5cdaaac
[2026-03-14 04:21:24] [INFO] About to extract fields from XML. File size: 4858 bytes
[2026-03-14 04:21:24] [INFO] Number of mappings: 28
[2026-03-14 04:21:24] [INFO] Starting XML parsing. Content length: 4858
[2026-03-14 04:21:24] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 04:21:24] [INFO] Processing 28 field mappings
[2026-03-14 04:21:24] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 04:21:24] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 04:21:24] [INFO]   -> Found value: PCFD
[2026-03-14 04:21:24] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-14 04:21:24] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 04:21:24] [INFO]   -> Found value: 2026000684
[2026-03-14 04:21:24] [INFO]   -> Set field 'incidentInternalId' = "2026000684"
[2026-03-14 04:21:24] [INFO]   -> Set field 'dispatchRunNumber' = "2026000684"
[2026-03-14 04:21:24] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 04:21:24] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-14 04:21:24] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-14 04:21:24] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 04:21:24] [INFO]   -> Found value: 7434
[2026-03-14 04:21:24] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7434
[2026-03-14 04:21:24] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 04:21:24] [INFO]   -> Found value: TN
[2026-03-14 04:21:24] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 04:21:24] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 04:21:24] [INFO]   -> Found value: 38582
[2026-03-14 04:21:24] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38582
[2026-03-14 04:21:24] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 04:21:24] [INFO]   -> No value found (null or empty)
[2026-03-14 04:21:24] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 04:21:24] [INFO]   -> No value found (null or empty)
[2026-03-14 04:21:24] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 04:21:24] [INFO]   -> Found value: 36.08855
[2026-03-14 04:21:24] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.08854999999999790816218592226505279541015625
[2026-03-14 04:21:24] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 04:21:24] [INFO]   -> Found value: -85.68993
[2026-03-14 04:21:24] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.68993000000000392901711165904998779296875
[2026-03-14 04:21:24] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 04:21:24] [INFO]   -> Found value: 2026-03-13 23:19:22
[2026-03-14 04:21:24] [INFO]   -> Set field 'alarm' = "2026-03-13 23:19:22"
[2026-03-14 04:21:24] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 04:21:24] [INFO]   -> Found value: 2026-03-13 23:21:18
[2026-03-14 04:21:24] [INFO]   -> Set field 'dispatched' = "2026-03-13 23:21:18"
[2026-03-14 04:21:24] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 04:21:24] [INFO]   -> No value found (null or empty)
[2026-03-14 04:21:24] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 04:21:24] [INFO]   -> No value found (null or empty)
[2026-03-14 04:21:24] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 04:21:24] [INFO]   -> No value found (null or empty)
[2026-03-14 04:21:24] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 04:21:24] [INFO]   -> Found value: SARAH THOMAS RD
[2026-03-14 04:21:24] [INFO]   -> Set field 'incidentLocationCross' = "SARAH THOMAS RD"
[2026-03-14 04:21:24] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 04:21:24] [INFO]   -> Found value: EN33
[2026-03-14 04:21:24] [INFO]   -> Set field 'cADVehicleID' = "EN33"
[2026-03-14 04:21:24] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 04:21:24] [INFO]   -> Found value: 2026-03-13 23:21:18
[2026-03-14 04:21:24] [INFO]   -> Set field 'timedispatch' = "2026-03-13 23:21:18"
[2026-03-14 04:21:24] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 04:21:24] [INFO]   -> No value found (null or empty)
[2026-03-14 04:21:24] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 04:21:24] [INFO]   -> No value found (null or empty)
[2026-03-14 04:21:24] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 04:21:24] [INFO]   -> No value found (null or empty)
[2026-03-14 04:21:24] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 04:21:24] [INFO]   -> No value found (null or empty)
[2026-03-14 04:21:24] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 04:21:24] [INFO]   -> Found value: 20260027793
[2026-03-14 04:21:24] [INFO]   -> Set field 'policeReportNumber' = "20260027793"
[2026-03-14 04:21:24] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 04:21:24] [INFO]   -> Found value: UDTS: CARD SEEN BY 911  [03/13/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out...
[2026-03-14 04:21:24] [INFO]   -> Set field 'dispatchNotes' = "UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]"
[2026-03-14 04:21:24] [INFO]   -> Set field 'cADLog' = "UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]"
[2026-03-14 04:21:24] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 04:21:24] [INFO]   -> Found value: SILVER POINT
[2026-03-14 04:21:24] [INFO]   -> Set field 'incidentLocationCity' = "SILVER POINT"
[2026-03-14 04:21:24] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 04:21:24] [INFO]   -> Found value: CARRS CHAPEL
[2026-03-14 04:21:24] [INFO]   -> Set field 'streetName' = "CARRS CHAPEL"
[2026-03-14 04:21:24] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 04:21:24] [INFO]   -> Found value: RD
[2026-03-14 04:21:24] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-14 04:21:24] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 04:21:24] [INFO]   -> Found value: 7434 CARRS CHAPEL RD
[2026-03-14 04:21:24] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7434 CARRS CHAPEL RD"
[2026-03-14 04:21:24] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-14 04:21:24] [INFO] Concatenating street name and type
[2026-03-14 04:21:24] [INFO]   -> Combined street name: CARRS CHAPEL RD
[2026-03-14 04:21:24] [INFO] Built locationCoordinates from lat/lng: 36.08855,-85.68993
[2026-03-14 04:21:24] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000684","dispatchRunNumber":"2026000684","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":7434,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38582,"nERISIncidentLatitude":36.08854999999999790816218592226505279541015625,"nERISIncidentLongitude":-85.68993000000000392901711165904998779296875,"alarm":"2026-03-13 23:19:22","dispatched":"2026-03-13 23:21:18","incidentLocationCross":"SARAH THOMAS RD","cADVehicleID":"EN33","timedispatch":"2026-03-13 23:21:18","policeReportNumber":"20260027793","dispatchNotes":"UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]","cADLog":"UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]","incidentLocationCity":"SILVER POINT","streetName":"CARRS CHAPEL RD","incidentAddressTextVersionStreet":"7434 CARRS CHAPEL RD","locationCoordinates":"36.08855,-85.68993"}
[2026-03-14 04:21:24] [INFO] Number of extracted fields: 21
[2026-03-14 04:21:24] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-14 04:21:24] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-14 04:21:24] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-14 04:21:24] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 04:21:24] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 04:21:24] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 04:21:24] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 04:21:24] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 04:21:24] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-14 04:21:34] [INFO] Created new Dispatches record with ID: 69b4e244e496598b5
[2026-03-14 04:21:34] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14
[2026-03-14 04:21:34] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042123.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027793_20260314_042123.XML
[2026-03-14 04:21:34] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042123.XML
[2026-03-14 04:23:54] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042354.XML
[2026-03-14 04:23:54] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042354.XML for user: 68f1466aed072ad4a
[2026-03-14 04:23:54] [INFO] File size: 5791 bytes
[2026-03-14 04:23:55] [INFO] Created FTPFiles record with ID: 69b4e2db0887a74c1
[2026-03-14 04:23:55] [INFO] About to extract fields from XML. File size: 5791 bytes
[2026-03-14 04:23:55] [INFO] Number of mappings: 28
[2026-03-14 04:23:55] [INFO] Starting XML parsing. Content length: 5791
[2026-03-14 04:23:55] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 04:23:55] [INFO] Processing 28 field mappings
[2026-03-14 04:23:55] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 04:23:55] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 04:23:55] [INFO]   -> Found value: PCFD
[2026-03-14 04:23:55] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-14 04:23:55] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 04:23:55] [INFO]   -> Found value: 2026000684
[2026-03-14 04:23:55] [INFO]   -> Set field 'incidentInternalId' = "2026000684"
[2026-03-14 04:23:55] [INFO]   -> Set field 'dispatchRunNumber' = "2026000684"
[2026-03-14 04:23:55] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 04:23:55] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-14 04:23:55] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-14 04:23:55] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 04:23:55] [INFO]   -> Found value: 7434
[2026-03-14 04:23:55] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7434
[2026-03-14 04:23:55] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 04:23:55] [INFO]   -> Found value: TN
[2026-03-14 04:23:55] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 04:23:55] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 04:23:55] [INFO]   -> Found value: 38582
[2026-03-14 04:23:55] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38582
[2026-03-14 04:23:55] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 04:23:55] [INFO]   -> No value found (null or empty)
[2026-03-14 04:23:55] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 04:23:55] [INFO]   -> No value found (null or empty)
[2026-03-14 04:23:55] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 04:23:55] [INFO]   -> Found value: 36.08855
[2026-03-14 04:23:55] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.08854999999999790816218592226505279541015625
[2026-03-14 04:23:55] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 04:23:55] [INFO]   -> Found value: -85.68993
[2026-03-14 04:23:55] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.68993000000000392901711165904998779296875
[2026-03-14 04:23:55] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 04:23:55] [INFO]   -> Found value: 2026-03-13 23:19:22
[2026-03-14 04:23:55] [INFO]   -> Set field 'alarm' = "2026-03-13 23:19:22"
[2026-03-14 04:23:55] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 04:23:55] [INFO]   -> Found value: 2026-03-13 23:21:18
[2026-03-14 04:23:55] [INFO]   -> Set field 'dispatched' = "2026-03-13 23:21:18"
[2026-03-14 04:23:55] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 04:23:55] [INFO]   -> No value found (null or empty)
[2026-03-14 04:23:55] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 04:23:55] [INFO]   -> No value found (null or empty)
[2026-03-14 04:23:55] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 04:23:55] [INFO]   -> No value found (null or empty)
[2026-03-14 04:23:55] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 04:23:55] [INFO]   -> Found value: SARAH THOMAS RD
[2026-03-14 04:23:55] [INFO]   -> Set field 'incidentLocationCross' = "SARAH THOMAS RD"
[2026-03-14 04:23:55] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 04:23:55] [INFO]   -> Found value: EN33
[2026-03-14 04:23:55] [INFO]   -> Set field 'cADVehicleID' = "EN33"
[2026-03-14 04:23:55] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 04:23:55] [INFO]   -> Found value: 2026-03-13 23:21:18
[2026-03-14 04:23:55] [INFO]   -> Set field 'timedispatch' = "2026-03-13 23:21:18"
[2026-03-14 04:23:55] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 04:23:55] [INFO]   -> No value found (null or empty)
[2026-03-14 04:23:55] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 04:23:55] [INFO]   -> No value found (null or empty)
[2026-03-14 04:23:55] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 04:23:55] [INFO]   -> Found value: 2026-03-13 23:23:51
[2026-03-14 04:23:55] [INFO]   -> Set field 'timeunitclear' = "2026-03-13 23:23:51"
[2026-03-14 04:23:55] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 04:23:55] [INFO]   -> Found value: 2026-03-13 23:23:51
[2026-03-14 04:23:55] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-13 23:23:51"
[2026-03-14 04:23:55] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 04:23:55] [INFO]   -> Found value: 20260027793
[2026-03-14 04:23:55] [INFO]   -> Set field 'policeReportNumber' = "20260027793"
[2026-03-14 04:23:55] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 04:23:55] [INFO]   -> Found value: FIRE IS CURRENTLY ATTENDED  [03/13/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNI...
[2026-03-14 04:23:55] [INFO]   -> Set field 'dispatchNotes' = "FIRE IS CURRENTLY ATTENDED  [03\/13\/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNING  [03\/13\/26 23:22:07 EALMENDAREZ] UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]"
[2026-03-14 04:23:55] [INFO]   -> Set field 'cADLog' = "FIRE IS CURRENTLY ATTENDED  [03\/13\/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNING  [03\/13\/26 23:22:07 EALMENDAREZ] UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]"
[2026-03-14 04:23:55] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 04:23:55] [INFO]   -> Found value: SILVER POINT
[2026-03-14 04:23:55] [INFO]   -> Set field 'incidentLocationCity' = "SILVER POINT"
[2026-03-14 04:23:55] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 04:23:55] [INFO]   -> Found value: CARRS CHAPEL
[2026-03-14 04:23:55] [INFO]   -> Set field 'streetName' = "CARRS CHAPEL"
[2026-03-14 04:23:55] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 04:23:55] [INFO]   -> Found value: RD
[2026-03-14 04:23:55] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-14 04:23:55] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 04:23:55] [INFO]   -> Found value: 7434 CARRS CHAPEL RD
[2026-03-14 04:23:55] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7434 CARRS CHAPEL RD"
[2026-03-14 04:23:55] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-14 04:23:55] [INFO] Concatenating street name and type
[2026-03-14 04:23:55] [INFO]   -> Combined street name: CARRS CHAPEL RD
[2026-03-14 04:23:55] [INFO] Built locationCoordinates from lat/lng: 36.08855,-85.68993
[2026-03-14 04:23:55] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000684","dispatchRunNumber":"2026000684","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":7434,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38582,"nERISIncidentLatitude":36.08854999999999790816218592226505279541015625,"nERISIncidentLongitude":-85.68993000000000392901711165904998779296875,"alarm":"2026-03-13 23:19:22","dispatched":"2026-03-13 23:21:18","incidentLocationCross":"SARAH THOMAS RD","cADVehicleID":"EN33","timedispatch":"2026-03-13 23:21:18","timeunitclear":"2026-03-13 23:23:51","timecanceledenroute":"2026-03-13 23:23:51","policeReportNumber":"20260027793","dispatchNotes":"FIRE IS CURRENTLY ATTENDED  [03\/13\/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNING  [03\/13\/26 23:22:07 EALMENDAREZ] UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]","cADLog":"FIRE IS CURRENTLY ATTENDED  [03\/13\/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNING  [03\/13\/26 23:22:07 EALMENDAREZ] UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]","incidentLocationCity":"SILVER POINT","streetName":"CARRS CHAPEL RD","incidentAddressTextVersionStreet":"7434 CARRS CHAPEL RD","locationCoordinates":"36.08855,-85.68993"}
[2026-03-14 04:23:55] [INFO] Number of extracted fields: 23
[2026-03-14 04:23:55] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-14 04:23:55] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-14 04:23:55] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-14 04:23:55] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 04:23:55] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 04:23:55] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 04:23:55] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 04:23:55] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 04:23:55] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-14 04:23:55] [INFO] Found existing Dispatch with cADNumber '2026000684', ID: 69b4e244e496598b5 - will update instead of create
[2026-03-14 04:23:55] [INFO] Updated existing Dispatches record with ID: 69b4e244e496598b5
[2026-03-14 04:23:55] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042354.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027793_20260314_042354.XML
[2026-03-14 04:23:55] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042354.XML
[2026-03-14 04:23:56] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042356.XML
[2026-03-14 04:23:56] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042356.XML for user: 68f1466aed072ad4a
[2026-03-14 04:23:56] [INFO] File size: 5791 bytes
[2026-03-14 04:23:56] [INFO] Created FTPFiles record with ID: 69b4e2dc6b5b24276
[2026-03-14 04:23:56] [INFO] About to extract fields from XML. File size: 5791 bytes
[2026-03-14 04:23:56] [INFO] Number of mappings: 28
[2026-03-14 04:23:56] [INFO] Starting XML parsing. Content length: 5791
[2026-03-14 04:23:56] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 04:23:56] [INFO] Processing 28 field mappings
[2026-03-14 04:23:56] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 04:23:56] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 04:23:56] [INFO]   -> Found value: PCFD
[2026-03-14 04:23:56] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-14 04:23:56] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 04:23:56] [INFO]   -> Found value: 2026000684
[2026-03-14 04:23:56] [INFO]   -> Set field 'incidentInternalId' = "2026000684"
[2026-03-14 04:23:56] [INFO]   -> Set field 'dispatchRunNumber' = "2026000684"
[2026-03-14 04:23:56] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 04:23:56] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-14 04:23:56] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-14 04:23:56] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 04:23:56] [INFO]   -> Found value: 7434
[2026-03-14 04:23:56] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7434
[2026-03-14 04:23:56] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 04:23:56] [INFO]   -> Found value: TN
[2026-03-14 04:23:56] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 04:23:56] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 04:23:56] [INFO]   -> Found value: 38582
[2026-03-14 04:23:56] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38582
[2026-03-14 04:23:56] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 04:23:56] [INFO]   -> No value found (null or empty)
[2026-03-14 04:23:56] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 04:23:56] [INFO]   -> No value found (null or empty)
[2026-03-14 04:23:56] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 04:23:56] [INFO]   -> Found value: 36.08855
[2026-03-14 04:23:56] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.08854999999999790816218592226505279541015625
[2026-03-14 04:23:56] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 04:23:56] [INFO]   -> Found value: -85.68993
[2026-03-14 04:23:56] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.68993000000000392901711165904998779296875
[2026-03-14 04:23:56] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 04:23:56] [INFO]   -> Found value: 2026-03-13 23:19:22
[2026-03-14 04:23:56] [INFO]   -> Set field 'alarm' = "2026-03-13 23:19:22"
[2026-03-14 04:23:56] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 04:23:56] [INFO]   -> Found value: 2026-03-13 23:21:18
[2026-03-14 04:23:56] [INFO]   -> Set field 'dispatched' = "2026-03-13 23:21:18"
[2026-03-14 04:23:56] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 04:23:56] [INFO]   -> No value found (null or empty)
[2026-03-14 04:23:56] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 04:23:56] [INFO]   -> No value found (null or empty)
[2026-03-14 04:23:56] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 04:23:56] [INFO]   -> No value found (null or empty)
[2026-03-14 04:23:56] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 04:23:56] [INFO]   -> Found value: SARAH THOMAS RD
[2026-03-14 04:23:56] [INFO]   -> Set field 'incidentLocationCross' = "SARAH THOMAS RD"
[2026-03-14 04:23:56] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 04:23:56] [INFO]   -> Found value: EN33
[2026-03-14 04:23:56] [INFO]   -> Set field 'cADVehicleID' = "EN33"
[2026-03-14 04:23:56] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 04:23:56] [INFO]   -> Found value: 2026-03-13 23:21:18
[2026-03-14 04:23:56] [INFO]   -> Set field 'timedispatch' = "2026-03-13 23:21:18"
[2026-03-14 04:23:56] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 04:23:56] [INFO]   -> No value found (null or empty)
[2026-03-14 04:23:56] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 04:23:56] [INFO]   -> No value found (null or empty)
[2026-03-14 04:23:56] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 04:23:56] [INFO]   -> Found value: 2026-03-13 23:23:51
[2026-03-14 04:23:56] [INFO]   -> Set field 'timeunitclear' = "2026-03-13 23:23:51"
[2026-03-14 04:23:56] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 04:23:56] [INFO]   -> Found value: 2026-03-13 23:23:51
[2026-03-14 04:23:56] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-13 23:23:51"
[2026-03-14 04:23:56] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 04:23:56] [INFO]   -> Found value: 20260027793
[2026-03-14 04:23:56] [INFO]   -> Set field 'policeReportNumber' = "20260027793"
[2026-03-14 04:23:56] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 04:23:56] [INFO]   -> Found value: FIRE IS CURRENTLY ATTENDED  [03/13/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNI...
[2026-03-14 04:23:56] [INFO]   -> Set field 'dispatchNotes' = "FIRE IS CURRENTLY ATTENDED  [03\/13\/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNING  [03\/13\/26 23:22:07 EALMENDAREZ] UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]"
[2026-03-14 04:23:56] [INFO]   -> Set field 'cADLog' = "FIRE IS CURRENTLY ATTENDED  [03\/13\/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNING  [03\/13\/26 23:22:07 EALMENDAREZ] UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]"
[2026-03-14 04:23:56] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 04:23:56] [INFO]   -> Found value: SILVER POINT
[2026-03-14 04:23:56] [INFO]   -> Set field 'incidentLocationCity' = "SILVER POINT"
[2026-03-14 04:23:56] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 04:23:56] [INFO]   -> Found value: CARRS CHAPEL
[2026-03-14 04:23:56] [INFO]   -> Set field 'streetName' = "CARRS CHAPEL"
[2026-03-14 04:23:56] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 04:23:56] [INFO]   -> Found value: RD
[2026-03-14 04:23:56] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-14 04:23:56] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 04:23:56] [INFO]   -> Found value: 7434 CARRS CHAPEL RD
[2026-03-14 04:23:56] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7434 CARRS CHAPEL RD"
[2026-03-14 04:23:56] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-14 04:23:56] [INFO] Concatenating street name and type
[2026-03-14 04:23:56] [INFO]   -> Combined street name: CARRS CHAPEL RD
[2026-03-14 04:23:56] [INFO] Built locationCoordinates from lat/lng: 36.08855,-85.68993
[2026-03-14 04:23:56] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000684","dispatchRunNumber":"2026000684","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":7434,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38582,"nERISIncidentLatitude":36.08854999999999790816218592226505279541015625,"nERISIncidentLongitude":-85.68993000000000392901711165904998779296875,"alarm":"2026-03-13 23:19:22","dispatched":"2026-03-13 23:21:18","incidentLocationCross":"SARAH THOMAS RD","cADVehicleID":"EN33","timedispatch":"2026-03-13 23:21:18","timeunitclear":"2026-03-13 23:23:51","timecanceledenroute":"2026-03-13 23:23:51","policeReportNumber":"20260027793","dispatchNotes":"FIRE IS CURRENTLY ATTENDED  [03\/13\/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNING  [03\/13\/26 23:22:07 EALMENDAREZ] UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]","cADLog":"FIRE IS CURRENTLY ATTENDED  [03\/13\/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNING  [03\/13\/26 23:22:07 EALMENDAREZ] UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]","incidentLocationCity":"SILVER POINT","streetName":"CARRS CHAPEL RD","incidentAddressTextVersionStreet":"7434 CARRS CHAPEL RD","locationCoordinates":"36.08855,-85.68993"}
[2026-03-14 04:23:56] [INFO] Number of extracted fields: 23
[2026-03-14 04:23:56] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-14 04:23:56] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-14 04:23:56] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-14 04:23:56] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 04:23:56] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 04:23:56] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 04:23:56] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 04:23:56] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 04:23:56] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-14 04:23:57] [INFO] Found existing Dispatch with cADNumber '2026000684', ID: 69b4e244e496598b5 - will update instead of create
[2026-03-14 04:23:57] [INFO] Updated existing Dispatches record with ID: 69b4e244e496598b5
[2026-03-14 04:23:57] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042356.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027793_20260314_042356.XML
[2026-03-14 04:23:57] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042356.XML
[2026-03-14 04:23:59] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042359.XML
[2026-03-14 04:23:59] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042359.XML for user: 68f1466aed072ad4a
[2026-03-14 04:23:59] [INFO] File size: 5858 bytes
[2026-03-14 04:24:00] [INFO] Created FTPFiles record with ID: 69b4e2e0235963a48
[2026-03-14 04:24:00] [INFO] About to extract fields from XML. File size: 5858 bytes
[2026-03-14 04:24:00] [INFO] Number of mappings: 28
[2026-03-14 04:24:00] [INFO] Starting XML parsing. Content length: 5858
[2026-03-14 04:24:00] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 04:24:00] [INFO] Processing 28 field mappings
[2026-03-14 04:24:00] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 04:24:00] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 04:24:00] [INFO]   -> Found value: PCFD
[2026-03-14 04:24:00] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-14 04:24:00] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 04:24:00] [INFO]   -> Found value: 2026000684
[2026-03-14 04:24:00] [INFO]   -> Set field 'incidentInternalId' = "2026000684"
[2026-03-14 04:24:00] [INFO]   -> Set field 'dispatchRunNumber' = "2026000684"
[2026-03-14 04:24:00] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 04:24:00] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-14 04:24:00] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-14 04:24:00] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 04:24:00] [INFO]   -> Found value: 7434
[2026-03-14 04:24:00] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7434
[2026-03-14 04:24:00] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 04:24:00] [INFO]   -> Found value: TN
[2026-03-14 04:24:00] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 04:24:00] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 04:24:00] [INFO]   -> Found value: 38582
[2026-03-14 04:24:00] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38582
[2026-03-14 04:24:00] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 04:24:00] [INFO]   -> No value found (null or empty)
[2026-03-14 04:24:00] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 04:24:00] [INFO]   -> No value found (null or empty)
[2026-03-14 04:24:00] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 04:24:00] [INFO]   -> Found value: 36.08855
[2026-03-14 04:24:00] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.08854999999999790816218592226505279541015625
[2026-03-14 04:24:00] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 04:24:00] [INFO]   -> Found value: -85.68993
[2026-03-14 04:24:00] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.68993000000000392901711165904998779296875
[2026-03-14 04:24:00] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 04:24:00] [INFO]   -> Found value: 2026-03-13 23:19:22
[2026-03-14 04:24:00] [INFO]   -> Set field 'alarm' = "2026-03-13 23:19:22"
[2026-03-14 04:24:00] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 04:24:00] [INFO]   -> Found value: 2026-03-13 23:21:18
[2026-03-14 04:24:00] [INFO]   -> Set field 'dispatched' = "2026-03-13 23:21:18"
[2026-03-14 04:24:00] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 04:24:00] [INFO]   -> Found value: 2026-03-13 23:23:54
[2026-03-14 04:24:00] [INFO]   -> Set field 'enroute' = "2026-03-13 23:23:54"
[2026-03-14 04:24:00] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 04:24:00] [INFO]   -> No value found (null or empty)
[2026-03-14 04:24:00] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 04:24:00] [INFO]   -> No value found (null or empty)
[2026-03-14 04:24:00] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 04:24:00] [INFO]   -> Found value: SARAH THOMAS RD
[2026-03-14 04:24:00] [INFO]   -> Set field 'incidentLocationCross' = "SARAH THOMAS RD"
[2026-03-14 04:24:00] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 04:24:00] [INFO]   -> Found value: TK31
[2026-03-14 04:24:00] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-14 04:24:00] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 04:24:00] [INFO]   -> Found value: 2026-03-13 23:23:51
[2026-03-14 04:24:00] [INFO]   -> Set field 'timedispatch' = "2026-03-13 23:23:51"
[2026-03-14 04:24:00] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 04:24:00] [INFO]   -> Found value: 2026-03-13 23:23:54
[2026-03-14 04:24:00] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-13 23:23:54"
[2026-03-14 04:24:00] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 04:24:00] [INFO]   -> No value found (null or empty)
[2026-03-14 04:24:00] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 04:24:00] [INFO]   -> No value found (null or empty)
[2026-03-14 04:24:00] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 04:24:00] [INFO]   -> No value found (null or empty)
[2026-03-14 04:24:00] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 04:24:00] [INFO]   -> Found value: 20260027793
[2026-03-14 04:24:00] [INFO]   -> Set field 'policeReportNumber' = "20260027793"
[2026-03-14 04:24:00] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 04:24:00] [INFO]   -> Found value: FIRE IS CURRENTLY ATTENDED  [03/13/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNI...
[2026-03-14 04:24:00] [INFO]   -> Set field 'dispatchNotes' = "FIRE IS CURRENTLY ATTENDED  [03\/13\/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNING  [03\/13\/26 23:22:07 EALMENDAREZ] UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]"
[2026-03-14 04:24:00] [INFO]   -> Set field 'cADLog' = "FIRE IS CURRENTLY ATTENDED  [03\/13\/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNING  [03\/13\/26 23:22:07 EALMENDAREZ] UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]"
[2026-03-14 04:24:00] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 04:24:00] [INFO]   -> Found value: SILVER POINT
[2026-03-14 04:24:00] [INFO]   -> Set field 'incidentLocationCity' = "SILVER POINT"
[2026-03-14 04:24:00] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 04:24:00] [INFO]   -> Found value: CARRS CHAPEL
[2026-03-14 04:24:00] [INFO]   -> Set field 'streetName' = "CARRS CHAPEL"
[2026-03-14 04:24:00] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 04:24:00] [INFO]   -> Found value: RD
[2026-03-14 04:24:00] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-14 04:24:00] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 04:24:00] [INFO]   -> Found value: 7434 CARRS CHAPEL RD
[2026-03-14 04:24:00] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7434 CARRS CHAPEL RD"
[2026-03-14 04:24:00] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-14 04:24:00] [INFO] Concatenating street name and type
[2026-03-14 04:24:00] [INFO]   -> Combined street name: CARRS CHAPEL RD
[2026-03-14 04:24:00] [INFO] Built locationCoordinates from lat/lng: 36.08855,-85.68993
[2026-03-14 04:24:00] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000684","dispatchRunNumber":"2026000684","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":7434,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38582,"nERISIncidentLatitude":36.08854999999999790816218592226505279541015625,"nERISIncidentLongitude":-85.68993000000000392901711165904998779296875,"alarm":"2026-03-13 23:19:22","dispatched":"2026-03-13 23:21:18","enroute":"2026-03-13 23:23:54","incidentLocationCross":"SARAH THOMAS RD","cADVehicleID":"TK31","timedispatch":"2026-03-13 23:23:51","timeenroutetoscene":"2026-03-13 23:23:54","policeReportNumber":"20260027793","dispatchNotes":"FIRE IS CURRENTLY ATTENDED  [03\/13\/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNING  [03\/13\/26 23:22:07 EALMENDAREZ] UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]","cADLog":"FIRE IS CURRENTLY ATTENDED  [03\/13\/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNING  [03\/13\/26 23:22:07 EALMENDAREZ] UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]","incidentLocationCity":"SILVER POINT","streetName":"CARRS CHAPEL RD","incidentAddressTextVersionStreet":"7434 CARRS CHAPEL RD","locationCoordinates":"36.08855,-85.68993"}
[2026-03-14 04:24:00] [INFO] Number of extracted fields: 23
[2026-03-14 04:24:00] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-14 04:24:00] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-14 04:24:00] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-14 04:24:00] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 04:24:00] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 04:24:00] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 04:24:00] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 04:24:00] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 04:24:00] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-14 04:24:00] [INFO] Found existing Dispatch with cADNumber '2026000684', ID: 69b4e244e496598b5 - will update instead of create
[2026-03-14 04:24:00] [INFO] Updated existing Dispatches record with ID: 69b4e244e496598b5
[2026-03-14 04:24:00] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042359.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027793_20260314_042359.XML
[2026-03-14 04:24:00] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042359.XML
[2026-03-14 04:24:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042400.XML
[2026-03-14 04:24:01] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042400.XML for user: 68f1466aed072ad4a
[2026-03-14 04:24:01] [INFO] File size: 5858 bytes
[2026-03-14 04:24:01] [INFO] Created FTPFiles record with ID: 69b4e2e14e92d1359
[2026-03-14 04:24:01] [INFO] About to extract fields from XML. File size: 5858 bytes
[2026-03-14 04:24:01] [INFO] Number of mappings: 28
[2026-03-14 04:24:01] [INFO] Starting XML parsing. Content length: 5858
[2026-03-14 04:24:01] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 04:24:01] [INFO] Processing 28 field mappings
[2026-03-14 04:24:01] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 04:24:01] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 04:24:01] [INFO]   -> Found value: PCFD
[2026-03-14 04:24:01] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-14 04:24:01] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 04:24:01] [INFO]   -> Found value: 2026000684
[2026-03-14 04:24:01] [INFO]   -> Set field 'incidentInternalId' = "2026000684"
[2026-03-14 04:24:01] [INFO]   -> Set field 'dispatchRunNumber' = "2026000684"
[2026-03-14 04:24:01] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 04:24:01] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-14 04:24:01] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-14 04:24:01] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 04:24:01] [INFO]   -> Found value: 7434
[2026-03-14 04:24:01] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7434
[2026-03-14 04:24:01] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 04:24:01] [INFO]   -> Found value: TN
[2026-03-14 04:24:01] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 04:24:01] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 04:24:01] [INFO]   -> Found value: 38582
[2026-03-14 04:24:01] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38582
[2026-03-14 04:24:01] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 04:24:01] [INFO]   -> No value found (null or empty)
[2026-03-14 04:24:01] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 04:24:01] [INFO]   -> No value found (null or empty)
[2026-03-14 04:24:01] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 04:24:01] [INFO]   -> Found value: 36.08855
[2026-03-14 04:24:01] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.08854999999999790816218592226505279541015625
[2026-03-14 04:24:01] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 04:24:01] [INFO]   -> Found value: -85.68993
[2026-03-14 04:24:01] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.68993000000000392901711165904998779296875
[2026-03-14 04:24:01] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 04:24:01] [INFO]   -> Found value: 2026-03-13 23:19:22
[2026-03-14 04:24:01] [INFO]   -> Set field 'alarm' = "2026-03-13 23:19:22"
[2026-03-14 04:24:01] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 04:24:01] [INFO]   -> Found value: 2026-03-13 23:21:18
[2026-03-14 04:24:01] [INFO]   -> Set field 'dispatched' = "2026-03-13 23:21:18"
[2026-03-14 04:24:01] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 04:24:01] [INFO]   -> Found value: 2026-03-13 23:23:54
[2026-03-14 04:24:01] [INFO]   -> Set field 'enroute' = "2026-03-13 23:23:54"
[2026-03-14 04:24:01] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 04:24:01] [INFO]   -> No value found (null or empty)
[2026-03-14 04:24:01] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 04:24:01] [INFO]   -> No value found (null or empty)
[2026-03-14 04:24:01] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 04:24:01] [INFO]   -> Found value: SARAH THOMAS RD
[2026-03-14 04:24:01] [INFO]   -> Set field 'incidentLocationCross' = "SARAH THOMAS RD"
[2026-03-14 04:24:01] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 04:24:01] [INFO]   -> Found value: TK31
[2026-03-14 04:24:01] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-14 04:24:01] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 04:24:01] [INFO]   -> Found value: 2026-03-13 23:23:51
[2026-03-14 04:24:01] [INFO]   -> Set field 'timedispatch' = "2026-03-13 23:23:51"
[2026-03-14 04:24:01] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 04:24:01] [INFO]   -> Found value: 2026-03-13 23:23:54
[2026-03-14 04:24:01] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-13 23:23:54"
[2026-03-14 04:24:01] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 04:24:01] [INFO]   -> No value found (null or empty)
[2026-03-14 04:24:01] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 04:24:01] [INFO]   -> No value found (null or empty)
[2026-03-14 04:24:01] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 04:24:01] [INFO]   -> No value found (null or empty)
[2026-03-14 04:24:01] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 04:24:01] [INFO]   -> Found value: 20260027793
[2026-03-14 04:24:01] [INFO]   -> Set field 'policeReportNumber' = "20260027793"
[2026-03-14 04:24:01] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 04:24:01] [INFO]   -> Found value: FIRE IS CURRENTLY ATTENDED  [03/13/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNI...
[2026-03-14 04:24:01] [INFO]   -> Set field 'dispatchNotes' = "FIRE IS CURRENTLY ATTENDED  [03\/13\/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNING  [03\/13\/26 23:22:07 EALMENDAREZ] UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]"
[2026-03-14 04:24:01] [INFO]   -> Set field 'cADLog' = "FIRE IS CURRENTLY ATTENDED  [03\/13\/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNING  [03\/13\/26 23:22:07 EALMENDAREZ] UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]"
[2026-03-14 04:24:01] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 04:24:01] [INFO]   -> Found value: SILVER POINT
[2026-03-14 04:24:01] [INFO]   -> Set field 'incidentLocationCity' = "SILVER POINT"
[2026-03-14 04:24:01] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 04:24:01] [INFO]   -> Found value: CARRS CHAPEL
[2026-03-14 04:24:01] [INFO]   -> Set field 'streetName' = "CARRS CHAPEL"
[2026-03-14 04:24:01] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 04:24:01] [INFO]   -> Found value: RD
[2026-03-14 04:24:01] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-14 04:24:01] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 04:24:01] [INFO]   -> Found value: 7434 CARRS CHAPEL RD
[2026-03-14 04:24:01] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7434 CARRS CHAPEL RD"
[2026-03-14 04:24:01] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-14 04:24:01] [INFO] Concatenating street name and type
[2026-03-14 04:24:01] [INFO]   -> Combined street name: CARRS CHAPEL RD
[2026-03-14 04:24:01] [INFO] Built locationCoordinates from lat/lng: 36.08855,-85.68993
[2026-03-14 04:24:01] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000684","dispatchRunNumber":"2026000684","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":7434,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38582,"nERISIncidentLatitude":36.08854999999999790816218592226505279541015625,"nERISIncidentLongitude":-85.68993000000000392901711165904998779296875,"alarm":"2026-03-13 23:19:22","dispatched":"2026-03-13 23:21:18","enroute":"2026-03-13 23:23:54","incidentLocationCross":"SARAH THOMAS RD","cADVehicleID":"TK31","timedispatch":"2026-03-13 23:23:51","timeenroutetoscene":"2026-03-13 23:23:54","policeReportNumber":"20260027793","dispatchNotes":"FIRE IS CURRENTLY ATTENDED  [03\/13\/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNING  [03\/13\/26 23:22:07 EALMENDAREZ] UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]","cADLog":"FIRE IS CURRENTLY ATTENDED  [03\/13\/26 23:22:53 EALMENDAREZ] 7436 IS THE ADDRESS WHERE THEY ARE BURNING  [03\/13\/26 23:22:07 EALMENDAREZ] UDTS: CARD SEEN BY 911  [03\/13\/26 23:20:23 DSWINK] neighbors have bon fire going  prev fire took out part of a double wide and a shed  caller afriad its going to get out of control  [03\/13\/26 23:19:58 CHERNANDEZ]]","incidentLocationCity":"SILVER POINT","streetName":"CARRS CHAPEL RD","incidentAddressTextVersionStreet":"7434 CARRS CHAPEL RD","locationCoordinates":"36.08855,-85.68993"}
[2026-03-14 04:24:01] [INFO] Number of extracted fields: 23
[2026-03-14 04:24:01] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-14 04:24:01] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-14 04:24:01] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-14 04:24:01] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 04:24:01] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 04:24:01] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 04:24:01] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 04:24:01] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 04:24:01] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-14 04:24:01] [INFO] Found existing Dispatch with cADNumber '2026000684', ID: 69b4e244e496598b5 - will update instead of create
[2026-03-14 04:24:02] [INFO] Updated existing Dispatches record with ID: 69b4e244e496598b5
[2026-03-14 04:24:02] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042400.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027793_20260314_042400.XML
[2026-03-14 04:24:02] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027793_20260314_042400.XML
[2026-03-14 04:34:53] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-07688.xml
[2026-03-14 04:34:53] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-07688.xml for user: 68d56363ec1209189
[2026-03-14 04:34:53] [INFO] File size: 1526 bytes
[2026-03-14 04:34:54] [INFO] Created FTPFiles record with ID: 69b4e56e466784166
[2026-03-14 04:34:54] [INFO] About to extract fields from XML. File size: 1526 bytes
[2026-03-14 04:34:54] [INFO] Number of mappings: 21
[2026-03-14 04:34:54] [INFO] Starting XML parsing. Content length: 1526
[2026-03-14 04:34:54] [INFO] XML parsed successfully. Root element: Incident
[2026-03-14 04:34:54] [INFO] Processing 21 field mappings
[2026-03-14 04:34:54] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-14 04:34:54] [INFO]   -> Found value: 26-07688
[2026-03-14 04:34:54] [INFO]   -> Set field 'dispatchRunNumber' = "26-07688"
[2026-03-14 04:34:54] [INFO]   -> Set field 'cADNumber' = "26-07688"
[2026-03-14 04:34:54] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-14 04:34:54] [INFO]   -> Found value: 65
[2026-03-14 04:34:54] [INFO]   -> Set field 'incidentLocationStreetNumber' = 65
[2026-03-14 04:34:54] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-14 04:34:54] [INFO]   -> Found value: YUCCA DR
[2026-03-14 04:34:54] [INFO]   -> Set field 'streetName' = "YUCCA DR"
[2026-03-14 04:34:54] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-14 04:34:54] [INFO]   -> No value found (null or empty)
[2026-03-14 04:34:54] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-14 04:34:54] [INFO]   -> Found value: BENTON
[2026-03-14 04:34:54] [INFO]   -> Set field 'incidentLocationCity' = "BENTON"
[2026-03-14 04:34:54] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-14 04:34:54] [INFO]   -> No value found (null or empty)
[2026-03-14 04:34:54] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-14 04:34:54] [INFO]   -> Found value: MO
[2026-03-14 04:34:54] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-03-14 04:34:54] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-14 04:34:54] [INFO]   -> Found value: 63736
[2026-03-14 04:34:54] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63736
[2026-03-14 04:34:54] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-14 04:34:54] [INFO]   -> Found value: 0
[2026-03-14 04:34:54] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-14 04:34:54] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-14 04:34:54] [INFO]   -> Found value: 0
[2026-03-14 04:34:54] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-14 04:34:54] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-14 04:34:54] [INFO]   -> Found value: MEDICAL
[2026-03-14 04:34:54] [INFO]   -> Set field 'incidentTypeValue1' = "MEDICAL"
[2026-03-14 04:34:54] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-14 04:34:54] [INFO]   -> Found value: 03-13-2026 23:08:22|74 YOF STABBING PAINS IN BACK 03-13-2026 23:15:49|1707 ENROUTE 03-13-2026 23:26:...
[2026-03-14 04:34:54] [INFO]   -> Set field 'dispatchNotes' = "03-13-2026 23:08:22|74 YOF STABBING PAINS IN BACK 03-13-2026 23:15:49|1707 ENROUTE 03-13-2026 23:26:00|1707 ON SCENE 03-13-2026 23:30:18|NORTH SCOTT EMS ON SCENE 03-13-2026 23:34:30|ALL RURAL PERSONAL CLEAR OF SCENE 03-13-2026 23:34:44|NORTH SCOTT TRANSPORTING ONE TO ST FRANCIS"
[2026-03-14 04:34:54] [INFO]   -> Set field 'cADLog' = "03-13-2026 23:08:22|74 YOF STABBING PAINS IN BACK 03-13-2026 23:15:49|1707 ENROUTE 03-13-2026 23:26:00|1707 ON SCENE 03-13-2026 23:30:18|NORTH SCOTT EMS ON SCENE 03-13-2026 23:34:30|ALL RURAL PERSONAL CLEAR OF SCENE 03-13-2026 23:34:44|NORTH SCOTT TRANSPORTING ONE TO ST FRANCIS"
[2026-03-14 04:34:54] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-14 04:34:54] [INFO]   -> Found value: 03-13-2026T23:08:44
[2026-03-14 04:34:54] [INFO] Reformatted DD-MM-YYYY date '03-13-2026' (day=03, month=13) to ISO: 2026-13-03T23:08:44
[2026-03-14 04:34:54] [ERROR] Error formatting datetime '2026-13-03T23:08:44': Failed to parse time string (2026-13-03T23:08:44) at position 6 (3): Unexpected character
[2026-03-14 04:34:54] [INFO]   -> Set field 'alarm' = null
[2026-03-14 04:34:54] [INFO] Reformatted DD-MM-YYYY date '03-13-2026' (day=03, month=13) to ISO: 2026-13-03T23:08:44
[2026-03-14 04:34:54] [ERROR] Error formatting datetime '2026-13-03T23:08:44': Failed to parse time string (2026-13-03T23:08:44) at position 6 (3): Unexpected character
[2026-03-14 04:34:54] [INFO]   -> Set field 'dispatched' = null
[2026-03-14 04:34:54] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-14 04:34:54] [INFO]   -> No value found (null or empty)
[2026-03-14 04:34:54] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-14 04:34:54] [INFO]   -> No value found (null or empty)
[2026-03-14 04:34:54] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-14 04:34:54] [INFO]   -> Found value: RURAL PAGE
[2026-03-14 04:34:54] [INFO]   -> Set field 'cADVehicleID' = "RURAL PAGE"
[2026-03-14 04:34:54] [INFO]   -> Set field 'name' = "RURAL PAGE"
[2026-03-14 04:34:54] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-14 04:34:54] [INFO]   -> No value found (null or empty)
[2026-03-14 04:34:54] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-14 04:34:54] [INFO]   -> No value found (null or empty)
[2026-03-14 04:34:54] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-14 04:34:54] [INFO]   -> Found value: 03-13-2026T23:34:46
[2026-03-14 04:34:54] [INFO] Reformatted DD-MM-YYYY date '03-13-2026' (day=03, month=13) to ISO: 2026-13-03T23:34:46
[2026-03-14 04:34:54] [ERROR] Error formatting datetime '2026-13-03T23:34:46': Failed to parse time string (2026-13-03T23:34:46) at position 6 (3): Unexpected character
[2026-03-14 04:34:54] [INFO]   -> Set field 'timeunitclear' = null
[2026-03-14 04:34:54] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-14 04:34:54] [INFO]   -> Found value: 03-13-2026T23:10:56
[2026-03-14 04:34:54] [INFO] Reformatted DD-MM-YYYY date '03-13-2026' (day=03, month=13) to ISO: 2026-13-03T23:10:56
[2026-03-14 04:34:54] [ERROR] Error formatting datetime '2026-13-03T23:10:56': Failed to parse time string (2026-13-03T23:10:56) at position 6 (3): Unexpected character
[2026-03-14 04:34:54] [INFO]   -> Set field 'timedispatch' = null
[2026-03-14 04:34:54] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-14 04:34:54] [INFO]   -> Found value: SCRFD
[2026-03-14 04:34:54] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2026-03-14 04:34:54] [INFO] Finished extracting fields. Total fields extracted: 19
[2026-03-14 04:34:54] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-14 04:34:54] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-07688","cADNumber":"26-07688","incidentLocationStreetNumber":65,"streetName":"YUCCA DR","incidentLocationCity":"BENTON","incidentLocationStateName":"MO","nERISIncidentPostalCode":63736,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"MEDICAL","dispatchNotes":"03-13-2026 23:08:22|74 YOF STABBING PAINS IN BACK 03-13-2026 23:15:49|1707 ENROUTE 03-13-2026 23:26:00|1707 ON SCENE 03-13-2026 23:30:18|NORTH SCOTT EMS ON SCENE 03-13-2026 23:34:30|ALL RURAL PERSONAL CLEAR OF SCENE 03-13-2026 23:34:44|NORTH SCOTT TRANSPORTING ONE TO ST FRANCIS","cADLog":"03-13-2026 23:08:22|74 YOF STABBING PAINS IN BACK 03-13-2026 23:15:49|1707 ENROUTE 03-13-2026 23:26:00|1707 ON SCENE 03-13-2026 23:30:18|NORTH SCOTT EMS ON SCENE 03-13-2026 23:34:30|ALL RURAL PERSONAL CLEAR OF SCENE 03-13-2026 23:34:44|NORTH SCOTT TRANSPORTING ONE TO ST FRANCIS","alarm":null,"dispatched":null,"cADVehicleID":"RURAL PAGE","name":"RURAL PAGE","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2026-03-14 04:34:54] [INFO] Number of extracted fields: 20
[2026-03-14 04:34:54] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2026-03-14 04:34:54] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SCRFD', Parsed IDs = ["SCRFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-03-14 04:34:54] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2026-03-14 04:34:54] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (index 0) within mailbox's assigned agencies
[2026-03-14 04:34:54] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) at INDEX 0 based on AgencyCode 'SCRFD'
[2026-03-14 04:34:54] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2026-03-14 04:34:54] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"], matchedAgencyIndex = 0
[2026-03-14 04:34:54] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2026-03-14 04:34:54] [INFO] Found existing IncidentTypeMapping with ID: 6979040ce473322a8
[2026-03-14 04:34:55] [INFO] Found existing Dispatch with cADNumber '26-07688', ID: 69b4dfd4611fa82da - will update instead of create
[2026-03-14 04:34:55] [INFO] Updated existing Dispatches record with ID: 69b4dfd4611fa82da
[2026-03-14 04:34:55] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-14
[2026-03-14 04:34:55] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-07688.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-14/SCRFD_26-07688.xml
[2026-03-14 04:34:55] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-07688.xml
[2026-03-14 10:00:22] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-07716.xml
[2026-03-14 10:00:22] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-07716.xml for user: 68d56363ec1209189
[2026-03-14 10:00:22] [INFO] File size: 2385 bytes
[2026-03-14 10:00:22] [INFO] Created FTPFiles record with ID: 69b531b6ed7f591ca
[2026-03-14 10:00:22] [INFO] About to extract fields from XML. File size: 2385 bytes
[2026-03-14 10:00:22] [INFO] Number of mappings: 21
[2026-03-14 10:00:22] [INFO] Starting XML parsing. Content length: 2385
[2026-03-14 10:00:22] [INFO] XML parsed successfully. Root element: Incident
[2026-03-14 10:00:22] [INFO] Processing 21 field mappings
[2026-03-14 10:00:22] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-14 10:00:22] [INFO]   -> Found value: 26-07716
[2026-03-14 10:00:22] [INFO]   -> Set field 'dispatchRunNumber' = "26-07716"
[2026-03-14 10:00:22] [INFO]   -> Set field 'cADNumber' = "26-07716"
[2026-03-14 10:00:22] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-14 10:00:22] [INFO]   -> No value found (null or empty)
[2026-03-14 10:00:23] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-14 10:00:23] [INFO]   -> Found value: COUNTY HIGHWAY 829
[2026-03-14 10:00:23] [INFO]   -> Set field 'streetName' = "COUNTY HIGHWAY 829"
[2026-03-14 10:00:23] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-14 10:00:23] [INFO]   -> No value found (null or empty)
[2026-03-14 10:00:23] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-14 10:00:23] [INFO]   -> No value found (null or empty)
[2026-03-14 10:00:23] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-14 10:00:23] [INFO]   -> No value found (null or empty)
[2026-03-14 10:00:23] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-14 10:00:23] [INFO]   -> No value found (null or empty)
[2026-03-14 10:00:23] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-14 10:00:23] [INFO]   -> No value found (null or empty)
[2026-03-14 10:00:23] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-14 10:00:23] [INFO]   -> Found value: 0
[2026-03-14 10:00:23] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-14 10:00:23] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-14 10:00:23] [INFO]   -> Found value: 0
[2026-03-14 10:00:23] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-14 10:00:23] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-14 10:00:23] [INFO]   -> Found value: FIRE-OUT OF TOWN
[2026-03-14 10:00:23] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-OUT OF TOWN"
[2026-03-14 10:00:23] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-14 10:00:23] [INFO]   -> Found value: 03-14-2026 02:23:29|STRUCTURE FIRE
UNK IF OCCUPIED 
 03-14-2026 02:28:34|NMCO DEPUTY ON SCENE FULLY ...
[2026-03-14 10:00:23] [INFO]   -> Set field 'dispatchNotes' = "03-14-2026 02:23:29|STRUCTURE FIRE\nUNK IF OCCUPIED \n 03-14-2026 02:28:34|NMCO DEPUTY ON SCENE FULLY INVOLVED STRUCTURE SHOWING FLAMES 03-14-2026 02:34:21|MORHOUSE RESCUE 1 ER 03-14-2026 02:37:07|PAGED ADDITIONAL 03-14-2026 02:46:15|ON, C84"
[2026-03-14 10:00:23] [INFO]   -> Set field 'cADLog' = "03-14-2026 02:23:29|STRUCTURE FIRE\nUNK IF OCCUPIED \n 03-14-2026 02:28:34|NMCO DEPUTY ON SCENE FULLY INVOLVED STRUCTURE SHOWING FLAMES 03-14-2026 02:34:21|MORHOUSE RESCUE 1 ER 03-14-2026 02:37:07|PAGED ADDITIONAL 03-14-2026 02:46:15|ON, C84"
[2026-03-14 10:00:23] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-14 10:00:23] [INFO]   -> Found value: 03-14-2026T02:27:32
[2026-03-14 10:00:23] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T02:27:32
[2026-03-14 10:00:23] [ERROR] Error formatting datetime '2026-14-03T02:27:32': Failed to parse time string (2026-14-03T02:27:32) at position 6 (4): Unexpected character
[2026-03-14 10:00:23] [INFO]   -> Set field 'alarm' = null
[2026-03-14 10:00:23] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T02:27:32
[2026-03-14 10:00:23] [ERROR] Error formatting datetime '2026-14-03T02:27:32': Failed to parse time string (2026-14-03T02:27:32) at position 6 (4): Unexpected character
[2026-03-14 10:00:23] [INFO]   -> Set field 'dispatched' = null
[2026-03-14 10:00:23] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-14 10:00:23] [INFO]   -> Found value: 03-14-2026T02:39:28
[2026-03-14 10:00:23] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T02:39:28
[2026-03-14 10:00:23] [ERROR] Error formatting datetime '2026-14-03T02:39:28': Failed to parse time string (2026-14-03T02:39:28) at position 6 (4): Unexpected character
[2026-03-14 10:00:23] [INFO]   -> Set field 'onScene' = null
[2026-03-14 10:00:23] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-14 10:00:23] [INFO]   -> Found value: 03-14-2026T04:59:13
[2026-03-14 10:00:23] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T04:59:13
[2026-03-14 10:00:23] [ERROR] Error formatting datetime '2026-14-03T04:59:13': Failed to parse time string (2026-14-03T04:59:13) at position 6 (4): Unexpected character
[2026-03-14 10:00:23] [INFO]   -> Set field 'cleared' = null
[2026-03-14 10:00:23] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T04:59:13
[2026-03-14 10:00:23] [ERROR] Error formatting datetime '2026-14-03T04:59:13': Failed to parse time string (2026-14-03T04:59:13) at position 6 (4): Unexpected character
[2026-03-14 10:00:23] [INFO]   -> Set field 'inService' = null
[2026-03-14 10:00:23] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-14 10:00:23] [INFO]   -> Found value: ADD PERSONEL
[2026-03-14 10:00:23] [INFO]   -> Set field 'cADVehicleID' = "ADD PERSONEL"
[2026-03-14 10:00:23] [INFO]   -> Set field 'name' = "ADD PERSONEL"
[2026-03-14 10:00:23] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-14 10:00:23] [INFO]   -> No value found (null or empty)
[2026-03-14 10:00:23] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-14 10:00:23] [INFO]   -> No value found (null or empty)
[2026-03-14 10:00:23] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-14 10:00:23] [INFO]   -> Found value: 03-14-2026T04:10:28
[2026-03-14 10:00:23] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T04:10:28
[2026-03-14 10:00:23] [ERROR] Error formatting datetime '2026-14-03T04:10:28': Failed to parse time string (2026-14-03T04:10:28) at position 6 (4): Unexpected character
[2026-03-14 10:00:23] [INFO]   -> Set field 'timeunitclear' = null
[2026-03-14 10:00:23] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-14 10:00:23] [INFO]   -> Found value: 03-14-2026T02:37:36
[2026-03-14 10:00:23] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T02:37:36
[2026-03-14 10:00:23] [ERROR] Error formatting datetime '2026-14-03T02:37:36': Failed to parse time string (2026-14-03T02:37:36) at position 6 (4): Unexpected character
[2026-03-14 10:00:23] [INFO]   -> Set field 'timedispatch' = null
[2026-03-14 10:00:23] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-14 10:00:23] [INFO]   -> Found value: SDPSFD
[2026-03-14 10:00:23] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-03-14 10:00:23] [INFO] Finished extracting fields. Total fields extracted: 18
[2026-03-14 10:00:23] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-14 10:00:23] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-07716","cADNumber":"26-07716","streetName":"COUNTY HIGHWAY 829","nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-OUT OF TOWN","dispatchNotes":"03-14-2026 02:23:29|STRUCTURE FIRE\nUNK IF OCCUPIED \n 03-14-2026 02:28:34|NMCO DEPUTY ON SCENE FULLY INVOLVED STRUCTURE SHOWING FLAMES 03-14-2026 02:34:21|MORHOUSE RESCUE 1 ER 03-14-2026 02:37:07|PAGED ADDITIONAL 03-14-2026 02:46:15|ON, C84","cADLog":"03-14-2026 02:23:29|STRUCTURE FIRE\nUNK IF OCCUPIED \n 03-14-2026 02:28:34|NMCO DEPUTY ON SCENE FULLY INVOLVED STRUCTURE SHOWING FLAMES 03-14-2026 02:34:21|MORHOUSE RESCUE 1 ER 03-14-2026 02:37:07|PAGED ADDITIONAL 03-14-2026 02:46:15|ON, C84","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"ADD PERSONEL","name":"ADD PERSONEL","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-03-14 10:00:23] [INFO] Number of extracted fields: 19
[2026-03-14 10:00:23] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-03-14 10:00:23] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-03-14 10:00:23] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-03-14 10:00:23] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-03-14 10:00:23] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-03-14 10:00:23] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-03-14 10:00:23] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-03-14 10:00:23] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-03-14 10:00:23] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e878336f04
[2026-03-14 10:00:25] [INFO] Created new Dispatches record with ID: 69b531b7c05a505ea
[2026-03-14 10:00:25] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-07716.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-14/SDPSFD_26-07716.xml
[2026-03-14 10:00:25] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-07716.xml
[2026-03-14 12:43:54] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124354.XML
[2026-03-14 12:43:54] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124354.XML for user: 68f1466aed072ad4a
[2026-03-14 12:43:54] [INFO] File size: 5261 bytes
[2026-03-14 12:43:55] [INFO] Created FTPFiles record with ID: 69b5580b4ccea3992
[2026-03-14 12:43:55] [INFO] About to extract fields from XML. File size: 5261 bytes
[2026-03-14 12:43:55] [INFO] Number of mappings: 28
[2026-03-14 12:43:55] [INFO] Starting XML parsing. Content length: 5261
[2026-03-14 12:43:55] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 12:43:55] [INFO] Processing 28 field mappings
[2026-03-14 12:43:55] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 12:43:55] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 12:43:55] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 12:43:55] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-14 12:43:55] [INFO]   -> Found value: PCFD
CFD
[2026-03-14 12:43:55] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nCFD"
[2026-03-14 12:43:55] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 12:43:55] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-14 12:43:55] [INFO]   -> Found value: 2026000685
[2026-03-14 12:43:55] [INFO]   -> Set field 'incidentInternalId' = "2026000685"
[2026-03-14 12:43:55] [INFO]   -> Set field 'dispatchRunNumber' = "2026000685"
[2026-03-14 12:43:55] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 12:43:55] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-14 12:43:55] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-14 12:43:55] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 12:43:55] [INFO]   -> Found value: 1
[2026-03-14 12:43:55] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1
[2026-03-14 12:43:55] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 12:43:55] [INFO]   -> Found value: TN
[2026-03-14 12:43:55] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 12:43:55] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 12:43:55] [INFO]   -> No value found (null or empty)
[2026-03-14 12:43:55] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 12:43:55] [INFO]   -> Found value: COOKEVILLE HIGH SCHOOL
[2026-03-14 12:43:55] [INFO]   -> Set field 'businessName' = "COOKEVILLE HIGH SCHOOL"
[2026-03-14 12:43:55] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 12:43:55] [INFO]   -> No value found (null or empty)
[2026-03-14 12:43:55] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 12:43:55] [INFO]   -> Found value: 36.19237
[2026-03-14 12:43:55] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1923699999999968213160173036158084869384765625
[2026-03-14 12:43:55] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 12:43:55] [INFO]   -> Found value: -85.48637
[2026-03-14 12:43:55] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.486369999999993751771398819983005523681640625
[2026-03-14 12:43:55] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 12:43:55] [INFO]   -> Found value: 2026-03-14 07:42:45
[2026-03-14 12:43:55] [INFO]   -> Set field 'alarm' = "2026-03-14 07:42:45"
[2026-03-14 12:43:55] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 12:43:55] [INFO]   -> Found value: 2026-03-14 07:43:49
[2026-03-14 12:43:55] [INFO]   -> Set field 'dispatched' = "2026-03-14 07:43:49"
[2026-03-14 12:43:55] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 12:43:55] [INFO]   -> No value found (null or empty)
[2026-03-14 12:43:55] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 12:43:55] [INFO]   -> No value found (null or empty)
[2026-03-14 12:43:55] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 12:43:55] [INFO]   -> No value found (null or empty)
[2026-03-14 12:43:55] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 12:43:55] [INFO]   -> Found value: N WASHINGTON AVE
[2026-03-14 12:43:55] [INFO]   -> Set field 'incidentLocationCross' = "N WASHINGTON AVE"
[2026-03-14 12:43:55] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 12:43:55] [INFO]   -> Found value: TK12
[2026-03-14 12:43:55] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-14 12:43:55] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 12:43:55] [INFO]   -> Found value: 2026-03-14 07:43:49
[2026-03-14 12:43:55] [INFO]   -> Set field 'timedispatch' = "2026-03-14 07:43:49"
[2026-03-14 12:43:55] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 12:43:55] [INFO]   -> No value found (null or empty)
[2026-03-14 12:43:55] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 12:43:55] [INFO]   -> No value found (null or empty)
[2026-03-14 12:43:55] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 12:43:55] [INFO]   -> No value found (null or empty)
[2026-03-14 12:43:55] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 12:43:55] [INFO]   -> No value found (null or empty)
[2026-03-14 12:43:55] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 12:43:55] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 12:43:55] [INFO]   -> Found value: 20260027848
[2026-03-14 12:43:55] [INFO]   -> Set field 'policeReportNumber' = "20260027848"
[2026-03-14 12:43:55] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 12:43:55] [INFO]   -> Found value: [FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03/14/26 07:43:02 KHILL] [FIRE] DRI...
[2026-03-14 12:43:55] [INFO]   -> Set field 'dispatchNotes' = "[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]"
[2026-03-14 12:43:55] [INFO]   -> Set field 'cADLog' = "[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]"
[2026-03-14 12:43:55] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 12:43:55] [INFO]   -> Found value: COOKEVILLE
[2026-03-14 12:43:55] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-14 12:43:55] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 12:43:55] [INFO]   -> Found value: CAVALIER
[2026-03-14 12:43:55] [INFO]   -> Set field 'streetName' = "CAVALIER"
[2026-03-14 12:43:55] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 12:43:55] [INFO]   -> Found value: DR
[2026-03-14 12:43:55] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-14 12:43:55] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 12:43:55] [INFO]   -> Found value: 1 CAVALIER DR
[2026-03-14 12:43:55] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1 CAVALIER DR"
[2026-03-14 12:43:55] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-14 12:43:55] [INFO] Concatenating street name and type
[2026-03-14 12:43:55] [INFO]   -> Combined street name: CAVALIER DR
[2026-03-14 12:43:55] [INFO] Built locationCoordinates from lat/lng: 36.19237,-85.48637
[2026-03-14 12:43:55] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nCFD","incidentInternalId":"2026000685","dispatchRunNumber":"2026000685","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":1,"incidentLocationStateName":"TN","businessName":"COOKEVILLE HIGH SCHOOL","nERISIncidentLatitude":36.1923699999999968213160173036158084869384765625,"nERISIncidentLongitude":-85.486369999999993751771398819983005523681640625,"alarm":"2026-03-14 07:42:45","dispatched":"2026-03-14 07:43:49","incidentLocationCross":"N WASHINGTON AVE","cADVehicleID":"TK12","timedispatch":"2026-03-14 07:43:49","policeReportNumber":"20260027848","dispatchNotes":"[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]","cADLog":"[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"CAVALIER DR","incidentAddressTextVersionStreet":"1 CAVALIER DR","locationCoordinates":"36.19237,-85.48637"}
[2026-03-14 12:43:55] [INFO] Number of extracted fields: 21
[2026-03-14 12:43:55] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
CFD'
[2026-03-14 12:43:55] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
CFD', Parsed IDs = ["PCFD","CFD"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-14 12:43:55] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","CFD"]
[2026-03-14 12:43:55] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 12:43:55] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 12:43:55] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["CFD"]
[2026-03-14 12:43:55] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 12:43:55] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 12:43:55] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-14 12:43:55] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-14 12:43:55] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 12:43:55] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-14 12:44:06] [INFO] Created new Dispatches record with ID: 69b5580c0d4243931
[2026-03-14 12:44:06] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124354.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027848_20260314_124354.XML
[2026-03-14 12:44:06] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124354.XML
[2026-03-14 12:44:06] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124355.XML
[2026-03-14 12:44:06] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124355.XML for user: 68f1466aed072ad4a
[2026-03-14 12:44:06] [INFO] File size: 5261 bytes
[2026-03-14 12:44:06] [INFO] Created FTPFiles record with ID: 69b558166e1058641
[2026-03-14 12:44:06] [INFO] About to extract fields from XML. File size: 5261 bytes
[2026-03-14 12:44:06] [INFO] Number of mappings: 28
[2026-03-14 12:44:06] [INFO] Starting XML parsing. Content length: 5261
[2026-03-14 12:44:06] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 12:44:06] [INFO] Processing 28 field mappings
[2026-03-14 12:44:06] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 12:44:06] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 12:44:06] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 12:44:06] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-14 12:44:06] [INFO]   -> Found value: PCFD
CFD
[2026-03-14 12:44:06] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nCFD"
[2026-03-14 12:44:06] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 12:44:06] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-14 12:44:06] [INFO]   -> Found value: 2026000685
[2026-03-14 12:44:06] [INFO]   -> Set field 'incidentInternalId' = "2026000685"
[2026-03-14 12:44:06] [INFO]   -> Set field 'dispatchRunNumber' = "2026000685"
[2026-03-14 12:44:06] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 12:44:06] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-14 12:44:06] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-14 12:44:06] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 12:44:06] [INFO]   -> Found value: 1
[2026-03-14 12:44:06] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1
[2026-03-14 12:44:06] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 12:44:06] [INFO]   -> Found value: TN
[2026-03-14 12:44:06] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 12:44:06] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 12:44:06] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:06] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 12:44:06] [INFO]   -> Found value: COOKEVILLE HIGH SCHOOL
[2026-03-14 12:44:06] [INFO]   -> Set field 'businessName' = "COOKEVILLE HIGH SCHOOL"
[2026-03-14 12:44:06] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 12:44:06] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:06] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 12:44:06] [INFO]   -> Found value: 36.19237
[2026-03-14 12:44:06] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1923699999999968213160173036158084869384765625
[2026-03-14 12:44:06] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 12:44:06] [INFO]   -> Found value: -85.48637
[2026-03-14 12:44:06] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.486369999999993751771398819983005523681640625
[2026-03-14 12:44:06] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 12:44:06] [INFO]   -> Found value: 2026-03-14 07:42:45
[2026-03-14 12:44:06] [INFO]   -> Set field 'alarm' = "2026-03-14 07:42:45"
[2026-03-14 12:44:06] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 12:44:06] [INFO]   -> Found value: 2026-03-14 07:43:49
[2026-03-14 12:44:06] [INFO]   -> Set field 'dispatched' = "2026-03-14 07:43:49"
[2026-03-14 12:44:06] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 12:44:06] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:06] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 12:44:06] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:06] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 12:44:06] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:06] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 12:44:06] [INFO]   -> Found value: N WASHINGTON AVE
[2026-03-14 12:44:06] [INFO]   -> Set field 'incidentLocationCross' = "N WASHINGTON AVE"
[2026-03-14 12:44:06] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 12:44:06] [INFO]   -> Found value: TK12
[2026-03-14 12:44:06] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-14 12:44:06] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 12:44:06] [INFO]   -> Found value: 2026-03-14 07:43:49
[2026-03-14 12:44:06] [INFO]   -> Set field 'timedispatch' = "2026-03-14 07:43:49"
[2026-03-14 12:44:06] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 12:44:06] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:06] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 12:44:06] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:06] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 12:44:06] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:06] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 12:44:06] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:06] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 12:44:06] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 12:44:06] [INFO]   -> Found value: 20260027848
[2026-03-14 12:44:06] [INFO]   -> Set field 'policeReportNumber' = "20260027848"
[2026-03-14 12:44:06] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 12:44:06] [INFO]   -> Found value: [FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03/14/26 07:43:02 KHILL] [FIRE] DRI...
[2026-03-14 12:44:06] [INFO]   -> Set field 'dispatchNotes' = "[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]"
[2026-03-14 12:44:06] [INFO]   -> Set field 'cADLog' = "[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]"
[2026-03-14 12:44:06] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 12:44:06] [INFO]   -> Found value: COOKEVILLE
[2026-03-14 12:44:06] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-14 12:44:06] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 12:44:06] [INFO]   -> Found value: CAVALIER
[2026-03-14 12:44:06] [INFO]   -> Set field 'streetName' = "CAVALIER"
[2026-03-14 12:44:06] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 12:44:06] [INFO]   -> Found value: DR
[2026-03-14 12:44:06] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-14 12:44:06] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 12:44:06] [INFO]   -> Found value: 1 CAVALIER DR
[2026-03-14 12:44:06] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1 CAVALIER DR"
[2026-03-14 12:44:06] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-14 12:44:06] [INFO] Concatenating street name and type
[2026-03-14 12:44:06] [INFO]   -> Combined street name: CAVALIER DR
[2026-03-14 12:44:06] [INFO] Built locationCoordinates from lat/lng: 36.19237,-85.48637
[2026-03-14 12:44:06] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nCFD","incidentInternalId":"2026000685","dispatchRunNumber":"2026000685","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":1,"incidentLocationStateName":"TN","businessName":"COOKEVILLE HIGH SCHOOL","nERISIncidentLatitude":36.1923699999999968213160173036158084869384765625,"nERISIncidentLongitude":-85.486369999999993751771398819983005523681640625,"alarm":"2026-03-14 07:42:45","dispatched":"2026-03-14 07:43:49","incidentLocationCross":"N WASHINGTON AVE","cADVehicleID":"TK12","timedispatch":"2026-03-14 07:43:49","policeReportNumber":"20260027848","dispatchNotes":"[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]","cADLog":"[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"CAVALIER DR","incidentAddressTextVersionStreet":"1 CAVALIER DR","locationCoordinates":"36.19237,-85.48637"}
[2026-03-14 12:44:06] [INFO] Number of extracted fields: 21
[2026-03-14 12:44:06] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
CFD'
[2026-03-14 12:44:06] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
CFD', Parsed IDs = ["PCFD","CFD"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-14 12:44:06] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","CFD"]
[2026-03-14 12:44:06] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 12:44:06] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 12:44:06] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["CFD"]
[2026-03-14 12:44:06] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 12:44:06] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 12:44:06] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-14 12:44:06] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-14 12:44:06] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 12:44:06] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-14 12:44:07] [INFO] Found existing Dispatch with cADNumber '2026000685', ID: 69b5580c0d4243931 - will update instead of create
[2026-03-14 12:44:07] [INFO] Updated existing Dispatches record with ID: 69b5580c0d4243931
[2026-03-14 12:44:07] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124355.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027848_20260314_124355.XML
[2026-03-14 12:44:07] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124355.XML
[2026-03-14 12:44:07] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124355_1.XML
[2026-03-14 12:44:07] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124355_1.XML for user: 68f1466aed072ad4a
[2026-03-14 12:44:07] [INFO] File size: 5261 bytes
[2026-03-14 12:44:07] [INFO] Created FTPFiles record with ID: 69b558179df88a5a9
[2026-03-14 12:44:07] [INFO] About to extract fields from XML. File size: 5261 bytes
[2026-03-14 12:44:07] [INFO] Number of mappings: 28
[2026-03-14 12:44:07] [INFO] Starting XML parsing. Content length: 5261
[2026-03-14 12:44:07] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 12:44:07] [INFO] Processing 28 field mappings
[2026-03-14 12:44:07] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 12:44:07] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 12:44:07] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 12:44:07] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-14 12:44:07] [INFO]   -> Found value: PCFD
CFD
[2026-03-14 12:44:07] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nCFD"
[2026-03-14 12:44:07] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 12:44:07] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-14 12:44:07] [INFO]   -> Found value: 2026000685
[2026-03-14 12:44:07] [INFO]   -> Set field 'incidentInternalId' = "2026000685"
[2026-03-14 12:44:07] [INFO]   -> Set field 'dispatchRunNumber' = "2026000685"
[2026-03-14 12:44:07] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 12:44:07] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-14 12:44:07] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-14 12:44:07] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 12:44:07] [INFO]   -> Found value: 1
[2026-03-14 12:44:07] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1
[2026-03-14 12:44:07] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 12:44:07] [INFO]   -> Found value: TN
[2026-03-14 12:44:07] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 12:44:07] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 12:44:07] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:07] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 12:44:07] [INFO]   -> Found value: COOKEVILLE HIGH SCHOOL
[2026-03-14 12:44:07] [INFO]   -> Set field 'businessName' = "COOKEVILLE HIGH SCHOOL"
[2026-03-14 12:44:07] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 12:44:07] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:07] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 12:44:07] [INFO]   -> Found value: 36.19237
[2026-03-14 12:44:07] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1923699999999968213160173036158084869384765625
[2026-03-14 12:44:07] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 12:44:07] [INFO]   -> Found value: -85.48637
[2026-03-14 12:44:07] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.486369999999993751771398819983005523681640625
[2026-03-14 12:44:07] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 12:44:07] [INFO]   -> Found value: 2026-03-14 07:42:45
[2026-03-14 12:44:07] [INFO]   -> Set field 'alarm' = "2026-03-14 07:42:45"
[2026-03-14 12:44:07] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 12:44:07] [INFO]   -> Found value: 2026-03-14 07:43:49
[2026-03-14 12:44:07] [INFO]   -> Set field 'dispatched' = "2026-03-14 07:43:49"
[2026-03-14 12:44:07] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 12:44:07] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:07] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 12:44:07] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:07] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 12:44:07] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:07] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 12:44:07] [INFO]   -> Found value: N WASHINGTON AVE
[2026-03-14 12:44:07] [INFO]   -> Set field 'incidentLocationCross' = "N WASHINGTON AVE"
[2026-03-14 12:44:07] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 12:44:07] [INFO]   -> Found value: TK12
[2026-03-14 12:44:07] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-14 12:44:07] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 12:44:07] [INFO]   -> Found value: 2026-03-14 07:43:49
[2026-03-14 12:44:07] [INFO]   -> Set field 'timedispatch' = "2026-03-14 07:43:49"
[2026-03-14 12:44:07] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 12:44:07] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:07] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 12:44:07] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:07] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 12:44:07] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:07] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 12:44:07] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:07] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 12:44:07] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 12:44:07] [INFO]   -> Found value: 20260027848
[2026-03-14 12:44:07] [INFO]   -> Set field 'policeReportNumber' = "20260027848"
[2026-03-14 12:44:07] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 12:44:07] [INFO]   -> Found value: [FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03/14/26 07:43:02 KHILL] [FIRE] DRI...
[2026-03-14 12:44:07] [INFO]   -> Set field 'dispatchNotes' = "[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]"
[2026-03-14 12:44:07] [INFO]   -> Set field 'cADLog' = "[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]"
[2026-03-14 12:44:07] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 12:44:07] [INFO]   -> Found value: COOKEVILLE
[2026-03-14 12:44:07] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-14 12:44:07] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 12:44:07] [INFO]   -> Found value: CAVALIER
[2026-03-14 12:44:07] [INFO]   -> Set field 'streetName' = "CAVALIER"
[2026-03-14 12:44:07] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 12:44:07] [INFO]   -> Found value: DR
[2026-03-14 12:44:07] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-14 12:44:07] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 12:44:07] [INFO]   -> Found value: 1 CAVALIER DR
[2026-03-14 12:44:07] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1 CAVALIER DR"
[2026-03-14 12:44:07] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-14 12:44:07] [INFO] Concatenating street name and type
[2026-03-14 12:44:07] [INFO]   -> Combined street name: CAVALIER DR
[2026-03-14 12:44:07] [INFO] Built locationCoordinates from lat/lng: 36.19237,-85.48637
[2026-03-14 12:44:07] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nCFD","incidentInternalId":"2026000685","dispatchRunNumber":"2026000685","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":1,"incidentLocationStateName":"TN","businessName":"COOKEVILLE HIGH SCHOOL","nERISIncidentLatitude":36.1923699999999968213160173036158084869384765625,"nERISIncidentLongitude":-85.486369999999993751771398819983005523681640625,"alarm":"2026-03-14 07:42:45","dispatched":"2026-03-14 07:43:49","incidentLocationCross":"N WASHINGTON AVE","cADVehicleID":"TK12","timedispatch":"2026-03-14 07:43:49","policeReportNumber":"20260027848","dispatchNotes":"[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]","cADLog":"[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"CAVALIER DR","incidentAddressTextVersionStreet":"1 CAVALIER DR","locationCoordinates":"36.19237,-85.48637"}
[2026-03-14 12:44:07] [INFO] Number of extracted fields: 21
[2026-03-14 12:44:07] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
CFD'
[2026-03-14 12:44:07] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
CFD', Parsed IDs = ["PCFD","CFD"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-14 12:44:07] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","CFD"]
[2026-03-14 12:44:07] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 12:44:07] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 12:44:07] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["CFD"]
[2026-03-14 12:44:07] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 12:44:07] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 12:44:07] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-14 12:44:07] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-14 12:44:07] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 12:44:08] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-14 12:44:08] [INFO] Found existing Dispatch with cADNumber '2026000685', ID: 69b5580c0d4243931 - will update instead of create
[2026-03-14 12:44:08] [INFO] Updated existing Dispatches record with ID: 69b5580c0d4243931
[2026-03-14 12:44:08] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124355_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027848_20260314_124355_1.XML
[2026-03-14 12:44:08] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124355_1.XML
[2026-03-14 12:44:19] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124419.XML
[2026-03-14 12:44:19] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124419.XML for user: 68f1466aed072ad4a
[2026-03-14 12:44:19] [INFO] File size: 5328 bytes
[2026-03-14 12:44:20] [INFO] Created FTPFiles record with ID: 69b558242af0a3c76
[2026-03-14 12:44:20] [INFO] About to extract fields from XML. File size: 5328 bytes
[2026-03-14 12:44:20] [INFO] Number of mappings: 28
[2026-03-14 12:44:20] [INFO] Starting XML parsing. Content length: 5328
[2026-03-14 12:44:20] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 12:44:20] [INFO] Processing 28 field mappings
[2026-03-14 12:44:20] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 12:44:20] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 12:44:20] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 12:44:20] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-14 12:44:20] [INFO]   -> Found value: PCFD
CFD
[2026-03-14 12:44:20] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nCFD"
[2026-03-14 12:44:20] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 12:44:20] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-14 12:44:20] [INFO]   -> Found value: 2026000685
[2026-03-14 12:44:20] [INFO]   -> Set field 'incidentInternalId' = "2026000685"
[2026-03-14 12:44:20] [INFO]   -> Set field 'dispatchRunNumber' = "2026000685"
[2026-03-14 12:44:20] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 12:44:20] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-14 12:44:20] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-14 12:44:20] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 12:44:20] [INFO]   -> Found value: 1
[2026-03-14 12:44:20] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1
[2026-03-14 12:44:20] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 12:44:20] [INFO]   -> Found value: TN
[2026-03-14 12:44:20] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 12:44:20] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 12:44:20] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:20] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 12:44:20] [INFO]   -> Found value: COOKEVILLE HIGH SCHOOL
[2026-03-14 12:44:20] [INFO]   -> Set field 'businessName' = "COOKEVILLE HIGH SCHOOL"
[2026-03-14 12:44:20] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 12:44:20] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:20] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 12:44:20] [INFO]   -> Found value: 36.19237
[2026-03-14 12:44:20] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1923699999999968213160173036158084869384765625
[2026-03-14 12:44:20] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 12:44:20] [INFO]   -> Found value: -85.48637
[2026-03-14 12:44:20] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.486369999999993751771398819983005523681640625
[2026-03-14 12:44:20] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 12:44:20] [INFO]   -> Found value: 2026-03-14 07:42:45
[2026-03-14 12:44:20] [INFO]   -> Set field 'alarm' = "2026-03-14 07:42:45"
[2026-03-14 12:44:20] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 12:44:20] [INFO]   -> Found value: 2026-03-14 07:43:49
[2026-03-14 12:44:20] [INFO]   -> Set field 'dispatched' = "2026-03-14 07:43:49"
[2026-03-14 12:44:20] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 12:44:20] [INFO]   -> Found value: 2026-03-14 07:44:10
[2026-03-14 12:44:20] [INFO]   -> Set field 'enroute' = "2026-03-14 07:44:10"
[2026-03-14 12:44:20] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 12:44:20] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:20] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 12:44:20] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:20] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 12:44:20] [INFO]   -> Found value: N WASHINGTON AVE
[2026-03-14 12:44:20] [INFO]   -> Set field 'incidentLocationCross' = "N WASHINGTON AVE"
[2026-03-14 12:44:20] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 12:44:20] [INFO]   -> Found value: TK12
[2026-03-14 12:44:20] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-14 12:44:20] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 12:44:20] [INFO]   -> Found value: 2026-03-14 07:43:49
[2026-03-14 12:44:20] [INFO]   -> Set field 'timedispatch' = "2026-03-14 07:43:49"
[2026-03-14 12:44:20] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 12:44:20] [INFO]   -> Found value: 2026-03-14 07:44:10
[2026-03-14 12:44:20] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-14 07:44:10"
[2026-03-14 12:44:20] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 12:44:20] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:20] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 12:44:20] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:20] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 12:44:20] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:20] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 12:44:20] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 12:44:20] [INFO]   -> Found value: 20260027848
[2026-03-14 12:44:20] [INFO]   -> Set field 'policeReportNumber' = "20260027848"
[2026-03-14 12:44:20] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 12:44:20] [INFO]   -> Found value: [FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03/14/26 07:43:02 KHILL] [FIRE] DRI...
[2026-03-14 12:44:20] [INFO]   -> Set field 'dispatchNotes' = "[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]"
[2026-03-14 12:44:20] [INFO]   -> Set field 'cADLog' = "[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]"
[2026-03-14 12:44:20] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 12:44:20] [INFO]   -> Found value: COOKEVILLE
[2026-03-14 12:44:20] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-14 12:44:20] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 12:44:20] [INFO]   -> Found value: CAVALIER
[2026-03-14 12:44:20] [INFO]   -> Set field 'streetName' = "CAVALIER"
[2026-03-14 12:44:20] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 12:44:20] [INFO]   -> Found value: DR
[2026-03-14 12:44:20] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-14 12:44:20] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 12:44:20] [INFO]   -> Found value: 1 CAVALIER DR
[2026-03-14 12:44:20] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1 CAVALIER DR"
[2026-03-14 12:44:20] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-14 12:44:20] [INFO] Concatenating street name and type
[2026-03-14 12:44:20] [INFO]   -> Combined street name: CAVALIER DR
[2026-03-14 12:44:20] [INFO] Built locationCoordinates from lat/lng: 36.19237,-85.48637
[2026-03-14 12:44:20] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nCFD","incidentInternalId":"2026000685","dispatchRunNumber":"2026000685","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":1,"incidentLocationStateName":"TN","businessName":"COOKEVILLE HIGH SCHOOL","nERISIncidentLatitude":36.1923699999999968213160173036158084869384765625,"nERISIncidentLongitude":-85.486369999999993751771398819983005523681640625,"alarm":"2026-03-14 07:42:45","dispatched":"2026-03-14 07:43:49","enroute":"2026-03-14 07:44:10","incidentLocationCross":"N WASHINGTON AVE","cADVehicleID":"TK12","timedispatch":"2026-03-14 07:43:49","timeenroutetoscene":"2026-03-14 07:44:10","policeReportNumber":"20260027848","dispatchNotes":"[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]","cADLog":"[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"CAVALIER DR","incidentAddressTextVersionStreet":"1 CAVALIER DR","locationCoordinates":"36.19237,-85.48637"}
[2026-03-14 12:44:20] [INFO] Number of extracted fields: 23
[2026-03-14 12:44:20] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
CFD'
[2026-03-14 12:44:20] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
CFD', Parsed IDs = ["PCFD","CFD"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-14 12:44:20] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","CFD"]
[2026-03-14 12:44:20] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 12:44:20] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 12:44:20] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["CFD"]
[2026-03-14 12:44:20] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 12:44:20] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 12:44:20] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-14 12:44:20] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-14 12:44:20] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 12:44:20] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-14 12:44:20] [INFO] Found existing Dispatch with cADNumber '2026000685', ID: 69b5580c0d4243931 - will update instead of create
[2026-03-14 12:44:21] [INFO] Updated existing Dispatches record with ID: 69b5580c0d4243931
[2026-03-14 12:44:21] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124419.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027848_20260314_124419.XML
[2026-03-14 12:44:21] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124419.XML
[2026-03-14 12:44:21] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124420.XML
[2026-03-14 12:44:21] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124420.XML for user: 68f1466aed072ad4a
[2026-03-14 12:44:21] [INFO] File size: 5328 bytes
[2026-03-14 12:44:21] [INFO] Created FTPFiles record with ID: 69b558254fc8f92da
[2026-03-14 12:44:21] [INFO] About to extract fields from XML. File size: 5328 bytes
[2026-03-14 12:44:21] [INFO] Number of mappings: 28
[2026-03-14 12:44:21] [INFO] Starting XML parsing. Content length: 5328
[2026-03-14 12:44:21] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 12:44:21] [INFO] Processing 28 field mappings
[2026-03-14 12:44:21] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 12:44:21] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 12:44:21] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 12:44:21] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-14 12:44:21] [INFO]   -> Found value: PCFD
CFD
[2026-03-14 12:44:21] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nCFD"
[2026-03-14 12:44:21] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 12:44:21] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-14 12:44:21] [INFO]   -> Found value: 2026000685
[2026-03-14 12:44:21] [INFO]   -> Set field 'incidentInternalId' = "2026000685"
[2026-03-14 12:44:21] [INFO]   -> Set field 'dispatchRunNumber' = "2026000685"
[2026-03-14 12:44:21] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 12:44:21] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-14 12:44:21] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-14 12:44:21] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 12:44:21] [INFO]   -> Found value: 1
[2026-03-14 12:44:21] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1
[2026-03-14 12:44:21] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 12:44:21] [INFO]   -> Found value: TN
[2026-03-14 12:44:21] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 12:44:21] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 12:44:21] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:21] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 12:44:21] [INFO]   -> Found value: COOKEVILLE HIGH SCHOOL
[2026-03-14 12:44:21] [INFO]   -> Set field 'businessName' = "COOKEVILLE HIGH SCHOOL"
[2026-03-14 12:44:21] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 12:44:21] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:21] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 12:44:21] [INFO]   -> Found value: 36.19237
[2026-03-14 12:44:21] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1923699999999968213160173036158084869384765625
[2026-03-14 12:44:21] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 12:44:21] [INFO]   -> Found value: -85.48637
[2026-03-14 12:44:21] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.486369999999993751771398819983005523681640625
[2026-03-14 12:44:21] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 12:44:21] [INFO]   -> Found value: 2026-03-14 07:42:45
[2026-03-14 12:44:21] [INFO]   -> Set field 'alarm' = "2026-03-14 07:42:45"
[2026-03-14 12:44:21] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 12:44:21] [INFO]   -> Found value: 2026-03-14 07:43:49
[2026-03-14 12:44:21] [INFO]   -> Set field 'dispatched' = "2026-03-14 07:43:49"
[2026-03-14 12:44:21] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 12:44:21] [INFO]   -> Found value: 2026-03-14 07:44:10
[2026-03-14 12:44:21] [INFO]   -> Set field 'enroute' = "2026-03-14 07:44:10"
[2026-03-14 12:44:21] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 12:44:21] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:21] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 12:44:21] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:21] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 12:44:21] [INFO]   -> Found value: N WASHINGTON AVE
[2026-03-14 12:44:21] [INFO]   -> Set field 'incidentLocationCross' = "N WASHINGTON AVE"
[2026-03-14 12:44:21] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 12:44:21] [INFO]   -> Found value: TK12
[2026-03-14 12:44:21] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-14 12:44:21] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 12:44:21] [INFO]   -> Found value: 2026-03-14 07:43:49
[2026-03-14 12:44:21] [INFO]   -> Set field 'timedispatch' = "2026-03-14 07:43:49"
[2026-03-14 12:44:21] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 12:44:21] [INFO]   -> Found value: 2026-03-14 07:44:10
[2026-03-14 12:44:21] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-14 07:44:10"
[2026-03-14 12:44:21] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 12:44:21] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:21] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 12:44:21] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:21] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 12:44:21] [INFO]   -> No value found (null or empty)
[2026-03-14 12:44:21] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 12:44:21] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 12:44:21] [INFO]   -> Found value: 20260027848
[2026-03-14 12:44:21] [INFO]   -> Set field 'policeReportNumber' = "20260027848"
[2026-03-14 12:44:21] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 12:44:21] [INFO]   -> Found value: [FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03/14/26 07:43:02 KHILL] [FIRE] DRI...
[2026-03-14 12:44:21] [INFO]   -> Set field 'dispatchNotes' = "[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]"
[2026-03-14 12:44:21] [INFO]   -> Set field 'cADLog' = "[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]"
[2026-03-14 12:44:21] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 12:44:21] [INFO]   -> Found value: COOKEVILLE
[2026-03-14 12:44:21] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-14 12:44:21] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 12:44:21] [INFO]   -> Found value: CAVALIER
[2026-03-14 12:44:21] [INFO]   -> Set field 'streetName' = "CAVALIER"
[2026-03-14 12:44:21] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 12:44:21] [INFO]   -> Found value: DR
[2026-03-14 12:44:21] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-14 12:44:21] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 12:44:21] [INFO]   -> Found value: 1 CAVALIER DR
[2026-03-14 12:44:21] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1 CAVALIER DR"
[2026-03-14 12:44:21] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-14 12:44:21] [INFO] Concatenating street name and type
[2026-03-14 12:44:21] [INFO]   -> Combined street name: CAVALIER DR
[2026-03-14 12:44:21] [INFO] Built locationCoordinates from lat/lng: 36.19237,-85.48637
[2026-03-14 12:44:21] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nCFD","incidentInternalId":"2026000685","dispatchRunNumber":"2026000685","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":1,"incidentLocationStateName":"TN","businessName":"COOKEVILLE HIGH SCHOOL","nERISIncidentLatitude":36.1923699999999968213160173036158084869384765625,"nERISIncidentLongitude":-85.486369999999993751771398819983005523681640625,"alarm":"2026-03-14 07:42:45","dispatched":"2026-03-14 07:43:49","enroute":"2026-03-14 07:44:10","incidentLocationCross":"N WASHINGTON AVE","cADVehicleID":"TK12","timedispatch":"2026-03-14 07:43:49","timeenroutetoscene":"2026-03-14 07:44:10","policeReportNumber":"20260027848","dispatchNotes":"[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]","cADLog":"[FIRE] LOOKS LIKE IT MAY BE FROM QUINLAND LAKE RD AREA PER LD2  [03\/14\/26 07:43:02 KHILL] [FIRE] DRIVING DOWN HILHAM AND IN THE SHANNON DR AREA BIG BLACK CLOUD OF SMOKE  [03\/14\/26 07:42:52 MCLAYBURN2] Event spawned from FIRE INVESTIGATION.  [03\/14\/2026 07:42:45 KHILL] SRO IS ON SCENE AT THE HIGH SCHOOL AND IS SEEING A BIG BLK CLOUD OF SMOKE NORTH OF TOWN  [03\/14\/26 07:38:14 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"CAVALIER DR","incidentAddressTextVersionStreet":"1 CAVALIER DR","locationCoordinates":"36.19237,-85.48637"}
[2026-03-14 12:44:21] [INFO] Number of extracted fields: 23
[2026-03-14 12:44:21] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
CFD'
[2026-03-14 12:44:21] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
CFD', Parsed IDs = ["PCFD","CFD"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-14 12:44:21] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","CFD"]
[2026-03-14 12:44:21] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 12:44:21] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 12:44:21] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["CFD"]
[2026-03-14 12:44:21] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 12:44:21] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 12:44:21] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-14 12:44:21] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-14 12:44:21] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 12:44:21] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-14 12:44:21] [INFO] Found existing Dispatch with cADNumber '2026000685', ID: 69b5580c0d4243931 - will update instead of create
[2026-03-14 12:44:22] [INFO] Updated existing Dispatches record with ID: 69b5580c0d4243931
[2026-03-14 12:44:22] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124420.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027848_20260314_124420.XML
[2026-03-14 12:44:22] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027848_20260314_124420.XML
[2026-03-14 15:17:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-07733.xml
[2026-03-14 15:17:46] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-07733.xml for user: 68d56363ec1209189
[2026-03-14 15:17:46] [INFO] File size: 1640 bytes
[2026-03-14 15:17:47] [INFO] Created FTPFiles record with ID: 69b57c1b082cb64d9
[2026-03-14 15:17:47] [INFO] About to extract fields from XML. File size: 1640 bytes
[2026-03-14 15:17:47] [INFO] Number of mappings: 21
[2026-03-14 15:17:47] [INFO] Starting XML parsing. Content length: 1640
[2026-03-14 15:17:47] [INFO] XML parsed successfully. Root element: Incident
[2026-03-14 15:17:47] [INFO] Processing 21 field mappings
[2026-03-14 15:17:47] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-14 15:17:47] [INFO]   -> Found value: 26-07733
[2026-03-14 15:17:47] [INFO]   -> Set field 'dispatchRunNumber' = "26-07733"
[2026-03-14 15:17:47] [INFO]   -> Set field 'cADNumber' = "26-07733"
[2026-03-14 15:17:47] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-14 15:17:47] [INFO]   -> Found value: 5025
[2026-03-14 15:17:47] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5025
[2026-03-14 15:17:47] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-14 15:17:47] [INFO]   -> Found value: STATE HIGHWAY 77
[2026-03-14 15:17:47] [INFO]   -> Set field 'streetName' = "STATE HIGHWAY 77"
[2026-03-14 15:17:47] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-14 15:17:47] [INFO]   -> No value found (null or empty)
[2026-03-14 15:17:47] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-14 15:17:47] [INFO]   -> Found value: BENTON
[2026-03-14 15:17:47] [INFO]   -> Set field 'incidentLocationCity' = "BENTON"
[2026-03-14 15:17:47] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-14 15:17:47] [INFO]   -> No value found (null or empty)
[2026-03-14 15:17:47] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-14 15:17:47] [INFO]   -> Found value: MO
[2026-03-14 15:17:47] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-03-14 15:17:47] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-14 15:17:47] [INFO]   -> Found value: 63736
[2026-03-14 15:17:47] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63736
[2026-03-14 15:17:47] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-14 15:17:47] [INFO]   -> Found value: 0
[2026-03-14 15:17:47] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-14 15:17:47] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-14 15:17:47] [INFO]   -> Found value: 0
[2026-03-14 15:17:47] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-14 15:17:47] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-14 15:17:47] [INFO]   -> Found value: MEDICAL
[2026-03-14 15:17:47] [INFO]   -> Set field 'incidentTypeValue1' = "MEDICAL"
[2026-03-14 15:17:47] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-14 15:17:47] [INFO]   -> Found value: 03-14-2026 10:01:30|WARNING: ADDRESS ALERT EXISTS
Reason for alert:BIOHAZARD
Notes:2991 ADV RESIDENC...
[2026-03-14 15:17:47] [INFO]   -> Set field 'dispatchNotes' = "03-14-2026 10:01:30|WARNING: ADDRESS ALERT EXISTS\nReason for alert:BIOHAZARD\nNotes:2991 ADV RESIDENCE IS A BIOHAZARD AND PERSONNEL NEED TO WEAR N100 MASKS 03-14-2026 09:56:53|RP STATED 85 YO M NEEDING ASSISTANCE GETTING NEIGHBOR FROM CAR TO THE HOUSE JUST CAME HOME FROM NURSING HOME\n  03-14-2026 10:08:26|SCOTT CITY NOW ADVISING EMS HAS BEEN PAGED 03-14-2026 10:08:29|SCRF PAGED"
[2026-03-14 15:17:47] [INFO]   -> Set field 'cADLog' = "03-14-2026 10:01:30|WARNING: ADDRESS ALERT EXISTS\nReason for alert:BIOHAZARD\nNotes:2991 ADV RESIDENCE IS A BIOHAZARD AND PERSONNEL NEED TO WEAR N100 MASKS 03-14-2026 09:56:53|RP STATED 85 YO M NEEDING ASSISTANCE GETTING NEIGHBOR FROM CAR TO THE HOUSE JUST CAME HOME FROM NURSING HOME\n  03-14-2026 10:08:26|SCOTT CITY NOW ADVISING EMS HAS BEEN PAGED 03-14-2026 10:08:29|SCRF PAGED"
[2026-03-14 15:17:47] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-14 15:17:47] [INFO]   -> Found value: 03-14-2026T10:08:33
[2026-03-14 15:17:47] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T10:08:33
[2026-03-14 15:17:47] [ERROR] Error formatting datetime '2026-14-03T10:08:33': Failed to parse time string (2026-14-03T10:08:33) at position 6 (4): Unexpected character
[2026-03-14 15:17:47] [INFO]   -> Set field 'alarm' = null
[2026-03-14 15:17:47] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T10:08:33
[2026-03-14 15:17:47] [ERROR] Error formatting datetime '2026-14-03T10:08:33': Failed to parse time string (2026-14-03T10:08:33) at position 6 (4): Unexpected character
[2026-03-14 15:17:47] [INFO]   -> Set field 'dispatched' = null
[2026-03-14 15:17:47] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-14 15:17:47] [INFO]   -> No value found (null or empty)
[2026-03-14 15:17:47] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-14 15:17:47] [INFO]   -> No value found (null or empty)
[2026-03-14 15:17:47] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-14 15:17:47] [INFO]   -> Found value: RURAL PAGE
[2026-03-14 15:17:47] [INFO]   -> Set field 'cADVehicleID' = "RURAL PAGE"
[2026-03-14 15:17:47] [INFO]   -> Set field 'name' = "RURAL PAGE"
[2026-03-14 15:17:47] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-14 15:17:47] [INFO]   -> No value found (null or empty)
[2026-03-14 15:17:47] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-14 15:17:47] [INFO]   -> No value found (null or empty)
[2026-03-14 15:17:47] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-14 15:17:47] [INFO]   -> Found value: 03-14-2026T10:17:09
[2026-03-14 15:17:47] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T10:17:09
[2026-03-14 15:17:47] [ERROR] Error formatting datetime '2026-14-03T10:17:09': Failed to parse time string (2026-14-03T10:17:09) at position 6 (4): Unexpected character
[2026-03-14 15:17:47] [INFO]   -> Set field 'timeunitclear' = null
[2026-03-14 15:17:47] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-14 15:17:47] [INFO]   -> Found value: 03-14-2026T10:08:33
[2026-03-14 15:17:47] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T10:08:33
[2026-03-14 15:17:47] [ERROR] Error formatting datetime '2026-14-03T10:08:33': Failed to parse time string (2026-14-03T10:08:33) at position 6 (4): Unexpected character
[2026-03-14 15:17:47] [INFO]   -> Set field 'timedispatch' = null
[2026-03-14 15:17:47] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-14 15:17:47] [INFO]   -> Found value: SCRFD
[2026-03-14 15:17:47] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2026-03-14 15:17:47] [INFO] Finished extracting fields. Total fields extracted: 19
[2026-03-14 15:17:47] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-14 15:17:47] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-07733","cADNumber":"26-07733","incidentLocationStreetNumber":5025,"streetName":"STATE HIGHWAY 77","incidentLocationCity":"BENTON","incidentLocationStateName":"MO","nERISIncidentPostalCode":63736,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"MEDICAL","dispatchNotes":"03-14-2026 10:01:30|WARNING: ADDRESS ALERT EXISTS\nReason for alert:BIOHAZARD\nNotes:2991 ADV RESIDENCE IS A BIOHAZARD AND PERSONNEL NEED TO WEAR N100 MASKS 03-14-2026 09:56:53|RP STATED 85 YO M NEEDING ASSISTANCE GETTING NEIGHBOR FROM CAR TO THE HOUSE JUST CAME HOME FROM NURSING HOME\n  03-14-2026 10:08:26|SCOTT CITY NOW ADVISING EMS HAS BEEN PAGED 03-14-2026 10:08:29|SCRF PAGED","cADLog":"03-14-2026 10:01:30|WARNING: ADDRESS ALERT EXISTS\nReason for alert:BIOHAZARD\nNotes:2991 ADV RESIDENCE IS A BIOHAZARD AND PERSONNEL NEED TO WEAR N100 MASKS 03-14-2026 09:56:53|RP STATED 85 YO M NEEDING ASSISTANCE GETTING NEIGHBOR FROM CAR TO THE HOUSE JUST CAME HOME FROM NURSING HOME\n  03-14-2026 10:08:26|SCOTT CITY NOW ADVISING EMS HAS BEEN PAGED 03-14-2026 10:08:29|SCRF PAGED","alarm":null,"dispatched":null,"cADVehicleID":"RURAL PAGE","name":"RURAL PAGE","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2026-03-14 15:17:47] [INFO] Number of extracted fields: 20
[2026-03-14 15:17:47] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2026-03-14 15:17:47] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SCRFD', Parsed IDs = ["SCRFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-03-14 15:17:47] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2026-03-14 15:17:47] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (index 0) within mailbox's assigned agencies
[2026-03-14 15:17:47] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) at INDEX 0 based on AgencyCode 'SCRFD'
[2026-03-14 15:17:47] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2026-03-14 15:17:47] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"], matchedAgencyIndex = 0
[2026-03-14 15:17:47] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2026-03-14 15:17:47] [INFO] Found existing IncidentTypeMapping with ID: 6979040ce473322a8
[2026-03-14 15:17:47] [INFO] Found existing Dispatch with cADNumber '26-07733', ID: 69b579f5e185cf8c9 - will update instead of create
[2026-03-14 15:17:48] [INFO] Updated existing Dispatches record with ID: 69b579f5e185cf8c9
[2026-03-14 15:17:48] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-07733.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-14/SCRFD_26-07733.xml
[2026-03-14 15:17:48] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-07733.xml
[2026-03-14 15:31:05] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260027889_20260314_153105.XML
[2026-03-14 15:31:05] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260027889_20260314_153105.XML for user: 68f1466aed072ad4a
[2026-03-14 15:31:05] [INFO] File size: 5325 bytes
[2026-03-14 15:31:05] [INFO] Created FTPFiles record with ID: 69b57f39dd5e7138f
[2026-03-14 15:31:05] [INFO] About to extract fields from XML. File size: 5325 bytes
[2026-03-14 15:31:05] [INFO] Number of mappings: 28
[2026-03-14 15:31:05] [INFO] Starting XML parsing. Content length: 5325
[2026-03-14 15:31:05] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 15:31:05] [INFO] Processing 28 field mappings
[2026-03-14 15:31:05] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 15:31:05] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 15:31:05] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 15:31:05] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-14 15:31:05] [INFO]   -> Found value: BFD
EMS
[2026-03-14 15:31:05] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nEMS"
[2026-03-14 15:31:05] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 15:31:05] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-14 15:31:05] [INFO]   -> Found value: 2026000086
[2026-03-14 15:31:05] [INFO]   -> Set field 'incidentInternalId' = "2026000086"
[2026-03-14 15:31:05] [INFO]   -> Set field 'dispatchRunNumber' = "2026000086"
[2026-03-14 15:31:05] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 15:31:05] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-14 15:31:05] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-14 15:31:05] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 15:31:05] [INFO]   -> Found value: 7862
[2026-03-14 15:31:05] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7862
[2026-03-14 15:31:05] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 15:31:05] [INFO]   -> Found value: TN
[2026-03-14 15:31:05] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 15:31:05] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 15:31:05] [INFO]   -> Found value: 38544
[2026-03-14 15:31:05] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-14 15:31:05] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 15:31:05] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:05] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 15:31:05] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:05] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 15:31:05] [INFO]   -> Found value: 36.16609
[2026-03-14 15:31:05] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.16608999999999696228769607841968536376953125
[2026-03-14 15:31:05] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 15:31:05] [INFO]   -> Found value: -85.65244
[2026-03-14 15:31:05] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6524399999999985766407917253673076629638671875
[2026-03-14 15:31:05] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 15:31:05] [INFO]   -> Found value: 2026-03-14 10:29:54
[2026-03-14 15:31:05] [INFO]   -> Set field 'alarm' = "2026-03-14 10:29:54"
[2026-03-14 15:31:05] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 15:31:05] [INFO]   -> Found value: 2026-03-14 10:31:00
[2026-03-14 15:31:05] [INFO]   -> Set field 'dispatched' = "2026-03-14 10:31:00"
[2026-03-14 15:31:05] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 15:31:05] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:05] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 15:31:05] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:05] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 15:31:05] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:05] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 15:31:05] [INFO]   -> Found value: BYERS RD/FIRST AVE N
[2026-03-14 15:31:05] [INFO]   -> Set field 'incidentLocationCross' = "BYERS RD\/FIRST AVE N"
[2026-03-14 15:31:05] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 15:31:05] [INFO]   -> Found value: BEN2
[2026-03-14 15:31:05] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-14 15:31:05] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 15:31:05] [INFO]   -> Found value: 2026-03-14 10:31:00
[2026-03-14 15:31:05] [INFO]   -> Set field 'timedispatch' = "2026-03-14 10:31:00"
[2026-03-14 15:31:05] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 15:31:05] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:05] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 15:31:05] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:05] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 15:31:05] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:05] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 15:31:05] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:05] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 15:31:05] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 15:31:05] [INFO]   -> Found value: 20260027889
[2026-03-14 15:31:05] [INFO]   -> Set field 'policeReportNumber' = "20260027889"
[2026-03-14 15:31:05] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 15:31:05] [INFO]   -> Found value: [EMS] SIDE DOOR  [03/14/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03/14/26 10:30:20 ...
[2026-03-14 15:31:05] [INFO]   -> Set field 'dispatchNotes' = "[EMS] SIDE DOOR  [03\/14\/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03\/14\/26 10:30:20 MCLAYBURN2] [EMS] MELISSA ANGEL  [03\/14\/26 10:30:03 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/14\/2026 10:29:54 MCLAYBURN2] FEELS LIKE SHE IS GOING TO PASS OUT 67\/54  [03\/14\/26 10:29:48 MCLAYBURN2] BP HIGH NOW ITS SUPER LOW  [03\/14\/26 10:29:34 MCLAYBURN2]"
[2026-03-14 15:31:05] [INFO]   -> Set field 'cADLog' = "[EMS] SIDE DOOR  [03\/14\/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03\/14\/26 10:30:20 MCLAYBURN2] [EMS] MELISSA ANGEL  [03\/14\/26 10:30:03 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/14\/2026 10:29:54 MCLAYBURN2] FEELS LIKE SHE IS GOING TO PASS OUT 67\/54  [03\/14\/26 10:29:48 MCLAYBURN2] BP HIGH NOW ITS SUPER LOW  [03\/14\/26 10:29:34 MCLAYBURN2]"
[2026-03-14 15:31:05] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 15:31:05] [INFO]   -> Found value: BAXTER
[2026-03-14 15:31:05] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-14 15:31:05] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 15:31:05] [INFO]   -> Found value: NASHVILLE
[2026-03-14 15:31:05] [INFO]   -> Set field 'streetName' = "NASHVILLE"
[2026-03-14 15:31:05] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 15:31:05] [INFO]   -> Found value: HWY
[2026-03-14 15:31:05] [INFO]   -> Set field 'streetType' = "HWY"
[2026-03-14 15:31:05] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 15:31:05] [INFO]   -> Found value: 7862 NASHVILLE HWY
[2026-03-14 15:31:05] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7862 NASHVILLE HWY"
[2026-03-14 15:31:05] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-14 15:31:05] [INFO] Concatenating street name and type
[2026-03-14 15:31:05] [INFO]   -> Combined street name: NASHVILLE HWY
[2026-03-14 15:31:05] [INFO] Built locationCoordinates from lat/lng: 36.16609,-85.65244
[2026-03-14 15:31:05] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nEMS","incidentInternalId":"2026000086","dispatchRunNumber":"2026000086","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":7862,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.16608999999999696228769607841968536376953125,"nERISIncidentLongitude":-85.6524399999999985766407917253673076629638671875,"alarm":"2026-03-14 10:29:54","dispatched":"2026-03-14 10:31:00","incidentLocationCross":"BYERS RD\/FIRST AVE N","cADVehicleID":"BEN2","timedispatch":"2026-03-14 10:31:00","policeReportNumber":"20260027889","dispatchNotes":"[EMS] SIDE DOOR  [03\/14\/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03\/14\/26 10:30:20 MCLAYBURN2] [EMS] MELISSA ANGEL  [03\/14\/26 10:30:03 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/14\/2026 10:29:54 MCLAYBURN2] FEELS LIKE SHE IS GOING TO PASS OUT 67\/54  [03\/14\/26 10:29:48 MCLAYBURN2] BP HIGH NOW ITS SUPER LOW  [03\/14\/26 10:29:34 MCLAYBURN2]","cADLog":"[EMS] SIDE DOOR  [03\/14\/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03\/14\/26 10:30:20 MCLAYBURN2] [EMS] MELISSA ANGEL  [03\/14\/26 10:30:03 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/14\/2026 10:29:54 MCLAYBURN2] FEELS LIKE SHE IS GOING TO PASS OUT 67\/54  [03\/14\/26 10:29:48 MCLAYBURN2] BP HIGH NOW ITS SUPER LOW  [03\/14\/26 10:29:34 MCLAYBURN2]","incidentLocationCity":"BAXTER","streetName":"NASHVILLE HWY","incidentAddressTextVersionStreet":"7862 NASHVILLE HWY","locationCoordinates":"36.16609,-85.65244"}
[2026-03-14 15:31:05] [INFO] Number of extracted fields: 21
[2026-03-14 15:31:05] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
EMS'
[2026-03-14 15:31:05] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
EMS', Parsed IDs = ["BFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-14 15:31:05] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","EMS"]
[2026-03-14 15:31:05] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-14 15:31:06] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-14 15:31:06] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-03-14 15:31:06] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-14 15:31:06] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-14 15:31:06] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-14 15:31:06] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-14 15:31:06] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-14 15:31:06] [INFO] Found existing IncidentTypeMapping with ID: 694ed9c2182bd5df6
[2026-03-14 15:31:11] [INFO] Created new Dispatches record with ID: 69b57f3adcdb29fc0
[2026-03-14 15:31:11] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260027889_20260314_153105.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/BFD_20260027889_20260314_153105.XML
[2026-03-14 15:31:11] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260027889_20260314_153105.XML
[2026-03-14 15:31:11] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260027889_20260314_153105_1.XML
[2026-03-14 15:31:11] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260027889_20260314_153105_1.XML for user: 68f1466aed072ad4a
[2026-03-14 15:31:11] [INFO] File size: 5325 bytes
[2026-03-14 15:31:11] [INFO] Created FTPFiles record with ID: 69b57f3f822a8af22
[2026-03-14 15:31:11] [INFO] About to extract fields from XML. File size: 5325 bytes
[2026-03-14 15:31:11] [INFO] Number of mappings: 28
[2026-03-14 15:31:11] [INFO] Starting XML parsing. Content length: 5325
[2026-03-14 15:31:11] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 15:31:11] [INFO] Processing 28 field mappings
[2026-03-14 15:31:11] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 15:31:11] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 15:31:11] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 15:31:11] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-14 15:31:11] [INFO]   -> Found value: BFD
EMS
[2026-03-14 15:31:11] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nEMS"
[2026-03-14 15:31:11] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 15:31:11] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-14 15:31:11] [INFO]   -> Found value: 2026000086
[2026-03-14 15:31:11] [INFO]   -> Set field 'incidentInternalId' = "2026000086"
[2026-03-14 15:31:11] [INFO]   -> Set field 'dispatchRunNumber' = "2026000086"
[2026-03-14 15:31:11] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 15:31:11] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-14 15:31:11] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-14 15:31:11] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 15:31:11] [INFO]   -> Found value: 7862
[2026-03-14 15:31:11] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7862
[2026-03-14 15:31:11] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 15:31:11] [INFO]   -> Found value: TN
[2026-03-14 15:31:11] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 15:31:11] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 15:31:11] [INFO]   -> Found value: 38544
[2026-03-14 15:31:11] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-14 15:31:11] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 15:31:11] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:11] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 15:31:11] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:11] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 15:31:11] [INFO]   -> Found value: 36.16609
[2026-03-14 15:31:11] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.16608999999999696228769607841968536376953125
[2026-03-14 15:31:11] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 15:31:11] [INFO]   -> Found value: -85.65244
[2026-03-14 15:31:11] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6524399999999985766407917253673076629638671875
[2026-03-14 15:31:11] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 15:31:11] [INFO]   -> Found value: 2026-03-14 10:29:54
[2026-03-14 15:31:11] [INFO]   -> Set field 'alarm' = "2026-03-14 10:29:54"
[2026-03-14 15:31:11] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 15:31:11] [INFO]   -> Found value: 2026-03-14 10:31:00
[2026-03-14 15:31:11] [INFO]   -> Set field 'dispatched' = "2026-03-14 10:31:00"
[2026-03-14 15:31:11] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 15:31:11] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:11] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 15:31:11] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:11] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 15:31:11] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:11] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 15:31:11] [INFO]   -> Found value: BYERS RD/FIRST AVE N
[2026-03-14 15:31:11] [INFO]   -> Set field 'incidentLocationCross' = "BYERS RD\/FIRST AVE N"
[2026-03-14 15:31:11] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 15:31:11] [INFO]   -> Found value: BEN2
[2026-03-14 15:31:11] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-14 15:31:11] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 15:31:11] [INFO]   -> Found value: 2026-03-14 10:31:00
[2026-03-14 15:31:11] [INFO]   -> Set field 'timedispatch' = "2026-03-14 10:31:00"
[2026-03-14 15:31:11] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 15:31:11] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:11] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 15:31:11] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:11] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 15:31:11] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:11] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 15:31:11] [INFO]   -> No value found (null or empty)
[2026-03-14 15:31:11] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 15:31:11] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 15:31:11] [INFO]   -> Found value: 20260027889
[2026-03-14 15:31:11] [INFO]   -> Set field 'policeReportNumber' = "20260027889"
[2026-03-14 15:31:11] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 15:31:11] [INFO]   -> Found value: [EMS] SIDE DOOR  [03/14/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03/14/26 10:30:20 ...
[2026-03-14 15:31:11] [INFO]   -> Set field 'dispatchNotes' = "[EMS] SIDE DOOR  [03\/14\/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03\/14\/26 10:30:20 MCLAYBURN2] [EMS] MELISSA ANGEL  [03\/14\/26 10:30:03 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/14\/2026 10:29:54 MCLAYBURN2] FEELS LIKE SHE IS GOING TO PASS OUT 67\/54  [03\/14\/26 10:29:48 MCLAYBURN2] BP HIGH NOW ITS SUPER LOW  [03\/14\/26 10:29:34 MCLAYBURN2]"
[2026-03-14 15:31:11] [INFO]   -> Set field 'cADLog' = "[EMS] SIDE DOOR  [03\/14\/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03\/14\/26 10:30:20 MCLAYBURN2] [EMS] MELISSA ANGEL  [03\/14\/26 10:30:03 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/14\/2026 10:29:54 MCLAYBURN2] FEELS LIKE SHE IS GOING TO PASS OUT 67\/54  [03\/14\/26 10:29:48 MCLAYBURN2] BP HIGH NOW ITS SUPER LOW  [03\/14\/26 10:29:34 MCLAYBURN2]"
[2026-03-14 15:31:11] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 15:31:11] [INFO]   -> Found value: BAXTER
[2026-03-14 15:31:11] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-14 15:31:11] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 15:31:11] [INFO]   -> Found value: NASHVILLE
[2026-03-14 15:31:11] [INFO]   -> Set field 'streetName' = "NASHVILLE"
[2026-03-14 15:31:11] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 15:31:11] [INFO]   -> Found value: HWY
[2026-03-14 15:31:11] [INFO]   -> Set field 'streetType' = "HWY"
[2026-03-14 15:31:11] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 15:31:11] [INFO]   -> Found value: 7862 NASHVILLE HWY
[2026-03-14 15:31:11] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7862 NASHVILLE HWY"
[2026-03-14 15:31:11] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-14 15:31:11] [INFO] Concatenating street name and type
[2026-03-14 15:31:11] [INFO]   -> Combined street name: NASHVILLE HWY
[2026-03-14 15:31:11] [INFO] Built locationCoordinates from lat/lng: 36.16609,-85.65244
[2026-03-14 15:31:11] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nEMS","incidentInternalId":"2026000086","dispatchRunNumber":"2026000086","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":7862,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.16608999999999696228769607841968536376953125,"nERISIncidentLongitude":-85.6524399999999985766407917253673076629638671875,"alarm":"2026-03-14 10:29:54","dispatched":"2026-03-14 10:31:00","incidentLocationCross":"BYERS RD\/FIRST AVE N","cADVehicleID":"BEN2","timedispatch":"2026-03-14 10:31:00","policeReportNumber":"20260027889","dispatchNotes":"[EMS] SIDE DOOR  [03\/14\/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03\/14\/26 10:30:20 MCLAYBURN2] [EMS] MELISSA ANGEL  [03\/14\/26 10:30:03 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/14\/2026 10:29:54 MCLAYBURN2] FEELS LIKE SHE IS GOING TO PASS OUT 67\/54  [03\/14\/26 10:29:48 MCLAYBURN2] BP HIGH NOW ITS SUPER LOW  [03\/14\/26 10:29:34 MCLAYBURN2]","cADLog":"[EMS] SIDE DOOR  [03\/14\/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03\/14\/26 10:30:20 MCLAYBURN2] [EMS] MELISSA ANGEL  [03\/14\/26 10:30:03 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/14\/2026 10:29:54 MCLAYBURN2] FEELS LIKE SHE IS GOING TO PASS OUT 67\/54  [03\/14\/26 10:29:48 MCLAYBURN2] BP HIGH NOW ITS SUPER LOW  [03\/14\/26 10:29:34 MCLAYBURN2]","incidentLocationCity":"BAXTER","streetName":"NASHVILLE HWY","incidentAddressTextVersionStreet":"7862 NASHVILLE HWY","locationCoordinates":"36.16609,-85.65244"}
[2026-03-14 15:31:11] [INFO] Number of extracted fields: 21
[2026-03-14 15:31:11] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
EMS'
[2026-03-14 15:31:11] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
EMS', Parsed IDs = ["BFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-14 15:31:11] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","EMS"]
[2026-03-14 15:31:11] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-14 15:31:11] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-14 15:31:11] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-03-14 15:31:11] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-14 15:31:11] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-14 15:31:11] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-14 15:31:11] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-14 15:31:12] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-14 15:31:12] [INFO] Found existing IncidentTypeMapping with ID: 694ed9c2182bd5df6
[2026-03-14 15:31:12] [INFO] Found existing Dispatch with cADNumber '2026000086', ID: 69b57f3adcdb29fc0 - will update instead of create
[2026-03-14 15:31:12] [INFO] Updated existing Dispatches record with ID: 69b57f3adcdb29fc0
[2026-03-14 15:31:12] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260027889_20260314_153105_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/BFD_20260027889_20260314_153105_1.XML
[2026-03-14 15:31:12] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260027889_20260314_153105_1.XML
[2026-03-14 15:32:39] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260027889_20260314_153239.XML
[2026-03-14 15:32:39] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260027889_20260314_153239.XML for user: 68f1466aed072ad4a
[2026-03-14 15:32:39] [INFO] File size: 5392 bytes
[2026-03-14 15:32:40] [INFO] Created FTPFiles record with ID: 69b57f98094ed2dbe
[2026-03-14 15:32:40] [INFO] About to extract fields from XML. File size: 5392 bytes
[2026-03-14 15:32:40] [INFO] Number of mappings: 28
[2026-03-14 15:32:40] [INFO] Starting XML parsing. Content length: 5392
[2026-03-14 15:32:40] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 15:32:40] [INFO] Processing 28 field mappings
[2026-03-14 15:32:40] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 15:32:40] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 15:32:40] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 15:32:40] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-14 15:32:40] [INFO]   -> Found value: BFD
EMS
[2026-03-14 15:32:40] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nEMS"
[2026-03-14 15:32:40] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 15:32:40] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-14 15:32:40] [INFO]   -> Found value: 2026000086
[2026-03-14 15:32:40] [INFO]   -> Set field 'incidentInternalId' = "2026000086"
[2026-03-14 15:32:40] [INFO]   -> Set field 'dispatchRunNumber' = "2026000086"
[2026-03-14 15:32:40] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 15:32:40] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-14 15:32:40] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-14 15:32:40] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 15:32:40] [INFO]   -> Found value: 7862
[2026-03-14 15:32:40] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7862
[2026-03-14 15:32:40] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 15:32:40] [INFO]   -> Found value: TN
[2026-03-14 15:32:40] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 15:32:40] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 15:32:40] [INFO]   -> Found value: 38544
[2026-03-14 15:32:40] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-14 15:32:40] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 15:32:40] [INFO]   -> No value found (null or empty)
[2026-03-14 15:32:40] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 15:32:40] [INFO]   -> No value found (null or empty)
[2026-03-14 15:32:40] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 15:32:40] [INFO]   -> Found value: 36.16609
[2026-03-14 15:32:40] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.16608999999999696228769607841968536376953125
[2026-03-14 15:32:40] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 15:32:40] [INFO]   -> Found value: -85.65244
[2026-03-14 15:32:40] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6524399999999985766407917253673076629638671875
[2026-03-14 15:32:40] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 15:32:40] [INFO]   -> Found value: 2026-03-14 10:29:54
[2026-03-14 15:32:40] [INFO]   -> Set field 'alarm' = "2026-03-14 10:29:54"
[2026-03-14 15:32:40] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 15:32:40] [INFO]   -> Found value: 2026-03-14 10:31:00
[2026-03-14 15:32:40] [INFO]   -> Set field 'dispatched' = "2026-03-14 10:31:00"
[2026-03-14 15:32:40] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 15:32:40] [INFO]   -> Found value: 2026-03-14 10:32:27
[2026-03-14 15:32:40] [INFO]   -> Set field 'enroute' = "2026-03-14 10:32:27"
[2026-03-14 15:32:40] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 15:32:40] [INFO]   -> No value found (null or empty)
[2026-03-14 15:32:40] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 15:32:40] [INFO]   -> No value found (null or empty)
[2026-03-14 15:32:40] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 15:32:40] [INFO]   -> Found value: BYERS RD/FIRST AVE N
[2026-03-14 15:32:40] [INFO]   -> Set field 'incidentLocationCross' = "BYERS RD\/FIRST AVE N"
[2026-03-14 15:32:40] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 15:32:40] [INFO]   -> Found value: BEN2
[2026-03-14 15:32:40] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-14 15:32:40] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 15:32:40] [INFO]   -> Found value: 2026-03-14 10:31:00
[2026-03-14 15:32:40] [INFO]   -> Set field 'timedispatch' = "2026-03-14 10:31:00"
[2026-03-14 15:32:40] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 15:32:40] [INFO]   -> Found value: 2026-03-14 10:32:27
[2026-03-14 15:32:40] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-14 10:32:27"
[2026-03-14 15:32:40] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 15:32:40] [INFO]   -> No value found (null or empty)
[2026-03-14 15:32:40] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 15:32:40] [INFO]   -> No value found (null or empty)
[2026-03-14 15:32:40] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 15:32:40] [INFO]   -> No value found (null or empty)
[2026-03-14 15:32:40] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 15:32:40] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 15:32:40] [INFO]   -> Found value: 20260027889
[2026-03-14 15:32:40] [INFO]   -> Set field 'policeReportNumber' = "20260027889"
[2026-03-14 15:32:40] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 15:32:40] [INFO]   -> Found value: [EMS] SIDE DOOR  [03/14/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03/14/26 10:30:20 ...
[2026-03-14 15:32:40] [INFO]   -> Set field 'dispatchNotes' = "[EMS] SIDE DOOR  [03\/14\/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03\/14\/26 10:30:20 MCLAYBURN2] [EMS] MELISSA ANGEL  [03\/14\/26 10:30:03 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/14\/2026 10:29:54 MCLAYBURN2] FEELS LIKE SHE IS GOING TO PASS OUT 67\/54  [03\/14\/26 10:29:48 MCLAYBURN2] BP HIGH NOW ITS SUPER LOW  [03\/14\/26 10:29:34 MCLAYBURN2]"
[2026-03-14 15:32:40] [INFO]   -> Set field 'cADLog' = "[EMS] SIDE DOOR  [03\/14\/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03\/14\/26 10:30:20 MCLAYBURN2] [EMS] MELISSA ANGEL  [03\/14\/26 10:30:03 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/14\/2026 10:29:54 MCLAYBURN2] FEELS LIKE SHE IS GOING TO PASS OUT 67\/54  [03\/14\/26 10:29:48 MCLAYBURN2] BP HIGH NOW ITS SUPER LOW  [03\/14\/26 10:29:34 MCLAYBURN2]"
[2026-03-14 15:32:40] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 15:32:40] [INFO]   -> Found value: BAXTER
[2026-03-14 15:32:40] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-14 15:32:40] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 15:32:40] [INFO]   -> Found value: NASHVILLE
[2026-03-14 15:32:40] [INFO]   -> Set field 'streetName' = "NASHVILLE"
[2026-03-14 15:32:40] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 15:32:40] [INFO]   -> Found value: HWY
[2026-03-14 15:32:40] [INFO]   -> Set field 'streetType' = "HWY"
[2026-03-14 15:32:40] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 15:32:40] [INFO]   -> Found value: 7862 NASHVILLE HWY
[2026-03-14 15:32:40] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7862 NASHVILLE HWY"
[2026-03-14 15:32:40] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-14 15:32:40] [INFO] Concatenating street name and type
[2026-03-14 15:32:40] [INFO]   -> Combined street name: NASHVILLE HWY
[2026-03-14 15:32:40] [INFO] Built locationCoordinates from lat/lng: 36.16609,-85.65244
[2026-03-14 15:32:40] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nEMS","incidentInternalId":"2026000086","dispatchRunNumber":"2026000086","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":7862,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.16608999999999696228769607841968536376953125,"nERISIncidentLongitude":-85.6524399999999985766407917253673076629638671875,"alarm":"2026-03-14 10:29:54","dispatched":"2026-03-14 10:31:00","enroute":"2026-03-14 10:32:27","incidentLocationCross":"BYERS RD\/FIRST AVE N","cADVehicleID":"BEN2","timedispatch":"2026-03-14 10:31:00","timeenroutetoscene":"2026-03-14 10:32:27","policeReportNumber":"20260027889","dispatchNotes":"[EMS] SIDE DOOR  [03\/14\/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03\/14\/26 10:30:20 MCLAYBURN2] [EMS] MELISSA ANGEL  [03\/14\/26 10:30:03 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/14\/2026 10:29:54 MCLAYBURN2] FEELS LIKE SHE IS GOING TO PASS OUT 67\/54  [03\/14\/26 10:29:48 MCLAYBURN2] BP HIGH NOW ITS SUPER LOW  [03\/14\/26 10:29:34 MCLAYBURN2]","cADLog":"[EMS] SIDE DOOR  [03\/14\/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03\/14\/26 10:30:20 MCLAYBURN2] [EMS] MELISSA ANGEL  [03\/14\/26 10:30:03 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/14\/2026 10:29:54 MCLAYBURN2] FEELS LIKE SHE IS GOING TO PASS OUT 67\/54  [03\/14\/26 10:29:48 MCLAYBURN2] BP HIGH NOW ITS SUPER LOW  [03\/14\/26 10:29:34 MCLAYBURN2]","incidentLocationCity":"BAXTER","streetName":"NASHVILLE HWY","incidentAddressTextVersionStreet":"7862 NASHVILLE HWY","locationCoordinates":"36.16609,-85.65244"}
[2026-03-14 15:32:40] [INFO] Number of extracted fields: 23
[2026-03-14 15:32:40] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
EMS'
[2026-03-14 15:32:40] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
EMS', Parsed IDs = ["BFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-14 15:32:40] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","EMS"]
[2026-03-14 15:32:40] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-14 15:32:40] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-14 15:32:40] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-03-14 15:32:40] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-14 15:32:40] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-14 15:32:40] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-14 15:32:40] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-14 15:32:40] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-14 15:32:40] [INFO] Found existing IncidentTypeMapping with ID: 694ed9c2182bd5df6
[2026-03-14 15:32:40] [INFO] Found existing Dispatch with cADNumber '2026000086', ID: 69b57f3adcdb29fc0 - will update instead of create
[2026-03-14 15:32:41] [INFO] Updated existing Dispatches record with ID: 69b57f3adcdb29fc0
[2026-03-14 15:32:41] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260027889_20260314_153239.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/BFD_20260027889_20260314_153239.XML
[2026-03-14 15:32:41] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260027889_20260314_153239.XML
[2026-03-14 15:32:41] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260027889_20260314_153241.XML
[2026-03-14 15:32:41] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260027889_20260314_153241.XML for user: 68f1466aed072ad4a
[2026-03-14 15:32:41] [INFO] File size: 5392 bytes
[2026-03-14 15:32:41] [INFO] Created FTPFiles record with ID: 69b57f997fcc9f9b1
[2026-03-14 15:32:41] [INFO] About to extract fields from XML. File size: 5392 bytes
[2026-03-14 15:32:41] [INFO] Number of mappings: 28
[2026-03-14 15:32:41] [INFO] Starting XML parsing. Content length: 5392
[2026-03-14 15:32:41] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 15:32:41] [INFO] Processing 28 field mappings
[2026-03-14 15:32:41] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 15:32:41] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 15:32:41] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 15:32:41] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-14 15:32:41] [INFO]   -> Found value: BFD
EMS
[2026-03-14 15:32:41] [INFO]   -> Set field 'cADAgencyIdentifier' = "BFD\nEMS"
[2026-03-14 15:32:41] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 15:32:41] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-14 15:32:41] [INFO]   -> Found value: 2026000086
[2026-03-14 15:32:41] [INFO]   -> Set field 'incidentInternalId' = "2026000086"
[2026-03-14 15:32:41] [INFO]   -> Set field 'dispatchRunNumber' = "2026000086"
[2026-03-14 15:32:41] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 15:32:41] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-14 15:32:41] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-14 15:32:41] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 15:32:41] [INFO]   -> Found value: 7862
[2026-03-14 15:32:41] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7862
[2026-03-14 15:32:41] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 15:32:41] [INFO]   -> Found value: TN
[2026-03-14 15:32:41] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 15:32:41] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 15:32:41] [INFO]   -> Found value: 38544
[2026-03-14 15:32:41] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-14 15:32:41] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 15:32:41] [INFO]   -> No value found (null or empty)
[2026-03-14 15:32:41] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 15:32:41] [INFO]   -> No value found (null or empty)
[2026-03-14 15:32:41] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 15:32:41] [INFO]   -> Found value: 36.16609
[2026-03-14 15:32:41] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.16608999999999696228769607841968536376953125
[2026-03-14 15:32:41] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 15:32:41] [INFO]   -> Found value: -85.65244
[2026-03-14 15:32:41] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6524399999999985766407917253673076629638671875
[2026-03-14 15:32:41] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 15:32:41] [INFO]   -> Found value: 2026-03-14 10:29:54
[2026-03-14 15:32:41] [INFO]   -> Set field 'alarm' = "2026-03-14 10:29:54"
[2026-03-14 15:32:41] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 15:32:41] [INFO]   -> Found value: 2026-03-14 10:31:00
[2026-03-14 15:32:41] [INFO]   -> Set field 'dispatched' = "2026-03-14 10:31:00"
[2026-03-14 15:32:41] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 15:32:41] [INFO]   -> Found value: 2026-03-14 10:32:27
[2026-03-14 15:32:41] [INFO]   -> Set field 'enroute' = "2026-03-14 10:32:27"
[2026-03-14 15:32:41] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 15:32:41] [INFO]   -> No value found (null or empty)
[2026-03-14 15:32:41] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 15:32:41] [INFO]   -> No value found (null or empty)
[2026-03-14 15:32:41] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 15:32:41] [INFO]   -> Found value: BYERS RD/FIRST AVE N
[2026-03-14 15:32:41] [INFO]   -> Set field 'incidentLocationCross' = "BYERS RD\/FIRST AVE N"
[2026-03-14 15:32:41] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 15:32:41] [INFO]   -> Found value: BEN2
[2026-03-14 15:32:41] [INFO]   -> Set field 'cADVehicleID' = "BEN2"
[2026-03-14 15:32:41] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 15:32:41] [INFO]   -> Found value: 2026-03-14 10:31:00
[2026-03-14 15:32:41] [INFO]   -> Set field 'timedispatch' = "2026-03-14 10:31:00"
[2026-03-14 15:32:41] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 15:32:41] [INFO]   -> Found value: 2026-03-14 10:32:27
[2026-03-14 15:32:41] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-14 10:32:27"
[2026-03-14 15:32:41] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 15:32:41] [INFO]   -> No value found (null or empty)
[2026-03-14 15:32:41] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 15:32:41] [INFO]   -> No value found (null or empty)
[2026-03-14 15:32:41] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 15:32:41] [INFO]   -> No value found (null or empty)
[2026-03-14 15:32:41] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 15:32:41] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 15:32:41] [INFO]   -> Found value: 20260027889
[2026-03-14 15:32:41] [INFO]   -> Set field 'policeReportNumber' = "20260027889"
[2026-03-14 15:32:41] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 15:32:41] [INFO]   -> Found value: [EMS] SIDE DOOR  [03/14/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03/14/26 10:30:20 ...
[2026-03-14 15:32:41] [INFO]   -> Set field 'dispatchNotes' = "[EMS] SIDE DOOR  [03\/14\/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03\/14\/26 10:30:20 MCLAYBURN2] [EMS] MELISSA ANGEL  [03\/14\/26 10:30:03 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/14\/2026 10:29:54 MCLAYBURN2] FEELS LIKE SHE IS GOING TO PASS OUT 67\/54  [03\/14\/26 10:29:48 MCLAYBURN2] BP HIGH NOW ITS SUPER LOW  [03\/14\/26 10:29:34 MCLAYBURN2]"
[2026-03-14 15:32:41] [INFO]   -> Set field 'cADLog' = "[EMS] SIDE DOOR  [03\/14\/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03\/14\/26 10:30:20 MCLAYBURN2] [EMS] MELISSA ANGEL  [03\/14\/26 10:30:03 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/14\/2026 10:29:54 MCLAYBURN2] FEELS LIKE SHE IS GOING TO PASS OUT 67\/54  [03\/14\/26 10:29:48 MCLAYBURN2] BP HIGH NOW ITS SUPER LOW  [03\/14\/26 10:29:34 MCLAYBURN2]"
[2026-03-14 15:32:41] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 15:32:41] [INFO]   -> Found value: BAXTER
[2026-03-14 15:32:41] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-14 15:32:41] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 15:32:41] [INFO]   -> Found value: NASHVILLE
[2026-03-14 15:32:41] [INFO]   -> Set field 'streetName' = "NASHVILLE"
[2026-03-14 15:32:41] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 15:32:41] [INFO]   -> Found value: HWY
[2026-03-14 15:32:41] [INFO]   -> Set field 'streetType' = "HWY"
[2026-03-14 15:32:41] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 15:32:41] [INFO]   -> Found value: 7862 NASHVILLE HWY
[2026-03-14 15:32:41] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7862 NASHVILLE HWY"
[2026-03-14 15:32:41] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-14 15:32:41] [INFO] Concatenating street name and type
[2026-03-14 15:32:41] [INFO]   -> Combined street name: NASHVILLE HWY
[2026-03-14 15:32:41] [INFO] Built locationCoordinates from lat/lng: 36.16609,-85.65244
[2026-03-14 15:32:41] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"BFD\nEMS","incidentInternalId":"2026000086","dispatchRunNumber":"2026000086","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":7862,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.16608999999999696228769607841968536376953125,"nERISIncidentLongitude":-85.6524399999999985766407917253673076629638671875,"alarm":"2026-03-14 10:29:54","dispatched":"2026-03-14 10:31:00","enroute":"2026-03-14 10:32:27","incidentLocationCross":"BYERS RD\/FIRST AVE N","cADVehicleID":"BEN2","timedispatch":"2026-03-14 10:31:00","timeenroutetoscene":"2026-03-14 10:32:27","policeReportNumber":"20260027889","dispatchNotes":"[EMS] SIDE DOOR  [03\/14\/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03\/14\/26 10:30:20 MCLAYBURN2] [EMS] MELISSA ANGEL  [03\/14\/26 10:30:03 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/14\/2026 10:29:54 MCLAYBURN2] FEELS LIKE SHE IS GOING TO PASS OUT 67\/54  [03\/14\/26 10:29:48 MCLAYBURN2] BP HIGH NOW ITS SUPER LOW  [03\/14\/26 10:29:34 MCLAYBURN2]","cADLog":"[EMS] SIDE DOOR  [03\/14\/26 10:30:30 MCLAYBURN2] [EMS] JUST SWITCHED BP MEDICINE  [03\/14\/26 10:30:20 MCLAYBURN2] [EMS] MELISSA ANGEL  [03\/14\/26 10:30:03 MCLAYBURN2] Event spawned from FAINTING \/ SYNCOPE.  [03\/14\/2026 10:29:54 MCLAYBURN2] FEELS LIKE SHE IS GOING TO PASS OUT 67\/54  [03\/14\/26 10:29:48 MCLAYBURN2] BP HIGH NOW ITS SUPER LOW  [03\/14\/26 10:29:34 MCLAYBURN2]","incidentLocationCity":"BAXTER","streetName":"NASHVILLE HWY","incidentAddressTextVersionStreet":"7862 NASHVILLE HWY","locationCoordinates":"36.16609,-85.65244"}
[2026-03-14 15:32:41] [INFO] Number of extracted fields: 23
[2026-03-14 15:32:41] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'BFD
EMS'
[2026-03-14 15:32:41] [INFO] Multi-agency routing check: CAD Agency ID raw = 'BFD
EMS', Parsed IDs = ["BFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-14 15:32:41] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["BFD","EMS"]
[2026-03-14 15:32:41] [INFO] Attempting SAASClient lookup for AgencyCode 'BFD' (index 0) within mailbox's assigned agencies
[2026-03-14 15:32:41] [INFO] SUCCESS: Routed to agency 'Baxter Fire Department' (ID: 68d1820f7ad4dadbd) at INDEX 0 based on AgencyCode 'BFD'
[2026-03-14 15:32:41] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-03-14 15:32:41] [INFO] Fetched 1 stations from Stations module for agency 'Baxter Fire Department': ["68d1884332e5f169b"]
[2026-03-14 15:32:41] [INFO] Final routing: saasclientId = 68d1820f7ad4dadbd, dispatchStationsIds = ["68d1884332e5f169b"], matchedAgencyIndex = 0
[2026-03-14 15:32:41] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-14 15:32:41] [INFO] Filtered cADAgencyIdentifier to: BFD
[2026-03-14 15:32:42] [INFO] Updated FTPFiles record saasclientId to routed agency: 68d1820f7ad4dadbd
[2026-03-14 15:32:42] [INFO] Found existing IncidentTypeMapping with ID: 694ed9c2182bd5df6
[2026-03-14 15:32:42] [INFO] Found existing Dispatch with cADNumber '2026000086', ID: 69b57f3adcdb29fc0 - will update instead of create
[2026-03-14 15:32:42] [INFO] Updated existing Dispatches record with ID: 69b57f3adcdb29fc0
[2026-03-14 15:32:42] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260027889_20260314_153241.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/BFD_20260027889_20260314_153241.XML
[2026-03-14 15:32:42] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/BFD_20260027889_20260314_153241.XML
[2026-03-14 16:13:45] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260027900_20260314_161345.XML
[2026-03-14 16:13:45] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260027900_20260314_161345.XML for user: 68f1466aed072ad4a
[2026-03-14 16:13:45] [INFO] File size: 5580 bytes
[2026-03-14 16:13:46] [INFO] Created FTPFiles record with ID: 69b5893a3dcc0650f
[2026-03-14 16:13:46] [INFO] About to extract fields from XML. File size: 5580 bytes
[2026-03-14 16:13:46] [INFO] Number of mappings: 28
[2026-03-14 16:13:46] [INFO] Starting XML parsing. Content length: 5580
[2026-03-14 16:13:46] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 16:13:46] [INFO] Processing 28 field mappings
[2026-03-14 16:13:46] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 16:13:46] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 16:13:46] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 16:13:46] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-14 16:13:46] [INFO]   -> Found value: AFD
EMS
APD
[2026-03-14 16:13:46] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nEMS\nAPD"
[2026-03-14 16:13:46] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 16:13:46] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-14 16:13:46] [INFO]   -> Found value: 2026000104
[2026-03-14 16:13:46] [INFO]   -> Set field 'incidentInternalId' = "2026000104"
[2026-03-14 16:13:46] [INFO]   -> Set field 'dispatchRunNumber' = "2026000104"
[2026-03-14 16:13:46] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 16:13:46] [INFO]   -> Found value: UNKNOWN PROBLEM
[2026-03-14 16:13:46] [INFO]   -> Set field 'incidentTypeValue1' = "UNKNOWN PROBLEM"
[2026-03-14 16:13:46] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 16:13:46] [INFO]   -> Found value: 402
[2026-03-14 16:13:46] [INFO]   -> Set field 'incidentLocationStreetNumber' = 402
[2026-03-14 16:13:46] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 16:13:46] [INFO]   -> Found value: TN
[2026-03-14 16:13:46] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 16:13:46] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 16:13:46] [INFO]   -> Found value: 38506
[2026-03-14 16:13:46] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-14 16:13:46] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 16:13:46] [INFO]   -> Found value: DOMINOS PIZZA
[2026-03-14 16:13:46] [INFO]   -> Set field 'businessName' = "DOMINOS PIZZA"
[2026-03-14 16:13:46] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 16:13:46] [INFO]   -> No value found (null or empty)
[2026-03-14 16:13:46] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 16:13:46] [INFO]   -> Found value: 36.18882
[2026-03-14 16:13:46] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18881999999999976580511429347097873687744140625
[2026-03-14 16:13:46] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 16:13:46] [INFO]   -> Found value: -85.45300
[2026-03-14 16:13:46] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.453000000000002955857780762016773223876953125
[2026-03-14 16:13:46] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 16:13:46] [INFO]   -> Found value: 2026-03-14 11:12:42
[2026-03-14 16:13:46] [INFO]   -> Set field 'alarm' = "2026-03-14 11:12:42"
[2026-03-14 16:13:46] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 16:13:46] [INFO]   -> Found value: 2026-03-14 11:13:40
[2026-03-14 16:13:46] [INFO]   -> Set field 'dispatched' = "2026-03-14 11:13:40"
[2026-03-14 16:13:46] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 16:13:46] [INFO]   -> No value found (null or empty)
[2026-03-14 16:13:46] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 16:13:46] [INFO]   -> No value found (null or empty)
[2026-03-14 16:13:46] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 16:13:46] [INFO]   -> No value found (null or empty)
[2026-03-14 16:13:46] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 16:13:46] [INFO]   -> Found value: MAXWELL ST/RILEYS PATH
[2026-03-14 16:13:46] [INFO]   -> Set field 'incidentLocationCross' = "MAXWELL ST\/RILEYS PATH"
[2026-03-14 16:13:46] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 16:13:46] [INFO]   -> Found value: AEN2
[2026-03-14 16:13:46] [INFO]   -> Set field 'cADVehicleID' = "AEN2"
[2026-03-14 16:13:46] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 16:13:46] [INFO]   -> Found value: 2026-03-14 11:13:40
[2026-03-14 16:13:46] [INFO]   -> Set field 'timedispatch' = "2026-03-14 11:13:40"
[2026-03-14 16:13:46] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 16:13:46] [INFO]   -> No value found (null or empty)
[2026-03-14 16:13:46] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 16:13:46] [INFO]   -> No value found (null or empty)
[2026-03-14 16:13:46] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 16:13:46] [INFO]   -> No value found (null or empty)
[2026-03-14 16:13:46] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 16:13:46] [INFO]   -> No value found (null or empty)
[2026-03-14 16:13:46] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 16:13:46] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 16:13:46] [INFO]   -> Found value: 20260027900
[2026-03-14 16:13:46] [INFO]   -> Set field 'policeReportNumber' = "20260027900"
[2026-03-14 16:13:46] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 16:13:46] [INFO]   -> Found value: [EMS] WEARING A HAT  [03/14/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03/14/26...
[2026-03-14 16:13:46] [INFO]   -> Set field 'dispatchNotes' = "[EMS] WEARING A HAT  [03\/14\/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03\/14\/26 11:13:29 MCLAYBURN2] [EMS] MID 50S  [03\/14\/26 11:13:22 MCLAYBURN2] [EMS] EMPLOYEE IS HOLDING HIM UP NOT RESPONDING TO THEM  [03\/14\/26 11:12:57 MCLAYBURN2] Event spawned from UNKNOWN PROBLEM.  [03\/14\/2026 11:12:42 MCLAYBURN2] CUSTOMER IN LOBBY FOLDING OVER UNABLE TO STAY AWAKE NOT SURE IF HE IS ON SOMETHING  [03\/14\/26 11:12:36 MCLAYBURN2]]"
[2026-03-14 16:13:46] [INFO]   -> Set field 'cADLog' = "[EMS] WEARING A HAT  [03\/14\/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03\/14\/26 11:13:29 MCLAYBURN2] [EMS] MID 50S  [03\/14\/26 11:13:22 MCLAYBURN2] [EMS] EMPLOYEE IS HOLDING HIM UP NOT RESPONDING TO THEM  [03\/14\/26 11:12:57 MCLAYBURN2] Event spawned from UNKNOWN PROBLEM.  [03\/14\/2026 11:12:42 MCLAYBURN2] CUSTOMER IN LOBBY FOLDING OVER UNABLE TO STAY AWAKE NOT SURE IF HE IS ON SOMETHING  [03\/14\/26 11:12:36 MCLAYBURN2]]"
[2026-03-14 16:13:46] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 16:13:46] [INFO]   -> Found value: ALGOOD
[2026-03-14 16:13:46] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-14 16:13:46] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 16:13:46] [INFO]   -> Found value: MAIN
[2026-03-14 16:13:46] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-03-14 16:13:46] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 16:13:46] [INFO]   -> Found value: ST
[2026-03-14 16:13:46] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-14 16:13:46] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 16:13:46] [INFO]   -> Found value: 402 W MAIN ST
[2026-03-14 16:13:46] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "402 W MAIN ST"
[2026-03-14 16:13:46] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-14 16:13:46] [INFO] Concatenating street name and type
[2026-03-14 16:13:46] [INFO]   -> Combined street name: MAIN ST
[2026-03-14 16:13:46] [INFO] Built locationCoordinates from lat/lng: 36.18882,-85.453
[2026-03-14 16:13:46] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nEMS\nAPD","incidentInternalId":"2026000104","dispatchRunNumber":"2026000104","incidentTypeValue1":"UNKNOWN PROBLEM","incidentLocationStreetNumber":402,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"DOMINOS PIZZA","nERISIncidentLatitude":36.18881999999999976580511429347097873687744140625,"nERISIncidentLongitude":-85.453000000000002955857780762016773223876953125,"alarm":"2026-03-14 11:12:42","dispatched":"2026-03-14 11:13:40","incidentLocationCross":"MAXWELL ST\/RILEYS PATH","cADVehicleID":"AEN2","timedispatch":"2026-03-14 11:13:40","policeReportNumber":"20260027900","dispatchNotes":"[EMS] WEARING A HAT  [03\/14\/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03\/14\/26 11:13:29 MCLAYBURN2] [EMS] MID 50S  [03\/14\/26 11:13:22 MCLAYBURN2] [EMS] EMPLOYEE IS HOLDING HIM UP NOT RESPONDING TO THEM  [03\/14\/26 11:12:57 MCLAYBURN2] Event spawned from UNKNOWN PROBLEM.  [03\/14\/2026 11:12:42 MCLAYBURN2] CUSTOMER IN LOBBY FOLDING OVER UNABLE TO STAY AWAKE NOT SURE IF HE IS ON SOMETHING  [03\/14\/26 11:12:36 MCLAYBURN2]]","cADLog":"[EMS] WEARING A HAT  [03\/14\/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03\/14\/26 11:13:29 MCLAYBURN2] [EMS] MID 50S  [03\/14\/26 11:13:22 MCLAYBURN2] [EMS] EMPLOYEE IS HOLDING HIM UP NOT RESPONDING TO THEM  [03\/14\/26 11:12:57 MCLAYBURN2] Event spawned from UNKNOWN PROBLEM.  [03\/14\/2026 11:12:42 MCLAYBURN2] CUSTOMER IN LOBBY FOLDING OVER UNABLE TO STAY AWAKE NOT SURE IF HE IS ON SOMETHING  [03\/14\/26 11:12:36 MCLAYBURN2]]","incidentLocationCity":"ALGOOD","streetName":"MAIN ST","incidentAddressTextVersionStreet":"402 W MAIN ST","locationCoordinates":"36.18882,-85.453"}
[2026-03-14 16:13:46] [INFO] Number of extracted fields: 22
[2026-03-14 16:13:46] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
EMS
APD'
[2026-03-14 16:13:46] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
EMS
APD', Parsed IDs = ["AFD","EMS","APD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-14 16:13:46] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","EMS","APD"]
[2026-03-14 16:13:46] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-14 16:13:46] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-14 16:13:46] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","APD"]
[2026-03-14 16:13:46] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-14 16:13:46] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-14 16:13:46] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-14 16:13:46] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-03-14 16:13:46] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-14 16:13:46] [INFO] Created new IncidentTypeMapping Data: {"cADIncidentType":"UNKNOWN PROBLEM","saasclientId":"68910627445d6e167","name":"UNKNOWN PROBLEM"}
[2026-03-14 16:13:47] [INFO] Created new IncidentTypeMapping with ID: 69b5893b021893adb
[2026-03-14 16:13:52] [INFO] Created new Dispatches record with ID: 69b5893b50823f29c
[2026-03-14 16:13:52] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260027900_20260314_161345.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/AFD_20260027900_20260314_161345.XML
[2026-03-14 16:13:52] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260027900_20260314_161345.XML
[2026-03-14 16:13:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260027900_20260314_161345_1.XML
[2026-03-14 16:13:52] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260027900_20260314_161345_1.XML for user: 68f1466aed072ad4a
[2026-03-14 16:13:52] [INFO] File size: 5580 bytes
[2026-03-14 16:13:52] [INFO] Created FTPFiles record with ID: 69b58940ad6b0d553
[2026-03-14 16:13:52] [INFO] About to extract fields from XML. File size: 5580 bytes
[2026-03-14 16:13:52] [INFO] Number of mappings: 28
[2026-03-14 16:13:52] [INFO] Starting XML parsing. Content length: 5580
[2026-03-14 16:13:52] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 16:13:52] [INFO] Processing 28 field mappings
[2026-03-14 16:13:52] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 16:13:52] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 16:13:52] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 16:13:52] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-14 16:13:52] [INFO]   -> Found value: AFD
EMS
APD
[2026-03-14 16:13:52] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nEMS\nAPD"
[2026-03-14 16:13:52] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 16:13:52] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-14 16:13:52] [INFO]   -> Found value: 2026000104
[2026-03-14 16:13:52] [INFO]   -> Set field 'incidentInternalId' = "2026000104"
[2026-03-14 16:13:52] [INFO]   -> Set field 'dispatchRunNumber' = "2026000104"
[2026-03-14 16:13:52] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 16:13:52] [INFO]   -> Found value: UNKNOWN PROBLEM
[2026-03-14 16:13:52] [INFO]   -> Set field 'incidentTypeValue1' = "UNKNOWN PROBLEM"
[2026-03-14 16:13:52] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 16:13:52] [INFO]   -> Found value: 402
[2026-03-14 16:13:52] [INFO]   -> Set field 'incidentLocationStreetNumber' = 402
[2026-03-14 16:13:52] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 16:13:52] [INFO]   -> Found value: TN
[2026-03-14 16:13:52] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 16:13:52] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 16:13:52] [INFO]   -> Found value: 38506
[2026-03-14 16:13:52] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-14 16:13:52] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 16:13:52] [INFO]   -> Found value: DOMINOS PIZZA
[2026-03-14 16:13:52] [INFO]   -> Set field 'businessName' = "DOMINOS PIZZA"
[2026-03-14 16:13:52] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 16:13:52] [INFO]   -> No value found (null or empty)
[2026-03-14 16:13:52] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 16:13:52] [INFO]   -> Found value: 36.18882
[2026-03-14 16:13:52] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18881999999999976580511429347097873687744140625
[2026-03-14 16:13:52] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 16:13:52] [INFO]   -> Found value: -85.45300
[2026-03-14 16:13:52] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.453000000000002955857780762016773223876953125
[2026-03-14 16:13:52] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 16:13:52] [INFO]   -> Found value: 2026-03-14 11:12:42
[2026-03-14 16:13:52] [INFO]   -> Set field 'alarm' = "2026-03-14 11:12:42"
[2026-03-14 16:13:52] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 16:13:52] [INFO]   -> Found value: 2026-03-14 11:13:40
[2026-03-14 16:13:52] [INFO]   -> Set field 'dispatched' = "2026-03-14 11:13:40"
[2026-03-14 16:13:52] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 16:13:52] [INFO]   -> No value found (null or empty)
[2026-03-14 16:13:52] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 16:13:52] [INFO]   -> No value found (null or empty)
[2026-03-14 16:13:52] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 16:13:52] [INFO]   -> No value found (null or empty)
[2026-03-14 16:13:52] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 16:13:52] [INFO]   -> Found value: MAXWELL ST/RILEYS PATH
[2026-03-14 16:13:52] [INFO]   -> Set field 'incidentLocationCross' = "MAXWELL ST\/RILEYS PATH"
[2026-03-14 16:13:52] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 16:13:52] [INFO]   -> Found value: AEN2
[2026-03-14 16:13:52] [INFO]   -> Set field 'cADVehicleID' = "AEN2"
[2026-03-14 16:13:52] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 16:13:52] [INFO]   -> Found value: 2026-03-14 11:13:40
[2026-03-14 16:13:52] [INFO]   -> Set field 'timedispatch' = "2026-03-14 11:13:40"
[2026-03-14 16:13:52] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 16:13:52] [INFO]   -> No value found (null or empty)
[2026-03-14 16:13:52] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 16:13:52] [INFO]   -> No value found (null or empty)
[2026-03-14 16:13:52] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 16:13:52] [INFO]   -> No value found (null or empty)
[2026-03-14 16:13:52] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 16:13:52] [INFO]   -> No value found (null or empty)
[2026-03-14 16:13:52] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 16:13:52] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 16:13:52] [INFO]   -> Found value: 20260027900
[2026-03-14 16:13:52] [INFO]   -> Set field 'policeReportNumber' = "20260027900"
[2026-03-14 16:13:52] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 16:13:52] [INFO]   -> Found value: [EMS] WEARING A HAT  [03/14/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03/14/26...
[2026-03-14 16:13:52] [INFO]   -> Set field 'dispatchNotes' = "[EMS] WEARING A HAT  [03\/14\/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03\/14\/26 11:13:29 MCLAYBURN2] [EMS] MID 50S  [03\/14\/26 11:13:22 MCLAYBURN2] [EMS] EMPLOYEE IS HOLDING HIM UP NOT RESPONDING TO THEM  [03\/14\/26 11:12:57 MCLAYBURN2] Event spawned from UNKNOWN PROBLEM.  [03\/14\/2026 11:12:42 MCLAYBURN2] CUSTOMER IN LOBBY FOLDING OVER UNABLE TO STAY AWAKE NOT SURE IF HE IS ON SOMETHING  [03\/14\/26 11:12:36 MCLAYBURN2]]"
[2026-03-14 16:13:52] [INFO]   -> Set field 'cADLog' = "[EMS] WEARING A HAT  [03\/14\/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03\/14\/26 11:13:29 MCLAYBURN2] [EMS] MID 50S  [03\/14\/26 11:13:22 MCLAYBURN2] [EMS] EMPLOYEE IS HOLDING HIM UP NOT RESPONDING TO THEM  [03\/14\/26 11:12:57 MCLAYBURN2] Event spawned from UNKNOWN PROBLEM.  [03\/14\/2026 11:12:42 MCLAYBURN2] CUSTOMER IN LOBBY FOLDING OVER UNABLE TO STAY AWAKE NOT SURE IF HE IS ON SOMETHING  [03\/14\/26 11:12:36 MCLAYBURN2]]"
[2026-03-14 16:13:52] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 16:13:52] [INFO]   -> Found value: ALGOOD
[2026-03-14 16:13:52] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-14 16:13:52] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 16:13:52] [INFO]   -> Found value: MAIN
[2026-03-14 16:13:52] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-03-14 16:13:52] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 16:13:52] [INFO]   -> Found value: ST
[2026-03-14 16:13:52] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-14 16:13:52] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 16:13:52] [INFO]   -> Found value: 402 W MAIN ST
[2026-03-14 16:13:52] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "402 W MAIN ST"
[2026-03-14 16:13:52] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-14 16:13:52] [INFO] Concatenating street name and type
[2026-03-14 16:13:52] [INFO]   -> Combined street name: MAIN ST
[2026-03-14 16:13:52] [INFO] Built locationCoordinates from lat/lng: 36.18882,-85.453
[2026-03-14 16:13:52] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nEMS\nAPD","incidentInternalId":"2026000104","dispatchRunNumber":"2026000104","incidentTypeValue1":"UNKNOWN PROBLEM","incidentLocationStreetNumber":402,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"DOMINOS PIZZA","nERISIncidentLatitude":36.18881999999999976580511429347097873687744140625,"nERISIncidentLongitude":-85.453000000000002955857780762016773223876953125,"alarm":"2026-03-14 11:12:42","dispatched":"2026-03-14 11:13:40","incidentLocationCross":"MAXWELL ST\/RILEYS PATH","cADVehicleID":"AEN2","timedispatch":"2026-03-14 11:13:40","policeReportNumber":"20260027900","dispatchNotes":"[EMS] WEARING A HAT  [03\/14\/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03\/14\/26 11:13:29 MCLAYBURN2] [EMS] MID 50S  [03\/14\/26 11:13:22 MCLAYBURN2] [EMS] EMPLOYEE IS HOLDING HIM UP NOT RESPONDING TO THEM  [03\/14\/26 11:12:57 MCLAYBURN2] Event spawned from UNKNOWN PROBLEM.  [03\/14\/2026 11:12:42 MCLAYBURN2] CUSTOMER IN LOBBY FOLDING OVER UNABLE TO STAY AWAKE NOT SURE IF HE IS ON SOMETHING  [03\/14\/26 11:12:36 MCLAYBURN2]]","cADLog":"[EMS] WEARING A HAT  [03\/14\/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03\/14\/26 11:13:29 MCLAYBURN2] [EMS] MID 50S  [03\/14\/26 11:13:22 MCLAYBURN2] [EMS] EMPLOYEE IS HOLDING HIM UP NOT RESPONDING TO THEM  [03\/14\/26 11:12:57 MCLAYBURN2] Event spawned from UNKNOWN PROBLEM.  [03\/14\/2026 11:12:42 MCLAYBURN2] CUSTOMER IN LOBBY FOLDING OVER UNABLE TO STAY AWAKE NOT SURE IF HE IS ON SOMETHING  [03\/14\/26 11:12:36 MCLAYBURN2]]","incidentLocationCity":"ALGOOD","streetName":"MAIN ST","incidentAddressTextVersionStreet":"402 W MAIN ST","locationCoordinates":"36.18882,-85.453"}
[2026-03-14 16:13:52] [INFO] Number of extracted fields: 22
[2026-03-14 16:13:52] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
EMS
APD'
[2026-03-14 16:13:52] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
EMS
APD', Parsed IDs = ["AFD","EMS","APD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-14 16:13:52] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","EMS","APD"]
[2026-03-14 16:13:52] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-14 16:13:52] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-14 16:13:52] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","APD"]
[2026-03-14 16:13:53] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-14 16:13:53] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-14 16:13:53] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-14 16:13:53] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-03-14 16:13:53] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-14 16:13:53] [INFO] Found existing IncidentTypeMapping with ID: 69b5893b021893adb
[2026-03-14 16:13:53] [INFO] Found existing Dispatch with cADNumber '2026000104', ID: 69b5893b50823f29c - will update instead of create
[2026-03-14 16:13:53] [INFO] Updated existing Dispatches record with ID: 69b5893b50823f29c
[2026-03-14 16:13:53] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260027900_20260314_161345_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/AFD_20260027900_20260314_161345_1.XML
[2026-03-14 16:13:53] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260027900_20260314_161345_1.XML
[2026-03-14 16:14:10] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260027900_20260314_161410.XML
[2026-03-14 16:14:10] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260027900_20260314_161410.XML for user: 68f1466aed072ad4a
[2026-03-14 16:14:10] [INFO] File size: 6492 bytes
[2026-03-14 16:14:10] [INFO] Created FTPFiles record with ID: 69b58952c0fdbf0e1
[2026-03-14 16:14:10] [INFO] About to extract fields from XML. File size: 6492 bytes
[2026-03-14 16:14:10] [INFO] Number of mappings: 28
[2026-03-14 16:14:10] [INFO] Starting XML parsing. Content length: 6492
[2026-03-14 16:14:10] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 16:14:10] [INFO] Processing 28 field mappings
[2026-03-14 16:14:10] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 16:14:10] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 16:14:10] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 16:14:10] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-14 16:14:10] [INFO]   -> Found value: AFD
EMS
APD
[2026-03-14 16:14:10] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nEMS\nAPD"
[2026-03-14 16:14:10] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 16:14:10] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-14 16:14:10] [INFO]   -> Found value: 2026000104
[2026-03-14 16:14:10] [INFO]   -> Set field 'incidentInternalId' = "2026000104"
[2026-03-14 16:14:10] [INFO]   -> Set field 'dispatchRunNumber' = "2026000104"
[2026-03-14 16:14:10] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 16:14:10] [INFO]   -> Found value: UNKNOWN PROBLEM
[2026-03-14 16:14:10] [INFO]   -> Set field 'incidentTypeValue1' = "UNKNOWN PROBLEM"
[2026-03-14 16:14:10] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 16:14:10] [INFO]   -> Found value: 402
[2026-03-14 16:14:10] [INFO]   -> Set field 'incidentLocationStreetNumber' = 402
[2026-03-14 16:14:10] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 16:14:10] [INFO]   -> Found value: TN
[2026-03-14 16:14:10] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 16:14:10] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 16:14:10] [INFO]   -> Found value: 38506
[2026-03-14 16:14:10] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-14 16:14:10] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 16:14:10] [INFO]   -> Found value: DOMINOS PIZZA
[2026-03-14 16:14:10] [INFO]   -> Set field 'businessName' = "DOMINOS PIZZA"
[2026-03-14 16:14:10] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 16:14:10] [INFO]   -> No value found (null or empty)
[2026-03-14 16:14:10] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 16:14:10] [INFO]   -> Found value: 36.18882
[2026-03-14 16:14:10] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18881999999999976580511429347097873687744140625
[2026-03-14 16:14:10] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 16:14:10] [INFO]   -> Found value: -85.45300
[2026-03-14 16:14:10] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.453000000000002955857780762016773223876953125
[2026-03-14 16:14:10] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 16:14:10] [INFO]   -> Found value: 2026-03-14 11:12:42
[2026-03-14 16:14:10] [INFO]   -> Set field 'alarm' = "2026-03-14 11:12:42"
[2026-03-14 16:14:10] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 16:14:10] [INFO]   -> Found value: 2026-03-14 11:13:40
[2026-03-14 16:14:10] [INFO]   -> Set field 'dispatched' = "2026-03-14 11:13:40"
[2026-03-14 16:14:10] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 16:14:10] [INFO]   -> Found value: 2026-03-14 11:14:06
[2026-03-14 16:14:10] [INFO]   -> Set field 'enroute' = "2026-03-14 11:14:06"
[2026-03-14 16:14:10] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 16:14:10] [INFO]   -> No value found (null or empty)
[2026-03-14 16:14:10] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 16:14:10] [INFO]   -> No value found (null or empty)
[2026-03-14 16:14:10] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 16:14:10] [INFO]   -> Found value: MAXWELL ST/RILEYS PATH
[2026-03-14 16:14:10] [INFO]   -> Set field 'incidentLocationCross' = "MAXWELL ST\/RILEYS PATH"
[2026-03-14 16:14:10] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 16:14:10] [INFO]   -> Found value: A1200
[2026-03-14 16:14:10] [INFO]   -> Set field 'cADVehicleID' = "A1200"
[2026-03-14 16:14:10] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 16:14:10] [INFO]   -> Found value: 2026-03-14 11:14:06
[2026-03-14 16:14:10] [INFO]   -> Set field 'timedispatch' = "2026-03-14 11:14:06"
[2026-03-14 16:14:10] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 16:14:10] [INFO]   -> Found value: 2026-03-14 11:14:06
[2026-03-14 16:14:10] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-14 11:14:06"
[2026-03-14 16:14:10] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 16:14:10] [INFO]   -> No value found (null or empty)
[2026-03-14 16:14:10] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 16:14:10] [INFO]   -> No value found (null or empty)
[2026-03-14 16:14:10] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 16:14:10] [INFO]   -> No value found (null or empty)
[2026-03-14 16:14:10] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 16:14:10] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 16:14:10] [INFO]   -> Found value: 20260027900
[2026-03-14 16:14:10] [INFO]   -> Set field 'policeReportNumber' = "20260027900"
[2026-03-14 16:14:10] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 16:14:10] [INFO]   -> Found value: [EMS] WEARING A HAT  [03/14/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03/14/26...
[2026-03-14 16:14:10] [INFO]   -> Set field 'dispatchNotes' = "[EMS] WEARING A HAT  [03\/14\/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03\/14\/26 11:13:29 MCLAYBURN2] [EMS] MID 50S  [03\/14\/26 11:13:22 MCLAYBURN2] [EMS] EMPLOYEE IS HOLDING HIM UP NOT RESPONDING TO THEM  [03\/14\/26 11:12:57 MCLAYBURN2] Event spawned from UNKNOWN PROBLEM.  [03\/14\/2026 11:12:42 MCLAYBURN2] CUSTOMER IN LOBBY FOLDING OVER UNABLE TO STAY AWAKE NOT SURE IF HE IS ON SOMETHING  [03\/14\/26 11:12:36 MCLAYBURN2]]"
[2026-03-14 16:14:10] [INFO]   -> Set field 'cADLog' = "[EMS] WEARING A HAT  [03\/14\/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03\/14\/26 11:13:29 MCLAYBURN2] [EMS] MID 50S  [03\/14\/26 11:13:22 MCLAYBURN2] [EMS] EMPLOYEE IS HOLDING HIM UP NOT RESPONDING TO THEM  [03\/14\/26 11:12:57 MCLAYBURN2] Event spawned from UNKNOWN PROBLEM.  [03\/14\/2026 11:12:42 MCLAYBURN2] CUSTOMER IN LOBBY FOLDING OVER UNABLE TO STAY AWAKE NOT SURE IF HE IS ON SOMETHING  [03\/14\/26 11:12:36 MCLAYBURN2]]"
[2026-03-14 16:14:10] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 16:14:10] [INFO]   -> Found value: ALGOOD
[2026-03-14 16:14:10] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-14 16:14:10] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 16:14:10] [INFO]   -> Found value: MAIN
[2026-03-14 16:14:10] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-03-14 16:14:10] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 16:14:10] [INFO]   -> Found value: ST
[2026-03-14 16:14:10] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-14 16:14:10] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 16:14:10] [INFO]   -> Found value: 402 W MAIN ST
[2026-03-14 16:14:10] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "402 W MAIN ST"
[2026-03-14 16:14:10] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-14 16:14:10] [INFO] Concatenating street name and type
[2026-03-14 16:14:10] [INFO]   -> Combined street name: MAIN ST
[2026-03-14 16:14:10] [INFO] Built locationCoordinates from lat/lng: 36.18882,-85.453
[2026-03-14 16:14:10] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nEMS\nAPD","incidentInternalId":"2026000104","dispatchRunNumber":"2026000104","incidentTypeValue1":"UNKNOWN PROBLEM","incidentLocationStreetNumber":402,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"DOMINOS PIZZA","nERISIncidentLatitude":36.18881999999999976580511429347097873687744140625,"nERISIncidentLongitude":-85.453000000000002955857780762016773223876953125,"alarm":"2026-03-14 11:12:42","dispatched":"2026-03-14 11:13:40","enroute":"2026-03-14 11:14:06","incidentLocationCross":"MAXWELL ST\/RILEYS PATH","cADVehicleID":"A1200","timedispatch":"2026-03-14 11:14:06","timeenroutetoscene":"2026-03-14 11:14:06","policeReportNumber":"20260027900","dispatchNotes":"[EMS] WEARING A HAT  [03\/14\/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03\/14\/26 11:13:29 MCLAYBURN2] [EMS] MID 50S  [03\/14\/26 11:13:22 MCLAYBURN2] [EMS] EMPLOYEE IS HOLDING HIM UP NOT RESPONDING TO THEM  [03\/14\/26 11:12:57 MCLAYBURN2] Event spawned from UNKNOWN PROBLEM.  [03\/14\/2026 11:12:42 MCLAYBURN2] CUSTOMER IN LOBBY FOLDING OVER UNABLE TO STAY AWAKE NOT SURE IF HE IS ON SOMETHING  [03\/14\/26 11:12:36 MCLAYBURN2]]","cADLog":"[EMS] WEARING A HAT  [03\/14\/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03\/14\/26 11:13:29 MCLAYBURN2] [EMS] MID 50S  [03\/14\/26 11:13:22 MCLAYBURN2] [EMS] EMPLOYEE IS HOLDING HIM UP NOT RESPONDING TO THEM  [03\/14\/26 11:12:57 MCLAYBURN2] Event spawned from UNKNOWN PROBLEM.  [03\/14\/2026 11:12:42 MCLAYBURN2] CUSTOMER IN LOBBY FOLDING OVER UNABLE TO STAY AWAKE NOT SURE IF HE IS ON SOMETHING  [03\/14\/26 11:12:36 MCLAYBURN2]]","incidentLocationCity":"ALGOOD","streetName":"MAIN ST","incidentAddressTextVersionStreet":"402 W MAIN ST","locationCoordinates":"36.18882,-85.453"}
[2026-03-14 16:14:10] [INFO] Number of extracted fields: 24
[2026-03-14 16:14:10] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
EMS
APD'
[2026-03-14 16:14:10] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
EMS
APD', Parsed IDs = ["AFD","EMS","APD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-14 16:14:10] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","EMS","APD"]
[2026-03-14 16:14:10] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-14 16:14:10] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-14 16:14:10] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","APD"]
[2026-03-14 16:14:11] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-14 16:14:11] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-14 16:14:11] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-14 16:14:11] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-03-14 16:14:11] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-14 16:14:11] [INFO] Found existing IncidentTypeMapping with ID: 69b5893b021893adb
[2026-03-14 16:14:11] [INFO] Found existing Dispatch with cADNumber '2026000104', ID: 69b5893b50823f29c - will update instead of create
[2026-03-14 16:14:11] [INFO] Updated existing Dispatches record with ID: 69b5893b50823f29c
[2026-03-14 16:14:11] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260027900_20260314_161410.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/AFD_20260027900_20260314_161410.XML
[2026-03-14 16:14:11] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260027900_20260314_161410.XML
[2026-03-14 16:14:19] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260027900_20260314_161419.XML
[2026-03-14 16:14:19] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260027900_20260314_161419.XML for user: 68f1466aed072ad4a
[2026-03-14 16:14:19] [INFO] File size: 6492 bytes
[2026-03-14 16:14:19] [INFO] Created FTPFiles record with ID: 69b5895becdd3205c
[2026-03-14 16:14:19] [INFO] About to extract fields from XML. File size: 6492 bytes
[2026-03-14 16:14:19] [INFO] Number of mappings: 28
[2026-03-14 16:14:19] [INFO] Starting XML parsing. Content length: 6492
[2026-03-14 16:14:19] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 16:14:19] [INFO] Processing 28 field mappings
[2026-03-14 16:14:19] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 16:14:19] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 16:14:19] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 16:14:19] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-14 16:14:19] [INFO]   -> Found value: AFD
EMS
APD
[2026-03-14 16:14:19] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nEMS\nAPD"
[2026-03-14 16:14:19] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 16:14:19] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-14 16:14:19] [INFO]   -> Found value: 2026000104
[2026-03-14 16:14:19] [INFO]   -> Set field 'incidentInternalId' = "2026000104"
[2026-03-14 16:14:19] [INFO]   -> Set field 'dispatchRunNumber' = "2026000104"
[2026-03-14 16:14:19] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 16:14:19] [INFO]   -> Found value: UNKNOWN PROBLEM
[2026-03-14 16:14:19] [INFO]   -> Set field 'incidentTypeValue1' = "UNKNOWN PROBLEM"
[2026-03-14 16:14:19] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 16:14:19] [INFO]   -> Found value: 402
[2026-03-14 16:14:19] [INFO]   -> Set field 'incidentLocationStreetNumber' = 402
[2026-03-14 16:14:19] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 16:14:19] [INFO]   -> Found value: TN
[2026-03-14 16:14:19] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 16:14:19] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 16:14:19] [INFO]   -> Found value: 38506
[2026-03-14 16:14:19] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-14 16:14:19] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 16:14:19] [INFO]   -> Found value: DOMINOS PIZZA
[2026-03-14 16:14:19] [INFO]   -> Set field 'businessName' = "DOMINOS PIZZA"
[2026-03-14 16:14:19] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 16:14:19] [INFO]   -> No value found (null or empty)
[2026-03-14 16:14:19] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 16:14:19] [INFO]   -> Found value: 36.18882
[2026-03-14 16:14:19] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.18881999999999976580511429347097873687744140625
[2026-03-14 16:14:19] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 16:14:19] [INFO]   -> Found value: -85.45300
[2026-03-14 16:14:19] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.453000000000002955857780762016773223876953125
[2026-03-14 16:14:19] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 16:14:19] [INFO]   -> Found value: 2026-03-14 11:12:42
[2026-03-14 16:14:19] [INFO]   -> Set field 'alarm' = "2026-03-14 11:12:42"
[2026-03-14 16:14:19] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 16:14:19] [INFO]   -> Found value: 2026-03-14 11:13:40
[2026-03-14 16:14:19] [INFO]   -> Set field 'dispatched' = "2026-03-14 11:13:40"
[2026-03-14 16:14:19] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 16:14:19] [INFO]   -> Found value: 2026-03-14 11:14:06
[2026-03-14 16:14:19] [INFO]   -> Set field 'enroute' = "2026-03-14 11:14:06"
[2026-03-14 16:14:19] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 16:14:19] [INFO]   -> No value found (null or empty)
[2026-03-14 16:14:19] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 16:14:19] [INFO]   -> No value found (null or empty)
[2026-03-14 16:14:19] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 16:14:19] [INFO]   -> Found value: MAXWELL ST/RILEYS PATH
[2026-03-14 16:14:19] [INFO]   -> Set field 'incidentLocationCross' = "MAXWELL ST\/RILEYS PATH"
[2026-03-14 16:14:19] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 16:14:19] [INFO]   -> Found value: A1200
[2026-03-14 16:14:19] [INFO]   -> Set field 'cADVehicleID' = "A1200"
[2026-03-14 16:14:19] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 16:14:19] [INFO]   -> Found value: 2026-03-14 11:14:06
[2026-03-14 16:14:19] [INFO]   -> Set field 'timedispatch' = "2026-03-14 11:14:06"
[2026-03-14 16:14:19] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 16:14:19] [INFO]   -> Found value: 2026-03-14 11:14:06
[2026-03-14 16:14:19] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-14 11:14:06"
[2026-03-14 16:14:19] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 16:14:19] [INFO]   -> No value found (null or empty)
[2026-03-14 16:14:19] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 16:14:19] [INFO]   -> No value found (null or empty)
[2026-03-14 16:14:19] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 16:14:19] [INFO]   -> No value found (null or empty)
[2026-03-14 16:14:19] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 16:14:19] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 16:14:19] [INFO]   -> Found value: 20260027900
[2026-03-14 16:14:19] [INFO]   -> Set field 'policeReportNumber' = "20260027900"
[2026-03-14 16:14:19] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 16:14:19] [INFO]   -> Found value: [EMS] WEARING A HAT  [03/14/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03/14/26...
[2026-03-14 16:14:19] [INFO]   -> Set field 'dispatchNotes' = "[EMS] WEARING A HAT  [03\/14\/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03\/14\/26 11:13:29 MCLAYBURN2] [EMS] MID 50S  [03\/14\/26 11:13:22 MCLAYBURN2] [EMS] EMPLOYEE IS HOLDING HIM UP NOT RESPONDING TO THEM  [03\/14\/26 11:12:57 MCLAYBURN2] Event spawned from UNKNOWN PROBLEM.  [03\/14\/2026 11:12:42 MCLAYBURN2] CUSTOMER IN LOBBY FOLDING OVER UNABLE TO STAY AWAKE NOT SURE IF HE IS ON SOMETHING  [03\/14\/26 11:12:36 MCLAYBURN2]]"
[2026-03-14 16:14:19] [INFO]   -> Set field 'cADLog' = "[EMS] WEARING A HAT  [03\/14\/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03\/14\/26 11:13:29 MCLAYBURN2] [EMS] MID 50S  [03\/14\/26 11:13:22 MCLAYBURN2] [EMS] EMPLOYEE IS HOLDING HIM UP NOT RESPONDING TO THEM  [03\/14\/26 11:12:57 MCLAYBURN2] Event spawned from UNKNOWN PROBLEM.  [03\/14\/2026 11:12:42 MCLAYBURN2] CUSTOMER IN LOBBY FOLDING OVER UNABLE TO STAY AWAKE NOT SURE IF HE IS ON SOMETHING  [03\/14\/26 11:12:36 MCLAYBURN2]]"
[2026-03-14 16:14:19] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 16:14:19] [INFO]   -> Found value: ALGOOD
[2026-03-14 16:14:19] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-14 16:14:19] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 16:14:19] [INFO]   -> Found value: MAIN
[2026-03-14 16:14:19] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-03-14 16:14:19] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 16:14:19] [INFO]   -> Found value: ST
[2026-03-14 16:14:19] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-14 16:14:19] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 16:14:19] [INFO]   -> Found value: 402 W MAIN ST
[2026-03-14 16:14:19] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "402 W MAIN ST"
[2026-03-14 16:14:19] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-14 16:14:19] [INFO] Concatenating street name and type
[2026-03-14 16:14:19] [INFO]   -> Combined street name: MAIN ST
[2026-03-14 16:14:19] [INFO] Built locationCoordinates from lat/lng: 36.18882,-85.453
[2026-03-14 16:14:19] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nEMS\nAPD","incidentInternalId":"2026000104","dispatchRunNumber":"2026000104","incidentTypeValue1":"UNKNOWN PROBLEM","incidentLocationStreetNumber":402,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"DOMINOS PIZZA","nERISIncidentLatitude":36.18881999999999976580511429347097873687744140625,"nERISIncidentLongitude":-85.453000000000002955857780762016773223876953125,"alarm":"2026-03-14 11:12:42","dispatched":"2026-03-14 11:13:40","enroute":"2026-03-14 11:14:06","incidentLocationCross":"MAXWELL ST\/RILEYS PATH","cADVehicleID":"A1200","timedispatch":"2026-03-14 11:14:06","timeenroutetoscene":"2026-03-14 11:14:06","policeReportNumber":"20260027900","dispatchNotes":"[EMS] WEARING A HAT  [03\/14\/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03\/14\/26 11:13:29 MCLAYBURN2] [EMS] MID 50S  [03\/14\/26 11:13:22 MCLAYBURN2] [EMS] EMPLOYEE IS HOLDING HIM UP NOT RESPONDING TO THEM  [03\/14\/26 11:12:57 MCLAYBURN2] Event spawned from UNKNOWN PROBLEM.  [03\/14\/2026 11:12:42 MCLAYBURN2] CUSTOMER IN LOBBY FOLDING OVER UNABLE TO STAY AWAKE NOT SURE IF HE IS ON SOMETHING  [03\/14\/26 11:12:36 MCLAYBURN2]]","cADLog":"[EMS] WEARING A HAT  [03\/14\/26 11:13:35 MCLAYBURN2] [EMS] BLUE SHIRT JEANS WHITE SNEAKERS  [03\/14\/26 11:13:29 MCLAYBURN2] [EMS] MID 50S  [03\/14\/26 11:13:22 MCLAYBURN2] [EMS] EMPLOYEE IS HOLDING HIM UP NOT RESPONDING TO THEM  [03\/14\/26 11:12:57 MCLAYBURN2] Event spawned from UNKNOWN PROBLEM.  [03\/14\/2026 11:12:42 MCLAYBURN2] CUSTOMER IN LOBBY FOLDING OVER UNABLE TO STAY AWAKE NOT SURE IF HE IS ON SOMETHING  [03\/14\/26 11:12:36 MCLAYBURN2]]","incidentLocationCity":"ALGOOD","streetName":"MAIN ST","incidentAddressTextVersionStreet":"402 W MAIN ST","locationCoordinates":"36.18882,-85.453"}
[2026-03-14 16:14:19] [INFO] Number of extracted fields: 24
[2026-03-14 16:14:19] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
EMS
APD'
[2026-03-14 16:14:19] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
EMS
APD', Parsed IDs = ["AFD","EMS","APD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-14 16:14:19] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","EMS","APD"]
[2026-03-14 16:14:19] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-14 16:14:20] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-14 16:14:20] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","APD"]
[2026-03-14 16:14:20] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-14 16:14:20] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-14 16:14:20] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-14 16:14:20] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-03-14 16:14:20] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-14 16:14:20] [INFO] Found existing IncidentTypeMapping with ID: 69b5893b021893adb
[2026-03-14 16:14:20] [INFO] Found existing Dispatch with cADNumber '2026000104', ID: 69b5893b50823f29c - will update instead of create
[2026-03-14 16:14:20] [INFO] Updated existing Dispatches record with ID: 69b5893b50823f29c
[2026-03-14 16:14:20] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260027900_20260314_161419.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/AFD_20260027900_20260314_161419.XML
[2026-03-14 16:14:20] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260027900_20260314_161419.XML
[2026-03-14 16:22:49] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027905_20260314_162249.XML
[2026-03-14 16:22:49] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027905_20260314_162249.XML for user: 68f1466aed072ad4a
[2026-03-14 16:22:49] [INFO] File size: 4644 bytes
[2026-03-14 16:22:49] [INFO] Created FTPFiles record with ID: 69b58b59e761e580f
[2026-03-14 16:22:49] [INFO] About to extract fields from XML. File size: 4644 bytes
[2026-03-14 16:22:49] [INFO] Number of mappings: 28
[2026-03-14 16:22:49] [INFO] Starting XML parsing. Content length: 4644
[2026-03-14 16:22:49] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 16:22:49] [INFO] Processing 28 field mappings
[2026-03-14 16:22:49] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 16:22:49] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 16:22:49] [INFO]   -> Found value: PCFD
[2026-03-14 16:22:49] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-14 16:22:49] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 16:22:49] [INFO]   -> Found value: 2026000686
[2026-03-14 16:22:49] [INFO]   -> Set field 'incidentInternalId' = "2026000686"
[2026-03-14 16:22:49] [INFO]   -> Set field 'dispatchRunNumber' = "2026000686"
[2026-03-14 16:22:49] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 16:22:49] [INFO]   -> Found value: FIRE ALARM
[2026-03-14 16:22:49] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-14 16:22:49] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 16:22:49] [INFO]   -> Found value: 2040
[2026-03-14 16:22:49] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2040
[2026-03-14 16:22:49] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 16:22:49] [INFO]   -> Found value: TN
[2026-03-14 16:22:49] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 16:22:49] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 16:22:49] [INFO]   -> Found value: 38506
[2026-03-14 16:22:49] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-14 16:22:49] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 16:22:49] [INFO]   -> No value found (null or empty)
[2026-03-14 16:22:49] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 16:22:49] [INFO]   -> No value found (null or empty)
[2026-03-14 16:22:49] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 16:22:49] [INFO]   -> Found value: 36.08842
[2026-03-14 16:22:49] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0884199999999992769517120905220508575439453125
[2026-03-14 16:22:49] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 16:22:49] [INFO]   -> Found value: -85.55747
[2026-03-14 16:22:49] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.557469999999995025063981302082538604736328125
[2026-03-14 16:22:49] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 16:22:49] [INFO]   -> Found value: 2026-03-14 11:20:50
[2026-03-14 16:22:49] [INFO]   -> Set field 'alarm' = "2026-03-14 11:20:50"
[2026-03-14 16:22:49] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 16:22:49] [INFO]   -> Found value: 2026-03-14 11:22:46
[2026-03-14 16:22:49] [INFO]   -> Set field 'dispatched' = "2026-03-14 11:22:46"
[2026-03-14 16:22:49] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 16:22:49] [INFO]   -> No value found (null or empty)
[2026-03-14 16:22:49] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 16:22:49] [INFO]   -> No value found (null or empty)
[2026-03-14 16:22:49] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 16:22:49] [INFO]   -> No value found (null or empty)
[2026-03-14 16:22:49] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 16:22:49] [INFO]   -> No value found (null or empty)
[2026-03-14 16:22:49] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 16:22:49] [INFO]   -> Found value: TK13
[2026-03-14 16:22:49] [INFO]   -> Set field 'cADVehicleID' = "TK13"
[2026-03-14 16:22:49] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 16:22:49] [INFO]   -> Found value: 2026-03-14 11:22:46
[2026-03-14 16:22:49] [INFO]   -> Set field 'timedispatch' = "2026-03-14 11:22:46"
[2026-03-14 16:22:49] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 16:22:49] [INFO]   -> No value found (null or empty)
[2026-03-14 16:22:49] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 16:22:49] [INFO]   -> No value found (null or empty)
[2026-03-14 16:22:49] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 16:22:49] [INFO]   -> No value found (null or empty)
[2026-03-14 16:22:49] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 16:22:49] [INFO]   -> No value found (null or empty)
[2026-03-14 16:22:49] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 16:22:49] [INFO]   -> Found value: 20260027905
[2026-03-14 16:22:49] [INFO]   -> Set field 'policeReportNumber' = "20260027905"
[2026-03-14 16:22:49] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 16:22:49] [INFO]   -> Found value: FIRE ALARM ZONE 6 FIRE DETECTOR HOMEOWNER WILLIAM PAGE  [03/14/26 11:21:25 MCLAYBURN2]]
[2026-03-14 16:22:49] [INFO]   -> Set field 'dispatchNotes' = "FIRE ALARM ZONE 6 FIRE DETECTOR HOMEOWNER WILLIAM PAGE  [03\/14\/26 11:21:25 MCLAYBURN2]]"
[2026-03-14 16:22:49] [INFO]   -> Set field 'cADLog' = "FIRE ALARM ZONE 6 FIRE DETECTOR HOMEOWNER WILLIAM PAGE  [03\/14\/26 11:21:25 MCLAYBURN2]]"
[2026-03-14 16:22:49] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 16:22:49] [INFO]   -> Found value: COOKEVILLE
[2026-03-14 16:22:49] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-14 16:22:49] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 16:22:49] [INFO]   -> Found value: PEMBROOKE PINE
[2026-03-14 16:22:49] [INFO]   -> Set field 'streetName' = "PEMBROOKE PINE"
[2026-03-14 16:22:49] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 16:22:49] [INFO]   -> Found value: LN
[2026-03-14 16:22:49] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-14 16:22:49] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 16:22:49] [INFO]   -> Found value: 2040 PEMBROOKE PINE LN
[2026-03-14 16:22:49] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2040 PEMBROOKE PINE LN"
[2026-03-14 16:22:49] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-03-14 16:22:49] [INFO] Concatenating street name and type
[2026-03-14 16:22:49] [INFO]   -> Combined street name: PEMBROOKE PINE LN
[2026-03-14 16:22:49] [INFO] Built locationCoordinates from lat/lng: 36.08842,-85.55747
[2026-03-14 16:22:49] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000686","dispatchRunNumber":"2026000686","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":2040,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.0884199999999992769517120905220508575439453125,"nERISIncidentLongitude":-85.557469999999995025063981302082538604736328125,"alarm":"2026-03-14 11:20:50","dispatched":"2026-03-14 11:22:46","cADVehicleID":"TK13","timedispatch":"2026-03-14 11:22:46","policeReportNumber":"20260027905","dispatchNotes":"FIRE ALARM ZONE 6 FIRE DETECTOR HOMEOWNER WILLIAM PAGE  [03\/14\/26 11:21:25 MCLAYBURN2]]","cADLog":"FIRE ALARM ZONE 6 FIRE DETECTOR HOMEOWNER WILLIAM PAGE  [03\/14\/26 11:21:25 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"PEMBROOKE PINE LN","incidentAddressTextVersionStreet":"2040 PEMBROOKE PINE LN","locationCoordinates":"36.08842,-85.55747"}
[2026-03-14 16:22:49] [INFO] Number of extracted fields: 20
[2026-03-14 16:22:49] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-14 16:22:49] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-14 16:22:49] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-14 16:22:49] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 16:22:50] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 16:22:50] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 16:22:50] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 16:22:50] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 16:22:50] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-14 16:23:00] [INFO] Created new Dispatches record with ID: 69b58b5ab74987a3a
[2026-03-14 16:23:00] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027905_20260314_162249.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027905_20260314_162249.XML
[2026-03-14 16:23:00] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027905_20260314_162249.XML
[2026-03-14 16:24:10] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027905_20260314_162410.XML
[2026-03-14 16:24:10] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027905_20260314_162410.XML for user: 68f1466aed072ad4a
[2026-03-14 16:24:10] [INFO] File size: 5695 bytes
[2026-03-14 16:24:10] [INFO] Created FTPFiles record with ID: 69b58baabe9560e82
[2026-03-14 16:24:10] [INFO] About to extract fields from XML. File size: 5695 bytes
[2026-03-14 16:24:10] [INFO] Number of mappings: 28
[2026-03-14 16:24:10] [INFO] Starting XML parsing. Content length: 5695
[2026-03-14 16:24:10] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 16:24:10] [INFO] Processing 28 field mappings
[2026-03-14 16:24:10] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 16:24:10] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 16:24:10] [INFO]   -> Found value: PCFD
[2026-03-14 16:24:10] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-14 16:24:10] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 16:24:10] [INFO]   -> Found value: 2026000686
[2026-03-14 16:24:10] [INFO]   -> Set field 'incidentInternalId' = "2026000686"
[2026-03-14 16:24:10] [INFO]   -> Set field 'dispatchRunNumber' = "2026000686"
[2026-03-14 16:24:10] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 16:24:10] [INFO]   -> Found value: FIRE ALARM
[2026-03-14 16:24:10] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-14 16:24:10] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 16:24:10] [INFO]   -> Found value: 2040
[2026-03-14 16:24:10] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2040
[2026-03-14 16:24:10] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 16:24:10] [INFO]   -> Found value: TN
[2026-03-14 16:24:10] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 16:24:10] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 16:24:10] [INFO]   -> Found value: 38506
[2026-03-14 16:24:10] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-14 16:24:10] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 16:24:10] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:10] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 16:24:10] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:10] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 16:24:10] [INFO]   -> Found value: 36.08842
[2026-03-14 16:24:10] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0884199999999992769517120905220508575439453125
[2026-03-14 16:24:10] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 16:24:10] [INFO]   -> Found value: -85.55747
[2026-03-14 16:24:10] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.557469999999995025063981302082538604736328125
[2026-03-14 16:24:10] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 16:24:10] [INFO]   -> Found value: 2026-03-14 11:20:50
[2026-03-14 16:24:10] [INFO]   -> Set field 'alarm' = "2026-03-14 11:20:50"
[2026-03-14 16:24:10] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 16:24:10] [INFO]   -> Found value: 2026-03-14 11:22:46
[2026-03-14 16:24:10] [INFO]   -> Set field 'dispatched' = "2026-03-14 11:22:46"
[2026-03-14 16:24:10] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 16:24:10] [INFO]   -> Found value: 2026-03-14 11:24:05
[2026-03-14 16:24:10] [INFO]   -> Set field 'enroute' = "2026-03-14 11:24:05"
[2026-03-14 16:24:10] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 16:24:10] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:10] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 16:24:10] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:10] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 16:24:10] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:10] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 16:24:10] [INFO]   -> Found value: TK11
[2026-03-14 16:24:10] [INFO]   -> Set field 'cADVehicleID' = "TK11"
[2026-03-14 16:24:10] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 16:24:10] [INFO]   -> Found value: 2026-03-14 11:24:02
[2026-03-14 16:24:10] [INFO]   -> Set field 'timedispatch' = "2026-03-14 11:24:02"
[2026-03-14 16:24:10] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 16:24:10] [INFO]   -> Found value: 2026-03-14 11:24:05
[2026-03-14 16:24:10] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-14 11:24:05"
[2026-03-14 16:24:10] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 16:24:10] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:10] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 16:24:10] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:10] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 16:24:10] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:10] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 16:24:10] [INFO]   -> Found value: 20260027905
[2026-03-14 16:24:10] [INFO]   -> Set field 'policeReportNumber' = "20260027905"
[2026-03-14 16:24:10] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 16:24:10] [INFO]   -> Found value: KH NOT ON SCENE BUT IS CHECKING WITH WIFE THAT MAY BE AT HOME  [03/14/26 11:24:04 MCLAYBURN2] WILLIA...
[2026-03-14 16:24:10] [INFO]   -> Set field 'dispatchNotes' = "KH NOT ON SCENE BUT IS CHECKING WITH WIFE THAT MAY BE AT HOME  [03\/14\/26 11:24:04 MCLAYBURN2] WILLIAM PAGE 931-284-1234  [03\/14\/26 11:23:25 MCLAYBURN2] FIRE ALARM ZONE 6 FIRE DETECTOR HOMEOWNER WILLIAM PAGE  [03\/14\/26 11:21:25 MCLAYBURN2]]"
[2026-03-14 16:24:10] [INFO]   -> Set field 'cADLog' = "KH NOT ON SCENE BUT IS CHECKING WITH WIFE THAT MAY BE AT HOME  [03\/14\/26 11:24:04 MCLAYBURN2] WILLIAM PAGE 931-284-1234  [03\/14\/26 11:23:25 MCLAYBURN2] FIRE ALARM ZONE 6 FIRE DETECTOR HOMEOWNER WILLIAM PAGE  [03\/14\/26 11:21:25 MCLAYBURN2]]"
[2026-03-14 16:24:10] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 16:24:10] [INFO]   -> Found value: COOKEVILLE
[2026-03-14 16:24:10] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-14 16:24:10] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 16:24:10] [INFO]   -> Found value: PEMBROOKE PINE
[2026-03-14 16:24:10] [INFO]   -> Set field 'streetName' = "PEMBROOKE PINE"
[2026-03-14 16:24:10] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 16:24:10] [INFO]   -> Found value: LN
[2026-03-14 16:24:10] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-14 16:24:10] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 16:24:10] [INFO]   -> Found value: 2040 PEMBROOKE PINE LN
[2026-03-14 16:24:10] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2040 PEMBROOKE PINE LN"
[2026-03-14 16:24:10] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-14 16:24:10] [INFO] Concatenating street name and type
[2026-03-14 16:24:10] [INFO]   -> Combined street name: PEMBROOKE PINE LN
[2026-03-14 16:24:10] [INFO] Built locationCoordinates from lat/lng: 36.08842,-85.55747
[2026-03-14 16:24:10] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000686","dispatchRunNumber":"2026000686","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":2040,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.0884199999999992769517120905220508575439453125,"nERISIncidentLongitude":-85.557469999999995025063981302082538604736328125,"alarm":"2026-03-14 11:20:50","dispatched":"2026-03-14 11:22:46","enroute":"2026-03-14 11:24:05","cADVehicleID":"TK11","timedispatch":"2026-03-14 11:24:02","timeenroutetoscene":"2026-03-14 11:24:05","policeReportNumber":"20260027905","dispatchNotes":"KH NOT ON SCENE BUT IS CHECKING WITH WIFE THAT MAY BE AT HOME  [03\/14\/26 11:24:04 MCLAYBURN2] WILLIAM PAGE 931-284-1234  [03\/14\/26 11:23:25 MCLAYBURN2] FIRE ALARM ZONE 6 FIRE DETECTOR HOMEOWNER WILLIAM PAGE  [03\/14\/26 11:21:25 MCLAYBURN2]]","cADLog":"KH NOT ON SCENE BUT IS CHECKING WITH WIFE THAT MAY BE AT HOME  [03\/14\/26 11:24:04 MCLAYBURN2] WILLIAM PAGE 931-284-1234  [03\/14\/26 11:23:25 MCLAYBURN2] FIRE ALARM ZONE 6 FIRE DETECTOR HOMEOWNER WILLIAM PAGE  [03\/14\/26 11:21:25 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"PEMBROOKE PINE LN","incidentAddressTextVersionStreet":"2040 PEMBROOKE PINE LN","locationCoordinates":"36.08842,-85.55747"}
[2026-03-14 16:24:10] [INFO] Number of extracted fields: 22
[2026-03-14 16:24:10] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-14 16:24:10] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-14 16:24:10] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-14 16:24:10] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 16:24:10] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 16:24:11] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 16:24:11] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 16:24:11] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 16:24:11] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-14 16:24:11] [INFO] Found existing Dispatch with cADNumber '2026000686', ID: 69b58b5ab74987a3a - will update instead of create
[2026-03-14 16:24:11] [INFO] Updated existing Dispatches record with ID: 69b58b5ab74987a3a
[2026-03-14 16:24:11] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027905_20260314_162410.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027905_20260314_162410.XML
[2026-03-14 16:24:11] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027905_20260314_162410.XML
[2026-03-14 16:24:15] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027905_20260314_162415.XML
[2026-03-14 16:24:15] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027905_20260314_162415.XML for user: 68f1466aed072ad4a
[2026-03-14 16:24:15] [INFO] File size: 5695 bytes
[2026-03-14 16:24:16] [INFO] Created FTPFiles record with ID: 69b58bb0103673246
[2026-03-14 16:24:16] [INFO] About to extract fields from XML. File size: 5695 bytes
[2026-03-14 16:24:16] [INFO] Number of mappings: 28
[2026-03-14 16:24:16] [INFO] Starting XML parsing. Content length: 5695
[2026-03-14 16:24:16] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 16:24:16] [INFO] Processing 28 field mappings
[2026-03-14 16:24:16] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 16:24:16] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 16:24:16] [INFO]   -> Found value: PCFD
[2026-03-14 16:24:16] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-14 16:24:16] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 16:24:16] [INFO]   -> Found value: 2026000686
[2026-03-14 16:24:16] [INFO]   -> Set field 'incidentInternalId' = "2026000686"
[2026-03-14 16:24:16] [INFO]   -> Set field 'dispatchRunNumber' = "2026000686"
[2026-03-14 16:24:16] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 16:24:16] [INFO]   -> Found value: FIRE ALARM
[2026-03-14 16:24:16] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-14 16:24:16] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 16:24:16] [INFO]   -> Found value: 2040
[2026-03-14 16:24:16] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2040
[2026-03-14 16:24:16] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 16:24:16] [INFO]   -> Found value: TN
[2026-03-14 16:24:16] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 16:24:16] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 16:24:16] [INFO]   -> Found value: 38506
[2026-03-14 16:24:16] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-14 16:24:16] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 16:24:16] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:16] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 16:24:16] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:16] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 16:24:16] [INFO]   -> Found value: 36.08842
[2026-03-14 16:24:16] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0884199999999992769517120905220508575439453125
[2026-03-14 16:24:16] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 16:24:16] [INFO]   -> Found value: -85.55747
[2026-03-14 16:24:16] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.557469999999995025063981302082538604736328125
[2026-03-14 16:24:16] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 16:24:16] [INFO]   -> Found value: 2026-03-14 11:20:50
[2026-03-14 16:24:16] [INFO]   -> Set field 'alarm' = "2026-03-14 11:20:50"
[2026-03-14 16:24:16] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 16:24:16] [INFO]   -> Found value: 2026-03-14 11:22:46
[2026-03-14 16:24:16] [INFO]   -> Set field 'dispatched' = "2026-03-14 11:22:46"
[2026-03-14 16:24:16] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 16:24:16] [INFO]   -> Found value: 2026-03-14 11:24:05
[2026-03-14 16:24:16] [INFO]   -> Set field 'enroute' = "2026-03-14 11:24:05"
[2026-03-14 16:24:16] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 16:24:16] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:16] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 16:24:16] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:16] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 16:24:16] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:16] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 16:24:16] [INFO]   -> Found value: TK11
[2026-03-14 16:24:16] [INFO]   -> Set field 'cADVehicleID' = "TK11"
[2026-03-14 16:24:16] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 16:24:16] [INFO]   -> Found value: 2026-03-14 11:24:02
[2026-03-14 16:24:16] [INFO]   -> Set field 'timedispatch' = "2026-03-14 11:24:02"
[2026-03-14 16:24:16] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 16:24:16] [INFO]   -> Found value: 2026-03-14 11:24:05
[2026-03-14 16:24:16] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-14 11:24:05"
[2026-03-14 16:24:16] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 16:24:16] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:16] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 16:24:16] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:16] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 16:24:16] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:16] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 16:24:16] [INFO]   -> Found value: 20260027905
[2026-03-14 16:24:16] [INFO]   -> Set field 'policeReportNumber' = "20260027905"
[2026-03-14 16:24:16] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 16:24:16] [INFO]   -> Found value: KH NOT ON SCENE BUT IS CHECKING WITH WIFE THAT MAY BE AT HOME  [03/14/26 11:24:04 MCLAYBURN2] WILLIA...
[2026-03-14 16:24:16] [INFO]   -> Set field 'dispatchNotes' = "KH NOT ON SCENE BUT IS CHECKING WITH WIFE THAT MAY BE AT HOME  [03\/14\/26 11:24:04 MCLAYBURN2] WILLIAM PAGE 931-284-1234  [03\/14\/26 11:23:25 MCLAYBURN2] FIRE ALARM ZONE 6 FIRE DETECTOR HOMEOWNER WILLIAM PAGE  [03\/14\/26 11:21:25 MCLAYBURN2]]"
[2026-03-14 16:24:16] [INFO]   -> Set field 'cADLog' = "KH NOT ON SCENE BUT IS CHECKING WITH WIFE THAT MAY BE AT HOME  [03\/14\/26 11:24:04 MCLAYBURN2] WILLIAM PAGE 931-284-1234  [03\/14\/26 11:23:25 MCLAYBURN2] FIRE ALARM ZONE 6 FIRE DETECTOR HOMEOWNER WILLIAM PAGE  [03\/14\/26 11:21:25 MCLAYBURN2]]"
[2026-03-14 16:24:16] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 16:24:16] [INFO]   -> Found value: COOKEVILLE
[2026-03-14 16:24:16] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-14 16:24:16] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 16:24:16] [INFO]   -> Found value: PEMBROOKE PINE
[2026-03-14 16:24:16] [INFO]   -> Set field 'streetName' = "PEMBROOKE PINE"
[2026-03-14 16:24:16] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 16:24:16] [INFO]   -> Found value: LN
[2026-03-14 16:24:16] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-14 16:24:16] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 16:24:16] [INFO]   -> Found value: 2040 PEMBROOKE PINE LN
[2026-03-14 16:24:16] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2040 PEMBROOKE PINE LN"
[2026-03-14 16:24:16] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-14 16:24:16] [INFO] Concatenating street name and type
[2026-03-14 16:24:16] [INFO]   -> Combined street name: PEMBROOKE PINE LN
[2026-03-14 16:24:16] [INFO] Built locationCoordinates from lat/lng: 36.08842,-85.55747
[2026-03-14 16:24:16] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000686","dispatchRunNumber":"2026000686","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":2040,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.0884199999999992769517120905220508575439453125,"nERISIncidentLongitude":-85.557469999999995025063981302082538604736328125,"alarm":"2026-03-14 11:20:50","dispatched":"2026-03-14 11:22:46","enroute":"2026-03-14 11:24:05","cADVehicleID":"TK11","timedispatch":"2026-03-14 11:24:02","timeenroutetoscene":"2026-03-14 11:24:05","policeReportNumber":"20260027905","dispatchNotes":"KH NOT ON SCENE BUT IS CHECKING WITH WIFE THAT MAY BE AT HOME  [03\/14\/26 11:24:04 MCLAYBURN2] WILLIAM PAGE 931-284-1234  [03\/14\/26 11:23:25 MCLAYBURN2] FIRE ALARM ZONE 6 FIRE DETECTOR HOMEOWNER WILLIAM PAGE  [03\/14\/26 11:21:25 MCLAYBURN2]]","cADLog":"KH NOT ON SCENE BUT IS CHECKING WITH WIFE THAT MAY BE AT HOME  [03\/14\/26 11:24:04 MCLAYBURN2] WILLIAM PAGE 931-284-1234  [03\/14\/26 11:23:25 MCLAYBURN2] FIRE ALARM ZONE 6 FIRE DETECTOR HOMEOWNER WILLIAM PAGE  [03\/14\/26 11:21:25 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"PEMBROOKE PINE LN","incidentAddressTextVersionStreet":"2040 PEMBROOKE PINE LN","locationCoordinates":"36.08842,-85.55747"}
[2026-03-14 16:24:16] [INFO] Number of extracted fields: 22
[2026-03-14 16:24:16] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-14 16:24: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-03-14 16:24:16] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-14 16:24:16] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 16:24:16] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 16:24:16] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 16:24:16] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 16:24:16] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 16:24:16] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-14 16:24:16] [INFO] Found existing Dispatch with cADNumber '2026000686', ID: 69b58b5ab74987a3a - will update instead of create
[2026-03-14 16:24:16] [INFO] Updated existing Dispatches record with ID: 69b58b5ab74987a3a
[2026-03-14 16:24:16] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027905_20260314_162415.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027905_20260314_162415.XML
[2026-03-14 16:24:16] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027905_20260314_162415.XML
[2026-03-14 16:24:16] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027905_20260314_162415_1.XML
[2026-03-14 16:24:16] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027905_20260314_162415_1.XML for user: 68f1466aed072ad4a
[2026-03-14 16:24:16] [INFO] File size: 5695 bytes
[2026-03-14 16:24:17] [INFO] Created FTPFiles record with ID: 69b58bb1373e2629c
[2026-03-14 16:24:17] [INFO] About to extract fields from XML. File size: 5695 bytes
[2026-03-14 16:24:17] [INFO] Number of mappings: 28
[2026-03-14 16:24:17] [INFO] Starting XML parsing. Content length: 5695
[2026-03-14 16:24:17] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 16:24:17] [INFO] Processing 28 field mappings
[2026-03-14 16:24:17] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 16:24:17] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 16:24:17] [INFO]   -> Found value: PCFD
[2026-03-14 16:24:17] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-14 16:24:17] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 16:24:17] [INFO]   -> Found value: 2026000686
[2026-03-14 16:24:17] [INFO]   -> Set field 'incidentInternalId' = "2026000686"
[2026-03-14 16:24:17] [INFO]   -> Set field 'dispatchRunNumber' = "2026000686"
[2026-03-14 16:24:17] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 16:24:17] [INFO]   -> Found value: FIRE ALARM
[2026-03-14 16:24:17] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-14 16:24:17] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 16:24:17] [INFO]   -> Found value: 2040
[2026-03-14 16:24:17] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2040
[2026-03-14 16:24:17] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 16:24:17] [INFO]   -> Found value: TN
[2026-03-14 16:24:17] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 16:24:17] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 16:24:17] [INFO]   -> Found value: 38506
[2026-03-14 16:24:17] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-14 16:24:17] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 16:24:17] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:17] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 16:24:17] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:17] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 16:24:17] [INFO]   -> Found value: 36.08842
[2026-03-14 16:24:17] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.0884199999999992769517120905220508575439453125
[2026-03-14 16:24:17] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 16:24:17] [INFO]   -> Found value: -85.55747
[2026-03-14 16:24:17] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.557469999999995025063981302082538604736328125
[2026-03-14 16:24:17] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 16:24:17] [INFO]   -> Found value: 2026-03-14 11:20:50
[2026-03-14 16:24:17] [INFO]   -> Set field 'alarm' = "2026-03-14 11:20:50"
[2026-03-14 16:24:17] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 16:24:17] [INFO]   -> Found value: 2026-03-14 11:22:46
[2026-03-14 16:24:17] [INFO]   -> Set field 'dispatched' = "2026-03-14 11:22:46"
[2026-03-14 16:24:17] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 16:24:17] [INFO]   -> Found value: 2026-03-14 11:24:05
[2026-03-14 16:24:17] [INFO]   -> Set field 'enroute' = "2026-03-14 11:24:05"
[2026-03-14 16:24:17] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 16:24:17] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:17] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 16:24:17] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:17] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 16:24:17] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:17] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 16:24:17] [INFO]   -> Found value: TK11
[2026-03-14 16:24:17] [INFO]   -> Set field 'cADVehicleID' = "TK11"
[2026-03-14 16:24:17] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 16:24:17] [INFO]   -> Found value: 2026-03-14 11:24:02
[2026-03-14 16:24:17] [INFO]   -> Set field 'timedispatch' = "2026-03-14 11:24:02"
[2026-03-14 16:24:17] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 16:24:17] [INFO]   -> Found value: 2026-03-14 11:24:05
[2026-03-14 16:24:17] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-14 11:24:05"
[2026-03-14 16:24:17] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 16:24:17] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:17] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 16:24:17] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:17] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 16:24:17] [INFO]   -> No value found (null or empty)
[2026-03-14 16:24:17] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 16:24:17] [INFO]   -> Found value: 20260027905
[2026-03-14 16:24:17] [INFO]   -> Set field 'policeReportNumber' = "20260027905"
[2026-03-14 16:24:17] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 16:24:17] [INFO]   -> Found value: KH NOT ON SCENE BUT IS CHECKING WITH WIFE THAT MAY BE AT HOME  [03/14/26 11:24:04 MCLAYBURN2] WILLIA...
[2026-03-14 16:24:17] [INFO]   -> Set field 'dispatchNotes' = "KH NOT ON SCENE BUT IS CHECKING WITH WIFE THAT MAY BE AT HOME  [03\/14\/26 11:24:04 MCLAYBURN2] WILLIAM PAGE 931-284-1234  [03\/14\/26 11:23:25 MCLAYBURN2] FIRE ALARM ZONE 6 FIRE DETECTOR HOMEOWNER WILLIAM PAGE  [03\/14\/26 11:21:25 MCLAYBURN2]]"
[2026-03-14 16:24:17] [INFO]   -> Set field 'cADLog' = "KH NOT ON SCENE BUT IS CHECKING WITH WIFE THAT MAY BE AT HOME  [03\/14\/26 11:24:04 MCLAYBURN2] WILLIAM PAGE 931-284-1234  [03\/14\/26 11:23:25 MCLAYBURN2] FIRE ALARM ZONE 6 FIRE DETECTOR HOMEOWNER WILLIAM PAGE  [03\/14\/26 11:21:25 MCLAYBURN2]]"
[2026-03-14 16:24:17] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 16:24:17] [INFO]   -> Found value: COOKEVILLE
[2026-03-14 16:24:17] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-14 16:24:17] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 16:24:17] [INFO]   -> Found value: PEMBROOKE PINE
[2026-03-14 16:24:17] [INFO]   -> Set field 'streetName' = "PEMBROOKE PINE"
[2026-03-14 16:24:17] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 16:24:17] [INFO]   -> Found value: LN
[2026-03-14 16:24:17] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-14 16:24:17] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 16:24:17] [INFO]   -> Found value: 2040 PEMBROOKE PINE LN
[2026-03-14 16:24:17] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2040 PEMBROOKE PINE LN"
[2026-03-14 16:24:17] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-14 16:24:17] [INFO] Concatenating street name and type
[2026-03-14 16:24:17] [INFO]   -> Combined street name: PEMBROOKE PINE LN
[2026-03-14 16:24:17] [INFO] Built locationCoordinates from lat/lng: 36.08842,-85.55747
[2026-03-14 16:24:17] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000686","dispatchRunNumber":"2026000686","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":2040,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.0884199999999992769517120905220508575439453125,"nERISIncidentLongitude":-85.557469999999995025063981302082538604736328125,"alarm":"2026-03-14 11:20:50","dispatched":"2026-03-14 11:22:46","enroute":"2026-03-14 11:24:05","cADVehicleID":"TK11","timedispatch":"2026-03-14 11:24:02","timeenroutetoscene":"2026-03-14 11:24:05","policeReportNumber":"20260027905","dispatchNotes":"KH NOT ON SCENE BUT IS CHECKING WITH WIFE THAT MAY BE AT HOME  [03\/14\/26 11:24:04 MCLAYBURN2] WILLIAM PAGE 931-284-1234  [03\/14\/26 11:23:25 MCLAYBURN2] FIRE ALARM ZONE 6 FIRE DETECTOR HOMEOWNER WILLIAM PAGE  [03\/14\/26 11:21:25 MCLAYBURN2]]","cADLog":"KH NOT ON SCENE BUT IS CHECKING WITH WIFE THAT MAY BE AT HOME  [03\/14\/26 11:24:04 MCLAYBURN2] WILLIAM PAGE 931-284-1234  [03\/14\/26 11:23:25 MCLAYBURN2] FIRE ALARM ZONE 6 FIRE DETECTOR HOMEOWNER WILLIAM PAGE  [03\/14\/26 11:21:25 MCLAYBURN2]]","incidentLocationCity":"COOKEVILLE","streetName":"PEMBROOKE PINE LN","incidentAddressTextVersionStreet":"2040 PEMBROOKE PINE LN","locationCoordinates":"36.08842,-85.55747"}
[2026-03-14 16:24:17] [INFO] Number of extracted fields: 22
[2026-03-14 16:24:17] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-14 16:24:17] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-14 16:24:17] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-14 16:24:17] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 16:24:17] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 16:24:17] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 16:24:17] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 16:24:17] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 16:24:17] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-14 16:24:17] [INFO] Found existing Dispatch with cADNumber '2026000686', ID: 69b58b5ab74987a3a - will update instead of create
[2026-03-14 16:24:18] [INFO] Updated existing Dispatches record with ID: 69b58b5ab74987a3a
[2026-03-14 16:24:18] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027905_20260314_162415_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027905_20260314_162415_1.XML
[2026-03-14 16:24:18] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027905_20260314_162415_1.XML
[2026-03-14 17:39:10] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173909.XML
[2026-03-14 17:39:10] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173909.XML for user: 68f1466aed072ad4a
[2026-03-14 17:39:10] [INFO] File size: 5292 bytes
[2026-03-14 17:39:10] [INFO] Created FTPFiles record with ID: 69b59d3e6d6c9a8a0
[2026-03-14 17:39:10] [INFO] About to extract fields from XML. File size: 5292 bytes
[2026-03-14 17:39:10] [INFO] Number of mappings: 28
[2026-03-14 17:39:10] [INFO] Starting XML parsing. Content length: 5292
[2026-03-14 17:39:10] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 17:39:10] [INFO] Processing 28 field mappings
[2026-03-14 17:39:10] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 17:39:10] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 17:39:10] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 17:39:10] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-14 17:39:10] [INFO]   -> Found value: PCFD
PCSO
EMS
[2026-03-14 17:39:10] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO\nEMS"
[2026-03-14 17:39:10] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 17:39:10] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-14 17:39:10] [INFO]   -> Found value: 2026000687
[2026-03-14 17:39:10] [INFO]   -> Set field 'incidentInternalId' = "2026000687"
[2026-03-14 17:39:10] [INFO]   -> Set field 'dispatchRunNumber' = "2026000687"
[2026-03-14 17:39:10] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 17:39:10] [INFO]   -> Found value: RESIDENTIAL FIRE
[2026-03-14 17:39:10] [INFO]   -> Set field 'incidentTypeValue1' = "RESIDENTIAL FIRE"
[2026-03-14 17:39:10] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 17:39:10] [INFO]   -> Found value: 3720
[2026-03-14 17:39:10] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3720
[2026-03-14 17:39:10] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 17:39:10] [INFO]   -> Found value: TN
[2026-03-14 17:39:10] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 17:39:10] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 17:39:10] [INFO]   -> Found value: 38501
[2026-03-14 17:39:10] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-14 17:39:10] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 17:39:10] [INFO]   -> Found value: 3720 LEVI CIR
[2026-03-14 17:39:10] [INFO]   -> Set field 'businessName' = "3720 LEVI CIR"
[2026-03-14 17:39:10] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 17:39:10] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:10] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 17:39:10] [INFO]   -> Found value: 36.19916
[2026-03-14 17:39:10] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19915999999999911551640252582728862762451171875
[2026-03-14 17:39:10] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 17:39:10] [INFO]   -> Found value: -85.58513
[2026-03-14 17:39:10] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5851300000000065892891143448650836944580078125
[2026-03-14 17:39:10] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 17:39:10] [INFO]   -> Found value: 2026-03-14 12:37:03
[2026-03-14 17:39:10] [INFO]   -> Set field 'alarm' = "2026-03-14 12:37:03"
[2026-03-14 17:39:10] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 17:39:10] [INFO]   -> Found value: 2026-03-14 12:39:06
[2026-03-14 17:39:10] [INFO]   -> Set field 'dispatched' = "2026-03-14 12:39:06"
[2026-03-14 17:39:10] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 17:39:10] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:10] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 17:39:10] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:10] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 17:39:10] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:10] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 17:39:10] [INFO]   -> Found value: PLUNK WHITSON RD
[2026-03-14 17:39:10] [INFO]   -> Set field 'incidentLocationCross' = "PLUNK WHITSON RD"
[2026-03-14 17:39:10] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 17:39:10] [INFO]   -> Found value: TK31
[2026-03-14 17:39:10] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-14 17:39:10] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 17:39:10] [INFO]   -> Found value: 2026-03-14 12:39:06
[2026-03-14 17:39:10] [INFO]   -> Set field 'timedispatch' = "2026-03-14 12:39:06"
[2026-03-14 17:39:10] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 17:39:10] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:10] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 17:39:10] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:10] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 17:39:10] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:10] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 17:39:10] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:10] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 17:39:10] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 17:39:10] [INFO]   -> Found value: 20260027920
[2026-03-14 17:39:10] [INFO]   -> Set field 'policeReportNumber' = "20260027920"
[2026-03-14 17:39:10] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 17:39:10] [INFO]   -> Found value: OUTLET ON FIRE  [03/14/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03/14/26 12:38:48 PFOI...
[2026-03-14 17:39:10] [INFO]   -> Set field 'dispatchNotes' = "OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]"
[2026-03-14 17:39:10] [INFO]   -> Set field 'cADLog' = "OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]"
[2026-03-14 17:39:10] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 17:39:10] [INFO]   -> Found value: COOKEVILLE
[2026-03-14 17:39:10] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-14 17:39:10] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 17:39:10] [INFO]   -> Found value: LEVI
[2026-03-14 17:39:10] [INFO]   -> Set field 'streetName' = "LEVI"
[2026-03-14 17:39:10] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 17:39:10] [INFO]   -> Found value: CIR
[2026-03-14 17:39:10] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-14 17:39:10] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 17:39:10] [INFO]   -> Found value: 3720 LEVI CIR
[2026-03-14 17:39:10] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3720 LEVI CIR"
[2026-03-14 17:39:10] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-14 17:39:10] [INFO] Concatenating street name and type
[2026-03-14 17:39:10] [INFO]   -> Combined street name: LEVI CIR
[2026-03-14 17:39:10] [INFO] Built locationCoordinates from lat/lng: 36.19916,-85.58513
[2026-03-14 17:39:10] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO\nEMS","incidentInternalId":"2026000687","dispatchRunNumber":"2026000687","incidentTypeValue1":"RESIDENTIAL FIRE","incidentLocationStreetNumber":3720,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"3720 LEVI CIR","nERISIncidentLatitude":36.19915999999999911551640252582728862762451171875,"nERISIncidentLongitude":-85.5851300000000065892891143448650836944580078125,"alarm":"2026-03-14 12:37:03","dispatched":"2026-03-14 12:39:06","incidentLocationCross":"PLUNK WHITSON RD","cADVehicleID":"TK31","timedispatch":"2026-03-14 12:39:06","policeReportNumber":"20260027920","dispatchNotes":"OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]","cADLog":"OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]","incidentLocationCity":"COOKEVILLE","streetName":"LEVI CIR","incidentAddressTextVersionStreet":"3720 LEVI CIR","locationCoordinates":"36.19916,-85.58513"}
[2026-03-14 17:39:10] [INFO] Number of extracted fields: 22
[2026-03-14 17:39:10] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO
EMS'
[2026-03-14 17:39:10] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO
EMS', Parsed IDs = ["PCFD","PCSO","EMS"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-14 17:39:10] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO","EMS"]
[2026-03-14 17:39:10] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 17:39:10] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 17:39:10] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","EMS"]
[2026-03-14 17:39:10] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 17:39:10] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 17:39:10] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-14 17:39:10] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-14 17:39:10] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 17:39:10] [INFO] Found existing IncidentTypeMapping with ID: 693a30ec30d9fce11
[2026-03-14 17:39:20] [INFO] Created new Dispatches record with ID: 69b59d3f3a0877a7b
[2026-03-14 17:39:20] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173909.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027920_20260314_173909.XML
[2026-03-14 17:39:20] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173909.XML
[2026-03-14 17:39:20] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173916.XML
[2026-03-14 17:39:20] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173916.XML for user: 68f1466aed072ad4a
[2026-03-14 17:39:20] [INFO] File size: 6002 bytes
[2026-03-14 17:39:21] [INFO] Created FTPFiles record with ID: 69b59d49232b53ee7
[2026-03-14 17:39:21] [INFO] About to extract fields from XML. File size: 6002 bytes
[2026-03-14 17:39:21] [INFO] Number of mappings: 28
[2026-03-14 17:39:21] [INFO] Starting XML parsing. Content length: 6002
[2026-03-14 17:39:21] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 17:39:21] [INFO] Processing 28 field mappings
[2026-03-14 17:39:21] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 17:39:21] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 17:39:21] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 17:39:21] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-14 17:39:21] [INFO]   -> Found value: PCFD
PCSO
EMS
[2026-03-14 17:39:21] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO\nEMS"
[2026-03-14 17:39:21] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 17:39:21] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-14 17:39:21] [INFO]   -> Found value: 2026000687
[2026-03-14 17:39:21] [INFO]   -> Set field 'incidentInternalId' = "2026000687"
[2026-03-14 17:39:21] [INFO]   -> Set field 'dispatchRunNumber' = "2026000687"
[2026-03-14 17:39:21] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 17:39:21] [INFO]   -> Found value: RESIDENTIAL FIRE
[2026-03-14 17:39:21] [INFO]   -> Set field 'incidentTypeValue1' = "RESIDENTIAL FIRE"
[2026-03-14 17:39:21] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 17:39:21] [INFO]   -> Found value: 3720
[2026-03-14 17:39:21] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3720
[2026-03-14 17:39:21] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 17:39:21] [INFO]   -> Found value: TN
[2026-03-14 17:39:21] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 17:39:21] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 17:39:21] [INFO]   -> Found value: 38501
[2026-03-14 17:39:21] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-14 17:39:21] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 17:39:21] [INFO]   -> Found value: 3720 LEVI CIR
[2026-03-14 17:39:21] [INFO]   -> Set field 'businessName' = "3720 LEVI CIR"
[2026-03-14 17:39:21] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 17:39:21] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:21] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 17:39:21] [INFO]   -> Found value: 36.19916
[2026-03-14 17:39:21] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19915999999999911551640252582728862762451171875
[2026-03-14 17:39:21] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 17:39:21] [INFO]   -> Found value: -85.58513
[2026-03-14 17:39:21] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5851300000000065892891143448650836944580078125
[2026-03-14 17:39:21] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 17:39:21] [INFO]   -> Found value: 2026-03-14 12:37:03
[2026-03-14 17:39:21] [INFO]   -> Set field 'alarm' = "2026-03-14 12:37:03"
[2026-03-14 17:39:21] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 17:39:21] [INFO]   -> Found value: 2026-03-14 12:39:06
[2026-03-14 17:39:21] [INFO]   -> Set field 'dispatched' = "2026-03-14 12:39:06"
[2026-03-14 17:39:21] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 17:39:21] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:21] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 17:39:21] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:21] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 17:39:21] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:21] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 17:39:21] [INFO]   -> Found value: PLUNK WHITSON RD
[2026-03-14 17:39:21] [INFO]   -> Set field 'incidentLocationCross' = "PLUNK WHITSON RD"
[2026-03-14 17:39:21] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 17:39:21] [INFO]   -> Found value: EN11
[2026-03-14 17:39:21] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-14 17:39:21] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 17:39:21] [INFO]   -> Found value: 2026-03-14 12:39:09
[2026-03-14 17:39:21] [INFO]   -> Set field 'timedispatch' = "2026-03-14 12:39:09"
[2026-03-14 17:39:21] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 17:39:21] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:21] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 17:39:21] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:21] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 17:39:21] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:21] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 17:39:21] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:21] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 17:39:21] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 17:39:21] [INFO]   -> Found value: 20260027920
[2026-03-14 17:39:21] [INFO]   -> Set field 'policeReportNumber' = "20260027920"
[2026-03-14 17:39:21] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 17:39:21] [INFO]   -> Found value: OUTLET ON FIRE  [03/14/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03/14/26 12:38:48 PFOI...
[2026-03-14 17:39:21] [INFO]   -> Set field 'dispatchNotes' = "OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]"
[2026-03-14 17:39:21] [INFO]   -> Set field 'cADLog' = "OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]"
[2026-03-14 17:39:21] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 17:39:21] [INFO]   -> Found value: COOKEVILLE
[2026-03-14 17:39:21] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-14 17:39:21] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 17:39:21] [INFO]   -> Found value: LEVI
[2026-03-14 17:39:21] [INFO]   -> Set field 'streetName' = "LEVI"
[2026-03-14 17:39:21] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 17:39:21] [INFO]   -> Found value: CIR
[2026-03-14 17:39:21] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-14 17:39:21] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 17:39:21] [INFO]   -> Found value: 3720 LEVI CIR
[2026-03-14 17:39:21] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3720 LEVI CIR"
[2026-03-14 17:39:21] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-14 17:39:21] [INFO] Concatenating street name and type
[2026-03-14 17:39:21] [INFO]   -> Combined street name: LEVI CIR
[2026-03-14 17:39:21] [INFO] Built locationCoordinates from lat/lng: 36.19916,-85.58513
[2026-03-14 17:39:21] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO\nEMS","incidentInternalId":"2026000687","dispatchRunNumber":"2026000687","incidentTypeValue1":"RESIDENTIAL FIRE","incidentLocationStreetNumber":3720,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"3720 LEVI CIR","nERISIncidentLatitude":36.19915999999999911551640252582728862762451171875,"nERISIncidentLongitude":-85.5851300000000065892891143448650836944580078125,"alarm":"2026-03-14 12:37:03","dispatched":"2026-03-14 12:39:06","incidentLocationCross":"PLUNK WHITSON RD","cADVehicleID":"EN11","timedispatch":"2026-03-14 12:39:09","policeReportNumber":"20260027920","dispatchNotes":"OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]","cADLog":"OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]","incidentLocationCity":"COOKEVILLE","streetName":"LEVI CIR","incidentAddressTextVersionStreet":"3720 LEVI CIR","locationCoordinates":"36.19916,-85.58513"}
[2026-03-14 17:39:21] [INFO] Number of extracted fields: 22
[2026-03-14 17:39:21] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO
EMS'
[2026-03-14 17:39:21] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO
EMS', Parsed IDs = ["PCFD","PCSO","EMS"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-14 17:39:21] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO","EMS"]
[2026-03-14 17:39:21] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 17:39:21] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 17:39:21] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","EMS"]
[2026-03-14 17:39:21] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 17:39:21] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 17:39:21] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-14 17:39:21] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-14 17:39:21] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 17:39:21] [INFO] Found existing IncidentTypeMapping with ID: 693a30ec30d9fce11
[2026-03-14 17:39:21] [INFO] Found existing Dispatch with cADNumber '2026000687', ID: 69b59d3f3a0877a7b - will update instead of create
[2026-03-14 17:39:22] [INFO] Updated existing Dispatches record with ID: 69b59d3f3a0877a7b
[2026-03-14 17:39:22] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173916.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027920_20260314_173916.XML
[2026-03-14 17:39:22] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173916.XML
[2026-03-14 17:39:22] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173920.XML
[2026-03-14 17:39:22] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173920.XML for user: 68f1466aed072ad4a
[2026-03-14 17:39:22] [INFO] File size: 6712 bytes
[2026-03-14 17:39:22] [INFO] Created FTPFiles record with ID: 69b59d4a4b5581271
[2026-03-14 17:39:22] [INFO] About to extract fields from XML. File size: 6712 bytes
[2026-03-14 17:39:22] [INFO] Number of mappings: 28
[2026-03-14 17:39:22] [INFO] Starting XML parsing. Content length: 6712
[2026-03-14 17:39:22] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 17:39:22] [INFO] Processing 28 field mappings
[2026-03-14 17:39:22] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 17:39:22] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 17:39:22] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 17:39:22] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-14 17:39:22] [INFO]   -> Found value: PCFD
PCSO
EMS
[2026-03-14 17:39:22] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO\nEMS"
[2026-03-14 17:39:22] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 17:39:22] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-14 17:39:22] [INFO]   -> Found value: 2026000687
[2026-03-14 17:39:22] [INFO]   -> Set field 'incidentInternalId' = "2026000687"
[2026-03-14 17:39:22] [INFO]   -> Set field 'dispatchRunNumber' = "2026000687"
[2026-03-14 17:39:22] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 17:39:22] [INFO]   -> Found value: RESIDENTIAL FIRE
[2026-03-14 17:39:22] [INFO]   -> Set field 'incidentTypeValue1' = "RESIDENTIAL FIRE"
[2026-03-14 17:39:22] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 17:39:22] [INFO]   -> Found value: 3720
[2026-03-14 17:39:22] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3720
[2026-03-14 17:39:22] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 17:39:22] [INFO]   -> Found value: TN
[2026-03-14 17:39:22] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 17:39:22] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 17:39:22] [INFO]   -> Found value: 38501
[2026-03-14 17:39:22] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-14 17:39:22] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 17:39:22] [INFO]   -> Found value: 3720 LEVI CIR
[2026-03-14 17:39:22] [INFO]   -> Set field 'businessName' = "3720 LEVI CIR"
[2026-03-14 17:39:22] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 17:39:22] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:22] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 17:39:22] [INFO]   -> Found value: 36.19916
[2026-03-14 17:39:22] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19915999999999911551640252582728862762451171875
[2026-03-14 17:39:22] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 17:39:22] [INFO]   -> Found value: -85.58513
[2026-03-14 17:39:22] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5851300000000065892891143448650836944580078125
[2026-03-14 17:39:22] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 17:39:22] [INFO]   -> Found value: 2026-03-14 12:37:03
[2026-03-14 17:39:22] [INFO]   -> Set field 'alarm' = "2026-03-14 12:37:03"
[2026-03-14 17:39:22] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 17:39:22] [INFO]   -> Found value: 2026-03-14 12:39:06
[2026-03-14 17:39:22] [INFO]   -> Set field 'dispatched' = "2026-03-14 12:39:06"
[2026-03-14 17:39:22] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 17:39:22] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:22] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 17:39:22] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:22] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 17:39:22] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:22] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 17:39:22] [INFO]   -> Found value: PLUNK WHITSON RD
[2026-03-14 17:39:22] [INFO]   -> Set field 'incidentLocationCross' = "PLUNK WHITSON RD"
[2026-03-14 17:39:22] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 17:39:22] [INFO]   -> Found value: TK11
[2026-03-14 17:39:22] [INFO]   -> Set field 'cADVehicleID' = "TK11"
[2026-03-14 17:39:22] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 17:39:22] [INFO]   -> Found value: 2026-03-14 12:39:17
[2026-03-14 17:39:22] [INFO]   -> Set field 'timedispatch' = "2026-03-14 12:39:17"
[2026-03-14 17:39:22] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 17:39:22] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:22] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 17:39:22] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:22] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 17:39:22] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:22] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 17:39:22] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:22] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 17:39:22] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 17:39:22] [INFO]   -> Found value: 20260027920
[2026-03-14 17:39:22] [INFO]   -> Set field 'policeReportNumber' = "20260027920"
[2026-03-14 17:39:22] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 17:39:22] [INFO]   -> Found value: OUTLET ON FIRE  [03/14/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03/14/26 12:38:48 PFOI...
[2026-03-14 17:39:22] [INFO]   -> Set field 'dispatchNotes' = "OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]"
[2026-03-14 17:39:22] [INFO]   -> Set field 'cADLog' = "OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]"
[2026-03-14 17:39:22] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 17:39:22] [INFO]   -> Found value: COOKEVILLE
[2026-03-14 17:39:22] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-14 17:39:22] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 17:39:22] [INFO]   -> Found value: LEVI
[2026-03-14 17:39:22] [INFO]   -> Set field 'streetName' = "LEVI"
[2026-03-14 17:39:22] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 17:39:22] [INFO]   -> Found value: CIR
[2026-03-14 17:39:22] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-14 17:39:22] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 17:39:22] [INFO]   -> Found value: 3720 LEVI CIR
[2026-03-14 17:39:22] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3720 LEVI CIR"
[2026-03-14 17:39:22] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-14 17:39:22] [INFO] Concatenating street name and type
[2026-03-14 17:39:22] [INFO]   -> Combined street name: LEVI CIR
[2026-03-14 17:39:22] [INFO] Built locationCoordinates from lat/lng: 36.19916,-85.58513
[2026-03-14 17:39:22] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO\nEMS","incidentInternalId":"2026000687","dispatchRunNumber":"2026000687","incidentTypeValue1":"RESIDENTIAL FIRE","incidentLocationStreetNumber":3720,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"3720 LEVI CIR","nERISIncidentLatitude":36.19915999999999911551640252582728862762451171875,"nERISIncidentLongitude":-85.5851300000000065892891143448650836944580078125,"alarm":"2026-03-14 12:37:03","dispatched":"2026-03-14 12:39:06","incidentLocationCross":"PLUNK WHITSON RD","cADVehicleID":"TK11","timedispatch":"2026-03-14 12:39:17","policeReportNumber":"20260027920","dispatchNotes":"OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]","cADLog":"OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]","incidentLocationCity":"COOKEVILLE","streetName":"LEVI CIR","incidentAddressTextVersionStreet":"3720 LEVI CIR","locationCoordinates":"36.19916,-85.58513"}
[2026-03-14 17:39:22] [INFO] Number of extracted fields: 22
[2026-03-14 17:39:22] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO
EMS'
[2026-03-14 17:39:22] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO
EMS', Parsed IDs = ["PCFD","PCSO","EMS"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-14 17:39:22] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO","EMS"]
[2026-03-14 17:39:22] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 17:39:22] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 17:39:22] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","EMS"]
[2026-03-14 17:39:22] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 17:39:22] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 17:39:22] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-14 17:39:22] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-14 17:39:22] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 17:39:22] [INFO] Found existing IncidentTypeMapping with ID: 693a30ec30d9fce11
[2026-03-14 17:39:22] [INFO] Found existing Dispatch with cADNumber '2026000687', ID: 69b59d3f3a0877a7b - will update instead of create
[2026-03-14 17:39:23] [INFO] Updated existing Dispatches record with ID: 69b59d3f3a0877a7b
[2026-03-14 17:39:23] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173920.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027920_20260314_173920.XML
[2026-03-14 17:39:23] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173920.XML
[2026-03-14 17:39:25] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173925.XML
[2026-03-14 17:39:25] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173925.XML for user: 68f1466aed072ad4a
[2026-03-14 17:39:25] [INFO] File size: 6712 bytes
[2026-03-14 17:39:26] [INFO] Created FTPFiles record with ID: 69b59d4e118883851
[2026-03-14 17:39:26] [INFO] About to extract fields from XML. File size: 6712 bytes
[2026-03-14 17:39:26] [INFO] Number of mappings: 28
[2026-03-14 17:39:26] [INFO] Starting XML parsing. Content length: 6712
[2026-03-14 17:39:26] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 17:39:26] [INFO] Processing 28 field mappings
[2026-03-14 17:39:26] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 17:39:26] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 17:39:26] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 17:39:26] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-14 17:39:26] [INFO]   -> Found value: PCFD
PCSO
EMS
[2026-03-14 17:39:26] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO\nEMS"
[2026-03-14 17:39:26] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 17:39:26] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-14 17:39:26] [INFO]   -> Found value: 2026000687
[2026-03-14 17:39:26] [INFO]   -> Set field 'incidentInternalId' = "2026000687"
[2026-03-14 17:39:26] [INFO]   -> Set field 'dispatchRunNumber' = "2026000687"
[2026-03-14 17:39:26] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 17:39:26] [INFO]   -> Found value: RESIDENTIAL FIRE
[2026-03-14 17:39:26] [INFO]   -> Set field 'incidentTypeValue1' = "RESIDENTIAL FIRE"
[2026-03-14 17:39:26] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 17:39:26] [INFO]   -> Found value: 3720
[2026-03-14 17:39:26] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3720
[2026-03-14 17:39:26] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 17:39:26] [INFO]   -> Found value: TN
[2026-03-14 17:39:26] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 17:39:26] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 17:39:26] [INFO]   -> Found value: 38501
[2026-03-14 17:39:26] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-14 17:39:26] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 17:39:26] [INFO]   -> Found value: 3720 LEVI CIR
[2026-03-14 17:39:26] [INFO]   -> Set field 'businessName' = "3720 LEVI CIR"
[2026-03-14 17:39:26] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 17:39:26] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:26] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 17:39:26] [INFO]   -> Found value: 36.19916
[2026-03-14 17:39:26] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19915999999999911551640252582728862762451171875
[2026-03-14 17:39:26] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 17:39:26] [INFO]   -> Found value: -85.58513
[2026-03-14 17:39:26] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5851300000000065892891143448650836944580078125
[2026-03-14 17:39:26] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 17:39:26] [INFO]   -> Found value: 2026-03-14 12:37:03
[2026-03-14 17:39:26] [INFO]   -> Set field 'alarm' = "2026-03-14 12:37:03"
[2026-03-14 17:39:26] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 17:39:26] [INFO]   -> Found value: 2026-03-14 12:39:06
[2026-03-14 17:39:26] [INFO]   -> Set field 'dispatched' = "2026-03-14 12:39:06"
[2026-03-14 17:39:26] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 17:39:26] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:26] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 17:39:26] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:26] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 17:39:26] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:26] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 17:39:26] [INFO]   -> Found value: PLUNK WHITSON RD
[2026-03-14 17:39:26] [INFO]   -> Set field 'incidentLocationCross' = "PLUNK WHITSON RD"
[2026-03-14 17:39:26] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 17:39:26] [INFO]   -> Found value: TK11
[2026-03-14 17:39:26] [INFO]   -> Set field 'cADVehicleID' = "TK11"
[2026-03-14 17:39:26] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 17:39:26] [INFO]   -> Found value: 2026-03-14 12:39:17
[2026-03-14 17:39:26] [INFO]   -> Set field 'timedispatch' = "2026-03-14 12:39:17"
[2026-03-14 17:39:26] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 17:39:26] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:26] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 17:39:26] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:26] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 17:39:26] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:26] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 17:39:26] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:26] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 17:39:26] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 17:39:26] [INFO]   -> Found value: 20260027920
[2026-03-14 17:39:26] [INFO]   -> Set field 'policeReportNumber' = "20260027920"
[2026-03-14 17:39:26] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 17:39:26] [INFO]   -> Found value: OUTLET ON FIRE  [03/14/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03/14/26 12:38:48 PFOI...
[2026-03-14 17:39:26] [INFO]   -> Set field 'dispatchNotes' = "OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]"
[2026-03-14 17:39:26] [INFO]   -> Set field 'cADLog' = "OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]"
[2026-03-14 17:39:26] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 17:39:26] [INFO]   -> Found value: COOKEVILLE
[2026-03-14 17:39:26] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-14 17:39:26] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 17:39:26] [INFO]   -> Found value: LEVI
[2026-03-14 17:39:26] [INFO]   -> Set field 'streetName' = "LEVI"
[2026-03-14 17:39:26] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 17:39:26] [INFO]   -> Found value: CIR
[2026-03-14 17:39:26] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-14 17:39:26] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 17:39:26] [INFO]   -> Found value: 3720 LEVI CIR
[2026-03-14 17:39:26] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3720 LEVI CIR"
[2026-03-14 17:39:26] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-14 17:39:26] [INFO] Concatenating street name and type
[2026-03-14 17:39:26] [INFO]   -> Combined street name: LEVI CIR
[2026-03-14 17:39:26] [INFO] Built locationCoordinates from lat/lng: 36.19916,-85.58513
[2026-03-14 17:39:26] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO\nEMS","incidentInternalId":"2026000687","dispatchRunNumber":"2026000687","incidentTypeValue1":"RESIDENTIAL FIRE","incidentLocationStreetNumber":3720,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"3720 LEVI CIR","nERISIncidentLatitude":36.19915999999999911551640252582728862762451171875,"nERISIncidentLongitude":-85.5851300000000065892891143448650836944580078125,"alarm":"2026-03-14 12:37:03","dispatched":"2026-03-14 12:39:06","incidentLocationCross":"PLUNK WHITSON RD","cADVehicleID":"TK11","timedispatch":"2026-03-14 12:39:17","policeReportNumber":"20260027920","dispatchNotes":"OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]","cADLog":"OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]","incidentLocationCity":"COOKEVILLE","streetName":"LEVI CIR","incidentAddressTextVersionStreet":"3720 LEVI CIR","locationCoordinates":"36.19916,-85.58513"}
[2026-03-14 17:39:26] [INFO] Number of extracted fields: 22
[2026-03-14 17:39:26] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO
EMS'
[2026-03-14 17:39:26] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO
EMS', Parsed IDs = ["PCFD","PCSO","EMS"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-14 17:39:26] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO","EMS"]
[2026-03-14 17:39:26] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 17:39:26] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 17:39:26] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","EMS"]
[2026-03-14 17:39:26] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 17:39:26] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 17:39:26] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-14 17:39:26] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-14 17:39:26] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 17:39:26] [INFO] Found existing IncidentTypeMapping with ID: 693a30ec30d9fce11
[2026-03-14 17:39:26] [INFO] Found existing Dispatch with cADNumber '2026000687', ID: 69b59d3f3a0877a7b - will update instead of create
[2026-03-14 17:39:26] [INFO] Updated existing Dispatches record with ID: 69b59d3f3a0877a7b
[2026-03-14 17:39:26] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173925.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027920_20260314_173925.XML
[2026-03-14 17:39:26] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173925.XML
[2026-03-14 17:39:26] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173925_1.XML
[2026-03-14 17:39:26] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173925_1.XML for user: 68f1466aed072ad4a
[2026-03-14 17:39:26] [INFO] File size: 6712 bytes
[2026-03-14 17:39:27] [INFO] Created FTPFiles record with ID: 69b59d4f4297d0343
[2026-03-14 17:39:27] [INFO] About to extract fields from XML. File size: 6712 bytes
[2026-03-14 17:39:27] [INFO] Number of mappings: 28
[2026-03-14 17:39:27] [INFO] Starting XML parsing. Content length: 6712
[2026-03-14 17:39:27] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 17:39:27] [INFO] Processing 28 field mappings
[2026-03-14 17:39:27] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 17:39:27] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 17:39:27] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 17:39:27] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-14 17:39:27] [INFO]   -> Found value: PCFD
PCSO
EMS
[2026-03-14 17:39:27] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO\nEMS"
[2026-03-14 17:39:27] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 17:39:27] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-14 17:39:27] [INFO]   -> Found value: 2026000687
[2026-03-14 17:39:27] [INFO]   -> Set field 'incidentInternalId' = "2026000687"
[2026-03-14 17:39:27] [INFO]   -> Set field 'dispatchRunNumber' = "2026000687"
[2026-03-14 17:39:27] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 17:39:27] [INFO]   -> Found value: RESIDENTIAL FIRE
[2026-03-14 17:39:27] [INFO]   -> Set field 'incidentTypeValue1' = "RESIDENTIAL FIRE"
[2026-03-14 17:39:27] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 17:39:27] [INFO]   -> Found value: 3720
[2026-03-14 17:39:27] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3720
[2026-03-14 17:39:27] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 17:39:27] [INFO]   -> Found value: TN
[2026-03-14 17:39:27] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 17:39:27] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 17:39:27] [INFO]   -> Found value: 38501
[2026-03-14 17:39:27] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-14 17:39:27] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 17:39:27] [INFO]   -> Found value: 3720 LEVI CIR
[2026-03-14 17:39:27] [INFO]   -> Set field 'businessName' = "3720 LEVI CIR"
[2026-03-14 17:39:27] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 17:39:27] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:27] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 17:39:27] [INFO]   -> Found value: 36.19916
[2026-03-14 17:39:27] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19915999999999911551640252582728862762451171875
[2026-03-14 17:39:27] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 17:39:27] [INFO]   -> Found value: -85.58513
[2026-03-14 17:39:27] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5851300000000065892891143448650836944580078125
[2026-03-14 17:39:27] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 17:39:27] [INFO]   -> Found value: 2026-03-14 12:37:03
[2026-03-14 17:39:27] [INFO]   -> Set field 'alarm' = "2026-03-14 12:37:03"
[2026-03-14 17:39:27] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 17:39:27] [INFO]   -> Found value: 2026-03-14 12:39:06
[2026-03-14 17:39:27] [INFO]   -> Set field 'dispatched' = "2026-03-14 12:39:06"
[2026-03-14 17:39:27] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 17:39:27] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:27] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 17:39:27] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:27] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 17:39:27] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:27] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 17:39:27] [INFO]   -> Found value: PLUNK WHITSON RD
[2026-03-14 17:39:27] [INFO]   -> Set field 'incidentLocationCross' = "PLUNK WHITSON RD"
[2026-03-14 17:39:27] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 17:39:27] [INFO]   -> Found value: TK11
[2026-03-14 17:39:27] [INFO]   -> Set field 'cADVehicleID' = "TK11"
[2026-03-14 17:39:27] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 17:39:27] [INFO]   -> Found value: 2026-03-14 12:39:17
[2026-03-14 17:39:27] [INFO]   -> Set field 'timedispatch' = "2026-03-14 12:39:17"
[2026-03-14 17:39:27] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 17:39:27] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:27] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 17:39:27] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:27] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 17:39:27] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:27] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 17:39:27] [INFO]   -> No value found (null or empty)
[2026-03-14 17:39:27] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 17:39:27] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 17:39:27] [INFO]   -> Found value: 20260027920
[2026-03-14 17:39:27] [INFO]   -> Set field 'policeReportNumber' = "20260027920"
[2026-03-14 17:39:27] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 17:39:27] [INFO]   -> Found value: OUTLET ON FIRE  [03/14/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03/14/26 12:38:48 PFOI...
[2026-03-14 17:39:27] [INFO]   -> Set field 'dispatchNotes' = "OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]"
[2026-03-14 17:39:27] [INFO]   -> Set field 'cADLog' = "OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]"
[2026-03-14 17:39:27] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 17:39:27] [INFO]   -> Found value: COOKEVILLE
[2026-03-14 17:39:27] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-14 17:39:27] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 17:39:27] [INFO]   -> Found value: LEVI
[2026-03-14 17:39:27] [INFO]   -> Set field 'streetName' = "LEVI"
[2026-03-14 17:39:27] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 17:39:27] [INFO]   -> Found value: CIR
[2026-03-14 17:39:27] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-14 17:39:27] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 17:39:27] [INFO]   -> Found value: 3720 LEVI CIR
[2026-03-14 17:39:27] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3720 LEVI CIR"
[2026-03-14 17:39:27] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-14 17:39:27] [INFO] Concatenating street name and type
[2026-03-14 17:39:27] [INFO]   -> Combined street name: LEVI CIR
[2026-03-14 17:39:27] [INFO] Built locationCoordinates from lat/lng: 36.19916,-85.58513
[2026-03-14 17:39:27] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO\nEMS","incidentInternalId":"2026000687","dispatchRunNumber":"2026000687","incidentTypeValue1":"RESIDENTIAL FIRE","incidentLocationStreetNumber":3720,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"3720 LEVI CIR","nERISIncidentLatitude":36.19915999999999911551640252582728862762451171875,"nERISIncidentLongitude":-85.5851300000000065892891143448650836944580078125,"alarm":"2026-03-14 12:37:03","dispatched":"2026-03-14 12:39:06","incidentLocationCross":"PLUNK WHITSON RD","cADVehicleID":"TK11","timedispatch":"2026-03-14 12:39:17","policeReportNumber":"20260027920","dispatchNotes":"OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]","cADLog":"OUTLET ON FIRE  [03\/14\/26 12:39:02 PFOISTER] ELECTRICAL FIRE IN THE KITCHEN  [03\/14\/26 12:38:48 PFOISTER] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/14\/26 12:38:46 BWILSON]","incidentLocationCity":"COOKEVILLE","streetName":"LEVI CIR","incidentAddressTextVersionStreet":"3720 LEVI CIR","locationCoordinates":"36.19916,-85.58513"}
[2026-03-14 17:39:27] [INFO] Number of extracted fields: 22
[2026-03-14 17:39:27] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO
EMS'
[2026-03-14 17:39:27] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO
EMS', Parsed IDs = ["PCFD","PCSO","EMS"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-14 17:39:27] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO","EMS"]
[2026-03-14 17:39:27] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 17:39:27] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 17:39:27] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO","EMS"]
[2026-03-14 17:39:27] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 17:39:27] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 17:39:27] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-14 17:39:27] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-14 17:39:27] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 17:39:27] [INFO] Found existing IncidentTypeMapping with ID: 693a30ec30d9fce11
[2026-03-14 17:39:27] [INFO] Found existing Dispatch with cADNumber '2026000687', ID: 69b59d3f3a0877a7b - will update instead of create
[2026-03-14 17:39:28] [INFO] Updated existing Dispatches record with ID: 69b59d3f3a0877a7b
[2026-03-14 17:39:28] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173925_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027920_20260314_173925_1.XML
[2026-03-14 17:39:28] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027920_20260314_173925_1.XML
[2026-03-14 18:02:40] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027930_20260314_180240.XML
[2026-03-14 18:02:40] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027930_20260314_180240.XML for user: 68f1466aed072ad4a
[2026-03-14 18:02:40] [INFO] File size: 5276 bytes
[2026-03-14 18:02:40] [INFO] Created FTPFiles record with ID: 69b5a2c06eac9d908
[2026-03-14 18:02:40] [INFO] About to extract fields from XML. File size: 5276 bytes
[2026-03-14 18:02:40] [INFO] Number of mappings: 28
[2026-03-14 18:02:40] [INFO] Starting XML parsing. Content length: 5276
[2026-03-14 18:02:40] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 18:02:40] [INFO] Processing 28 field mappings
[2026-03-14 18:02:40] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 18:02:40] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 18:02:40] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 18:02:40] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-14 18:02:40] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-14 18:02:40] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-14 18:02:40] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 18:02:40] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-14 18:02:40] [INFO]   -> Found value: 2026000688
[2026-03-14 18:02:40] [INFO]   -> Set field 'incidentInternalId' = "2026000688"
[2026-03-14 18:02:40] [INFO]   -> Set field 'dispatchRunNumber' = "2026000688"
[2026-03-14 18:02:40] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 18:02:40] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-14 18:02:40] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-14 18:02:40] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 18:02:40] [INFO]   -> Found value: 3151
[2026-03-14 18:02:40] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3151
[2026-03-14 18:02:40] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 18:02:40] [INFO]   -> Found value: TN
[2026-03-14 18:02:40] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 18:02:40] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 18:02:40] [INFO]   -> Found value: 38545
[2026-03-14 18:02:40] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38545
[2026-03-14 18:02:40] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 18:02:40] [INFO]   -> No value found (null or empty)
[2026-03-14 18:02:40] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 18:02:40] [INFO]   -> No value found (null or empty)
[2026-03-14 18:02:40] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 18:02:40] [INFO]   -> Found value: 36.20927
[2026-03-14 18:02:40] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20926999999999651436155545525252819061279296875
[2026-03-14 18:02:40] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 18:02:40] [INFO]   -> Found value: -85.60873
[2026-03-14 18:02:40] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6087299999999942201611702330410480499267578125
[2026-03-14 18:02:40] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 18:02:40] [INFO]   -> Found value: 2026-03-14 13:02:01
[2026-03-14 18:02:40] [INFO]   -> Set field 'alarm' = "2026-03-14 13:02:01"
[2026-03-14 18:02:40] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 18:02:40] [INFO]   -> Found value: 2026-03-14 13:02:35
[2026-03-14 18:02:40] [INFO]   -> Set field 'dispatched' = "2026-03-14 13:02:35"
[2026-03-14 18:02:40] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 18:02:40] [INFO]   -> No value found (null or empty)
[2026-03-14 18:02:40] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 18:02:40] [INFO]   -> No value found (null or empty)
[2026-03-14 18:02:40] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 18:02:40] [INFO]   -> No value found (null or empty)
[2026-03-14 18:02:40] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 18:02:40] [INFO]   -> Found value: SWAFFORD RD/OLD GAINESBORO RD
[2026-03-14 18:02:40] [INFO]   -> Set field 'incidentLocationCross' = "SWAFFORD RD\/OLD GAINESBORO RD"
[2026-03-14 18:02:40] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 18:02:40] [INFO]   -> Found value: PCFR
[2026-03-14 18:02:40] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-14 18:02:40] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 18:02:40] [INFO]   -> Found value: 2026-03-14 13:02:35
[2026-03-14 18:02:40] [INFO]   -> Set field 'timedispatch' = "2026-03-14 13:02:35"
[2026-03-14 18:02:40] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 18:02:40] [INFO]   -> No value found (null or empty)
[2026-03-14 18:02:40] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 18:02:40] [INFO]   -> No value found (null or empty)
[2026-03-14 18:02:40] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 18:02:40] [INFO]   -> No value found (null or empty)
[2026-03-14 18:02:40] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 18:02:40] [INFO]   -> No value found (null or empty)
[2026-03-14 18:02:40] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 18:02:40] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 18:02:40] [INFO]   -> Found value: 20260027930
[2026-03-14 18:02:40] [INFO]   -> Set field 'policeReportNumber' = "20260027930"
[2026-03-14 18:02:40] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 18:02:40] [INFO]   -> Found value: [EMS] DAD HAVING HARD TIME BREATHING  [03/14/26 13:02:10 MCLAYBURN2] Event spawned from BREATHING PR...
[2026-03-14 18:02:40] [INFO]   -> Set field 'dispatchNotes' = "[EMS] DAD HAVING HARD TIME BREATHING  [03\/14\/26 13:02:10 MCLAYBURN2] Event spawned from BREATHING PROBLEMS.  [03\/14\/2026 13:02:01 MCLAYBURN2]"
[2026-03-14 18:02:40] [INFO]   -> Set field 'cADLog' = "[EMS] DAD HAVING HARD TIME BREATHING  [03\/14\/26 13:02:10 MCLAYBURN2] Event spawned from BREATHING PROBLEMS.  [03\/14\/2026 13:02:01 MCLAYBURN2]"
[2026-03-14 18:02:40] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 18:02:40] [INFO]   -> Found value: BLOOMINGTON SPRINGS
[2026-03-14 18:02:40] [INFO]   -> Set field 'incidentLocationCity' = "BLOOMINGTON SPRINGS"
[2026-03-14 18:02:40] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 18:02:40] [INFO]   -> Found value: CLEMMONS
[2026-03-14 18:02:40] [INFO]   -> Set field 'streetName' = "CLEMMONS"
[2026-03-14 18:02:40] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 18:02:40] [INFO]   -> Found value: RD
[2026-03-14 18:02:40] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-14 18:02:40] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 18:02:40] [INFO]   -> Found value: 3151 CLEMMONS RD
[2026-03-14 18:02:40] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3151 CLEMMONS RD"
[2026-03-14 18:02:40] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-14 18:02:40] [INFO] Concatenating street name and type
[2026-03-14 18:02:40] [INFO]   -> Combined street name: CLEMMONS RD
[2026-03-14 18:02:40] [INFO] Built locationCoordinates from lat/lng: 36.20927,-85.60873
[2026-03-14 18:02:40] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000688","dispatchRunNumber":"2026000688","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":3151,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38545,"nERISIncidentLatitude":36.20926999999999651436155545525252819061279296875,"nERISIncidentLongitude":-85.6087299999999942201611702330410480499267578125,"alarm":"2026-03-14 13:02:01","dispatched":"2026-03-14 13:02:35","incidentLocationCross":"SWAFFORD RD\/OLD GAINESBORO RD","cADVehicleID":"PCFR","timedispatch":"2026-03-14 13:02:35","policeReportNumber":"20260027930","dispatchNotes":"[EMS] DAD HAVING HARD TIME BREATHING  [03\/14\/26 13:02:10 MCLAYBURN2] Event spawned from BREATHING PROBLEMS.  [03\/14\/2026 13:02:01 MCLAYBURN2]","cADLog":"[EMS] DAD HAVING HARD TIME BREATHING  [03\/14\/26 13:02:10 MCLAYBURN2] Event spawned from BREATHING PROBLEMS.  [03\/14\/2026 13:02:01 MCLAYBURN2]","incidentLocationCity":"BLOOMINGTON SPRINGS","streetName":"CLEMMONS RD","incidentAddressTextVersionStreet":"3151 CLEMMONS RD","locationCoordinates":"36.20927,-85.60873"}
[2026-03-14 18:02:40] [INFO] Number of extracted fields: 21
[2026-03-14 18:02:40] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-14 18:02:40] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-14 18:02:40] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-14 18:02:40] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 18:02:40] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 18:02:40] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-14 18:02:40] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 18:02:40] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 18:02:40] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-14 18:02:40] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-14 18:02:40] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 18:02:40] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-14 18:02:51] [INFO] Created new Dispatches record with ID: 69b5a2c14bf3ce29f
[2026-03-14 18:02:51] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027930_20260314_180240.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027930_20260314_180240.XML
[2026-03-14 18:02:51] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027930_20260314_180240.XML
[2026-03-14 18:03:00] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027930_20260314_180300.XML
[2026-03-14 18:03:00] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027930_20260314_180300.XML for user: 68f1466aed072ad4a
[2026-03-14 18:03:00] [INFO] File size: 6256 bytes
[2026-03-14 18:03:00] [INFO] Created FTPFiles record with ID: 69b5a2d4ea18c6871
[2026-03-14 18:03:00] [INFO] About to extract fields from XML. File size: 6256 bytes
[2026-03-14 18:03:00] [INFO] Number of mappings: 28
[2026-03-14 18:03:00] [INFO] Starting XML parsing. Content length: 6256
[2026-03-14 18:03:00] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 18:03:00] [INFO] Processing 28 field mappings
[2026-03-14 18:03:00] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 18:03:00] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 18:03:00] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 18:03:00] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-14 18:03:00] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-14 18:03:00] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-14 18:03:00] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 18:03:00] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-14 18:03:00] [INFO]   -> Found value: 2026000688
[2026-03-14 18:03:00] [INFO]   -> Set field 'incidentInternalId' = "2026000688"
[2026-03-14 18:03:00] [INFO]   -> Set field 'dispatchRunNumber' = "2026000688"
[2026-03-14 18:03:00] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 18:03:00] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-14 18:03:00] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-14 18:03:00] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 18:03:00] [INFO]   -> Found value: 3151
[2026-03-14 18:03:00] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3151
[2026-03-14 18:03:00] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 18:03:00] [INFO]   -> Found value: TN
[2026-03-14 18:03:00] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 18:03:00] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 18:03:00] [INFO]   -> Found value: 38545
[2026-03-14 18:03:00] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38545
[2026-03-14 18:03:00] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 18:03:00] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:00] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 18:03:00] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:00] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 18:03:00] [INFO]   -> Found value: 36.20927
[2026-03-14 18:03:00] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20926999999999651436155545525252819061279296875
[2026-03-14 18:03:00] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 18:03:00] [INFO]   -> Found value: -85.60873
[2026-03-14 18:03:00] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6087299999999942201611702330410480499267578125
[2026-03-14 18:03:00] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 18:03:00] [INFO]   -> Found value: 2026-03-14 13:02:01
[2026-03-14 18:03:00] [INFO]   -> Set field 'alarm' = "2026-03-14 13:02:01"
[2026-03-14 18:03:00] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 18:03:00] [INFO]   -> Found value: 2026-03-14 13:02:35
[2026-03-14 18:03:00] [INFO]   -> Set field 'dispatched' = "2026-03-14 13:02:35"
[2026-03-14 18:03:00] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 18:03:00] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:00] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 18:03:00] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:00] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 18:03:00] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:00] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 18:03:00] [INFO]   -> Found value: SWAFFORD RD/OLD GAINESBORO RD
[2026-03-14 18:03:00] [INFO]   -> Set field 'incidentLocationCross' = "SWAFFORD RD\/OLD GAINESBORO RD"
[2026-03-14 18:03:00] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 18:03:00] [INFO]   -> Found value: PCFR
[2026-03-14 18:03:00] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-14 18:03:00] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 18:03:00] [INFO]   -> Found value: 2026-03-14 13:02:35
[2026-03-14 18:03:00] [INFO]   -> Set field 'timedispatch' = "2026-03-14 13:02:35"
[2026-03-14 18:03:00] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 18:03:00] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:00] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 18:03:00] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:00] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 18:03:00] [INFO]   -> Found value: 2026-03-14 13:02:56
[2026-03-14 18:03:00] [INFO]   -> Set field 'timeunitclear' = "2026-03-14 13:02:56"
[2026-03-14 18:03:00] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 18:03:00] [INFO]   -> Found value: 2026-03-14 13:02:56
[2026-03-14 18:03:00] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-14 13:02:56"
[2026-03-14 18:03:00] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 18:03:00] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 18:03:00] [INFO]   -> Found value: 20260027930
[2026-03-14 18:03:00] [INFO]   -> Set field 'policeReportNumber' = "20260027930"
[2026-03-14 18:03:00] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 18:03:00] [INFO]   -> Found value: [EMS] RARE SARCOMA  [03/14/26 13:02:56 MCLAYBURN2] [EMS] CANCER PT  [03/14/26 13:02:45 MCLAYBURN2] [...
[2026-03-14 18:03:00] [INFO]   -> Set field 'dispatchNotes' = "[EMS] RARE SARCOMA  [03\/14\/26 13:02:56 MCLAYBURN2] [EMS] CANCER PT  [03\/14\/26 13:02:45 MCLAYBURN2] [EMS] STARTED 5 MINUTES AGO NOT ON OXYGEN 39 YR OLD  [03\/14\/26 13:02:41 MCLAYBURN2] [EMS] DAD HAVING HARD TIME BREATHING  [03\/14\/26 13:02:10 MCLAYBURN2] Event spawned from BREATHING PROBLEMS.  [03\/14\/2026 13:02:01 MCLAYBURN2]"
[2026-03-14 18:03:00] [INFO]   -> Set field 'cADLog' = "[EMS] RARE SARCOMA  [03\/14\/26 13:02:56 MCLAYBURN2] [EMS] CANCER PT  [03\/14\/26 13:02:45 MCLAYBURN2] [EMS] STARTED 5 MINUTES AGO NOT ON OXYGEN 39 YR OLD  [03\/14\/26 13:02:41 MCLAYBURN2] [EMS] DAD HAVING HARD TIME BREATHING  [03\/14\/26 13:02:10 MCLAYBURN2] Event spawned from BREATHING PROBLEMS.  [03\/14\/2026 13:02:01 MCLAYBURN2]"
[2026-03-14 18:03:00] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 18:03:00] [INFO]   -> Found value: BLOOMINGTON SPRINGS
[2026-03-14 18:03:00] [INFO]   -> Set field 'incidentLocationCity' = "BLOOMINGTON SPRINGS"
[2026-03-14 18:03:00] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 18:03:00] [INFO]   -> Found value: CLEMMONS
[2026-03-14 18:03:00] [INFO]   -> Set field 'streetName' = "CLEMMONS"
[2026-03-14 18:03:00] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 18:03:00] [INFO]   -> Found value: RD
[2026-03-14 18:03:00] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-14 18:03:00] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 18:03:00] [INFO]   -> Found value: 3151 CLEMMONS RD
[2026-03-14 18:03:00] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3151 CLEMMONS RD"
[2026-03-14 18:03:00] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-14 18:03:00] [INFO] Concatenating street name and type
[2026-03-14 18:03:00] [INFO]   -> Combined street name: CLEMMONS RD
[2026-03-14 18:03:00] [INFO] Built locationCoordinates from lat/lng: 36.20927,-85.60873
[2026-03-14 18:03:00] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000688","dispatchRunNumber":"2026000688","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":3151,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38545,"nERISIncidentLatitude":36.20926999999999651436155545525252819061279296875,"nERISIncidentLongitude":-85.6087299999999942201611702330410480499267578125,"alarm":"2026-03-14 13:02:01","dispatched":"2026-03-14 13:02:35","incidentLocationCross":"SWAFFORD RD\/OLD GAINESBORO RD","cADVehicleID":"PCFR","timedispatch":"2026-03-14 13:02:35","timeunitclear":"2026-03-14 13:02:56","timecanceledenroute":"2026-03-14 13:02:56","policeReportNumber":"20260027930","dispatchNotes":"[EMS] RARE SARCOMA  [03\/14\/26 13:02:56 MCLAYBURN2] [EMS] CANCER PT  [03\/14\/26 13:02:45 MCLAYBURN2] [EMS] STARTED 5 MINUTES AGO NOT ON OXYGEN 39 YR OLD  [03\/14\/26 13:02:41 MCLAYBURN2] [EMS] DAD HAVING HARD TIME BREATHING  [03\/14\/26 13:02:10 MCLAYBURN2] Event spawned from BREATHING PROBLEMS.  [03\/14\/2026 13:02:01 MCLAYBURN2]","cADLog":"[EMS] RARE SARCOMA  [03\/14\/26 13:02:56 MCLAYBURN2] [EMS] CANCER PT  [03\/14\/26 13:02:45 MCLAYBURN2] [EMS] STARTED 5 MINUTES AGO NOT ON OXYGEN 39 YR OLD  [03\/14\/26 13:02:41 MCLAYBURN2] [EMS] DAD HAVING HARD TIME BREATHING  [03\/14\/26 13:02:10 MCLAYBURN2] Event spawned from BREATHING PROBLEMS.  [03\/14\/2026 13:02:01 MCLAYBURN2]","incidentLocationCity":"BLOOMINGTON SPRINGS","streetName":"CLEMMONS RD","incidentAddressTextVersionStreet":"3151 CLEMMONS RD","locationCoordinates":"36.20927,-85.60873"}
[2026-03-14 18:03:00] [INFO] Number of extracted fields: 23
[2026-03-14 18:03:00] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-14 18:03:00] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-14 18:03:00] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-14 18:03:00] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 18:03:01] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 18:03:01] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-14 18:03:01] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 18:03:01] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 18:03:01] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-14 18:03:01] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-14 18:03:01] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 18:03:01] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-14 18:03:01] [INFO] Found existing Dispatch with cADNumber '2026000688', ID: 69b5a2c14bf3ce29f - will update instead of create
[2026-03-14 18:03:01] [INFO] Updated existing Dispatches record with ID: 69b5a2c14bf3ce29f
[2026-03-14 18:03:01] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027930_20260314_180300.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027930_20260314_180300.XML
[2026-03-14 18:03:01] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027930_20260314_180300.XML
[2026-03-14 18:03:05] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027930_20260314_180305.XML
[2026-03-14 18:03:05] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027930_20260314_180305.XML for user: 68f1466aed072ad4a
[2026-03-14 18:03:05] [INFO] File size: 6323 bytes
[2026-03-14 18:03:06] [INFO] Created FTPFiles record with ID: 69b5a2da44e08db67
[2026-03-14 18:03:06] [INFO] About to extract fields from XML. File size: 6323 bytes
[2026-03-14 18:03:06] [INFO] Number of mappings: 28
[2026-03-14 18:03:06] [INFO] Starting XML parsing. Content length: 6323
[2026-03-14 18:03:06] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 18:03:06] [INFO] Processing 28 field mappings
[2026-03-14 18:03:06] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 18:03:06] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 18:03:06] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 18:03:06] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-14 18:03:06] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-14 18:03:06] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-14 18:03:06] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 18:03:06] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-14 18:03:06] [INFO]   -> Found value: 2026000688
[2026-03-14 18:03:06] [INFO]   -> Set field 'incidentInternalId' = "2026000688"
[2026-03-14 18:03:06] [INFO]   -> Set field 'dispatchRunNumber' = "2026000688"
[2026-03-14 18:03:06] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 18:03:06] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-14 18:03:06] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-14 18:03:06] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 18:03:06] [INFO]   -> Found value: 3151
[2026-03-14 18:03:06] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3151
[2026-03-14 18:03:06] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 18:03:06] [INFO]   -> Found value: TN
[2026-03-14 18:03:06] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 18:03:06] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 18:03:06] [INFO]   -> Found value: 38545
[2026-03-14 18:03:06] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38545
[2026-03-14 18:03:06] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 18:03:06] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:06] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 18:03:06] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:06] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 18:03:06] [INFO]   -> Found value: 36.20927
[2026-03-14 18:03:06] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20926999999999651436155545525252819061279296875
[2026-03-14 18:03:06] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 18:03:06] [INFO]   -> Found value: -85.60873
[2026-03-14 18:03:06] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6087299999999942201611702330410480499267578125
[2026-03-14 18:03:06] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 18:03:06] [INFO]   -> Found value: 2026-03-14 13:02:01
[2026-03-14 18:03:06] [INFO]   -> Set field 'alarm' = "2026-03-14 13:02:01"
[2026-03-14 18:03:06] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 18:03:06] [INFO]   -> Found value: 2026-03-14 13:02:35
[2026-03-14 18:03:06] [INFO]   -> Set field 'dispatched' = "2026-03-14 13:02:35"
[2026-03-14 18:03:06] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 18:03:06] [INFO]   -> Found value: 2026-03-14 13:02:59
[2026-03-14 18:03:06] [INFO]   -> Set field 'enroute' = "2026-03-14 13:02:59"
[2026-03-14 18:03:06] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 18:03:06] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:06] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 18:03:06] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:06] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 18:03:06] [INFO]   -> Found value: SWAFFORD RD/OLD GAINESBORO RD
[2026-03-14 18:03:06] [INFO]   -> Set field 'incidentLocationCross' = "SWAFFORD RD\/OLD GAINESBORO RD"
[2026-03-14 18:03:06] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 18:03:06] [INFO]   -> Found value: TK31
[2026-03-14 18:03:06] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-14 18:03:06] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 18:03:06] [INFO]   -> Found value: 2026-03-14 13:02:56
[2026-03-14 18:03:06] [INFO]   -> Set field 'timedispatch' = "2026-03-14 13:02:56"
[2026-03-14 18:03:06] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 18:03:06] [INFO]   -> Found value: 2026-03-14 13:02:59
[2026-03-14 18:03:06] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-14 13:02:59"
[2026-03-14 18:03:06] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 18:03:06] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:06] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 18:03:06] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:06] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 18:03:06] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:06] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 18:03:06] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 18:03:06] [INFO]   -> Found value: 20260027930
[2026-03-14 18:03:06] [INFO]   -> Set field 'policeReportNumber' = "20260027930"
[2026-03-14 18:03:06] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 18:03:06] [INFO]   -> Found value: [EMS] RARE SARCOMA  [03/14/26 13:02:56 MCLAYBURN2] [EMS] CANCER PT  [03/14/26 13:02:45 MCLAYBURN2] [...
[2026-03-14 18:03:06] [INFO]   -> Set field 'dispatchNotes' = "[EMS] RARE SARCOMA  [03\/14\/26 13:02:56 MCLAYBURN2] [EMS] CANCER PT  [03\/14\/26 13:02:45 MCLAYBURN2] [EMS] STARTED 5 MINUTES AGO NOT ON OXYGEN 39 YR OLD  [03\/14\/26 13:02:41 MCLAYBURN2] [EMS] DAD HAVING HARD TIME BREATHING  [03\/14\/26 13:02:10 MCLAYBURN2] Event spawned from BREATHING PROBLEMS.  [03\/14\/2026 13:02:01 MCLAYBURN2]"
[2026-03-14 18:03:06] [INFO]   -> Set field 'cADLog' = "[EMS] RARE SARCOMA  [03\/14\/26 13:02:56 MCLAYBURN2] [EMS] CANCER PT  [03\/14\/26 13:02:45 MCLAYBURN2] [EMS] STARTED 5 MINUTES AGO NOT ON OXYGEN 39 YR OLD  [03\/14\/26 13:02:41 MCLAYBURN2] [EMS] DAD HAVING HARD TIME BREATHING  [03\/14\/26 13:02:10 MCLAYBURN2] Event spawned from BREATHING PROBLEMS.  [03\/14\/2026 13:02:01 MCLAYBURN2]"
[2026-03-14 18:03:06] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 18:03:06] [INFO]   -> Found value: BLOOMINGTON SPRINGS
[2026-03-14 18:03:06] [INFO]   -> Set field 'incidentLocationCity' = "BLOOMINGTON SPRINGS"
[2026-03-14 18:03:06] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 18:03:06] [INFO]   -> Found value: CLEMMONS
[2026-03-14 18:03:06] [INFO]   -> Set field 'streetName' = "CLEMMONS"
[2026-03-14 18:03:06] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 18:03:06] [INFO]   -> Found value: RD
[2026-03-14 18:03:06] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-14 18:03:06] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 18:03:06] [INFO]   -> Found value: 3151 CLEMMONS RD
[2026-03-14 18:03:06] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3151 CLEMMONS RD"
[2026-03-14 18:03:06] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-14 18:03:06] [INFO] Concatenating street name and type
[2026-03-14 18:03:06] [INFO]   -> Combined street name: CLEMMONS RD
[2026-03-14 18:03:06] [INFO] Built locationCoordinates from lat/lng: 36.20927,-85.60873
[2026-03-14 18:03:06] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000688","dispatchRunNumber":"2026000688","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":3151,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38545,"nERISIncidentLatitude":36.20926999999999651436155545525252819061279296875,"nERISIncidentLongitude":-85.6087299999999942201611702330410480499267578125,"alarm":"2026-03-14 13:02:01","dispatched":"2026-03-14 13:02:35","enroute":"2026-03-14 13:02:59","incidentLocationCross":"SWAFFORD RD\/OLD GAINESBORO RD","cADVehicleID":"TK31","timedispatch":"2026-03-14 13:02:56","timeenroutetoscene":"2026-03-14 13:02:59","policeReportNumber":"20260027930","dispatchNotes":"[EMS] RARE SARCOMA  [03\/14\/26 13:02:56 MCLAYBURN2] [EMS] CANCER PT  [03\/14\/26 13:02:45 MCLAYBURN2] [EMS] STARTED 5 MINUTES AGO NOT ON OXYGEN 39 YR OLD  [03\/14\/26 13:02:41 MCLAYBURN2] [EMS] DAD HAVING HARD TIME BREATHING  [03\/14\/26 13:02:10 MCLAYBURN2] Event spawned from BREATHING PROBLEMS.  [03\/14\/2026 13:02:01 MCLAYBURN2]","cADLog":"[EMS] RARE SARCOMA  [03\/14\/26 13:02:56 MCLAYBURN2] [EMS] CANCER PT  [03\/14\/26 13:02:45 MCLAYBURN2] [EMS] STARTED 5 MINUTES AGO NOT ON OXYGEN 39 YR OLD  [03\/14\/26 13:02:41 MCLAYBURN2] [EMS] DAD HAVING HARD TIME BREATHING  [03\/14\/26 13:02:10 MCLAYBURN2] Event spawned from BREATHING PROBLEMS.  [03\/14\/2026 13:02:01 MCLAYBURN2]","incidentLocationCity":"BLOOMINGTON SPRINGS","streetName":"CLEMMONS RD","incidentAddressTextVersionStreet":"3151 CLEMMONS RD","locationCoordinates":"36.20927,-85.60873"}
[2026-03-14 18:03:06] [INFO] Number of extracted fields: 23
[2026-03-14 18:03:06] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-14 18:03:06] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-14 18:03:06] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-14 18:03:06] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 18:03:06] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 18:03:06] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-14 18:03:06] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 18:03:06] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 18:03:06] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-14 18:03:06] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-14 18:03:06] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 18:03:06] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-14 18:03:06] [INFO] Found existing Dispatch with cADNumber '2026000688', ID: 69b5a2c14bf3ce29f - will update instead of create
[2026-03-14 18:03:07] [INFO] Updated existing Dispatches record with ID: 69b5a2c14bf3ce29f
[2026-03-14 18:03:07] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027930_20260314_180305.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027930_20260314_180305.XML
[2026-03-14 18:03:07] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027930_20260314_180305.XML
[2026-03-14 18:03:07] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027930_20260314_180306.XML
[2026-03-14 18:03:07] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027930_20260314_180306.XML for user: 68f1466aed072ad4a
[2026-03-14 18:03:07] [INFO] File size: 6323 bytes
[2026-03-14 18:03:07] [INFO] Created FTPFiles record with ID: 69b5a2db856ba426a
[2026-03-14 18:03:07] [INFO] About to extract fields from XML. File size: 6323 bytes
[2026-03-14 18:03:07] [INFO] Number of mappings: 28
[2026-03-14 18:03:07] [INFO] Starting XML parsing. Content length: 6323
[2026-03-14 18:03:07] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 18:03:07] [INFO] Processing 28 field mappings
[2026-03-14 18:03:07] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 18:03:07] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 18:03:07] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-14 18:03:07] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-14 18:03:07] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-14 18:03:07] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-14 18:03:07] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 18:03:07] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-14 18:03:07] [INFO]   -> Found value: 2026000688
[2026-03-14 18:03:07] [INFO]   -> Set field 'incidentInternalId' = "2026000688"
[2026-03-14 18:03:07] [INFO]   -> Set field 'dispatchRunNumber' = "2026000688"
[2026-03-14 18:03:07] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 18:03:07] [INFO]   -> Found value: BREATHING PROBLEMS
[2026-03-14 18:03:07] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2026-03-14 18:03:07] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 18:03:07] [INFO]   -> Found value: 3151
[2026-03-14 18:03:07] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3151
[2026-03-14 18:03:07] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 18:03:07] [INFO]   -> Found value: TN
[2026-03-14 18:03:07] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 18:03:07] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 18:03:07] [INFO]   -> Found value: 38545
[2026-03-14 18:03:07] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38545
[2026-03-14 18:03:07] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 18:03:07] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:07] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 18:03:07] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:07] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 18:03:07] [INFO]   -> Found value: 36.20927
[2026-03-14 18:03:07] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20926999999999651436155545525252819061279296875
[2026-03-14 18:03:07] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 18:03:07] [INFO]   -> Found value: -85.60873
[2026-03-14 18:03:07] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6087299999999942201611702330410480499267578125
[2026-03-14 18:03:07] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 18:03:07] [INFO]   -> Found value: 2026-03-14 13:02:01
[2026-03-14 18:03:07] [INFO]   -> Set field 'alarm' = "2026-03-14 13:02:01"
[2026-03-14 18:03:07] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 18:03:07] [INFO]   -> Found value: 2026-03-14 13:02:35
[2026-03-14 18:03:07] [INFO]   -> Set field 'dispatched' = "2026-03-14 13:02:35"
[2026-03-14 18:03:07] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 18:03:07] [INFO]   -> Found value: 2026-03-14 13:02:59
[2026-03-14 18:03:07] [INFO]   -> Set field 'enroute' = "2026-03-14 13:02:59"
[2026-03-14 18:03:07] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 18:03:07] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:07] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 18:03:07] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:07] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 18:03:07] [INFO]   -> Found value: SWAFFORD RD/OLD GAINESBORO RD
[2026-03-14 18:03:07] [INFO]   -> Set field 'incidentLocationCross' = "SWAFFORD RD\/OLD GAINESBORO RD"
[2026-03-14 18:03:07] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 18:03:07] [INFO]   -> Found value: TK31
[2026-03-14 18:03:07] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-14 18:03:07] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 18:03:07] [INFO]   -> Found value: 2026-03-14 13:02:56
[2026-03-14 18:03:07] [INFO]   -> Set field 'timedispatch' = "2026-03-14 13:02:56"
[2026-03-14 18:03:07] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 18:03:07] [INFO]   -> Found value: 2026-03-14 13:02:59
[2026-03-14 18:03:07] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-14 13:02:59"
[2026-03-14 18:03:07] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 18:03:07] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:07] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 18:03:07] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:07] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 18:03:07] [INFO]   -> No value found (null or empty)
[2026-03-14 18:03:07] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 18:03:07] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-14 18:03:07] [INFO]   -> Found value: 20260027930
[2026-03-14 18:03:07] [INFO]   -> Set field 'policeReportNumber' = "20260027930"
[2026-03-14 18:03:07] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 18:03:07] [INFO]   -> Found value: [EMS] RARE SARCOMA  [03/14/26 13:02:56 MCLAYBURN2] [EMS] CANCER PT  [03/14/26 13:02:45 MCLAYBURN2] [...
[2026-03-14 18:03:07] [INFO]   -> Set field 'dispatchNotes' = "[EMS] RARE SARCOMA  [03\/14\/26 13:02:56 MCLAYBURN2] [EMS] CANCER PT  [03\/14\/26 13:02:45 MCLAYBURN2] [EMS] STARTED 5 MINUTES AGO NOT ON OXYGEN 39 YR OLD  [03\/14\/26 13:02:41 MCLAYBURN2] [EMS] DAD HAVING HARD TIME BREATHING  [03\/14\/26 13:02:10 MCLAYBURN2] Event spawned from BREATHING PROBLEMS.  [03\/14\/2026 13:02:01 MCLAYBURN2]"
[2026-03-14 18:03:07] [INFO]   -> Set field 'cADLog' = "[EMS] RARE SARCOMA  [03\/14\/26 13:02:56 MCLAYBURN2] [EMS] CANCER PT  [03\/14\/26 13:02:45 MCLAYBURN2] [EMS] STARTED 5 MINUTES AGO NOT ON OXYGEN 39 YR OLD  [03\/14\/26 13:02:41 MCLAYBURN2] [EMS] DAD HAVING HARD TIME BREATHING  [03\/14\/26 13:02:10 MCLAYBURN2] Event spawned from BREATHING PROBLEMS.  [03\/14\/2026 13:02:01 MCLAYBURN2]"
[2026-03-14 18:03:07] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 18:03:07] [INFO]   -> Found value: BLOOMINGTON SPRINGS
[2026-03-14 18:03:07] [INFO]   -> Set field 'incidentLocationCity' = "BLOOMINGTON SPRINGS"
[2026-03-14 18:03:07] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 18:03:07] [INFO]   -> Found value: CLEMMONS
[2026-03-14 18:03:07] [INFO]   -> Set field 'streetName' = "CLEMMONS"
[2026-03-14 18:03:07] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 18:03:07] [INFO]   -> Found value: RD
[2026-03-14 18:03:07] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-14 18:03:07] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 18:03:07] [INFO]   -> Found value: 3151 CLEMMONS RD
[2026-03-14 18:03:07] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3151 CLEMMONS RD"
[2026-03-14 18:03:07] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-14 18:03:07] [INFO] Concatenating street name and type
[2026-03-14 18:03:07] [INFO]   -> Combined street name: CLEMMONS RD
[2026-03-14 18:03:07] [INFO] Built locationCoordinates from lat/lng: 36.20927,-85.60873
[2026-03-14 18:03:07] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000688","dispatchRunNumber":"2026000688","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":3151,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38545,"nERISIncidentLatitude":36.20926999999999651436155545525252819061279296875,"nERISIncidentLongitude":-85.6087299999999942201611702330410480499267578125,"alarm":"2026-03-14 13:02:01","dispatched":"2026-03-14 13:02:35","enroute":"2026-03-14 13:02:59","incidentLocationCross":"SWAFFORD RD\/OLD GAINESBORO RD","cADVehicleID":"TK31","timedispatch":"2026-03-14 13:02:56","timeenroutetoscene":"2026-03-14 13:02:59","policeReportNumber":"20260027930","dispatchNotes":"[EMS] RARE SARCOMA  [03\/14\/26 13:02:56 MCLAYBURN2] [EMS] CANCER PT  [03\/14\/26 13:02:45 MCLAYBURN2] [EMS] STARTED 5 MINUTES AGO NOT ON OXYGEN 39 YR OLD  [03\/14\/26 13:02:41 MCLAYBURN2] [EMS] DAD HAVING HARD TIME BREATHING  [03\/14\/26 13:02:10 MCLAYBURN2] Event spawned from BREATHING PROBLEMS.  [03\/14\/2026 13:02:01 MCLAYBURN2]","cADLog":"[EMS] RARE SARCOMA  [03\/14\/26 13:02:56 MCLAYBURN2] [EMS] CANCER PT  [03\/14\/26 13:02:45 MCLAYBURN2] [EMS] STARTED 5 MINUTES AGO NOT ON OXYGEN 39 YR OLD  [03\/14\/26 13:02:41 MCLAYBURN2] [EMS] DAD HAVING HARD TIME BREATHING  [03\/14\/26 13:02:10 MCLAYBURN2] Event spawned from BREATHING PROBLEMS.  [03\/14\/2026 13:02:01 MCLAYBURN2]","incidentLocationCity":"BLOOMINGTON SPRINGS","streetName":"CLEMMONS RD","incidentAddressTextVersionStreet":"3151 CLEMMONS RD","locationCoordinates":"36.20927,-85.60873"}
[2026-03-14 18:03:07] [INFO] Number of extracted fields: 23
[2026-03-14 18:03:07] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-14 18:03:07] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-14 18:03:07] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-14 18:03:07] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 18:03:07] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 18:03:07] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-14 18:03:07] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 18:03:07] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 18:03:07] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-14 18:03:07] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-14 18:03:07] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 18:03:08] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2026-03-14 18:03:08] [INFO] Found existing Dispatch with cADNumber '2026000688', ID: 69b5a2c14bf3ce29f - will update instead of create
[2026-03-14 18:03:08] [INFO] Updated existing Dispatches record with ID: 69b5a2c14bf3ce29f
[2026-03-14 18:03:08] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027930_20260314_180306.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027930_20260314_180306.XML
[2026-03-14 18:03:08] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027930_20260314_180306.XML
[2026-03-14 19:35:55] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193555.XML
[2026-03-14 19:35:55] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193555.XML for user: 68f1466aed072ad4a
[2026-03-14 19:35:55] [INFO] File size: 4729 bytes
[2026-03-14 19:35:56] [INFO] Created FTPFiles record with ID: 69b5b89c52700bdf0
[2026-03-14 19:35:56] [INFO] About to extract fields from XML. File size: 4729 bytes
[2026-03-14 19:35:56] [INFO] Number of mappings: 28
[2026-03-14 19:35:56] [INFO] Starting XML parsing. Content length: 4729
[2026-03-14 19:35:56] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 19:35:56] [INFO] Processing 28 field mappings
[2026-03-14 19:35:56] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 19:35:56] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 19:35:56] [INFO]   -> Found value: PCFD
[2026-03-14 19:35:56] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-14 19:35:56] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 19:35:56] [INFO]   -> Found value: 2026000689
[2026-03-14 19:35:56] [INFO]   -> Set field 'incidentInternalId' = "2026000689"
[2026-03-14 19:35:56] [INFO]   -> Set field 'dispatchRunNumber' = "2026000689"
[2026-03-14 19:35:56] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 19:35:56] [INFO]   -> Found value: FIRE ALARM
[2026-03-14 19:35:56] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-14 19:35:56] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 19:35:56] [INFO]   -> Found value: 7618
[2026-03-14 19:35:56] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7618
[2026-03-14 19:35:56] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 19:35:56] [INFO]   -> Found value: TN
[2026-03-14 19:35:56] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 19:35:56] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 19:35:56] [INFO]   -> Found value: 38544
[2026-03-14 19:35:56] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-14 19:35:56] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 19:35:56] [INFO]   -> No value found (null or empty)
[2026-03-14 19:35:56] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 19:35:56] [INFO]   -> No value found (null or empty)
[2026-03-14 19:35:56] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 19:35:56] [INFO]   -> Found value: 36.11784
[2026-03-14 19:35:56] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1178400000000010550138540565967559814453125
[2026-03-14 19:35:56] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 19:35:56] [INFO]   -> Found value: -85.63638
[2026-03-14 19:35:56] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.636380000000002610249794088304042816162109375
[2026-03-14 19:35:56] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 19:35:56] [INFO]   -> Found value: 2026-03-14 14:34:17
[2026-03-14 19:35:56] [INFO]   -> Set field 'alarm' = "2026-03-14 14:34:17"
[2026-03-14 19:35:56] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 19:35:56] [INFO]   -> Found value: 2026-03-14 14:35:52
[2026-03-14 19:35:56] [INFO]   -> Set field 'dispatched' = "2026-03-14 14:35:52"
[2026-03-14 19:35:56] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 19:35:56] [INFO]   -> No value found (null or empty)
[2026-03-14 19:35:56] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 19:35:56] [INFO]   -> No value found (null or empty)
[2026-03-14 19:35:56] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 19:35:56] [INFO]   -> No value found (null or empty)
[2026-03-14 19:35:56] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 19:35:56] [INFO]   -> Found value: ANDKOO RD
[2026-03-14 19:35:56] [INFO]   -> Set field 'incidentLocationCross' = "ANDKOO RD"
[2026-03-14 19:35:56] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 19:35:56] [INFO]   -> Found value: TK13
[2026-03-14 19:35:56] [INFO]   -> Set field 'cADVehicleID' = "TK13"
[2026-03-14 19:35:56] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 19:35:56] [INFO]   -> Found value: 2026-03-14 14:35:52
[2026-03-14 19:35:56] [INFO]   -> Set field 'timedispatch' = "2026-03-14 14:35:52"
[2026-03-14 19:35:56] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 19:35:56] [INFO]   -> No value found (null or empty)
[2026-03-14 19:35:56] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 19:35:56] [INFO]   -> No value found (null or empty)
[2026-03-14 19:35:56] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 19:35:56] [INFO]   -> No value found (null or empty)
[2026-03-14 19:35:56] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 19:35:56] [INFO]   -> No value found (null or empty)
[2026-03-14 19:35:56] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 19:35:56] [INFO]   -> Found value: 20260027952
[2026-03-14 19:35:56] [INFO]   -> Set field 'policeReportNumber' = "20260027952"
[2026-03-14 19:35:56] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 19:35:56] [INFO]   -> Found value: 931-858-4919  [03/14/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOK...
[2026-03-14 19:35:56] [INFO]   -> Set field 'dispatchNotes' = "931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]"
[2026-03-14 19:35:56] [INFO]   -> Set field 'cADLog' = "931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]"
[2026-03-14 19:35:56] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 19:35:56] [INFO]   -> Found value: BAXTER
[2026-03-14 19:35:56] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-14 19:35:56] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 19:35:56] [INFO]   -> Found value: LILLYS CHAPEL
[2026-03-14 19:35:56] [INFO]   -> Set field 'streetName' = "LILLYS CHAPEL"
[2026-03-14 19:35:56] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 19:35:56] [INFO]   -> Found value: RD
[2026-03-14 19:35:56] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-14 19:35:56] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 19:35:56] [INFO]   -> Found value: 7618 LILLYS CHAPEL RD
[2026-03-14 19:35:56] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7618 LILLYS CHAPEL RD"
[2026-03-14 19:35:56] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-14 19:35:56] [INFO] Concatenating street name and type
[2026-03-14 19:35:56] [INFO]   -> Combined street name: LILLYS CHAPEL RD
[2026-03-14 19:35:56] [INFO] Built locationCoordinates from lat/lng: 36.11784,-85.63638
[2026-03-14 19:35:56] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000689","dispatchRunNumber":"2026000689","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":7618,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.1178400000000010550138540565967559814453125,"nERISIncidentLongitude":-85.636380000000002610249794088304042816162109375,"alarm":"2026-03-14 14:34:17","dispatched":"2026-03-14 14:35:52","incidentLocationCross":"ANDKOO RD","cADVehicleID":"TK13","timedispatch":"2026-03-14 14:35:52","policeReportNumber":"20260027952","dispatchNotes":"931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]","cADLog":"931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]","incidentLocationCity":"BAXTER","streetName":"LILLYS CHAPEL RD","incidentAddressTextVersionStreet":"7618 LILLYS CHAPEL RD","locationCoordinates":"36.11784,-85.63638"}
[2026-03-14 19:35:56] [INFO] Number of extracted fields: 21
[2026-03-14 19:35:56] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-14 19:35:56] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-14 19:35:56] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-14 19:35:56] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 19:35:56] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 19:35:56] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 19:35:56] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 19:35:56] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 19:35:56] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-14 19:36:05] [INFO] Created new Dispatches record with ID: 69b5b89d2818e9915
[2026-03-14 19:36:05] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193555.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027952_20260314_193555.XML
[2026-03-14 19:36:05] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193555.XML
[2026-03-14 19:36:05] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193556.XML
[2026-03-14 19:36:05] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193556.XML for user: 68f1466aed072ad4a
[2026-03-14 19:36:05] [INFO] File size: 4729 bytes
[2026-03-14 19:36:06] [INFO] Created FTPFiles record with ID: 69b5b8a638bd80a68
[2026-03-14 19:36:06] [INFO] About to extract fields from XML. File size: 4729 bytes
[2026-03-14 19:36:06] [INFO] Number of mappings: 28
[2026-03-14 19:36:06] [INFO] Starting XML parsing. Content length: 4729
[2026-03-14 19:36:06] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 19:36:06] [INFO] Processing 28 field mappings
[2026-03-14 19:36:06] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 19:36:06] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 19:36:06] [INFO]   -> Found value: PCFD
[2026-03-14 19:36:06] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-14 19:36:06] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 19:36:06] [INFO]   -> Found value: 2026000689
[2026-03-14 19:36:06] [INFO]   -> Set field 'incidentInternalId' = "2026000689"
[2026-03-14 19:36:06] [INFO]   -> Set field 'dispatchRunNumber' = "2026000689"
[2026-03-14 19:36:06] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 19:36:06] [INFO]   -> Found value: FIRE ALARM
[2026-03-14 19:36:06] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-14 19:36:06] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 19:36:06] [INFO]   -> Found value: 7618
[2026-03-14 19:36:06] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7618
[2026-03-14 19:36:06] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 19:36:06] [INFO]   -> Found value: TN
[2026-03-14 19:36:06] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 19:36:06] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 19:36:06] [INFO]   -> Found value: 38544
[2026-03-14 19:36:06] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-14 19:36:06] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 19:36:06] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:06] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 19:36:06] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:06] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 19:36:06] [INFO]   -> Found value: 36.11784
[2026-03-14 19:36:06] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1178400000000010550138540565967559814453125
[2026-03-14 19:36:06] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 19:36:06] [INFO]   -> Found value: -85.63638
[2026-03-14 19:36:06] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.636380000000002610249794088304042816162109375
[2026-03-14 19:36:06] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 19:36:06] [INFO]   -> Found value: 2026-03-14 14:34:17
[2026-03-14 19:36:06] [INFO]   -> Set field 'alarm' = "2026-03-14 14:34:17"
[2026-03-14 19:36:06] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 19:36:06] [INFO]   -> Found value: 2026-03-14 14:35:52
[2026-03-14 19:36:06] [INFO]   -> Set field 'dispatched' = "2026-03-14 14:35:52"
[2026-03-14 19:36:06] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 19:36:06] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:06] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 19:36:06] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:06] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 19:36:06] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:06] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 19:36:06] [INFO]   -> Found value: ANDKOO RD
[2026-03-14 19:36:06] [INFO]   -> Set field 'incidentLocationCross' = "ANDKOO RD"
[2026-03-14 19:36:06] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 19:36:06] [INFO]   -> Found value: TK13
[2026-03-14 19:36:06] [INFO]   -> Set field 'cADVehicleID' = "TK13"
[2026-03-14 19:36:06] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 19:36:06] [INFO]   -> Found value: 2026-03-14 14:35:52
[2026-03-14 19:36:06] [INFO]   -> Set field 'timedispatch' = "2026-03-14 14:35:52"
[2026-03-14 19:36:06] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 19:36:06] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:06] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 19:36:06] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:06] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 19:36:06] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:06] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 19:36:06] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:06] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 19:36:06] [INFO]   -> Found value: 20260027952
[2026-03-14 19:36:06] [INFO]   -> Set field 'policeReportNumber' = "20260027952"
[2026-03-14 19:36:06] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 19:36:06] [INFO]   -> Found value: 931-858-4919  [03/14/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOK...
[2026-03-14 19:36:06] [INFO]   -> Set field 'dispatchNotes' = "931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]"
[2026-03-14 19:36:06] [INFO]   -> Set field 'cADLog' = "931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]"
[2026-03-14 19:36:06] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 19:36:06] [INFO]   -> Found value: BAXTER
[2026-03-14 19:36:06] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-14 19:36:06] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 19:36:06] [INFO]   -> Found value: LILLYS CHAPEL
[2026-03-14 19:36:06] [INFO]   -> Set field 'streetName' = "LILLYS CHAPEL"
[2026-03-14 19:36:06] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 19:36:06] [INFO]   -> Found value: RD
[2026-03-14 19:36:06] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-14 19:36:06] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 19:36:06] [INFO]   -> Found value: 7618 LILLYS CHAPEL RD
[2026-03-14 19:36:06] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7618 LILLYS CHAPEL RD"
[2026-03-14 19:36:06] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-14 19:36:06] [INFO] Concatenating street name and type
[2026-03-14 19:36:06] [INFO]   -> Combined street name: LILLYS CHAPEL RD
[2026-03-14 19:36:06] [INFO] Built locationCoordinates from lat/lng: 36.11784,-85.63638
[2026-03-14 19:36:06] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000689","dispatchRunNumber":"2026000689","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":7618,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.1178400000000010550138540565967559814453125,"nERISIncidentLongitude":-85.636380000000002610249794088304042816162109375,"alarm":"2026-03-14 14:34:17","dispatched":"2026-03-14 14:35:52","incidentLocationCross":"ANDKOO RD","cADVehicleID":"TK13","timedispatch":"2026-03-14 14:35:52","policeReportNumber":"20260027952","dispatchNotes":"931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]","cADLog":"931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]","incidentLocationCity":"BAXTER","streetName":"LILLYS CHAPEL RD","incidentAddressTextVersionStreet":"7618 LILLYS CHAPEL RD","locationCoordinates":"36.11784,-85.63638"}
[2026-03-14 19:36:06] [INFO] Number of extracted fields: 21
[2026-03-14 19:36:06] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-14 19:36:06] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-14 19:36:06] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-14 19:36:06] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 19:36:06] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 19:36:06] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 19:36:06] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 19:36:06] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 19:36:06] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-14 19:36:06] [INFO] Found existing Dispatch with cADNumber '2026000689', ID: 69b5b89d2818e9915 - will update instead of create
[2026-03-14 19:36:07] [INFO] Updated existing Dispatches record with ID: 69b5b89d2818e9915
[2026-03-14 19:36:07] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193556.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027952_20260314_193556.XML
[2026-03-14 19:36:07] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193556.XML
[2026-03-14 19:36:40] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193640.XML
[2026-03-14 19:36:40] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193640.XML for user: 68f1466aed072ad4a
[2026-03-14 19:36:40] [INFO] File size: 5506 bytes
[2026-03-14 19:36:41] [INFO] Created FTPFiles record with ID: 69b5b8c93ddd1fe94
[2026-03-14 19:36:41] [INFO] About to extract fields from XML. File size: 5506 bytes
[2026-03-14 19:36:41] [INFO] Number of mappings: 28
[2026-03-14 19:36:41] [INFO] Starting XML parsing. Content length: 5506
[2026-03-14 19:36:41] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 19:36:41] [INFO] Processing 28 field mappings
[2026-03-14 19:36:41] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 19:36:41] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 19:36:41] [INFO]   -> Found value: PCFD
[2026-03-14 19:36:41] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-14 19:36:41] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 19:36:41] [INFO]   -> Found value: 2026000689
[2026-03-14 19:36:41] [INFO]   -> Set field 'incidentInternalId' = "2026000689"
[2026-03-14 19:36:41] [INFO]   -> Set field 'dispatchRunNumber' = "2026000689"
[2026-03-14 19:36:41] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 19:36:41] [INFO]   -> Found value: FIRE ALARM
[2026-03-14 19:36:41] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-14 19:36:41] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 19:36:41] [INFO]   -> Found value: 7618
[2026-03-14 19:36:41] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7618
[2026-03-14 19:36:41] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 19:36:41] [INFO]   -> Found value: TN
[2026-03-14 19:36:41] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 19:36:41] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 19:36:41] [INFO]   -> Found value: 38544
[2026-03-14 19:36:41] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-14 19:36:41] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 19:36:41] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:41] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 19:36:41] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:41] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 19:36:41] [INFO]   -> Found value: 36.11784
[2026-03-14 19:36:41] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1178400000000010550138540565967559814453125
[2026-03-14 19:36:41] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 19:36:41] [INFO]   -> Found value: -85.63638
[2026-03-14 19:36:41] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.636380000000002610249794088304042816162109375
[2026-03-14 19:36:41] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 19:36:41] [INFO]   -> Found value: 2026-03-14 14:34:17
[2026-03-14 19:36:41] [INFO]   -> Set field 'alarm' = "2026-03-14 14:34:17"
[2026-03-14 19:36:41] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 19:36:41] [INFO]   -> Found value: 2026-03-14 14:35:52
[2026-03-14 19:36:41] [INFO]   -> Set field 'dispatched' = "2026-03-14 14:35:52"
[2026-03-14 19:36:41] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 19:36:41] [INFO]   -> Found value: 2026-03-14 14:36:34
[2026-03-14 19:36:41] [INFO]   -> Set field 'enroute' = "2026-03-14 14:36:34"
[2026-03-14 19:36:41] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 19:36:41] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:41] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 19:36:41] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:41] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 19:36:41] [INFO]   -> Found value: ANDKOO RD
[2026-03-14 19:36:41] [INFO]   -> Set field 'incidentLocationCross' = "ANDKOO RD"
[2026-03-14 19:36:41] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 19:36:41] [INFO]   -> Found value: EN11
[2026-03-14 19:36:41] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-14 19:36:41] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 19:36:41] [INFO]   -> Found value: 2026-03-14 14:36:34
[2026-03-14 19:36:41] [INFO]   -> Set field 'timedispatch' = "2026-03-14 14:36:34"
[2026-03-14 19:36:41] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 19:36:41] [INFO]   -> Found value: 2026-03-14 14:36:34
[2026-03-14 19:36:41] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-14 14:36:34"
[2026-03-14 19:36:41] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 19:36:41] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:41] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 19:36:41] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:41] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 19:36:41] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:41] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 19:36:41] [INFO]   -> Found value: 20260027952
[2026-03-14 19:36:41] [INFO]   -> Set field 'policeReportNumber' = "20260027952"
[2026-03-14 19:36:41] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 19:36:41] [INFO]   -> Found value: 931-858-4919  [03/14/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOK...
[2026-03-14 19:36:41] [INFO]   -> Set field 'dispatchNotes' = "931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]"
[2026-03-14 19:36:41] [INFO]   -> Set field 'cADLog' = "931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]"
[2026-03-14 19:36:41] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 19:36:41] [INFO]   -> Found value: BAXTER
[2026-03-14 19:36:41] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-14 19:36:41] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 19:36:41] [INFO]   -> Found value: LILLYS CHAPEL
[2026-03-14 19:36:41] [INFO]   -> Set field 'streetName' = "LILLYS CHAPEL"
[2026-03-14 19:36:41] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 19:36:41] [INFO]   -> Found value: RD
[2026-03-14 19:36:41] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-14 19:36:41] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 19:36:41] [INFO]   -> Found value: 7618 LILLYS CHAPEL RD
[2026-03-14 19:36:41] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7618 LILLYS CHAPEL RD"
[2026-03-14 19:36:41] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-14 19:36:41] [INFO] Concatenating street name and type
[2026-03-14 19:36:41] [INFO]   -> Combined street name: LILLYS CHAPEL RD
[2026-03-14 19:36:41] [INFO] Built locationCoordinates from lat/lng: 36.11784,-85.63638
[2026-03-14 19:36:41] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000689","dispatchRunNumber":"2026000689","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":7618,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.1178400000000010550138540565967559814453125,"nERISIncidentLongitude":-85.636380000000002610249794088304042816162109375,"alarm":"2026-03-14 14:34:17","dispatched":"2026-03-14 14:35:52","enroute":"2026-03-14 14:36:34","incidentLocationCross":"ANDKOO RD","cADVehicleID":"EN11","timedispatch":"2026-03-14 14:36:34","timeenroutetoscene":"2026-03-14 14:36:34","policeReportNumber":"20260027952","dispatchNotes":"931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]","cADLog":"931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]","incidentLocationCity":"BAXTER","streetName":"LILLYS CHAPEL RD","incidentAddressTextVersionStreet":"7618 LILLYS CHAPEL RD","locationCoordinates":"36.11784,-85.63638"}
[2026-03-14 19:36:41] [INFO] Number of extracted fields: 23
[2026-03-14 19:36:41] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-14 19:36:41] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-14 19:36:41] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-14 19:36:41] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 19:36:41] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 19:36:41] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 19:36:41] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 19:36:41] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 19:36:41] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-14 19:36:41] [INFO] Found existing Dispatch with cADNumber '2026000689', ID: 69b5b89d2818e9915 - will update instead of create
[2026-03-14 19:36:42] [INFO] Updated existing Dispatches record with ID: 69b5b89d2818e9915
[2026-03-14 19:36:42] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193640.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027952_20260314_193640.XML
[2026-03-14 19:36:42] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193640.XML
[2026-03-14 19:36:42] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193641.XML
[2026-03-14 19:36:42] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193641.XML for user: 68f1466aed072ad4a
[2026-03-14 19:36:42] [INFO] File size: 5506 bytes
[2026-03-14 19:36:42] [INFO] Created FTPFiles record with ID: 69b5b8ca867cabf9c
[2026-03-14 19:36:42] [INFO] About to extract fields from XML. File size: 5506 bytes
[2026-03-14 19:36:42] [INFO] Number of mappings: 28
[2026-03-14 19:36:42] [INFO] Starting XML parsing. Content length: 5506
[2026-03-14 19:36:42] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 19:36:42] [INFO] Processing 28 field mappings
[2026-03-14 19:36:42] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 19:36:42] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 19:36:42] [INFO]   -> Found value: PCFD
[2026-03-14 19:36:42] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-14 19:36:42] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 19:36:42] [INFO]   -> Found value: 2026000689
[2026-03-14 19:36:42] [INFO]   -> Set field 'incidentInternalId' = "2026000689"
[2026-03-14 19:36:42] [INFO]   -> Set field 'dispatchRunNumber' = "2026000689"
[2026-03-14 19:36:42] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 19:36:42] [INFO]   -> Found value: FIRE ALARM
[2026-03-14 19:36:42] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-14 19:36:42] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 19:36:42] [INFO]   -> Found value: 7618
[2026-03-14 19:36:42] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7618
[2026-03-14 19:36:42] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 19:36:42] [INFO]   -> Found value: TN
[2026-03-14 19:36:42] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 19:36:42] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 19:36:42] [INFO]   -> Found value: 38544
[2026-03-14 19:36:42] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-14 19:36:42] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 19:36:42] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:42] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 19:36:42] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:42] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 19:36:42] [INFO]   -> Found value: 36.11784
[2026-03-14 19:36:42] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1178400000000010550138540565967559814453125
[2026-03-14 19:36:42] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 19:36:42] [INFO]   -> Found value: -85.63638
[2026-03-14 19:36:42] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.636380000000002610249794088304042816162109375
[2026-03-14 19:36:42] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 19:36:42] [INFO]   -> Found value: 2026-03-14 14:34:17
[2026-03-14 19:36:42] [INFO]   -> Set field 'alarm' = "2026-03-14 14:34:17"
[2026-03-14 19:36:42] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 19:36:42] [INFO]   -> Found value: 2026-03-14 14:35:52
[2026-03-14 19:36:42] [INFO]   -> Set field 'dispatched' = "2026-03-14 14:35:52"
[2026-03-14 19:36:42] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 19:36:42] [INFO]   -> Found value: 2026-03-14 14:36:34
[2026-03-14 19:36:42] [INFO]   -> Set field 'enroute' = "2026-03-14 14:36:34"
[2026-03-14 19:36:42] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 19:36:42] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:42] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 19:36:42] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:42] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 19:36:42] [INFO]   -> Found value: ANDKOO RD
[2026-03-14 19:36:42] [INFO]   -> Set field 'incidentLocationCross' = "ANDKOO RD"
[2026-03-14 19:36:42] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 19:36:42] [INFO]   -> Found value: EN11
[2026-03-14 19:36:42] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-14 19:36:42] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 19:36:42] [INFO]   -> Found value: 2026-03-14 14:36:34
[2026-03-14 19:36:42] [INFO]   -> Set field 'timedispatch' = "2026-03-14 14:36:34"
[2026-03-14 19:36:42] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 19:36:42] [INFO]   -> Found value: 2026-03-14 14:36:34
[2026-03-14 19:36:42] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-14 14:36:34"
[2026-03-14 19:36:42] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 19:36:42] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:42] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 19:36:42] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:42] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 19:36:42] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:42] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 19:36:42] [INFO]   -> Found value: 20260027952
[2026-03-14 19:36:42] [INFO]   -> Set field 'policeReportNumber' = "20260027952"
[2026-03-14 19:36:42] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 19:36:42] [INFO]   -> Found value: 931-858-4919  [03/14/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOK...
[2026-03-14 19:36:42] [INFO]   -> Set field 'dispatchNotes' = "931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]"
[2026-03-14 19:36:42] [INFO]   -> Set field 'cADLog' = "931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]"
[2026-03-14 19:36:42] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 19:36:42] [INFO]   -> Found value: BAXTER
[2026-03-14 19:36:42] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-14 19:36:42] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 19:36:42] [INFO]   -> Found value: LILLYS CHAPEL
[2026-03-14 19:36:42] [INFO]   -> Set field 'streetName' = "LILLYS CHAPEL"
[2026-03-14 19:36:42] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 19:36:42] [INFO]   -> Found value: RD
[2026-03-14 19:36:42] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-14 19:36:42] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 19:36:42] [INFO]   -> Found value: 7618 LILLYS CHAPEL RD
[2026-03-14 19:36:42] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7618 LILLYS CHAPEL RD"
[2026-03-14 19:36:42] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-14 19:36:42] [INFO] Concatenating street name and type
[2026-03-14 19:36:42] [INFO]   -> Combined street name: LILLYS CHAPEL RD
[2026-03-14 19:36:42] [INFO] Built locationCoordinates from lat/lng: 36.11784,-85.63638
[2026-03-14 19:36:42] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000689","dispatchRunNumber":"2026000689","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":7618,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.1178400000000010550138540565967559814453125,"nERISIncidentLongitude":-85.636380000000002610249794088304042816162109375,"alarm":"2026-03-14 14:34:17","dispatched":"2026-03-14 14:35:52","enroute":"2026-03-14 14:36:34","incidentLocationCross":"ANDKOO RD","cADVehicleID":"EN11","timedispatch":"2026-03-14 14:36:34","timeenroutetoscene":"2026-03-14 14:36:34","policeReportNumber":"20260027952","dispatchNotes":"931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]","cADLog":"931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]","incidentLocationCity":"BAXTER","streetName":"LILLYS CHAPEL RD","incidentAddressTextVersionStreet":"7618 LILLYS CHAPEL RD","locationCoordinates":"36.11784,-85.63638"}
[2026-03-14 19:36:42] [INFO] Number of extracted fields: 23
[2026-03-14 19:36:42] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-14 19:36:42] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-14 19:36:42] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-14 19:36:42] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 19:36:42] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 19:36:42] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 19:36:42] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 19:36:42] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 19:36:43] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-14 19:36:43] [INFO] Found existing Dispatch with cADNumber '2026000689', ID: 69b5b89d2818e9915 - will update instead of create
[2026-03-14 19:36:43] [INFO] Updated existing Dispatches record with ID: 69b5b89d2818e9915
[2026-03-14 19:36:43] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193641.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027952_20260314_193641.XML
[2026-03-14 19:36:43] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193641.XML
[2026-03-14 19:36:46] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193646.XML
[2026-03-14 19:36:46] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193646.XML for user: 68f1466aed072ad4a
[2026-03-14 19:36:46] [INFO] File size: 5506 bytes
[2026-03-14 19:36:46] [INFO] Created FTPFiles record with ID: 69b5b8ceb582a0d53
[2026-03-14 19:36:46] [INFO] About to extract fields from XML. File size: 5506 bytes
[2026-03-14 19:36:46] [INFO] Number of mappings: 28
[2026-03-14 19:36:46] [INFO] Starting XML parsing. Content length: 5506
[2026-03-14 19:36:46] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-14 19:36:46] [INFO] Processing 28 field mappings
[2026-03-14 19:36:46] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-14 19:36:46] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-14 19:36:46] [INFO]   -> Found value: PCFD
[2026-03-14 19:36:46] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-14 19:36:46] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-14 19:36:46] [INFO]   -> Found value: 2026000689
[2026-03-14 19:36:46] [INFO]   -> Set field 'incidentInternalId' = "2026000689"
[2026-03-14 19:36:46] [INFO]   -> Set field 'dispatchRunNumber' = "2026000689"
[2026-03-14 19:36:46] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-14 19:36:46] [INFO]   -> Found value: FIRE ALARM
[2026-03-14 19:36:46] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE ALARM"
[2026-03-14 19:36:46] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-14 19:36:46] [INFO]   -> Found value: 7618
[2026-03-14 19:36:46] [INFO]   -> Set field 'incidentLocationStreetNumber' = 7618
[2026-03-14 19:36:46] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-14 19:36:46] [INFO]   -> Found value: TN
[2026-03-14 19:36:46] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-14 19:36:46] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-14 19:36:46] [INFO]   -> Found value: 38544
[2026-03-14 19:36:46] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-14 19:36:46] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-14 19:36:46] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:46] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-14 19:36:46] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:46] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-14 19:36:46] [INFO]   -> Found value: 36.11784
[2026-03-14 19:36:46] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1178400000000010550138540565967559814453125
[2026-03-14 19:36:46] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-14 19:36:46] [INFO]   -> Found value: -85.63638
[2026-03-14 19:36:46] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.636380000000002610249794088304042816162109375
[2026-03-14 19:36:46] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-14 19:36:46] [INFO]   -> Found value: 2026-03-14 14:34:17
[2026-03-14 19:36:46] [INFO]   -> Set field 'alarm' = "2026-03-14 14:34:17"
[2026-03-14 19:36:46] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-14 19:36:46] [INFO]   -> Found value: 2026-03-14 14:35:52
[2026-03-14 19:36:46] [INFO]   -> Set field 'dispatched' = "2026-03-14 14:35:52"
[2026-03-14 19:36:46] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-14 19:36:46] [INFO]   -> Found value: 2026-03-14 14:36:34
[2026-03-14 19:36:46] [INFO]   -> Set field 'enroute' = "2026-03-14 14:36:34"
[2026-03-14 19:36:46] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-14 19:36:46] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:46] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-14 19:36:46] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:46] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-14 19:36:46] [INFO]   -> Found value: ANDKOO RD
[2026-03-14 19:36:46] [INFO]   -> Set field 'incidentLocationCross' = "ANDKOO RD"
[2026-03-14 19:36:46] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-14 19:36:46] [INFO]   -> Found value: EN11
[2026-03-14 19:36:46] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-14 19:36:46] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-14 19:36:46] [INFO]   -> Found value: 2026-03-14 14:36:34
[2026-03-14 19:36:46] [INFO]   -> Set field 'timedispatch' = "2026-03-14 14:36:34"
[2026-03-14 19:36:46] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-14 19:36:46] [INFO]   -> Found value: 2026-03-14 14:36:34
[2026-03-14 19:36:46] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-14 14:36:34"
[2026-03-14 19:36:46] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-14 19:36:46] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:46] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-14 19:36:46] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:46] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-14 19:36:46] [INFO]   -> No value found (null or empty)
[2026-03-14 19:36:46] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-14 19:36:46] [INFO]   -> Found value: 20260027952
[2026-03-14 19:36:46] [INFO]   -> Set field 'policeReportNumber' = "20260027952"
[2026-03-14 19:36:46] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-14 19:36:46] [INFO]   -> Found value: 931-858-4919  [03/14/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOK...
[2026-03-14 19:36:46] [INFO]   -> Set field 'dispatchNotes' = "931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]"
[2026-03-14 19:36:46] [INFO]   -> Set field 'cADLog' = "931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]"
[2026-03-14 19:36:46] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-14 19:36:46] [INFO]   -> Found value: BAXTER
[2026-03-14 19:36:46] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-14 19:36:46] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-14 19:36:46] [INFO]   -> Found value: LILLYS CHAPEL
[2026-03-14 19:36:46] [INFO]   -> Set field 'streetName' = "LILLYS CHAPEL"
[2026-03-14 19:36:46] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-14 19:36:46] [INFO]   -> Found value: RD
[2026-03-14 19:36:46] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-14 19:36:46] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-14 19:36:46] [INFO]   -> Found value: 7618 LILLYS CHAPEL RD
[2026-03-14 19:36:46] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "7618 LILLYS CHAPEL RD"
[2026-03-14 19:36:46] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-14 19:36:46] [INFO] Concatenating street name and type
[2026-03-14 19:36:46] [INFO]   -> Combined street name: LILLYS CHAPEL RD
[2026-03-14 19:36:46] [INFO] Built locationCoordinates from lat/lng: 36.11784,-85.63638
[2026-03-14 19:36:46] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000689","dispatchRunNumber":"2026000689","incidentTypeValue1":"FIRE ALARM","incidentLocationStreetNumber":7618,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.1178400000000010550138540565967559814453125,"nERISIncidentLongitude":-85.636380000000002610249794088304042816162109375,"alarm":"2026-03-14 14:34:17","dispatched":"2026-03-14 14:35:52","enroute":"2026-03-14 14:36:34","incidentLocationCross":"ANDKOO RD","cADVehicleID":"EN11","timedispatch":"2026-03-14 14:36:34","timeenroutetoscene":"2026-03-14 14:36:34","policeReportNumber":"20260027952","dispatchNotes":"931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]","cADLog":"931-858-4919  [03\/14\/26 14:35:04 MCLAYBURN2] FIRE ALARM  SMOKE DETECTOR ZONE 014 CRAIG AND CAROL KOKKELER  [03\/14\/26 14:34:51 MCLAYBURN2]]","incidentLocationCity":"BAXTER","streetName":"LILLYS CHAPEL RD","incidentAddressTextVersionStreet":"7618 LILLYS CHAPEL RD","locationCoordinates":"36.11784,-85.63638"}
[2026-03-14 19:36:46] [INFO] Number of extracted fields: 23
[2026-03-14 19:36:46] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-14 19:36:46] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-14 19:36:46] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-14 19:36:46] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-14 19:36:46] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-14 19:36:47] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-14 19:36:47] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-14 19:36:47] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-14 19:36:47] [INFO] Found existing IncidentTypeMapping with ID: 69398a845c349ab26
[2026-03-14 19:36:47] [INFO] Found existing Dispatch with cADNumber '2026000689', ID: 69b5b89d2818e9915 - will update instead of create
[2026-03-14 19:36:47] [INFO] Updated existing Dispatches record with ID: 69b5b89d2818e9915
[2026-03-14 19:36:47] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193646.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-14/PCFD_20260027952_20260314_193646.XML
[2026-03-14 19:36:47] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260027952_20260314_193646.XML
[2026-03-14 21:28:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-07753.xml
[2026-03-14 21:28:52] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-07753.xml for user: 68d56363ec1209189
[2026-03-14 21:28:52] [INFO] File size: 2561 bytes
[2026-03-14 21:28:53] [INFO] Created FTPFiles record with ID: 69b5d31511c3811fd
[2026-03-14 21:28:53] [INFO] About to extract fields from XML. File size: 2561 bytes
[2026-03-14 21:28:53] [INFO] Number of mappings: 21
[2026-03-14 21:28:53] [INFO] Starting XML parsing. Content length: 2561
[2026-03-14 21:28:53] [INFO] XML parsed successfully. Root element: Incident
[2026-03-14 21:28:53] [INFO] Processing 21 field mappings
[2026-03-14 21:28:53] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-14 21:28:53] [INFO]   -> Found value: 26-07753
[2026-03-14 21:28:53] [INFO]   -> Set field 'dispatchRunNumber' = "26-07753"
[2026-03-14 21:28:53] [INFO]   -> Set field 'cADNumber' = "26-07753"
[2026-03-14 21:28:53] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-14 21:28:53] [INFO]   -> No value found (null or empty)
[2026-03-14 21:28:53] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-14 21:28:53] [INFO]   -> Found value: EAST LN
[2026-03-14 21:28:53] [INFO]   -> Set field 'streetName' = "EAST LN"
[2026-03-14 21:28:53] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-14 21:28:53] [INFO]   -> No value found (null or empty)
[2026-03-14 21:28:53] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-14 21:28:53] [INFO]   -> Found value: MORLEY
[2026-03-14 21:28:53] [INFO]   -> Set field 'incidentLocationCity' = "MORLEY"
[2026-03-14 21:28:53] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-14 21:28:53] [INFO]   -> No value found (null or empty)
[2026-03-14 21:28:53] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-14 21:28:53] [INFO]   -> No value found (null or empty)
[2026-03-14 21:28:53] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-14 21:28:53] [INFO]   -> No value found (null or empty)
[2026-03-14 21:28:53] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-14 21:28:53] [INFO]   -> Found value: 0
[2026-03-14 21:28:53] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-14 21:28:53] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-14 21:28:53] [INFO]   -> Found value: 0
[2026-03-14 21:28:53] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-14 21:28:53] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-14 21:28:53] [INFO]   -> Found value: FIRE-GRASS/BRUSH/TREES
[2026-03-14 21:28:53] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-GRASS\/BRUSH\/TREES"
[2026-03-14 21:28:53] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-14 21:28:53] [INFO]   -> Found value: 03-14-2026 16:08:25|FIRE IN A FIELD GOING TOWARD PONDEROSA RIGHT PAST THE MANSION ON THE WAY TO HAYW...
[2026-03-14 21:28:53] [INFO]   -> Set field 'dispatchNotes' = "03-14-2026 16:08:25|FIRE IN A FIELD GOING TOWARD PONDEROSA RIGHT PAST THE MANSION ON THE WAY TO HAYWOOD CITY\nCOUNTY HIGHWAY 430\nACROSS FROM BUILDING SUPPLY\nNO STRUCTURES IN DANGER ONLY THE FIELD\nFIELD IS BURNING\nNO ONE AROUND\nLITTLE RIGHT NOW BUT GETTING BIGGER\n 03-14-2026 16:14:33|1771 EN ROUTE X1 03-14-2026 16:16:15|1751 EN ROUTE X2 03-14-2026 16:21:43|1771 IN THE AREA 03-14-2026 16:25:55|1771 ADVISES NOTHING LOCATED AT EAST AND 430.  TRAVELING DOWN TO 61 TO TRY TO LOCATE 03-14-2026 16:28:01|NOTHING LOCATED BETWEEN EAST LN AND US HWY 61 03-14-2026 16:28:12|LIGHT SMOKE UP AROUND MORLEY Y AREA, WILL BE INVESTIGATING 03-14-2026 16:28:39|BIQ NOTHING LOCATED"
[2026-03-14 21:28:53] [INFO]   -> Set field 'cADLog' = "03-14-2026 16:08:25|FIRE IN A FIELD GOING TOWARD PONDEROSA RIGHT PAST THE MANSION ON THE WAY TO HAYWOOD CITY\nCOUNTY HIGHWAY 430\nACROSS FROM BUILDING SUPPLY\nNO STRUCTURES IN DANGER ONLY THE FIELD\nFIELD IS BURNING\nNO ONE AROUND\nLITTLE RIGHT NOW BUT GETTING BIGGER\n 03-14-2026 16:14:33|1771 EN ROUTE X1 03-14-2026 16:16:15|1751 EN ROUTE X2 03-14-2026 16:21:43|1771 IN THE AREA 03-14-2026 16:25:55|1771 ADVISES NOTHING LOCATED AT EAST AND 430.  TRAVELING DOWN TO 61 TO TRY TO LOCATE 03-14-2026 16:28:01|NOTHING LOCATED BETWEEN EAST LN AND US HWY 61 03-14-2026 16:28:12|LIGHT SMOKE UP AROUND MORLEY Y AREA, WILL BE INVESTIGATING 03-14-2026 16:28:39|BIQ NOTHING LOCATED"
[2026-03-14 21:28:53] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-14 21:28:53] [INFO]   -> Found value: 03-14-2026T16:12:00
[2026-03-14 21:28:53] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T16:12:00
[2026-03-14 21:28:53] [ERROR] Error formatting datetime '2026-14-03T16:12:00': Failed to parse time string (2026-14-03T16:12:00) at position 6 (4): Unexpected character
[2026-03-14 21:28:53] [INFO]   -> Set field 'alarm' = null
[2026-03-14 21:28:53] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T16:12:00
[2026-03-14 21:28:53] [ERROR] Error formatting datetime '2026-14-03T16:12:00': Failed to parse time string (2026-14-03T16:12:00) at position 6 (4): Unexpected character
[2026-03-14 21:28:53] [INFO]   -> Set field 'dispatched' = null
[2026-03-14 21:28:53] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-14 21:28:53] [INFO]   -> Found value: 03-14-2026T16:21:55
[2026-03-14 21:28:53] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T16:21:55
[2026-03-14 21:28:53] [ERROR] Error formatting datetime '2026-14-03T16:21:55': Failed to parse time string (2026-14-03T16:21:55) at position 6 (4): Unexpected character
[2026-03-14 21:28:53] [INFO]   -> Set field 'onScene' = null
[2026-03-14 21:28:53] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-14 21:28:53] [INFO]   -> Found value: 03-14-2026T16:28:40
[2026-03-14 21:28:53] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T16:28:40
[2026-03-14 21:28:53] [ERROR] Error formatting datetime '2026-14-03T16:28:40': Failed to parse time string (2026-14-03T16:28:40) at position 6 (4): Unexpected character
[2026-03-14 21:28:53] [INFO]   -> Set field 'cleared' = null
[2026-03-14 21:28:53] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T16:28:40
[2026-03-14 21:28:53] [ERROR] Error formatting datetime '2026-14-03T16:28:40': Failed to parse time string (2026-14-03T16:28:40) at position 6 (4): Unexpected character
[2026-03-14 21:28:53] [INFO]   -> Set field 'inService' = null
[2026-03-14 21:28:53] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-14 21:28:53] [INFO]   -> Found value: 1765
[2026-03-14 21:28:53] [INFO]   -> Set field 'cADVehicleID' = 1765
[2026-03-14 21:28:53] [INFO]   -> Set field 'name' = "1765"
[2026-03-14 21:28:53] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-14 21:28:53] [INFO]   -> Found value: 03-14-2026T16:21:32
[2026-03-14 21:28:53] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T16:21:32
[2026-03-14 21:28:53] [ERROR] Error formatting datetime '2026-14-03T16:21:32': Failed to parse time string (2026-14-03T16:21:32) at position 6 (4): Unexpected character
[2026-03-14 21:28:53] [INFO]   -> Set field 'timeenroutetoscene' = null
[2026-03-14 21:28:53] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-14 21:28:53] [INFO]   -> No value found (null or empty)
[2026-03-14 21:28:53] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-14 21:28:53] [INFO]   -> Found value: 03-14-2026T16:28:40
[2026-03-14 21:28:53] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T16:28:40
[2026-03-14 21:28:53] [ERROR] Error formatting datetime '2026-14-03T16:28:40': Failed to parse time string (2026-14-03T16:28:40) at position 6 (4): Unexpected character
[2026-03-14 21:28:53] [INFO]   -> Set field 'timeunitclear' = null
[2026-03-14 21:28:53] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-14 21:28:53] [INFO]   -> Found value: 03-14-2026T16:21:25
[2026-03-14 21:28:53] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T16:21:25
[2026-03-14 21:28:53] [ERROR] Error formatting datetime '2026-14-03T16:21:25': Failed to parse time string (2026-14-03T16:21:25) at position 6 (4): Unexpected character
[2026-03-14 21:28:53] [INFO]   -> Set field 'timedispatch' = null
[2026-03-14 21:28:53] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-14 21:28:53] [INFO]   -> Found value: SCRFD
[2026-03-14 21:28:53] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2026-03-14 21:28:53] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-03-14 21:28:53] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-14 21:28:53] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-07753","cADNumber":"26-07753","streetName":"EAST LN","incidentLocationCity":"MORLEY","nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-GRASS\/BRUSH\/TREES","dispatchNotes":"03-14-2026 16:08:25|FIRE IN A FIELD GOING TOWARD PONDEROSA RIGHT PAST THE MANSION ON THE WAY TO HAYWOOD CITY\nCOUNTY HIGHWAY 430\nACROSS FROM BUILDING SUPPLY\nNO STRUCTURES IN DANGER ONLY THE FIELD\nFIELD IS BURNING\nNO ONE AROUND\nLITTLE RIGHT NOW BUT GETTING BIGGER\n 03-14-2026 16:14:33|1771 EN ROUTE X1 03-14-2026 16:16:15|1751 EN ROUTE X2 03-14-2026 16:21:43|1771 IN THE AREA 03-14-2026 16:25:55|1771 ADVISES NOTHING LOCATED AT EAST AND 430.  TRAVELING DOWN TO 61 TO TRY TO LOCATE 03-14-2026 16:28:01|NOTHING LOCATED BETWEEN EAST LN AND US HWY 61 03-14-2026 16:28:12|LIGHT SMOKE UP AROUND MORLEY Y AREA, WILL BE INVESTIGATING 03-14-2026 16:28:39|BIQ NOTHING LOCATED","cADLog":"03-14-2026 16:08:25|FIRE IN A FIELD GOING TOWARD PONDEROSA RIGHT PAST THE MANSION ON THE WAY TO HAYWOOD CITY\nCOUNTY HIGHWAY 430\nACROSS FROM BUILDING SUPPLY\nNO STRUCTURES IN DANGER ONLY THE FIELD\nFIELD IS BURNING\nNO ONE AROUND\nLITTLE RIGHT NOW BUT GETTING BIGGER\n 03-14-2026 16:14:33|1771 EN ROUTE X1 03-14-2026 16:16:15|1751 EN ROUTE X2 03-14-2026 16:21:43|1771 IN THE AREA 03-14-2026 16:25:55|1771 ADVISES NOTHING LOCATED AT EAST AND 430.  TRAVELING DOWN TO 61 TO TRY TO LOCATE 03-14-2026 16:28:01|NOTHING LOCATED BETWEEN EAST LN AND US HWY 61 03-14-2026 16:28:12|LIGHT SMOKE UP AROUND MORLEY Y AREA, WILL BE INVESTIGATING 03-14-2026 16:28:39|BIQ NOTHING LOCATED","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":1765,"name":"1765","timeenroutetoscene":null,"timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2026-03-14 21:28:53] [INFO] Number of extracted fields: 21
[2026-03-14 21:28:53] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2026-03-14 21:28:53] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SCRFD', Parsed IDs = ["SCRFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-03-14 21:28:53] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2026-03-14 21:28:53] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (index 0) within mailbox's assigned agencies
[2026-03-14 21:28:53] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) at INDEX 0 based on AgencyCode 'SCRFD'
[2026-03-14 21:28:53] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2026-03-14 21:28:53] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"], matchedAgencyIndex = 0
[2026-03-14 21:28:53] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2026-03-14 21:28:53] [INFO] Found existing IncidentTypeMapping with ID: 6938ba16ac72f649f
[2026-03-14 21:29:05] [INFO] Created new Dispatches record with ID: 69b5d315ef0b6da92
[2026-03-14 21:29:05] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-07753.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-14/SCRFD_26-07753.xml
[2026-03-14 21:29:05] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-07753.xml
[2026-03-14 22:00:49] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:00:49] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml for user: 69320e6a9e3e5ef71
[2026-03-14 22:00:49] [INFO] File size: 7438 bytes
[2026-03-14 22:00:49] [INFO] Created FTPFiles record with ID: 69b5da91c520f48f0
[2026-03-14 22:00:49] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-14 22:00:49] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-14
[2026-03-14 22:00:49] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-14/cfs_2026-017003.xml
[2026-03-14 22:00:49] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:00:50] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:00:50] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml for user: 69320e6a9e3e5ef71
[2026-03-14 22:00:50] [INFO] File size: 7438 bytes
[2026-03-14 22:00:50] [INFO] Created FTPFiles record with ID: 69b5da925e92c4147
[2026-03-14 22:00:50] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-14 22:00:50] [INFO] File already exists in archive, using unique name: cfs_2026-017003_1773525650.xml
[2026-03-14 22:00:50] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-14/cfs_2026-017003_1773525650.xml
[2026-03-14 22:00:50] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:01:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:01:01] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml for user: 69320e6a9e3e5ef71
[2026-03-14 22:01:01] [INFO] File size: 7436 bytes
[2026-03-14 22:01:01] [INFO] Created FTPFiles record with ID: 69b5da9d9d486cf5a
[2026-03-14 22:01:01] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-14 22:01:01] [INFO] File already exists in archive, using unique name: cfs_2026-017003_1773525661.xml
[2026-03-14 22:01:01] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-14/cfs_2026-017003_1773525661.xml
[2026-03-14 22:01:01] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:01:13] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:01:13] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml for user: 69320e6a9e3e5ef71
[2026-03-14 22:01:13] [INFO] File size: 8385 bytes
[2026-03-14 22:01:14] [INFO] Created FTPFiles record with ID: 69b5daa9ee15fabf7
[2026-03-14 22:01:14] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-14 22:01:14] [INFO] File already exists in archive, using unique name: cfs_2026-017003_1773525674.xml
[2026-03-14 22:01:14] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-14/cfs_2026-017003_1773525674.xml
[2026-03-14 22:01:14] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:01:14] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:01:14] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml for user: 69320e6a9e3e5ef71
[2026-03-14 22:01:14] [INFO] File size: 8385 bytes
[2026-03-14 22:01:15] [INFO] Created FTPFiles record with ID: 69b5daab1b395e337
[2026-03-14 22:01:15] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-14 22:01:15] [INFO] File already exists in archive, using unique name: cfs_2026-017003_1773525675.xml
[2026-03-14 22:01:15] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-14/cfs_2026-017003_1773525675.xml
[2026-03-14 22:01:15] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:01:31] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:01:31] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml for user: 69320e6a9e3e5ef71
[2026-03-14 22:01:31] [INFO] File size: 9371 bytes
[2026-03-14 22:01:31] [INFO] Created FTPFiles record with ID: 69b5dabb7a426c33e
[2026-03-14 22:01:31] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-14 22:01:31] [INFO] File already exists in archive, using unique name: cfs_2026-017003_1773525691.xml
[2026-03-14 22:01:31] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-14/cfs_2026-017003_1773525691.xml
[2026-03-14 22:01:31] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:01:35] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:01:35] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml for user: 69320e6a9e3e5ef71
[2026-03-14 22:01:35] [INFO] File size: 10325 bytes
[2026-03-14 22:01:35] [INFO] Created FTPFiles record with ID: 69b5dabf5e8774d32
[2026-03-14 22:01:35] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-14 22:01:35] [INFO] File already exists in archive, using unique name: cfs_2026-017003_1773525695.xml
[2026-03-14 22:01:35] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-14/cfs_2026-017003_1773525695.xml
[2026-03-14 22:01:35] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:01:40] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:01:40] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml for user: 69320e6a9e3e5ef71
[2026-03-14 22:01:40] [INFO] File size: 11511 bytes
[2026-03-14 22:01:40] [INFO] Created FTPFiles record with ID: 69b5dac48a3e868d9
[2026-03-14 22:01:40] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-14 22:01:40] [INFO] File already exists in archive, using unique name: cfs_2026-017003_1773525700.xml
[2026-03-14 22:01:40] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-14/cfs_2026-017003_1773525700.xml
[2026-03-14 22:01:40] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:02:23] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:02:23] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml for user: 69320e6a9e3e5ef71
[2026-03-14 22:02:23] [INFO] File size: 13749 bytes
[2026-03-14 22:02:23] [INFO] Created FTPFiles record with ID: 69b5daefbf7967162
[2026-03-14 22:02:23] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-14 22:02:23] [INFO] File already exists in archive, using unique name: cfs_2026-017003_1773525743.xml
[2026-03-14 22:02:23] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-14/cfs_2026-017003_1773525743.xml
[2026-03-14 22:02:23] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:15:15] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:15:15] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml for user: 69320e6a9e3e5ef71
[2026-03-14 22:15:15] [INFO] File size: 14745 bytes
[2026-03-14 22:15:15] [INFO] Created FTPFiles record with ID: 69b5ddf3705724c19
[2026-03-14 22:15:15] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-14 22:15:15] [INFO] File already exists in archive, using unique name: cfs_2026-017003_1773526515.xml
[2026-03-14 22:15:15] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-14/cfs_2026-017003_1773526515.xml
[2026-03-14 22:15:15] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:15:23] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 22:15:23] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml for user: 69320e6a9e3e5ef71
[2026-03-14 22:15:23] [INFO] File size: 16358 bytes
[2026-03-14 22:15:23] [INFO] Created FTPFiles record with ID: 69b5ddfbb7f669620
[2026-03-14 22:15:23] [WARNING] Warning: Failed to decode parsing rules JSON for mailbox ID: 69320e6a9e3e5ef71
[2026-03-14 22:15:23] [INFO] File already exists in archive, using unique name: cfs_2026-017003_1773526523.xml
[2026-03-14 22:15:23] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/archive/2026-03-14/cfs_2026-017003_1773526523.xml
[2026-03-14 22:15:23] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/69320e6a9e3e5ef71/cfs_2026-017003.xml
[2026-03-14 23:09:14] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-07761.xml
[2026-03-14 23:09:14] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-07761.xml for user: 68d56363ec1209189
[2026-03-14 23:09:14] [INFO] File size: 1493 bytes
[2026-03-14 23:09:14] [INFO] Created FTPFiles record with ID: 69b5ea9ac7a5d8726
[2026-03-14 23:09:14] [INFO] About to extract fields from XML. File size: 1493 bytes
[2026-03-14 23:09:14] [INFO] Number of mappings: 21
[2026-03-14 23:09:14] [INFO] Starting XML parsing. Content length: 1493
[2026-03-14 23:09:14] [INFO] XML parsed successfully. Root element: Incident
[2026-03-14 23:09:14] [INFO] Processing 21 field mappings
[2026-03-14 23:09:14] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-14 23:09:14] [INFO]   -> Found value: 26-07761
[2026-03-14 23:09:14] [INFO]   -> Set field 'dispatchRunNumber' = "26-07761"
[2026-03-14 23:09:14] [INFO]   -> Set field 'cADNumber' = "26-07761"
[2026-03-14 23:09:14] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-14 23:09:14] [INFO]   -> Found value: 1008
[2026-03-14 23:09:14] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1008
[2026-03-14 23:09:14] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-14 23:09:14] [INFO]   -> Found value: N MAIN ST
[2026-03-14 23:09:14] [INFO]   -> Set field 'streetName' = "N MAIN ST"
[2026-03-14 23:09:14] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-14 23:09:14] [INFO]   -> No value found (null or empty)
[2026-03-14 23:09:14] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-14 23:09:14] [INFO]   -> Found value: SIKESTON
[2026-03-14 23:09:14] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-03-14 23:09:14] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-14 23:09:14] [INFO]   -> Found value: MDMC
[2026-03-14 23:09:14] [INFO]   -> Set field 'businessName' = "MDMC"
[2026-03-14 23:09:14] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-14 23:09:14] [INFO]   -> Found value: MO
[2026-03-14 23:09:14] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-03-14 23:09:14] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-14 23:09:14] [INFO]   -> Found value: 63801
[2026-03-14 23:09:14] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-03-14 23:09:14] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-14 23:09:14] [INFO]   -> Found value: 0
[2026-03-14 23:09:14] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-14 23:09:14] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-14 23:09:14] [INFO]   -> Found value: 0
[2026-03-14 23:09:14] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-14 23:09:14] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-14 23:09:14] [INFO]   -> Found value: FIRE-AIRCRAFT STANDBY
[2026-03-14 23:09:14] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-AIRCRAFT STANDBY"
[2026-03-14 23:09:14] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-14 23:09:14] [INFO]   -> Found value: 03-14-2026 17:34:47|AIR EVAC TO PICK UP PATIENT AT MDMC
ETA 10-15 MINUTES 03-14-2026 17:48:00|1515 F...
[2026-03-14 23:09:14] [INFO]   -> Set field 'dispatchNotes' = "03-14-2026 17:34:47|AIR EVAC TO PICK UP PATIENT AT MDMC\nETA 10-15 MINUTES 03-14-2026 17:48:00|1515 FLIGHT CREW LOADED EN ROUTE TO THE ER 03-14-2026 18:08:17|1515 ARRIVED AT HELI PAD FLIGHT CREW DEPARTED"
[2026-03-14 23:09:14] [INFO]   -> Set field 'cADLog' = "03-14-2026 17:34:47|AIR EVAC TO PICK UP PATIENT AT MDMC\nETA 10-15 MINUTES 03-14-2026 17:48:00|1515 FLIGHT CREW LOADED EN ROUTE TO THE ER 03-14-2026 18:08:17|1515 ARRIVED AT HELI PAD FLIGHT CREW DEPARTED"
[2026-03-14 23:09:14] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-14 23:09:14] [INFO]   -> Found value: 03-14-2026T17:37:15
[2026-03-14 23:09:14] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T17:37:15
[2026-03-14 23:09:14] [ERROR] Error formatting datetime '2026-14-03T17:37:15': Failed to parse time string (2026-14-03T17:37:15) at position 6 (4): Unexpected character
[2026-03-14 23:09:14] [INFO]   -> Set field 'alarm' = null
[2026-03-14 23:09:14] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T17:37:15
[2026-03-14 23:09:14] [ERROR] Error formatting datetime '2026-14-03T17:37:15': Failed to parse time string (2026-14-03T17:37:15) at position 6 (4): Unexpected character
[2026-03-14 23:09:14] [INFO]   -> Set field 'dispatched' = null
[2026-03-14 23:09:14] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-14 23:09:14] [INFO]   -> No value found (null or empty)
[2026-03-14 23:09:14] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-14 23:09:14] [INFO]   -> No value found (null or empty)
[2026-03-14 23:09:14] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-14 23:09:14] [INFO]   -> Found value: SIK STILL
[2026-03-14 23:09:14] [INFO]   -> Set field 'cADVehicleID' = "SIK STILL"
[2026-03-14 23:09:14] [INFO]   -> Set field 'name' = "SIK STILL"
[2026-03-14 23:09:14] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-14 23:09:14] [INFO]   -> No value found (null or empty)
[2026-03-14 23:09:14] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-14 23:09:14] [INFO]   -> No value found (null or empty)
[2026-03-14 23:09:14] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-14 23:09:14] [INFO]   -> Found value: 03-14-2026T18:08:28
[2026-03-14 23:09:14] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T18:08:28
[2026-03-14 23:09:14] [ERROR] Error formatting datetime '2026-14-03T18:08:28': Failed to parse time string (2026-14-03T18:08:28) at position 6 (4): Unexpected character
[2026-03-14 23:09:14] [INFO]   -> Set field 'timeunitclear' = null
[2026-03-14 23:09:14] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-14 23:09:14] [INFO]   -> Found value: 03-14-2026T17:37:17
[2026-03-14 23:09:14] [INFO] Reformatted DD-MM-YYYY date '03-14-2026' (day=03, month=14) to ISO: 2026-14-03T17:37:17
[2026-03-14 23:09:14] [ERROR] Error formatting datetime '2026-14-03T17:37:17': Failed to parse time string (2026-14-03T17:37:17) at position 6 (4): Unexpected character
[2026-03-14 23:09:14] [INFO]   -> Set field 'timedispatch' = null
[2026-03-14 23:09:14] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-14 23:09:14] [INFO]   -> Found value: SDPSFD
[2026-03-14 23:09:14] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-03-14 23:09:14] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-03-14 23:09:14] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-14 23:09:14] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-07761","cADNumber":"26-07761","incidentLocationStreetNumber":1008,"streetName":"N MAIN ST","incidentLocationCity":"SIKESTON","businessName":"MDMC","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-AIRCRAFT STANDBY","dispatchNotes":"03-14-2026 17:34:47|AIR EVAC TO PICK UP PATIENT AT MDMC\nETA 10-15 MINUTES 03-14-2026 17:48:00|1515 FLIGHT CREW LOADED EN ROUTE TO THE ER 03-14-2026 18:08:17|1515 ARRIVED AT HELI PAD FLIGHT CREW DEPARTED","cADLog":"03-14-2026 17:34:47|AIR EVAC TO PICK UP PATIENT AT MDMC\nETA 10-15 MINUTES 03-14-2026 17:48:00|1515 FLIGHT CREW LOADED EN ROUTE TO THE ER 03-14-2026 18:08:17|1515 ARRIVED AT HELI PAD FLIGHT CREW DEPARTED","alarm":null,"dispatched":null,"cADVehicleID":"SIK STILL","name":"SIK STILL","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-03-14 23:09:14] [INFO] Number of extracted fields: 21
[2026-03-14 23:09:14] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-03-14 23:09:14] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-03-14 23:09:14] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-03-14 23:09:14] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-03-14 23:09:15] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-03-14 23:09:15] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-03-14 23:09:15] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-03-14 23:09:15] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-03-14 23:09:15] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e875662f9c
[2026-03-14 23:09:17] [INFO] Created new Dispatches record with ID: 69b5ea9b9950b9282
[2026-03-14 23:09:17] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-07761.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-14/SDPSFD_26-07761.xml
[2026-03-14 23:09:17] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-07761.xml
