[2026-03-22 00:26:56] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002656.XML
[2026-03-22 00:26:56] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002656.XML for user: 68f1466aed072ad4a
[2026-03-22 00:26:56] [INFO] File size: 5353 bytes
[2026-03-22 00:26:56] [INFO] Created FTPFiles record with ID: 69bf37505a590f493
[2026-03-22 00:26:56] [INFO] About to extract fields from XML. File size: 5353 bytes
[2026-03-22 00:26:56] [INFO] Number of mappings: 28
[2026-03-22 00:26:56] [INFO] Starting XML parsing. Content length: 5353
[2026-03-22 00:26:56] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 00:26:56] [INFO] Processing 28 field mappings
[2026-03-22 00:26:56] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 00:26:56] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 00:26:56] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 00:26:56] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 00:26:56] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 00:26:56] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 00:26:56] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 00:26:56] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 00:26:56] [INFO]   -> Found value: 2026000765
[2026-03-22 00:26:56] [INFO]   -> Set field 'incidentInternalId' = "2026000765"
[2026-03-22 00:26:56] [INFO]   -> Set field 'dispatchRunNumber' = "2026000765"
[2026-03-22 00:26:56] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 00:26:56] [INFO]   -> Found value: CHEST PAIN
[2026-03-22 00:26:56] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-03-22 00:26:56] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 00:26:56] [INFO]   -> Found value: 2765
[2026-03-22 00:26:56] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2765
[2026-03-22 00:26:56] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 00:26:56] [INFO]   -> Found value: TN
[2026-03-22 00:26:56] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 00:26:56] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 00:26:56] [INFO]   -> Found value: 38506
[2026-03-22 00:26:56] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 00:26:56] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 00:26:56] [INFO]   -> No value found (null or empty)
[2026-03-22 00:26:56] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 00:26:56] [INFO]   -> No value found (null or empty)
[2026-03-22 00:26:56] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 00:26:56] [INFO]   -> Found value: 36.11461
[2026-03-22 00:26:56] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.114609999999998990460881032049655914306640625
[2026-03-22 00:26:56] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 00:26:56] [INFO]   -> Found value: -85.56112
[2026-03-22 00:26:56] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5611200000000025056579033844172954559326171875
[2026-03-22 00:26:56] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 00:26:56] [INFO]   -> Found value: 2026-03-21 19:26:32
[2026-03-22 00:26:56] [INFO]   -> Set field 'alarm' = "2026-03-21 19:26:32"
[2026-03-22 00:26:56] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 00:26:56] [INFO]   -> Found value: 2026-03-21 19:26:52
[2026-03-22 00:26:56] [INFO]   -> Set field 'dispatched' = "2026-03-21 19:26:52"
[2026-03-22 00:26:56] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 00:26:56] [INFO]   -> No value found (null or empty)
[2026-03-22 00:26:56] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 00:26:56] [INFO]   -> No value found (null or empty)
[2026-03-22 00:26:56] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 00:26:56] [INFO]   -> No value found (null or empty)
[2026-03-22 00:26:56] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 00:26:56] [INFO]   -> Found value: CONCORD LN/WILLIAMSBURG CIR
[2026-03-22 00:26:56] [INFO]   -> Set field 'incidentLocationCross' = "CONCORD LN\/WILLIAMSBURG CIR"
[2026-03-22 00:26:56] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 00:26:56] [INFO]   -> Found value: PCFR
[2026-03-22 00:26:56] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 00:26:56] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 00:26:56] [INFO]   -> Found value: 2026-03-21 19:26:52
[2026-03-22 00:26:56] [INFO]   -> Set field 'timedispatch' = "2026-03-21 19:26:52"
[2026-03-22 00:26:56] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 00:26:56] [INFO]   -> No value found (null or empty)
[2026-03-22 00:26:56] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 00:26:56] [INFO]   -> No value found (null or empty)
[2026-03-22 00:26:56] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 00:26:56] [INFO]   -> No value found (null or empty)
[2026-03-22 00:26:56] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 00:26:56] [INFO]   -> No value found (null or empty)
[2026-03-22 00:26:56] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 00:26:56] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 00:26:56] [INFO]   -> Found value: 20260030712
[2026-03-22 00:26:56] [INFO]   -> Set field 'policeReportNumber' = "20260030712"
[2026-03-22 00:26:56] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 00:26:56] [INFO]   -> Found value: Event spawned from CHEST PAIN.  [03/21/2026 19:26:32 BPICHE] CHEST PAIN  [03/21/26 19:26:25 BPICHE]]
[2026-03-22 00:26:56] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]"
[2026-03-22 00:26:56] [INFO]   -> Set field 'cADLog' = "Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]"
[2026-03-22 00:26:56] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 00:26:56] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 00:26:56] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 00:26:56] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 00:26:56] [INFO]   -> Found value: NEW LONDON
[2026-03-22 00:26:56] [INFO]   -> Set field 'streetName' = "NEW LONDON"
[2026-03-22 00:26:56] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 00:26:56] [INFO]   -> Found value: DR
[2026-03-22 00:26:56] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-22 00:26:56] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 00:26:56] [INFO]   -> Found value: 2765 NEW LONDON DR
[2026-03-22 00:26:56] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2765 NEW LONDON DR"
[2026-03-22 00:26:56] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 00:26:56] [INFO] Concatenating street name and type
[2026-03-22 00:26:56] [INFO]   -> Combined street name: NEW LONDON DR
[2026-03-22 00:26:56] [INFO] Built locationCoordinates from lat/lng: 36.11461,-85.56112
[2026-03-22 00:26:56] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000765","dispatchRunNumber":"2026000765","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":2765,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.114609999999998990460881032049655914306640625,"nERISIncidentLongitude":-85.5611200000000025056579033844172954559326171875,"alarm":"2026-03-21 19:26:32","dispatched":"2026-03-21 19:26:52","incidentLocationCross":"CONCORD LN\/WILLIAMSBURG CIR","cADVehicleID":"PCFR","timedispatch":"2026-03-21 19:26:52","policeReportNumber":"20260030712","dispatchNotes":"Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]","cADLog":"Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]","incidentLocationCity":"COOKEVILLE","streetName":"NEW LONDON DR","incidentAddressTextVersionStreet":"2765 NEW LONDON DR","locationCoordinates":"36.11461,-85.56112"}
[2026-03-22 00:26:56] [INFO] Number of extracted fields: 21
[2026-03-22 00:26:56] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 00:26:56] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 00:26:56] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 00:26:56] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 00:26:56] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 00:26:56] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 00:26: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-22 00:26: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-22 00:26:56] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 00:26:56] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 00:26:56] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 00:26:56] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-03-22 00:27:06] [INFO] Created new Dispatches record with ID: 69bf37512a29c41fe
[2026-03-22 00:27:06] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22
[2026-03-22 00:27:06] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002656.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030712_20260322_002656.XML
[2026-03-22 00:27:06] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002656.XML
[2026-03-22 00:28:53] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002853.XML
[2026-03-22 00:28:53] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002853.XML for user: 68f1466aed072ad4a
[2026-03-22 00:28:53] [INFO] File size: 6545 bytes
[2026-03-22 00:28:53] [INFO] Created FTPFiles record with ID: 69bf37c5bc1e3eb30
[2026-03-22 00:28:53] [INFO] About to extract fields from XML. File size: 6545 bytes
[2026-03-22 00:28:53] [INFO] Number of mappings: 28
[2026-03-22 00:28:53] [INFO] Starting XML parsing. Content length: 6545
[2026-03-22 00:28:53] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 00:28:53] [INFO] Processing 28 field mappings
[2026-03-22 00:28:53] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 00:28:53] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 00:28:53] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 00:28:53] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 00:28:53] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 00:28:53] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 00:28:53] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 00:28:53] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 00:28:53] [INFO]   -> Found value: 2026000765
[2026-03-22 00:28:53] [INFO]   -> Set field 'incidentInternalId' = "2026000765"
[2026-03-22 00:28:53] [INFO]   -> Set field 'dispatchRunNumber' = "2026000765"
[2026-03-22 00:28:53] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 00:28:53] [INFO]   -> Found value: CHEST PAIN
[2026-03-22 00:28:53] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-03-22 00:28:53] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 00:28:53] [INFO]   -> Found value: 2765
[2026-03-22 00:28:53] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2765
[2026-03-22 00:28:53] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 00:28:53] [INFO]   -> Found value: TN
[2026-03-22 00:28:53] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 00:28:53] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 00:28:53] [INFO]   -> Found value: 38506
[2026-03-22 00:28:53] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 00:28:53] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 00:28:53] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:53] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 00:28:53] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:53] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 00:28:53] [INFO]   -> Found value: 36.11461
[2026-03-22 00:28:53] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.114609999999998990460881032049655914306640625
[2026-03-22 00:28:53] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 00:28:53] [INFO]   -> Found value: -85.56112
[2026-03-22 00:28:53] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5611200000000025056579033844172954559326171875
[2026-03-22 00:28:53] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 00:28:53] [INFO]   -> Found value: 2026-03-21 19:26:32
[2026-03-22 00:28:53] [INFO]   -> Set field 'alarm' = "2026-03-21 19:26:32"
[2026-03-22 00:28:53] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 00:28:53] [INFO]   -> Found value: 2026-03-21 19:26:52
[2026-03-22 00:28:53] [INFO]   -> Set field 'dispatched' = "2026-03-21 19:26:52"
[2026-03-22 00:28:53] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 00:28:53] [INFO]   -> Found value: 2026-03-21 19:28:51
[2026-03-22 00:28:53] [INFO]   -> Set field 'enroute' = "2026-03-21 19:28:51"
[2026-03-22 00:28:53] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 00:28:53] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:53] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 00:28:53] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:53] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 00:28:53] [INFO]   -> Found value: CONCORD LN/WILLIAMSBURG CIR
[2026-03-22 00:28:53] [INFO]   -> Set field 'incidentLocationCross' = "CONCORD LN\/WILLIAMSBURG CIR"
[2026-03-22 00:28:53] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 00:28:53] [INFO]   -> Found value: SQ11
[2026-03-22 00:28:53] [INFO]   -> Set field 'cADVehicleID' = "SQ11"
[2026-03-22 00:28:53] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 00:28:53] [INFO]   -> Found value: 2026-03-21 19:28:49
[2026-03-22 00:28:53] [INFO]   -> Set field 'timedispatch' = "2026-03-21 19:28:49"
[2026-03-22 00:28:53] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 00:28:53] [INFO]   -> Found value: 2026-03-21 19:28:51
[2026-03-22 00:28:53] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-21 19:28:51"
[2026-03-22 00:28:53] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 00:28:53] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:53] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 00:28:53] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:53] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 00:28:53] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:53] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 00:28:53] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 00:28:53] [INFO]   -> Found value: 20260030712
[2026-03-22 00:28:53] [INFO]   -> Set field 'policeReportNumber' = "20260030712"
[2026-03-22 00:28:53] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 00:28:53] [INFO]   -> Found value: [EMS] UDTS: CARD SEEN BY 911  [03/21/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS...
[2026-03-22 00:28:53] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: CARD SEEN BY 911  [03\/21\/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [03\/21\/26 19:27:24 BAHARRIS] [EMS] SWELLING IN FEET AND LEGS  NO HX  90 YOM  GUY WILMOTH  FRONT DOOR UNLOCKED  [03\/21\/26 19:27:15 BPICHE] Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]"
[2026-03-22 00:28:53] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: CARD SEEN BY 911  [03\/21\/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [03\/21\/26 19:27:24 BAHARRIS] [EMS] SWELLING IN FEET AND LEGS  NO HX  90 YOM  GUY WILMOTH  FRONT DOOR UNLOCKED  [03\/21\/26 19:27:15 BPICHE] Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]"
[2026-03-22 00:28:53] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 00:28:53] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 00:28:53] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 00:28:53] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 00:28:53] [INFO]   -> Found value: NEW LONDON
[2026-03-22 00:28:53] [INFO]   -> Set field 'streetName' = "NEW LONDON"
[2026-03-22 00:28:53] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 00:28:53] [INFO]   -> Found value: DR
[2026-03-22 00:28:53] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-22 00:28:53] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 00:28:53] [INFO]   -> Found value: 2765 NEW LONDON DR
[2026-03-22 00:28:53] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2765 NEW LONDON DR"
[2026-03-22 00:28:53] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 00:28:53] [INFO] Concatenating street name and type
[2026-03-22 00:28:53] [INFO]   -> Combined street name: NEW LONDON DR
[2026-03-22 00:28:53] [INFO] Built locationCoordinates from lat/lng: 36.11461,-85.56112
[2026-03-22 00:28:53] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000765","dispatchRunNumber":"2026000765","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":2765,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.114609999999998990460881032049655914306640625,"nERISIncidentLongitude":-85.5611200000000025056579033844172954559326171875,"alarm":"2026-03-21 19:26:32","dispatched":"2026-03-21 19:26:52","enroute":"2026-03-21 19:28:51","incidentLocationCross":"CONCORD LN\/WILLIAMSBURG CIR","cADVehicleID":"SQ11","timedispatch":"2026-03-21 19:28:49","timeenroutetoscene":"2026-03-21 19:28:51","policeReportNumber":"20260030712","dispatchNotes":"[EMS] UDTS: CARD SEEN BY 911  [03\/21\/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [03\/21\/26 19:27:24 BAHARRIS] [EMS] SWELLING IN FEET AND LEGS  NO HX  90 YOM  GUY WILMOTH  FRONT DOOR UNLOCKED  [03\/21\/26 19:27:15 BPICHE] Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]","cADLog":"[EMS] UDTS: CARD SEEN BY 911  [03\/21\/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [03\/21\/26 19:27:24 BAHARRIS] [EMS] SWELLING IN FEET AND LEGS  NO HX  90 YOM  GUY WILMOTH  FRONT DOOR UNLOCKED  [03\/21\/26 19:27:15 BPICHE] Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]","incidentLocationCity":"COOKEVILLE","streetName":"NEW LONDON DR","incidentAddressTextVersionStreet":"2765 NEW LONDON DR","locationCoordinates":"36.11461,-85.56112"}
[2026-03-22 00:28:53] [INFO] Number of extracted fields: 23
[2026-03-22 00:28:53] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 00:28:53] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 00:28:53] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 00:28:53] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 00:28:53] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 00:28:53] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 00:28:54] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 00:28:54] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 00:28:54] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 00:28:54] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 00:28:54] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 00:28:54] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-03-22 00:28:54] [INFO] Found existing Dispatch with cADNumber '2026000765', ID: 69bf37512a29c41fe - will update instead of create
[2026-03-22 00:28:54] [INFO] Updated existing Dispatches record with ID: 69bf37512a29c41fe
[2026-03-22 00:28:54] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002853.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030712_20260322_002853.XML
[2026-03-22 00:28:54] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002853.XML
[2026-03-22 00:28:56] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002856.XML
[2026-03-22 00:28:56] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002856.XML for user: 68f1466aed072ad4a
[2026-03-22 00:28:56] [INFO] File size: 7404 bytes
[2026-03-22 00:28:57] [INFO] Created FTPFiles record with ID: 69bf37c919e08ce3a
[2026-03-22 00:28:57] [INFO] About to extract fields from XML. File size: 7404 bytes
[2026-03-22 00:28:57] [INFO] Number of mappings: 28
[2026-03-22 00:28:57] [INFO] Starting XML parsing. Content length: 7404
[2026-03-22 00:28:57] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 00:28:57] [INFO] Processing 28 field mappings
[2026-03-22 00:28:57] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 00:28:57] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 00:28:57] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 00:28:57] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 00:28:57] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 00:28:57] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 00:28:57] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 00:28:57] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 00:28:57] [INFO]   -> Found value: 2026000765
[2026-03-22 00:28:57] [INFO]   -> Set field 'incidentInternalId' = "2026000765"
[2026-03-22 00:28:57] [INFO]   -> Set field 'dispatchRunNumber' = "2026000765"
[2026-03-22 00:28:57] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 00:28:57] [INFO]   -> Found value: CHEST PAIN
[2026-03-22 00:28:57] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-03-22 00:28:57] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 00:28:57] [INFO]   -> Found value: 2765
[2026-03-22 00:28:57] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2765
[2026-03-22 00:28:57] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 00:28:57] [INFO]   -> Found value: TN
[2026-03-22 00:28:57] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 00:28:57] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 00:28:57] [INFO]   -> Found value: 38506
[2026-03-22 00:28:57] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 00:28:57] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 00:28:57] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:57] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 00:28:57] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:57] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 00:28:57] [INFO]   -> Found value: 36.11461
[2026-03-22 00:28:57] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.114609999999998990460881032049655914306640625
[2026-03-22 00:28:57] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 00:28:57] [INFO]   -> Found value: -85.56112
[2026-03-22 00:28:57] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5611200000000025056579033844172954559326171875
[2026-03-22 00:28:57] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 00:28:57] [INFO]   -> Found value: 2026-03-21 19:26:32
[2026-03-22 00:28:57] [INFO]   -> Set field 'alarm' = "2026-03-21 19:26:32"
[2026-03-22 00:28:57] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 00:28:57] [INFO]   -> Found value: 2026-03-21 19:26:52
[2026-03-22 00:28:57] [INFO]   -> Set field 'dispatched' = "2026-03-21 19:26:52"
[2026-03-22 00:28:57] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 00:28:57] [INFO]   -> Found value: 2026-03-21 19:28:51
[2026-03-22 00:28:57] [INFO]   -> Set field 'enroute' = "2026-03-21 19:28:51"
[2026-03-22 00:28:57] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 00:28:57] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:57] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 00:28:57] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:57] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 00:28:57] [INFO]   -> Found value: CONCORD LN/WILLIAMSBURG CIR
[2026-03-22 00:28:57] [INFO]   -> Set field 'incidentLocationCross' = "CONCORD LN\/WILLIAMSBURG CIR"
[2026-03-22 00:28:57] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 00:28:57] [INFO]   -> Found value: 963
[2026-03-22 00:28:57] [INFO]   -> Set field 'cADVehicleID' = 963
[2026-03-22 00:28:57] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 00:28:57] [INFO]   -> Found value: 2026-03-21 19:28:54
[2026-03-22 00:28:57] [INFO]   -> Set field 'timedispatch' = "2026-03-21 19:28:54"
[2026-03-22 00:28:57] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 00:28:57] [INFO]   -> Found value: 2026-03-21 19:28:54
[2026-03-22 00:28:57] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-21 19:28:54"
[2026-03-22 00:28:57] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 00:28:57] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:57] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 00:28:57] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:57] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 00:28:57] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:57] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 00:28:57] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 00:28:57] [INFO]   -> Found value: 20260030712
[2026-03-22 00:28:57] [INFO]   -> Set field 'policeReportNumber' = "20260030712"
[2026-03-22 00:28:57] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 00:28:57] [INFO]   -> Found value: [EMS] UDTS: CARD SEEN BY 911  [03/21/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS...
[2026-03-22 00:28:57] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: CARD SEEN BY 911  [03\/21\/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [03\/21\/26 19:27:24 BAHARRIS] [EMS] SWELLING IN FEET AND LEGS  NO HX  90 YOM  GUY WILMOTH  FRONT DOOR UNLOCKED  [03\/21\/26 19:27:15 BPICHE] Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]"
[2026-03-22 00:28:57] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: CARD SEEN BY 911  [03\/21\/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [03\/21\/26 19:27:24 BAHARRIS] [EMS] SWELLING IN FEET AND LEGS  NO HX  90 YOM  GUY WILMOTH  FRONT DOOR UNLOCKED  [03\/21\/26 19:27:15 BPICHE] Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]"
[2026-03-22 00:28:57] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 00:28:57] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 00:28:57] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 00:28:57] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 00:28:57] [INFO]   -> Found value: NEW LONDON
[2026-03-22 00:28:57] [INFO]   -> Set field 'streetName' = "NEW LONDON"
[2026-03-22 00:28:57] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 00:28:57] [INFO]   -> Found value: DR
[2026-03-22 00:28:57] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-22 00:28:57] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 00:28:57] [INFO]   -> Found value: 2765 NEW LONDON DR
[2026-03-22 00:28:57] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2765 NEW LONDON DR"
[2026-03-22 00:28:57] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 00:28:57] [INFO] Concatenating street name and type
[2026-03-22 00:28:57] [INFO]   -> Combined street name: NEW LONDON DR
[2026-03-22 00:28:57] [INFO] Built locationCoordinates from lat/lng: 36.11461,-85.56112
[2026-03-22 00:28:57] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000765","dispatchRunNumber":"2026000765","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":2765,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.114609999999998990460881032049655914306640625,"nERISIncidentLongitude":-85.5611200000000025056579033844172954559326171875,"alarm":"2026-03-21 19:26:32","dispatched":"2026-03-21 19:26:52","enroute":"2026-03-21 19:28:51","incidentLocationCross":"CONCORD LN\/WILLIAMSBURG CIR","cADVehicleID":963,"timedispatch":"2026-03-21 19:28:54","timeenroutetoscene":"2026-03-21 19:28:54","policeReportNumber":"20260030712","dispatchNotes":"[EMS] UDTS: CARD SEEN BY 911  [03\/21\/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [03\/21\/26 19:27:24 BAHARRIS] [EMS] SWELLING IN FEET AND LEGS  NO HX  90 YOM  GUY WILMOTH  FRONT DOOR UNLOCKED  [03\/21\/26 19:27:15 BPICHE] Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]","cADLog":"[EMS] UDTS: CARD SEEN BY 911  [03\/21\/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [03\/21\/26 19:27:24 BAHARRIS] [EMS] SWELLING IN FEET AND LEGS  NO HX  90 YOM  GUY WILMOTH  FRONT DOOR UNLOCKED  [03\/21\/26 19:27:15 BPICHE] Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]","incidentLocationCity":"COOKEVILLE","streetName":"NEW LONDON DR","incidentAddressTextVersionStreet":"2765 NEW LONDON DR","locationCoordinates":"36.11461,-85.56112"}
[2026-03-22 00:28:57] [INFO] Number of extracted fields: 23
[2026-03-22 00:28:57] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 00:28:57] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 00:28:57] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 00:28:57] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 00:28:57] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 00:28:57] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 00:28:57] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 00:28:57] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 00:28:57] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 00:28:57] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 00:28:57] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 00:28:57] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-03-22 00:28:57] [INFO] Found existing Dispatch with cADNumber '2026000765', ID: 69bf37512a29c41fe - will update instead of create
[2026-03-22 00:28:57] [INFO] Updated existing Dispatches record with ID: 69bf37512a29c41fe
[2026-03-22 00:28:57] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002856.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030712_20260322_002856.XML
[2026-03-22 00:28:57] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002856.XML
[2026-03-22 00:28:58] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002858.XML
[2026-03-22 00:28:58] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002858.XML for user: 68f1466aed072ad4a
[2026-03-22 00:28:58] [INFO] File size: 7404 bytes
[2026-03-22 00:28:58] [INFO] Created FTPFiles record with ID: 69bf37cae1d4848ac
[2026-03-22 00:28:58] [INFO] About to extract fields from XML. File size: 7404 bytes
[2026-03-22 00:28:58] [INFO] Number of mappings: 28
[2026-03-22 00:28:58] [INFO] Starting XML parsing. Content length: 7404
[2026-03-22 00:28:58] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 00:28:58] [INFO] Processing 28 field mappings
[2026-03-22 00:28:58] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 00:28:58] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 00:28:58] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 00:28:58] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 00:28:58] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 00:28:58] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 00:28:58] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 00:28:58] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 00:28:58] [INFO]   -> Found value: 2026000765
[2026-03-22 00:28:58] [INFO]   -> Set field 'incidentInternalId' = "2026000765"
[2026-03-22 00:28:58] [INFO]   -> Set field 'dispatchRunNumber' = "2026000765"
[2026-03-22 00:28:58] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 00:28:58] [INFO]   -> Found value: CHEST PAIN
[2026-03-22 00:28:58] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-03-22 00:28:58] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 00:28:58] [INFO]   -> Found value: 2765
[2026-03-22 00:28:58] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2765
[2026-03-22 00:28:58] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 00:28:58] [INFO]   -> Found value: TN
[2026-03-22 00:28:58] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 00:28:58] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 00:28:58] [INFO]   -> Found value: 38506
[2026-03-22 00:28:58] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 00:28:58] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 00:28:58] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:58] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 00:28:58] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:58] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 00:28:58] [INFO]   -> Found value: 36.11461
[2026-03-22 00:28:58] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.114609999999998990460881032049655914306640625
[2026-03-22 00:28:58] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 00:28:58] [INFO]   -> Found value: -85.56112
[2026-03-22 00:28:58] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5611200000000025056579033844172954559326171875
[2026-03-22 00:28:58] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 00:28:58] [INFO]   -> Found value: 2026-03-21 19:26:32
[2026-03-22 00:28:58] [INFO]   -> Set field 'alarm' = "2026-03-21 19:26:32"
[2026-03-22 00:28:58] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 00:28:58] [INFO]   -> Found value: 2026-03-21 19:26:52
[2026-03-22 00:28:58] [INFO]   -> Set field 'dispatched' = "2026-03-21 19:26:52"
[2026-03-22 00:28:58] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 00:28:58] [INFO]   -> Found value: 2026-03-21 19:28:51
[2026-03-22 00:28:58] [INFO]   -> Set field 'enroute' = "2026-03-21 19:28:51"
[2026-03-22 00:28:58] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 00:28:58] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:58] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 00:28:58] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:58] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 00:28:58] [INFO]   -> Found value: CONCORD LN/WILLIAMSBURG CIR
[2026-03-22 00:28:58] [INFO]   -> Set field 'incidentLocationCross' = "CONCORD LN\/WILLIAMSBURG CIR"
[2026-03-22 00:28:58] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 00:28:58] [INFO]   -> Found value: 963
[2026-03-22 00:28:58] [INFO]   -> Set field 'cADVehicleID' = 963
[2026-03-22 00:28:58] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 00:28:58] [INFO]   -> Found value: 2026-03-21 19:28:54
[2026-03-22 00:28:58] [INFO]   -> Set field 'timedispatch' = "2026-03-21 19:28:54"
[2026-03-22 00:28:58] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 00:28:58] [INFO]   -> Found value: 2026-03-21 19:28:54
[2026-03-22 00:28:58] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-21 19:28:54"
[2026-03-22 00:28:58] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 00:28:58] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:58] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 00:28:58] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:58] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 00:28:58] [INFO]   -> No value found (null or empty)
[2026-03-22 00:28:58] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 00:28:58] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 00:28:58] [INFO]   -> Found value: 20260030712
[2026-03-22 00:28:58] [INFO]   -> Set field 'policeReportNumber' = "20260030712"
[2026-03-22 00:28:58] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 00:28:58] [INFO]   -> Found value: [EMS] UDTS: CARD SEEN BY 911  [03/21/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS...
[2026-03-22 00:28:58] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: CARD SEEN BY 911  [03\/21\/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [03\/21\/26 19:27:24 BAHARRIS] [EMS] SWELLING IN FEET AND LEGS  NO HX  90 YOM  GUY WILMOTH  FRONT DOOR UNLOCKED  [03\/21\/26 19:27:15 BPICHE] Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]"
[2026-03-22 00:28:58] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: CARD SEEN BY 911  [03\/21\/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [03\/21\/26 19:27:24 BAHARRIS] [EMS] SWELLING IN FEET AND LEGS  NO HX  90 YOM  GUY WILMOTH  FRONT DOOR UNLOCKED  [03\/21\/26 19:27:15 BPICHE] Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]"
[2026-03-22 00:28:58] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 00:28:58] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 00:28:58] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 00:28:58] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 00:28:58] [INFO]   -> Found value: NEW LONDON
[2026-03-22 00:28:58] [INFO]   -> Set field 'streetName' = "NEW LONDON"
[2026-03-22 00:28:58] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 00:28:58] [INFO]   -> Found value: DR
[2026-03-22 00:28:58] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-22 00:28:58] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 00:28:58] [INFO]   -> Found value: 2765 NEW LONDON DR
[2026-03-22 00:28:58] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2765 NEW LONDON DR"
[2026-03-22 00:28:58] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 00:28:58] [INFO] Concatenating street name and type
[2026-03-22 00:28:58] [INFO]   -> Combined street name: NEW LONDON DR
[2026-03-22 00:28:58] [INFO] Built locationCoordinates from lat/lng: 36.11461,-85.56112
[2026-03-22 00:28:58] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000765","dispatchRunNumber":"2026000765","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":2765,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.114609999999998990460881032049655914306640625,"nERISIncidentLongitude":-85.5611200000000025056579033844172954559326171875,"alarm":"2026-03-21 19:26:32","dispatched":"2026-03-21 19:26:52","enroute":"2026-03-21 19:28:51","incidentLocationCross":"CONCORD LN\/WILLIAMSBURG CIR","cADVehicleID":963,"timedispatch":"2026-03-21 19:28:54","timeenroutetoscene":"2026-03-21 19:28:54","policeReportNumber":"20260030712","dispatchNotes":"[EMS] UDTS: CARD SEEN BY 911  [03\/21\/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [03\/21\/26 19:27:24 BAHARRIS] [EMS] SWELLING IN FEET AND LEGS  NO HX  90 YOM  GUY WILMOTH  FRONT DOOR UNLOCKED  [03\/21\/26 19:27:15 BPICHE] Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]","cADLog":"[EMS] UDTS: CARD SEEN BY 911  [03\/21\/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [03\/21\/26 19:27:24 BAHARRIS] [EMS] SWELLING IN FEET AND LEGS  NO HX  90 YOM  GUY WILMOTH  FRONT DOOR UNLOCKED  [03\/21\/26 19:27:15 BPICHE] Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]","incidentLocationCity":"COOKEVILLE","streetName":"NEW LONDON DR","incidentAddressTextVersionStreet":"2765 NEW LONDON DR","locationCoordinates":"36.11461,-85.56112"}
[2026-03-22 00:28:58] [INFO] Number of extracted fields: 23
[2026-03-22 00:28:58] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 00:28:58] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 00:28:58] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 00:28:58] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 00:28:59] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 00:28:59] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 00:28:59] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 00:28:59] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 00:28:59] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 00:28:59] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 00:28:59] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 00:28:59] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-03-22 00:28:59] [INFO] Found existing Dispatch with cADNumber '2026000765', ID: 69bf37512a29c41fe - will update instead of create
[2026-03-22 00:28:59] [INFO] Updated existing Dispatches record with ID: 69bf37512a29c41fe
[2026-03-22 00:28:59] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002858.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030712_20260322_002858.XML
[2026-03-22 00:28:59] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002858.XML
[2026-03-22 00:29:00] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002900.XML
[2026-03-22 00:29:00] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002900.XML for user: 68f1466aed072ad4a
[2026-03-22 00:29:00] [INFO] File size: 7404 bytes
[2026-03-22 00:29:00] [INFO] Created FTPFiles record with ID: 69bf37cc90a240249
[2026-03-22 00:29:00] [INFO] About to extract fields from XML. File size: 7404 bytes
[2026-03-22 00:29:00] [INFO] Number of mappings: 28
[2026-03-22 00:29:00] [INFO] Starting XML parsing. Content length: 7404
[2026-03-22 00:29:00] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 00:29:00] [INFO] Processing 28 field mappings
[2026-03-22 00:29:00] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 00:29:00] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 00:29:00] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 00:29:00] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 00:29:00] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 00:29:00] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 00:29:00] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 00:29:00] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 00:29:00] [INFO]   -> Found value: 2026000765
[2026-03-22 00:29:00] [INFO]   -> Set field 'incidentInternalId' = "2026000765"
[2026-03-22 00:29:00] [INFO]   -> Set field 'dispatchRunNumber' = "2026000765"
[2026-03-22 00:29:00] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 00:29:00] [INFO]   -> Found value: CHEST PAIN
[2026-03-22 00:29:00] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-03-22 00:29:00] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 00:29:00] [INFO]   -> Found value: 2765
[2026-03-22 00:29:00] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2765
[2026-03-22 00:29:00] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 00:29:00] [INFO]   -> Found value: TN
[2026-03-22 00:29:00] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 00:29:00] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 00:29:00] [INFO]   -> Found value: 38506
[2026-03-22 00:29:00] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 00:29:00] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 00:29:00] [INFO]   -> No value found (null or empty)
[2026-03-22 00:29:00] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 00:29:00] [INFO]   -> No value found (null or empty)
[2026-03-22 00:29:00] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 00:29:00] [INFO]   -> Found value: 36.11461
[2026-03-22 00:29:00] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.114609999999998990460881032049655914306640625
[2026-03-22 00:29:00] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 00:29:00] [INFO]   -> Found value: -85.56112
[2026-03-22 00:29:00] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5611200000000025056579033844172954559326171875
[2026-03-22 00:29:00] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 00:29:00] [INFO]   -> Found value: 2026-03-21 19:26:32
[2026-03-22 00:29:00] [INFO]   -> Set field 'alarm' = "2026-03-21 19:26:32"
[2026-03-22 00:29:00] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 00:29:00] [INFO]   -> Found value: 2026-03-21 19:26:52
[2026-03-22 00:29:00] [INFO]   -> Set field 'dispatched' = "2026-03-21 19:26:52"
[2026-03-22 00:29:00] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 00:29:00] [INFO]   -> Found value: 2026-03-21 19:28:51
[2026-03-22 00:29:00] [INFO]   -> Set field 'enroute' = "2026-03-21 19:28:51"
[2026-03-22 00:29:00] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 00:29:00] [INFO]   -> No value found (null or empty)
[2026-03-22 00:29:00] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 00:29:00] [INFO]   -> No value found (null or empty)
[2026-03-22 00:29:00] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 00:29:00] [INFO]   -> Found value: CONCORD LN/WILLIAMSBURG CIR
[2026-03-22 00:29:00] [INFO]   -> Set field 'incidentLocationCross' = "CONCORD LN\/WILLIAMSBURG CIR"
[2026-03-22 00:29:00] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 00:29:00] [INFO]   -> Found value: 963
[2026-03-22 00:29:00] [INFO]   -> Set field 'cADVehicleID' = 963
[2026-03-22 00:29:00] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 00:29:00] [INFO]   -> Found value: 2026-03-21 19:28:54
[2026-03-22 00:29:00] [INFO]   -> Set field 'timedispatch' = "2026-03-21 19:28:54"
[2026-03-22 00:29:00] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 00:29:00] [INFO]   -> Found value: 2026-03-21 19:28:54
[2026-03-22 00:29:00] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-21 19:28:54"
[2026-03-22 00:29:00] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 00:29:00] [INFO]   -> No value found (null or empty)
[2026-03-22 00:29:00] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 00:29:00] [INFO]   -> No value found (null or empty)
[2026-03-22 00:29:00] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 00:29:00] [INFO]   -> No value found (null or empty)
[2026-03-22 00:29:00] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 00:29:00] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 00:29:00] [INFO]   -> Found value: 20260030712
[2026-03-22 00:29:00] [INFO]   -> Set field 'policeReportNumber' = "20260030712"
[2026-03-22 00:29:00] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 00:29:00] [INFO]   -> Found value: [EMS] UDTS: CARD SEEN BY 911  [03/21/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS...
[2026-03-22 00:29:00] [INFO]   -> Set field 'dispatchNotes' = "[EMS] UDTS: CARD SEEN BY 911  [03\/21\/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [03\/21\/26 19:27:24 BAHARRIS] [EMS] SWELLING IN FEET AND LEGS  NO HX  90 YOM  GUY WILMOTH  FRONT DOOR UNLOCKED  [03\/21\/26 19:27:15 BPICHE] Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]"
[2026-03-22 00:29:00] [INFO]   -> Set field 'cADLog' = "[EMS] UDTS: CARD SEEN BY 911  [03\/21\/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [03\/21\/26 19:27:24 BAHARRIS] [EMS] SWELLING IN FEET AND LEGS  NO HX  90 YOM  GUY WILMOTH  FRONT DOOR UNLOCKED  [03\/21\/26 19:27:15 BPICHE] Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]"
[2026-03-22 00:29:00] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 00:29:00] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 00:29:00] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 00:29:00] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 00:29:00] [INFO]   -> Found value: NEW LONDON
[2026-03-22 00:29:00] [INFO]   -> Set field 'streetName' = "NEW LONDON"
[2026-03-22 00:29:00] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 00:29:00] [INFO]   -> Found value: DR
[2026-03-22 00:29:00] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-22 00:29:00] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 00:29:00] [INFO]   -> Found value: 2765 NEW LONDON DR
[2026-03-22 00:29:00] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2765 NEW LONDON DR"
[2026-03-22 00:29:00] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 00:29:00] [INFO] Concatenating street name and type
[2026-03-22 00:29:00] [INFO]   -> Combined street name: NEW LONDON DR
[2026-03-22 00:29:00] [INFO] Built locationCoordinates from lat/lng: 36.11461,-85.56112
[2026-03-22 00:29:00] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000765","dispatchRunNumber":"2026000765","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":2765,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.114609999999998990460881032049655914306640625,"nERISIncidentLongitude":-85.5611200000000025056579033844172954559326171875,"alarm":"2026-03-21 19:26:32","dispatched":"2026-03-21 19:26:52","enroute":"2026-03-21 19:28:51","incidentLocationCross":"CONCORD LN\/WILLIAMSBURG CIR","cADVehicleID":963,"timedispatch":"2026-03-21 19:28:54","timeenroutetoscene":"2026-03-21 19:28:54","policeReportNumber":"20260030712","dispatchNotes":"[EMS] UDTS: CARD SEEN BY 911  [03\/21\/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [03\/21\/26 19:27:24 BAHARRIS] [EMS] SWELLING IN FEET AND LEGS  NO HX  90 YOM  GUY WILMOTH  FRONT DOOR UNLOCKED  [03\/21\/26 19:27:15 BPICHE] Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]","cADLog":"[EMS] UDTS: CARD SEEN BY 911  [03\/21\/26 19:27:38 TSCOTT] [LAW] LE NOT RESPONDING AT THIS TIME UNLESS NEEDED  [03\/21\/26 19:27:24 BAHARRIS] [EMS] SWELLING IN FEET AND LEGS  NO HX  90 YOM  GUY WILMOTH  FRONT DOOR UNLOCKED  [03\/21\/26 19:27:15 BPICHE] Event spawned from CHEST PAIN.  [03\/21\/2026 19:26:32 BPICHE] CHEST PAIN  [03\/21\/26 19:26:25 BPICHE]]","incidentLocationCity":"COOKEVILLE","streetName":"NEW LONDON DR","incidentAddressTextVersionStreet":"2765 NEW LONDON DR","locationCoordinates":"36.11461,-85.56112"}
[2026-03-22 00:29:00] [INFO] Number of extracted fields: 23
[2026-03-22 00:29:00] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 00:29:00] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 00:29:00] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 00:29:00] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 00:29:00] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 00:29:00] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 00:29: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-22 00:29: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-22 00:29:00] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 00:29:00] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 00:29:00] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 00:29:01] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-03-22 00:29:01] [INFO] Found existing Dispatch with cADNumber '2026000765', ID: 69bf37512a29c41fe - will update instead of create
[2026-03-22 00:29:01] [INFO] Updated existing Dispatches record with ID: 69bf37512a29c41fe
[2026-03-22 00:29:01] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002900.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030712_20260322_002900.XML
[2026-03-22 00:29:01] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030712_20260322_002900.XML
[2026-03-22 00:42:49] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:42:48Z.xml
[2026-03-22 00:42:49] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:42:48Z.xml
[2026-03-22 00:42:49] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:42:49Z.xml
[2026-03-22 00:42:49] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:42:49Z.xml
[2026-03-22 00:42:50] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:42:49Z.xml
[2026-03-22 00:42:50] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:42:49Z.xml
[2026-03-22 00:42:50] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:42:49Z.xml
[2026-03-22 00:42:50] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:42:49Z.xml
[2026-03-22 00:42:50] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:42:50Z.xml
[2026-03-22 00:42:50] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:42:50Z.xml
[2026-03-22 00:42:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:42:50Z.xml
[2026-03-22 00:42:51] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:42:50Z.xml
[2026-03-22 00:42:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:42:50Z.xml
[2026-03-22 00:42:51] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:42:50Z.xml
[2026-03-22 00:42:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:42:52Z.xml
[2026-03-22 00:42:52] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:42:52Z.xml
[2026-03-22 00:43:23] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:43:23Z.xml
[2026-03-22 00:43:23] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:43:23Z.xml
[2026-03-22 00:43:34] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:43:34Z.xml
[2026-03-22 00:43:34] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:43:34Z.xml
[2026-03-22 00:43:34] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:43:34Z.xml
[2026-03-22 00:43:34] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:43:34Z.xml
[2026-03-22 00:44:33] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:44:33Z.xml
[2026-03-22 00:44:33] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:44:33Z.xml
[2026-03-22 00:46:33] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:46:33Z.xml
[2026-03-22 00:46:33] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:46:33Z.xml
[2026-03-22 00:47:32] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:47:31Z.xml
[2026-03-22 00:47:32] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:47:31Z.xml
[2026-03-22 00:47:32] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:47:31Z.xml
[2026-03-22 00:47:32] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:47:31Z.xml
[2026-03-22 00:47:32] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:47:32Z.xml
[2026-03-22 00:47:32] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:47:32Z.xml
[2026-03-22 00:47:33] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:47:32Z.xml
[2026-03-22 00:47:33] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:47:32Z.xml
[2026-03-22 00:47:33] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:47:32Z.xml
[2026-03-22 00:47:33] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:47:32Z.xml
[2026-03-22 00:47:33] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:47:33Z.xml
[2026-03-22 00:47:33] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:47:33Z.xml
[2026-03-22 00:47:36] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:47:35Z.xml
[2026-03-22 00:47:36] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:47:35Z.xml
[2026-03-22 00:47:36] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:47:36Z.xml
[2026-03-22 00:47:36] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:47:36Z.xml
[2026-03-22 00:48:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:48:00Z.xml
[2026-03-22 00:48:01] [ERROR] File does not exist: /home/dodom2/public_html/ftp.stationboss.net/dispatch/66a7b78a47817ab30/Call ID CAD26-013319_2026-03-21 19:48:00Z.xml
[2026-03-22 02:48:27] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_024827.XML
[2026-03-22 02:48:27] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_024827.XML for user: 68f1466aed072ad4a
[2026-03-22 02:48:27] [INFO] File size: 4902 bytes
[2026-03-22 02:48:27] [INFO] Created FTPFiles record with ID: 69bf587bd7bd69670
[2026-03-22 02:48:27] [INFO] About to extract fields from XML. File size: 4902 bytes
[2026-03-22 02:48:27] [INFO] Number of mappings: 28
[2026-03-22 02:48:27] [INFO] Starting XML parsing. Content length: 4902
[2026-03-22 02:48:27] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 02:48:27] [INFO] Processing 28 field mappings
[2026-03-22 02:48:27] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 02:48:27] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 02:48:27] [INFO]   -> Found value: PCFD
[2026-03-22 02:48:27] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-22 02:48:27] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 02:48:27] [INFO]   -> Found value: 2026000766
[2026-03-22 02:48:27] [INFO]   -> Set field 'incidentInternalId' = "2026000766"
[2026-03-22 02:48:27] [INFO]   -> Set field 'dispatchRunNumber' = "2026000766"
[2026-03-22 02:48:27] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 02:48:27] [INFO]   -> Found value: NATURAL GAS LEAK
[2026-03-22 02:48:27] [INFO]   -> Set field 'incidentTypeValue1' = "NATURAL GAS LEAK"
[2026-03-22 02:48:27] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 02:48:27] [INFO]   -> Found value: 5646
[2026-03-22 02:48:27] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5646
[2026-03-22 02:48:27] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 02:48:27] [INFO]   -> Found value: TN
[2026-03-22 02:48:27] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 02:48:27] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 02:48:27] [INFO]   -> Found value: 38544
[2026-03-22 02:48:27] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-22 02:48:27] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 02:48:27] [INFO]   -> No value found (null or empty)
[2026-03-22 02:48:27] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 02:48:27] [INFO]   -> No value found (null or empty)
[2026-03-22 02:48:27] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 02:48:27] [INFO]   -> Found value: 36.10506
[2026-03-22 02:48:27] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.10506000000000170757630257867276668548583984375
[2026-03-22 02:48:27] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 02:48:27] [INFO]   -> Found value: -85.63026
[2026-03-22 02:48:27] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6302600000000069258021540008485317230224609375
[2026-03-22 02:48:27] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 02:48:27] [INFO]   -> Found value: 2026-03-21 21:44:48
[2026-03-22 02:48:27] [INFO]   -> Set field 'alarm' = "2026-03-21 21:44:48"
[2026-03-22 02:48:27] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 02:48:27] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 02:48:27] [INFO]   -> Set field 'dispatched' = "2026-03-21 21:48:24"
[2026-03-22 02:48:27] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 02:48:27] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 02:48:27] [INFO]   -> Set field 'enroute' = "2026-03-21 21:48:24"
[2026-03-22 02:48:27] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 02:48:27] [INFO]   -> No value found (null or empty)
[2026-03-22 02:48:27] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 02:48:27] [INFO]   -> No value found (null or empty)
[2026-03-22 02:48:27] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 02:48:27] [INFO]   -> Found value: JIMMY NEAL RD/SOUTHFORK RD
[2026-03-22 02:48:27] [INFO]   -> Set field 'incidentLocationCross' = "JIMMY NEAL RD\/SOUTHFORK RD"
[2026-03-22 02:48:27] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 02:48:27] [INFO]   -> Found value: EN11
[2026-03-22 02:48:27] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-22 02:48:27] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 02:48:27] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 02:48:27] [INFO]   -> Set field 'timedispatch' = "2026-03-21 21:48:24"
[2026-03-22 02:48:27] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 02:48:27] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 02:48:27] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-21 21:48:24"
[2026-03-22 02:48:27] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 02:48:27] [INFO]   -> No value found (null or empty)
[2026-03-22 02:48:27] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 02:48:27] [INFO]   -> No value found (null or empty)
[2026-03-22 02:48:27] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 02:48:27] [INFO]   -> No value found (null or empty)
[2026-03-22 02:48:27] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 02:48:27] [INFO]   -> Found value: 20260030755
[2026-03-22 02:48:27] [INFO]   -> Set field 'policeReportNumber' = "20260030755"
[2026-03-22 02:48:27] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 02:48:27] [INFO]   -> Found value: CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03/21/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT //  [03...
[2026-03-22 02:48:27] [INFO]   -> Set field 'dispatchNotes' = "CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]"
[2026-03-22 02:48:27] [INFO]   -> Set field 'cADLog' = "CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]"
[2026-03-22 02:48:27] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 02:48:27] [INFO]   -> Found value: BAXTER
[2026-03-22 02:48:27] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-22 02:48:27] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 02:48:27] [INFO]   -> Found value: BAXTER
[2026-03-22 02:48:27] [INFO]   -> Set field 'streetName' = "BAXTER"
[2026-03-22 02:48:27] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 02:48:27] [INFO]   -> Found value: RD
[2026-03-22 02:48:27] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 02:48:27] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 02:48:27] [INFO]   -> Found value: 5646 BAXTER RD
[2026-03-22 02:48:27] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "5646 BAXTER RD"
[2026-03-22 02:48:27] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 02:48:27] [INFO] Concatenating street name and type
[2026-03-22 02:48:27] [INFO]   -> Combined street name: BAXTER RD
[2026-03-22 02:48:27] [INFO] Built locationCoordinates from lat/lng: 36.10506,-85.63026
[2026-03-22 02:48:27] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000766","dispatchRunNumber":"2026000766","incidentTypeValue1":"NATURAL GAS LEAK","incidentLocationStreetNumber":5646,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.10506000000000170757630257867276668548583984375,"nERISIncidentLongitude":-85.6302600000000069258021540008485317230224609375,"alarm":"2026-03-21 21:44:48","dispatched":"2026-03-21 21:48:24","enroute":"2026-03-21 21:48:24","incidentLocationCross":"JIMMY NEAL RD\/SOUTHFORK RD","cADVehicleID":"EN11","timedispatch":"2026-03-21 21:48:24","timeenroutetoscene":"2026-03-21 21:48:24","policeReportNumber":"20260030755","dispatchNotes":"CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]","cADLog":"CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]","incidentLocationCity":"BAXTER","streetName":"BAXTER RD","incidentAddressTextVersionStreet":"5646 BAXTER RD","locationCoordinates":"36.10506,-85.63026"}
[2026-03-22 02:48:27] [INFO] Number of extracted fields: 23
[2026-03-22 02:48:27] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-22 02:48:27] [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-22 02:48:27] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-22 02:48:27] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 02:48:28] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 02:48:28] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 02:48:28] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 02:48:28] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 02:48:28] [INFO] Found existing IncidentTypeMapping with ID: 695276993a4d83287
[2026-03-22 02:48:40] [INFO] Created new Dispatches record with ID: 69bf587d0b583e86f
[2026-03-22 02:48:40] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_024827.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030755_20260322_024827.XML
[2026-03-22 02:48:40] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_024827.XML
[2026-03-22 03:02:03] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_030203.XML
[2026-03-22 03:02:03] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_030203.XML for user: 68f1466aed072ad4a
[2026-03-22 03:02:03] [INFO] File size: 5076 bytes
[2026-03-22 03:02:03] [INFO] Created FTPFiles record with ID: 69bf5babbc3b717ac
[2026-03-22 03:02:03] [INFO] About to extract fields from XML. File size: 5076 bytes
[2026-03-22 03:02:03] [INFO] Number of mappings: 28
[2026-03-22 03:02:03] [INFO] Starting XML parsing. Content length: 5076
[2026-03-22 03:02:03] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 03:02:03] [INFO] Processing 28 field mappings
[2026-03-22 03:02:03] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 03:02:03] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 03:02:03] [INFO]   -> Found value: PCFD
[2026-03-22 03:02:03] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-22 03:02:03] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 03:02:03] [INFO]   -> Found value: 2026000766
[2026-03-22 03:02:03] [INFO]   -> Set field 'incidentInternalId' = "2026000766"
[2026-03-22 03:02:03] [INFO]   -> Set field 'dispatchRunNumber' = "2026000766"
[2026-03-22 03:02:03] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 03:02:03] [INFO]   -> Found value: NATURAL GAS LEAK
[2026-03-22 03:02:03] [INFO]   -> Set field 'incidentTypeValue1' = "NATURAL GAS LEAK"
[2026-03-22 03:02:03] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 03:02:03] [INFO]   -> Found value: 5646
[2026-03-22 03:02:03] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5646
[2026-03-22 03:02:03] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 03:02:03] [INFO]   -> Found value: TN
[2026-03-22 03:02:03] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 03:02:03] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 03:02:03] [INFO]   -> Found value: 38544
[2026-03-22 03:02:03] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-22 03:02:03] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 03:02:03] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:03] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 03:02:03] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:03] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 03:02:03] [INFO]   -> Found value: 36.10506
[2026-03-22 03:02:03] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.10506000000000170757630257867276668548583984375
[2026-03-22 03:02:03] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 03:02:03] [INFO]   -> Found value: -85.63026
[2026-03-22 03:02:03] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6302600000000069258021540008485317230224609375
[2026-03-22 03:02:03] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 03:02:03] [INFO]   -> Found value: 2026-03-21 21:44:48
[2026-03-22 03:02:03] [INFO]   -> Set field 'alarm' = "2026-03-21 21:44:48"
[2026-03-22 03:02:03] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 03:02:03] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 03:02:03] [INFO]   -> Set field 'dispatched' = "2026-03-21 21:48:24"
[2026-03-22 03:02:03] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 03:02:03] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 03:02:03] [INFO]   -> Set field 'enroute' = "2026-03-21 21:48:24"
[2026-03-22 03:02:03] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 03:02:03] [INFO]   -> Found value: 2026-03-21 22:02:00
[2026-03-22 03:02:03] [INFO]   -> Set field 'onScene' = "2026-03-21 22:02:00"
[2026-03-22 03:02:03] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 03:02:03] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:03] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 03:02:03] [INFO]   -> Found value: JIMMY NEAL RD/SOUTHFORK RD
[2026-03-22 03:02:03] [INFO]   -> Set field 'incidentLocationCross' = "JIMMY NEAL RD\/SOUTHFORK RD"
[2026-03-22 03:02:03] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 03:02:03] [INFO]   -> Found value: EN11
[2026-03-22 03:02:03] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-22 03:02:03] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 03:02:03] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 03:02:03] [INFO]   -> Set field 'timedispatch' = "2026-03-21 21:48:24"
[2026-03-22 03:02:03] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 03:02:03] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 03:02:03] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-21 21:48:24"
[2026-03-22 03:02:03] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 03:02:03] [INFO]   -> Found value: 2026-03-21 22:02:00
[2026-03-22 03:02:03] [INFO]   -> Set field 'timeonscene' = "2026-03-21 22:02:00"
[2026-03-22 03:02:03] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 03:02:03] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:03] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 03:02:03] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:03] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 03:02:03] [INFO]   -> Found value: 20260030755
[2026-03-22 03:02:03] [INFO]   -> Set field 'policeReportNumber' = "20260030755"
[2026-03-22 03:02:03] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 03:02:03] [INFO]   -> Found value: GAS DEPT NOTIFIED WILL CALL WITH ETA  [03/21/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT...
[2026-03-22 03:02:03] [INFO]   -> Set field 'dispatchNotes' = "GAS DEPT NOTIFIED WILL CALL WITH ETA  [03\/21\/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]"
[2026-03-22 03:02:03] [INFO]   -> Set field 'cADLog' = "GAS DEPT NOTIFIED WILL CALL WITH ETA  [03\/21\/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]"
[2026-03-22 03:02:03] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 03:02:03] [INFO]   -> Found value: BAXTER
[2026-03-22 03:02:03] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-22 03:02:03] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 03:02:03] [INFO]   -> Found value: BAXTER
[2026-03-22 03:02:03] [INFO]   -> Set field 'streetName' = "BAXTER"
[2026-03-22 03:02:03] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 03:02:03] [INFO]   -> Found value: RD
[2026-03-22 03:02:03] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 03:02:03] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 03:02:03] [INFO]   -> Found value: 5646 BAXTER RD
[2026-03-22 03:02:03] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "5646 BAXTER RD"
[2026-03-22 03:02:03] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-03-22 03:02:03] [INFO] Concatenating street name and type
[2026-03-22 03:02:03] [INFO]   -> Combined street name: BAXTER RD
[2026-03-22 03:02:03] [INFO] Built locationCoordinates from lat/lng: 36.10506,-85.63026
[2026-03-22 03:02:03] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000766","dispatchRunNumber":"2026000766","incidentTypeValue1":"NATURAL GAS LEAK","incidentLocationStreetNumber":5646,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.10506000000000170757630257867276668548583984375,"nERISIncidentLongitude":-85.6302600000000069258021540008485317230224609375,"alarm":"2026-03-21 21:44:48","dispatched":"2026-03-21 21:48:24","enroute":"2026-03-21 21:48:24","onScene":"2026-03-21 22:02:00","incidentLocationCross":"JIMMY NEAL RD\/SOUTHFORK RD","cADVehicleID":"EN11","timedispatch":"2026-03-21 21:48:24","timeenroutetoscene":"2026-03-21 21:48:24","timeonscene":"2026-03-21 22:02:00","policeReportNumber":"20260030755","dispatchNotes":"GAS DEPT NOTIFIED WILL CALL WITH ETA  [03\/21\/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]","cADLog":"GAS DEPT NOTIFIED WILL CALL WITH ETA  [03\/21\/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]","incidentLocationCity":"BAXTER","streetName":"BAXTER RD","incidentAddressTextVersionStreet":"5646 BAXTER RD","locationCoordinates":"36.10506,-85.63026"}
[2026-03-22 03:02:03] [INFO] Number of extracted fields: 25
[2026-03-22 03:02:03] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-22 03:02:03] [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-22 03:02:03] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-22 03:02:03] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 03:02:04] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 03:02:04] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 03:02:04] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 03:02:04] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 03:02:04] [INFO] Found existing IncidentTypeMapping with ID: 695276993a4d83287
[2026-03-22 03:02:04] [INFO] Found existing Dispatch with cADNumber '2026000766', ID: 69bf587d0b583e86f - will update instead of create
[2026-03-22 03:02:05] [INFO] Updated existing Dispatches record with ID: 69bf587d0b583e86f
[2026-03-22 03:02:05] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_030203.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030755_20260322_030203.XML
[2026-03-22 03:02:05] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_030203.XML
[2026-03-22 03:02:05] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_030205.XML
[2026-03-22 03:02:05] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_030205.XML for user: 68f1466aed072ad4a
[2026-03-22 03:02:05] [INFO] File size: 5076 bytes
[2026-03-22 03:02:06] [INFO] Created FTPFiles record with ID: 69bf5bae5a8b7d355
[2026-03-22 03:02:06] [INFO] About to extract fields from XML. File size: 5076 bytes
[2026-03-22 03:02:06] [INFO] Number of mappings: 28
[2026-03-22 03:02:06] [INFO] Starting XML parsing. Content length: 5076
[2026-03-22 03:02:06] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 03:02:06] [INFO] Processing 28 field mappings
[2026-03-22 03:02:06] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 03:02:06] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 03:02:06] [INFO]   -> Found value: PCFD
[2026-03-22 03:02:06] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-22 03:02:06] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 03:02:06] [INFO]   -> Found value: 2026000766
[2026-03-22 03:02:06] [INFO]   -> Set field 'incidentInternalId' = "2026000766"
[2026-03-22 03:02:06] [INFO]   -> Set field 'dispatchRunNumber' = "2026000766"
[2026-03-22 03:02:06] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 03:02:06] [INFO]   -> Found value: NATURAL GAS LEAK
[2026-03-22 03:02:06] [INFO]   -> Set field 'incidentTypeValue1' = "NATURAL GAS LEAK"
[2026-03-22 03:02:06] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 03:02:06] [INFO]   -> Found value: 5646
[2026-03-22 03:02:06] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5646
[2026-03-22 03:02:06] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 03:02:06] [INFO]   -> Found value: TN
[2026-03-22 03:02:06] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 03:02:06] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 03:02:06] [INFO]   -> Found value: 38544
[2026-03-22 03:02:06] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-22 03:02:06] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 03:02:06] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:06] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 03:02:06] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:06] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 03:02:06] [INFO]   -> Found value: 36.10506
[2026-03-22 03:02:06] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.10506000000000170757630257867276668548583984375
[2026-03-22 03:02:06] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 03:02:06] [INFO]   -> Found value: -85.63026
[2026-03-22 03:02:06] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6302600000000069258021540008485317230224609375
[2026-03-22 03:02:06] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 03:02:06] [INFO]   -> Found value: 2026-03-21 21:44:48
[2026-03-22 03:02:06] [INFO]   -> Set field 'alarm' = "2026-03-21 21:44:48"
[2026-03-22 03:02:06] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 03:02:06] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 03:02:06] [INFO]   -> Set field 'dispatched' = "2026-03-21 21:48:24"
[2026-03-22 03:02:06] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 03:02:06] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 03:02:06] [INFO]   -> Set field 'enroute' = "2026-03-21 21:48:24"
[2026-03-22 03:02:06] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 03:02:06] [INFO]   -> Found value: 2026-03-21 22:02:00
[2026-03-22 03:02:06] [INFO]   -> Set field 'onScene' = "2026-03-21 22:02:00"
[2026-03-22 03:02:06] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 03:02:06] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:06] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 03:02:06] [INFO]   -> Found value: JIMMY NEAL RD/SOUTHFORK RD
[2026-03-22 03:02:06] [INFO]   -> Set field 'incidentLocationCross' = "JIMMY NEAL RD\/SOUTHFORK RD"
[2026-03-22 03:02:06] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 03:02:06] [INFO]   -> Found value: EN11
[2026-03-22 03:02:06] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-22 03:02:06] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 03:02:06] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 03:02:06] [INFO]   -> Set field 'timedispatch' = "2026-03-21 21:48:24"
[2026-03-22 03:02:06] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 03:02:06] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 03:02:06] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-21 21:48:24"
[2026-03-22 03:02:06] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 03:02:06] [INFO]   -> Found value: 2026-03-21 22:02:00
[2026-03-22 03:02:06] [INFO]   -> Set field 'timeonscene' = "2026-03-21 22:02:00"
[2026-03-22 03:02:06] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 03:02:06] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:06] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 03:02:06] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:06] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 03:02:06] [INFO]   -> Found value: 20260030755
[2026-03-22 03:02:06] [INFO]   -> Set field 'policeReportNumber' = "20260030755"
[2026-03-22 03:02:06] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 03:02:06] [INFO]   -> Found value: GAS DEPT NOTIFIED WILL CALL WITH ETA  [03/21/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT...
[2026-03-22 03:02:06] [INFO]   -> Set field 'dispatchNotes' = "GAS DEPT NOTIFIED WILL CALL WITH ETA  [03\/21\/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]"
[2026-03-22 03:02:06] [INFO]   -> Set field 'cADLog' = "GAS DEPT NOTIFIED WILL CALL WITH ETA  [03\/21\/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]"
[2026-03-22 03:02:06] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 03:02:06] [INFO]   -> Found value: BAXTER
[2026-03-22 03:02:06] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-22 03:02:06] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 03:02:06] [INFO]   -> Found value: BAXTER
[2026-03-22 03:02:06] [INFO]   -> Set field 'streetName' = "BAXTER"
[2026-03-22 03:02:06] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 03:02:06] [INFO]   -> Found value: RD
[2026-03-22 03:02:06] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 03:02:06] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 03:02:06] [INFO]   -> Found value: 5646 BAXTER RD
[2026-03-22 03:02:06] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "5646 BAXTER RD"
[2026-03-22 03:02:06] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-03-22 03:02:06] [INFO] Concatenating street name and type
[2026-03-22 03:02:06] [INFO]   -> Combined street name: BAXTER RD
[2026-03-22 03:02:06] [INFO] Built locationCoordinates from lat/lng: 36.10506,-85.63026
[2026-03-22 03:02:06] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000766","dispatchRunNumber":"2026000766","incidentTypeValue1":"NATURAL GAS LEAK","incidentLocationStreetNumber":5646,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.10506000000000170757630257867276668548583984375,"nERISIncidentLongitude":-85.6302600000000069258021540008485317230224609375,"alarm":"2026-03-21 21:44:48","dispatched":"2026-03-21 21:48:24","enroute":"2026-03-21 21:48:24","onScene":"2026-03-21 22:02:00","incidentLocationCross":"JIMMY NEAL RD\/SOUTHFORK RD","cADVehicleID":"EN11","timedispatch":"2026-03-21 21:48:24","timeenroutetoscene":"2026-03-21 21:48:24","timeonscene":"2026-03-21 22:02:00","policeReportNumber":"20260030755","dispatchNotes":"GAS DEPT NOTIFIED WILL CALL WITH ETA  [03\/21\/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]","cADLog":"GAS DEPT NOTIFIED WILL CALL WITH ETA  [03\/21\/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]","incidentLocationCity":"BAXTER","streetName":"BAXTER RD","incidentAddressTextVersionStreet":"5646 BAXTER RD","locationCoordinates":"36.10506,-85.63026"}
[2026-03-22 03:02:06] [INFO] Number of extracted fields: 25
[2026-03-22 03:02:06] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-22 03:02: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-22 03:02:06] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-22 03:02:06] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 03:02:06] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 03:02: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-22 03:02: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-22 03:02:06] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 03:02:07] [INFO] Found existing IncidentTypeMapping with ID: 695276993a4d83287
[2026-03-22 03:02:07] [INFO] Found existing Dispatch with cADNumber '2026000766', ID: 69bf587d0b583e86f - will update instead of create
[2026-03-22 03:02:07] [INFO] Updated existing Dispatches record with ID: 69bf587d0b583e86f
[2026-03-22 03:02:07] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_030205.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030755_20260322_030205.XML
[2026-03-22 03:02:07] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_030205.XML
[2026-03-22 03:02:07] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_030206.XML
[2026-03-22 03:02:07] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_030206.XML for user: 68f1466aed072ad4a
[2026-03-22 03:02:07] [INFO] File size: 5076 bytes
[2026-03-22 03:02:08] [INFO] Created FTPFiles record with ID: 69bf5bb03f9f2cd76
[2026-03-22 03:02:08] [INFO] About to extract fields from XML. File size: 5076 bytes
[2026-03-22 03:02:08] [INFO] Number of mappings: 28
[2026-03-22 03:02:08] [INFO] Starting XML parsing. Content length: 5076
[2026-03-22 03:02:08] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 03:02:08] [INFO] Processing 28 field mappings
[2026-03-22 03:02:08] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 03:02:08] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 03:02:08] [INFO]   -> Found value: PCFD
[2026-03-22 03:02:08] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-22 03:02:08] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 03:02:08] [INFO]   -> Found value: 2026000766
[2026-03-22 03:02:08] [INFO]   -> Set field 'incidentInternalId' = "2026000766"
[2026-03-22 03:02:08] [INFO]   -> Set field 'dispatchRunNumber' = "2026000766"
[2026-03-22 03:02:08] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 03:02:08] [INFO]   -> Found value: NATURAL GAS LEAK
[2026-03-22 03:02:08] [INFO]   -> Set field 'incidentTypeValue1' = "NATURAL GAS LEAK"
[2026-03-22 03:02:08] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 03:02:08] [INFO]   -> Found value: 5646
[2026-03-22 03:02:08] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5646
[2026-03-22 03:02:08] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 03:02:08] [INFO]   -> Found value: TN
[2026-03-22 03:02:08] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 03:02:08] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 03:02:08] [INFO]   -> Found value: 38544
[2026-03-22 03:02:08] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-22 03:02:08] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 03:02:08] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:08] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 03:02:08] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:08] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 03:02:08] [INFO]   -> Found value: 36.10506
[2026-03-22 03:02:08] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.10506000000000170757630257867276668548583984375
[2026-03-22 03:02:08] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 03:02:08] [INFO]   -> Found value: -85.63026
[2026-03-22 03:02:08] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6302600000000069258021540008485317230224609375
[2026-03-22 03:02:08] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 03:02:08] [INFO]   -> Found value: 2026-03-21 21:44:48
[2026-03-22 03:02:08] [INFO]   -> Set field 'alarm' = "2026-03-21 21:44:48"
[2026-03-22 03:02:08] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 03:02:08] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 03:02:08] [INFO]   -> Set field 'dispatched' = "2026-03-21 21:48:24"
[2026-03-22 03:02:08] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 03:02:08] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 03:02:08] [INFO]   -> Set field 'enroute' = "2026-03-21 21:48:24"
[2026-03-22 03:02:08] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 03:02:08] [INFO]   -> Found value: 2026-03-21 22:02:00
[2026-03-22 03:02:08] [INFO]   -> Set field 'onScene' = "2026-03-21 22:02:00"
[2026-03-22 03:02:08] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 03:02:08] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:08] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 03:02:08] [INFO]   -> Found value: JIMMY NEAL RD/SOUTHFORK RD
[2026-03-22 03:02:08] [INFO]   -> Set field 'incidentLocationCross' = "JIMMY NEAL RD\/SOUTHFORK RD"
[2026-03-22 03:02:08] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 03:02:08] [INFO]   -> Found value: EN11
[2026-03-22 03:02:08] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-22 03:02:08] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 03:02:08] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 03:02:08] [INFO]   -> Set field 'timedispatch' = "2026-03-21 21:48:24"
[2026-03-22 03:02:08] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 03:02:08] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 03:02:08] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-21 21:48:24"
[2026-03-22 03:02:08] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 03:02:08] [INFO]   -> Found value: 2026-03-21 22:02:00
[2026-03-22 03:02:08] [INFO]   -> Set field 'timeonscene' = "2026-03-21 22:02:00"
[2026-03-22 03:02:08] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 03:02:08] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:08] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 03:02:08] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:08] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 03:02:08] [INFO]   -> Found value: 20260030755
[2026-03-22 03:02:08] [INFO]   -> Set field 'policeReportNumber' = "20260030755"
[2026-03-22 03:02:08] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 03:02:08] [INFO]   -> Found value: GAS DEPT NOTIFIED WILL CALL WITH ETA  [03/21/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT...
[2026-03-22 03:02:08] [INFO]   -> Set field 'dispatchNotes' = "GAS DEPT NOTIFIED WILL CALL WITH ETA  [03\/21\/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]"
[2026-03-22 03:02:08] [INFO]   -> Set field 'cADLog' = "GAS DEPT NOTIFIED WILL CALL WITH ETA  [03\/21\/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]"
[2026-03-22 03:02:08] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 03:02:08] [INFO]   -> Found value: BAXTER
[2026-03-22 03:02:08] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-22 03:02:08] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 03:02:08] [INFO]   -> Found value: BAXTER
[2026-03-22 03:02:08] [INFO]   -> Set field 'streetName' = "BAXTER"
[2026-03-22 03:02:08] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 03:02:08] [INFO]   -> Found value: RD
[2026-03-22 03:02:08] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 03:02:08] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 03:02:08] [INFO]   -> Found value: 5646 BAXTER RD
[2026-03-22 03:02:08] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "5646 BAXTER RD"
[2026-03-22 03:02:08] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-03-22 03:02:08] [INFO] Concatenating street name and type
[2026-03-22 03:02:08] [INFO]   -> Combined street name: BAXTER RD
[2026-03-22 03:02:08] [INFO] Built locationCoordinates from lat/lng: 36.10506,-85.63026
[2026-03-22 03:02:08] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000766","dispatchRunNumber":"2026000766","incidentTypeValue1":"NATURAL GAS LEAK","incidentLocationStreetNumber":5646,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.10506000000000170757630257867276668548583984375,"nERISIncidentLongitude":-85.6302600000000069258021540008485317230224609375,"alarm":"2026-03-21 21:44:48","dispatched":"2026-03-21 21:48:24","enroute":"2026-03-21 21:48:24","onScene":"2026-03-21 22:02:00","incidentLocationCross":"JIMMY NEAL RD\/SOUTHFORK RD","cADVehicleID":"EN11","timedispatch":"2026-03-21 21:48:24","timeenroutetoscene":"2026-03-21 21:48:24","timeonscene":"2026-03-21 22:02:00","policeReportNumber":"20260030755","dispatchNotes":"GAS DEPT NOTIFIED WILL CALL WITH ETA  [03\/21\/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]","cADLog":"GAS DEPT NOTIFIED WILL CALL WITH ETA  [03\/21\/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]","incidentLocationCity":"BAXTER","streetName":"BAXTER RD","incidentAddressTextVersionStreet":"5646 BAXTER RD","locationCoordinates":"36.10506,-85.63026"}
[2026-03-22 03:02:08] [INFO] Number of extracted fields: 25
[2026-03-22 03:02:08] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-22 03:02:08] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-22 03:02:08] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-22 03:02:08] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 03:02:08] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 03:02:08] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 03:02:08] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 03:02:08] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 03:02:09] [INFO] Found existing IncidentTypeMapping with ID: 695276993a4d83287
[2026-03-22 03:02:09] [INFO] Found existing Dispatch with cADNumber '2026000766', ID: 69bf587d0b583e86f - will update instead of create
[2026-03-22 03:02:09] [INFO] Updated existing Dispatches record with ID: 69bf587d0b583e86f
[2026-03-22 03:02:09] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_030206.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030755_20260322_030206.XML
[2026-03-22 03:02:09] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_030206.XML
[2026-03-22 03:02:09] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_030209.XML
[2026-03-22 03:02:09] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_030209.XML for user: 68f1466aed072ad4a
[2026-03-22 03:02:09] [INFO] File size: 5076 bytes
[2026-03-22 03:02:10] [INFO] Created FTPFiles record with ID: 69bf5bb21ea6adb1e
[2026-03-22 03:02:10] [INFO] About to extract fields from XML. File size: 5076 bytes
[2026-03-22 03:02:10] [INFO] Number of mappings: 28
[2026-03-22 03:02:10] [INFO] Starting XML parsing. Content length: 5076
[2026-03-22 03:02:10] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 03:02:10] [INFO] Processing 28 field mappings
[2026-03-22 03:02:10] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 03:02:10] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 03:02:10] [INFO]   -> Found value: PCFD
[2026-03-22 03:02:10] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-22 03:02:10] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 03:02:10] [INFO]   -> Found value: 2026000766
[2026-03-22 03:02:10] [INFO]   -> Set field 'incidentInternalId' = "2026000766"
[2026-03-22 03:02:10] [INFO]   -> Set field 'dispatchRunNumber' = "2026000766"
[2026-03-22 03:02:10] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 03:02:10] [INFO]   -> Found value: NATURAL GAS LEAK
[2026-03-22 03:02:10] [INFO]   -> Set field 'incidentTypeValue1' = "NATURAL GAS LEAK"
[2026-03-22 03:02:10] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 03:02:10] [INFO]   -> Found value: 5646
[2026-03-22 03:02:10] [INFO]   -> Set field 'incidentLocationStreetNumber' = 5646
[2026-03-22 03:02:10] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 03:02:10] [INFO]   -> Found value: TN
[2026-03-22 03:02:10] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 03:02:10] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 03:02:10] [INFO]   -> Found value: 38544
[2026-03-22 03:02:10] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-22 03:02:10] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 03:02:10] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:10] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 03:02:10] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:10] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 03:02:10] [INFO]   -> Found value: 36.10506
[2026-03-22 03:02:10] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.10506000000000170757630257867276668548583984375
[2026-03-22 03:02:10] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 03:02:10] [INFO]   -> Found value: -85.63026
[2026-03-22 03:02:10] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6302600000000069258021540008485317230224609375
[2026-03-22 03:02:10] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 03:02:10] [INFO]   -> Found value: 2026-03-21 21:44:48
[2026-03-22 03:02:10] [INFO]   -> Set field 'alarm' = "2026-03-21 21:44:48"
[2026-03-22 03:02:10] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 03:02:10] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 03:02:10] [INFO]   -> Set field 'dispatched' = "2026-03-21 21:48:24"
[2026-03-22 03:02:10] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 03:02:10] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 03:02:10] [INFO]   -> Set field 'enroute' = "2026-03-21 21:48:24"
[2026-03-22 03:02:10] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 03:02:10] [INFO]   -> Found value: 2026-03-21 22:02:00
[2026-03-22 03:02:10] [INFO]   -> Set field 'onScene' = "2026-03-21 22:02:00"
[2026-03-22 03:02:10] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 03:02:10] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:10] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 03:02:10] [INFO]   -> Found value: JIMMY NEAL RD/SOUTHFORK RD
[2026-03-22 03:02:10] [INFO]   -> Set field 'incidentLocationCross' = "JIMMY NEAL RD\/SOUTHFORK RD"
[2026-03-22 03:02:10] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 03:02:10] [INFO]   -> Found value: EN11
[2026-03-22 03:02:10] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-22 03:02:10] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 03:02:10] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 03:02:10] [INFO]   -> Set field 'timedispatch' = "2026-03-21 21:48:24"
[2026-03-22 03:02:10] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 03:02:10] [INFO]   -> Found value: 2026-03-21 21:48:24
[2026-03-22 03:02:10] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-21 21:48:24"
[2026-03-22 03:02:10] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 03:02:10] [INFO]   -> Found value: 2026-03-21 22:02:00
[2026-03-22 03:02:10] [INFO]   -> Set field 'timeonscene' = "2026-03-21 22:02:00"
[2026-03-22 03:02:10] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 03:02:10] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:10] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 03:02:10] [INFO]   -> No value found (null or empty)
[2026-03-22 03:02:10] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 03:02:10] [INFO]   -> Found value: 20260030755
[2026-03-22 03:02:10] [INFO]   -> Set field 'policeReportNumber' = "20260030755"
[2026-03-22 03:02:10] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 03:02:10] [INFO]   -> Found value: GAS DEPT NOTIFIED WILL CALL WITH ETA  [03/21/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT...
[2026-03-22 03:02:10] [INFO]   -> Set field 'dispatchNotes' = "GAS DEPT NOTIFIED WILL CALL WITH ETA  [03\/21\/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]"
[2026-03-22 03:02:10] [INFO]   -> Set field 'cADLog' = "GAS DEPT NOTIFIED WILL CALL WITH ETA  [03\/21\/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]"
[2026-03-22 03:02:10] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 03:02:10] [INFO]   -> Found value: BAXTER
[2026-03-22 03:02:10] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-22 03:02:10] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 03:02:10] [INFO]   -> Found value: BAXTER
[2026-03-22 03:02:10] [INFO]   -> Set field 'streetName' = "BAXTER"
[2026-03-22 03:02:10] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 03:02:10] [INFO]   -> Found value: RD
[2026-03-22 03:02:10] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 03:02:10] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 03:02:10] [INFO]   -> Found value: 5646 BAXTER RD
[2026-03-22 03:02:10] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "5646 BAXTER RD"
[2026-03-22 03:02:10] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-03-22 03:02:10] [INFO] Concatenating street name and type
[2026-03-22 03:02:10] [INFO]   -> Combined street name: BAXTER RD
[2026-03-22 03:02:10] [INFO] Built locationCoordinates from lat/lng: 36.10506,-85.63026
[2026-03-22 03:02:10] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000766","dispatchRunNumber":"2026000766","incidentTypeValue1":"NATURAL GAS LEAK","incidentLocationStreetNumber":5646,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.10506000000000170757630257867276668548583984375,"nERISIncidentLongitude":-85.6302600000000069258021540008485317230224609375,"alarm":"2026-03-21 21:44:48","dispatched":"2026-03-21 21:48:24","enroute":"2026-03-21 21:48:24","onScene":"2026-03-21 22:02:00","incidentLocationCross":"JIMMY NEAL RD\/SOUTHFORK RD","cADVehicleID":"EN11","timedispatch":"2026-03-21 21:48:24","timeenroutetoscene":"2026-03-21 21:48:24","timeonscene":"2026-03-21 22:02:00","policeReportNumber":"20260030755","dispatchNotes":"GAS DEPT NOTIFIED WILL CALL WITH ETA  [03\/21\/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]","cADLog":"GAS DEPT NOTIFIED WILL CALL WITH ETA  [03\/21\/26 21:54:32 SVOKOUN2] CALLER DID NOT KNOW WHAT GAS DEPT SHE HAS  [03\/21\/26 21:47:08 SVOKOUN2] GAS LEAK IN BASEMENT \/\/  [03\/21\/26 21:45:32 SVOKOUN2]]","incidentLocationCity":"BAXTER","streetName":"BAXTER RD","incidentAddressTextVersionStreet":"5646 BAXTER RD","locationCoordinates":"36.10506,-85.63026"}
[2026-03-22 03:02:10] [INFO] Number of extracted fields: 25
[2026-03-22 03:02:10] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-22 03:02: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-22 03:02:10] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-22 03:02:10] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 03:02:10] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 03:02: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-22 03:02: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-22 03:02:10] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 03:02:10] [INFO] Found existing IncidentTypeMapping with ID: 695276993a4d83287
[2026-03-22 03:02:11] [INFO] Found existing Dispatch with cADNumber '2026000766', ID: 69bf587d0b583e86f - will update instead of create
[2026-03-22 03:02:11] [INFO] Updated existing Dispatches record with ID: 69bf587d0b583e86f
[2026-03-22 03:02:11] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_030209.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030755_20260322_030209.XML
[2026-03-22 03:02:11] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030755_20260322_030209.XML
[2026-03-22 04:39:13] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_043913.XML
[2026-03-22 04:39:13] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_043913.XML for user: 68f1466aed072ad4a
[2026-03-22 04:39:13] [INFO] File size: 5044 bytes
[2026-03-22 04:39:13] [INFO] Created FTPFiles record with ID: 69bf7271d2c5a113a
[2026-03-22 04:39:13] [INFO] About to extract fields from XML. File size: 5044 bytes
[2026-03-22 04:39:13] [INFO] Number of mappings: 28
[2026-03-22 04:39:13] [INFO] Starting XML parsing. Content length: 5044
[2026-03-22 04:39:13] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 04:39:13] [INFO] Processing 28 field mappings
[2026-03-22 04:39:13] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 04:39:13] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 04:39:13] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 04:39:13] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 04:39:13] [INFO]   -> Found value: MFD
EMS
[2026-03-22 04:39:13] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS"
[2026-03-22 04:39:13] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 04:39:13] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 04:39:13] [INFO]   -> Found value: 2026000102
[2026-03-22 04:39:13] [INFO]   -> Set field 'incidentInternalId' = "2026000102"
[2026-03-22 04:39:13] [INFO]   -> Set field 'dispatchRunNumber' = "2026000102"
[2026-03-22 04:39:13] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 04:39:13] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-22 04:39:13] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-22 04:39:13] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 04:39:13] [INFO]   -> Found value: 1233
[2026-03-22 04:39:13] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1233
[2026-03-22 04:39:13] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 04:39:13] [INFO]   -> Found value: TN
[2026-03-22 04:39:13] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 04:39:13] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 04:39:13] [INFO]   -> Found value: 38574
[2026-03-22 04:39:13] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 04:39:13] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 04:39:13] [INFO]   -> No value found (null or empty)
[2026-03-22 04:39:13] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 04:39:13] [INFO]   -> No value found (null or empty)
[2026-03-22 04:39:13] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 04:39:13] [INFO]   -> Found value: 36.15738
[2026-03-22 04:39:13] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1573800000000034060576581396162509918212890625
[2026-03-22 04:39:13] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 04:39:13] [INFO]   -> Found value: -85.25298
[2026-03-22 04:39:13] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2529799999999937654138193465769290924072265625
[2026-03-22 04:39:13] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 04:39:13] [INFO]   -> Found value: 2026-03-21 23:38:27
[2026-03-22 04:39:13] [INFO]   -> Set field 'alarm' = "2026-03-21 23:38:27"
[2026-03-22 04:39:13] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 04:39:13] [INFO]   -> Found value: 2026-03-21 23:39:07
[2026-03-22 04:39:13] [INFO]   -> Set field 'dispatched' = "2026-03-21 23:39:07"
[2026-03-22 04:39:13] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 04:39:13] [INFO]   -> No value found (null or empty)
[2026-03-22 04:39:13] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 04:39:13] [INFO]   -> No value found (null or empty)
[2026-03-22 04:39:13] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 04:39:13] [INFO]   -> No value found (null or empty)
[2026-03-22 04:39:13] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 04:39:13] [INFO]   -> Found value: EVERGREEN LN/PHILLIPS DR
[2026-03-22 04:39:13] [INFO]   -> Set field 'incidentLocationCross' = "EVERGREEN LN\/PHILLIPS DR"
[2026-03-22 04:39:13] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 04:39:13] [INFO]   -> Found value: MFR
[2026-03-22 04:39:13] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-03-22 04:39:13] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 04:39:13] [INFO]   -> Found value: 2026-03-21 23:39:07
[2026-03-22 04:39:13] [INFO]   -> Set field 'timedispatch' = "2026-03-21 23:39:07"
[2026-03-22 04:39:13] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 04:39:13] [INFO]   -> No value found (null or empty)
[2026-03-22 04:39:13] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 04:39:13] [INFO]   -> No value found (null or empty)
[2026-03-22 04:39:13] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 04:39:13] [INFO]   -> No value found (null or empty)
[2026-03-22 04:39:13] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 04:39:13] [INFO]   -> No value found (null or empty)
[2026-03-22 04:39:13] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 04:39:13] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 04:39:13] [INFO]   -> Found value: 20260030809
[2026-03-22 04:39:13] [INFO]   -> Set field 'policeReportNumber' = "20260030809"
[2026-03-22 04:39:13] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 04:39:13] [INFO]   -> Found value: Event spawned from ABDOMINAL PAIN.  [03/21/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  ...
[2026-03-22 04:39:13] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:39:13] [INFO]   -> Set field 'cADLog' = "Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:39:13] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 04:39:13] [INFO]   -> Found value: MONTEREY
[2026-03-22 04:39:13] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 04:39:13] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 04:39:13] [INFO]   -> Found value: HANGING LIMB
[2026-03-22 04:39:13] [INFO]   -> Set field 'streetName' = "HANGING LIMB"
[2026-03-22 04:39:13] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 04:39:13] [INFO]   -> Found value: RD
[2026-03-22 04:39:13] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 04:39:13] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 04:39:13] [INFO]   -> Found value: 1233 HANGING LIMB RD
[2026-03-22 04:39:13] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1233 HANGING LIMB RD"
[2026-03-22 04:39:13] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 04:39:13] [INFO] Concatenating street name and type
[2026-03-22 04:39:13] [INFO]   -> Combined street name: HANGING LIMB RD
[2026-03-22 04:39:13] [INFO] Built locationCoordinates from lat/lng: 36.15738,-85.25298
[2026-03-22 04:39:13] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS","incidentInternalId":"2026000102","dispatchRunNumber":"2026000102","incidentTypeValue1":"ABDOMINAL PAIN","incidentLocationStreetNumber":1233,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1573800000000034060576581396162509918212890625,"nERISIncidentLongitude":-85.2529799999999937654138193465769290924072265625,"alarm":"2026-03-21 23:38:27","dispatched":"2026-03-21 23:39:07","incidentLocationCross":"EVERGREEN LN\/PHILLIPS DR","cADVehicleID":"MFR","timedispatch":"2026-03-21 23:39:07","policeReportNumber":"20260030809","dispatchNotes":"Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","cADLog":"Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","incidentLocationCity":"MONTEREY","streetName":"HANGING LIMB RD","incidentAddressTextVersionStreet":"1233 HANGING LIMB RD","locationCoordinates":"36.15738,-85.25298"}
[2026-03-22 04:39:13] [INFO] Number of extracted fields: 21
[2026-03-22 04:39:13] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS'
[2026-03-22 04:39:13] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS', Parsed IDs = ["MFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 04:39:13] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS"]
[2026-03-22 04:39:13] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 04:39:14] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 04:39:14] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-03-22 04:39:14] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 04:39:14] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 04:39:14] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 04:39:14] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 04:39:14] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 04:39:14] [INFO] Found existing IncidentTypeMapping with ID: 69954612e39d14933
[2026-03-22 04:39:18] [INFO] Created new Dispatches record with ID: 69bf7273697fef282
[2026-03-22 04:39:18] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_043913.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260030809_20260322_043913.XML
[2026-03-22 04:39:18] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_043913.XML
[2026-03-22 04:40:43] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044043.XML
[2026-03-22 04:40:43] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044043.XML for user: 68f1466aed072ad4a
[2026-03-22 04:40:43] [INFO] File size: 5498 bytes
[2026-03-22 04:40:43] [INFO] Created FTPFiles record with ID: 69bf72cb8ce6df81a
[2026-03-22 04:40:43] [INFO] About to extract fields from XML. File size: 5498 bytes
[2026-03-22 04:40:43] [INFO] Number of mappings: 28
[2026-03-22 04:40:43] [INFO] Starting XML parsing. Content length: 5498
[2026-03-22 04:40:43] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 04:40:43] [INFO] Processing 28 field mappings
[2026-03-22 04:40:43] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 04:40:43] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 04:40:43] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 04:40:43] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 04:40:43] [INFO]   -> Found value: PCFD
EMS
MFD
RESC
[2026-03-22 04:40:43] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD\nRESC"
[2026-03-22 04:40:43] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 04:40:43] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 04:40:43] [INFO]   -> Found value: 2026000767
[2026-03-22 04:40:43] [INFO]   -> Set field 'incidentInternalId' = "2026000767"
[2026-03-22 04:40:43] [INFO]   -> Set field 'dispatchRunNumber' = "2026000767"
[2026-03-22 04:40:43] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 04:40:43] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-22 04:40:43] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-22 04:40:43] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 04:40:43] [INFO]   -> Found value: 1233
[2026-03-22 04:40:43] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1233
[2026-03-22 04:40:43] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 04:40:43] [INFO]   -> Found value: TN
[2026-03-22 04:40:43] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 04:40:43] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 04:40:43] [INFO]   -> Found value: 38574
[2026-03-22 04:40:43] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 04:40:43] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 04:40:43] [INFO]   -> No value found (null or empty)
[2026-03-22 04:40:43] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 04:40:43] [INFO]   -> No value found (null or empty)
[2026-03-22 04:40:43] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 04:40:43] [INFO]   -> Found value: 36.15738
[2026-03-22 04:40:43] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1573800000000034060576581396162509918212890625
[2026-03-22 04:40:43] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 04:40:43] [INFO]   -> Found value: -85.25298
[2026-03-22 04:40:43] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2529799999999937654138193465769290924072265625
[2026-03-22 04:40:43] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 04:40:43] [INFO]   -> Found value: 2026-03-21 23:39:34
[2026-03-22 04:40:43] [INFO]   -> Set field 'alarm' = "2026-03-21 23:39:34"
[2026-03-22 04:40:43] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 04:40:43] [INFO]   -> Found value: 2026-03-21 23:40:36
[2026-03-22 04:40:43] [INFO]   -> Set field 'dispatched' = "2026-03-21 23:40:36"
[2026-03-22 04:40:43] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 04:40:43] [INFO]   -> No value found (null or empty)
[2026-03-22 04:40:43] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 04:40:43] [INFO]   -> No value found (null or empty)
[2026-03-22 04:40:43] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 04:40:43] [INFO]   -> No value found (null or empty)
[2026-03-22 04:40:43] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 04:40:43] [INFO]   -> Found value: EVERGREEN LN/PHILLIPS DR
[2026-03-22 04:40:43] [INFO]   -> Set field 'incidentLocationCross' = "EVERGREEN LN\/PHILLIPS DR"
[2026-03-22 04:40:43] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 04:40:43] [INFO]   -> Found value: PCFR
[2026-03-22 04:40:43] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 04:40:43] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 04:40:43] [INFO]   -> Found value: 2026-03-21 23:40:36
[2026-03-22 04:40:43] [INFO]   -> Set field 'timedispatch' = "2026-03-21 23:40:36"
[2026-03-22 04:40:43] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 04:40:43] [INFO]   -> No value found (null or empty)
[2026-03-22 04:40:43] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 04:40:43] [INFO]   -> No value found (null or empty)
[2026-03-22 04:40:43] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 04:40:43] [INFO]   -> No value found (null or empty)
[2026-03-22 04:40:43] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 04:40:43] [INFO]   -> No value found (null or empty)
[2026-03-22 04:40:43] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 04:40:43] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 04:40:43] [INFO]   -> Found value: 20260030813
[2026-03-22 04:40:43] [INFO]   -> Set field 'policeReportNumber' = "20260030813"
[2026-03-22 04:40:43] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 04:40:43] [INFO]   -> Found value: Event spawned from ABDOMINAL PAIN.  [03/21/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN...
[2026-03-22 04:40:43] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:40:43] [INFO]   -> Set field 'cADLog' = "Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:40:43] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 04:40:43] [INFO]   -> Found value: MONTEREY
[2026-03-22 04:40:43] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 04:40:43] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 04:40:43] [INFO]   -> Found value: HANGING LIMB
[2026-03-22 04:40:43] [INFO]   -> Set field 'streetName' = "HANGING LIMB"
[2026-03-22 04:40:43] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 04:40:43] [INFO]   -> Found value: RD
[2026-03-22 04:40:43] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 04:40:43] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 04:40:43] [INFO]   -> Found value: 1233 HANGING LIMB RD
[2026-03-22 04:40:43] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1233 HANGING LIMB RD"
[2026-03-22 04:40:43] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 04:40:43] [INFO] Concatenating street name and type
[2026-03-22 04:40:43] [INFO]   -> Combined street name: HANGING LIMB RD
[2026-03-22 04:40:43] [INFO] Built locationCoordinates from lat/lng: 36.15738,-85.25298
[2026-03-22 04:40:43] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD\nRESC","incidentInternalId":"2026000767","dispatchRunNumber":"2026000767","incidentTypeValue1":"ABDOMINAL PAIN","incidentLocationStreetNumber":1233,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1573800000000034060576581396162509918212890625,"nERISIncidentLongitude":-85.2529799999999937654138193465769290924072265625,"alarm":"2026-03-21 23:39:34","dispatched":"2026-03-21 23:40:36","incidentLocationCross":"EVERGREEN LN\/PHILLIPS DR","cADVehicleID":"PCFR","timedispatch":"2026-03-21 23:40:36","policeReportNumber":"20260030813","dispatchNotes":"Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","cADLog":"Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","incidentLocationCity":"MONTEREY","streetName":"HANGING LIMB RD","incidentAddressTextVersionStreet":"1233 HANGING LIMB RD","locationCoordinates":"36.15738,-85.25298"}
[2026-03-22 04:40:43] [INFO] Number of extracted fields: 21
[2026-03-22 04:40:43] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD
RESC'
[2026-03-22 04:40:43] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD
RESC', Parsed IDs = ["PCFD","EMS","MFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 04:40:43] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD","RESC"]
[2026-03-22 04:40:43] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 04:40:43] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 04:40:43] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD","RESC"]
[2026-03-22 04:40:43] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 04:40:43] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 04:40:43] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 04:40:43] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 04:40:43] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 04:40:44] [INFO] Found existing IncidentTypeMapping with ID: 6950ee4041befee87
[2026-03-22 04:40:54] [INFO] Created new Dispatches record with ID: 69bf72cc684c1418d
[2026-03-22 04:40:54] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044043.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030813_20260322_044043.XML
[2026-03-22 04:40:54] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044043.XML
[2026-03-22 04:41:35] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044135.XML
[2026-03-22 04:41:35] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044135.XML for user: 68f1466aed072ad4a
[2026-03-22 04:41:35] [INFO] File size: 6569 bytes
[2026-03-22 04:41:36] [INFO] Created FTPFiles record with ID: 69bf73002256132b3
[2026-03-22 04:41:36] [INFO] About to extract fields from XML. File size: 6569 bytes
[2026-03-22 04:41:36] [INFO] Number of mappings: 28
[2026-03-22 04:41:36] [INFO] Starting XML parsing. Content length: 6569
[2026-03-22 04:41:36] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 04:41:36] [INFO] Processing 28 field mappings
[2026-03-22 04:41:36] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 04:41:36] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 04:41:36] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 04:41:36] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 04:41:36] [INFO]   -> Found value: PCFD
EMS
MFD
RESC
[2026-03-22 04:41:36] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD\nRESC"
[2026-03-22 04:41:36] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 04:41:36] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 04:41:36] [INFO]   -> Found value: 2026000767
[2026-03-22 04:41:36] [INFO]   -> Set field 'incidentInternalId' = "2026000767"
[2026-03-22 04:41:36] [INFO]   -> Set field 'dispatchRunNumber' = "2026000767"
[2026-03-22 04:41:36] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 04:41:36] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-22 04:41:36] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-22 04:41:36] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 04:41:36] [INFO]   -> Found value: 1233
[2026-03-22 04:41:36] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1233
[2026-03-22 04:41:36] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 04:41:36] [INFO]   -> Found value: TN
[2026-03-22 04:41:36] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 04:41:36] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 04:41:36] [INFO]   -> Found value: 38574
[2026-03-22 04:41:36] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 04:41:36] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 04:41:36] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:36] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 04:41:36] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:36] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 04:41:36] [INFO]   -> Found value: 36.15738
[2026-03-22 04:41:36] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1573800000000034060576581396162509918212890625
[2026-03-22 04:41:36] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 04:41:36] [INFO]   -> Found value: -85.25298
[2026-03-22 04:41:36] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2529799999999937654138193465769290924072265625
[2026-03-22 04:41:36] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 04:41:36] [INFO]   -> Found value: 2026-03-21 23:39:34
[2026-03-22 04:41:36] [INFO]   -> Set field 'alarm' = "2026-03-21 23:39:34"
[2026-03-22 04:41:36] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 04:41:36] [INFO]   -> Found value: 2026-03-21 23:40:36
[2026-03-22 04:41:36] [INFO]   -> Set field 'dispatched' = "2026-03-21 23:40:36"
[2026-03-22 04:41:36] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 04:41:36] [INFO]   -> Found value: 2026-03-21 23:41:29
[2026-03-22 04:41:36] [INFO]   -> Set field 'enroute' = "2026-03-21 23:41:29"
[2026-03-22 04:41:36] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 04:41:36] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:36] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 04:41:36] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:36] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 04:41:36] [INFO]   -> Found value: EVERGREEN LN/PHILLIPS DR
[2026-03-22 04:41:36] [INFO]   -> Set field 'incidentLocationCross' = "EVERGREEN LN\/PHILLIPS DR"
[2026-03-22 04:41:36] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 04:41:36] [INFO]   -> Found value: EN21
[2026-03-22 04:41:36] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-22 04:41:36] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 04:41:36] [INFO]   -> Found value: 2026-03-21 23:41:27
[2026-03-22 04:41:36] [INFO]   -> Set field 'timedispatch' = "2026-03-21 23:41:27"
[2026-03-22 04:41:36] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 04:41:36] [INFO]   -> Found value: 2026-03-21 23:41:29
[2026-03-22 04:41:36] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-21 23:41:29"
[2026-03-22 04:41:36] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 04:41:36] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:36] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 04:41:36] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:36] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 04:41:36] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:36] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 04:41:36] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 04:41:36] [INFO]   -> Found value: 20260030813
[2026-03-22 04:41:36] [INFO]   -> Set field 'policeReportNumber' = "20260030813"
[2026-03-22 04:41:36] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 04:41:36] [INFO]   -> Found value: Event spawned from ABDOMINAL PAIN.  [03/21/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN...
[2026-03-22 04:41:36] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:41:36] [INFO]   -> Set field 'cADLog' = "Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:41:36] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 04:41:36] [INFO]   -> Found value: MONTEREY
[2026-03-22 04:41:36] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 04:41:36] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 04:41:36] [INFO]   -> Found value: HANGING LIMB
[2026-03-22 04:41:36] [INFO]   -> Set field 'streetName' = "HANGING LIMB"
[2026-03-22 04:41:36] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 04:41:36] [INFO]   -> Found value: RD
[2026-03-22 04:41:36] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 04:41:36] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 04:41:36] [INFO]   -> Found value: 1233 HANGING LIMB RD
[2026-03-22 04:41:36] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1233 HANGING LIMB RD"
[2026-03-22 04:41:36] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 04:41:36] [INFO] Concatenating street name and type
[2026-03-22 04:41:36] [INFO]   -> Combined street name: HANGING LIMB RD
[2026-03-22 04:41:36] [INFO] Built locationCoordinates from lat/lng: 36.15738,-85.25298
[2026-03-22 04:41:36] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD\nRESC","incidentInternalId":"2026000767","dispatchRunNumber":"2026000767","incidentTypeValue1":"ABDOMINAL PAIN","incidentLocationStreetNumber":1233,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1573800000000034060576581396162509918212890625,"nERISIncidentLongitude":-85.2529799999999937654138193465769290924072265625,"alarm":"2026-03-21 23:39:34","dispatched":"2026-03-21 23:40:36","enroute":"2026-03-21 23:41:29","incidentLocationCross":"EVERGREEN LN\/PHILLIPS DR","cADVehicleID":"EN21","timedispatch":"2026-03-21 23:41:27","timeenroutetoscene":"2026-03-21 23:41:29","policeReportNumber":"20260030813","dispatchNotes":"Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","cADLog":"Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","incidentLocationCity":"MONTEREY","streetName":"HANGING LIMB RD","incidentAddressTextVersionStreet":"1233 HANGING LIMB RD","locationCoordinates":"36.15738,-85.25298"}
[2026-03-22 04:41:36] [INFO] Number of extracted fields: 23
[2026-03-22 04:41:36] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD
RESC'
[2026-03-22 04:41:36] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD
RESC', Parsed IDs = ["PCFD","EMS","MFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 04:41:36] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD","RESC"]
[2026-03-22 04:41:36] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 04:41:36] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 04:41:36] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD","RESC"]
[2026-03-22 04:41:36] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 04:41:36] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 04:41:36] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 04:41:36] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 04:41:36] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 04:41:36] [INFO] Found existing IncidentTypeMapping with ID: 6950ee4041befee87
[2026-03-22 04:41:36] [INFO] Found existing Dispatch with cADNumber '2026000767', ID: 69bf72cc684c1418d - will update instead of create
[2026-03-22 04:41:36] [INFO] Updated existing Dispatches record with ID: 69bf72cc684c1418d
[2026-03-22 04:41:36] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044135.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030813_20260322_044135.XML
[2026-03-22 04:41:36] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044135.XML
[2026-03-22 04:41:37] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044136.XML
[2026-03-22 04:41:37] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044136.XML for user: 68f1466aed072ad4a
[2026-03-22 04:41:37] [INFO] File size: 6569 bytes
[2026-03-22 04:41:37] [INFO] Created FTPFiles record with ID: 69bf7301476476fe4
[2026-03-22 04:41:37] [INFO] About to extract fields from XML. File size: 6569 bytes
[2026-03-22 04:41:37] [INFO] Number of mappings: 28
[2026-03-22 04:41:37] [INFO] Starting XML parsing. Content length: 6569
[2026-03-22 04:41:37] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 04:41:37] [INFO] Processing 28 field mappings
[2026-03-22 04:41:37] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 04:41:37] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 04:41:37] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 04:41:37] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 04:41:37] [INFO]   -> Found value: PCFD
EMS
MFD
RESC
[2026-03-22 04:41:37] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD\nRESC"
[2026-03-22 04:41:37] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 04:41:37] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 04:41:37] [INFO]   -> Found value: 2026000767
[2026-03-22 04:41:37] [INFO]   -> Set field 'incidentInternalId' = "2026000767"
[2026-03-22 04:41:37] [INFO]   -> Set field 'dispatchRunNumber' = "2026000767"
[2026-03-22 04:41:37] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 04:41:37] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-22 04:41:37] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-22 04:41:37] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 04:41:37] [INFO]   -> Found value: 1233
[2026-03-22 04:41:37] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1233
[2026-03-22 04:41:37] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 04:41:37] [INFO]   -> Found value: TN
[2026-03-22 04:41:37] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 04:41:37] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 04:41:37] [INFO]   -> Found value: 38574
[2026-03-22 04:41:37] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 04:41:37] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 04:41:37] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:37] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 04:41:37] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:37] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 04:41:37] [INFO]   -> Found value: 36.15738
[2026-03-22 04:41:37] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1573800000000034060576581396162509918212890625
[2026-03-22 04:41:37] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 04:41:37] [INFO]   -> Found value: -85.25298
[2026-03-22 04:41:37] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2529799999999937654138193465769290924072265625
[2026-03-22 04:41:37] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 04:41:37] [INFO]   -> Found value: 2026-03-21 23:39:34
[2026-03-22 04:41:37] [INFO]   -> Set field 'alarm' = "2026-03-21 23:39:34"
[2026-03-22 04:41:37] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 04:41:37] [INFO]   -> Found value: 2026-03-21 23:40:36
[2026-03-22 04:41:37] [INFO]   -> Set field 'dispatched' = "2026-03-21 23:40:36"
[2026-03-22 04:41:37] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 04:41:37] [INFO]   -> Found value: 2026-03-21 23:41:29
[2026-03-22 04:41:37] [INFO]   -> Set field 'enroute' = "2026-03-21 23:41:29"
[2026-03-22 04:41:37] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 04:41:37] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:37] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 04:41:37] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:37] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 04:41:37] [INFO]   -> Found value: EVERGREEN LN/PHILLIPS DR
[2026-03-22 04:41:37] [INFO]   -> Set field 'incidentLocationCross' = "EVERGREEN LN\/PHILLIPS DR"
[2026-03-22 04:41:37] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 04:41:37] [INFO]   -> Found value: EN21
[2026-03-22 04:41:37] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-22 04:41:37] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 04:41:37] [INFO]   -> Found value: 2026-03-21 23:41:27
[2026-03-22 04:41:37] [INFO]   -> Set field 'timedispatch' = "2026-03-21 23:41:27"
[2026-03-22 04:41:37] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 04:41:37] [INFO]   -> Found value: 2026-03-21 23:41:29
[2026-03-22 04:41:37] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-21 23:41:29"
[2026-03-22 04:41:37] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 04:41:37] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:37] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 04:41:37] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:37] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 04:41:37] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:37] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 04:41:37] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 04:41:37] [INFO]   -> Found value: 20260030813
[2026-03-22 04:41:37] [INFO]   -> Set field 'policeReportNumber' = "20260030813"
[2026-03-22 04:41:37] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 04:41:37] [INFO]   -> Found value: Event spawned from ABDOMINAL PAIN.  [03/21/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN...
[2026-03-22 04:41:37] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:41:37] [INFO]   -> Set field 'cADLog' = "Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:41:37] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 04:41:37] [INFO]   -> Found value: MONTEREY
[2026-03-22 04:41:37] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 04:41:37] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 04:41:37] [INFO]   -> Found value: HANGING LIMB
[2026-03-22 04:41:37] [INFO]   -> Set field 'streetName' = "HANGING LIMB"
[2026-03-22 04:41:37] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 04:41:37] [INFO]   -> Found value: RD
[2026-03-22 04:41:37] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 04:41:37] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 04:41:37] [INFO]   -> Found value: 1233 HANGING LIMB RD
[2026-03-22 04:41:37] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1233 HANGING LIMB RD"
[2026-03-22 04:41:37] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 04:41:37] [INFO] Concatenating street name and type
[2026-03-22 04:41:37] [INFO]   -> Combined street name: HANGING LIMB RD
[2026-03-22 04:41:37] [INFO] Built locationCoordinates from lat/lng: 36.15738,-85.25298
[2026-03-22 04:41:37] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD\nRESC","incidentInternalId":"2026000767","dispatchRunNumber":"2026000767","incidentTypeValue1":"ABDOMINAL PAIN","incidentLocationStreetNumber":1233,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1573800000000034060576581396162509918212890625,"nERISIncidentLongitude":-85.2529799999999937654138193465769290924072265625,"alarm":"2026-03-21 23:39:34","dispatched":"2026-03-21 23:40:36","enroute":"2026-03-21 23:41:29","incidentLocationCross":"EVERGREEN LN\/PHILLIPS DR","cADVehicleID":"EN21","timedispatch":"2026-03-21 23:41:27","timeenroutetoscene":"2026-03-21 23:41:29","policeReportNumber":"20260030813","dispatchNotes":"Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","cADLog":"Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","incidentLocationCity":"MONTEREY","streetName":"HANGING LIMB RD","incidentAddressTextVersionStreet":"1233 HANGING LIMB RD","locationCoordinates":"36.15738,-85.25298"}
[2026-03-22 04:41:37] [INFO] Number of extracted fields: 23
[2026-03-22 04:41:37] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD
RESC'
[2026-03-22 04:41:37] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD
RESC', Parsed IDs = ["PCFD","EMS","MFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 04:41:37] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD","RESC"]
[2026-03-22 04:41:37] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 04:41:37] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 04:41:37] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD","RESC"]
[2026-03-22 04:41:37] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 04:41:37] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 04:41:37] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 04:41:37] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 04:41:37] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 04:41:37] [INFO] Found existing IncidentTypeMapping with ID: 6950ee4041befee87
[2026-03-22 04:41:37] [INFO] Found existing Dispatch with cADNumber '2026000767', ID: 69bf72cc684c1418d - will update instead of create
[2026-03-22 04:41:38] [INFO] Updated existing Dispatches record with ID: 69bf72cc684c1418d
[2026-03-22 04:41:38] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044136.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030813_20260322_044136.XML
[2026-03-22 04:41:38] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044136.XML
[2026-03-22 04:41:38] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044137.XML
[2026-03-22 04:41:38] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044137.XML for user: 68f1466aed072ad4a
[2026-03-22 04:41:38] [INFO] File size: 6569 bytes
[2026-03-22 04:41:38] [INFO] Created FTPFiles record with ID: 69bf73026f67ebb86
[2026-03-22 04:41:38] [INFO] About to extract fields from XML. File size: 6569 bytes
[2026-03-22 04:41:38] [INFO] Number of mappings: 28
[2026-03-22 04:41:38] [INFO] Starting XML parsing. Content length: 6569
[2026-03-22 04:41:38] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 04:41:38] [INFO] Processing 28 field mappings
[2026-03-22 04:41:38] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 04:41:38] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 04:41:38] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 04:41:38] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 04:41:38] [INFO]   -> Found value: PCFD
EMS
MFD
RESC
[2026-03-22 04:41:38] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD\nRESC"
[2026-03-22 04:41:38] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 04:41:38] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 04:41:38] [INFO]   -> Found value: 2026000767
[2026-03-22 04:41:38] [INFO]   -> Set field 'incidentInternalId' = "2026000767"
[2026-03-22 04:41:38] [INFO]   -> Set field 'dispatchRunNumber' = "2026000767"
[2026-03-22 04:41:38] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 04:41:38] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-22 04:41:38] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-22 04:41:38] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 04:41:38] [INFO]   -> Found value: 1233
[2026-03-22 04:41:38] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1233
[2026-03-22 04:41:38] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 04:41:38] [INFO]   -> Found value: TN
[2026-03-22 04:41:38] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 04:41:38] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 04:41:38] [INFO]   -> Found value: 38574
[2026-03-22 04:41:38] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 04:41:38] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 04:41:38] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:38] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 04:41:38] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:38] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 04:41:38] [INFO]   -> Found value: 36.15738
[2026-03-22 04:41:38] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1573800000000034060576581396162509918212890625
[2026-03-22 04:41:38] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 04:41:38] [INFO]   -> Found value: -85.25298
[2026-03-22 04:41:38] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2529799999999937654138193465769290924072265625
[2026-03-22 04:41:38] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 04:41:38] [INFO]   -> Found value: 2026-03-21 23:39:34
[2026-03-22 04:41:38] [INFO]   -> Set field 'alarm' = "2026-03-21 23:39:34"
[2026-03-22 04:41:38] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 04:41:38] [INFO]   -> Found value: 2026-03-21 23:40:36
[2026-03-22 04:41:38] [INFO]   -> Set field 'dispatched' = "2026-03-21 23:40:36"
[2026-03-22 04:41:38] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 04:41:38] [INFO]   -> Found value: 2026-03-21 23:41:29
[2026-03-22 04:41:38] [INFO]   -> Set field 'enroute' = "2026-03-21 23:41:29"
[2026-03-22 04:41:38] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 04:41:38] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:38] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 04:41:38] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:38] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 04:41:38] [INFO]   -> Found value: EVERGREEN LN/PHILLIPS DR
[2026-03-22 04:41:38] [INFO]   -> Set field 'incidentLocationCross' = "EVERGREEN LN\/PHILLIPS DR"
[2026-03-22 04:41:38] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 04:41:38] [INFO]   -> Found value: EN21
[2026-03-22 04:41:38] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-22 04:41:38] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 04:41:38] [INFO]   -> Found value: 2026-03-21 23:41:27
[2026-03-22 04:41:38] [INFO]   -> Set field 'timedispatch' = "2026-03-21 23:41:27"
[2026-03-22 04:41:38] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 04:41:38] [INFO]   -> Found value: 2026-03-21 23:41:29
[2026-03-22 04:41:38] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-21 23:41:29"
[2026-03-22 04:41:38] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 04:41:38] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:38] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 04:41:38] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:38] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 04:41:38] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:38] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 04:41:38] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 04:41:38] [INFO]   -> Found value: 20260030813
[2026-03-22 04:41:38] [INFO]   -> Set field 'policeReportNumber' = "20260030813"
[2026-03-22 04:41:38] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 04:41:38] [INFO]   -> Found value: Event spawned from ABDOMINAL PAIN.  [03/21/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN...
[2026-03-22 04:41:38] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:41:38] [INFO]   -> Set field 'cADLog' = "Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:41:38] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 04:41:38] [INFO]   -> Found value: MONTEREY
[2026-03-22 04:41:38] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 04:41:38] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 04:41:38] [INFO]   -> Found value: HANGING LIMB
[2026-03-22 04:41:38] [INFO]   -> Set field 'streetName' = "HANGING LIMB"
[2026-03-22 04:41:38] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 04:41:38] [INFO]   -> Found value: RD
[2026-03-22 04:41:38] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 04:41:38] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 04:41:38] [INFO]   -> Found value: 1233 HANGING LIMB RD
[2026-03-22 04:41:38] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1233 HANGING LIMB RD"
[2026-03-22 04:41:38] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 04:41:38] [INFO] Concatenating street name and type
[2026-03-22 04:41:38] [INFO]   -> Combined street name: HANGING LIMB RD
[2026-03-22 04:41:38] [INFO] Built locationCoordinates from lat/lng: 36.15738,-85.25298
[2026-03-22 04:41:38] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD\nRESC","incidentInternalId":"2026000767","dispatchRunNumber":"2026000767","incidentTypeValue1":"ABDOMINAL PAIN","incidentLocationStreetNumber":1233,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1573800000000034060576581396162509918212890625,"nERISIncidentLongitude":-85.2529799999999937654138193465769290924072265625,"alarm":"2026-03-21 23:39:34","dispatched":"2026-03-21 23:40:36","enroute":"2026-03-21 23:41:29","incidentLocationCross":"EVERGREEN LN\/PHILLIPS DR","cADVehicleID":"EN21","timedispatch":"2026-03-21 23:41:27","timeenroutetoscene":"2026-03-21 23:41:29","policeReportNumber":"20260030813","dispatchNotes":"Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","cADLog":"Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","incidentLocationCity":"MONTEREY","streetName":"HANGING LIMB RD","incidentAddressTextVersionStreet":"1233 HANGING LIMB RD","locationCoordinates":"36.15738,-85.25298"}
[2026-03-22 04:41:38] [INFO] Number of extracted fields: 23
[2026-03-22 04:41:38] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD
RESC'
[2026-03-22 04:41:38] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD
RESC', Parsed IDs = ["PCFD","EMS","MFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 04:41:38] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD","RESC"]
[2026-03-22 04:41:38] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 04:41:38] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 04:41:38] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD","RESC"]
[2026-03-22 04:41:38] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 04:41:38] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 04:41:38] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 04:41:38] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 04:41:38] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 04:41:39] [INFO] Found existing IncidentTypeMapping with ID: 6950ee4041befee87
[2026-03-22 04:41:39] [INFO] Found existing Dispatch with cADNumber '2026000767', ID: 69bf72cc684c1418d - will update instead of create
[2026-03-22 04:41:39] [INFO] Updated existing Dispatches record with ID: 69bf72cc684c1418d
[2026-03-22 04:41:39] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044137.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030813_20260322_044137.XML
[2026-03-22 04:41:39] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044137.XML
[2026-03-22 04:41:39] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044139.XML
[2026-03-22 04:41:39] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044139.XML for user: 68f1466aed072ad4a
[2026-03-22 04:41:39] [INFO] File size: 6569 bytes
[2026-03-22 04:41:40] [INFO] Created FTPFiles record with ID: 69bf7303effe1acb9
[2026-03-22 04:41:40] [INFO] About to extract fields from XML. File size: 6569 bytes
[2026-03-22 04:41:40] [INFO] Number of mappings: 28
[2026-03-22 04:41:40] [INFO] Starting XML parsing. Content length: 6569
[2026-03-22 04:41:40] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 04:41:40] [INFO] Processing 28 field mappings
[2026-03-22 04:41:40] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 04:41:40] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 04:41:40] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 04:41:40] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 04:41:40] [INFO]   -> Found value: PCFD
EMS
MFD
RESC
[2026-03-22 04:41:40] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD\nRESC"
[2026-03-22 04:41:40] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 04:41:40] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 04:41:40] [INFO]   -> Found value: 2026000767
[2026-03-22 04:41:40] [INFO]   -> Set field 'incidentInternalId' = "2026000767"
[2026-03-22 04:41:40] [INFO]   -> Set field 'dispatchRunNumber' = "2026000767"
[2026-03-22 04:41:40] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 04:41:40] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-22 04:41:40] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-22 04:41:40] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 04:41:40] [INFO]   -> Found value: 1233
[2026-03-22 04:41:40] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1233
[2026-03-22 04:41:40] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 04:41:40] [INFO]   -> Found value: TN
[2026-03-22 04:41:40] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 04:41:40] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 04:41:40] [INFO]   -> Found value: 38574
[2026-03-22 04:41:40] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 04:41:40] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 04:41:40] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:40] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 04:41:40] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:40] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 04:41:40] [INFO]   -> Found value: 36.15738
[2026-03-22 04:41:40] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1573800000000034060576581396162509918212890625
[2026-03-22 04:41:40] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 04:41:40] [INFO]   -> Found value: -85.25298
[2026-03-22 04:41:40] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2529799999999937654138193465769290924072265625
[2026-03-22 04:41:40] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 04:41:40] [INFO]   -> Found value: 2026-03-21 23:39:34
[2026-03-22 04:41:40] [INFO]   -> Set field 'alarm' = "2026-03-21 23:39:34"
[2026-03-22 04:41:40] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 04:41:40] [INFO]   -> Found value: 2026-03-21 23:40:36
[2026-03-22 04:41:40] [INFO]   -> Set field 'dispatched' = "2026-03-21 23:40:36"
[2026-03-22 04:41:40] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 04:41:40] [INFO]   -> Found value: 2026-03-21 23:41:29
[2026-03-22 04:41:40] [INFO]   -> Set field 'enroute' = "2026-03-21 23:41:29"
[2026-03-22 04:41:40] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 04:41:40] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:40] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 04:41:40] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:40] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 04:41:40] [INFO]   -> Found value: EVERGREEN LN/PHILLIPS DR
[2026-03-22 04:41:40] [INFO]   -> Set field 'incidentLocationCross' = "EVERGREEN LN\/PHILLIPS DR"
[2026-03-22 04:41:40] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 04:41:40] [INFO]   -> Found value: EN21
[2026-03-22 04:41:40] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-22 04:41:40] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 04:41:40] [INFO]   -> Found value: 2026-03-21 23:41:27
[2026-03-22 04:41:40] [INFO]   -> Set field 'timedispatch' = "2026-03-21 23:41:27"
[2026-03-22 04:41:40] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 04:41:40] [INFO]   -> Found value: 2026-03-21 23:41:29
[2026-03-22 04:41:40] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-21 23:41:29"
[2026-03-22 04:41:40] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 04:41:40] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:40] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 04:41:40] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:40] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 04:41:40] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:40] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 04:41:40] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 04:41:40] [INFO]   -> Found value: 20260030813
[2026-03-22 04:41:40] [INFO]   -> Set field 'policeReportNumber' = "20260030813"
[2026-03-22 04:41:40] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 04:41:40] [INFO]   -> Found value: Event spawned from ABDOMINAL PAIN.  [03/21/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN...
[2026-03-22 04:41:40] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:41:40] [INFO]   -> Set field 'cADLog' = "Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:41:40] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 04:41:40] [INFO]   -> Found value: MONTEREY
[2026-03-22 04:41:40] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 04:41:40] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 04:41:40] [INFO]   -> Found value: HANGING LIMB
[2026-03-22 04:41:40] [INFO]   -> Set field 'streetName' = "HANGING LIMB"
[2026-03-22 04:41:40] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 04:41:40] [INFO]   -> Found value: RD
[2026-03-22 04:41:40] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 04:41:40] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 04:41:40] [INFO]   -> Found value: 1233 HANGING LIMB RD
[2026-03-22 04:41:40] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1233 HANGING LIMB RD"
[2026-03-22 04:41:40] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 04:41:40] [INFO] Concatenating street name and type
[2026-03-22 04:41:40] [INFO]   -> Combined street name: HANGING LIMB RD
[2026-03-22 04:41:40] [INFO] Built locationCoordinates from lat/lng: 36.15738,-85.25298
[2026-03-22 04:41:40] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD\nRESC","incidentInternalId":"2026000767","dispatchRunNumber":"2026000767","incidentTypeValue1":"ABDOMINAL PAIN","incidentLocationStreetNumber":1233,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1573800000000034060576581396162509918212890625,"nERISIncidentLongitude":-85.2529799999999937654138193465769290924072265625,"alarm":"2026-03-21 23:39:34","dispatched":"2026-03-21 23:40:36","enroute":"2026-03-21 23:41:29","incidentLocationCross":"EVERGREEN LN\/PHILLIPS DR","cADVehicleID":"EN21","timedispatch":"2026-03-21 23:41:27","timeenroutetoscene":"2026-03-21 23:41:29","policeReportNumber":"20260030813","dispatchNotes":"Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","cADLog":"Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:39:34 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","incidentLocationCity":"MONTEREY","streetName":"HANGING LIMB RD","incidentAddressTextVersionStreet":"1233 HANGING LIMB RD","locationCoordinates":"36.15738,-85.25298"}
[2026-03-22 04:41:40] [INFO] Number of extracted fields: 23
[2026-03-22 04:41:40] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD
RESC'
[2026-03-22 04:41:40] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD
RESC', Parsed IDs = ["PCFD","EMS","MFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 04:41:40] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD","RESC"]
[2026-03-22 04:41:40] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 04:41:40] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 04:41:40] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD","RESC"]
[2026-03-22 04:41: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-22 04:41: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-22 04:41:40] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 04:41:40] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 04:41:40] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 04:41:40] [INFO] Found existing IncidentTypeMapping with ID: 6950ee4041befee87
[2026-03-22 04:41:40] [INFO] Found existing Dispatch with cADNumber '2026000767', ID: 69bf72cc684c1418d - will update instead of create
[2026-03-22 04:41:40] [INFO] Updated existing Dispatches record with ID: 69bf72cc684c1418d
[2026-03-22 04:41:40] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044139.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030813_20260322_044139.XML
[2026-03-22 04:41:40] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030813_20260322_044139.XML
[2026-03-22 04:41:45] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044145.XML
[2026-03-22 04:41:45] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044145.XML for user: 68f1466aed072ad4a
[2026-03-22 04:41:45] [INFO] File size: 5562 bytes
[2026-03-22 04:41:46] [INFO] Created FTPFiles record with ID: 69bf730a15b1e9013
[2026-03-22 04:41:46] [INFO] About to extract fields from XML. File size: 5562 bytes
[2026-03-22 04:41:46] [INFO] Number of mappings: 28
[2026-03-22 04:41:46] [INFO] Starting XML parsing. Content length: 5562
[2026-03-22 04:41:46] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 04:41:46] [INFO] Processing 28 field mappings
[2026-03-22 04:41:46] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 04:41:46] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 04:41:46] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 04:41:46] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 04:41:46] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-22 04:41:46] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-22 04:41:46] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 04:41:46] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 04:41:46] [INFO]   -> Found value: 2026000768
[2026-03-22 04:41:46] [INFO]   -> Set field 'incidentInternalId' = "2026000768"
[2026-03-22 04:41:46] [INFO]   -> Set field 'dispatchRunNumber' = "2026000768"
[2026-03-22 04:41:46] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 04:41:46] [INFO]   -> Found value: FALL VICTIM
[2026-03-22 04:41:46] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-22 04:41:46] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 04:41:46] [INFO]   -> Found value: 1677
[2026-03-22 04:41:46] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1677
[2026-03-22 04:41:46] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 04:41:46] [INFO]   -> Found value: TN
[2026-03-22 04:41:46] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 04:41:46] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 04:41:46] [INFO]   -> Found value: 38506
[2026-03-22 04:41:46] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 04:41:46] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 04:41:46] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:46] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 04:41:46] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:46] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 04:41:46] [INFO]   -> Found value: 36.11474
[2026-03-22 04:41:46] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1147399999999976216713548637926578521728515625
[2026-03-22 04:41:46] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 04:41:46] [INFO]   -> Found value: -85.52457
[2026-03-22 04:41:46] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5245699999999970941644278354942798614501953125
[2026-03-22 04:41:46] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 04:41:46] [INFO]   -> Found value: 2026-03-21 23:39:33
[2026-03-22 04:41:46] [INFO]   -> Set field 'alarm' = "2026-03-21 23:39:33"
[2026-03-22 04:41:46] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 04:41:46] [INFO]   -> Found value: 2026-03-21 23:41:42
[2026-03-22 04:41:46] [INFO]   -> Set field 'dispatched' = "2026-03-21 23:41:42"
[2026-03-22 04:41:46] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 04:41:46] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:46] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 04:41:46] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:46] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 04:41:46] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:46] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 04:41:46] [INFO]   -> Found value: WEST CEMETERY RD/HEATHROW DR
[2026-03-22 04:41:46] [INFO]   -> Set field 'incidentLocationCross' = "WEST CEMETERY RD\/HEATHROW DR"
[2026-03-22 04:41:46] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 04:41:46] [INFO]   -> Found value: PCFR
[2026-03-22 04:41:46] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 04:41:46] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 04:41:46] [INFO]   -> Found value: 2026-03-21 23:41:42
[2026-03-22 04:41:46] [INFO]   -> Set field 'timedispatch' = "2026-03-21 23:41:42"
[2026-03-22 04:41:46] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 04:41:46] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:46] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 04:41:46] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:46] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 04:41:46] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:46] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 04:41:46] [INFO]   -> No value found (null or empty)
[2026-03-22 04:41:46] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 04:41:46] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 04:41:46] [INFO]   -> Found value: 20260030811
[2026-03-22 04:41:46] [INFO]   -> Set field 'policeReportNumber' = "20260030811"
[2026-03-22 04:41:46] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 04:41:46] [INFO]   -> Found value: [EMS] CANCER PT  [03/21/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METR...
[2026-03-22 04:41:46] [INFO]   -> Set field 'dispatchNotes' = "[EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]"
[2026-03-22 04:41:46] [INFO]   -> Set field 'cADLog' = "[EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]"
[2026-03-22 04:41:46] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 04:41:46] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 04:41:46] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 04:41:46] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 04:41:46] [INFO]   -> Found value: CARRIAGE
[2026-03-22 04:41:46] [INFO]   -> Set field 'streetName' = "CARRIAGE"
[2026-03-22 04:41:46] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 04:41:46] [INFO]   -> Found value: LN
[2026-03-22 04:41:46] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-22 04:41:46] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 04:41:46] [INFO]   -> Found value: 1677 CARRIAGE LN
[2026-03-22 04:41:46] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1677 CARRIAGE LN"
[2026-03-22 04:41:46] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 04:41:46] [INFO] Concatenating street name and type
[2026-03-22 04:41:46] [INFO]   -> Combined street name: CARRIAGE LN
[2026-03-22 04:41:46] [INFO] Built locationCoordinates from lat/lng: 36.11474,-85.52457
[2026-03-22 04:41:46] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000768","dispatchRunNumber":"2026000768","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":1677,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.1147399999999976216713548637926578521728515625,"nERISIncidentLongitude":-85.5245699999999970941644278354942798614501953125,"alarm":"2026-03-21 23:39:33","dispatched":"2026-03-21 23:41:42","incidentLocationCross":"WEST CEMETERY RD\/HEATHROW DR","cADVehicleID":"PCFR","timedispatch":"2026-03-21 23:41:42","policeReportNumber":"20260030811","dispatchNotes":"[EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]","cADLog":"[EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]","incidentLocationCity":"COOKEVILLE","streetName":"CARRIAGE LN","incidentAddressTextVersionStreet":"1677 CARRIAGE LN","locationCoordinates":"36.11474,-85.52457"}
[2026-03-22 04:41:46] [INFO] Number of extracted fields: 21
[2026-03-22 04:41:46] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-22 04:41:46] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-22 04:41:46] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-22 04:41:46] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 04:41:46] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 04:41:46] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-22 04:41:46] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 04:41:46] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 04:41:46] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 04:41:46] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 04:41:46] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 04:41:46] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-22 04:41:56] [INFO] Created new Dispatches record with ID: 69bf730ac83e57033
[2026-03-22 04:41:56] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044145.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030811_20260322_044145.XML
[2026-03-22 04:41:56] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044145.XML
[2026-03-22 04:42:36] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044236.XML
[2026-03-22 04:42:36] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044236.XML for user: 68f1466aed072ad4a
[2026-03-22 04:42:36] [INFO] File size: 6455 bytes
[2026-03-22 04:42:36] [INFO] Created FTPFiles record with ID: 69bf733c9c1e8c734
[2026-03-22 04:42:36] [INFO] About to extract fields from XML. File size: 6455 bytes
[2026-03-22 04:42:36] [INFO] Number of mappings: 28
[2026-03-22 04:42:36] [INFO] Starting XML parsing. Content length: 6455
[2026-03-22 04:42:36] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 04:42:36] [INFO] Processing 28 field mappings
[2026-03-22 04:42:36] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 04:42:36] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 04:42:36] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 04:42:36] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 04:42:36] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-22 04:42:36] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-22 04:42:36] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 04:42:36] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 04:42:36] [INFO]   -> Found value: 2026000768
[2026-03-22 04:42:36] [INFO]   -> Set field 'incidentInternalId' = "2026000768"
[2026-03-22 04:42:36] [INFO]   -> Set field 'dispatchRunNumber' = "2026000768"
[2026-03-22 04:42:36] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 04:42:36] [INFO]   -> Found value: FALL VICTIM
[2026-03-22 04:42:36] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-22 04:42:36] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 04:42:36] [INFO]   -> Found value: 1677
[2026-03-22 04:42:36] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1677
[2026-03-22 04:42:36] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 04:42:36] [INFO]   -> Found value: TN
[2026-03-22 04:42:36] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 04:42:36] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 04:42:36] [INFO]   -> Found value: 38506
[2026-03-22 04:42:36] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 04:42:36] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 04:42:36] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:36] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 04:42:36] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:36] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 04:42:36] [INFO]   -> Found value: 36.11474
[2026-03-22 04:42:36] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1147399999999976216713548637926578521728515625
[2026-03-22 04:42:36] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 04:42:36] [INFO]   -> Found value: -85.52457
[2026-03-22 04:42:36] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5245699999999970941644278354942798614501953125
[2026-03-22 04:42:36] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 04:42:36] [INFO]   -> Found value: 2026-03-21 23:39:33
[2026-03-22 04:42:36] [INFO]   -> Set field 'alarm' = "2026-03-21 23:39:33"
[2026-03-22 04:42:36] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 04:42:36] [INFO]   -> Found value: 2026-03-21 23:41:42
[2026-03-22 04:42:36] [INFO]   -> Set field 'dispatched' = "2026-03-21 23:41:42"
[2026-03-22 04:42:36] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 04:42:36] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:36] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 04:42:36] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:36] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 04:42:36] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:36] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 04:42:36] [INFO]   -> Found value: WEST CEMETERY RD/HEATHROW DR
[2026-03-22 04:42:36] [INFO]   -> Set field 'incidentLocationCross' = "WEST CEMETERY RD\/HEATHROW DR"
[2026-03-22 04:42:36] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 04:42:36] [INFO]   -> Found value: PCFR
[2026-03-22 04:42:36] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 04:42:36] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 04:42:36] [INFO]   -> Found value: 2026-03-21 23:41:42
[2026-03-22 04:42:36] [INFO]   -> Set field 'timedispatch' = "2026-03-21 23:41:42"
[2026-03-22 04:42:36] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 04:42:36] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:36] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 04:42:36] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:36] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 04:42:36] [INFO]   -> Found value: 2026-03-21 23:42:32
[2026-03-22 04:42:36] [INFO]   -> Set field 'timeunitclear' = "2026-03-21 23:42:32"
[2026-03-22 04:42:36] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 04:42:36] [INFO]   -> Found value: 2026-03-21 23:42:32
[2026-03-22 04:42:36] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-21 23:42:32"
[2026-03-22 04:42:36] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 04:42:36] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 04:42:36] [INFO]   -> Found value: 20260030811
[2026-03-22 04:42:36] [INFO]   -> Set field 'policeReportNumber' = "20260030811"
[2026-03-22 04:42:36] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 04:42:36] [INFO]   -> Found value: [EMS] FELL POSS DOWN 15-20 STEPS  [03/21/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03/21/26 23:41:37 TSC...
[2026-03-22 04:42:36] [INFO]   -> Set field 'dispatchNotes' = "[EMS] FELL POSS DOWN 15-20 STEPS  [03\/21\/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]"
[2026-03-22 04:42:36] [INFO]   -> Set field 'cADLog' = "[EMS] FELL POSS DOWN 15-20 STEPS  [03\/21\/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]"
[2026-03-22 04:42:36] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 04:42:36] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 04:42:36] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 04:42:36] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 04:42:36] [INFO]   -> Found value: CARRIAGE
[2026-03-22 04:42:36] [INFO]   -> Set field 'streetName' = "CARRIAGE"
[2026-03-22 04:42:36] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 04:42:36] [INFO]   -> Found value: LN
[2026-03-22 04:42:36] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-22 04:42:36] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 04:42:36] [INFO]   -> Found value: 1677 CARRIAGE LN
[2026-03-22 04:42:36] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1677 CARRIAGE LN"
[2026-03-22 04:42:36] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 04:42:36] [INFO] Concatenating street name and type
[2026-03-22 04:42:36] [INFO]   -> Combined street name: CARRIAGE LN
[2026-03-22 04:42:36] [INFO] Built locationCoordinates from lat/lng: 36.11474,-85.52457
[2026-03-22 04:42:36] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000768","dispatchRunNumber":"2026000768","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":1677,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.1147399999999976216713548637926578521728515625,"nERISIncidentLongitude":-85.5245699999999970941644278354942798614501953125,"alarm":"2026-03-21 23:39:33","dispatched":"2026-03-21 23:41:42","incidentLocationCross":"WEST CEMETERY RD\/HEATHROW DR","cADVehicleID":"PCFR","timedispatch":"2026-03-21 23:41:42","timeunitclear":"2026-03-21 23:42:32","timecanceledenroute":"2026-03-21 23:42:32","policeReportNumber":"20260030811","dispatchNotes":"[EMS] FELL POSS DOWN 15-20 STEPS  [03\/21\/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]","cADLog":"[EMS] FELL POSS DOWN 15-20 STEPS  [03\/21\/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]","incidentLocationCity":"COOKEVILLE","streetName":"CARRIAGE LN","incidentAddressTextVersionStreet":"1677 CARRIAGE LN","locationCoordinates":"36.11474,-85.52457"}
[2026-03-22 04:42:36] [INFO] Number of extracted fields: 23
[2026-03-22 04:42:36] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-22 04:42:36] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-22 04:42:36] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-22 04:42:36] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 04:42:36] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 04:42:36] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-22 04:42:36] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 04:42:36] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 04:42:36] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 04:42:36] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 04:42:36] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 04:42:37] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-22 04:42:37] [INFO] Found existing Dispatch with cADNumber '2026000768', ID: 69bf730ac83e57033 - will update instead of create
[2026-03-22 04:42:37] [INFO] Updated existing Dispatches record with ID: 69bf730ac83e57033
[2026-03-22 04:42:37] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044236.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030811_20260322_044236.XML
[2026-03-22 04:42:37] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044236.XML
[2026-03-22 04:42:37] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044237.XML
[2026-03-22 04:42:37] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044237.XML for user: 68f1466aed072ad4a
[2026-03-22 04:42:37] [INFO] File size: 6455 bytes
[2026-03-22 04:42:37] [INFO] Created FTPFiles record with ID: 69bf733de4590014f
[2026-03-22 04:42:37] [INFO] About to extract fields from XML. File size: 6455 bytes
[2026-03-22 04:42:37] [INFO] Number of mappings: 28
[2026-03-22 04:42:37] [INFO] Starting XML parsing. Content length: 6455
[2026-03-22 04:42:37] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 04:42:37] [INFO] Processing 28 field mappings
[2026-03-22 04:42:37] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 04:42:37] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 04:42:37] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 04:42:37] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 04:42:37] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-22 04:42:37] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-22 04:42:37] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 04:42:37] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 04:42:37] [INFO]   -> Found value: 2026000768
[2026-03-22 04:42:37] [INFO]   -> Set field 'incidentInternalId' = "2026000768"
[2026-03-22 04:42:37] [INFO]   -> Set field 'dispatchRunNumber' = "2026000768"
[2026-03-22 04:42:37] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 04:42:37] [INFO]   -> Found value: FALL VICTIM
[2026-03-22 04:42:37] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-22 04:42:37] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 04:42:37] [INFO]   -> Found value: 1677
[2026-03-22 04:42:37] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1677
[2026-03-22 04:42:37] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 04:42:37] [INFO]   -> Found value: TN
[2026-03-22 04:42:37] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 04:42:37] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 04:42:37] [INFO]   -> Found value: 38506
[2026-03-22 04:42:37] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 04:42:37] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 04:42:37] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:37] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 04:42:37] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:37] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 04:42:37] [INFO]   -> Found value: 36.11474
[2026-03-22 04:42:37] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1147399999999976216713548637926578521728515625
[2026-03-22 04:42:37] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 04:42:37] [INFO]   -> Found value: -85.52457
[2026-03-22 04:42:37] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5245699999999970941644278354942798614501953125
[2026-03-22 04:42:37] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 04:42:37] [INFO]   -> Found value: 2026-03-21 23:39:33
[2026-03-22 04:42:37] [INFO]   -> Set field 'alarm' = "2026-03-21 23:39:33"
[2026-03-22 04:42:37] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 04:42:37] [INFO]   -> Found value: 2026-03-21 23:41:42
[2026-03-22 04:42:37] [INFO]   -> Set field 'dispatched' = "2026-03-21 23:41:42"
[2026-03-22 04:42:37] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 04:42:37] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:37] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 04:42:37] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:37] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 04:42:37] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:37] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 04:42:37] [INFO]   -> Found value: WEST CEMETERY RD/HEATHROW DR
[2026-03-22 04:42:37] [INFO]   -> Set field 'incidentLocationCross' = "WEST CEMETERY RD\/HEATHROW DR"
[2026-03-22 04:42:37] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 04:42:37] [INFO]   -> Found value: PCFR
[2026-03-22 04:42:37] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 04:42:37] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 04:42:37] [INFO]   -> Found value: 2026-03-21 23:41:42
[2026-03-22 04:42:37] [INFO]   -> Set field 'timedispatch' = "2026-03-21 23:41:42"
[2026-03-22 04:42:37] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 04:42:37] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:37] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 04:42:37] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:37] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 04:42:37] [INFO]   -> Found value: 2026-03-21 23:42:32
[2026-03-22 04:42:37] [INFO]   -> Set field 'timeunitclear' = "2026-03-21 23:42:32"
[2026-03-22 04:42:37] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 04:42:37] [INFO]   -> Found value: 2026-03-21 23:42:32
[2026-03-22 04:42:37] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-21 23:42:32"
[2026-03-22 04:42:37] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 04:42:37] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 04:42:37] [INFO]   -> Found value: 20260030811
[2026-03-22 04:42:37] [INFO]   -> Set field 'policeReportNumber' = "20260030811"
[2026-03-22 04:42:37] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 04:42:37] [INFO]   -> Found value: [EMS] FELL POSS DOWN 15-20 STEPS  [03/21/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03/21/26 23:41:37 TSC...
[2026-03-22 04:42:37] [INFO]   -> Set field 'dispatchNotes' = "[EMS] FELL POSS DOWN 15-20 STEPS  [03\/21\/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]"
[2026-03-22 04:42:37] [INFO]   -> Set field 'cADLog' = "[EMS] FELL POSS DOWN 15-20 STEPS  [03\/21\/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]"
[2026-03-22 04:42:37] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 04:42:37] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 04:42:37] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 04:42:37] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 04:42:37] [INFO]   -> Found value: CARRIAGE
[2026-03-22 04:42:37] [INFO]   -> Set field 'streetName' = "CARRIAGE"
[2026-03-22 04:42:37] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 04:42:37] [INFO]   -> Found value: LN
[2026-03-22 04:42:37] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-22 04:42:37] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 04:42:37] [INFO]   -> Found value: 1677 CARRIAGE LN
[2026-03-22 04:42:37] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1677 CARRIAGE LN"
[2026-03-22 04:42:37] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 04:42:37] [INFO] Concatenating street name and type
[2026-03-22 04:42:37] [INFO]   -> Combined street name: CARRIAGE LN
[2026-03-22 04:42:37] [INFO] Built locationCoordinates from lat/lng: 36.11474,-85.52457
[2026-03-22 04:42:37] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000768","dispatchRunNumber":"2026000768","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":1677,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.1147399999999976216713548637926578521728515625,"nERISIncidentLongitude":-85.5245699999999970941644278354942798614501953125,"alarm":"2026-03-21 23:39:33","dispatched":"2026-03-21 23:41:42","incidentLocationCross":"WEST CEMETERY RD\/HEATHROW DR","cADVehicleID":"PCFR","timedispatch":"2026-03-21 23:41:42","timeunitclear":"2026-03-21 23:42:32","timecanceledenroute":"2026-03-21 23:42:32","policeReportNumber":"20260030811","dispatchNotes":"[EMS] FELL POSS DOWN 15-20 STEPS  [03\/21\/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]","cADLog":"[EMS] FELL POSS DOWN 15-20 STEPS  [03\/21\/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]","incidentLocationCity":"COOKEVILLE","streetName":"CARRIAGE LN","incidentAddressTextVersionStreet":"1677 CARRIAGE LN","locationCoordinates":"36.11474,-85.52457"}
[2026-03-22 04:42:37] [INFO] Number of extracted fields: 23
[2026-03-22 04:42:37] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-22 04:42:37] [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-22 04:42:37] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-22 04:42:37] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 04:42:38] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 04:42:38] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-22 04:42:38] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 04:42:38] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 04:42:38] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 04:42:38] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 04:42:38] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 04:42:38] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-22 04:42:38] [INFO] Found existing Dispatch with cADNumber '2026000768', ID: 69bf730ac83e57033 - will update instead of create
[2026-03-22 04:42:38] [INFO] Updated existing Dispatches record with ID: 69bf730ac83e57033
[2026-03-22 04:42:38] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044237.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030811_20260322_044237.XML
[2026-03-22 04:42:38] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044237.XML
[2026-03-22 04:42:39] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044239.XML
[2026-03-22 04:42:39] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044239.XML for user: 68f1466aed072ad4a
[2026-03-22 04:42:39] [INFO] File size: 6522 bytes
[2026-03-22 04:42:39] [INFO] Created FTPFiles record with ID: 69bf733fe856f134a
[2026-03-22 04:42:39] [INFO] About to extract fields from XML. File size: 6522 bytes
[2026-03-22 04:42:39] [INFO] Number of mappings: 28
[2026-03-22 04:42:39] [INFO] Starting XML parsing. Content length: 6522
[2026-03-22 04:42:39] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 04:42:39] [INFO] Processing 28 field mappings
[2026-03-22 04:42:39] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 04:42:39] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 04:42:39] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 04:42:39] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 04:42:39] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-22 04:42:39] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-22 04:42:39] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 04:42:39] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 04:42:39] [INFO]   -> Found value: 2026000768
[2026-03-22 04:42:39] [INFO]   -> Set field 'incidentInternalId' = "2026000768"
[2026-03-22 04:42:39] [INFO]   -> Set field 'dispatchRunNumber' = "2026000768"
[2026-03-22 04:42:39] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 04:42:39] [INFO]   -> Found value: FALL VICTIM
[2026-03-22 04:42:39] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-22 04:42:39] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 04:42:39] [INFO]   -> Found value: 1677
[2026-03-22 04:42:39] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1677
[2026-03-22 04:42:39] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 04:42:39] [INFO]   -> Found value: TN
[2026-03-22 04:42:39] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 04:42:39] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 04:42:39] [INFO]   -> Found value: 38506
[2026-03-22 04:42:39] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 04:42:39] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 04:42:39] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:39] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 04:42:39] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:39] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 04:42:39] [INFO]   -> Found value: 36.11474
[2026-03-22 04:42:39] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1147399999999976216713548637926578521728515625
[2026-03-22 04:42:39] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 04:42:39] [INFO]   -> Found value: -85.52457
[2026-03-22 04:42:39] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5245699999999970941644278354942798614501953125
[2026-03-22 04:42:39] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 04:42:39] [INFO]   -> Found value: 2026-03-21 23:39:33
[2026-03-22 04:42:39] [INFO]   -> Set field 'alarm' = "2026-03-21 23:39:33"
[2026-03-22 04:42:39] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 04:42:39] [INFO]   -> Found value: 2026-03-21 23:41:42
[2026-03-22 04:42:39] [INFO]   -> Set field 'dispatched' = "2026-03-21 23:41:42"
[2026-03-22 04:42:39] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 04:42:39] [INFO]   -> Found value: 2026-03-21 23:42:36
[2026-03-22 04:42:39] [INFO]   -> Set field 'enroute' = "2026-03-21 23:42:36"
[2026-03-22 04:42:39] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 04:42:39] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:39] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 04:42:39] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:39] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 04:42:39] [INFO]   -> Found value: WEST CEMETERY RD/HEATHROW DR
[2026-03-22 04:42:39] [INFO]   -> Set field 'incidentLocationCross' = "WEST CEMETERY RD\/HEATHROW DR"
[2026-03-22 04:42:39] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 04:42:39] [INFO]   -> Found value: SQ11
[2026-03-22 04:42:39] [INFO]   -> Set field 'cADVehicleID' = "SQ11"
[2026-03-22 04:42:39] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 04:42:39] [INFO]   -> Found value: 2026-03-21 23:42:32
[2026-03-22 04:42:39] [INFO]   -> Set field 'timedispatch' = "2026-03-21 23:42:32"
[2026-03-22 04:42:39] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 04:42:39] [INFO]   -> Found value: 2026-03-21 23:42:36
[2026-03-22 04:42:39] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-21 23:42:36"
[2026-03-22 04:42:39] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 04:42:39] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:39] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 04:42:39] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:39] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 04:42:39] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:39] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 04:42:39] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 04:42:39] [INFO]   -> Found value: 20260030811
[2026-03-22 04:42:39] [INFO]   -> Set field 'policeReportNumber' = "20260030811"
[2026-03-22 04:42:39] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 04:42:39] [INFO]   -> Found value: [EMS] FELL POSS DOWN 15-20 STEPS  [03/21/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03/21/26 23:41:37 TSC...
[2026-03-22 04:42:39] [INFO]   -> Set field 'dispatchNotes' = "[EMS] FELL POSS DOWN 15-20 STEPS  [03\/21\/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]"
[2026-03-22 04:42:39] [INFO]   -> Set field 'cADLog' = "[EMS] FELL POSS DOWN 15-20 STEPS  [03\/21\/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]"
[2026-03-22 04:42:39] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 04:42:39] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 04:42:39] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 04:42:39] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 04:42:39] [INFO]   -> Found value: CARRIAGE
[2026-03-22 04:42:39] [INFO]   -> Set field 'streetName' = "CARRIAGE"
[2026-03-22 04:42:39] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 04:42:39] [INFO]   -> Found value: LN
[2026-03-22 04:42:39] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-22 04:42:39] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 04:42:39] [INFO]   -> Found value: 1677 CARRIAGE LN
[2026-03-22 04:42:39] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1677 CARRIAGE LN"
[2026-03-22 04:42:39] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 04:42:39] [INFO] Concatenating street name and type
[2026-03-22 04:42:39] [INFO]   -> Combined street name: CARRIAGE LN
[2026-03-22 04:42:39] [INFO] Built locationCoordinates from lat/lng: 36.11474,-85.52457
[2026-03-22 04:42:39] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000768","dispatchRunNumber":"2026000768","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":1677,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.1147399999999976216713548637926578521728515625,"nERISIncidentLongitude":-85.5245699999999970941644278354942798614501953125,"alarm":"2026-03-21 23:39:33","dispatched":"2026-03-21 23:41:42","enroute":"2026-03-21 23:42:36","incidentLocationCross":"WEST CEMETERY RD\/HEATHROW DR","cADVehicleID":"SQ11","timedispatch":"2026-03-21 23:42:32","timeenroutetoscene":"2026-03-21 23:42:36","policeReportNumber":"20260030811","dispatchNotes":"[EMS] FELL POSS DOWN 15-20 STEPS  [03\/21\/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]","cADLog":"[EMS] FELL POSS DOWN 15-20 STEPS  [03\/21\/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]","incidentLocationCity":"COOKEVILLE","streetName":"CARRIAGE LN","incidentAddressTextVersionStreet":"1677 CARRIAGE LN","locationCoordinates":"36.11474,-85.52457"}
[2026-03-22 04:42:39] [INFO] Number of extracted fields: 23
[2026-03-22 04:42:39] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-22 04:42:39] [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-22 04:42:39] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-22 04:42:39] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 04:42:40] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 04:42:40] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-22 04:42: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-22 04:42: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-22 04:42:40] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 04:42:40] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 04:42:40] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 04:42:40] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-22 04:42:40] [INFO] Found existing Dispatch with cADNumber '2026000768', ID: 69bf730ac83e57033 - will update instead of create
[2026-03-22 04:42:40] [INFO] Updated existing Dispatches record with ID: 69bf730ac83e57033
[2026-03-22 04:42:40] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044239.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030811_20260322_044239.XML
[2026-03-22 04:42:40] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044239.XML
[2026-03-22 04:42:43] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044243.XML
[2026-03-22 04:42:43] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044243.XML for user: 68f1466aed072ad4a
[2026-03-22 04:42:43] [INFO] File size: 6522 bytes
[2026-03-22 04:42:43] [INFO] Created FTPFiles record with ID: 69bf734398ae01f12
[2026-03-22 04:42:43] [INFO] About to extract fields from XML. File size: 6522 bytes
[2026-03-22 04:42:43] [INFO] Number of mappings: 28
[2026-03-22 04:42:43] [INFO] Starting XML parsing. Content length: 6522
[2026-03-22 04:42:43] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 04:42:43] [INFO] Processing 28 field mappings
[2026-03-22 04:42:43] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 04:42:43] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 04:42:43] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 04:42:43] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 04:42:43] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-22 04:42:43] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-22 04:42:43] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 04:42:43] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 04:42:43] [INFO]   -> Found value: 2026000768
[2026-03-22 04:42:43] [INFO]   -> Set field 'incidentInternalId' = "2026000768"
[2026-03-22 04:42:43] [INFO]   -> Set field 'dispatchRunNumber' = "2026000768"
[2026-03-22 04:42:43] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 04:42:43] [INFO]   -> Found value: FALL VICTIM
[2026-03-22 04:42:43] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-22 04:42:43] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 04:42:43] [INFO]   -> Found value: 1677
[2026-03-22 04:42:43] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1677
[2026-03-22 04:42:43] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 04:42:43] [INFO]   -> Found value: TN
[2026-03-22 04:42:43] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 04:42:43] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 04:42:43] [INFO]   -> Found value: 38506
[2026-03-22 04:42:43] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 04:42:43] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 04:42:43] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:43] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 04:42:43] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:43] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 04:42:43] [INFO]   -> Found value: 36.11474
[2026-03-22 04:42:43] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1147399999999976216713548637926578521728515625
[2026-03-22 04:42:43] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 04:42:43] [INFO]   -> Found value: -85.52457
[2026-03-22 04:42:43] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5245699999999970941644278354942798614501953125
[2026-03-22 04:42:43] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 04:42:43] [INFO]   -> Found value: 2026-03-21 23:39:33
[2026-03-22 04:42:43] [INFO]   -> Set field 'alarm' = "2026-03-21 23:39:33"
[2026-03-22 04:42:43] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 04:42:43] [INFO]   -> Found value: 2026-03-21 23:41:42
[2026-03-22 04:42:43] [INFO]   -> Set field 'dispatched' = "2026-03-21 23:41:42"
[2026-03-22 04:42:43] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 04:42:43] [INFO]   -> Found value: 2026-03-21 23:42:36
[2026-03-22 04:42:43] [INFO]   -> Set field 'enroute' = "2026-03-21 23:42:36"
[2026-03-22 04:42:43] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 04:42:43] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:43] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 04:42:43] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:43] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 04:42:43] [INFO]   -> Found value: WEST CEMETERY RD/HEATHROW DR
[2026-03-22 04:42:43] [INFO]   -> Set field 'incidentLocationCross' = "WEST CEMETERY RD\/HEATHROW DR"
[2026-03-22 04:42:43] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 04:42:43] [INFO]   -> Found value: SQ11
[2026-03-22 04:42:43] [INFO]   -> Set field 'cADVehicleID' = "SQ11"
[2026-03-22 04:42:43] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 04:42:43] [INFO]   -> Found value: 2026-03-21 23:42:32
[2026-03-22 04:42:43] [INFO]   -> Set field 'timedispatch' = "2026-03-21 23:42:32"
[2026-03-22 04:42:43] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 04:42:43] [INFO]   -> Found value: 2026-03-21 23:42:36
[2026-03-22 04:42:43] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-21 23:42:36"
[2026-03-22 04:42:43] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 04:42:43] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:43] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 04:42:43] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:43] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 04:42:43] [INFO]   -> No value found (null or empty)
[2026-03-22 04:42:43] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 04:42:43] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 04:42:43] [INFO]   -> Found value: 20260030811
[2026-03-22 04:42:43] [INFO]   -> Set field 'policeReportNumber' = "20260030811"
[2026-03-22 04:42:43] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 04:42:43] [INFO]   -> Found value: [EMS] FELL POSS DOWN 15-20 STEPS  [03/21/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03/21/26 23:41:37 TSC...
[2026-03-22 04:42:43] [INFO]   -> Set field 'dispatchNotes' = "[EMS] FELL POSS DOWN 15-20 STEPS  [03\/21\/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]"
[2026-03-22 04:42:43] [INFO]   -> Set field 'cADLog' = "[EMS] FELL POSS DOWN 15-20 STEPS  [03\/21\/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]"
[2026-03-22 04:42:43] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 04:42:43] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 04:42:43] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 04:42:43] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 04:42:43] [INFO]   -> Found value: CARRIAGE
[2026-03-22 04:42:43] [INFO]   -> Set field 'streetName' = "CARRIAGE"
[2026-03-22 04:42:43] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 04:42:43] [INFO]   -> Found value: LN
[2026-03-22 04:42:43] [INFO]   -> Set field 'streetType' = "LN"
[2026-03-22 04:42:43] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 04:42:43] [INFO]   -> Found value: 1677 CARRIAGE LN
[2026-03-22 04:42:43] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1677 CARRIAGE LN"
[2026-03-22 04:42:43] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 04:42:43] [INFO] Concatenating street name and type
[2026-03-22 04:42:43] [INFO]   -> Combined street name: CARRIAGE LN
[2026-03-22 04:42:43] [INFO] Built locationCoordinates from lat/lng: 36.11474,-85.52457
[2026-03-22 04:42:43] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000768","dispatchRunNumber":"2026000768","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":1677,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.1147399999999976216713548637926578521728515625,"nERISIncidentLongitude":-85.5245699999999970941644278354942798614501953125,"alarm":"2026-03-21 23:39:33","dispatched":"2026-03-21 23:41:42","enroute":"2026-03-21 23:42:36","incidentLocationCross":"WEST CEMETERY RD\/HEATHROW DR","cADVehicleID":"SQ11","timedispatch":"2026-03-21 23:42:32","timeenroutetoscene":"2026-03-21 23:42:36","policeReportNumber":"20260030811","dispatchNotes":"[EMS] FELL POSS DOWN 15-20 STEPS  [03\/21\/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]","cADLog":"[EMS] FELL POSS DOWN 15-20 STEPS  [03\/21\/26 23:42:09 TSCOTT] [EMS] CANCER PT  [03\/21\/26 23:41:37 TSCOTT] [EMS] THIRD PARTY CALLER - CALL WAS TRANSFERED FROM METRO NASHVILLE  [03\/21\/26 23:40:58 TSCOTT] [EMS] PT IS TALKING BUT NOT MAKING ANY SENSE - PT IS TRYING TO SLEEP  [03\/21\/26 23:40:19 TSCOTT] [EMS] 931-261-6838 STEVEN HINSON (BROTHER)  [03\/21\/26 23:39:55 TSCOTT] Event spawned from FALL VICTIM.  [03\/21\/2026 23:39:33 TSCOTT] FRONT DOOR UNLOCKED  [03\/21\/26 23:39:21 TSCOTT] 70ISH MALE FELL DOWN THE STAIRS - AT LEAST HALF A DOZEN NO BLEEDING  HAD A FEVER  [03\/21\/26 23:38:54 TSCOTT]","incidentLocationCity":"COOKEVILLE","streetName":"CARRIAGE LN","incidentAddressTextVersionStreet":"1677 CARRIAGE LN","locationCoordinates":"36.11474,-85.52457"}
[2026-03-22 04:42:43] [INFO] Number of extracted fields: 23
[2026-03-22 04:42:43] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-22 04:42:43] [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-22 04:42:43] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-22 04:42:43] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 04:42:43] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 04:42:43] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-22 04:42:43] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 04:42:43] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 04:42:43] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 04:42:43] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 04:42:43] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 04:42:44] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-22 04:42:44] [INFO] Found existing Dispatch with cADNumber '2026000768', ID: 69bf730ac83e57033 - will update instead of create
[2026-03-22 04:42:44] [INFO] Updated existing Dispatches record with ID: 69bf730ac83e57033
[2026-03-22 04:42:44] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044243.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030811_20260322_044243.XML
[2026-03-22 04:42:44] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030811_20260322_044243.XML
[2026-03-22 04:45:55] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_044555.XML
[2026-03-22 04:45:55] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_044555.XML for user: 68f1466aed072ad4a
[2026-03-22 04:45:55] [INFO] File size: 5413 bytes
[2026-03-22 04:45:56] [INFO] Created FTPFiles record with ID: 69bf7404220a7aab3
[2026-03-22 04:45:56] [INFO] About to extract fields from XML. File size: 5413 bytes
[2026-03-22 04:45:56] [INFO] Number of mappings: 28
[2026-03-22 04:45:56] [INFO] Starting XML parsing. Content length: 5413
[2026-03-22 04:45:56] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 04:45:56] [INFO] Processing 28 field mappings
[2026-03-22 04:45:56] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 04:45:56] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 04:45:56] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 04:45:56] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 04:45:56] [INFO]   -> Found value: MFD
RESC
[2026-03-22 04:45:56] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nRESC"
[2026-03-22 04:45:56] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 04:45:56] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 04:45:56] [INFO]   -> Found value: 2026000102
[2026-03-22 04:45:56] [INFO]   -> Set field 'incidentInternalId' = "2026000102"
[2026-03-22 04:45:56] [INFO]   -> Set field 'dispatchRunNumber' = "2026000102"
[2026-03-22 04:45:56] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 04:45:56] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-22 04:45:56] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-22 04:45:56] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 04:45:56] [INFO]   -> Found value: 1233
[2026-03-22 04:45:56] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1233
[2026-03-22 04:45:56] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 04:45:56] [INFO]   -> Found value: TN
[2026-03-22 04:45:56] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 04:45:56] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 04:45:56] [INFO]   -> Found value: 38574
[2026-03-22 04:45:56] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 04:45:56] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 04:45:56] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:56] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 04:45:56] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:56] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 04:45:56] [INFO]   -> Found value: 36.15738
[2026-03-22 04:45:56] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1573800000000034060576581396162509918212890625
[2026-03-22 04:45:56] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 04:45:56] [INFO]   -> Found value: -85.25298
[2026-03-22 04:45:56] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2529799999999937654138193465769290924072265625
[2026-03-22 04:45:56] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 04:45:56] [INFO]   -> Found value: 2026-03-21 23:38:27
[2026-03-22 04:45:56] [INFO]   -> Set field 'alarm' = "2026-03-21 23:38:27"
[2026-03-22 04:45:56] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 04:45:56] [INFO]   -> Found value: 2026-03-21 23:39:07
[2026-03-22 04:45:56] [INFO]   -> Set field 'dispatched' = "2026-03-21 23:39:07"
[2026-03-22 04:45:56] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 04:45:56] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:56] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 04:45:56] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:56] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 04:45:56] [INFO]   -> Found value: 2026-03-21 23:45:45
[2026-03-22 04:45:56] [INFO]   -> Set field 'cleared' = "2026-03-21 23:45:45"
[2026-03-22 04:45:56] [INFO]   -> Set field 'inService' = "2026-03-21 23:45:45"
[2026-03-22 04:45:56] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 04:45:56] [INFO]   -> Found value: EVERGREEN LN/PHILLIPS DR
[2026-03-22 04:45:56] [INFO]   -> Set field 'incidentLocationCross' = "EVERGREEN LN\/PHILLIPS DR"
[2026-03-22 04:45:56] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 04:45:56] [INFO]   -> Found value: MFR
[2026-03-22 04:45:56] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-03-22 04:45:56] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 04:45:56] [INFO]   -> Found value: 2026-03-21 23:39:07
[2026-03-22 04:45:56] [INFO]   -> Set field 'timedispatch' = "2026-03-21 23:39:07"
[2026-03-22 04:45:56] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 04:45:56] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:56] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 04:45:56] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:56] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 04:45:56] [INFO]   -> Found value: 2026-03-21 23:45:45
[2026-03-22 04:45:56] [INFO]   -> Set field 'timeunitclear' = "2026-03-21 23:45:45"
[2026-03-22 04:45:56] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 04:45:56] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:56] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 04:45:56] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 04:45:56] [INFO]   -> Found value: 20260030809
[2026-03-22 04:45:56] [INFO]   -> Set field 'policeReportNumber' = "20260030809"
[2026-03-22 04:45:56] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 04:45:56] [INFO]   -> Found value: Event spawned for PCFD Event ID:20260030813  CallRef:121  [03/21/26 23:39:35 SVOKOUN2] Event spawned...
[2026-03-22 04:45:56] [INFO]   -> Set field 'dispatchNotes' = "Event spawned for PCFD Event ID:20260030813  CallRef:121  [03\/21\/26 23:39:35 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:45:56] [INFO]   -> Set field 'cADLog' = "Event spawned for PCFD Event ID:20260030813  CallRef:121  [03\/21\/26 23:39:35 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:45:56] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 04:45:56] [INFO]   -> Found value: MONTEREY
[2026-03-22 04:45:56] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 04:45:56] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 04:45:56] [INFO]   -> Found value: HANGING LIMB
[2026-03-22 04:45:56] [INFO]   -> Set field 'streetName' = "HANGING LIMB"
[2026-03-22 04:45:56] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 04:45:56] [INFO]   -> Found value: RD
[2026-03-22 04:45:56] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 04:45:56] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 04:45:56] [INFO]   -> Found value: 1233 HANGING LIMB RD
[2026-03-22 04:45:56] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1233 HANGING LIMB RD"
[2026-03-22 04:45:56] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 04:45:56] [INFO] Concatenating street name and type
[2026-03-22 04:45:56] [INFO]   -> Combined street name: HANGING LIMB RD
[2026-03-22 04:45:56] [INFO] Built locationCoordinates from lat/lng: 36.15738,-85.25298
[2026-03-22 04:45:56] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nRESC","incidentInternalId":"2026000102","dispatchRunNumber":"2026000102","incidentTypeValue1":"ABDOMINAL PAIN","incidentLocationStreetNumber":1233,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1573800000000034060576581396162509918212890625,"nERISIncidentLongitude":-85.2529799999999937654138193465769290924072265625,"alarm":"2026-03-21 23:38:27","dispatched":"2026-03-21 23:39:07","cleared":"2026-03-21 23:45:45","inService":"2026-03-21 23:45:45","incidentLocationCross":"EVERGREEN LN\/PHILLIPS DR","cADVehicleID":"MFR","timedispatch":"2026-03-21 23:39:07","timeunitclear":"2026-03-21 23:45:45","policeReportNumber":"20260030809","dispatchNotes":"Event spawned for PCFD Event ID:20260030813  CallRef:121  [03\/21\/26 23:39:35 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","cADLog":"Event spawned for PCFD Event ID:20260030813  CallRef:121  [03\/21\/26 23:39:35 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","incidentLocationCity":"MONTEREY","streetName":"HANGING LIMB RD","incidentAddressTextVersionStreet":"1233 HANGING LIMB RD","locationCoordinates":"36.15738,-85.25298"}
[2026-03-22 04:45:56] [INFO] Number of extracted fields: 24
[2026-03-22 04:45:56] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
RESC'
[2026-03-22 04:45:56] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
RESC', Parsed IDs = ["MFD","RESC"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 04:45:56] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","RESC"]
[2026-03-22 04:45:56] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 04:45:56] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 04:45:56] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-22 04:45:56] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 04:45:56] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 04:45:56] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 04:45:56] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 04:45:56] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 04:45:56] [INFO] Found existing IncidentTypeMapping with ID: 69954612e39d14933
[2026-03-22 04:45:56] [INFO] Found existing Dispatch with cADNumber '2026000102', ID: 69bf7273697fef282 - will update instead of create
[2026-03-22 04:45:57] [INFO] Updated existing Dispatches record with ID: 69bf7273697fef282
[2026-03-22 04:45:57] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_044555.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260030809_20260322_044555.XML
[2026-03-22 04:45:57] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_044555.XML
[2026-03-22 04:45:57] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_044556.XML
[2026-03-22 04:45:57] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_044556.XML for user: 68f1466aed072ad4a
[2026-03-22 04:45:57] [INFO] File size: 5413 bytes
[2026-03-22 04:45:57] [INFO] Created FTPFiles record with ID: 69bf74056227dfeab
[2026-03-22 04:45:57] [INFO] About to extract fields from XML. File size: 5413 bytes
[2026-03-22 04:45:57] [INFO] Number of mappings: 28
[2026-03-22 04:45:57] [INFO] Starting XML parsing. Content length: 5413
[2026-03-22 04:45:57] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 04:45:57] [INFO] Processing 28 field mappings
[2026-03-22 04:45:57] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 04:45:57] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 04:45:57] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 04:45:57] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 04:45:57] [INFO]   -> Found value: MFD
RESC
[2026-03-22 04:45:57] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nRESC"
[2026-03-22 04:45:57] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 04:45:57] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 04:45:57] [INFO]   -> Found value: 2026000102
[2026-03-22 04:45:57] [INFO]   -> Set field 'incidentInternalId' = "2026000102"
[2026-03-22 04:45:57] [INFO]   -> Set field 'dispatchRunNumber' = "2026000102"
[2026-03-22 04:45:57] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 04:45:57] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-22 04:45:57] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-22 04:45:57] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 04:45:57] [INFO]   -> Found value: 1233
[2026-03-22 04:45:57] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1233
[2026-03-22 04:45:57] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 04:45:57] [INFO]   -> Found value: TN
[2026-03-22 04:45:57] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 04:45:57] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 04:45:57] [INFO]   -> Found value: 38574
[2026-03-22 04:45:57] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 04:45:57] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 04:45:57] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:57] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 04:45:57] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:57] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 04:45:57] [INFO]   -> Found value: 36.15738
[2026-03-22 04:45:57] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1573800000000034060576581396162509918212890625
[2026-03-22 04:45:57] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 04:45:57] [INFO]   -> Found value: -85.25298
[2026-03-22 04:45:57] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2529799999999937654138193465769290924072265625
[2026-03-22 04:45:57] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 04:45:57] [INFO]   -> Found value: 2026-03-21 23:38:27
[2026-03-22 04:45:57] [INFO]   -> Set field 'alarm' = "2026-03-21 23:38:27"
[2026-03-22 04:45:57] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 04:45:57] [INFO]   -> Found value: 2026-03-21 23:39:07
[2026-03-22 04:45:57] [INFO]   -> Set field 'dispatched' = "2026-03-21 23:39:07"
[2026-03-22 04:45:57] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 04:45:57] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:57] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 04:45:57] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:57] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 04:45:57] [INFO]   -> Found value: 2026-03-21 23:45:45
[2026-03-22 04:45:57] [INFO]   -> Set field 'cleared' = "2026-03-21 23:45:45"
[2026-03-22 04:45:57] [INFO]   -> Set field 'inService' = "2026-03-21 23:45:45"
[2026-03-22 04:45:57] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 04:45:57] [INFO]   -> Found value: EVERGREEN LN/PHILLIPS DR
[2026-03-22 04:45:57] [INFO]   -> Set field 'incidentLocationCross' = "EVERGREEN LN\/PHILLIPS DR"
[2026-03-22 04:45:57] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 04:45:57] [INFO]   -> Found value: MFR
[2026-03-22 04:45:57] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-03-22 04:45:57] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 04:45:57] [INFO]   -> Found value: 2026-03-21 23:39:07
[2026-03-22 04:45:57] [INFO]   -> Set field 'timedispatch' = "2026-03-21 23:39:07"
[2026-03-22 04:45:57] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 04:45:57] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:57] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 04:45:57] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:57] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 04:45:57] [INFO]   -> Found value: 2026-03-21 23:45:45
[2026-03-22 04:45:57] [INFO]   -> Set field 'timeunitclear' = "2026-03-21 23:45:45"
[2026-03-22 04:45:57] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 04:45:57] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:57] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 04:45:57] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 04:45:57] [INFO]   -> Found value: 20260030809
[2026-03-22 04:45:57] [INFO]   -> Set field 'policeReportNumber' = "20260030809"
[2026-03-22 04:45:57] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 04:45:57] [INFO]   -> Found value: Event spawned for PCFD Event ID:20260030813  CallRef:121  [03/21/26 23:39:35 SVOKOUN2] Event spawned...
[2026-03-22 04:45:57] [INFO]   -> Set field 'dispatchNotes' = "Event spawned for PCFD Event ID:20260030813  CallRef:121  [03\/21\/26 23:39:35 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:45:57] [INFO]   -> Set field 'cADLog' = "Event spawned for PCFD Event ID:20260030813  CallRef:121  [03\/21\/26 23:39:35 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:45:57] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 04:45:57] [INFO]   -> Found value: MONTEREY
[2026-03-22 04:45:57] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 04:45:57] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 04:45:57] [INFO]   -> Found value: HANGING LIMB
[2026-03-22 04:45:57] [INFO]   -> Set field 'streetName' = "HANGING LIMB"
[2026-03-22 04:45:57] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 04:45:57] [INFO]   -> Found value: RD
[2026-03-22 04:45:57] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 04:45:57] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 04:45:57] [INFO]   -> Found value: 1233 HANGING LIMB RD
[2026-03-22 04:45:57] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1233 HANGING LIMB RD"
[2026-03-22 04:45:57] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 04:45:57] [INFO] Concatenating street name and type
[2026-03-22 04:45:57] [INFO]   -> Combined street name: HANGING LIMB RD
[2026-03-22 04:45:57] [INFO] Built locationCoordinates from lat/lng: 36.15738,-85.25298
[2026-03-22 04:45:57] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nRESC","incidentInternalId":"2026000102","dispatchRunNumber":"2026000102","incidentTypeValue1":"ABDOMINAL PAIN","incidentLocationStreetNumber":1233,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1573800000000034060576581396162509918212890625,"nERISIncidentLongitude":-85.2529799999999937654138193465769290924072265625,"alarm":"2026-03-21 23:38:27","dispatched":"2026-03-21 23:39:07","cleared":"2026-03-21 23:45:45","inService":"2026-03-21 23:45:45","incidentLocationCross":"EVERGREEN LN\/PHILLIPS DR","cADVehicleID":"MFR","timedispatch":"2026-03-21 23:39:07","timeunitclear":"2026-03-21 23:45:45","policeReportNumber":"20260030809","dispatchNotes":"Event spawned for PCFD Event ID:20260030813  CallRef:121  [03\/21\/26 23:39:35 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","cADLog":"Event spawned for PCFD Event ID:20260030813  CallRef:121  [03\/21\/26 23:39:35 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","incidentLocationCity":"MONTEREY","streetName":"HANGING LIMB RD","incidentAddressTextVersionStreet":"1233 HANGING LIMB RD","locationCoordinates":"36.15738,-85.25298"}
[2026-03-22 04:45:57] [INFO] Number of extracted fields: 24
[2026-03-22 04:45:57] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
RESC'
[2026-03-22 04:45:57] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
RESC', Parsed IDs = ["MFD","RESC"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 04:45:57] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","RESC"]
[2026-03-22 04:45:57] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 04:45:57] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 04:45:57] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-22 04:45:57] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 04:45:57] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 04:45:57] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 04:45:57] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 04:45:57] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 04:45:58] [INFO] Found existing IncidentTypeMapping with ID: 69954612e39d14933
[2026-03-22 04:45:58] [INFO] Found existing Dispatch with cADNumber '2026000102', ID: 69bf7273697fef282 - will update instead of create
[2026-03-22 04:45:58] [INFO] Updated existing Dispatches record with ID: 69bf7273697fef282
[2026-03-22 04:45:58] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_044556.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260030809_20260322_044556.XML
[2026-03-22 04:45:58] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_044556.XML
[2026-03-22 04:45:58] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_044557.XML
[2026-03-22 04:45:58] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_044557.XML for user: 68f1466aed072ad4a
[2026-03-22 04:45:58] [INFO] File size: 5413 bytes
[2026-03-22 04:45:58] [INFO] Created FTPFiles record with ID: 69bf7406a461a47e6
[2026-03-22 04:45:58] [INFO] About to extract fields from XML. File size: 5413 bytes
[2026-03-22 04:45:58] [INFO] Number of mappings: 28
[2026-03-22 04:45:58] [INFO] Starting XML parsing. Content length: 5413
[2026-03-22 04:45:58] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 04:45:58] [INFO] Processing 28 field mappings
[2026-03-22 04:45:58] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 04:45:58] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 04:45:58] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 04:45:58] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 04:45:58] [INFO]   -> Found value: MFD
RESC
[2026-03-22 04:45:58] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nRESC"
[2026-03-22 04:45:58] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 04:45:58] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 04:45:58] [INFO]   -> Found value: 2026000102
[2026-03-22 04:45:58] [INFO]   -> Set field 'incidentInternalId' = "2026000102"
[2026-03-22 04:45:58] [INFO]   -> Set field 'dispatchRunNumber' = "2026000102"
[2026-03-22 04:45:58] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 04:45:58] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-22 04:45:58] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-22 04:45:58] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 04:45:58] [INFO]   -> Found value: 1233
[2026-03-22 04:45:58] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1233
[2026-03-22 04:45:58] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 04:45:58] [INFO]   -> Found value: TN
[2026-03-22 04:45:58] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 04:45:58] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 04:45:58] [INFO]   -> Found value: 38574
[2026-03-22 04:45:58] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 04:45:58] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 04:45:58] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:58] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 04:45:58] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:58] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 04:45:58] [INFO]   -> Found value: 36.15738
[2026-03-22 04:45:58] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1573800000000034060576581396162509918212890625
[2026-03-22 04:45:58] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 04:45:58] [INFO]   -> Found value: -85.25298
[2026-03-22 04:45:58] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2529799999999937654138193465769290924072265625
[2026-03-22 04:45:58] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 04:45:58] [INFO]   -> Found value: 2026-03-21 23:38:27
[2026-03-22 04:45:58] [INFO]   -> Set field 'alarm' = "2026-03-21 23:38:27"
[2026-03-22 04:45:58] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 04:45:58] [INFO]   -> Found value: 2026-03-21 23:39:07
[2026-03-22 04:45:58] [INFO]   -> Set field 'dispatched' = "2026-03-21 23:39:07"
[2026-03-22 04:45:58] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 04:45:58] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:58] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 04:45:58] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:58] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 04:45:58] [INFO]   -> Found value: 2026-03-21 23:45:45
[2026-03-22 04:45:58] [INFO]   -> Set field 'cleared' = "2026-03-21 23:45:45"
[2026-03-22 04:45:58] [INFO]   -> Set field 'inService' = "2026-03-21 23:45:45"
[2026-03-22 04:45:58] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 04:45:58] [INFO]   -> Found value: EVERGREEN LN/PHILLIPS DR
[2026-03-22 04:45:58] [INFO]   -> Set field 'incidentLocationCross' = "EVERGREEN LN\/PHILLIPS DR"
[2026-03-22 04:45:58] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 04:45:58] [INFO]   -> Found value: MFR
[2026-03-22 04:45:58] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-03-22 04:45:58] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 04:45:58] [INFO]   -> Found value: 2026-03-21 23:39:07
[2026-03-22 04:45:58] [INFO]   -> Set field 'timedispatch' = "2026-03-21 23:39:07"
[2026-03-22 04:45:58] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 04:45:58] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:58] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 04:45:58] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:58] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 04:45:58] [INFO]   -> Found value: 2026-03-21 23:45:45
[2026-03-22 04:45:58] [INFO]   -> Set field 'timeunitclear' = "2026-03-21 23:45:45"
[2026-03-22 04:45:58] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 04:45:58] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:58] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 04:45:58] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 04:45:58] [INFO]   -> Found value: 20260030809
[2026-03-22 04:45:58] [INFO]   -> Set field 'policeReportNumber' = "20260030809"
[2026-03-22 04:45:58] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 04:45:58] [INFO]   -> Found value: Event spawned for PCFD Event ID:20260030813  CallRef:121  [03/21/26 23:39:35 SVOKOUN2] Event spawned...
[2026-03-22 04:45:58] [INFO]   -> Set field 'dispatchNotes' = "Event spawned for PCFD Event ID:20260030813  CallRef:121  [03\/21\/26 23:39:35 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:45:58] [INFO]   -> Set field 'cADLog' = "Event spawned for PCFD Event ID:20260030813  CallRef:121  [03\/21\/26 23:39:35 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:45:58] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 04:45:58] [INFO]   -> Found value: MONTEREY
[2026-03-22 04:45:58] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 04:45:58] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 04:45:58] [INFO]   -> Found value: HANGING LIMB
[2026-03-22 04:45:58] [INFO]   -> Set field 'streetName' = "HANGING LIMB"
[2026-03-22 04:45:58] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 04:45:58] [INFO]   -> Found value: RD
[2026-03-22 04:45:58] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 04:45:58] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 04:45:58] [INFO]   -> Found value: 1233 HANGING LIMB RD
[2026-03-22 04:45:58] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1233 HANGING LIMB RD"
[2026-03-22 04:45:58] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 04:45:58] [INFO] Concatenating street name and type
[2026-03-22 04:45:58] [INFO]   -> Combined street name: HANGING LIMB RD
[2026-03-22 04:45:58] [INFO] Built locationCoordinates from lat/lng: 36.15738,-85.25298
[2026-03-22 04:45:58] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nRESC","incidentInternalId":"2026000102","dispatchRunNumber":"2026000102","incidentTypeValue1":"ABDOMINAL PAIN","incidentLocationStreetNumber":1233,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1573800000000034060576581396162509918212890625,"nERISIncidentLongitude":-85.2529799999999937654138193465769290924072265625,"alarm":"2026-03-21 23:38:27","dispatched":"2026-03-21 23:39:07","cleared":"2026-03-21 23:45:45","inService":"2026-03-21 23:45:45","incidentLocationCross":"EVERGREEN LN\/PHILLIPS DR","cADVehicleID":"MFR","timedispatch":"2026-03-21 23:39:07","timeunitclear":"2026-03-21 23:45:45","policeReportNumber":"20260030809","dispatchNotes":"Event spawned for PCFD Event ID:20260030813  CallRef:121  [03\/21\/26 23:39:35 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","cADLog":"Event spawned for PCFD Event ID:20260030813  CallRef:121  [03\/21\/26 23:39:35 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","incidentLocationCity":"MONTEREY","streetName":"HANGING LIMB RD","incidentAddressTextVersionStreet":"1233 HANGING LIMB RD","locationCoordinates":"36.15738,-85.25298"}
[2026-03-22 04:45:58] [INFO] Number of extracted fields: 24
[2026-03-22 04:45:58] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
RESC'
[2026-03-22 04:45:58] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
RESC', Parsed IDs = ["MFD","RESC"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 04:45:58] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","RESC"]
[2026-03-22 04:45:58] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 04:45:58] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 04:45:58] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-22 04:45:59] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 04:45:59] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 04:45:59] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 04:45:59] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 04:45:59] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 04:45:59] [INFO] Found existing IncidentTypeMapping with ID: 69954612e39d14933
[2026-03-22 04:45:59] [INFO] Found existing Dispatch with cADNumber '2026000102', ID: 69bf7273697fef282 - will update instead of create
[2026-03-22 04:45:59] [INFO] Updated existing Dispatches record with ID: 69bf7273697fef282
[2026-03-22 04:45:59] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_044557.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260030809_20260322_044557.XML
[2026-03-22 04:45:59] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_044557.XML
[2026-03-22 04:45:59] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_044559.XML
[2026-03-22 04:45:59] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_044559.XML for user: 68f1466aed072ad4a
[2026-03-22 04:45:59] [INFO] File size: 5413 bytes
[2026-03-22 04:45:59] [INFO] Created FTPFiles record with ID: 69bf7407ea70e0e73
[2026-03-22 04:45:59] [INFO] About to extract fields from XML. File size: 5413 bytes
[2026-03-22 04:45:59] [INFO] Number of mappings: 28
[2026-03-22 04:45:59] [INFO] Starting XML parsing. Content length: 5413
[2026-03-22 04:45:59] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 04:45:59] [INFO] Processing 28 field mappings
[2026-03-22 04:45:59] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 04:45:59] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 04:45:59] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 04:45:59] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 04:45:59] [INFO]   -> Found value: MFD
RESC
[2026-03-22 04:45:59] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nRESC"
[2026-03-22 04:45:59] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 04:45:59] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 04:45:59] [INFO]   -> Found value: 2026000102
[2026-03-22 04:45:59] [INFO]   -> Set field 'incidentInternalId' = "2026000102"
[2026-03-22 04:45:59] [INFO]   -> Set field 'dispatchRunNumber' = "2026000102"
[2026-03-22 04:45:59] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 04:45:59] [INFO]   -> Found value: ABDOMINAL PAIN
[2026-03-22 04:45:59] [INFO]   -> Set field 'incidentTypeValue1' = "ABDOMINAL PAIN"
[2026-03-22 04:45:59] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 04:45:59] [INFO]   -> Found value: 1233
[2026-03-22 04:45:59] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1233
[2026-03-22 04:45:59] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 04:45:59] [INFO]   -> Found value: TN
[2026-03-22 04:45:59] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 04:45:59] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 04:45:59] [INFO]   -> Found value: 38574
[2026-03-22 04:45:59] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 04:45:59] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 04:45:59] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:59] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 04:45:59] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:59] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 04:45:59] [INFO]   -> Found value: 36.15738
[2026-03-22 04:45:59] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1573800000000034060576581396162509918212890625
[2026-03-22 04:45:59] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 04:45:59] [INFO]   -> Found value: -85.25298
[2026-03-22 04:45:59] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2529799999999937654138193465769290924072265625
[2026-03-22 04:45:59] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 04:45:59] [INFO]   -> Found value: 2026-03-21 23:38:27
[2026-03-22 04:45:59] [INFO]   -> Set field 'alarm' = "2026-03-21 23:38:27"
[2026-03-22 04:45:59] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 04:45:59] [INFO]   -> Found value: 2026-03-21 23:39:07
[2026-03-22 04:45:59] [INFO]   -> Set field 'dispatched' = "2026-03-21 23:39:07"
[2026-03-22 04:45:59] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 04:45:59] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:59] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 04:45:59] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:59] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 04:45:59] [INFO]   -> Found value: 2026-03-21 23:45:45
[2026-03-22 04:45:59] [INFO]   -> Set field 'cleared' = "2026-03-21 23:45:45"
[2026-03-22 04:45:59] [INFO]   -> Set field 'inService' = "2026-03-21 23:45:45"
[2026-03-22 04:45:59] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 04:45:59] [INFO]   -> Found value: EVERGREEN LN/PHILLIPS DR
[2026-03-22 04:45:59] [INFO]   -> Set field 'incidentLocationCross' = "EVERGREEN LN\/PHILLIPS DR"
[2026-03-22 04:45:59] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 04:45:59] [INFO]   -> Found value: MFR
[2026-03-22 04:45:59] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-03-22 04:45:59] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 04:45:59] [INFO]   -> Found value: 2026-03-21 23:39:07
[2026-03-22 04:45:59] [INFO]   -> Set field 'timedispatch' = "2026-03-21 23:39:07"
[2026-03-22 04:45:59] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 04:45:59] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:59] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 04:45:59] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:59] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 04:45:59] [INFO]   -> Found value: 2026-03-21 23:45:45
[2026-03-22 04:45:59] [INFO]   -> Set field 'timeunitclear' = "2026-03-21 23:45:45"
[2026-03-22 04:45:59] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 04:45:59] [INFO]   -> No value found (null or empty)
[2026-03-22 04:45:59] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 04:45:59] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 04:45:59] [INFO]   -> Found value: 20260030809
[2026-03-22 04:45:59] [INFO]   -> Set field 'policeReportNumber' = "20260030809"
[2026-03-22 04:45:59] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 04:45:59] [INFO]   -> Found value: Event spawned for PCFD Event ID:20260030813  CallRef:121  [03/21/26 23:39:35 SVOKOUN2] Event spawned...
[2026-03-22 04:45:59] [INFO]   -> Set field 'dispatchNotes' = "Event spawned for PCFD Event ID:20260030813  CallRef:121  [03\/21\/26 23:39:35 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:45:59] [INFO]   -> Set field 'cADLog' = "Event spawned for PCFD Event ID:20260030813  CallRef:121  [03\/21\/26 23:39:35 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]"
[2026-03-22 04:45:59] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 04:45:59] [INFO]   -> Found value: MONTEREY
[2026-03-22 04:45:59] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 04:45:59] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 04:45:59] [INFO]   -> Found value: HANGING LIMB
[2026-03-22 04:45:59] [INFO]   -> Set field 'streetName' = "HANGING LIMB"
[2026-03-22 04:45:59] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 04:45:59] [INFO]   -> Found value: RD
[2026-03-22 04:45:59] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 04:45:59] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 04:45:59] [INFO]   -> Found value: 1233 HANGING LIMB RD
[2026-03-22 04:45:59] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1233 HANGING LIMB RD"
[2026-03-22 04:45:59] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 04:45:59] [INFO] Concatenating street name and type
[2026-03-22 04:45:59] [INFO]   -> Combined street name: HANGING LIMB RD
[2026-03-22 04:45:59] [INFO] Built locationCoordinates from lat/lng: 36.15738,-85.25298
[2026-03-22 04:45:59] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nRESC","incidentInternalId":"2026000102","dispatchRunNumber":"2026000102","incidentTypeValue1":"ABDOMINAL PAIN","incidentLocationStreetNumber":1233,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.1573800000000034060576581396162509918212890625,"nERISIncidentLongitude":-85.2529799999999937654138193465769290924072265625,"alarm":"2026-03-21 23:38:27","dispatched":"2026-03-21 23:39:07","cleared":"2026-03-21 23:45:45","inService":"2026-03-21 23:45:45","incidentLocationCross":"EVERGREEN LN\/PHILLIPS DR","cADVehicleID":"MFR","timedispatch":"2026-03-21 23:39:07","timeunitclear":"2026-03-21 23:45:45","policeReportNumber":"20260030809","dispatchNotes":"Event spawned for PCFD Event ID:20260030813  CallRef:121  [03\/21\/26 23:39:35 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","cADLog":"Event spawned for PCFD Event ID:20260030813  CallRef:121  [03\/21\/26 23:39:35 SVOKOUN2] Event spawned from ABDOMINAL PAIN.  [03\/21\/2026 23:38:27 BPICHE] DAUGHTER IS CRYING   STOMACH PAIN  15 YOF  PATIENT WILL BE LOCATED IN DRIVEWAY  [03\/21\/26 23:38:18 BPICHE]]","incidentLocationCity":"MONTEREY","streetName":"HANGING LIMB RD","incidentAddressTextVersionStreet":"1233 HANGING LIMB RD","locationCoordinates":"36.15738,-85.25298"}
[2026-03-22 04:45:59] [INFO] Number of extracted fields: 24
[2026-03-22 04:45:59] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
RESC'
[2026-03-22 04:45:59] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
RESC', Parsed IDs = ["MFD","RESC"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 04:45:59] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","RESC"]
[2026-03-22 04:45:59] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 04:46:00] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 04:46:00] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-22 04:46:00] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 04:46:00] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 04:46:00] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 04:46:00] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 04:46:00] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 04:46:00] [INFO] Found existing IncidentTypeMapping with ID: 69954612e39d14933
[2026-03-22 04:46:00] [INFO] Found existing Dispatch with cADNumber '2026000102', ID: 69bf7273697fef282 - will update instead of create
[2026-03-22 04:46:00] [INFO] Updated existing Dispatches record with ID: 69bf7273697fef282
[2026-03-22 04:46:00] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_044559.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260030809_20260322_044559.XML
[2026-03-22 04:46:00] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030809_20260322_044559.XML
[2026-03-22 08:54:37] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030866_20260322_085437.XML
[2026-03-22 08:54:37] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030866_20260322_085437.XML for user: 68f1466aed072ad4a
[2026-03-22 08:54:37] [INFO] File size: 5511 bytes
[2026-03-22 08:54:37] [INFO] Created FTPFiles record with ID: 69bfae4dc7d920e86
[2026-03-22 08:54:37] [INFO] About to extract fields from XML. File size: 5511 bytes
[2026-03-22 08:54:37] [INFO] Number of mappings: 28
[2026-03-22 08:54:37] [INFO] Starting XML parsing. Content length: 5511
[2026-03-22 08:54:37] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 08:54:37] [INFO] Processing 28 field mappings
[2026-03-22 08:54:37] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 08:54:37] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 08:54:37] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 08:54:37] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 08:54:37] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 08:54:37] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 08:54:37] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 08:54:37] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 08:54:37] [INFO]   -> Found value: 2026000769
[2026-03-22 08:54:37] [INFO]   -> Set field 'incidentInternalId' = "2026000769"
[2026-03-22 08:54:37] [INFO]   -> Set field 'dispatchRunNumber' = "2026000769"
[2026-03-22 08:54:37] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 08:54:37] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 08:54:37] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 08:54:37] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 08:54:37] [INFO]   -> Found value: 2100
[2026-03-22 08:54:37] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2100
[2026-03-22 08:54:37] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 08:54:37] [INFO]   -> Found value: TN
[2026-03-22 08:54:37] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 08:54:37] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 08:54:37] [INFO]   -> Found value: 38544
[2026-03-22 08:54:37] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-22 08:54:37] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 08:54:37] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:37] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 08:54:37] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:37] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 08:54:37] [INFO]   -> Found value: 36.16533
[2026-03-22 08:54:37] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1653299999999973124431562609970569610595703125
[2026-03-22 08:54:37] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 08:54:37] [INFO]   -> Found value: -85.71368
[2026-03-22 08:54:37] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.7136799999999965393726597540080547332763671875
[2026-03-22 08:54:37] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 08:54:37] [INFO]   -> Found value: 2026-03-22 03:53:10
[2026-03-22 08:54:37] [INFO]   -> Set field 'alarm' = "2026-03-22 03:53:10"
[2026-03-22 08:54:37] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 08:54:37] [INFO]   -> Found value: 2026-03-22 03:54:31
[2026-03-22 08:54:37] [INFO]   -> Set field 'dispatched' = "2026-03-22 03:54:31"
[2026-03-22 08:54:37] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 08:54:37] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:37] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 08:54:37] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:37] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 08:54:37] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:37] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 08:54:37] [INFO]   -> Found value: BRUCE RIDGE RD
[2026-03-22 08:54:37] [INFO]   -> Set field 'incidentLocationCross' = "BRUCE RIDGE RD"
[2026-03-22 08:54:37] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 08:54:37] [INFO]   -> Found value: PCFR
[2026-03-22 08:54:37] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 08:54:37] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 08:54:37] [INFO]   -> Found value: 2026-03-22 03:54:31
[2026-03-22 08:54:37] [INFO]   -> Set field 'timedispatch' = "2026-03-22 03:54:31"
[2026-03-22 08:54:37] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 08:54:37] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:37] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 08:54:37] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:37] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 08:54:37] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:37] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 08:54:37] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:37] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 08:54:37] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 08:54:37] [INFO]   -> Found value: 20260030866
[2026-03-22 08:54:37] [INFO]   -> Set field 'policeReportNumber' = "20260030866"
[2026-03-22 08:54:37] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 08:54:37] [INFO]   -> Found value: [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03/22/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDI...
[2026-03-22 08:54:37] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING \/\/ HAS BEEN TRHOWING UP  [03\/22\/26 03:53:39 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 03:53:10 SVOKOUN2] ANGIE MULLINS 47YOF  [03\/22\/26 03:53:06 SVOKOUN2]]"
[2026-03-22 08:54:37] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING \/\/ HAS BEEN TRHOWING UP  [03\/22\/26 03:53:39 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 03:53:10 SVOKOUN2] ANGIE MULLINS 47YOF  [03\/22\/26 03:53:06 SVOKOUN2]]"
[2026-03-22 08:54:37] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 08:54:37] [INFO]   -> Found value: BAXTER
[2026-03-22 08:54:37] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-22 08:54:37] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 08:54:37] [INFO]   -> Found value: SCOTT WATTS
[2026-03-22 08:54:37] [INFO]   -> Set field 'streetName' = "SCOTT WATTS"
[2026-03-22 08:54:37] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 08:54:37] [INFO]   -> Found value: RD
[2026-03-22 08:54:37] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 08:54:37] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 08:54:37] [INFO]   -> Found value: 2100 SCOTT WATTS RD
[2026-03-22 08:54:37] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2100 SCOTT WATTS RD"
[2026-03-22 08:54:37] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 08:54:37] [INFO] Concatenating street name and type
[2026-03-22 08:54:37] [INFO]   -> Combined street name: SCOTT WATTS RD
[2026-03-22 08:54:37] [INFO] Built locationCoordinates from lat/lng: 36.16533,-85.71368
[2026-03-22 08:54:37] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000769","dispatchRunNumber":"2026000769","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":2100,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.1653299999999973124431562609970569610595703125,"nERISIncidentLongitude":-85.7136799999999965393726597540080547332763671875,"alarm":"2026-03-22 03:53:10","dispatched":"2026-03-22 03:54:31","incidentLocationCross":"BRUCE RIDGE RD","cADVehicleID":"PCFR","timedispatch":"2026-03-22 03:54:31","policeReportNumber":"20260030866","dispatchNotes":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING \/\/ HAS BEEN TRHOWING UP  [03\/22\/26 03:53:39 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 03:53:10 SVOKOUN2] ANGIE MULLINS 47YOF  [03\/22\/26 03:53:06 SVOKOUN2]]","cADLog":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING \/\/ HAS BEEN TRHOWING UP  [03\/22\/26 03:53:39 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 03:53:10 SVOKOUN2] ANGIE MULLINS 47YOF  [03\/22\/26 03:53:06 SVOKOUN2]]","incidentLocationCity":"BAXTER","streetName":"SCOTT WATTS RD","incidentAddressTextVersionStreet":"2100 SCOTT WATTS RD","locationCoordinates":"36.16533,-85.71368"}
[2026-03-22 08:54:37] [INFO] Number of extracted fields: 21
[2026-03-22 08:54:37] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 08:54:37] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 08:54:37] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 08:54:37] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 08:54:38] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 08:54:38] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 08:54:38] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 08:54:38] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 08:54:38] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 08:54:38] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 08:54:38] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 08:54:38] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-22 08:54:49] [INFO] Created new Dispatches record with ID: 69bfae4eeb2a932ef
[2026-03-22 08:54:49] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030866_20260322_085437.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030866_20260322_085437.XML
[2026-03-22 08:54:49] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030866_20260322_085437.XML
[2026-03-22 08:54:49] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030866_20260322_085437_1.XML
[2026-03-22 08:54:49] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030866_20260322_085437_1.XML for user: 68f1466aed072ad4a
[2026-03-22 08:54:49] [INFO] File size: 5511 bytes
[2026-03-22 08:54:49] [INFO] Created FTPFiles record with ID: 69bfae5972474e677
[2026-03-22 08:54:49] [INFO] About to extract fields from XML. File size: 5511 bytes
[2026-03-22 08:54:49] [INFO] Number of mappings: 28
[2026-03-22 08:54:49] [INFO] Starting XML parsing. Content length: 5511
[2026-03-22 08:54:49] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 08:54:49] [INFO] Processing 28 field mappings
[2026-03-22 08:54:49] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 08:54:49] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 08:54:49] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 08:54:49] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 08:54:49] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 08:54:49] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 08:54:49] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 08:54:49] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 08:54:49] [INFO]   -> Found value: 2026000769
[2026-03-22 08:54:49] [INFO]   -> Set field 'incidentInternalId' = "2026000769"
[2026-03-22 08:54:49] [INFO]   -> Set field 'dispatchRunNumber' = "2026000769"
[2026-03-22 08:54:49] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 08:54:49] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 08:54:49] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 08:54:49] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 08:54:49] [INFO]   -> Found value: 2100
[2026-03-22 08:54:49] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2100
[2026-03-22 08:54:49] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 08:54:49] [INFO]   -> Found value: TN
[2026-03-22 08:54:49] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 08:54:49] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 08:54:49] [INFO]   -> Found value: 38544
[2026-03-22 08:54:49] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-22 08:54:49] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 08:54:49] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:49] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 08:54:49] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:49] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 08:54:49] [INFO]   -> Found value: 36.16533
[2026-03-22 08:54:49] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1653299999999973124431562609970569610595703125
[2026-03-22 08:54:49] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 08:54:49] [INFO]   -> Found value: -85.71368
[2026-03-22 08:54:49] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.7136799999999965393726597540080547332763671875
[2026-03-22 08:54:49] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 08:54:49] [INFO]   -> Found value: 2026-03-22 03:53:10
[2026-03-22 08:54:49] [INFO]   -> Set field 'alarm' = "2026-03-22 03:53:10"
[2026-03-22 08:54:49] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 08:54:49] [INFO]   -> Found value: 2026-03-22 03:54:31
[2026-03-22 08:54:49] [INFO]   -> Set field 'dispatched' = "2026-03-22 03:54:31"
[2026-03-22 08:54:49] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 08:54:49] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:49] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 08:54:49] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:49] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 08:54:49] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:49] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 08:54:49] [INFO]   -> Found value: BRUCE RIDGE RD
[2026-03-22 08:54:49] [INFO]   -> Set field 'incidentLocationCross' = "BRUCE RIDGE RD"
[2026-03-22 08:54:49] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 08:54:49] [INFO]   -> Found value: PCFR
[2026-03-22 08:54:49] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 08:54:49] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 08:54:49] [INFO]   -> Found value: 2026-03-22 03:54:31
[2026-03-22 08:54:49] [INFO]   -> Set field 'timedispatch' = "2026-03-22 03:54:31"
[2026-03-22 08:54:49] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 08:54:49] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:49] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 08:54:49] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:49] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 08:54:49] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:49] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 08:54:49] [INFO]   -> No value found (null or empty)
[2026-03-22 08:54:49] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 08:54:49] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 08:54:49] [INFO]   -> Found value: 20260030866
[2026-03-22 08:54:49] [INFO]   -> Set field 'policeReportNumber' = "20260030866"
[2026-03-22 08:54:49] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 08:54:49] [INFO]   -> Found value: [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03/22/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDI...
[2026-03-22 08:54:49] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING \/\/ HAS BEEN TRHOWING UP  [03\/22\/26 03:53:39 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 03:53:10 SVOKOUN2] ANGIE MULLINS 47YOF  [03\/22\/26 03:53:06 SVOKOUN2]]"
[2026-03-22 08:54:49] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING \/\/ HAS BEEN TRHOWING UP  [03\/22\/26 03:53:39 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 03:53:10 SVOKOUN2] ANGIE MULLINS 47YOF  [03\/22\/26 03:53:06 SVOKOUN2]]"
[2026-03-22 08:54:49] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 08:54:49] [INFO]   -> Found value: BAXTER
[2026-03-22 08:54:49] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-22 08:54:49] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 08:54:49] [INFO]   -> Found value: SCOTT WATTS
[2026-03-22 08:54:49] [INFO]   -> Set field 'streetName' = "SCOTT WATTS"
[2026-03-22 08:54:49] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 08:54:49] [INFO]   -> Found value: RD
[2026-03-22 08:54:49] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 08:54:49] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 08:54:49] [INFO]   -> Found value: 2100 SCOTT WATTS RD
[2026-03-22 08:54:49] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2100 SCOTT WATTS RD"
[2026-03-22 08:54:49] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 08:54:49] [INFO] Concatenating street name and type
[2026-03-22 08:54:49] [INFO]   -> Combined street name: SCOTT WATTS RD
[2026-03-22 08:54:49] [INFO] Built locationCoordinates from lat/lng: 36.16533,-85.71368
[2026-03-22 08:54:49] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000769","dispatchRunNumber":"2026000769","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":2100,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.1653299999999973124431562609970569610595703125,"nERISIncidentLongitude":-85.7136799999999965393726597540080547332763671875,"alarm":"2026-03-22 03:53:10","dispatched":"2026-03-22 03:54:31","incidentLocationCross":"BRUCE RIDGE RD","cADVehicleID":"PCFR","timedispatch":"2026-03-22 03:54:31","policeReportNumber":"20260030866","dispatchNotes":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING \/\/ HAS BEEN TRHOWING UP  [03\/22\/26 03:53:39 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 03:53:10 SVOKOUN2] ANGIE MULLINS 47YOF  [03\/22\/26 03:53:06 SVOKOUN2]]","cADLog":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING \/\/ HAS BEEN TRHOWING UP  [03\/22\/26 03:53:39 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 03:53:10 SVOKOUN2] ANGIE MULLINS 47YOF  [03\/22\/26 03:53:06 SVOKOUN2]]","incidentLocationCity":"BAXTER","streetName":"SCOTT WATTS RD","incidentAddressTextVersionStreet":"2100 SCOTT WATTS RD","locationCoordinates":"36.16533,-85.71368"}
[2026-03-22 08:54:49] [INFO] Number of extracted fields: 21
[2026-03-22 08:54:49] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 08:54:49] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 08:54:49] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 08:54:49] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 08:54:49] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 08:54:49] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 08:54:49] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 08:54:49] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 08:54:49] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 08:54:49] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 08:54:49] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 08:54:50] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-22 08:54:50] [INFO] Found existing Dispatch with cADNumber '2026000769', ID: 69bfae4eeb2a932ef - will update instead of create
[2026-03-22 08:54:50] [INFO] Updated existing Dispatches record with ID: 69bfae4eeb2a932ef
[2026-03-22 08:54:50] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030866_20260322_085437_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030866_20260322_085437_1.XML
[2026-03-22 08:54:50] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030866_20260322_085437_1.XML
[2026-03-22 08:57:10] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030866_20260322_085710.XML
[2026-03-22 08:57:10] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030866_20260322_085710.XML for user: 68f1466aed072ad4a
[2026-03-22 08:57:10] [INFO] File size: 6403 bytes
[2026-03-22 08:57:10] [INFO] Created FTPFiles record with ID: 69bfaee6c67f61b38
[2026-03-22 08:57:10] [INFO] About to extract fields from XML. File size: 6403 bytes
[2026-03-22 08:57:10] [INFO] Number of mappings: 28
[2026-03-22 08:57:10] [INFO] Starting XML parsing. Content length: 6403
[2026-03-22 08:57:10] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 08:57:10] [INFO] Processing 28 field mappings
[2026-03-22 08:57:10] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 08:57:10] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 08:57:10] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 08:57:10] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 08:57:10] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 08:57:10] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 08:57:10] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 08:57:10] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 08:57:10] [INFO]   -> Found value: 2026000769
[2026-03-22 08:57:10] [INFO]   -> Set field 'incidentInternalId' = "2026000769"
[2026-03-22 08:57:10] [INFO]   -> Set field 'dispatchRunNumber' = "2026000769"
[2026-03-22 08:57:10] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 08:57:10] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 08:57:10] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 08:57:10] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 08:57:10] [INFO]   -> Found value: 2100
[2026-03-22 08:57:10] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2100
[2026-03-22 08:57:10] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 08:57:10] [INFO]   -> Found value: TN
[2026-03-22 08:57:10] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 08:57:10] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 08:57:10] [INFO]   -> Found value: 38544
[2026-03-22 08:57:10] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-22 08:57:10] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 08:57:10] [INFO]   -> No value found (null or empty)
[2026-03-22 08:57:10] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 08:57:10] [INFO]   -> No value found (null or empty)
[2026-03-22 08:57:10] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 08:57:10] [INFO]   -> Found value: 36.16533
[2026-03-22 08:57:10] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1653299999999973124431562609970569610595703125
[2026-03-22 08:57:10] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 08:57:10] [INFO]   -> Found value: -85.71368
[2026-03-22 08:57:10] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.7136799999999965393726597540080547332763671875
[2026-03-22 08:57:10] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 08:57:10] [INFO]   -> Found value: 2026-03-22 03:53:10
[2026-03-22 08:57:10] [INFO]   -> Set field 'alarm' = "2026-03-22 03:53:10"
[2026-03-22 08:57:10] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 08:57:10] [INFO]   -> Found value: 2026-03-22 03:54:31
[2026-03-22 08:57:10] [INFO]   -> Set field 'dispatched' = "2026-03-22 03:54:31"
[2026-03-22 08:57:10] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 08:57:10] [INFO]   -> No value found (null or empty)
[2026-03-22 08:57:10] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 08:57:10] [INFO]   -> No value found (null or empty)
[2026-03-22 08:57:10] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 08:57:10] [INFO]   -> No value found (null or empty)
[2026-03-22 08:57:10] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 08:57:10] [INFO]   -> Found value: BRUCE RIDGE RD
[2026-03-22 08:57:10] [INFO]   -> Set field 'incidentLocationCross' = "BRUCE RIDGE RD"
[2026-03-22 08:57:10] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 08:57:10] [INFO]   -> Found value: PCFR
[2026-03-22 08:57:10] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 08:57:10] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 08:57:10] [INFO]   -> Found value: 2026-03-22 03:54:31
[2026-03-22 08:57:10] [INFO]   -> Set field 'timedispatch' = "2026-03-22 03:54:31"
[2026-03-22 08:57:10] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 08:57:10] [INFO]   -> No value found (null or empty)
[2026-03-22 08:57:10] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 08:57:10] [INFO]   -> No value found (null or empty)
[2026-03-22 08:57:10] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 08:57:10] [INFO]   -> Found value: 2026-03-22 03:57:06
[2026-03-22 08:57:10] [INFO]   -> Set field 'timeunitclear' = "2026-03-22 03:57:06"
[2026-03-22 08:57:10] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 08:57:10] [INFO]   -> Found value: 2026-03-22 03:57:06
[2026-03-22 08:57:10] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-22 03:57:06"
[2026-03-22 08:57:10] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 08:57:10] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 08:57:10] [INFO]   -> Found value: 20260030866
[2026-03-22 08:57:10] [INFO]   -> Set field 'policeReportNumber' = "20260030866"
[2026-03-22 08:57:10] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 08:57:10] [INFO]   -> Found value: [LAW] P3333 DIRECT / POSS CODE 55 RELATED  [03/22/26 03:55:35 BAHARRIS] [LAW] UDTS: LAW CARD SEEN BY...
[2026-03-22 08:57:10] [INFO]   -> Set field 'dispatchNotes' = "[LAW] P3333 DIRECT \/ POSS CODE 55 RELATED  [03\/22\/26 03:55:35 BAHARRIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING \/\/ HAS BEEN TRHOWING UP  [03\/22\/26 03:53:39 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 03:53:10 SVOKOUN2] ANGIE MULLINS 47YOF  [03\/22\/26 03:53:06 SVOKOUN2]]"
[2026-03-22 08:57:10] [INFO]   -> Set field 'cADLog' = "[LAW] P3333 DIRECT \/ POSS CODE 55 RELATED  [03\/22\/26 03:55:35 BAHARRIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING \/\/ HAS BEEN TRHOWING UP  [03\/22\/26 03:53:39 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 03:53:10 SVOKOUN2] ANGIE MULLINS 47YOF  [03\/22\/26 03:53:06 SVOKOUN2]]"
[2026-03-22 08:57:10] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 08:57:10] [INFO]   -> Found value: BAXTER
[2026-03-22 08:57:10] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-22 08:57:10] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 08:57:10] [INFO]   -> Found value: SCOTT WATTS
[2026-03-22 08:57:10] [INFO]   -> Set field 'streetName' = "SCOTT WATTS"
[2026-03-22 08:57:10] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 08:57:10] [INFO]   -> Found value: RD
[2026-03-22 08:57:10] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 08:57:10] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 08:57:10] [INFO]   -> Found value: 2100 SCOTT WATTS RD
[2026-03-22 08:57:10] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2100 SCOTT WATTS RD"
[2026-03-22 08:57:10] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 08:57:10] [INFO] Concatenating street name and type
[2026-03-22 08:57:10] [INFO]   -> Combined street name: SCOTT WATTS RD
[2026-03-22 08:57:10] [INFO] Built locationCoordinates from lat/lng: 36.16533,-85.71368
[2026-03-22 08:57:10] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000769","dispatchRunNumber":"2026000769","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":2100,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.1653299999999973124431562609970569610595703125,"nERISIncidentLongitude":-85.7136799999999965393726597540080547332763671875,"alarm":"2026-03-22 03:53:10","dispatched":"2026-03-22 03:54:31","incidentLocationCross":"BRUCE RIDGE RD","cADVehicleID":"PCFR","timedispatch":"2026-03-22 03:54:31","timeunitclear":"2026-03-22 03:57:06","timecanceledenroute":"2026-03-22 03:57:06","policeReportNumber":"20260030866","dispatchNotes":"[LAW] P3333 DIRECT \/ POSS CODE 55 RELATED  [03\/22\/26 03:55:35 BAHARRIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING \/\/ HAS BEEN TRHOWING UP  [03\/22\/26 03:53:39 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 03:53:10 SVOKOUN2] ANGIE MULLINS 47YOF  [03\/22\/26 03:53:06 SVOKOUN2]]","cADLog":"[LAW] P3333 DIRECT \/ POSS CODE 55 RELATED  [03\/22\/26 03:55:35 BAHARRIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING \/\/ HAS BEEN TRHOWING UP  [03\/22\/26 03:53:39 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 03:53:10 SVOKOUN2] ANGIE MULLINS 47YOF  [03\/22\/26 03:53:06 SVOKOUN2]]","incidentLocationCity":"BAXTER","streetName":"SCOTT WATTS RD","incidentAddressTextVersionStreet":"2100 SCOTT WATTS RD","locationCoordinates":"36.16533,-85.71368"}
[2026-03-22 08:57:10] [INFO] Number of extracted fields: 23
[2026-03-22 08:57:10] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 08:57:10] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 08:57:10] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 08:57:10] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 08:57:11] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 08:57:11] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 08:57:11] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 08:57:11] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 08:57:11] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 08:57:11] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 08:57:11] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 08:57:11] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-22 08:57:11] [INFO] Found existing Dispatch with cADNumber '2026000769', ID: 69bfae4eeb2a932ef - will update instead of create
[2026-03-22 08:57:12] [INFO] Updated existing Dispatches record with ID: 69bfae4eeb2a932ef
[2026-03-22 08:57:12] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030866_20260322_085710.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030866_20260322_085710.XML
[2026-03-22 08:57:12] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030866_20260322_085710.XML
[2026-03-22 08:57:13] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030866_20260322_085713.XML
[2026-03-22 08:57:13] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030866_20260322_085713.XML for user: 68f1466aed072ad4a
[2026-03-22 08:57:13] [INFO] File size: 6470 bytes
[2026-03-22 08:57:13] [INFO] Created FTPFiles record with ID: 69bfaee98fb197f3f
[2026-03-22 08:57:13] [INFO] About to extract fields from XML. File size: 6470 bytes
[2026-03-22 08:57:13] [INFO] Number of mappings: 28
[2026-03-22 08:57:13] [INFO] Starting XML parsing. Content length: 6470
[2026-03-22 08:57:13] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 08:57:13] [INFO] Processing 28 field mappings
[2026-03-22 08:57:13] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 08:57:13] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 08:57:13] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 08:57:13] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 08:57:13] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 08:57:13] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 08:57:13] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 08:57:13] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 08:57:13] [INFO]   -> Found value: 2026000769
[2026-03-22 08:57:13] [INFO]   -> Set field 'incidentInternalId' = "2026000769"
[2026-03-22 08:57:13] [INFO]   -> Set field 'dispatchRunNumber' = "2026000769"
[2026-03-22 08:57:13] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 08:57:13] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 08:57:13] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 08:57:13] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 08:57:13] [INFO]   -> Found value: 2100
[2026-03-22 08:57:13] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2100
[2026-03-22 08:57:13] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 08:57:13] [INFO]   -> Found value: TN
[2026-03-22 08:57:13] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 08:57:13] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 08:57:13] [INFO]   -> Found value: 38544
[2026-03-22 08:57:13] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-22 08:57:13] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 08:57:13] [INFO]   -> No value found (null or empty)
[2026-03-22 08:57:13] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 08:57:13] [INFO]   -> No value found (null or empty)
[2026-03-22 08:57:13] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 08:57:13] [INFO]   -> Found value: 36.16533
[2026-03-22 08:57:13] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1653299999999973124431562609970569610595703125
[2026-03-22 08:57:13] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 08:57:13] [INFO]   -> Found value: -85.71368
[2026-03-22 08:57:13] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.7136799999999965393726597540080547332763671875
[2026-03-22 08:57:13] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 08:57:13] [INFO]   -> Found value: 2026-03-22 03:53:10
[2026-03-22 08:57:13] [INFO]   -> Set field 'alarm' = "2026-03-22 03:53:10"
[2026-03-22 08:57:13] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 08:57:13] [INFO]   -> Found value: 2026-03-22 03:54:31
[2026-03-22 08:57:13] [INFO]   -> Set field 'dispatched' = "2026-03-22 03:54:31"
[2026-03-22 08:57:13] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 08:57:13] [INFO]   -> Found value: 2026-03-22 03:57:08
[2026-03-22 08:57:13] [INFO]   -> Set field 'enroute' = "2026-03-22 03:57:08"
[2026-03-22 08:57:13] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 08:57:13] [INFO]   -> No value found (null or empty)
[2026-03-22 08:57:13] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 08:57:13] [INFO]   -> No value found (null or empty)
[2026-03-22 08:57:13] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 08:57:13] [INFO]   -> Found value: BRUCE RIDGE RD
[2026-03-22 08:57:13] [INFO]   -> Set field 'incidentLocationCross' = "BRUCE RIDGE RD"
[2026-03-22 08:57:13] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 08:57:13] [INFO]   -> Found value: TK31
[2026-03-22 08:57:13] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-22 08:57:13] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 08:57:13] [INFO]   -> Found value: 2026-03-22 03:57:06
[2026-03-22 08:57:13] [INFO]   -> Set field 'timedispatch' = "2026-03-22 03:57:06"
[2026-03-22 08:57:13] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 08:57:13] [INFO]   -> Found value: 2026-03-22 03:57:08
[2026-03-22 08:57:13] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 03:57:08"
[2026-03-22 08:57:13] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 08:57:13] [INFO]   -> No value found (null or empty)
[2026-03-22 08:57:13] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 08:57:13] [INFO]   -> No value found (null or empty)
[2026-03-22 08:57:13] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 08:57:13] [INFO]   -> No value found (null or empty)
[2026-03-22 08:57:13] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 08:57:13] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 08:57:13] [INFO]   -> Found value: 20260030866
[2026-03-22 08:57:13] [INFO]   -> Set field 'policeReportNumber' = "20260030866"
[2026-03-22 08:57:13] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 08:57:13] [INFO]   -> Found value: [LAW] P3333 DIRECT / POSS CODE 55 RELATED  [03/22/26 03:55:35 BAHARRIS] [LAW] UDTS: LAW CARD SEEN BY...
[2026-03-22 08:57:13] [INFO]   -> Set field 'dispatchNotes' = "[LAW] P3333 DIRECT \/ POSS CODE 55 RELATED  [03\/22\/26 03:55:35 BAHARRIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING \/\/ HAS BEEN TRHOWING UP  [03\/22\/26 03:53:39 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 03:53:10 SVOKOUN2] ANGIE MULLINS 47YOF  [03\/22\/26 03:53:06 SVOKOUN2]]"
[2026-03-22 08:57:13] [INFO]   -> Set field 'cADLog' = "[LAW] P3333 DIRECT \/ POSS CODE 55 RELATED  [03\/22\/26 03:55:35 BAHARRIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING \/\/ HAS BEEN TRHOWING UP  [03\/22\/26 03:53:39 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 03:53:10 SVOKOUN2] ANGIE MULLINS 47YOF  [03\/22\/26 03:53:06 SVOKOUN2]]"
[2026-03-22 08:57:13] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 08:57:13] [INFO]   -> Found value: BAXTER
[2026-03-22 08:57:13] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-22 08:57:13] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 08:57:13] [INFO]   -> Found value: SCOTT WATTS
[2026-03-22 08:57:13] [INFO]   -> Set field 'streetName' = "SCOTT WATTS"
[2026-03-22 08:57:13] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 08:57:13] [INFO]   -> Found value: RD
[2026-03-22 08:57:13] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 08:57:13] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 08:57:13] [INFO]   -> Found value: 2100 SCOTT WATTS RD
[2026-03-22 08:57:13] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "2100 SCOTT WATTS RD"
[2026-03-22 08:57:13] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 08:57:13] [INFO] Concatenating street name and type
[2026-03-22 08:57:13] [INFO]   -> Combined street name: SCOTT WATTS RD
[2026-03-22 08:57:13] [INFO] Built locationCoordinates from lat/lng: 36.16533,-85.71368
[2026-03-22 08:57:13] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000769","dispatchRunNumber":"2026000769","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":2100,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.1653299999999973124431562609970569610595703125,"nERISIncidentLongitude":-85.7136799999999965393726597540080547332763671875,"alarm":"2026-03-22 03:53:10","dispatched":"2026-03-22 03:54:31","enroute":"2026-03-22 03:57:08","incidentLocationCross":"BRUCE RIDGE RD","cADVehicleID":"TK31","timedispatch":"2026-03-22 03:57:06","timeenroutetoscene":"2026-03-22 03:57:08","policeReportNumber":"20260030866","dispatchNotes":"[LAW] P3333 DIRECT \/ POSS CODE 55 RELATED  [03\/22\/26 03:55:35 BAHARRIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING \/\/ HAS BEEN TRHOWING UP  [03\/22\/26 03:53:39 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 03:53:10 SVOKOUN2] ANGIE MULLINS 47YOF  [03\/22\/26 03:53:06 SVOKOUN2]]","cADLog":"[LAW] P3333 DIRECT \/ POSS CODE 55 RELATED  [03\/22\/26 03:55:35 BAHARRIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 03:54:16 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING \/\/ HAS BEEN TRHOWING UP  [03\/22\/26 03:53:39 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 03:53:10 SVOKOUN2] ANGIE MULLINS 47YOF  [03\/22\/26 03:53:06 SVOKOUN2]]","incidentLocationCity":"BAXTER","streetName":"SCOTT WATTS RD","incidentAddressTextVersionStreet":"2100 SCOTT WATTS RD","locationCoordinates":"36.16533,-85.71368"}
[2026-03-22 08:57:13] [INFO] Number of extracted fields: 23
[2026-03-22 08:57:13] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 08:57:13] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 08:57:13] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 08:57:13] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 08:57:13] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 08:57:13] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 08:57:14] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 08:57:14] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 08:57:14] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 08:57:14] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 08:57:14] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 08:57:14] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-22 08:57:14] [INFO] Found existing Dispatch with cADNumber '2026000769', ID: 69bfae4eeb2a932ef - will update instead of create
[2026-03-22 08:57:14] [INFO] Updated existing Dispatches record with ID: 69bfae4eeb2a932ef
[2026-03-22 08:57:14] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030866_20260322_085713.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030866_20260322_085713.XML
[2026-03-22 08:57:14] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030866_20260322_085713.XML
[2026-03-22 12:28:40] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_122840.XML
[2026-03-22 12:28:40] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_122840.XML for user: 68f1466aed072ad4a
[2026-03-22 12:28:40] [INFO] File size: 5295 bytes
[2026-03-22 12:28:41] [INFO] Created FTPFiles record with ID: 69bfe079192bce5f9
[2026-03-22 12:28:41] [INFO] About to extract fields from XML. File size: 5295 bytes
[2026-03-22 12:28:41] [INFO] Number of mappings: 28
[2026-03-22 12:28:41] [INFO] Starting XML parsing. Content length: 5295
[2026-03-22 12:28:41] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 12:28:41] [INFO] Processing 28 field mappings
[2026-03-22 12:28:41] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 12:28:41] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 12:28:41] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 12:28:41] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 12:28:41] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 12:28:41] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 12:28:41] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 12:28:41] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 12:28:41] [INFO]   -> Found value: 2026000770
[2026-03-22 12:28:41] [INFO]   -> Set field 'incidentInternalId' = "2026000770"
[2026-03-22 12:28:41] [INFO]   -> Set field 'dispatchRunNumber' = "2026000770"
[2026-03-22 12:28:41] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 12:28:41] [INFO]   -> Found value: CHEST PAIN
[2026-03-22 12:28:41] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-03-22 12:28:41] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 12:28:41] [INFO]   -> Found value: 4773
[2026-03-22 12:28:41] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4773
[2026-03-22 12:28:41] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 12:28:41] [INFO]   -> Found value: TN
[2026-03-22 12:28:41] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 12:28:41] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 12:28:41] [INFO]   -> Found value: 38501
[2026-03-22 12:28:41] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-22 12:28:41] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 12:28:41] [INFO]   -> No value found (null or empty)
[2026-03-22 12:28:41] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 12:28:41] [INFO]   -> No value found (null or empty)
[2026-03-22 12:28:41] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 12:28:41] [INFO]   -> Found value: 36.20911
[2026-03-22 12:28:41] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20911000000000257159626926295459270477294921875
[2026-03-22 12:28:41] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 12:28:41] [INFO]   -> Found value: -85.59669
[2026-03-22 12:28:41] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.596689999999995279722497798502445220947265625
[2026-03-22 12:28:41] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 12:28:41] [INFO]   -> Found value: 2026-03-22 07:28:05
[2026-03-22 12:28:41] [INFO]   -> Set field 'alarm' = "2026-03-22 07:28:05"
[2026-03-22 12:28:41] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 12:28:41] [INFO]   -> Found value: 2026-03-22 07:28:38
[2026-03-22 12:28:41] [INFO]   -> Set field 'dispatched' = "2026-03-22 07:28:38"
[2026-03-22 12:28:41] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 12:28:41] [INFO]   -> No value found (null or empty)
[2026-03-22 12:28:41] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 12:28:41] [INFO]   -> No value found (null or empty)
[2026-03-22 12:28:41] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 12:28:41] [INFO]   -> No value found (null or empty)
[2026-03-22 12:28:41] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 12:28:41] [INFO]   -> Found value: POUNDSTONE DR/POUNDSTONE DR
[2026-03-22 12:28:41] [INFO]   -> Set field 'incidentLocationCross' = "POUNDSTONE DR\/POUNDSTONE DR"
[2026-03-22 12:28:41] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 12:28:41] [INFO]   -> Found value: PCFR
[2026-03-22 12:28:41] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 12:28:41] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 12:28:41] [INFO]   -> Found value: 2026-03-22 07:28:38
[2026-03-22 12:28:41] [INFO]   -> Set field 'timedispatch' = "2026-03-22 07:28:38"
[2026-03-22 12:28:41] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 12:28:41] [INFO]   -> No value found (null or empty)
[2026-03-22 12:28:41] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 12:28:41] [INFO]   -> No value found (null or empty)
[2026-03-22 12:28:41] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 12:28:41] [INFO]   -> No value found (null or empty)
[2026-03-22 12:28:41] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 12:28:41] [INFO]   -> No value found (null or empty)
[2026-03-22 12:28:41] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 12:28:41] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 12:28:41] [INFO]   -> Found value: 20260030884
[2026-03-22 12:28:41] [INFO]   -> Set field 'policeReportNumber' = "20260030884"
[2026-03-22 12:28:41] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 12:28:41] [INFO]   -> Found value: Event spawned from CHEST PAIN.  [03/22/2026 07:28:05 KHILL]
[2026-03-22 12:28:41] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]"
[2026-03-22 12:28:41] [INFO]   -> Set field 'cADLog' = "Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]"
[2026-03-22 12:28:41] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 12:28:41] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 12:28:41] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 12:28:41] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 12:28:41] [INFO]   -> Found value: ELLEN
[2026-03-22 12:28:41] [INFO]   -> Set field 'streetName' = "ELLEN"
[2026-03-22 12:28:41] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 12:28:41] [INFO]   -> Found value: CIR
[2026-03-22 12:28:41] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-22 12:28:41] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 12:28:41] [INFO]   -> Found value: 4773 ELLEN CIR
[2026-03-22 12:28:41] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4773 ELLEN CIR"
[2026-03-22 12:28:41] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 12:28:41] [INFO] Concatenating street name and type
[2026-03-22 12:28:41] [INFO]   -> Combined street name: ELLEN CIR
[2026-03-22 12:28:41] [INFO] Built locationCoordinates from lat/lng: 36.20911,-85.59669
[2026-03-22 12:28:41] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000770","dispatchRunNumber":"2026000770","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":4773,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.20911000000000257159626926295459270477294921875,"nERISIncidentLongitude":-85.596689999999995279722497798502445220947265625,"alarm":"2026-03-22 07:28:05","dispatched":"2026-03-22 07:28:38","incidentLocationCross":"POUNDSTONE DR\/POUNDSTONE DR","cADVehicleID":"PCFR","timedispatch":"2026-03-22 07:28:38","policeReportNumber":"20260030884","dispatchNotes":"Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]","cADLog":"Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]","incidentLocationCity":"COOKEVILLE","streetName":"ELLEN CIR","incidentAddressTextVersionStreet":"4773 ELLEN CIR","locationCoordinates":"36.20911,-85.59669"}
[2026-03-22 12:28:41] [INFO] Number of extracted fields: 21
[2026-03-22 12:28:41] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 12:28:41] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 12:28:41] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 12:28:41] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 12:28:41] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 12:28:41] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 12:28: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-22 12:28: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-22 12:28:41] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 12:28:41] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 12:28:41] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 12:28:41] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-03-22 12:28:51] [INFO] Created new Dispatches record with ID: 69bfe079dba34512f
[2026-03-22 12:28:51] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_122840.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030884_20260322_122840.XML
[2026-03-22 12:28:51] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_122840.XML
[2026-03-22 12:30:06] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_123006.XML
[2026-03-22 12:30:06] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_123006.XML for user: 68f1466aed072ad4a
[2026-03-22 12:30:06] [INFO] File size: 6360 bytes
[2026-03-22 12:30:06] [INFO] Created FTPFiles record with ID: 69bfe0ce7b8dac679
[2026-03-22 12:30:06] [INFO] About to extract fields from XML. File size: 6360 bytes
[2026-03-22 12:30:06] [INFO] Number of mappings: 28
[2026-03-22 12:30:06] [INFO] Starting XML parsing. Content length: 6360
[2026-03-22 12:30:06] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 12:30:06] [INFO] Processing 28 field mappings
[2026-03-22 12:30:06] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 12:30:06] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 12:30:06] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 12:30:06] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 12:30:06] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 12:30:06] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 12:30:06] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 12:30:06] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 12:30:06] [INFO]   -> Found value: 2026000770
[2026-03-22 12:30:06] [INFO]   -> Set field 'incidentInternalId' = "2026000770"
[2026-03-22 12:30:06] [INFO]   -> Set field 'dispatchRunNumber' = "2026000770"
[2026-03-22 12:30:06] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 12:30:06] [INFO]   -> Found value: CHEST PAIN
[2026-03-22 12:30:06] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-03-22 12:30:06] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 12:30:06] [INFO]   -> Found value: 4773
[2026-03-22 12:30:06] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4773
[2026-03-22 12:30:06] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 12:30:06] [INFO]   -> Found value: TN
[2026-03-22 12:30:06] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 12:30:06] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 12:30:06] [INFO]   -> Found value: 38501
[2026-03-22 12:30:06] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-22 12:30:06] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 12:30:06] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:06] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 12:30:06] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:06] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 12:30:06] [INFO]   -> Found value: 36.20911
[2026-03-22 12:30:06] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20911000000000257159626926295459270477294921875
[2026-03-22 12:30:06] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 12:30:06] [INFO]   -> Found value: -85.59669
[2026-03-22 12:30:06] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.596689999999995279722497798502445220947265625
[2026-03-22 12:30:06] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 12:30:06] [INFO]   -> Found value: 2026-03-22 07:28:05
[2026-03-22 12:30:06] [INFO]   -> Set field 'alarm' = "2026-03-22 07:28:05"
[2026-03-22 12:30:06] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 12:30:06] [INFO]   -> Found value: 2026-03-22 07:28:38
[2026-03-22 12:30:06] [INFO]   -> Set field 'dispatched' = "2026-03-22 07:28:38"
[2026-03-22 12:30:06] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 12:30:06] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:06] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 12:30:06] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:06] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 12:30:06] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:06] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 12:30:06] [INFO]   -> Found value: POUNDSTONE DR/POUNDSTONE DR
[2026-03-22 12:30:06] [INFO]   -> Set field 'incidentLocationCross' = "POUNDSTONE DR\/POUNDSTONE DR"
[2026-03-22 12:30:06] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 12:30:06] [INFO]   -> Found value: PCFR
[2026-03-22 12:30:06] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 12:30:06] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 12:30:06] [INFO]   -> Found value: 2026-03-22 07:28:38
[2026-03-22 12:30:06] [INFO]   -> Set field 'timedispatch' = "2026-03-22 07:28:38"
[2026-03-22 12:30:06] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 12:30:06] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:06] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 12:30:06] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:06] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 12:30:06] [INFO]   -> Found value: 2026-03-22 07:30:00
[2026-03-22 12:30:06] [INFO]   -> Set field 'timeunitclear' = "2026-03-22 07:30:00"
[2026-03-22 12:30:06] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 12:30:06] [INFO]   -> Found value: 2026-03-22 07:30:00
[2026-03-22 12:30:06] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-22 07:30:00"
[2026-03-22 12:30:06] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 12:30:06] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 12:30:06] [INFO]   -> Found value: 20260030884
[2026-03-22 12:30:06] [INFO]   -> Set field 'policeReportNumber' = "20260030884"
[2026-03-22 12:30:06] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 12:30:06] [INFO]   -> Found value: [LAW] UDTS: LE NOT RESPONDING  [03/22/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12/28...
[2026-03-22 12:30:06] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: LE NOT RESPONDING  [03\/22\/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12\/28\/1986  [03\/22\/26 07:29:12 KHILL] [EMS] BURNING AND TINGLING EVERYWHERE WOKE UP WITH A HEADACHE  [03\/22\/26 07:28:43 KHILL] Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]"
[2026-03-22 12:30:06] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: LE NOT RESPONDING  [03\/22\/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12\/28\/1986  [03\/22\/26 07:29:12 KHILL] [EMS] BURNING AND TINGLING EVERYWHERE WOKE UP WITH A HEADACHE  [03\/22\/26 07:28:43 KHILL] Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]"
[2026-03-22 12:30:06] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 12:30:06] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 12:30:06] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 12:30:06] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 12:30:06] [INFO]   -> Found value: ELLEN
[2026-03-22 12:30:06] [INFO]   -> Set field 'streetName' = "ELLEN"
[2026-03-22 12:30:06] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 12:30:06] [INFO]   -> Found value: CIR
[2026-03-22 12:30:06] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-22 12:30:06] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 12:30:06] [INFO]   -> Found value: 4773 ELLEN CIR
[2026-03-22 12:30:06] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4773 ELLEN CIR"
[2026-03-22 12:30:06] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 12:30:06] [INFO] Concatenating street name and type
[2026-03-22 12:30:06] [INFO]   -> Combined street name: ELLEN CIR
[2026-03-22 12:30:06] [INFO] Built locationCoordinates from lat/lng: 36.20911,-85.59669
[2026-03-22 12:30:06] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000770","dispatchRunNumber":"2026000770","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":4773,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.20911000000000257159626926295459270477294921875,"nERISIncidentLongitude":-85.596689999999995279722497798502445220947265625,"alarm":"2026-03-22 07:28:05","dispatched":"2026-03-22 07:28:38","incidentLocationCross":"POUNDSTONE DR\/POUNDSTONE DR","cADVehicleID":"PCFR","timedispatch":"2026-03-22 07:28:38","timeunitclear":"2026-03-22 07:30:00","timecanceledenroute":"2026-03-22 07:30:00","policeReportNumber":"20260030884","dispatchNotes":"[LAW] UDTS: LE NOT RESPONDING  [03\/22\/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12\/28\/1986  [03\/22\/26 07:29:12 KHILL] [EMS] BURNING AND TINGLING EVERYWHERE WOKE UP WITH A HEADACHE  [03\/22\/26 07:28:43 KHILL] Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]","cADLog":"[LAW] UDTS: LE NOT RESPONDING  [03\/22\/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12\/28\/1986  [03\/22\/26 07:29:12 KHILL] [EMS] BURNING AND TINGLING EVERYWHERE WOKE UP WITH A HEADACHE  [03\/22\/26 07:28:43 KHILL] Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]","incidentLocationCity":"COOKEVILLE","streetName":"ELLEN CIR","incidentAddressTextVersionStreet":"4773 ELLEN CIR","locationCoordinates":"36.20911,-85.59669"}
[2026-03-22 12:30:06] [INFO] Number of extracted fields: 23
[2026-03-22 12:30:06] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 12:30:06] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 12:30:06] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 12:30:06] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 12:30:06] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 12:30:06] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 12:30: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-22 12:30: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-22 12:30:06] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 12:30:06] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 12:30:06] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 12:30:06] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-03-22 12:30:07] [INFO] Found existing Dispatch with cADNumber '2026000770', ID: 69bfe079dba34512f - will update instead of create
[2026-03-22 12:30:07] [INFO] Updated existing Dispatches record with ID: 69bfe079dba34512f
[2026-03-22 12:30:07] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_123006.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030884_20260322_123006.XML
[2026-03-22 12:30:07] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_123006.XML
[2026-03-22 12:30:07] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_123007.XML
[2026-03-22 12:30:07] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_123007.XML for user: 68f1466aed072ad4a
[2026-03-22 12:30:07] [INFO] File size: 6427 bytes
[2026-03-22 12:30:08] [INFO] Created FTPFiles record with ID: 69bfe0d00063ebd43
[2026-03-22 12:30:08] [INFO] About to extract fields from XML. File size: 6427 bytes
[2026-03-22 12:30:08] [INFO] Number of mappings: 28
[2026-03-22 12:30:08] [INFO] Starting XML parsing. Content length: 6427
[2026-03-22 12:30:08] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 12:30:08] [INFO] Processing 28 field mappings
[2026-03-22 12:30:08] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 12:30:08] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 12:30:08] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 12:30:08] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 12:30:08] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 12:30:08] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 12:30:08] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 12:30:08] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 12:30:08] [INFO]   -> Found value: 2026000770
[2026-03-22 12:30:08] [INFO]   -> Set field 'incidentInternalId' = "2026000770"
[2026-03-22 12:30:08] [INFO]   -> Set field 'dispatchRunNumber' = "2026000770"
[2026-03-22 12:30:08] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 12:30:08] [INFO]   -> Found value: CHEST PAIN
[2026-03-22 12:30:08] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-03-22 12:30:08] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 12:30:08] [INFO]   -> Found value: 4773
[2026-03-22 12:30:08] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4773
[2026-03-22 12:30:08] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 12:30:08] [INFO]   -> Found value: TN
[2026-03-22 12:30:08] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 12:30:08] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 12:30:08] [INFO]   -> Found value: 38501
[2026-03-22 12:30:08] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-22 12:30:08] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 12:30:08] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:08] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 12:30:08] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:08] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 12:30:08] [INFO]   -> Found value: 36.20911
[2026-03-22 12:30:08] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20911000000000257159626926295459270477294921875
[2026-03-22 12:30:08] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 12:30:08] [INFO]   -> Found value: -85.59669
[2026-03-22 12:30:08] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.596689999999995279722497798502445220947265625
[2026-03-22 12:30:08] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 12:30:08] [INFO]   -> Found value: 2026-03-22 07:28:05
[2026-03-22 12:30:08] [INFO]   -> Set field 'alarm' = "2026-03-22 07:28:05"
[2026-03-22 12:30:08] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 12:30:08] [INFO]   -> Found value: 2026-03-22 07:28:38
[2026-03-22 12:30:08] [INFO]   -> Set field 'dispatched' = "2026-03-22 07:28:38"
[2026-03-22 12:30:08] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 12:30:08] [INFO]   -> Found value: 2026-03-22 07:30:05
[2026-03-22 12:30:08] [INFO]   -> Set field 'enroute' = "2026-03-22 07:30:05"
[2026-03-22 12:30:08] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 12:30:08] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:08] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 12:30:08] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:08] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 12:30:08] [INFO]   -> Found value: POUNDSTONE DR/POUNDSTONE DR
[2026-03-22 12:30:08] [INFO]   -> Set field 'incidentLocationCross' = "POUNDSTONE DR\/POUNDSTONE DR"
[2026-03-22 12:30:08] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 12:30:08] [INFO]   -> Found value: TK31
[2026-03-22 12:30:08] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-22 12:30:08] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 12:30:08] [INFO]   -> Found value: 2026-03-22 07:30:00
[2026-03-22 12:30:08] [INFO]   -> Set field 'timedispatch' = "2026-03-22 07:30:00"
[2026-03-22 12:30:08] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 12:30:08] [INFO]   -> Found value: 2026-03-22 07:30:05
[2026-03-22 12:30:08] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 07:30:05"
[2026-03-22 12:30:08] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 12:30:08] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:08] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 12:30:08] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:08] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 12:30:08] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:08] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 12:30:08] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 12:30:08] [INFO]   -> Found value: 20260030884
[2026-03-22 12:30:08] [INFO]   -> Set field 'policeReportNumber' = "20260030884"
[2026-03-22 12:30:08] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 12:30:08] [INFO]   -> Found value: [LAW] UDTS: LE NOT RESPONDING  [03/22/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12/28...
[2026-03-22 12:30:08] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: LE NOT RESPONDING  [03\/22\/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12\/28\/1986  [03\/22\/26 07:29:12 KHILL] [EMS] BURNING AND TINGLING EVERYWHERE WOKE UP WITH A HEADACHE  [03\/22\/26 07:28:43 KHILL] Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]"
[2026-03-22 12:30:08] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: LE NOT RESPONDING  [03\/22\/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12\/28\/1986  [03\/22\/26 07:29:12 KHILL] [EMS] BURNING AND TINGLING EVERYWHERE WOKE UP WITH A HEADACHE  [03\/22\/26 07:28:43 KHILL] Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]"
[2026-03-22 12:30:08] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 12:30:08] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 12:30:08] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 12:30:08] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 12:30:08] [INFO]   -> Found value: ELLEN
[2026-03-22 12:30:08] [INFO]   -> Set field 'streetName' = "ELLEN"
[2026-03-22 12:30:08] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 12:30:08] [INFO]   -> Found value: CIR
[2026-03-22 12:30:08] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-22 12:30:08] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 12:30:08] [INFO]   -> Found value: 4773 ELLEN CIR
[2026-03-22 12:30:08] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4773 ELLEN CIR"
[2026-03-22 12:30:08] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 12:30:08] [INFO] Concatenating street name and type
[2026-03-22 12:30:08] [INFO]   -> Combined street name: ELLEN CIR
[2026-03-22 12:30:08] [INFO] Built locationCoordinates from lat/lng: 36.20911,-85.59669
[2026-03-22 12:30:08] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000770","dispatchRunNumber":"2026000770","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":4773,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.20911000000000257159626926295459270477294921875,"nERISIncidentLongitude":-85.596689999999995279722497798502445220947265625,"alarm":"2026-03-22 07:28:05","dispatched":"2026-03-22 07:28:38","enroute":"2026-03-22 07:30:05","incidentLocationCross":"POUNDSTONE DR\/POUNDSTONE DR","cADVehicleID":"TK31","timedispatch":"2026-03-22 07:30:00","timeenroutetoscene":"2026-03-22 07:30:05","policeReportNumber":"20260030884","dispatchNotes":"[LAW] UDTS: LE NOT RESPONDING  [03\/22\/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12\/28\/1986  [03\/22\/26 07:29:12 KHILL] [EMS] BURNING AND TINGLING EVERYWHERE WOKE UP WITH A HEADACHE  [03\/22\/26 07:28:43 KHILL] Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]","cADLog":"[LAW] UDTS: LE NOT RESPONDING  [03\/22\/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12\/28\/1986  [03\/22\/26 07:29:12 KHILL] [EMS] BURNING AND TINGLING EVERYWHERE WOKE UP WITH A HEADACHE  [03\/22\/26 07:28:43 KHILL] Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]","incidentLocationCity":"COOKEVILLE","streetName":"ELLEN CIR","incidentAddressTextVersionStreet":"4773 ELLEN CIR","locationCoordinates":"36.20911,-85.59669"}
[2026-03-22 12:30:08] [INFO] Number of extracted fields: 23
[2026-03-22 12:30:08] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 12:30:08] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 12:30:08] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 12:30:08] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 12:30:08] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 12:30:08] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 12:30:08] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 12:30:08] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 12:30:08] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 12:30:08] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 12:30:08] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 12:30:08] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-03-22 12:30:08] [INFO] Found existing Dispatch with cADNumber '2026000770', ID: 69bfe079dba34512f - will update instead of create
[2026-03-22 12:30:08] [INFO] Updated existing Dispatches record with ID: 69bfe079dba34512f
[2026-03-22 12:30:08] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_123007.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030884_20260322_123007.XML
[2026-03-22 12:30:08] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_123007.XML
[2026-03-22 12:30:08] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_123007_1.XML
[2026-03-22 12:30:08] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_123007_1.XML for user: 68f1466aed072ad4a
[2026-03-22 12:30:08] [INFO] File size: 6427 bytes
[2026-03-22 12:30:09] [INFO] Created FTPFiles record with ID: 69bfe0d13c66f6f3b
[2026-03-22 12:30:09] [INFO] About to extract fields from XML. File size: 6427 bytes
[2026-03-22 12:30:09] [INFO] Number of mappings: 28
[2026-03-22 12:30:09] [INFO] Starting XML parsing. Content length: 6427
[2026-03-22 12:30:09] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 12:30:09] [INFO] Processing 28 field mappings
[2026-03-22 12:30:09] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 12:30:09] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 12:30:09] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 12:30:09] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 12:30:09] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 12:30:09] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 12:30:09] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 12:30:09] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 12:30:09] [INFO]   -> Found value: 2026000770
[2026-03-22 12:30:09] [INFO]   -> Set field 'incidentInternalId' = "2026000770"
[2026-03-22 12:30:09] [INFO]   -> Set field 'dispatchRunNumber' = "2026000770"
[2026-03-22 12:30:09] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 12:30:09] [INFO]   -> Found value: CHEST PAIN
[2026-03-22 12:30:09] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-03-22 12:30:09] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 12:30:09] [INFO]   -> Found value: 4773
[2026-03-22 12:30:09] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4773
[2026-03-22 12:30:09] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 12:30:09] [INFO]   -> Found value: TN
[2026-03-22 12:30:09] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 12:30:09] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 12:30:09] [INFO]   -> Found value: 38501
[2026-03-22 12:30:09] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-22 12:30:09] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 12:30:09] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:09] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 12:30:09] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:09] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 12:30:09] [INFO]   -> Found value: 36.20911
[2026-03-22 12:30:09] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20911000000000257159626926295459270477294921875
[2026-03-22 12:30:09] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 12:30:09] [INFO]   -> Found value: -85.59669
[2026-03-22 12:30:09] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.596689999999995279722497798502445220947265625
[2026-03-22 12:30:09] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 12:30:09] [INFO]   -> Found value: 2026-03-22 07:28:05
[2026-03-22 12:30:09] [INFO]   -> Set field 'alarm' = "2026-03-22 07:28:05"
[2026-03-22 12:30:09] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 12:30:09] [INFO]   -> Found value: 2026-03-22 07:28:38
[2026-03-22 12:30:09] [INFO]   -> Set field 'dispatched' = "2026-03-22 07:28:38"
[2026-03-22 12:30:09] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 12:30:09] [INFO]   -> Found value: 2026-03-22 07:30:05
[2026-03-22 12:30:09] [INFO]   -> Set field 'enroute' = "2026-03-22 07:30:05"
[2026-03-22 12:30:09] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 12:30:09] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:09] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 12:30:09] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:09] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 12:30:09] [INFO]   -> Found value: POUNDSTONE DR/POUNDSTONE DR
[2026-03-22 12:30:09] [INFO]   -> Set field 'incidentLocationCross' = "POUNDSTONE DR\/POUNDSTONE DR"
[2026-03-22 12:30:09] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 12:30:09] [INFO]   -> Found value: TK31
[2026-03-22 12:30:09] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-22 12:30:09] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 12:30:09] [INFO]   -> Found value: 2026-03-22 07:30:00
[2026-03-22 12:30:09] [INFO]   -> Set field 'timedispatch' = "2026-03-22 07:30:00"
[2026-03-22 12:30:09] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 12:30:09] [INFO]   -> Found value: 2026-03-22 07:30:05
[2026-03-22 12:30:09] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 07:30:05"
[2026-03-22 12:30:09] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 12:30:09] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:09] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 12:30:09] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:09] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 12:30:09] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:09] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 12:30:09] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 12:30:09] [INFO]   -> Found value: 20260030884
[2026-03-22 12:30:09] [INFO]   -> Set field 'policeReportNumber' = "20260030884"
[2026-03-22 12:30:09] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 12:30:09] [INFO]   -> Found value: [LAW] UDTS: LE NOT RESPONDING  [03/22/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12/28...
[2026-03-22 12:30:09] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: LE NOT RESPONDING  [03\/22\/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12\/28\/1986  [03\/22\/26 07:29:12 KHILL] [EMS] BURNING AND TINGLING EVERYWHERE WOKE UP WITH A HEADACHE  [03\/22\/26 07:28:43 KHILL] Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]"
[2026-03-22 12:30:09] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: LE NOT RESPONDING  [03\/22\/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12\/28\/1986  [03\/22\/26 07:29:12 KHILL] [EMS] BURNING AND TINGLING EVERYWHERE WOKE UP WITH A HEADACHE  [03\/22\/26 07:28:43 KHILL] Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]"
[2026-03-22 12:30:09] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 12:30:09] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 12:30:09] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 12:30:09] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 12:30:09] [INFO]   -> Found value: ELLEN
[2026-03-22 12:30:09] [INFO]   -> Set field 'streetName' = "ELLEN"
[2026-03-22 12:30:09] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 12:30:09] [INFO]   -> Found value: CIR
[2026-03-22 12:30:09] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-22 12:30:09] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 12:30:09] [INFO]   -> Found value: 4773 ELLEN CIR
[2026-03-22 12:30:09] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4773 ELLEN CIR"
[2026-03-22 12:30:09] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 12:30:09] [INFO] Concatenating street name and type
[2026-03-22 12:30:09] [INFO]   -> Combined street name: ELLEN CIR
[2026-03-22 12:30:09] [INFO] Built locationCoordinates from lat/lng: 36.20911,-85.59669
[2026-03-22 12:30:09] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000770","dispatchRunNumber":"2026000770","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":4773,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.20911000000000257159626926295459270477294921875,"nERISIncidentLongitude":-85.596689999999995279722497798502445220947265625,"alarm":"2026-03-22 07:28:05","dispatched":"2026-03-22 07:28:38","enroute":"2026-03-22 07:30:05","incidentLocationCross":"POUNDSTONE DR\/POUNDSTONE DR","cADVehicleID":"TK31","timedispatch":"2026-03-22 07:30:00","timeenroutetoscene":"2026-03-22 07:30:05","policeReportNumber":"20260030884","dispatchNotes":"[LAW] UDTS: LE NOT RESPONDING  [03\/22\/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12\/28\/1986  [03\/22\/26 07:29:12 KHILL] [EMS] BURNING AND TINGLING EVERYWHERE WOKE UP WITH A HEADACHE  [03\/22\/26 07:28:43 KHILL] Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]","cADLog":"[LAW] UDTS: LE NOT RESPONDING  [03\/22\/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12\/28\/1986  [03\/22\/26 07:29:12 KHILL] [EMS] BURNING AND TINGLING EVERYWHERE WOKE UP WITH A HEADACHE  [03\/22\/26 07:28:43 KHILL] Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]","incidentLocationCity":"COOKEVILLE","streetName":"ELLEN CIR","incidentAddressTextVersionStreet":"4773 ELLEN CIR","locationCoordinates":"36.20911,-85.59669"}
[2026-03-22 12:30:09] [INFO] Number of extracted fields: 23
[2026-03-22 12:30:09] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 12:30:09] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 12:30:09] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 12:30:09] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 12:30:09] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 12:30:09] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 12:30:09] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 12:30:09] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 12:30:09] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 12:30:09] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 12:30:09] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 12:30:09] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-03-22 12:30:09] [INFO] Found existing Dispatch with cADNumber '2026000770', ID: 69bfe079dba34512f - will update instead of create
[2026-03-22 12:30:10] [INFO] Updated existing Dispatches record with ID: 69bfe079dba34512f
[2026-03-22 12:30:10] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_123007_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030884_20260322_123007_1.XML
[2026-03-22 12:30:10] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_123007_1.XML
[2026-03-22 12:30:13] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_123013.XML
[2026-03-22 12:30:13] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_123013.XML for user: 68f1466aed072ad4a
[2026-03-22 12:30:13] [INFO] File size: 6427 bytes
[2026-03-22 12:30:13] [INFO] Created FTPFiles record with ID: 69bfe0d562abf8190
[2026-03-22 12:30:13] [INFO] About to extract fields from XML. File size: 6427 bytes
[2026-03-22 12:30:13] [INFO] Number of mappings: 28
[2026-03-22 12:30:13] [INFO] Starting XML parsing. Content length: 6427
[2026-03-22 12:30:13] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 12:30:13] [INFO] Processing 28 field mappings
[2026-03-22 12:30:13] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 12:30:13] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 12:30:13] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 12:30:13] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 12:30:13] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 12:30:13] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 12:30:13] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 12:30:13] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 12:30:13] [INFO]   -> Found value: 2026000770
[2026-03-22 12:30:13] [INFO]   -> Set field 'incidentInternalId' = "2026000770"
[2026-03-22 12:30:13] [INFO]   -> Set field 'dispatchRunNumber' = "2026000770"
[2026-03-22 12:30:13] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 12:30:13] [INFO]   -> Found value: CHEST PAIN
[2026-03-22 12:30:13] [INFO]   -> Set field 'incidentTypeValue1' = "CHEST PAIN"
[2026-03-22 12:30:13] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 12:30:13] [INFO]   -> Found value: 4773
[2026-03-22 12:30:13] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4773
[2026-03-22 12:30:13] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 12:30:13] [INFO]   -> Found value: TN
[2026-03-22 12:30:13] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 12:30:13] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 12:30:13] [INFO]   -> Found value: 38501
[2026-03-22 12:30:13] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-22 12:30:13] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 12:30:13] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:13] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 12:30:13] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:13] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 12:30:13] [INFO]   -> Found value: 36.20911
[2026-03-22 12:30:13] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.20911000000000257159626926295459270477294921875
[2026-03-22 12:30:13] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 12:30:13] [INFO]   -> Found value: -85.59669
[2026-03-22 12:30:13] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.596689999999995279722497798502445220947265625
[2026-03-22 12:30:13] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 12:30:13] [INFO]   -> Found value: 2026-03-22 07:28:05
[2026-03-22 12:30:13] [INFO]   -> Set field 'alarm' = "2026-03-22 07:28:05"
[2026-03-22 12:30:13] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 12:30:13] [INFO]   -> Found value: 2026-03-22 07:28:38
[2026-03-22 12:30:13] [INFO]   -> Set field 'dispatched' = "2026-03-22 07:28:38"
[2026-03-22 12:30:13] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 12:30:13] [INFO]   -> Found value: 2026-03-22 07:30:05
[2026-03-22 12:30:13] [INFO]   -> Set field 'enroute' = "2026-03-22 07:30:05"
[2026-03-22 12:30:13] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 12:30:13] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:13] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 12:30:13] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:13] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 12:30:13] [INFO]   -> Found value: POUNDSTONE DR/POUNDSTONE DR
[2026-03-22 12:30:13] [INFO]   -> Set field 'incidentLocationCross' = "POUNDSTONE DR\/POUNDSTONE DR"
[2026-03-22 12:30:13] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 12:30:13] [INFO]   -> Found value: TK31
[2026-03-22 12:30:13] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-22 12:30:13] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 12:30:13] [INFO]   -> Found value: 2026-03-22 07:30:00
[2026-03-22 12:30:13] [INFO]   -> Set field 'timedispatch' = "2026-03-22 07:30:00"
[2026-03-22 12:30:13] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 12:30:13] [INFO]   -> Found value: 2026-03-22 07:30:05
[2026-03-22 12:30:13] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 07:30:05"
[2026-03-22 12:30:13] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 12:30:13] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:13] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 12:30:13] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:13] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 12:30:13] [INFO]   -> No value found (null or empty)
[2026-03-22 12:30:13] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 12:30:13] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 12:30:13] [INFO]   -> Found value: 20260030884
[2026-03-22 12:30:13] [INFO]   -> Set field 'policeReportNumber' = "20260030884"
[2026-03-22 12:30:13] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 12:30:13] [INFO]   -> Found value: [LAW] UDTS: LE NOT RESPONDING  [03/22/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12/28...
[2026-03-22 12:30:13] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: LE NOT RESPONDING  [03\/22\/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12\/28\/1986  [03\/22\/26 07:29:12 KHILL] [EMS] BURNING AND TINGLING EVERYWHERE WOKE UP WITH A HEADACHE  [03\/22\/26 07:28:43 KHILL] Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]"
[2026-03-22 12:30:13] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: LE NOT RESPONDING  [03\/22\/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12\/28\/1986  [03\/22\/26 07:29:12 KHILL] [EMS] BURNING AND TINGLING EVERYWHERE WOKE UP WITH A HEADACHE  [03\/22\/26 07:28:43 KHILL] Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]"
[2026-03-22 12:30:13] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 12:30:13] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 12:30:13] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 12:30:13] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 12:30:13] [INFO]   -> Found value: ELLEN
[2026-03-22 12:30:13] [INFO]   -> Set field 'streetName' = "ELLEN"
[2026-03-22 12:30:13] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 12:30:13] [INFO]   -> Found value: CIR
[2026-03-22 12:30:13] [INFO]   -> Set field 'streetType' = "CIR"
[2026-03-22 12:30:13] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 12:30:13] [INFO]   -> Found value: 4773 ELLEN CIR
[2026-03-22 12:30:13] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4773 ELLEN CIR"
[2026-03-22 12:30:13] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 12:30:13] [INFO] Concatenating street name and type
[2026-03-22 12:30:13] [INFO]   -> Combined street name: ELLEN CIR
[2026-03-22 12:30:13] [INFO] Built locationCoordinates from lat/lng: 36.20911,-85.59669
[2026-03-22 12:30:13] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000770","dispatchRunNumber":"2026000770","incidentTypeValue1":"CHEST PAIN","incidentLocationStreetNumber":4773,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"nERISIncidentLatitude":36.20911000000000257159626926295459270477294921875,"nERISIncidentLongitude":-85.596689999999995279722497798502445220947265625,"alarm":"2026-03-22 07:28:05","dispatched":"2026-03-22 07:28:38","enroute":"2026-03-22 07:30:05","incidentLocationCross":"POUNDSTONE DR\/POUNDSTONE DR","cADVehicleID":"TK31","timedispatch":"2026-03-22 07:30:00","timeenroutetoscene":"2026-03-22 07:30:05","policeReportNumber":"20260030884","dispatchNotes":"[LAW] UDTS: LE NOT RESPONDING  [03\/22\/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12\/28\/1986  [03\/22\/26 07:29:12 KHILL] [EMS] BURNING AND TINGLING EVERYWHERE WOKE UP WITH A HEADACHE  [03\/22\/26 07:28:43 KHILL] Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]","cADLog":"[LAW] UDTS: LE NOT RESPONDING  [03\/22\/26 07:29:22 GTRUEMAN] [EMS] PATIENT KATRINA TEASLEY  DOB 12\/28\/1986  [03\/22\/26 07:29:12 KHILL] [EMS] BURNING AND TINGLING EVERYWHERE WOKE UP WITH A HEADACHE  [03\/22\/26 07:28:43 KHILL] Event spawned from CHEST PAIN.  [03\/22\/2026 07:28:05 KHILL]","incidentLocationCity":"COOKEVILLE","streetName":"ELLEN CIR","incidentAddressTextVersionStreet":"4773 ELLEN CIR","locationCoordinates":"36.20911,-85.59669"}
[2026-03-22 12:30:13] [INFO] Number of extracted fields: 23
[2026-03-22 12:30:13] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 12:30:13] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 12:30:13] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 12:30:13] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 12:30:13] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 12:30:13] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 12:30:13] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 12:30:13] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 12:30:13] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 12:30:13] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 12:30:13] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 12:30:13] [INFO] Found existing IncidentTypeMapping with ID: 6939c33d3eae65119
[2026-03-22 12:30:14] [INFO] Found existing Dispatch with cADNumber '2026000770', ID: 69bfe079dba34512f - will update instead of create
[2026-03-22 12:30:14] [INFO] Updated existing Dispatches record with ID: 69bfe079dba34512f
[2026-03-22 12:30:14] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_123013.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030884_20260322_123013.XML
[2026-03-22 12:30:14] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030884_20260322_123013.XML
[2026-03-22 14:03:20] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140320.XML
[2026-03-22 14:03:20] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140320.XML for user: 68f1466aed072ad4a
[2026-03-22 14:03:20] [INFO] File size: 5314 bytes
[2026-03-22 14:03:21] [INFO] Created FTPFiles record with ID: 69bff6a965ec790df
[2026-03-22 14:03:21] [INFO] About to extract fields from XML. File size: 5314 bytes
[2026-03-22 14:03:21] [INFO] Number of mappings: 28
[2026-03-22 14:03:21] [INFO] Starting XML parsing. Content length: 5314
[2026-03-22 14:03:21] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 14:03:21] [INFO] Processing 28 field mappings
[2026-03-22 14:03:21] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 14:03:21] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 14:03:21] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 14:03:21] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 14:03:21] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-22 14:03:21] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-22 14:03:21] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 14:03:21] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 14:03:21] [INFO]   -> Found value: 2026000771
[2026-03-22 14:03:21] [INFO]   -> Set field 'incidentInternalId' = "2026000771"
[2026-03-22 14:03:21] [INFO]   -> Set field 'dispatchRunNumber' = "2026000771"
[2026-03-22 14:03:21] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 14:03:21] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 14:03:21] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 14:03:21] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 14:03:21] [INFO]   -> Found value: 4873
[2026-03-22 14:03:21] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4873
[2026-03-22 14:03:21] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 14:03:21] [INFO]   -> Found value: TN
[2026-03-22 14:03:21] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 14:03:21] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 14:03:21] [INFO]   -> Found value: 38506
[2026-03-22 14:03:21] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 14:03:21] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 14:03:21] [INFO]   -> No value found (null or empty)
[2026-03-22 14:03:21] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 14:03:21] [INFO]   -> No value found (null or empty)
[2026-03-22 14:03:21] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 14:03:21] [INFO]   -> Found value: 36.09258
[2026-03-22 14:03:21] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.09257999999999810825102031230926513671875
[2026-03-22 14:03:21] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 14:03:21] [INFO]   -> Found value: -85.43390
[2026-03-22 14:03:21] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.43389999999999417923390865325927734375
[2026-03-22 14:03:21] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 14:03:21] [INFO]   -> Found value: 2026-03-22 09:02:58
[2026-03-22 14:03:21] [INFO]   -> Set field 'alarm' = "2026-03-22 09:02:58"
[2026-03-22 14:03:21] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 14:03:21] [INFO]   -> Found value: 2026-03-22 09:03:16
[2026-03-22 14:03:21] [INFO]   -> Set field 'dispatched' = "2026-03-22 09:03:16"
[2026-03-22 14:03:21] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 14:03:21] [INFO]   -> No value found (null or empty)
[2026-03-22 14:03:21] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 14:03:21] [INFO]   -> No value found (null or empty)
[2026-03-22 14:03:21] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 14:03:21] [INFO]   -> No value found (null or empty)
[2026-03-22 14:03:21] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 14:03:21] [INFO]   -> Found value: CLOUSE DR/WHITTAKER RD
[2026-03-22 14:03:21] [INFO]   -> Set field 'incidentLocationCross' = "CLOUSE DR\/WHITTAKER RD"
[2026-03-22 14:03:21] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 14:03:21] [INFO]   -> Found value: PCFR
[2026-03-22 14:03:21] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 14:03:21] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 14:03:21] [INFO]   -> Found value: 2026-03-22 09:03:16
[2026-03-22 14:03:21] [INFO]   -> Set field 'timedispatch' = "2026-03-22 09:03:16"
[2026-03-22 14:03:21] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 14:03:21] [INFO]   -> No value found (null or empty)
[2026-03-22 14:03:21] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 14:03:21] [INFO]   -> No value found (null or empty)
[2026-03-22 14:03:21] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 14:03:21] [INFO]   -> No value found (null or empty)
[2026-03-22 14:03:21] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 14:03:21] [INFO]   -> No value found (null or empty)
[2026-03-22 14:03:21] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 14:03:21] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 14:03:21] [INFO]   -> Found value: 20260030903
[2026-03-22 14:03:21] [INFO]   -> Set field 'policeReportNumber' = "20260030903"
[2026-03-22 14:03:21] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 14:03:21] [INFO]   -> Found value: [EMS] SEMI RESPONSIVE  [03/22/26 09:03:04 KHILL] Event spawned from FAINTING / SYNCOPE.  [03/22/2026...
[2026-03-22 14:03:21] [INFO]   -> Set field 'dispatchNotes' = "[EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]"
[2026-03-22 14:03:21] [INFO]   -> Set field 'cADLog' = "[EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]"
[2026-03-22 14:03:21] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 14:03:21] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 14:03:21] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 14:03:21] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 14:03:21] [INFO]   -> Found value: PHIFER MOUNTAIN
[2026-03-22 14:03:21] [INFO]   -> Set field 'streetName' = "PHIFER MOUNTAIN"
[2026-03-22 14:03:21] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 14:03:21] [INFO]   -> Found value: RD
[2026-03-22 14:03:21] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 14:03:21] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 14:03:21] [INFO]   -> Found value: 4873 PHIFER MOUNTAIN RD
[2026-03-22 14:03:21] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4873 PHIFER MOUNTAIN RD"
[2026-03-22 14:03:21] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 14:03:21] [INFO] Concatenating street name and type
[2026-03-22 14:03:21] [INFO]   -> Combined street name: PHIFER MOUNTAIN RD
[2026-03-22 14:03:21] [INFO] Built locationCoordinates from lat/lng: 36.09258,-85.4339
[2026-03-22 14:03:21] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000771","dispatchRunNumber":"2026000771","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":4873,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.09257999999999810825102031230926513671875,"nERISIncidentLongitude":-85.43389999999999417923390865325927734375,"alarm":"2026-03-22 09:02:58","dispatched":"2026-03-22 09:03:16","incidentLocationCross":"CLOUSE DR\/WHITTAKER RD","cADVehicleID":"PCFR","timedispatch":"2026-03-22 09:03:16","policeReportNumber":"20260030903","dispatchNotes":"[EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]","cADLog":"[EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]","incidentLocationCity":"COOKEVILLE","streetName":"PHIFER MOUNTAIN RD","incidentAddressTextVersionStreet":"4873 PHIFER MOUNTAIN RD","locationCoordinates":"36.09258,-85.4339"}
[2026-03-22 14:03:21] [INFO] Number of extracted fields: 21
[2026-03-22 14:03:21] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-22 14:03:21] [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-22 14:03:21] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-22 14:03:21] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 14:03:21] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 14:03:21] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-22 14:03: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-22 14:03: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-22 14:03:21] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 14:03:21] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 14:03:21] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 14:03:22] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-22 14:03:32] [INFO] Created new Dispatches record with ID: 69bff6aa9b9ddccdc
[2026-03-22 14:03:32] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140320.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030903_20260322_140320.XML
[2026-03-22 14:03:32] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140320.XML
[2026-03-22 14:04:14] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140414.XML
[2026-03-22 14:04:14] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140414.XML for user: 68f1466aed072ad4a
[2026-03-22 14:04:14] [INFO] File size: 6495 bytes
[2026-03-22 14:04:14] [INFO] Created FTPFiles record with ID: 69bff6dee386e29ed
[2026-03-22 14:04:14] [INFO] About to extract fields from XML. File size: 6495 bytes
[2026-03-22 14:04:14] [INFO] Number of mappings: 28
[2026-03-22 14:04:14] [INFO] Starting XML parsing. Content length: 6495
[2026-03-22 14:04:14] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 14:04:14] [INFO] Processing 28 field mappings
[2026-03-22 14:04:14] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 14:04:14] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 14:04:14] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 14:04:14] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 14:04:14] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-22 14:04:14] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-22 14:04:14] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 14:04:14] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 14:04:14] [INFO]   -> Found value: 2026000771
[2026-03-22 14:04:14] [INFO]   -> Set field 'incidentInternalId' = "2026000771"
[2026-03-22 14:04:14] [INFO]   -> Set field 'dispatchRunNumber' = "2026000771"
[2026-03-22 14:04:14] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 14:04:14] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 14:04:14] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 14:04:14] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 14:04:14] [INFO]   -> Found value: 4873
[2026-03-22 14:04:14] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4873
[2026-03-22 14:04:14] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 14:04:14] [INFO]   -> Found value: TN
[2026-03-22 14:04:14] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 14:04:14] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 14:04:14] [INFO]   -> Found value: 38506
[2026-03-22 14:04:14] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 14:04:14] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 14:04:14] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:14] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 14:04:14] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:14] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 14:04:14] [INFO]   -> Found value: 36.09258
[2026-03-22 14:04:14] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.09257999999999810825102031230926513671875
[2026-03-22 14:04:14] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 14:04:14] [INFO]   -> Found value: -85.43390
[2026-03-22 14:04:14] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.43389999999999417923390865325927734375
[2026-03-22 14:04:14] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 14:04:14] [INFO]   -> Found value: 2026-03-22 09:02:58
[2026-03-22 14:04:14] [INFO]   -> Set field 'alarm' = "2026-03-22 09:02:58"
[2026-03-22 14:04:14] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 14:04:14] [INFO]   -> Found value: 2026-03-22 09:03:16
[2026-03-22 14:04:14] [INFO]   -> Set field 'dispatched' = "2026-03-22 09:03:16"
[2026-03-22 14:04:14] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 14:04:14] [INFO]   -> Found value: 2026-03-22 09:04:10
[2026-03-22 14:04:14] [INFO]   -> Set field 'enroute' = "2026-03-22 09:04:10"
[2026-03-22 14:04:14] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 14:04:14] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:14] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 14:04:14] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:14] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 14:04:14] [INFO]   -> Found value: CLOUSE DR/WHITTAKER RD
[2026-03-22 14:04:14] [INFO]   -> Set field 'incidentLocationCross' = "CLOUSE DR\/WHITTAKER RD"
[2026-03-22 14:04:14] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 14:04:14] [INFO]   -> Found value: TK11
[2026-03-22 14:04:14] [INFO]   -> Set field 'cADVehicleID' = "TK11"
[2026-03-22 14:04:14] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 14:04:14] [INFO]   -> Found value: 2026-03-22 09:04:06
[2026-03-22 14:04:14] [INFO]   -> Set field 'timedispatch' = "2026-03-22 09:04:06"
[2026-03-22 14:04:14] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 14:04:14] [INFO]   -> Found value: 2026-03-22 09:04:10
[2026-03-22 14:04:14] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 09:04:10"
[2026-03-22 14:04:14] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 14:04:14] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:14] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 14:04:14] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:14] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 14:04:14] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:14] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 14:04:14] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 14:04:14] [INFO]   -> Found value: 20260030903
[2026-03-22 14:04:14] [INFO]   -> Set field 'policeReportNumber' = "20260030903"
[2026-03-22 14:04:14] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 14:04:14] [INFO]   -> Found value: [EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03/22/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03/2...
[2026-03-22 14:04:14] [INFO]   -> Set field 'dispatchNotes' = "[EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03\/22\/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03\/22\/26 09:04:03 KHILL] [EMS] POSSIBLY FELL OUT OF THE BED OVER NIGHT- WIFE STATES THE NIGHT STAND IS OUT PLACE  [03\/22\/26 09:04:00 KHILL] [EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]"
[2026-03-22 14:04:14] [INFO]   -> Set field 'cADLog' = "[EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03\/22\/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03\/22\/26 09:04:03 KHILL] [EMS] POSSIBLY FELL OUT OF THE BED OVER NIGHT- WIFE STATES THE NIGHT STAND IS OUT PLACE  [03\/22\/26 09:04:00 KHILL] [EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]"
[2026-03-22 14:04:14] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 14:04:14] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 14:04:14] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 14:04:14] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 14:04:14] [INFO]   -> Found value: PHIFER MOUNTAIN
[2026-03-22 14:04:14] [INFO]   -> Set field 'streetName' = "PHIFER MOUNTAIN"
[2026-03-22 14:04:14] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 14:04:14] [INFO]   -> Found value: RD
[2026-03-22 14:04:14] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 14:04:14] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 14:04:14] [INFO]   -> Found value: 4873 PHIFER MOUNTAIN RD
[2026-03-22 14:04:14] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4873 PHIFER MOUNTAIN RD"
[2026-03-22 14:04:14] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 14:04:14] [INFO] Concatenating street name and type
[2026-03-22 14:04:14] [INFO]   -> Combined street name: PHIFER MOUNTAIN RD
[2026-03-22 14:04:14] [INFO] Built locationCoordinates from lat/lng: 36.09258,-85.4339
[2026-03-22 14:04:14] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000771","dispatchRunNumber":"2026000771","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":4873,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.09257999999999810825102031230926513671875,"nERISIncidentLongitude":-85.43389999999999417923390865325927734375,"alarm":"2026-03-22 09:02:58","dispatched":"2026-03-22 09:03:16","enroute":"2026-03-22 09:04:10","incidentLocationCross":"CLOUSE DR\/WHITTAKER RD","cADVehicleID":"TK11","timedispatch":"2026-03-22 09:04:06","timeenroutetoscene":"2026-03-22 09:04:10","policeReportNumber":"20260030903","dispatchNotes":"[EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03\/22\/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03\/22\/26 09:04:03 KHILL] [EMS] POSSIBLY FELL OUT OF THE BED OVER NIGHT- WIFE STATES THE NIGHT STAND IS OUT PLACE  [03\/22\/26 09:04:00 KHILL] [EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]","cADLog":"[EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03\/22\/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03\/22\/26 09:04:03 KHILL] [EMS] POSSIBLY FELL OUT OF THE BED OVER NIGHT- WIFE STATES THE NIGHT STAND IS OUT PLACE  [03\/22\/26 09:04:00 KHILL] [EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]","incidentLocationCity":"COOKEVILLE","streetName":"PHIFER MOUNTAIN RD","incidentAddressTextVersionStreet":"4873 PHIFER MOUNTAIN RD","locationCoordinates":"36.09258,-85.4339"}
[2026-03-22 14:04:14] [INFO] Number of extracted fields: 23
[2026-03-22 14:04:14] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-22 14:04:14] [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-22 14:04:14] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-22 14:04:14] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 14:04:15] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 14:04:15] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-22 14:04:15] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 14:04:15] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 14:04:15] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 14:04:15] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 14:04:15] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 14:04:15] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-22 14:04:16] [INFO] Found existing Dispatch with cADNumber '2026000771', ID: 69bff6aa9b9ddccdc - will update instead of create
[2026-03-22 14:04:16] [INFO] Updated existing Dispatches record with ID: 69bff6aa9b9ddccdc
[2026-03-22 14:04:16] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140414.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030903_20260322_140414.XML
[2026-03-22 14:04:16] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140414.XML
[2026-03-22 14:04:16] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140416.XML
[2026-03-22 14:04:16] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140416.XML for user: 68f1466aed072ad4a
[2026-03-22 14:04:16] [INFO] File size: 6495 bytes
[2026-03-22 14:04:17] [INFO] Created FTPFiles record with ID: 69bff6e15112c30c1
[2026-03-22 14:04:17] [INFO] About to extract fields from XML. File size: 6495 bytes
[2026-03-22 14:04:17] [INFO] Number of mappings: 28
[2026-03-22 14:04:17] [INFO] Starting XML parsing. Content length: 6495
[2026-03-22 14:04:17] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 14:04:17] [INFO] Processing 28 field mappings
[2026-03-22 14:04:17] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 14:04:17] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 14:04:17] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 14:04:17] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 14:04:17] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-22 14:04:17] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-22 14:04:17] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 14:04:17] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 14:04:17] [INFO]   -> Found value: 2026000771
[2026-03-22 14:04:17] [INFO]   -> Set field 'incidentInternalId' = "2026000771"
[2026-03-22 14:04:17] [INFO]   -> Set field 'dispatchRunNumber' = "2026000771"
[2026-03-22 14:04:17] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 14:04:17] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 14:04:17] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 14:04:17] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 14:04:17] [INFO]   -> Found value: 4873
[2026-03-22 14:04:17] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4873
[2026-03-22 14:04:17] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 14:04:17] [INFO]   -> Found value: TN
[2026-03-22 14:04:17] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 14:04:17] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 14:04:17] [INFO]   -> Found value: 38506
[2026-03-22 14:04:17] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 14:04:17] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 14:04:17] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:17] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 14:04:17] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:17] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 14:04:17] [INFO]   -> Found value: 36.09258
[2026-03-22 14:04:17] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.09257999999999810825102031230926513671875
[2026-03-22 14:04:17] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 14:04:17] [INFO]   -> Found value: -85.43390
[2026-03-22 14:04:17] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.43389999999999417923390865325927734375
[2026-03-22 14:04:17] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 14:04:17] [INFO]   -> Found value: 2026-03-22 09:02:58
[2026-03-22 14:04:17] [INFO]   -> Set field 'alarm' = "2026-03-22 09:02:58"
[2026-03-22 14:04:17] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 14:04:17] [INFO]   -> Found value: 2026-03-22 09:03:16
[2026-03-22 14:04:17] [INFO]   -> Set field 'dispatched' = "2026-03-22 09:03:16"
[2026-03-22 14:04:17] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 14:04:17] [INFO]   -> Found value: 2026-03-22 09:04:10
[2026-03-22 14:04:17] [INFO]   -> Set field 'enroute' = "2026-03-22 09:04:10"
[2026-03-22 14:04:17] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 14:04:17] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:17] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 14:04:17] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:17] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 14:04:17] [INFO]   -> Found value: CLOUSE DR/WHITTAKER RD
[2026-03-22 14:04:17] [INFO]   -> Set field 'incidentLocationCross' = "CLOUSE DR\/WHITTAKER RD"
[2026-03-22 14:04:17] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 14:04:17] [INFO]   -> Found value: TK11
[2026-03-22 14:04:17] [INFO]   -> Set field 'cADVehicleID' = "TK11"
[2026-03-22 14:04:17] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 14:04:17] [INFO]   -> Found value: 2026-03-22 09:04:06
[2026-03-22 14:04:17] [INFO]   -> Set field 'timedispatch' = "2026-03-22 09:04:06"
[2026-03-22 14:04:17] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 14:04:17] [INFO]   -> Found value: 2026-03-22 09:04:10
[2026-03-22 14:04:17] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 09:04:10"
[2026-03-22 14:04:17] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 14:04:17] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:17] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 14:04:17] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:17] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 14:04:17] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:17] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 14:04:17] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 14:04:17] [INFO]   -> Found value: 20260030903
[2026-03-22 14:04:17] [INFO]   -> Set field 'policeReportNumber' = "20260030903"
[2026-03-22 14:04:17] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 14:04:17] [INFO]   -> Found value: [EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03/22/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03/2...
[2026-03-22 14:04:17] [INFO]   -> Set field 'dispatchNotes' = "[EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03\/22\/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03\/22\/26 09:04:03 KHILL] [EMS] POSSIBLY FELL OUT OF THE BED OVER NIGHT- WIFE STATES THE NIGHT STAND IS OUT PLACE  [03\/22\/26 09:04:00 KHILL] [EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]"
[2026-03-22 14:04:17] [INFO]   -> Set field 'cADLog' = "[EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03\/22\/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03\/22\/26 09:04:03 KHILL] [EMS] POSSIBLY FELL OUT OF THE BED OVER NIGHT- WIFE STATES THE NIGHT STAND IS OUT PLACE  [03\/22\/26 09:04:00 KHILL] [EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]"
[2026-03-22 14:04:17] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 14:04:17] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 14:04:17] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 14:04:17] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 14:04:17] [INFO]   -> Found value: PHIFER MOUNTAIN
[2026-03-22 14:04:17] [INFO]   -> Set field 'streetName' = "PHIFER MOUNTAIN"
[2026-03-22 14:04:17] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 14:04:17] [INFO]   -> Found value: RD
[2026-03-22 14:04:17] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 14:04:17] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 14:04:17] [INFO]   -> Found value: 4873 PHIFER MOUNTAIN RD
[2026-03-22 14:04:17] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4873 PHIFER MOUNTAIN RD"
[2026-03-22 14:04:17] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 14:04:17] [INFO] Concatenating street name and type
[2026-03-22 14:04:17] [INFO]   -> Combined street name: PHIFER MOUNTAIN RD
[2026-03-22 14:04:17] [INFO] Built locationCoordinates from lat/lng: 36.09258,-85.4339
[2026-03-22 14:04:17] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000771","dispatchRunNumber":"2026000771","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":4873,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.09257999999999810825102031230926513671875,"nERISIncidentLongitude":-85.43389999999999417923390865325927734375,"alarm":"2026-03-22 09:02:58","dispatched":"2026-03-22 09:03:16","enroute":"2026-03-22 09:04:10","incidentLocationCross":"CLOUSE DR\/WHITTAKER RD","cADVehicleID":"TK11","timedispatch":"2026-03-22 09:04:06","timeenroutetoscene":"2026-03-22 09:04:10","policeReportNumber":"20260030903","dispatchNotes":"[EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03\/22\/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03\/22\/26 09:04:03 KHILL] [EMS] POSSIBLY FELL OUT OF THE BED OVER NIGHT- WIFE STATES THE NIGHT STAND IS OUT PLACE  [03\/22\/26 09:04:00 KHILL] [EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]","cADLog":"[EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03\/22\/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03\/22\/26 09:04:03 KHILL] [EMS] POSSIBLY FELL OUT OF THE BED OVER NIGHT- WIFE STATES THE NIGHT STAND IS OUT PLACE  [03\/22\/26 09:04:00 KHILL] [EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]","incidentLocationCity":"COOKEVILLE","streetName":"PHIFER MOUNTAIN RD","incidentAddressTextVersionStreet":"4873 PHIFER MOUNTAIN RD","locationCoordinates":"36.09258,-85.4339"}
[2026-03-22 14:04:17] [INFO] Number of extracted fields: 23
[2026-03-22 14:04:17] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-22 14:04:17] [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-22 14:04:17] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-22 14:04:17] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 14:04:17] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 14:04:17] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-22 14:04: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-22 14:04: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-22 14:04:17] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 14:04:17] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 14:04:17] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 14:04:18] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-22 14:04:18] [INFO] Found existing Dispatch with cADNumber '2026000771', ID: 69bff6aa9b9ddccdc - will update instead of create
[2026-03-22 14:04:18] [INFO] Updated existing Dispatches record with ID: 69bff6aa9b9ddccdc
[2026-03-22 14:04:18] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140416.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030903_20260322_140416.XML
[2026-03-22 14:04:18] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140416.XML
[2026-03-22 14:04:18] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140418.XML
[2026-03-22 14:04:18] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140418.XML for user: 68f1466aed072ad4a
[2026-03-22 14:04:18] [INFO] File size: 6495 bytes
[2026-03-22 14:04:19] [INFO] Created FTPFiles record with ID: 69bff6e32bdcc76a2
[2026-03-22 14:04:19] [INFO] About to extract fields from XML. File size: 6495 bytes
[2026-03-22 14:04:19] [INFO] Number of mappings: 28
[2026-03-22 14:04:19] [INFO] Starting XML parsing. Content length: 6495
[2026-03-22 14:04:19] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 14:04:19] [INFO] Processing 28 field mappings
[2026-03-22 14:04:19] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 14:04:19] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 14:04:19] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 14:04:19] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 14:04:19] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-22 14:04:19] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-22 14:04:19] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 14:04:19] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 14:04:19] [INFO]   -> Found value: 2026000771
[2026-03-22 14:04:19] [INFO]   -> Set field 'incidentInternalId' = "2026000771"
[2026-03-22 14:04:19] [INFO]   -> Set field 'dispatchRunNumber' = "2026000771"
[2026-03-22 14:04:19] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 14:04:19] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 14:04:19] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 14:04:19] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 14:04:19] [INFO]   -> Found value: 4873
[2026-03-22 14:04:19] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4873
[2026-03-22 14:04:19] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 14:04:19] [INFO]   -> Found value: TN
[2026-03-22 14:04:19] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 14:04:19] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 14:04:19] [INFO]   -> Found value: 38506
[2026-03-22 14:04:19] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 14:04:19] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 14:04:19] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:19] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 14:04:19] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:19] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 14:04:19] [INFO]   -> Found value: 36.09258
[2026-03-22 14:04:19] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.09257999999999810825102031230926513671875
[2026-03-22 14:04:19] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 14:04:19] [INFO]   -> Found value: -85.43390
[2026-03-22 14:04:19] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.43389999999999417923390865325927734375
[2026-03-22 14:04:19] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 14:04:19] [INFO]   -> Found value: 2026-03-22 09:02:58
[2026-03-22 14:04:19] [INFO]   -> Set field 'alarm' = "2026-03-22 09:02:58"
[2026-03-22 14:04:19] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 14:04:19] [INFO]   -> Found value: 2026-03-22 09:03:16
[2026-03-22 14:04:19] [INFO]   -> Set field 'dispatched' = "2026-03-22 09:03:16"
[2026-03-22 14:04:19] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 14:04:19] [INFO]   -> Found value: 2026-03-22 09:04:10
[2026-03-22 14:04:19] [INFO]   -> Set field 'enroute' = "2026-03-22 09:04:10"
[2026-03-22 14:04:19] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 14:04:19] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:19] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 14:04:19] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:19] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 14:04:19] [INFO]   -> Found value: CLOUSE DR/WHITTAKER RD
[2026-03-22 14:04:19] [INFO]   -> Set field 'incidentLocationCross' = "CLOUSE DR\/WHITTAKER RD"
[2026-03-22 14:04:19] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 14:04:19] [INFO]   -> Found value: TK11
[2026-03-22 14:04:19] [INFO]   -> Set field 'cADVehicleID' = "TK11"
[2026-03-22 14:04:19] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 14:04:19] [INFO]   -> Found value: 2026-03-22 09:04:06
[2026-03-22 14:04:19] [INFO]   -> Set field 'timedispatch' = "2026-03-22 09:04:06"
[2026-03-22 14:04:19] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 14:04:19] [INFO]   -> Found value: 2026-03-22 09:04:10
[2026-03-22 14:04:19] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 09:04:10"
[2026-03-22 14:04:19] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 14:04:19] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:19] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 14:04:19] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:19] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 14:04:19] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:19] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 14:04:19] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 14:04:19] [INFO]   -> Found value: 20260030903
[2026-03-22 14:04:19] [INFO]   -> Set field 'policeReportNumber' = "20260030903"
[2026-03-22 14:04:19] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 14:04:19] [INFO]   -> Found value: [EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03/22/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03/2...
[2026-03-22 14:04:19] [INFO]   -> Set field 'dispatchNotes' = "[EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03\/22\/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03\/22\/26 09:04:03 KHILL] [EMS] POSSIBLY FELL OUT OF THE BED OVER NIGHT- WIFE STATES THE NIGHT STAND IS OUT PLACE  [03\/22\/26 09:04:00 KHILL] [EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]"
[2026-03-22 14:04:19] [INFO]   -> Set field 'cADLog' = "[EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03\/22\/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03\/22\/26 09:04:03 KHILL] [EMS] POSSIBLY FELL OUT OF THE BED OVER NIGHT- WIFE STATES THE NIGHT STAND IS OUT PLACE  [03\/22\/26 09:04:00 KHILL] [EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]"
[2026-03-22 14:04:19] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 14:04:19] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 14:04:19] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 14:04:19] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 14:04:19] [INFO]   -> Found value: PHIFER MOUNTAIN
[2026-03-22 14:04:19] [INFO]   -> Set field 'streetName' = "PHIFER MOUNTAIN"
[2026-03-22 14:04:19] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 14:04:19] [INFO]   -> Found value: RD
[2026-03-22 14:04:19] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 14:04:19] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 14:04:19] [INFO]   -> Found value: 4873 PHIFER MOUNTAIN RD
[2026-03-22 14:04:19] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4873 PHIFER MOUNTAIN RD"
[2026-03-22 14:04:19] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 14:04:19] [INFO] Concatenating street name and type
[2026-03-22 14:04:19] [INFO]   -> Combined street name: PHIFER MOUNTAIN RD
[2026-03-22 14:04:19] [INFO] Built locationCoordinates from lat/lng: 36.09258,-85.4339
[2026-03-22 14:04:19] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000771","dispatchRunNumber":"2026000771","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":4873,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.09257999999999810825102031230926513671875,"nERISIncidentLongitude":-85.43389999999999417923390865325927734375,"alarm":"2026-03-22 09:02:58","dispatched":"2026-03-22 09:03:16","enroute":"2026-03-22 09:04:10","incidentLocationCross":"CLOUSE DR\/WHITTAKER RD","cADVehicleID":"TK11","timedispatch":"2026-03-22 09:04:06","timeenroutetoscene":"2026-03-22 09:04:10","policeReportNumber":"20260030903","dispatchNotes":"[EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03\/22\/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03\/22\/26 09:04:03 KHILL] [EMS] POSSIBLY FELL OUT OF THE BED OVER NIGHT- WIFE STATES THE NIGHT STAND IS OUT PLACE  [03\/22\/26 09:04:00 KHILL] [EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]","cADLog":"[EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03\/22\/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03\/22\/26 09:04:03 KHILL] [EMS] POSSIBLY FELL OUT OF THE BED OVER NIGHT- WIFE STATES THE NIGHT STAND IS OUT PLACE  [03\/22\/26 09:04:00 KHILL] [EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]","incidentLocationCity":"COOKEVILLE","streetName":"PHIFER MOUNTAIN RD","incidentAddressTextVersionStreet":"4873 PHIFER MOUNTAIN RD","locationCoordinates":"36.09258,-85.4339"}
[2026-03-22 14:04:19] [INFO] Number of extracted fields: 23
[2026-03-22 14:04:19] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-22 14:04:19] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-22 14:04:19] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-22 14:04:19] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 14:04:19] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 14:04:19] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-22 14:04:19] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 14:04:19] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 14:04:19] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 14:04:19] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 14:04:19] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 14:04:19] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-22 14:04:20] [INFO] Found existing Dispatch with cADNumber '2026000771', ID: 69bff6aa9b9ddccdc - will update instead of create
[2026-03-22 14:04:20] [INFO] Updated existing Dispatches record with ID: 69bff6aa9b9ddccdc
[2026-03-22 14:04:20] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140418.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030903_20260322_140418.XML
[2026-03-22 14:04:20] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140418.XML
[2026-03-22 14:04:20] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140419.XML
[2026-03-22 14:04:20] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140419.XML for user: 68f1466aed072ad4a
[2026-03-22 14:04:20] [INFO] File size: 6495 bytes
[2026-03-22 14:04:21] [INFO] Created FTPFiles record with ID: 69bff6e4eeec2c909
[2026-03-22 14:04:21] [INFO] About to extract fields from XML. File size: 6495 bytes
[2026-03-22 14:04:21] [INFO] Number of mappings: 28
[2026-03-22 14:04:21] [INFO] Starting XML parsing. Content length: 6495
[2026-03-22 14:04:21] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 14:04:21] [INFO] Processing 28 field mappings
[2026-03-22 14:04:21] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 14:04:21] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 14:04:21] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 14:04:21] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 14:04:21] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-22 14:04:21] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-22 14:04:21] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 14:04:21] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 14:04:21] [INFO]   -> Found value: 2026000771
[2026-03-22 14:04:21] [INFO]   -> Set field 'incidentInternalId' = "2026000771"
[2026-03-22 14:04:21] [INFO]   -> Set field 'dispatchRunNumber' = "2026000771"
[2026-03-22 14:04:21] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 14:04:21] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 14:04:21] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 14:04:21] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 14:04:21] [INFO]   -> Found value: 4873
[2026-03-22 14:04:21] [INFO]   -> Set field 'incidentLocationStreetNumber' = 4873
[2026-03-22 14:04:21] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 14:04:21] [INFO]   -> Found value: TN
[2026-03-22 14:04:21] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 14:04:21] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 14:04:21] [INFO]   -> Found value: 38506
[2026-03-22 14:04:21] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 14:04:21] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 14:04:21] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:21] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 14:04:21] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:21] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 14:04:21] [INFO]   -> Found value: 36.09258
[2026-03-22 14:04:21] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.09257999999999810825102031230926513671875
[2026-03-22 14:04:21] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 14:04:21] [INFO]   -> Found value: -85.43390
[2026-03-22 14:04:21] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.43389999999999417923390865325927734375
[2026-03-22 14:04:21] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 14:04:21] [INFO]   -> Found value: 2026-03-22 09:02:58
[2026-03-22 14:04:21] [INFO]   -> Set field 'alarm' = "2026-03-22 09:02:58"
[2026-03-22 14:04:21] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 14:04:21] [INFO]   -> Found value: 2026-03-22 09:03:16
[2026-03-22 14:04:21] [INFO]   -> Set field 'dispatched' = "2026-03-22 09:03:16"
[2026-03-22 14:04:21] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 14:04:21] [INFO]   -> Found value: 2026-03-22 09:04:10
[2026-03-22 14:04:21] [INFO]   -> Set field 'enroute' = "2026-03-22 09:04:10"
[2026-03-22 14:04:21] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 14:04:21] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:21] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 14:04:21] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:21] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 14:04:21] [INFO]   -> Found value: CLOUSE DR/WHITTAKER RD
[2026-03-22 14:04:21] [INFO]   -> Set field 'incidentLocationCross' = "CLOUSE DR\/WHITTAKER RD"
[2026-03-22 14:04:21] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 14:04:21] [INFO]   -> Found value: TK11
[2026-03-22 14:04:21] [INFO]   -> Set field 'cADVehicleID' = "TK11"
[2026-03-22 14:04:21] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 14:04:21] [INFO]   -> Found value: 2026-03-22 09:04:06
[2026-03-22 14:04:21] [INFO]   -> Set field 'timedispatch' = "2026-03-22 09:04:06"
[2026-03-22 14:04:21] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 14:04:21] [INFO]   -> Found value: 2026-03-22 09:04:10
[2026-03-22 14:04:21] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 09:04:10"
[2026-03-22 14:04:21] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 14:04:21] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:21] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 14:04:21] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:21] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 14:04:21] [INFO]   -> No value found (null or empty)
[2026-03-22 14:04:21] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 14:04:21] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 14:04:21] [INFO]   -> Found value: 20260030903
[2026-03-22 14:04:21] [INFO]   -> Set field 'policeReportNumber' = "20260030903"
[2026-03-22 14:04:21] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 14:04:21] [INFO]   -> Found value: [EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03/22/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03/2...
[2026-03-22 14:04:21] [INFO]   -> Set field 'dispatchNotes' = "[EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03\/22\/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03\/22\/26 09:04:03 KHILL] [EMS] POSSIBLY FELL OUT OF THE BED OVER NIGHT- WIFE STATES THE NIGHT STAND IS OUT PLACE  [03\/22\/26 09:04:00 KHILL] [EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]"
[2026-03-22 14:04:21] [INFO]   -> Set field 'cADLog' = "[EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03\/22\/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03\/22\/26 09:04:03 KHILL] [EMS] POSSIBLY FELL OUT OF THE BED OVER NIGHT- WIFE STATES THE NIGHT STAND IS OUT PLACE  [03\/22\/26 09:04:00 KHILL] [EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]"
[2026-03-22 14:04:21] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 14:04:21] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 14:04:21] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 14:04:21] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 14:04:21] [INFO]   -> Found value: PHIFER MOUNTAIN
[2026-03-22 14:04:21] [INFO]   -> Set field 'streetName' = "PHIFER MOUNTAIN"
[2026-03-22 14:04:21] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 14:04:21] [INFO]   -> Found value: RD
[2026-03-22 14:04:21] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 14:04:21] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 14:04:21] [INFO]   -> Found value: 4873 PHIFER MOUNTAIN RD
[2026-03-22 14:04:21] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "4873 PHIFER MOUNTAIN RD"
[2026-03-22 14:04:21] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 14:04:21] [INFO] Concatenating street name and type
[2026-03-22 14:04:21] [INFO]   -> Combined street name: PHIFER MOUNTAIN RD
[2026-03-22 14:04:21] [INFO] Built locationCoordinates from lat/lng: 36.09258,-85.4339
[2026-03-22 14:04:21] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000771","dispatchRunNumber":"2026000771","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":4873,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.09257999999999810825102031230926513671875,"nERISIncidentLongitude":-85.43389999999999417923390865325927734375,"alarm":"2026-03-22 09:02:58","dispatched":"2026-03-22 09:03:16","enroute":"2026-03-22 09:04:10","incidentLocationCross":"CLOUSE DR\/WHITTAKER RD","cADVehicleID":"TK11","timedispatch":"2026-03-22 09:04:06","timeenroutetoscene":"2026-03-22 09:04:10","policeReportNumber":"20260030903","dispatchNotes":"[EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03\/22\/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03\/22\/26 09:04:03 KHILL] [EMS] POSSIBLY FELL OUT OF THE BED OVER NIGHT- WIFE STATES THE NIGHT STAND IS OUT PLACE  [03\/22\/26 09:04:00 KHILL] [EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]","cADLog":"[EMS] DOES TAKE A BABY ASPIRIN EVERY DAY  [03\/22\/26 09:04:11 KHILL] [EMS] FRONT DOOR ENTRANCE  [03\/22\/26 09:04:03 KHILL] [EMS] POSSIBLY FELL OUT OF THE BED OVER NIGHT- WIFE STATES THE NIGHT STAND IS OUT PLACE  [03\/22\/26 09:04:00 KHILL] [EMS] SEMI RESPONSIVE  [03\/22\/26 09:03:04 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 09:02:58 KHILL] WIFE SAYS HUSBAND IS IN AND OUT  MOANING  NOT RESPONSIVE DIABETIC HX  [03\/22\/26 09:02:51 KHILL]]","incidentLocationCity":"COOKEVILLE","streetName":"PHIFER MOUNTAIN RD","incidentAddressTextVersionStreet":"4873 PHIFER MOUNTAIN RD","locationCoordinates":"36.09258,-85.4339"}
[2026-03-22 14:04:21] [INFO] Number of extracted fields: 23
[2026-03-22 14:04:21] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-22 14:04:21] [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-22 14:04:21] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-22 14:04:21] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 14:04:21] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 14:04:21] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-22 14:04: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-22 14:04: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-22 14:04:21] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 14:04:21] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 14:04:21] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 14:04:21] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-22 14:04:21] [INFO] Found existing Dispatch with cADNumber '2026000771', ID: 69bff6aa9b9ddccdc - will update instead of create
[2026-03-22 14:04:22] [INFO] Updated existing Dispatches record with ID: 69bff6aa9b9ddccdc
[2026-03-22 14:04:22] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140419.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030903_20260322_140419.XML
[2026-03-22 14:04:22] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030903_20260322_140419.XML
[2026-03-22 15:53:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_155347.XML
[2026-03-22 15:53:47] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_155347.XML for user: 68f1466aed072ad4a
[2026-03-22 15:53:47] [INFO] File size: 5269 bytes
[2026-03-22 15:53:48] [INFO] Created FTPFiles record with ID: 69c0108c4917c67ba
[2026-03-22 15:53:48] [INFO] About to extract fields from XML. File size: 5269 bytes
[2026-03-22 15:53:48] [INFO] Number of mappings: 28
[2026-03-22 15:53:48] [INFO] Starting XML parsing. Content length: 5269
[2026-03-22 15:53:48] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 15:53:48] [INFO] Processing 28 field mappings
[2026-03-22 15:53:48] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 15:53:48] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 15:53:48] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 15:53:48] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 15:53:48] [INFO]   -> Found value: MFD
EMS
MPD
[2026-03-22 15:53:48] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nMPD"
[2026-03-22 15:53:48] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 15:53:48] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 15:53:48] [INFO]   -> Found value: 2026000103
[2026-03-22 15:53:48] [INFO]   -> Set field 'incidentInternalId' = "2026000103"
[2026-03-22 15:53:48] [INFO]   -> Set field 'dispatchRunNumber' = "2026000103"
[2026-03-22 15:53:48] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 15:53:48] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 15:53:48] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 15:53:48] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 15:53:48] [INFO]   -> Found value: 315
[2026-03-22 15:53:48] [INFO]   -> Set field 'incidentLocationStreetNumber' = 315
[2026-03-22 15:53:48] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 15:53:48] [INFO]   -> Found value: TN
[2026-03-22 15:53:48] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 15:53:48] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 15:53:48] [INFO]   -> Found value: 38574
[2026-03-22 15:53:48] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 15:53:48] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 15:53:48] [INFO]   -> Found value: HOPE IN CHRIST CHURCH
[2026-03-22 15:53:48] [INFO]   -> Set field 'businessName' = "HOPE IN CHRIST CHURCH"
[2026-03-22 15:53:48] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 15:53:48] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:48] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 15:53:48] [INFO]   -> Found value: 36.15120
[2026-03-22 15:53:48] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1512000000000028876456781290471553802490234375
[2026-03-22 15:53:48] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 15:53:48] [INFO]   -> Found value: -85.25851
[2026-03-22 15:53:48] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2585100000000011277734301984310150146484375
[2026-03-22 15:53:48] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 15:53:48] [INFO]   -> Found value: 2026-03-22 10:53:24
[2026-03-22 15:53:48] [INFO]   -> Set field 'alarm' = "2026-03-22 10:53:24"
[2026-03-22 15:53:48] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 15:53:48] [INFO]   -> Found value: 2026-03-22 10:53:41
[2026-03-22 15:53:48] [INFO]   -> Set field 'dispatched' = "2026-03-22 10:53:41"
[2026-03-22 15:53:48] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 15:53:48] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:48] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 15:53:48] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:48] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 15:53:48] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:48] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 15:53:48] [INFO]   -> Found value: N ELM ST/STANDING STONE DR
[2026-03-22 15:53:48] [INFO]   -> Set field 'incidentLocationCross' = "N ELM ST\/STANDING STONE DR"
[2026-03-22 15:53:48] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 15:53:48] [INFO]   -> Found value: MFR
[2026-03-22 15:53:48] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-03-22 15:53:48] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 15:53:48] [INFO]   -> Found value: 2026-03-22 10:53:41
[2026-03-22 15:53:48] [INFO]   -> Set field 'timedispatch' = "2026-03-22 10:53:41"
[2026-03-22 15:53:48] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 15:53:48] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:48] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 15:53:48] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:48] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 15:53:48] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:48] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 15:53:48] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:48] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 15:53:48] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 15:53:48] [INFO]   -> Found value: 20260030931
[2026-03-22 15:53:48] [INFO]   -> Set field 'policeReportNumber' = "20260030931"
[2026-03-22 15:53:48] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 15:53:48] [INFO]   -> Found value: [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03/22/26 10:53:41 KHILL] Event spawned from UNCONSC...
[2026-03-22 15:53:48] [INFO]   -> Set field 'dispatchNotes' = "[EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 15:53:48] [INFO]   -> Set field 'cADLog' = "[EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 15:53:48] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 15:53:48] [INFO]   -> Found value: MONTEREY
[2026-03-22 15:53:48] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 15:53:48] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 15:53:48] [INFO]   -> Found value: PETER
[2026-03-22 15:53:48] [INFO]   -> Set field 'streetName' = "PETER"
[2026-03-22 15:53:48] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 15:53:48] [INFO]   -> Found value: AVE
[2026-03-22 15:53:48] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 15:53:48] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 15:53:48] [INFO]   -> Found value: 315 PETER AVE
[2026-03-22 15:53:48] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "315 PETER AVE"
[2026-03-22 15:53:48] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-22 15:53:48] [INFO] Concatenating street name and type
[2026-03-22 15:53:48] [INFO]   -> Combined street name: PETER AVE
[2026-03-22 15:53:48] [INFO] Built locationCoordinates from lat/lng: 36.1512,-85.25851
[2026-03-22 15:53:48] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nMPD","incidentInternalId":"2026000103","dispatchRunNumber":"2026000103","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":315,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"HOPE IN CHRIST CHURCH","nERISIncidentLatitude":36.1512000000000028876456781290471553802490234375,"nERISIncidentLongitude":-85.2585100000000011277734301984310150146484375,"alarm":"2026-03-22 10:53:24","dispatched":"2026-03-22 10:53:41","incidentLocationCross":"N ELM ST\/STANDING STONE DR","cADVehicleID":"MFR","timedispatch":"2026-03-22 10:53:41","policeReportNumber":"20260030931","dispatchNotes":"[EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","cADLog":"[EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","incidentLocationCity":"MONTEREY","streetName":"PETER AVE","incidentAddressTextVersionStreet":"315 PETER AVE","locationCoordinates":"36.1512,-85.25851"}
[2026-03-22 15:53:48] [INFO] Number of extracted fields: 22
[2026-03-22 15:53:48] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
MPD'
[2026-03-22 15:53:48] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
MPD', Parsed IDs = ["MFD","EMS","MPD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-22 15:53:48] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","MPD"]
[2026-03-22 15:53:48] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 15:53:48] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 15:53:48] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MPD"]
[2026-03-22 15:53:48] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 15:53:48] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 15:53:48] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 15:53:48] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 15:53:49] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 15:53:49] [INFO] Found existing IncidentTypeMapping with ID: 69541690cb8cb44d9
[2026-03-22 15:53:52] [INFO] Created new Dispatches record with ID: 69c0108daaef32201
[2026-03-22 15:53:52] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_155347.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260030931_20260322_155347.XML
[2026-03-22 15:53:52] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_155347.XML
[2026-03-22 15:53:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_155347_1.XML
[2026-03-22 15:53:52] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_155347_1.XML for user: 68f1466aed072ad4a
[2026-03-22 15:53:52] [INFO] File size: 5269 bytes
[2026-03-22 15:53:52] [INFO] Created FTPFiles record with ID: 69c01090eaa751af5
[2026-03-22 15:53:52] [INFO] About to extract fields from XML. File size: 5269 bytes
[2026-03-22 15:53:52] [INFO] Number of mappings: 28
[2026-03-22 15:53:52] [INFO] Starting XML parsing. Content length: 5269
[2026-03-22 15:53:52] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 15:53:52] [INFO] Processing 28 field mappings
[2026-03-22 15:53:52] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 15:53:52] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 15:53:52] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 15:53:52] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 15:53:52] [INFO]   -> Found value: MFD
EMS
MPD
[2026-03-22 15:53:52] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nMPD"
[2026-03-22 15:53:52] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 15:53:52] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 15:53:52] [INFO]   -> Found value: 2026000103
[2026-03-22 15:53:52] [INFO]   -> Set field 'incidentInternalId' = "2026000103"
[2026-03-22 15:53:52] [INFO]   -> Set field 'dispatchRunNumber' = "2026000103"
[2026-03-22 15:53:52] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 15:53:52] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 15:53:52] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 15:53:52] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 15:53:52] [INFO]   -> Found value: 315
[2026-03-22 15:53:52] [INFO]   -> Set field 'incidentLocationStreetNumber' = 315
[2026-03-22 15:53:52] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 15:53:52] [INFO]   -> Found value: TN
[2026-03-22 15:53:52] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 15:53:52] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 15:53:52] [INFO]   -> Found value: 38574
[2026-03-22 15:53:52] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 15:53:52] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 15:53:52] [INFO]   -> Found value: HOPE IN CHRIST CHURCH
[2026-03-22 15:53:52] [INFO]   -> Set field 'businessName' = "HOPE IN CHRIST CHURCH"
[2026-03-22 15:53:52] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 15:53:52] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:52] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 15:53:52] [INFO]   -> Found value: 36.15120
[2026-03-22 15:53:52] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1512000000000028876456781290471553802490234375
[2026-03-22 15:53:52] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 15:53:52] [INFO]   -> Found value: -85.25851
[2026-03-22 15:53:52] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2585100000000011277734301984310150146484375
[2026-03-22 15:53:52] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 15:53:52] [INFO]   -> Found value: 2026-03-22 10:53:24
[2026-03-22 15:53:52] [INFO]   -> Set field 'alarm' = "2026-03-22 10:53:24"
[2026-03-22 15:53:52] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 15:53:52] [INFO]   -> Found value: 2026-03-22 10:53:41
[2026-03-22 15:53:52] [INFO]   -> Set field 'dispatched' = "2026-03-22 10:53:41"
[2026-03-22 15:53:52] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 15:53:52] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:52] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 15:53:52] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:52] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 15:53:52] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:52] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 15:53:52] [INFO]   -> Found value: N ELM ST/STANDING STONE DR
[2026-03-22 15:53:52] [INFO]   -> Set field 'incidentLocationCross' = "N ELM ST\/STANDING STONE DR"
[2026-03-22 15:53:52] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 15:53:52] [INFO]   -> Found value: MFR
[2026-03-22 15:53:52] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-03-22 15:53:52] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 15:53:52] [INFO]   -> Found value: 2026-03-22 10:53:41
[2026-03-22 15:53:52] [INFO]   -> Set field 'timedispatch' = "2026-03-22 10:53:41"
[2026-03-22 15:53:52] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 15:53:52] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:52] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 15:53:52] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:52] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 15:53:52] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:52] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 15:53:52] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:52] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 15:53:52] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 15:53:52] [INFO]   -> Found value: 20260030931
[2026-03-22 15:53:52] [INFO]   -> Set field 'policeReportNumber' = "20260030931"
[2026-03-22 15:53:52] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 15:53:52] [INFO]   -> Found value: [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03/22/26 10:53:41 KHILL] Event spawned from UNCONSC...
[2026-03-22 15:53:52] [INFO]   -> Set field 'dispatchNotes' = "[EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 15:53:52] [INFO]   -> Set field 'cADLog' = "[EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 15:53:52] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 15:53:52] [INFO]   -> Found value: MONTEREY
[2026-03-22 15:53:52] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 15:53:52] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 15:53:52] [INFO]   -> Found value: PETER
[2026-03-22 15:53:52] [INFO]   -> Set field 'streetName' = "PETER"
[2026-03-22 15:53:52] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 15:53:52] [INFO]   -> Found value: AVE
[2026-03-22 15:53:52] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 15:53:52] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 15:53:52] [INFO]   -> Found value: 315 PETER AVE
[2026-03-22 15:53:52] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "315 PETER AVE"
[2026-03-22 15:53:52] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-22 15:53:52] [INFO] Concatenating street name and type
[2026-03-22 15:53:52] [INFO]   -> Combined street name: PETER AVE
[2026-03-22 15:53:52] [INFO] Built locationCoordinates from lat/lng: 36.1512,-85.25851
[2026-03-22 15:53:52] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nMPD","incidentInternalId":"2026000103","dispatchRunNumber":"2026000103","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":315,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"HOPE IN CHRIST CHURCH","nERISIncidentLatitude":36.1512000000000028876456781290471553802490234375,"nERISIncidentLongitude":-85.2585100000000011277734301984310150146484375,"alarm":"2026-03-22 10:53:24","dispatched":"2026-03-22 10:53:41","incidentLocationCross":"N ELM ST\/STANDING STONE DR","cADVehicleID":"MFR","timedispatch":"2026-03-22 10:53:41","policeReportNumber":"20260030931","dispatchNotes":"[EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","cADLog":"[EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","incidentLocationCity":"MONTEREY","streetName":"PETER AVE","incidentAddressTextVersionStreet":"315 PETER AVE","locationCoordinates":"36.1512,-85.25851"}
[2026-03-22 15:53:52] [INFO] Number of extracted fields: 22
[2026-03-22 15:53:52] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
MPD'
[2026-03-22 15:53:52] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
MPD', Parsed IDs = ["MFD","EMS","MPD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-22 15:53:52] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","MPD"]
[2026-03-22 15:53:52] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 15:53:53] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 15:53:53] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MPD"]
[2026-03-22 15:53:53] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 15:53:53] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 15:53:53] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 15:53:53] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 15:53:53] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 15:53:53] [INFO] Found existing IncidentTypeMapping with ID: 69541690cb8cb44d9
[2026-03-22 15:53:54] [INFO] Found existing Dispatch with cADNumber '2026000103', ID: 69c0108daaef32201 - will update instead of create
[2026-03-22 15:53:54] [INFO] Updated existing Dispatches record with ID: 69c0108daaef32201
[2026-03-22 15:53:54] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_155347_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260030931_20260322_155347_1.XML
[2026-03-22 15:53:54] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_155347_1.XML
[2026-03-22 15:53:54] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_155348.XML
[2026-03-22 15:53:54] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_155348.XML for user: 68f1466aed072ad4a
[2026-03-22 15:53:54] [INFO] File size: 5269 bytes
[2026-03-22 15:53:54] [INFO] Created FTPFiles record with ID: 69c01092d4c357fec
[2026-03-22 15:53:54] [INFO] About to extract fields from XML. File size: 5269 bytes
[2026-03-22 15:53:54] [INFO] Number of mappings: 28
[2026-03-22 15:53:54] [INFO] Starting XML parsing. Content length: 5269
[2026-03-22 15:53:54] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 15:53:54] [INFO] Processing 28 field mappings
[2026-03-22 15:53:54] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 15:53:54] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 15:53:54] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 15:53:54] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 15:53:54] [INFO]   -> Found value: MFD
EMS
MPD
[2026-03-22 15:53:54] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nMPD"
[2026-03-22 15:53:54] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 15:53:54] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 15:53:54] [INFO]   -> Found value: 2026000103
[2026-03-22 15:53:54] [INFO]   -> Set field 'incidentInternalId' = "2026000103"
[2026-03-22 15:53:54] [INFO]   -> Set field 'dispatchRunNumber' = "2026000103"
[2026-03-22 15:53:54] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 15:53:54] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 15:53:54] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 15:53:54] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 15:53:54] [INFO]   -> Found value: 315
[2026-03-22 15:53:54] [INFO]   -> Set field 'incidentLocationStreetNumber' = 315
[2026-03-22 15:53:54] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 15:53:54] [INFO]   -> Found value: TN
[2026-03-22 15:53:54] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 15:53:54] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 15:53:54] [INFO]   -> Found value: 38574
[2026-03-22 15:53:54] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 15:53:54] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 15:53:54] [INFO]   -> Found value: HOPE IN CHRIST CHURCH
[2026-03-22 15:53:54] [INFO]   -> Set field 'businessName' = "HOPE IN CHRIST CHURCH"
[2026-03-22 15:53:54] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 15:53:54] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:54] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 15:53:54] [INFO]   -> Found value: 36.15120
[2026-03-22 15:53:54] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1512000000000028876456781290471553802490234375
[2026-03-22 15:53:54] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 15:53:54] [INFO]   -> Found value: -85.25851
[2026-03-22 15:53:54] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2585100000000011277734301984310150146484375
[2026-03-22 15:53:54] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 15:53:54] [INFO]   -> Found value: 2026-03-22 10:53:24
[2026-03-22 15:53:54] [INFO]   -> Set field 'alarm' = "2026-03-22 10:53:24"
[2026-03-22 15:53:54] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 15:53:54] [INFO]   -> Found value: 2026-03-22 10:53:41
[2026-03-22 15:53:54] [INFO]   -> Set field 'dispatched' = "2026-03-22 10:53:41"
[2026-03-22 15:53:54] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 15:53:54] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:54] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 15:53:54] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:54] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 15:53:54] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:54] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 15:53:54] [INFO]   -> Found value: N ELM ST/STANDING STONE DR
[2026-03-22 15:53:54] [INFO]   -> Set field 'incidentLocationCross' = "N ELM ST\/STANDING STONE DR"
[2026-03-22 15:53:54] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 15:53:54] [INFO]   -> Found value: MFR
[2026-03-22 15:53:54] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-03-22 15:53:54] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 15:53:54] [INFO]   -> Found value: 2026-03-22 10:53:41
[2026-03-22 15:53:54] [INFO]   -> Set field 'timedispatch' = "2026-03-22 10:53:41"
[2026-03-22 15:53:54] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 15:53:54] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:54] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 15:53:54] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:54] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 15:53:54] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:54] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 15:53:54] [INFO]   -> No value found (null or empty)
[2026-03-22 15:53:54] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 15:53:54] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 15:53:54] [INFO]   -> Found value: 20260030931
[2026-03-22 15:53:54] [INFO]   -> Set field 'policeReportNumber' = "20260030931"
[2026-03-22 15:53:54] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 15:53:54] [INFO]   -> Found value: [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03/22/26 10:53:41 KHILL] Event spawned from UNCONSC...
[2026-03-22 15:53:54] [INFO]   -> Set field 'dispatchNotes' = "[EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 15:53:54] [INFO]   -> Set field 'cADLog' = "[EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 15:53:54] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 15:53:54] [INFO]   -> Found value: MONTEREY
[2026-03-22 15:53:54] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 15:53:54] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 15:53:54] [INFO]   -> Found value: PETER
[2026-03-22 15:53:54] [INFO]   -> Set field 'streetName' = "PETER"
[2026-03-22 15:53:54] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 15:53:54] [INFO]   -> Found value: AVE
[2026-03-22 15:53:54] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 15:53:54] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 15:53:54] [INFO]   -> Found value: 315 PETER AVE
[2026-03-22 15:53:54] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "315 PETER AVE"
[2026-03-22 15:53:54] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-22 15:53:54] [INFO] Concatenating street name and type
[2026-03-22 15:53:54] [INFO]   -> Combined street name: PETER AVE
[2026-03-22 15:53:54] [INFO] Built locationCoordinates from lat/lng: 36.1512,-85.25851
[2026-03-22 15:53:54] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nMPD","incidentInternalId":"2026000103","dispatchRunNumber":"2026000103","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":315,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"HOPE IN CHRIST CHURCH","nERISIncidentLatitude":36.1512000000000028876456781290471553802490234375,"nERISIncidentLongitude":-85.2585100000000011277734301984310150146484375,"alarm":"2026-03-22 10:53:24","dispatched":"2026-03-22 10:53:41","incidentLocationCross":"N ELM ST\/STANDING STONE DR","cADVehicleID":"MFR","timedispatch":"2026-03-22 10:53:41","policeReportNumber":"20260030931","dispatchNotes":"[EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","cADLog":"[EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","incidentLocationCity":"MONTEREY","streetName":"PETER AVE","incidentAddressTextVersionStreet":"315 PETER AVE","locationCoordinates":"36.1512,-85.25851"}
[2026-03-22 15:53:54] [INFO] Number of extracted fields: 22
[2026-03-22 15:53:54] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
MPD'
[2026-03-22 15:53:54] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
MPD', Parsed IDs = ["MFD","EMS","MPD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-22 15:53:54] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","MPD"]
[2026-03-22 15:53:54] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 15:53:55] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 15:53:55] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MPD"]
[2026-03-22 15:53:55] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 15:53:55] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 15:53:55] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 15:53:55] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 15:53:55] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 15:53:55] [INFO] Found existing IncidentTypeMapping with ID: 69541690cb8cb44d9
[2026-03-22 15:53:56] [INFO] Found existing Dispatch with cADNumber '2026000103', ID: 69c0108daaef32201 - will update instead of create
[2026-03-22 15:53:56] [INFO] Updated existing Dispatches record with ID: 69c0108daaef32201
[2026-03-22 15:53:56] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_155348.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260030931_20260322_155348.XML
[2026-03-22 15:53:56] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_155348.XML
[2026-03-22 15:54:57] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155457.XML
[2026-03-22 15:54:57] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155457.XML for user: 68f1466aed072ad4a
[2026-03-22 15:54:57] [INFO] File size: 5843 bytes
[2026-03-22 15:54:57] [INFO] Created FTPFiles record with ID: 69c010d1e24209d69
[2026-03-22 15:54:57] [INFO] About to extract fields from XML. File size: 5843 bytes
[2026-03-22 15:54:57] [INFO] Number of mappings: 28
[2026-03-22 15:54:57] [INFO] Starting XML parsing. Content length: 5843
[2026-03-22 15:54:57] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 15:54:57] [INFO] Processing 28 field mappings
[2026-03-22 15:54:57] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 15:54:57] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 15:54:57] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 15:54:57] [INFO] Found 5 elements for 'AgencyCode', concatenating 5 non-empty values
[2026-03-22 15:54:57] [INFO]   -> Found value: PCFD
EMS
MPD
MFD
RESC
[2026-03-22 15:54:57] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMPD\nMFD\nRESC"
[2026-03-22 15:54:57] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 15:54:57] [INFO] Found 5 elements for 'ReportNumber', using FIRST value only
[2026-03-22 15:54:57] [INFO]   -> Found value: 2026000772
[2026-03-22 15:54:57] [INFO]   -> Set field 'incidentInternalId' = "2026000772"
[2026-03-22 15:54:57] [INFO]   -> Set field 'dispatchRunNumber' = "2026000772"
[2026-03-22 15:54:57] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 15:54:57] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 15:54:57] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 15:54:57] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 15:54:57] [INFO]   -> Found value: 315
[2026-03-22 15:54:57] [INFO]   -> Set field 'incidentLocationStreetNumber' = 315
[2026-03-22 15:54:57] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 15:54:57] [INFO]   -> Found value: TN
[2026-03-22 15:54:57] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 15:54:57] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 15:54:57] [INFO]   -> Found value: 38574
[2026-03-22 15:54:57] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 15:54:57] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 15:54:57] [INFO]   -> Found value: HOPE IN CHRIST CHURCH
[2026-03-22 15:54:57] [INFO]   -> Set field 'businessName' = "HOPE IN CHRIST CHURCH"
[2026-03-22 15:54:57] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 15:54:57] [INFO]   -> No value found (null or empty)
[2026-03-22 15:54:57] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 15:54:57] [INFO]   -> Found value: 36.15120
[2026-03-22 15:54:57] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1512000000000028876456781290471553802490234375
[2026-03-22 15:54:57] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 15:54:57] [INFO]   -> Found value: -85.25851
[2026-03-22 15:54:57] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2585100000000011277734301984310150146484375
[2026-03-22 15:54:57] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 15:54:57] [INFO]   -> Found value: 2026-03-22 10:54:51
[2026-03-22 15:54:57] [INFO]   -> Set field 'alarm' = "2026-03-22 10:54:51"
[2026-03-22 15:54:57] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 15:54:57] [INFO]   -> Found value: 2026-03-22 10:54:51
[2026-03-22 15:54:57] [INFO]   -> Set field 'dispatched' = "2026-03-22 10:54:51"
[2026-03-22 15:54:57] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 15:54:57] [INFO]   -> No value found (null or empty)
[2026-03-22 15:54:57] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 15:54:57] [INFO]   -> No value found (null or empty)
[2026-03-22 15:54:57] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 15:54:57] [INFO]   -> No value found (null or empty)
[2026-03-22 15:54:57] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 15:54:57] [INFO]   -> Found value: N ELM ST/STANDING STONE DR
[2026-03-22 15:54:57] [INFO]   -> Set field 'incidentLocationCross' = "N ELM ST\/STANDING STONE DR"
[2026-03-22 15:54:57] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 15:54:57] [INFO]   -> Found value: PCFR
[2026-03-22 15:54:57] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 15:54:57] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 15:54:57] [INFO]   -> Found value: 2026-03-22 10:54:51
[2026-03-22 15:54:57] [INFO]   -> Set field 'timedispatch' = "2026-03-22 10:54:51"
[2026-03-22 15:54:57] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 15:54:57] [INFO]   -> No value found (null or empty)
[2026-03-22 15:54:57] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 15:54:57] [INFO]   -> No value found (null or empty)
[2026-03-22 15:54:57] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 15:54:57] [INFO]   -> No value found (null or empty)
[2026-03-22 15:54:57] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 15:54:57] [INFO]   -> No value found (null or empty)
[2026-03-22 15:54:57] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 15:54:57] [INFO] Found 5 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 15:54:57] [INFO]   -> Found value: 20260030935
[2026-03-22 15:54:57] [INFO]   -> Set field 'policeReportNumber' = "20260030935"
[2026-03-22 15:54:57] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 15:54:57] [INFO]   -> Found value: Event spawned from UNCONSCIOUS.  [03/22/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03/22/26 10:54:10 KHI...
[2026-03-22 15:54:57] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 15:54:57] [INFO]   -> Set field 'cADLog' = "Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 15:54:57] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 15:54:57] [INFO]   -> Found value: MONTEREY
[2026-03-22 15:54:57] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 15:54:57] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 15:54:57] [INFO]   -> Found value: PETER
[2026-03-22 15:54:57] [INFO]   -> Set field 'streetName' = "PETER"
[2026-03-22 15:54:57] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 15:54:57] [INFO]   -> Found value: AVE
[2026-03-22 15:54:57] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 15:54:57] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 15:54:57] [INFO]   -> Found value: 315 PETER AVE
[2026-03-22 15:54:57] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "315 PETER AVE"
[2026-03-22 15:54:57] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-22 15:54:57] [INFO] Concatenating street name and type
[2026-03-22 15:54:57] [INFO]   -> Combined street name: PETER AVE
[2026-03-22 15:54:57] [INFO] Built locationCoordinates from lat/lng: 36.1512,-85.25851
[2026-03-22 15:54:57] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMPD\nMFD\nRESC","incidentInternalId":"2026000772","dispatchRunNumber":"2026000772","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":315,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"HOPE IN CHRIST CHURCH","nERISIncidentLatitude":36.1512000000000028876456781290471553802490234375,"nERISIncidentLongitude":-85.2585100000000011277734301984310150146484375,"alarm":"2026-03-22 10:54:51","dispatched":"2026-03-22 10:54:51","incidentLocationCross":"N ELM ST\/STANDING STONE DR","cADVehicleID":"PCFR","timedispatch":"2026-03-22 10:54:51","policeReportNumber":"20260030935","dispatchNotes":"Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","cADLog":"Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","incidentLocationCity":"MONTEREY","streetName":"PETER AVE","incidentAddressTextVersionStreet":"315 PETER AVE","locationCoordinates":"36.1512,-85.25851"}
[2026-03-22 15:54:57] [INFO] Number of extracted fields: 22
[2026-03-22 15:54:57] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MPD
MFD
RESC'
[2026-03-22 15:54:57] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MPD
MFD
RESC', Parsed IDs = ["PCFD","EMS","MPD","MFD","RESC"], Non-empty count = 5, Total agency count = 5, Assigned Agencies count = 4
[2026-03-22 15:54:57] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MPD","MFD","RESC"]
[2026-03-22 15:54:57] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 15:54:58] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 15:54:58] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MPD","MFD","RESC"]
[2026-03-22 15:54:58] [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-22 15:54:58] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 15:54:58] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 5)
[2026-03-22 15:54:58] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 15:54:58] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 15:54:58] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-22 15:55:09] [INFO] Created new Dispatches record with ID: 69c010d2d35839e5a
[2026-03-22 15:55:09] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155457.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030935_20260322_155457.XML
[2026-03-22 15:55:09] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155457.XML
[2026-03-22 15:55:09] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155457_1.XML
[2026-03-22 15:55:09] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155457_1.XML for user: 68f1466aed072ad4a
[2026-03-22 15:55:09] [INFO] File size: 5843 bytes
[2026-03-22 15:55:09] [INFO] Created FTPFiles record with ID: 69c010dd6fd501106
[2026-03-22 15:55:09] [INFO] About to extract fields from XML. File size: 5843 bytes
[2026-03-22 15:55:09] [INFO] Number of mappings: 28
[2026-03-22 15:55:09] [INFO] Starting XML parsing. Content length: 5843
[2026-03-22 15:55:09] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 15:55:09] [INFO] Processing 28 field mappings
[2026-03-22 15:55:09] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 15:55:09] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 15:55:09] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 15:55:09] [INFO] Found 5 elements for 'AgencyCode', concatenating 5 non-empty values
[2026-03-22 15:55:09] [INFO]   -> Found value: PCFD
EMS
MPD
MFD
RESC
[2026-03-22 15:55:09] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMPD\nMFD\nRESC"
[2026-03-22 15:55:09] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 15:55:09] [INFO] Found 5 elements for 'ReportNumber', using FIRST value only
[2026-03-22 15:55:09] [INFO]   -> Found value: 2026000772
[2026-03-22 15:55:09] [INFO]   -> Set field 'incidentInternalId' = "2026000772"
[2026-03-22 15:55:09] [INFO]   -> Set field 'dispatchRunNumber' = "2026000772"
[2026-03-22 15:55:09] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 15:55:09] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 15:55:09] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 15:55:09] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 15:55:09] [INFO]   -> Found value: 315
[2026-03-22 15:55:09] [INFO]   -> Set field 'incidentLocationStreetNumber' = 315
[2026-03-22 15:55:09] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 15:55:09] [INFO]   -> Found value: TN
[2026-03-22 15:55:09] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 15:55:09] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 15:55:09] [INFO]   -> Found value: 38574
[2026-03-22 15:55:09] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 15:55:09] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 15:55:09] [INFO]   -> Found value: HOPE IN CHRIST CHURCH
[2026-03-22 15:55:09] [INFO]   -> Set field 'businessName' = "HOPE IN CHRIST CHURCH"
[2026-03-22 15:55:09] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 15:55:09] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:09] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 15:55:09] [INFO]   -> Found value: 36.15120
[2026-03-22 15:55:09] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1512000000000028876456781290471553802490234375
[2026-03-22 15:55:09] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 15:55:09] [INFO]   -> Found value: -85.25851
[2026-03-22 15:55:09] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2585100000000011277734301984310150146484375
[2026-03-22 15:55:09] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 15:55:09] [INFO]   -> Found value: 2026-03-22 10:54:51
[2026-03-22 15:55:09] [INFO]   -> Set field 'alarm' = "2026-03-22 10:54:51"
[2026-03-22 15:55:09] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 15:55:09] [INFO]   -> Found value: 2026-03-22 10:54:51
[2026-03-22 15:55:09] [INFO]   -> Set field 'dispatched' = "2026-03-22 10:54:51"
[2026-03-22 15:55:09] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 15:55:09] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:09] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 15:55:09] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:09] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 15:55:09] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:09] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 15:55:09] [INFO]   -> Found value: N ELM ST/STANDING STONE DR
[2026-03-22 15:55:09] [INFO]   -> Set field 'incidentLocationCross' = "N ELM ST\/STANDING STONE DR"
[2026-03-22 15:55:09] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 15:55:09] [INFO]   -> Found value: PCFR
[2026-03-22 15:55:09] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 15:55:09] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 15:55:09] [INFO]   -> Found value: 2026-03-22 10:54:51
[2026-03-22 15:55:09] [INFO]   -> Set field 'timedispatch' = "2026-03-22 10:54:51"
[2026-03-22 15:55:09] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 15:55:09] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:09] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 15:55:09] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:09] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 15:55:09] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:09] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 15:55:09] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:09] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 15:55:09] [INFO] Found 5 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 15:55:09] [INFO]   -> Found value: 20260030935
[2026-03-22 15:55:09] [INFO]   -> Set field 'policeReportNumber' = "20260030935"
[2026-03-22 15:55:09] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 15:55:09] [INFO]   -> Found value: Event spawned from UNCONSCIOUS.  [03/22/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03/22/26 10:54:10 KHI...
[2026-03-22 15:55:09] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 15:55:09] [INFO]   -> Set field 'cADLog' = "Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 15:55:09] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 15:55:09] [INFO]   -> Found value: MONTEREY
[2026-03-22 15:55:09] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 15:55:09] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 15:55:09] [INFO]   -> Found value: PETER
[2026-03-22 15:55:09] [INFO]   -> Set field 'streetName' = "PETER"
[2026-03-22 15:55:09] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 15:55:09] [INFO]   -> Found value: AVE
[2026-03-22 15:55:09] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 15:55:09] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 15:55:09] [INFO]   -> Found value: 315 PETER AVE
[2026-03-22 15:55:09] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "315 PETER AVE"
[2026-03-22 15:55:09] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-22 15:55:09] [INFO] Concatenating street name and type
[2026-03-22 15:55:09] [INFO]   -> Combined street name: PETER AVE
[2026-03-22 15:55:09] [INFO] Built locationCoordinates from lat/lng: 36.1512,-85.25851
[2026-03-22 15:55:09] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMPD\nMFD\nRESC","incidentInternalId":"2026000772","dispatchRunNumber":"2026000772","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":315,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"HOPE IN CHRIST CHURCH","nERISIncidentLatitude":36.1512000000000028876456781290471553802490234375,"nERISIncidentLongitude":-85.2585100000000011277734301984310150146484375,"alarm":"2026-03-22 10:54:51","dispatched":"2026-03-22 10:54:51","incidentLocationCross":"N ELM ST\/STANDING STONE DR","cADVehicleID":"PCFR","timedispatch":"2026-03-22 10:54:51","policeReportNumber":"20260030935","dispatchNotes":"Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","cADLog":"Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","incidentLocationCity":"MONTEREY","streetName":"PETER AVE","incidentAddressTextVersionStreet":"315 PETER AVE","locationCoordinates":"36.1512,-85.25851"}
[2026-03-22 15:55:09] [INFO] Number of extracted fields: 22
[2026-03-22 15:55:09] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MPD
MFD
RESC'
[2026-03-22 15:55:09] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MPD
MFD
RESC', Parsed IDs = ["PCFD","EMS","MPD","MFD","RESC"], Non-empty count = 5, Total agency count = 5, Assigned Agencies count = 4
[2026-03-22 15:55:09] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MPD","MFD","RESC"]
[2026-03-22 15:55:09] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 15:55:09] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 15:55:09] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MPD","MFD","RESC"]
[2026-03-22 15:55:09] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 15:55:09] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 15:55:09] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 5)
[2026-03-22 15:55:09] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 15:55:09] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 15:55:09] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-22 15:55:10] [INFO] Found existing Dispatch with cADNumber '2026000772', ID: 69c010d2d35839e5a - will update instead of create
[2026-03-22 15:55:10] [INFO] Updated existing Dispatches record with ID: 69c010d2d35839e5a
[2026-03-22 15:55:10] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155457_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030935_20260322_155457_1.XML
[2026-03-22 15:55:10] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155457_1.XML
[2026-03-22 15:55:10] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155458.XML
[2026-03-22 15:55:10] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155458.XML for user: 68f1466aed072ad4a
[2026-03-22 15:55:10] [INFO] File size: 5843 bytes
[2026-03-22 15:55:10] [INFO] Created FTPFiles record with ID: 69c010de9e962d7c6
[2026-03-22 15:55:10] [INFO] About to extract fields from XML. File size: 5843 bytes
[2026-03-22 15:55:10] [INFO] Number of mappings: 28
[2026-03-22 15:55:10] [INFO] Starting XML parsing. Content length: 5843
[2026-03-22 15:55:10] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 15:55:10] [INFO] Processing 28 field mappings
[2026-03-22 15:55:10] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 15:55:10] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 15:55:10] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 15:55:10] [INFO] Found 5 elements for 'AgencyCode', concatenating 5 non-empty values
[2026-03-22 15:55:10] [INFO]   -> Found value: PCFD
EMS
MPD
MFD
RESC
[2026-03-22 15:55:10] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMPD\nMFD\nRESC"
[2026-03-22 15:55:10] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 15:55:10] [INFO] Found 5 elements for 'ReportNumber', using FIRST value only
[2026-03-22 15:55:10] [INFO]   -> Found value: 2026000772
[2026-03-22 15:55:10] [INFO]   -> Set field 'incidentInternalId' = "2026000772"
[2026-03-22 15:55:10] [INFO]   -> Set field 'dispatchRunNumber' = "2026000772"
[2026-03-22 15:55:10] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 15:55:10] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 15:55:10] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 15:55:10] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 15:55:10] [INFO]   -> Found value: 315
[2026-03-22 15:55:10] [INFO]   -> Set field 'incidentLocationStreetNumber' = 315
[2026-03-22 15:55:10] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 15:55:10] [INFO]   -> Found value: TN
[2026-03-22 15:55:10] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 15:55:10] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 15:55:10] [INFO]   -> Found value: 38574
[2026-03-22 15:55:10] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 15:55:10] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 15:55:10] [INFO]   -> Found value: HOPE IN CHRIST CHURCH
[2026-03-22 15:55:10] [INFO]   -> Set field 'businessName' = "HOPE IN CHRIST CHURCH"
[2026-03-22 15:55:10] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 15:55:10] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:10] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 15:55:10] [INFO]   -> Found value: 36.15120
[2026-03-22 15:55:10] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1512000000000028876456781290471553802490234375
[2026-03-22 15:55:10] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 15:55:10] [INFO]   -> Found value: -85.25851
[2026-03-22 15:55:10] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2585100000000011277734301984310150146484375
[2026-03-22 15:55:10] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 15:55:10] [INFO]   -> Found value: 2026-03-22 10:54:51
[2026-03-22 15:55:10] [INFO]   -> Set field 'alarm' = "2026-03-22 10:54:51"
[2026-03-22 15:55:10] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 15:55:10] [INFO]   -> Found value: 2026-03-22 10:54:51
[2026-03-22 15:55:10] [INFO]   -> Set field 'dispatched' = "2026-03-22 10:54:51"
[2026-03-22 15:55:10] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 15:55:10] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:10] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 15:55:10] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:10] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 15:55:10] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:10] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 15:55:10] [INFO]   -> Found value: N ELM ST/STANDING STONE DR
[2026-03-22 15:55:10] [INFO]   -> Set field 'incidentLocationCross' = "N ELM ST\/STANDING STONE DR"
[2026-03-22 15:55:10] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 15:55:10] [INFO]   -> Found value: PCFR
[2026-03-22 15:55:10] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 15:55:10] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 15:55:10] [INFO]   -> Found value: 2026-03-22 10:54:51
[2026-03-22 15:55:10] [INFO]   -> Set field 'timedispatch' = "2026-03-22 10:54:51"
[2026-03-22 15:55:10] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 15:55:10] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:10] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 15:55:10] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:10] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 15:55:10] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:10] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 15:55:10] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:10] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 15:55:10] [INFO] Found 5 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 15:55:10] [INFO]   -> Found value: 20260030935
[2026-03-22 15:55:10] [INFO]   -> Set field 'policeReportNumber' = "20260030935"
[2026-03-22 15:55:10] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 15:55:10] [INFO]   -> Found value: Event spawned from UNCONSCIOUS.  [03/22/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03/22/26 10:54:10 KHI...
[2026-03-22 15:55:10] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 15:55:10] [INFO]   -> Set field 'cADLog' = "Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 15:55:10] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 15:55:10] [INFO]   -> Found value: MONTEREY
[2026-03-22 15:55:10] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 15:55:10] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 15:55:10] [INFO]   -> Found value: PETER
[2026-03-22 15:55:10] [INFO]   -> Set field 'streetName' = "PETER"
[2026-03-22 15:55:10] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 15:55:10] [INFO]   -> Found value: AVE
[2026-03-22 15:55:10] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 15:55:10] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 15:55:10] [INFO]   -> Found value: 315 PETER AVE
[2026-03-22 15:55:10] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "315 PETER AVE"
[2026-03-22 15:55:10] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-22 15:55:10] [INFO] Concatenating street name and type
[2026-03-22 15:55:10] [INFO]   -> Combined street name: PETER AVE
[2026-03-22 15:55:10] [INFO] Built locationCoordinates from lat/lng: 36.1512,-85.25851
[2026-03-22 15:55:10] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMPD\nMFD\nRESC","incidentInternalId":"2026000772","dispatchRunNumber":"2026000772","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":315,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"HOPE IN CHRIST CHURCH","nERISIncidentLatitude":36.1512000000000028876456781290471553802490234375,"nERISIncidentLongitude":-85.2585100000000011277734301984310150146484375,"alarm":"2026-03-22 10:54:51","dispatched":"2026-03-22 10:54:51","incidentLocationCross":"N ELM ST\/STANDING STONE DR","cADVehicleID":"PCFR","timedispatch":"2026-03-22 10:54:51","policeReportNumber":"20260030935","dispatchNotes":"Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","cADLog":"Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","incidentLocationCity":"MONTEREY","streetName":"PETER AVE","incidentAddressTextVersionStreet":"315 PETER AVE","locationCoordinates":"36.1512,-85.25851"}
[2026-03-22 15:55:10] [INFO] Number of extracted fields: 22
[2026-03-22 15:55:10] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MPD
MFD
RESC'
[2026-03-22 15:55:10] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MPD
MFD
RESC', Parsed IDs = ["PCFD","EMS","MPD","MFD","RESC"], Non-empty count = 5, Total agency count = 5, Assigned Agencies count = 4
[2026-03-22 15:55:10] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MPD","MFD","RESC"]
[2026-03-22 15:55:10] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 15:55:10] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 15:55:10] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MPD","MFD","RESC"]
[2026-03-22 15:55: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-22 15:55: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-22 15:55:10] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 5)
[2026-03-22 15:55:10] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 15:55:10] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 15:55:11] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-22 15:55:11] [INFO] Found existing Dispatch with cADNumber '2026000772', ID: 69c010d2d35839e5a - will update instead of create
[2026-03-22 15:55:11] [INFO] Updated existing Dispatches record with ID: 69c010d2d35839e5a
[2026-03-22 15:55:11] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155458.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030935_20260322_155458.XML
[2026-03-22 15:55:11] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155458.XML
[2026-03-22 15:55:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155551.XML
[2026-03-22 15:55:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155551.XML for user: 68f1466aed072ad4a
[2026-03-22 15:55:51] [INFO] File size: 6847 bytes
[2026-03-22 15:55:51] [INFO] Created FTPFiles record with ID: 69c011075f5243d39
[2026-03-22 15:55:51] [INFO] About to extract fields from XML. File size: 6847 bytes
[2026-03-22 15:55:51] [INFO] Number of mappings: 28
[2026-03-22 15:55:51] [INFO] Starting XML parsing. Content length: 6847
[2026-03-22 15:55:51] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 15:55:51] [INFO] Processing 28 field mappings
[2026-03-22 15:55:51] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 15:55:51] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 15:55:51] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 15:55:51] [INFO] Found 5 elements for 'AgencyCode', concatenating 5 non-empty values
[2026-03-22 15:55:51] [INFO]   -> Found value: PCFD
EMS
MPD
MFD
RESC
[2026-03-22 15:55:51] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMPD\nMFD\nRESC"
[2026-03-22 15:55:51] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 15:55:51] [INFO] Found 5 elements for 'ReportNumber', using FIRST value only
[2026-03-22 15:55:51] [INFO]   -> Found value: 2026000772
[2026-03-22 15:55:51] [INFO]   -> Set field 'incidentInternalId' = "2026000772"
[2026-03-22 15:55:51] [INFO]   -> Set field 'dispatchRunNumber' = "2026000772"
[2026-03-22 15:55:51] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 15:55:51] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 15:55:51] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 15:55:51] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 15:55:51] [INFO]   -> Found value: 315
[2026-03-22 15:55:51] [INFO]   -> Set field 'incidentLocationStreetNumber' = 315
[2026-03-22 15:55:51] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 15:55:51] [INFO]   -> Found value: TN
[2026-03-22 15:55:51] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 15:55:51] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 15:55:51] [INFO]   -> Found value: 38574
[2026-03-22 15:55:51] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 15:55:51] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 15:55:51] [INFO]   -> Found value: HOPE IN CHRIST CHURCH
[2026-03-22 15:55:51] [INFO]   -> Set field 'businessName' = "HOPE IN CHRIST CHURCH"
[2026-03-22 15:55:51] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 15:55:51] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:51] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 15:55:51] [INFO]   -> Found value: 36.15120
[2026-03-22 15:55:51] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1512000000000028876456781290471553802490234375
[2026-03-22 15:55:51] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 15:55:51] [INFO]   -> Found value: -85.25851
[2026-03-22 15:55:51] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2585100000000011277734301984310150146484375
[2026-03-22 15:55:51] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 15:55:51] [INFO]   -> Found value: 2026-03-22 10:54:51
[2026-03-22 15:55:51] [INFO]   -> Set field 'alarm' = "2026-03-22 10:54:51"
[2026-03-22 15:55:51] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 15:55:51] [INFO]   -> Found value: 2026-03-22 10:54:51
[2026-03-22 15:55:51] [INFO]   -> Set field 'dispatched' = "2026-03-22 10:54:51"
[2026-03-22 15:55:51] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 15:55:51] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:51] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 15:55:51] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:51] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 15:55:51] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:51] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 15:55:51] [INFO]   -> Found value: N ELM ST/STANDING STONE DR
[2026-03-22 15:55:51] [INFO]   -> Set field 'incidentLocationCross' = "N ELM ST\/STANDING STONE DR"
[2026-03-22 15:55:51] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 15:55:51] [INFO]   -> Found value: PCFR
[2026-03-22 15:55:51] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 15:55:51] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 15:55:51] [INFO]   -> Found value: 2026-03-22 10:54:51
[2026-03-22 15:55:51] [INFO]   -> Set field 'timedispatch' = "2026-03-22 10:54:51"
[2026-03-22 15:55:51] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 15:55:51] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:51] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 15:55:51] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:51] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 15:55:51] [INFO]   -> Found value: 2026-03-22 10:55:46
[2026-03-22 15:55:51] [INFO]   -> Set field 'timeunitclear' = "2026-03-22 10:55:46"
[2026-03-22 15:55:51] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 15:55:51] [INFO]   -> Found value: 2026-03-22 10:55:46
[2026-03-22 15:55:51] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-22 10:55:46"
[2026-03-22 15:55:51] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 15:55:51] [INFO] Found 5 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 15:55:51] [INFO]   -> Found value: 20260030935
[2026-03-22 15:55:51] [INFO]   -> Set field 'policeReportNumber' = "20260030935"
[2026-03-22 15:55:51] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 15:55:51] [INFO]   -> Found value: Event spawned from UNCONSCIOUS.  [03/22/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03/22/26 10:54:10 KHI...
[2026-03-22 15:55:51] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 15:55:51] [INFO]   -> Set field 'cADLog' = "Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 15:55:51] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 15:55:51] [INFO]   -> Found value: MONTEREY
[2026-03-22 15:55:51] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 15:55:51] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 15:55:51] [INFO]   -> Found value: PETER
[2026-03-22 15:55:51] [INFO]   -> Set field 'streetName' = "PETER"
[2026-03-22 15:55:51] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 15:55:51] [INFO]   -> Found value: AVE
[2026-03-22 15:55:51] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 15:55:51] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 15:55:51] [INFO]   -> Found value: 315 PETER AVE
[2026-03-22 15:55:51] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "315 PETER AVE"
[2026-03-22 15:55:51] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 15:55:51] [INFO] Concatenating street name and type
[2026-03-22 15:55:51] [INFO]   -> Combined street name: PETER AVE
[2026-03-22 15:55:51] [INFO] Built locationCoordinates from lat/lng: 36.1512,-85.25851
[2026-03-22 15:55:51] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMPD\nMFD\nRESC","incidentInternalId":"2026000772","dispatchRunNumber":"2026000772","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":315,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"HOPE IN CHRIST CHURCH","nERISIncidentLatitude":36.1512000000000028876456781290471553802490234375,"nERISIncidentLongitude":-85.2585100000000011277734301984310150146484375,"alarm":"2026-03-22 10:54:51","dispatched":"2026-03-22 10:54:51","incidentLocationCross":"N ELM ST\/STANDING STONE DR","cADVehicleID":"PCFR","timedispatch":"2026-03-22 10:54:51","timeunitclear":"2026-03-22 10:55:46","timecanceledenroute":"2026-03-22 10:55:46","policeReportNumber":"20260030935","dispatchNotes":"Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","cADLog":"Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","incidentLocationCity":"MONTEREY","streetName":"PETER AVE","incidentAddressTextVersionStreet":"315 PETER AVE","locationCoordinates":"36.1512,-85.25851"}
[2026-03-22 15:55:51] [INFO] Number of extracted fields: 24
[2026-03-22 15:55:51] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MPD
MFD
RESC'
[2026-03-22 15:55:51] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MPD
MFD
RESC', Parsed IDs = ["PCFD","EMS","MPD","MFD","RESC"], Non-empty count = 5, Total agency count = 5, Assigned Agencies count = 4
[2026-03-22 15:55:51] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MPD","MFD","RESC"]
[2026-03-22 15:55:51] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 15:55:51] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 15:55:51] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MPD","MFD","RESC"]
[2026-03-22 15:55:51] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 15:55:51] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 15:55:51] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 5)
[2026-03-22 15:55:51] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 15:55:51] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 15:55:51] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-22 15:55:52] [INFO] Found existing Dispatch with cADNumber '2026000772', ID: 69c010d2d35839e5a - will update instead of create
[2026-03-22 15:55:52] [INFO] Updated existing Dispatches record with ID: 69c010d2d35839e5a
[2026-03-22 15:55:52] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155551.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030935_20260322_155551.XML
[2026-03-22 15:55:52] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155551.XML
[2026-03-22 15:55:53] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155553.XML
[2026-03-22 15:55:53] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155553.XML for user: 68f1466aed072ad4a
[2026-03-22 15:55:53] [INFO] File size: 6918 bytes
[2026-03-22 15:55:53] [INFO] Created FTPFiles record with ID: 69c011095cadc674d
[2026-03-22 15:55:53] [INFO] About to extract fields from XML. File size: 6918 bytes
[2026-03-22 15:55:53] [INFO] Number of mappings: 28
[2026-03-22 15:55:53] [INFO] Starting XML parsing. Content length: 6918
[2026-03-22 15:55:53] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 15:55:53] [INFO] Processing 28 field mappings
[2026-03-22 15:55:53] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 15:55:53] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 15:55:53] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 15:55:53] [INFO] Found 5 elements for 'AgencyCode', concatenating 5 non-empty values
[2026-03-22 15:55:53] [INFO]   -> Found value: PCFD
EMS
MPD
MFD
RESC
[2026-03-22 15:55:53] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMPD\nMFD\nRESC"
[2026-03-22 15:55:53] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 15:55:53] [INFO] Found 5 elements for 'ReportNumber', using FIRST value only
[2026-03-22 15:55:53] [INFO]   -> Found value: 2026000772
[2026-03-22 15:55:53] [INFO]   -> Set field 'incidentInternalId' = "2026000772"
[2026-03-22 15:55:53] [INFO]   -> Set field 'dispatchRunNumber' = "2026000772"
[2026-03-22 15:55:53] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 15:55:53] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 15:55:53] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 15:55:53] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 15:55:53] [INFO]   -> Found value: 315
[2026-03-22 15:55:53] [INFO]   -> Set field 'incidentLocationStreetNumber' = 315
[2026-03-22 15:55:53] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 15:55:53] [INFO]   -> Found value: TN
[2026-03-22 15:55:53] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 15:55:53] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 15:55:53] [INFO]   -> Found value: 38574
[2026-03-22 15:55:53] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 15:55:53] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 15:55:53] [INFO]   -> Found value: HOPE IN CHRIST CHURCH
[2026-03-22 15:55:53] [INFO]   -> Set field 'businessName' = "HOPE IN CHRIST CHURCH"
[2026-03-22 15:55:53] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 15:55:53] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:53] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 15:55:53] [INFO]   -> Found value: 36.15120
[2026-03-22 15:55:53] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1512000000000028876456781290471553802490234375
[2026-03-22 15:55:53] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 15:55:53] [INFO]   -> Found value: -85.25851
[2026-03-22 15:55:53] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2585100000000011277734301984310150146484375
[2026-03-22 15:55:53] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 15:55:53] [INFO]   -> Found value: 2026-03-22 10:54:51
[2026-03-22 15:55:53] [INFO]   -> Set field 'alarm' = "2026-03-22 10:54:51"
[2026-03-22 15:55:53] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 15:55:53] [INFO]   -> Found value: 2026-03-22 10:54:51
[2026-03-22 15:55:53] [INFO]   -> Set field 'dispatched' = "2026-03-22 10:54:51"
[2026-03-22 15:55:53] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 15:55:53] [INFO]   -> Found value: 2026-03-22 10:55:49
[2026-03-22 15:55:53] [INFO]   -> Set field 'enroute' = "2026-03-22 10:55:49"
[2026-03-22 15:55:53] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 15:55:53] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:53] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 15:55:53] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:53] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 15:55:53] [INFO]   -> Found value: N ELM ST/STANDING STONE DR
[2026-03-22 15:55:53] [INFO]   -> Set field 'incidentLocationCross' = "N ELM ST\/STANDING STONE DR"
[2026-03-22 15:55:53] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 15:55:53] [INFO]   -> Found value: EN21
[2026-03-22 15:55:53] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-22 15:55:53] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 15:55:53] [INFO]   -> Found value: 2026-03-22 10:55:46
[2026-03-22 15:55:53] [INFO]   -> Set field 'timedispatch' = "2026-03-22 10:55:46"
[2026-03-22 15:55:53] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 15:55:53] [INFO]   -> Found value: 2026-03-22 10:55:49
[2026-03-22 15:55:53] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 10:55:49"
[2026-03-22 15:55:53] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 15:55:53] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:53] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 15:55:53] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:53] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 15:55:53] [INFO]   -> No value found (null or empty)
[2026-03-22 15:55:53] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 15:55:53] [INFO] Found 5 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 15:55:53] [INFO]   -> Found value: 20260030935
[2026-03-22 15:55:53] [INFO]   -> Set field 'policeReportNumber' = "20260030935"
[2026-03-22 15:55:53] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 15:55:53] [INFO]   -> Found value: Event spawned from UNCONSCIOUS.  [03/22/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03/22/26 10:54:10 KHI...
[2026-03-22 15:55:53] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 15:55:53] [INFO]   -> Set field 'cADLog' = "Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 15:55:53] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 15:55:53] [INFO]   -> Found value: MONTEREY
[2026-03-22 15:55:53] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 15:55:53] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 15:55:53] [INFO]   -> Found value: PETER
[2026-03-22 15:55:53] [INFO]   -> Set field 'streetName' = "PETER"
[2026-03-22 15:55:53] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 15:55:53] [INFO]   -> Found value: AVE
[2026-03-22 15:55:53] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 15:55:53] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 15:55:53] [INFO]   -> Found value: 315 PETER AVE
[2026-03-22 15:55:53] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "315 PETER AVE"
[2026-03-22 15:55:53] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 15:55:53] [INFO] Concatenating street name and type
[2026-03-22 15:55:53] [INFO]   -> Combined street name: PETER AVE
[2026-03-22 15:55:53] [INFO] Built locationCoordinates from lat/lng: 36.1512,-85.25851
[2026-03-22 15:55:53] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMPD\nMFD\nRESC","incidentInternalId":"2026000772","dispatchRunNumber":"2026000772","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":315,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"HOPE IN CHRIST CHURCH","nERISIncidentLatitude":36.1512000000000028876456781290471553802490234375,"nERISIncidentLongitude":-85.2585100000000011277734301984310150146484375,"alarm":"2026-03-22 10:54:51","dispatched":"2026-03-22 10:54:51","enroute":"2026-03-22 10:55:49","incidentLocationCross":"N ELM ST\/STANDING STONE DR","cADVehicleID":"EN21","timedispatch":"2026-03-22 10:55:46","timeenroutetoscene":"2026-03-22 10:55:49","policeReportNumber":"20260030935","dispatchNotes":"Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","cADLog":"Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:54:51 KHILL] [EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","incidentLocationCity":"MONTEREY","streetName":"PETER AVE","incidentAddressTextVersionStreet":"315 PETER AVE","locationCoordinates":"36.1512,-85.25851"}
[2026-03-22 15:55:53] [INFO] Number of extracted fields: 24
[2026-03-22 15:55:53] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MPD
MFD
RESC'
[2026-03-22 15:55:53] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MPD
MFD
RESC', Parsed IDs = ["PCFD","EMS","MPD","MFD","RESC"], Non-empty count = 5, Total agency count = 5, Assigned Agencies count = 4
[2026-03-22 15:55:53] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MPD","MFD","RESC"]
[2026-03-22 15:55:53] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 15:55:53] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 15:55:53] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MPD","MFD","RESC"]
[2026-03-22 15:55:53] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 15:55:53] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 15:55:53] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 5)
[2026-03-22 15:55:53] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 15:55:53] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 15:55:53] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-22 15:55:54] [INFO] Found existing Dispatch with cADNumber '2026000772', ID: 69c010d2d35839e5a - will update instead of create
[2026-03-22 15:55:54] [INFO] Updated existing Dispatches record with ID: 69c010d2d35839e5a
[2026-03-22 15:55:54] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155553.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030935_20260322_155553.XML
[2026-03-22 15:55:54] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030935_20260322_155553.XML
[2026-03-22 16:01:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_160150.XML
[2026-03-22 16:01:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_160150.XML for user: 68f1466aed072ad4a
[2026-03-22 16:01:51] [INFO] File size: 6897 bytes
[2026-03-22 16:01:51] [INFO] Created FTPFiles record with ID: 69c0126f46b8d2749
[2026-03-22 16:01:51] [INFO] About to extract fields from XML. File size: 6897 bytes
[2026-03-22 16:01:51] [INFO] Number of mappings: 28
[2026-03-22 16:01:51] [INFO] Starting XML parsing. Content length: 6897
[2026-03-22 16:01:51] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 16:01:51] [INFO] Processing 28 field mappings
[2026-03-22 16:01:51] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 16:01:51] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 16:01:51] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 16:01:51] [INFO] Found 5 elements for 'AgencyCode', concatenating 5 non-empty values
[2026-03-22 16:01:51] [INFO]   -> Found value: MFD
EMS
MPD
RESC
PCFD
[2026-03-22 16:01:51] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nMPD\nRESC\nPCFD"
[2026-03-22 16:01:51] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 16:01:51] [INFO] Found 5 elements for 'ReportNumber', using FIRST value only
[2026-03-22 16:01:51] [INFO]   -> Found value: 2026000103
[2026-03-22 16:01:51] [INFO]   -> Set field 'incidentInternalId' = "2026000103"
[2026-03-22 16:01:51] [INFO]   -> Set field 'dispatchRunNumber' = "2026000103"
[2026-03-22 16:01:51] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 16:01:51] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 16:01:51] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 16:01:51] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 16:01:51] [INFO]   -> Found value: 315
[2026-03-22 16:01:51] [INFO]   -> Set field 'incidentLocationStreetNumber' = 315
[2026-03-22 16:01:51] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 16:01:51] [INFO]   -> Found value: TN
[2026-03-22 16:01:51] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 16:01:51] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 16:01:51] [INFO]   -> Found value: 38574
[2026-03-22 16:01:51] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 16:01:51] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 16:01:51] [INFO]   -> Found value: HOPE IN CHRIST CHURCH
[2026-03-22 16:01:51] [INFO]   -> Set field 'businessName' = "HOPE IN CHRIST CHURCH"
[2026-03-22 16:01:51] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 16:01:51] [INFO]   -> No value found (null or empty)
[2026-03-22 16:01:51] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 16:01:51] [INFO]   -> Found value: 36.15120
[2026-03-22 16:01:51] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1512000000000028876456781290471553802490234375
[2026-03-22 16:01:51] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 16:01:51] [INFO]   -> Found value: -85.25851
[2026-03-22 16:01:51] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2585100000000011277734301984310150146484375
[2026-03-22 16:01:51] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 16:01:51] [INFO]   -> Found value: 2026-03-22 10:53:24
[2026-03-22 16:01:51] [INFO]   -> Set field 'alarm' = "2026-03-22 10:53:24"
[2026-03-22 16:01:51] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 16:01:51] [INFO]   -> Found value: 2026-03-22 10:53:41
[2026-03-22 16:01:51] [INFO]   -> Set field 'dispatched' = "2026-03-22 10:53:41"
[2026-03-22 16:01:51] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 16:01:51] [INFO]   -> Found value: 2026-03-22 11:01:46
[2026-03-22 16:01:51] [INFO]   -> Set field 'enroute' = "2026-03-22 11:01:46"
[2026-03-22 16:01:51] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 16:01:51] [INFO]   -> Found value: 2026-03-22 11:01:46
[2026-03-22 16:01:51] [INFO]   -> Set field 'onScene' = "2026-03-22 11:01:46"
[2026-03-22 16:01:51] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 16:01:51] [INFO]   -> No value found (null or empty)
[2026-03-22 16:01:51] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 16:01:51] [INFO]   -> Found value: N ELM ST/STANDING STONE DR
[2026-03-22 16:01:51] [INFO]   -> Set field 'incidentLocationCross' = "N ELM ST\/STANDING STONE DR"
[2026-03-22 16:01:51] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 16:01:51] [INFO]   -> Found value: MF111
[2026-03-22 16:01:51] [INFO]   -> Set field 'cADVehicleID' = "MF111"
[2026-03-22 16:01:51] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 16:01:51] [INFO]   -> Found value: 2026-03-22 11:01:41
[2026-03-22 16:01:51] [INFO]   -> Set field 'timedispatch' = "2026-03-22 11:01:41"
[2026-03-22 16:01:51] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 16:01:51] [INFO]   -> No value found (null or empty)
[2026-03-22 16:01:51] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 16:01:51] [INFO]   -> Found value: 2026-03-22 11:01:46
[2026-03-22 16:01:51] [INFO]   -> Set field 'timeonscene' = "2026-03-22 11:01:46"
[2026-03-22 16:01:51] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 16:01:51] [INFO]   -> No value found (null or empty)
[2026-03-22 16:01:51] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 16:01:51] [INFO]   -> No value found (null or empty)
[2026-03-22 16:01:51] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 16:01:51] [INFO] Found 5 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 16:01:51] [INFO]   -> Found value: 20260030931
[2026-03-22 16:01:51] [INFO]   -> Set field 'policeReportNumber' = "20260030931"
[2026-03-22 16:01:51] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 16:01:51] [INFO]   -> Found value: [EMS] FELL DOWN  [03/22/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03/22/26 10:53:46...
[2026-03-22 16:01:51] [INFO]   -> Set field 'dispatchNotes' = "[EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 16:01:51] [INFO]   -> Set field 'cADLog' = "[EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 16:01:51] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 16:01:51] [INFO]   -> Found value: MONTEREY
[2026-03-22 16:01:51] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 16:01:51] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 16:01:51] [INFO]   -> Found value: PETER
[2026-03-22 16:01:51] [INFO]   -> Set field 'streetName' = "PETER"
[2026-03-22 16:01:51] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 16:01:51] [INFO]   -> Found value: AVE
[2026-03-22 16:01:51] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 16:01:51] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 16:01:51] [INFO]   -> Found value: 315 PETER AVE
[2026-03-22 16:01:51] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "315 PETER AVE"
[2026-03-22 16:01:51] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-03-22 16:01:51] [INFO] Concatenating street name and type
[2026-03-22 16:01:51] [INFO]   -> Combined street name: PETER AVE
[2026-03-22 16:01:51] [INFO] Built locationCoordinates from lat/lng: 36.1512,-85.25851
[2026-03-22 16:01:51] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nMPD\nRESC\nPCFD","incidentInternalId":"2026000103","dispatchRunNumber":"2026000103","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":315,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"HOPE IN CHRIST CHURCH","nERISIncidentLatitude":36.1512000000000028876456781290471553802490234375,"nERISIncidentLongitude":-85.2585100000000011277734301984310150146484375,"alarm":"2026-03-22 10:53:24","dispatched":"2026-03-22 10:53:41","enroute":"2026-03-22 11:01:46","onScene":"2026-03-22 11:01:46","incidentLocationCross":"N ELM ST\/STANDING STONE DR","cADVehicleID":"MF111","timedispatch":"2026-03-22 11:01:41","timeonscene":"2026-03-22 11:01:46","policeReportNumber":"20260030931","dispatchNotes":"[EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","cADLog":"[EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","incidentLocationCity":"MONTEREY","streetName":"PETER AVE","incidentAddressTextVersionStreet":"315 PETER AVE","locationCoordinates":"36.1512,-85.25851"}
[2026-03-22 16:01:51] [INFO] Number of extracted fields: 25
[2026-03-22 16:01:51] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
MPD
RESC
PCFD'
[2026-03-22 16:01:51] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
MPD
RESC
PCFD', Parsed IDs = ["MFD","EMS","MPD","RESC","PCFD"], Non-empty count = 5, Total agency count = 5, Assigned Agencies count = 4
[2026-03-22 16:01:51] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","MPD","RESC","PCFD"]
[2026-03-22 16:01:51] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 16:01:51] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 16:01:51] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MPD","RESC","PCFD"]
[2026-03-22 16:01:51] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 16:01:51] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 16:01:51] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 5)
[2026-03-22 16:01:51] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 16:01:51] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 16:01:51] [INFO] Found existing IncidentTypeMapping with ID: 69541690cb8cb44d9
[2026-03-22 16:01:52] [INFO] Found existing Dispatch with cADNumber '2026000103', ID: 69c0108daaef32201 - will update instead of create
[2026-03-22 16:01:52] [INFO] Updated existing Dispatches record with ID: 69c0108daaef32201
[2026-03-22 16:01:52] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_160150.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260030931_20260322_160150.XML
[2026-03-22 16:01:52] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_160150.XML
[2026-03-22 16:01:53] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_160152.XML
[2026-03-22 16:01:53] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_160152.XML for user: 68f1466aed072ad4a
[2026-03-22 16:01:53] [INFO] File size: 6897 bytes
[2026-03-22 16:01:53] [INFO] Created FTPFiles record with ID: 69c012714bceb8f18
[2026-03-22 16:01:53] [INFO] About to extract fields from XML. File size: 6897 bytes
[2026-03-22 16:01:53] [INFO] Number of mappings: 28
[2026-03-22 16:01:53] [INFO] Starting XML parsing. Content length: 6897
[2026-03-22 16:01:53] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 16:01:53] [INFO] Processing 28 field mappings
[2026-03-22 16:01:53] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 16:01:53] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 16:01:53] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 16:01:53] [INFO] Found 5 elements for 'AgencyCode', concatenating 5 non-empty values
[2026-03-22 16:01:53] [INFO]   -> Found value: MFD
EMS
MPD
RESC
PCFD
[2026-03-22 16:01:53] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nMPD\nRESC\nPCFD"
[2026-03-22 16:01:53] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 16:01:53] [INFO] Found 5 elements for 'ReportNumber', using FIRST value only
[2026-03-22 16:01:53] [INFO]   -> Found value: 2026000103
[2026-03-22 16:01:53] [INFO]   -> Set field 'incidentInternalId' = "2026000103"
[2026-03-22 16:01:53] [INFO]   -> Set field 'dispatchRunNumber' = "2026000103"
[2026-03-22 16:01:53] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 16:01:53] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 16:01:53] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 16:01:53] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 16:01:53] [INFO]   -> Found value: 315
[2026-03-22 16:01:53] [INFO]   -> Set field 'incidentLocationStreetNumber' = 315
[2026-03-22 16:01:53] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 16:01:53] [INFO]   -> Found value: TN
[2026-03-22 16:01:53] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 16:01:53] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 16:01:53] [INFO]   -> Found value: 38574
[2026-03-22 16:01:53] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 16:01:53] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 16:01:53] [INFO]   -> Found value: HOPE IN CHRIST CHURCH
[2026-03-22 16:01:53] [INFO]   -> Set field 'businessName' = "HOPE IN CHRIST CHURCH"
[2026-03-22 16:01:53] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 16:01:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:01:53] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 16:01:53] [INFO]   -> Found value: 36.15120
[2026-03-22 16:01:53] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1512000000000028876456781290471553802490234375
[2026-03-22 16:01:53] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 16:01:53] [INFO]   -> Found value: -85.25851
[2026-03-22 16:01:53] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2585100000000011277734301984310150146484375
[2026-03-22 16:01:53] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 16:01:53] [INFO]   -> Found value: 2026-03-22 10:53:24
[2026-03-22 16:01:53] [INFO]   -> Set field 'alarm' = "2026-03-22 10:53:24"
[2026-03-22 16:01:53] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 16:01:53] [INFO]   -> Found value: 2026-03-22 10:53:41
[2026-03-22 16:01:53] [INFO]   -> Set field 'dispatched' = "2026-03-22 10:53:41"
[2026-03-22 16:01:53] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 16:01:53] [INFO]   -> Found value: 2026-03-22 11:01:46
[2026-03-22 16:01:53] [INFO]   -> Set field 'enroute' = "2026-03-22 11:01:46"
[2026-03-22 16:01:53] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 16:01:53] [INFO]   -> Found value: 2026-03-22 11:01:46
[2026-03-22 16:01:53] [INFO]   -> Set field 'onScene' = "2026-03-22 11:01:46"
[2026-03-22 16:01:53] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 16:01:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:01:53] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 16:01:53] [INFO]   -> Found value: N ELM ST/STANDING STONE DR
[2026-03-22 16:01:53] [INFO]   -> Set field 'incidentLocationCross' = "N ELM ST\/STANDING STONE DR"
[2026-03-22 16:01:53] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 16:01:53] [INFO]   -> Found value: MF111
[2026-03-22 16:01:53] [INFO]   -> Set field 'cADVehicleID' = "MF111"
[2026-03-22 16:01:53] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 16:01:53] [INFO]   -> Found value: 2026-03-22 11:01:41
[2026-03-22 16:01:53] [INFO]   -> Set field 'timedispatch' = "2026-03-22 11:01:41"
[2026-03-22 16:01:53] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 16:01:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:01:53] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 16:01:53] [INFO]   -> Found value: 2026-03-22 11:01:46
[2026-03-22 16:01:53] [INFO]   -> Set field 'timeonscene' = "2026-03-22 11:01:46"
[2026-03-22 16:01:53] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 16:01:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:01:53] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 16:01:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:01:53] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 16:01:53] [INFO] Found 5 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 16:01:53] [INFO]   -> Found value: 20260030931
[2026-03-22 16:01:53] [INFO]   -> Set field 'policeReportNumber' = "20260030931"
[2026-03-22 16:01:53] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 16:01:53] [INFO]   -> Found value: [EMS] FELL DOWN  [03/22/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03/22/26 10:53:46...
[2026-03-22 16:01:53] [INFO]   -> Set field 'dispatchNotes' = "[EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 16:01:53] [INFO]   -> Set field 'cADLog' = "[EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]"
[2026-03-22 16:01:53] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 16:01:53] [INFO]   -> Found value: MONTEREY
[2026-03-22 16:01:53] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 16:01:53] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 16:01:53] [INFO]   -> Found value: PETER
[2026-03-22 16:01:53] [INFO]   -> Set field 'streetName' = "PETER"
[2026-03-22 16:01:53] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 16:01:53] [INFO]   -> Found value: AVE
[2026-03-22 16:01:53] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 16:01:53] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 16:01:53] [INFO]   -> Found value: 315 PETER AVE
[2026-03-22 16:01:53] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "315 PETER AVE"
[2026-03-22 16:01:53] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-03-22 16:01:53] [INFO] Concatenating street name and type
[2026-03-22 16:01:53] [INFO]   -> Combined street name: PETER AVE
[2026-03-22 16:01:53] [INFO] Built locationCoordinates from lat/lng: 36.1512,-85.25851
[2026-03-22 16:01:53] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nMPD\nRESC\nPCFD","incidentInternalId":"2026000103","dispatchRunNumber":"2026000103","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":315,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"HOPE IN CHRIST CHURCH","nERISIncidentLatitude":36.1512000000000028876456781290471553802490234375,"nERISIncidentLongitude":-85.2585100000000011277734301984310150146484375,"alarm":"2026-03-22 10:53:24","dispatched":"2026-03-22 10:53:41","enroute":"2026-03-22 11:01:46","onScene":"2026-03-22 11:01:46","incidentLocationCross":"N ELM ST\/STANDING STONE DR","cADVehicleID":"MF111","timedispatch":"2026-03-22 11:01:41","timeonscene":"2026-03-22 11:01:46","policeReportNumber":"20260030931","dispatchNotes":"[EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","cADLog":"[EMS] FELL DOWN  [03\/22\/26 10:54:10 KHILL] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 10:53:46 GTRUEMAN] [EMS] EYES ROLLING BACK IN HIS HEAD RON OLIVER  [03\/22\/26 10:53:41 KHILL] Event spawned from UNCONSCIOUS.  [03\/22\/2026 10:53:24 KHILL]","incidentLocationCity":"MONTEREY","streetName":"PETER AVE","incidentAddressTextVersionStreet":"315 PETER AVE","locationCoordinates":"36.1512,-85.25851"}
[2026-03-22 16:01:53] [INFO] Number of extracted fields: 25
[2026-03-22 16:01:53] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
MPD
RESC
PCFD'
[2026-03-22 16:01:53] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
MPD
RESC
PCFD', Parsed IDs = ["MFD","EMS","MPD","RESC","PCFD"], Non-empty count = 5, Total agency count = 5, Assigned Agencies count = 4
[2026-03-22 16:01:53] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","MPD","RESC","PCFD"]
[2026-03-22 16:01:53] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 16:01:53] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 16:01:53] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MPD","RESC","PCFD"]
[2026-03-22 16:01:53] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 16:01:53] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 16:01:53] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 5)
[2026-03-22 16:01:53] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 16:01:53] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 16:01:53] [INFO] Found existing IncidentTypeMapping with ID: 69541690cb8cb44d9
[2026-03-22 16:01:54] [INFO] Found existing Dispatch with cADNumber '2026000103', ID: 69c0108daaef32201 - will update instead of create
[2026-03-22 16:01:54] [INFO] Updated existing Dispatches record with ID: 69c0108daaef32201
[2026-03-22 16:01:54] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_160152.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260030931_20260322_160152.XML
[2026-03-22 16:01:54] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030931_20260322_160152.XML
[2026-03-22 16:24:38] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030943_20260322_162438.XML
[2026-03-22 16:24:38] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030943_20260322_162438.XML for user: 68f1466aed072ad4a
[2026-03-22 16:24:38] [INFO] File size: 5277 bytes
[2026-03-22 16:24:38] [INFO] Created FTPFiles record with ID: 69c017c6564468c88
[2026-03-22 16:24:38] [INFO] About to extract fields from XML. File size: 5277 bytes
[2026-03-22 16:24:38] [INFO] Number of mappings: 28
[2026-03-22 16:24:38] [INFO] Starting XML parsing. Content length: 5277
[2026-03-22 16:24:38] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 16:24:38] [INFO] Processing 28 field mappings
[2026-03-22 16:24:38] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 16:24:38] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 16:24:38] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 16:24:38] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 16:24:38] [INFO]   -> Found value: MFD
EMS
[2026-03-22 16:24:38] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS"
[2026-03-22 16:24:38] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 16:24:38] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 16:24:38] [INFO]   -> Found value: 2026000104
[2026-03-22 16:24:38] [INFO]   -> Set field 'incidentInternalId' = "2026000104"
[2026-03-22 16:24:38] [INFO]   -> Set field 'dispatchRunNumber' = "2026000104"
[2026-03-22 16:24:38] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 16:24:38] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 16:24:38] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 16:24:38] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 16:24:38] [INFO]   -> Found value: 509
[2026-03-22 16:24:38] [INFO]   -> Set field 'incidentLocationStreetNumber' = 509
[2026-03-22 16:24:38] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 16:24:38] [INFO]   -> Found value: TN
[2026-03-22 16:24:38] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 16:24:38] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 16:24:38] [INFO]   -> Found value: 38574
[2026-03-22 16:24:38] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 16:24:38] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 16:24:38] [INFO]   -> Found value: MONTEREY SHELL
[2026-03-22 16:24:38] [INFO]   -> Set field 'businessName' = "MONTEREY SHELL"
[2026-03-22 16:24:38] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 16:24:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:38] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 16:24:38] [INFO]   -> Found value: 36.14006
[2026-03-22 16:24:38] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14005999999999829697117093019187450408935546875
[2026-03-22 16:24:38] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 16:24:38] [INFO]   -> Found value: -85.26762
[2026-03-22 16:24:38] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.267619999999993751771398819983005523681640625
[2026-03-22 16:24:38] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 16:24:38] [INFO]   -> Found value: 2026-03-22 11:23:39
[2026-03-22 16:24:38] [INFO]   -> Set field 'alarm' = "2026-03-22 11:23:39"
[2026-03-22 16:24:38] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 16:24:38] [INFO]   -> Found value: 2026-03-22 11:24:32
[2026-03-22 16:24:38] [INFO]   -> Set field 'dispatched' = "2026-03-22 11:24:32"
[2026-03-22 16:24:38] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 16:24:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:38] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 16:24:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:38] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 16:24:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:38] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 16:24:38] [INFO]   -> Found value: AGEE ST/INDUSTRIAL DR
[2026-03-22 16:24:38] [INFO]   -> Set field 'incidentLocationCross' = "AGEE ST\/INDUSTRIAL DR"
[2026-03-22 16:24:38] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 16:24:38] [INFO]   -> Found value: MFR
[2026-03-22 16:24:38] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-03-22 16:24:38] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 16:24:38] [INFO]   -> Found value: 2026-03-22 11:24:32
[2026-03-22 16:24:38] [INFO]   -> Set field 'timedispatch' = "2026-03-22 11:24:32"
[2026-03-22 16:24:38] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 16:24:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:38] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 16:24:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:38] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 16:24:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:38] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 16:24:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:38] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 16:24:38] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 16:24:38] [INFO]   -> Found value: 20260030943
[2026-03-22 16:24:38] [INFO]   -> Set field 'policeReportNumber' = "20260030943"
[2026-03-22 16:24:38] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 16:24:38] [INFO]   -> Found value: [EMS] INTENSE PAIN  [03/22/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03/22/26 11:23:45 KHILL] Event...
[2026-03-22 16:24:38] [INFO]   -> Set field 'dispatchNotes' = "[EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:24:38] [INFO]   -> Set field 'cADLog' = "[EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:24:38] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 16:24:38] [INFO]   -> Found value: MONTEREY
[2026-03-22 16:24:38] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 16:24:38] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 16:24:38] [INFO]   -> Found value: STRATTON
[2026-03-22 16:24:38] [INFO]   -> Set field 'streetName' = "STRATTON"
[2026-03-22 16:24:38] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 16:24:38] [INFO]   -> Found value: AVE
[2026-03-22 16:24:38] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 16:24:38] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 16:24:38] [INFO]   -> Found value: 509 E STRATTON AVE
[2026-03-22 16:24:38] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "509 E STRATTON AVE"
[2026-03-22 16:24:38] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-22 16:24:38] [INFO] Concatenating street name and type
[2026-03-22 16:24:38] [INFO]   -> Combined street name: STRATTON AVE
[2026-03-22 16:24:38] [INFO] Built locationCoordinates from lat/lng: 36.14006,-85.26762
[2026-03-22 16:24:38] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS","incidentInternalId":"2026000104","dispatchRunNumber":"2026000104","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":509,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"MONTEREY SHELL","nERISIncidentLatitude":36.14005999999999829697117093019187450408935546875,"nERISIncidentLongitude":-85.267619999999993751771398819983005523681640625,"alarm":"2026-03-22 11:23:39","dispatched":"2026-03-22 11:24:32","incidentLocationCross":"AGEE ST\/INDUSTRIAL DR","cADVehicleID":"MFR","timedispatch":"2026-03-22 11:24:32","policeReportNumber":"20260030943","dispatchNotes":"[EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","cADLog":"[EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","incidentLocationCity":"MONTEREY","streetName":"STRATTON AVE","incidentAddressTextVersionStreet":"509 E STRATTON AVE","locationCoordinates":"36.14006,-85.26762"}
[2026-03-22 16:24:38] [INFO] Number of extracted fields: 22
[2026-03-22 16:24:38] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS'
[2026-03-22 16:24:38] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS', Parsed IDs = ["MFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 16:24:38] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS"]
[2026-03-22 16:24:38] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 16:24:38] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 16:24:38] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-03-22 16:24:38] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 16:24:38] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 16:24:38] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 16:24:38] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 16:24:38] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 16:24:39] [INFO] Found existing IncidentTypeMapping with ID: 697ea33628eb4de15
[2026-03-22 16:24:41] [INFO] Created new Dispatches record with ID: 69c017c74d0c4631a
[2026-03-22 16:24:41] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030943_20260322_162438.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260030943_20260322_162438.XML
[2026-03-22 16:24:41] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030943_20260322_162438.XML
[2026-03-22 16:24:41] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030943_20260322_162438_1.XML
[2026-03-22 16:24:41] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030943_20260322_162438_1.XML for user: 68f1466aed072ad4a
[2026-03-22 16:24:41] [INFO] File size: 5277 bytes
[2026-03-22 16:24:42] [INFO] Created FTPFiles record with ID: 69c017ca429cafe2b
[2026-03-22 16:24:42] [INFO] About to extract fields from XML. File size: 5277 bytes
[2026-03-22 16:24:42] [INFO] Number of mappings: 28
[2026-03-22 16:24:42] [INFO] Starting XML parsing. Content length: 5277
[2026-03-22 16:24:42] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 16:24:42] [INFO] Processing 28 field mappings
[2026-03-22 16:24:42] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 16:24:42] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 16:24:42] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 16:24:42] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 16:24:42] [INFO]   -> Found value: MFD
EMS
[2026-03-22 16:24:42] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS"
[2026-03-22 16:24:42] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 16:24:42] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 16:24:42] [INFO]   -> Found value: 2026000104
[2026-03-22 16:24:42] [INFO]   -> Set field 'incidentInternalId' = "2026000104"
[2026-03-22 16:24:42] [INFO]   -> Set field 'dispatchRunNumber' = "2026000104"
[2026-03-22 16:24:42] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 16:24:42] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 16:24:42] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 16:24:42] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 16:24:42] [INFO]   -> Found value: 509
[2026-03-22 16:24:42] [INFO]   -> Set field 'incidentLocationStreetNumber' = 509
[2026-03-22 16:24:42] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 16:24:42] [INFO]   -> Found value: TN
[2026-03-22 16:24:42] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 16:24:42] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 16:24:42] [INFO]   -> Found value: 38574
[2026-03-22 16:24:42] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 16:24:42] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 16:24:42] [INFO]   -> Found value: MONTEREY SHELL
[2026-03-22 16:24:42] [INFO]   -> Set field 'businessName' = "MONTEREY SHELL"
[2026-03-22 16:24:42] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 16:24:42] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:42] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 16:24:42] [INFO]   -> Found value: 36.14006
[2026-03-22 16:24:42] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14005999999999829697117093019187450408935546875
[2026-03-22 16:24:42] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 16:24:42] [INFO]   -> Found value: -85.26762
[2026-03-22 16:24:42] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.267619999999993751771398819983005523681640625
[2026-03-22 16:24:42] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 16:24:42] [INFO]   -> Found value: 2026-03-22 11:23:39
[2026-03-22 16:24:42] [INFO]   -> Set field 'alarm' = "2026-03-22 11:23:39"
[2026-03-22 16:24:42] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 16:24:42] [INFO]   -> Found value: 2026-03-22 11:24:32
[2026-03-22 16:24:42] [INFO]   -> Set field 'dispatched' = "2026-03-22 11:24:32"
[2026-03-22 16:24:42] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 16:24:42] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:42] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 16:24:42] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:42] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 16:24:42] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:42] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 16:24:42] [INFO]   -> Found value: AGEE ST/INDUSTRIAL DR
[2026-03-22 16:24:42] [INFO]   -> Set field 'incidentLocationCross' = "AGEE ST\/INDUSTRIAL DR"
[2026-03-22 16:24:42] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 16:24:42] [INFO]   -> Found value: MFR
[2026-03-22 16:24:42] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-03-22 16:24:42] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 16:24:42] [INFO]   -> Found value: 2026-03-22 11:24:32
[2026-03-22 16:24:42] [INFO]   -> Set field 'timedispatch' = "2026-03-22 11:24:32"
[2026-03-22 16:24:42] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 16:24:42] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:42] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 16:24:42] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:42] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 16:24:42] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:42] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 16:24:42] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:42] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 16:24:42] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 16:24:42] [INFO]   -> Found value: 20260030943
[2026-03-22 16:24:42] [INFO]   -> Set field 'policeReportNumber' = "20260030943"
[2026-03-22 16:24:42] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 16:24:42] [INFO]   -> Found value: [EMS] INTENSE PAIN  [03/22/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03/22/26 11:23:45 KHILL] Event...
[2026-03-22 16:24:42] [INFO]   -> Set field 'dispatchNotes' = "[EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:24:42] [INFO]   -> Set field 'cADLog' = "[EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:24:42] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 16:24:42] [INFO]   -> Found value: MONTEREY
[2026-03-22 16:24:42] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 16:24:42] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 16:24:42] [INFO]   -> Found value: STRATTON
[2026-03-22 16:24:42] [INFO]   -> Set field 'streetName' = "STRATTON"
[2026-03-22 16:24:42] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 16:24:42] [INFO]   -> Found value: AVE
[2026-03-22 16:24:42] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 16:24:42] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 16:24:42] [INFO]   -> Found value: 509 E STRATTON AVE
[2026-03-22 16:24:42] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "509 E STRATTON AVE"
[2026-03-22 16:24:42] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-22 16:24:42] [INFO] Concatenating street name and type
[2026-03-22 16:24:42] [INFO]   -> Combined street name: STRATTON AVE
[2026-03-22 16:24:42] [INFO] Built locationCoordinates from lat/lng: 36.14006,-85.26762
[2026-03-22 16:24:42] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS","incidentInternalId":"2026000104","dispatchRunNumber":"2026000104","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":509,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"MONTEREY SHELL","nERISIncidentLatitude":36.14005999999999829697117093019187450408935546875,"nERISIncidentLongitude":-85.267619999999993751771398819983005523681640625,"alarm":"2026-03-22 11:23:39","dispatched":"2026-03-22 11:24:32","incidentLocationCross":"AGEE ST\/INDUSTRIAL DR","cADVehicleID":"MFR","timedispatch":"2026-03-22 11:24:32","policeReportNumber":"20260030943","dispatchNotes":"[EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","cADLog":"[EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","incidentLocationCity":"MONTEREY","streetName":"STRATTON AVE","incidentAddressTextVersionStreet":"509 E STRATTON AVE","locationCoordinates":"36.14006,-85.26762"}
[2026-03-22 16:24:42] [INFO] Number of extracted fields: 22
[2026-03-22 16:24:42] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS'
[2026-03-22 16:24:42] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS', Parsed IDs = ["MFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 16:24:42] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS"]
[2026-03-22 16:24:42] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 16:24:42] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 16:24:42] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-03-22 16:24:42] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 16:24:42] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 16:24:42] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 16:24:42] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 16:24:42] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 16:24:42] [INFO] Found existing IncidentTypeMapping with ID: 697ea33628eb4de15
[2026-03-22 16:24:43] [INFO] Found existing Dispatch with cADNumber '2026000104', ID: 69c017c74d0c4631a - will update instead of create
[2026-03-22 16:24:43] [INFO] Updated existing Dispatches record with ID: 69c017c74d0c4631a
[2026-03-22 16:24:43] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030943_20260322_162438_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260030943_20260322_162438_1.XML
[2026-03-22 16:24:43] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030943_20260322_162438_1.XML
[2026-03-22 16:24:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162452.XML
[2026-03-22 16:24:52] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162452.XML for user: 68f1466aed072ad4a
[2026-03-22 16:24:52] [INFO] File size: 5697 bytes
[2026-03-22 16:24:53] [INFO] Created FTPFiles record with ID: 69c017d5d8ba25691
[2026-03-22 16:24:53] [INFO] About to extract fields from XML. File size: 5697 bytes
[2026-03-22 16:24:53] [INFO] Number of mappings: 28
[2026-03-22 16:24:53] [INFO] Starting XML parsing. Content length: 5697
[2026-03-22 16:24:53] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 16:24:53] [INFO] Processing 28 field mappings
[2026-03-22 16:24:53] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 16:24:53] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 16:24:53] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 16:24:53] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 16:24:53] [INFO]   -> Found value: PCFD
EMS
MFD
[2026-03-22 16:24:53] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD"
[2026-03-22 16:24:53] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 16:24:53] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 16:24:53] [INFO]   -> Found value: 2026000773
[2026-03-22 16:24:53] [INFO]   -> Set field 'incidentInternalId' = "2026000773"
[2026-03-22 16:24:53] [INFO]   -> Set field 'dispatchRunNumber' = "2026000773"
[2026-03-22 16:24:53] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 16:24:53] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 16:24:53] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 16:24:53] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 16:24:53] [INFO]   -> Found value: 509
[2026-03-22 16:24:53] [INFO]   -> Set field 'incidentLocationStreetNumber' = 509
[2026-03-22 16:24:53] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 16:24:53] [INFO]   -> Found value: TN
[2026-03-22 16:24:53] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 16:24:53] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 16:24:53] [INFO]   -> Found value: 38574
[2026-03-22 16:24:53] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 16:24:53] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 16:24:53] [INFO]   -> Found value: MONTEREY SHELL
[2026-03-22 16:24:53] [INFO]   -> Set field 'businessName' = "MONTEREY SHELL"
[2026-03-22 16:24:53] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 16:24:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:53] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 16:24:53] [INFO]   -> Found value: 36.14006
[2026-03-22 16:24:53] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14005999999999829697117093019187450408935546875
[2026-03-22 16:24:53] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 16:24:53] [INFO]   -> Found value: -85.26762
[2026-03-22 16:24:53] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.267619999999993751771398819983005523681640625
[2026-03-22 16:24:53] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 16:24:53] [INFO]   -> Found value: 2026-03-22 11:24:48
[2026-03-22 16:24:53] [INFO]   -> Set field 'alarm' = "2026-03-22 11:24:48"
[2026-03-22 16:24:53] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 16:24:53] [INFO]   -> Found value: 2026-03-22 11:24:48
[2026-03-22 16:24:53] [INFO]   -> Set field 'dispatched' = "2026-03-22 11:24:48"
[2026-03-22 16:24:53] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 16:24:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:53] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 16:24:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:53] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 16:24:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:53] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 16:24:53] [INFO]   -> Found value: AGEE ST/INDUSTRIAL DR
[2026-03-22 16:24:53] [INFO]   -> Set field 'incidentLocationCross' = "AGEE ST\/INDUSTRIAL DR"
[2026-03-22 16:24:53] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 16:24:53] [INFO]   -> Found value: PCFR
[2026-03-22 16:24:53] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 16:24:53] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 16:24:53] [INFO]   -> Found value: 2026-03-22 11:24:48
[2026-03-22 16:24:53] [INFO]   -> Set field 'timedispatch' = "2026-03-22 11:24:48"
[2026-03-22 16:24:53] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 16:24:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:53] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 16:24:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:53] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 16:24:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:53] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 16:24:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:24:53] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 16:24:53] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 16:24:53] [INFO]   -> Found value: 20260030944
[2026-03-22 16:24:53] [INFO]   -> Set field 'policeReportNumber' = "20260030944"
[2026-03-22 16:24:53] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 16:24:53] [INFO]   -> Found value: Event spawned from FAINTING / SYNCOPE.  [03/22/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING...
[2026-03-22 16:24:53] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:24:53] [INFO]   -> Set field 'cADLog' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:24:53] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 16:24:53] [INFO]   -> Found value: MONTEREY
[2026-03-22 16:24:53] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 16:24:53] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 16:24:53] [INFO]   -> Found value: STRATTON
[2026-03-22 16:24:53] [INFO]   -> Set field 'streetName' = "STRATTON"
[2026-03-22 16:24:53] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 16:24:53] [INFO]   -> Found value: AVE
[2026-03-22 16:24:53] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 16:24:53] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 16:24:53] [INFO]   -> Found value: 509 E STRATTON AVE
[2026-03-22 16:24:53] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "509 E STRATTON AVE"
[2026-03-22 16:24:53] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-22 16:24:53] [INFO] Concatenating street name and type
[2026-03-22 16:24:53] [INFO]   -> Combined street name: STRATTON AVE
[2026-03-22 16:24:53] [INFO] Built locationCoordinates from lat/lng: 36.14006,-85.26762
[2026-03-22 16:24:53] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD","incidentInternalId":"2026000773","dispatchRunNumber":"2026000773","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":509,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"MONTEREY SHELL","nERISIncidentLatitude":36.14005999999999829697117093019187450408935546875,"nERISIncidentLongitude":-85.267619999999993751771398819983005523681640625,"alarm":"2026-03-22 11:24:48","dispatched":"2026-03-22 11:24:48","incidentLocationCross":"AGEE ST\/INDUSTRIAL DR","cADVehicleID":"PCFR","timedispatch":"2026-03-22 11:24:48","policeReportNumber":"20260030944","dispatchNotes":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","cADLog":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","incidentLocationCity":"MONTEREY","streetName":"STRATTON AVE","incidentAddressTextVersionStreet":"509 E STRATTON AVE","locationCoordinates":"36.14006,-85.26762"}
[2026-03-22 16:24:53] [INFO] Number of extracted fields: 22
[2026-03-22 16:24:53] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD'
[2026-03-22 16:24:53] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD', Parsed IDs = ["PCFD","EMS","MFD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-22 16:24:53] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD"]
[2026-03-22 16:24:53] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 16:24:54] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 16:24:54] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD"]
[2026-03-22 16:24:54] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 16:24:54] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 16:24:54] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 16:24:54] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 16:24:54] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 16:24:54] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-22 16:25:04] [INFO] Created new Dispatches record with ID: 69c017d71b34bea14
[2026-03-22 16:25:04] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162452.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030944_20260322_162452.XML
[2026-03-22 16:25:04] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162452.XML
[2026-03-22 16:25:04] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030943_20260322_162503.XML
[2026-03-22 16:25:04] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030943_20260322_162503.XML for user: 68f1466aed072ad4a
[2026-03-22 16:25:04] [INFO] File size: 6595 bytes
[2026-03-22 16:25:04] [INFO] Created FTPFiles record with ID: 69c017e0ae699ab7f
[2026-03-22 16:25:04] [INFO] About to extract fields from XML. File size: 6595 bytes
[2026-03-22 16:25:04] [INFO] Number of mappings: 28
[2026-03-22 16:25:04] [INFO] Starting XML parsing. Content length: 6595
[2026-03-22 16:25:04] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 16:25:04] [INFO] Processing 28 field mappings
[2026-03-22 16:25:04] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 16:25:04] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 16:25:04] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 16:25:04] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 16:25:04] [INFO]   -> Found value: MFD
EMS
PCFD
[2026-03-22 16:25:04] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nPCFD"
[2026-03-22 16:25:04] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 16:25:04] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 16:25:04] [INFO]   -> Found value: 2026000104
[2026-03-22 16:25:04] [INFO]   -> Set field 'incidentInternalId' = "2026000104"
[2026-03-22 16:25:04] [INFO]   -> Set field 'dispatchRunNumber' = "2026000104"
[2026-03-22 16:25:04] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 16:25:04] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 16:25:04] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 16:25:04] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 16:25:04] [INFO]   -> Found value: 509
[2026-03-22 16:25:04] [INFO]   -> Set field 'incidentLocationStreetNumber' = 509
[2026-03-22 16:25:04] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 16:25:04] [INFO]   -> Found value: TN
[2026-03-22 16:25:04] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 16:25:04] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 16:25:04] [INFO]   -> Found value: 38574
[2026-03-22 16:25:04] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 16:25:04] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 16:25:04] [INFO]   -> Found value: MONTEREY SHELL
[2026-03-22 16:25:04] [INFO]   -> Set field 'businessName' = "MONTEREY SHELL"
[2026-03-22 16:25:04] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 16:25:04] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:04] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 16:25:04] [INFO]   -> Found value: 36.14006
[2026-03-22 16:25:04] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14005999999999829697117093019187450408935546875
[2026-03-22 16:25:04] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 16:25:04] [INFO]   -> Found value: -85.26762
[2026-03-22 16:25:04] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.267619999999993751771398819983005523681640625
[2026-03-22 16:25:04] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 16:25:04] [INFO]   -> Found value: 2026-03-22 11:23:39
[2026-03-22 16:25:04] [INFO]   -> Set field 'alarm' = "2026-03-22 11:23:39"
[2026-03-22 16:25:04] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 16:25:04] [INFO]   -> Found value: 2026-03-22 11:24:32
[2026-03-22 16:25:04] [INFO]   -> Set field 'dispatched' = "2026-03-22 11:24:32"
[2026-03-22 16:25:04] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 16:25:04] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:04] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 16:25:04] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:04] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 16:25:04] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:04] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 16:25:04] [INFO]   -> Found value: AGEE ST/INDUSTRIAL DR
[2026-03-22 16:25:04] [INFO]   -> Set field 'incidentLocationCross' = "AGEE ST\/INDUSTRIAL DR"
[2026-03-22 16:25:04] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 16:25:04] [INFO]   -> Found value: MFR
[2026-03-22 16:25:04] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-03-22 16:25:04] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 16:25:04] [INFO]   -> Found value: 2026-03-22 11:24:32
[2026-03-22 16:25:04] [INFO]   -> Set field 'timedispatch' = "2026-03-22 11:24:32"
[2026-03-22 16:25:04] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 16:25:04] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:04] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 16:25:04] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:04] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 16:25:04] [INFO]   -> Found value: 2026-03-22 11:24:59
[2026-03-22 16:25:04] [INFO]   -> Set field 'timeunitclear' = "2026-03-22 11:24:59"
[2026-03-22 16:25:04] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 16:25:04] [INFO]   -> Found value: 2026-03-22 11:24:59
[2026-03-22 16:25:04] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-22 11:24:59"
[2026-03-22 16:25:04] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 16:25:04] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 16:25:04] [INFO]   -> Found value: 20260030943
[2026-03-22 16:25:04] [INFO]   -> Set field 'policeReportNumber' = "20260030943"
[2026-03-22 16:25:04] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 16:25:04] [INFO]   -> Found value: [EMS] PAIN STARTED THIS MORNING  [03/22/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BIS...
[2026-03-22 16:25:04] [INFO]   -> Set field 'dispatchNotes' = "[EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:25:04] [INFO]   -> Set field 'cADLog' = "[EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:25:04] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 16:25:04] [INFO]   -> Found value: MONTEREY
[2026-03-22 16:25:04] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 16:25:04] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 16:25:04] [INFO]   -> Found value: STRATTON
[2026-03-22 16:25:04] [INFO]   -> Set field 'streetName' = "STRATTON"
[2026-03-22 16:25:04] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 16:25:04] [INFO]   -> Found value: AVE
[2026-03-22 16:25:04] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 16:25:04] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 16:25:04] [INFO]   -> Found value: 509 E STRATTON AVE
[2026-03-22 16:25:04] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "509 E STRATTON AVE"
[2026-03-22 16:25:04] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 16:25:04] [INFO] Concatenating street name and type
[2026-03-22 16:25:04] [INFO]   -> Combined street name: STRATTON AVE
[2026-03-22 16:25:04] [INFO] Built locationCoordinates from lat/lng: 36.14006,-85.26762
[2026-03-22 16:25:04] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nPCFD","incidentInternalId":"2026000104","dispatchRunNumber":"2026000104","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":509,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"MONTEREY SHELL","nERISIncidentLatitude":36.14005999999999829697117093019187450408935546875,"nERISIncidentLongitude":-85.267619999999993751771398819983005523681640625,"alarm":"2026-03-22 11:23:39","dispatched":"2026-03-22 11:24:32","incidentLocationCross":"AGEE ST\/INDUSTRIAL DR","cADVehicleID":"MFR","timedispatch":"2026-03-22 11:24:32","timeunitclear":"2026-03-22 11:24:59","timecanceledenroute":"2026-03-22 11:24:59","policeReportNumber":"20260030943","dispatchNotes":"[EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","cADLog":"[EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","incidentLocationCity":"MONTEREY","streetName":"STRATTON AVE","incidentAddressTextVersionStreet":"509 E STRATTON AVE","locationCoordinates":"36.14006,-85.26762"}
[2026-03-22 16:25:04] [INFO] Number of extracted fields: 24
[2026-03-22 16:25:04] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
PCFD'
[2026-03-22 16:25:04] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
PCFD', Parsed IDs = ["MFD","EMS","PCFD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-22 16:25:04] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","PCFD"]
[2026-03-22 16:25:04] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 16:25:04] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 16:25:04] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCFD"]
[2026-03-22 16:25:05] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 16:25:05] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 16:25:05] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 16:25:05] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 16:25:05] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 16:25:05] [INFO] Found existing IncidentTypeMapping with ID: 697ea33628eb4de15
[2026-03-22 16:25:06] [INFO] Found existing Dispatch with cADNumber '2026000104', ID: 69c017c74d0c4631a - will update instead of create
[2026-03-22 16:25:06] [INFO] Updated existing Dispatches record with ID: 69c017c74d0c4631a
[2026-03-22 16:25:06] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030943_20260322_162503.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260030943_20260322_162503.XML
[2026-03-22 16:25:06] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030943_20260322_162503.XML
[2026-03-22 16:25:11] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030943_20260322_162511.XML
[2026-03-22 16:25:11] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030943_20260322_162511.XML for user: 68f1466aed072ad4a
[2026-03-22 16:25:11] [INFO] File size: 6662 bytes
[2026-03-22 16:25:11] [INFO] Created FTPFiles record with ID: 69c017e7cf8af67d0
[2026-03-22 16:25:11] [INFO] About to extract fields from XML. File size: 6662 bytes
[2026-03-22 16:25:11] [INFO] Number of mappings: 28
[2026-03-22 16:25:11] [INFO] Starting XML parsing. Content length: 6662
[2026-03-22 16:25:11] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 16:25:11] [INFO] Processing 28 field mappings
[2026-03-22 16:25:11] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 16:25:11] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 16:25:11] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 16:25:11] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 16:25:11] [INFO]   -> Found value: MFD
EMS
PCFD
[2026-03-22 16:25:11] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nPCFD"
[2026-03-22 16:25:11] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 16:25:11] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 16:25:11] [INFO]   -> Found value: 2026000104
[2026-03-22 16:25:11] [INFO]   -> Set field 'incidentInternalId' = "2026000104"
[2026-03-22 16:25:11] [INFO]   -> Set field 'dispatchRunNumber' = "2026000104"
[2026-03-22 16:25:11] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 16:25:11] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 16:25:11] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 16:25:11] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 16:25:11] [INFO]   -> Found value: 509
[2026-03-22 16:25:11] [INFO]   -> Set field 'incidentLocationStreetNumber' = 509
[2026-03-22 16:25:11] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 16:25:11] [INFO]   -> Found value: TN
[2026-03-22 16:25:11] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 16:25:11] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 16:25:11] [INFO]   -> Found value: 38574
[2026-03-22 16:25:11] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 16:25:11] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 16:25:11] [INFO]   -> Found value: MONTEREY SHELL
[2026-03-22 16:25:11] [INFO]   -> Set field 'businessName' = "MONTEREY SHELL"
[2026-03-22 16:25:11] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 16:25:11] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:11] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 16:25:11] [INFO]   -> Found value: 36.14006
[2026-03-22 16:25:11] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14005999999999829697117093019187450408935546875
[2026-03-22 16:25:11] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 16:25:11] [INFO]   -> Found value: -85.26762
[2026-03-22 16:25:11] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.267619999999993751771398819983005523681640625
[2026-03-22 16:25:11] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 16:25:11] [INFO]   -> Found value: 2026-03-22 11:23:39
[2026-03-22 16:25:11] [INFO]   -> Set field 'alarm' = "2026-03-22 11:23:39"
[2026-03-22 16:25:11] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 16:25:11] [INFO]   -> Found value: 2026-03-22 11:24:32
[2026-03-22 16:25:11] [INFO]   -> Set field 'dispatched' = "2026-03-22 11:24:32"
[2026-03-22 16:25:11] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 16:25:11] [INFO]   -> Found value: 2026-03-22 11:25:02
[2026-03-22 16:25:11] [INFO]   -> Set field 'enroute' = "2026-03-22 11:25:02"
[2026-03-22 16:25:11] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 16:25:11] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:11] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 16:25:11] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:11] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 16:25:11] [INFO]   -> Found value: AGEE ST/INDUSTRIAL DR
[2026-03-22 16:25:11] [INFO]   -> Set field 'incidentLocationCross' = "AGEE ST\/INDUSTRIAL DR"
[2026-03-22 16:25:11] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 16:25:11] [INFO]   -> Found value: MF111
[2026-03-22 16:25:11] [INFO]   -> Set field 'cADVehicleID' = "MF111"
[2026-03-22 16:25:11] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 16:25:11] [INFO]   -> Found value: 2026-03-22 11:24:59
[2026-03-22 16:25:11] [INFO]   -> Set field 'timedispatch' = "2026-03-22 11:24:59"
[2026-03-22 16:25:11] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 16:25:11] [INFO]   -> Found value: 2026-03-22 11:25:02
[2026-03-22 16:25:11] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 11:25:02"
[2026-03-22 16:25:11] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 16:25:11] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:11] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 16:25:11] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:11] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 16:25:11] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:11] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 16:25:11] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 16:25:11] [INFO]   -> Found value: 20260030943
[2026-03-22 16:25:11] [INFO]   -> Set field 'policeReportNumber' = "20260030943"
[2026-03-22 16:25:11] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 16:25:11] [INFO]   -> Found value: [EMS] PAIN STARTED THIS MORNING  [03/22/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BIS...
[2026-03-22 16:25:11] [INFO]   -> Set field 'dispatchNotes' = "[EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:25:11] [INFO]   -> Set field 'cADLog' = "[EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:25:11] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 16:25:11] [INFO]   -> Found value: MONTEREY
[2026-03-22 16:25:11] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 16:25:11] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 16:25:11] [INFO]   -> Found value: STRATTON
[2026-03-22 16:25:11] [INFO]   -> Set field 'streetName' = "STRATTON"
[2026-03-22 16:25:11] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 16:25:11] [INFO]   -> Found value: AVE
[2026-03-22 16:25:11] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 16:25:11] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 16:25:11] [INFO]   -> Found value: 509 E STRATTON AVE
[2026-03-22 16:25:11] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "509 E STRATTON AVE"
[2026-03-22 16:25:11] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 16:25:11] [INFO] Concatenating street name and type
[2026-03-22 16:25:11] [INFO]   -> Combined street name: STRATTON AVE
[2026-03-22 16:25:11] [INFO] Built locationCoordinates from lat/lng: 36.14006,-85.26762
[2026-03-22 16:25:11] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nPCFD","incidentInternalId":"2026000104","dispatchRunNumber":"2026000104","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":509,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"MONTEREY SHELL","nERISIncidentLatitude":36.14005999999999829697117093019187450408935546875,"nERISIncidentLongitude":-85.267619999999993751771398819983005523681640625,"alarm":"2026-03-22 11:23:39","dispatched":"2026-03-22 11:24:32","enroute":"2026-03-22 11:25:02","incidentLocationCross":"AGEE ST\/INDUSTRIAL DR","cADVehicleID":"MF111","timedispatch":"2026-03-22 11:24:59","timeenroutetoscene":"2026-03-22 11:25:02","policeReportNumber":"20260030943","dispatchNotes":"[EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","cADLog":"[EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","incidentLocationCity":"MONTEREY","streetName":"STRATTON AVE","incidentAddressTextVersionStreet":"509 E STRATTON AVE","locationCoordinates":"36.14006,-85.26762"}
[2026-03-22 16:25:11] [INFO] Number of extracted fields: 24
[2026-03-22 16:25:11] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
PCFD'
[2026-03-22 16:25:11] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
PCFD', Parsed IDs = ["MFD","EMS","PCFD"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-22 16:25:11] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","PCFD"]
[2026-03-22 16:25:11] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 16:25:12] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 16:25:12] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCFD"]
[2026-03-22 16:25:12] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 16:25:12] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 16:25:12] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 16:25:12] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 16:25:12] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 16:25:12] [INFO] Found existing IncidentTypeMapping with ID: 697ea33628eb4de15
[2026-03-22 16:25:12] [INFO] Found existing Dispatch with cADNumber '2026000104', ID: 69c017c74d0c4631a - will update instead of create
[2026-03-22 16:25:14] [INFO] Updated existing Dispatches record with ID: 69c017c74d0c4631a
[2026-03-22 16:25:14] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030943_20260322_162511.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260030943_20260322_162511.XML
[2026-03-22 16:25:14] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260030943_20260322_162511.XML
[2026-03-22 16:25:31] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162531.XML
[2026-03-22 16:25:31] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162531.XML for user: 68f1466aed072ad4a
[2026-03-22 16:25:31] [INFO] File size: 6891 bytes
[2026-03-22 16:25:31] [INFO] Created FTPFiles record with ID: 69c017fb57528338d
[2026-03-22 16:25:31] [INFO] About to extract fields from XML. File size: 6891 bytes
[2026-03-22 16:25:31] [INFO] Number of mappings: 28
[2026-03-22 16:25:31] [INFO] Starting XML parsing. Content length: 6891
[2026-03-22 16:25:31] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 16:25:31] [INFO] Processing 28 field mappings
[2026-03-22 16:25:31] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 16:25:31] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 16:25:31] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 16:25:31] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 16:25:31] [INFO]   -> Found value: PCFD
EMS
MFD
RESC
[2026-03-22 16:25:31] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD\nRESC"
[2026-03-22 16:25:31] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 16:25:31] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 16:25:31] [INFO]   -> Found value: 2026000773
[2026-03-22 16:25:31] [INFO]   -> Set field 'incidentInternalId' = "2026000773"
[2026-03-22 16:25:31] [INFO]   -> Set field 'dispatchRunNumber' = "2026000773"
[2026-03-22 16:25:31] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 16:25:31] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 16:25:31] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 16:25:31] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 16:25:31] [INFO]   -> Found value: 509
[2026-03-22 16:25:31] [INFO]   -> Set field 'incidentLocationStreetNumber' = 509
[2026-03-22 16:25:31] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 16:25:31] [INFO]   -> Found value: TN
[2026-03-22 16:25:31] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 16:25:31] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 16:25:31] [INFO]   -> Found value: 38574
[2026-03-22 16:25:31] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 16:25:31] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 16:25:31] [INFO]   -> Found value: MONTEREY SHELL
[2026-03-22 16:25:31] [INFO]   -> Set field 'businessName' = "MONTEREY SHELL"
[2026-03-22 16:25:31] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 16:25:31] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:31] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 16:25:31] [INFO]   -> Found value: 36.14006
[2026-03-22 16:25:31] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14005999999999829697117093019187450408935546875
[2026-03-22 16:25:31] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 16:25:31] [INFO]   -> Found value: -85.26762
[2026-03-22 16:25:31] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.267619999999993751771398819983005523681640625
[2026-03-22 16:25:31] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 16:25:31] [INFO]   -> Found value: 2026-03-22 11:24:48
[2026-03-22 16:25:31] [INFO]   -> Set field 'alarm' = "2026-03-22 11:24:48"
[2026-03-22 16:25:31] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 16:25:31] [INFO]   -> Found value: 2026-03-22 11:24:48
[2026-03-22 16:25:31] [INFO]   -> Set field 'dispatched' = "2026-03-22 11:24:48"
[2026-03-22 16:25:31] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 16:25:31] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:31] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 16:25:31] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:31] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 16:25:31] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:31] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 16:25:31] [INFO]   -> Found value: AGEE ST/INDUSTRIAL DR
[2026-03-22 16:25:31] [INFO]   -> Set field 'incidentLocationCross' = "AGEE ST\/INDUSTRIAL DR"
[2026-03-22 16:25:31] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 16:25:31] [INFO]   -> Found value: PCFR
[2026-03-22 16:25:31] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 16:25:31] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 16:25:31] [INFO]   -> Found value: 2026-03-22 11:24:48
[2026-03-22 16:25:31] [INFO]   -> Set field 'timedispatch' = "2026-03-22 11:24:48"
[2026-03-22 16:25:31] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 16:25:31] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:31] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 16:25:31] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:31] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 16:25:31] [INFO]   -> Found value: 2026-03-22 11:25:25
[2026-03-22 16:25:31] [INFO]   -> Set field 'timeunitclear' = "2026-03-22 11:25:25"
[2026-03-22 16:25:31] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 16:25:31] [INFO]   -> Found value: 2026-03-22 11:25:25
[2026-03-22 16:25:31] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-22 11:25:25"
[2026-03-22 16:25:31] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 16:25:31] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 16:25:31] [INFO]   -> Found value: 20260030944
[2026-03-22 16:25:31] [INFO]   -> Set field 'policeReportNumber' = "20260030944"
[2026-03-22 16:25:31] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 16:25:31] [INFO]   -> Found value: Event spawned from FAINTING / SYNCOPE.  [03/22/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING...
[2026-03-22 16:25:31] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:25:31] [INFO]   -> Set field 'cADLog' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:25:31] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 16:25:31] [INFO]   -> Found value: MONTEREY
[2026-03-22 16:25:31] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 16:25:31] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 16:25:31] [INFO]   -> Found value: STRATTON
[2026-03-22 16:25:31] [INFO]   -> Set field 'streetName' = "STRATTON"
[2026-03-22 16:25:31] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 16:25:31] [INFO]   -> Found value: AVE
[2026-03-22 16:25:31] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 16:25:31] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 16:25:31] [INFO]   -> Found value: 509 E STRATTON AVE
[2026-03-22 16:25:31] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "509 E STRATTON AVE"
[2026-03-22 16:25:31] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 16:25:31] [INFO] Concatenating street name and type
[2026-03-22 16:25:31] [INFO]   -> Combined street name: STRATTON AVE
[2026-03-22 16:25:31] [INFO] Built locationCoordinates from lat/lng: 36.14006,-85.26762
[2026-03-22 16:25:31] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD\nRESC","incidentInternalId":"2026000773","dispatchRunNumber":"2026000773","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":509,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"MONTEREY SHELL","nERISIncidentLatitude":36.14005999999999829697117093019187450408935546875,"nERISIncidentLongitude":-85.267619999999993751771398819983005523681640625,"alarm":"2026-03-22 11:24:48","dispatched":"2026-03-22 11:24:48","incidentLocationCross":"AGEE ST\/INDUSTRIAL DR","cADVehicleID":"PCFR","timedispatch":"2026-03-22 11:24:48","timeunitclear":"2026-03-22 11:25:25","timecanceledenroute":"2026-03-22 11:25:25","policeReportNumber":"20260030944","dispatchNotes":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","cADLog":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","incidentLocationCity":"MONTEREY","streetName":"STRATTON AVE","incidentAddressTextVersionStreet":"509 E STRATTON AVE","locationCoordinates":"36.14006,-85.26762"}
[2026-03-22 16:25:31] [INFO] Number of extracted fields: 24
[2026-03-22 16:25:31] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD
RESC'
[2026-03-22 16:25:31] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD
RESC', Parsed IDs = ["PCFD","EMS","MFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 16:25:31] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD","RESC"]
[2026-03-22 16:25:31] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 16:25:31] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 16:25:31] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD","RESC"]
[2026-03-22 16:25:31] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 16:25:31] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 16:25:31] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 16:25:31] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 16:25:31] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 16:25:31] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-22 16:25:32] [INFO] Found existing Dispatch with cADNumber '2026000773', ID: 69c017d71b34bea14 - will update instead of create
[2026-03-22 16:25:32] [INFO] Updated existing Dispatches record with ID: 69c017d71b34bea14
[2026-03-22 16:25:32] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162531.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030944_20260322_162531.XML
[2026-03-22 16:25:32] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162531.XML
[2026-03-22 16:25:37] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162537.XML
[2026-03-22 16:25:37] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162537.XML for user: 68f1466aed072ad4a
[2026-03-22 16:25:37] [INFO] File size: 6958 bytes
[2026-03-22 16:25:38] [INFO] Created FTPFiles record with ID: 69c018020fb8915cd
[2026-03-22 16:25:38] [INFO] About to extract fields from XML. File size: 6958 bytes
[2026-03-22 16:25:38] [INFO] Number of mappings: 28
[2026-03-22 16:25:38] [INFO] Starting XML parsing. Content length: 6958
[2026-03-22 16:25:38] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 16:25:38] [INFO] Processing 28 field mappings
[2026-03-22 16:25:38] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 16:25:38] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 16:25:38] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 16:25:38] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 16:25:38] [INFO]   -> Found value: PCFD
EMS
MFD
RESC
[2026-03-22 16:25:38] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD\nRESC"
[2026-03-22 16:25:38] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 16:25:38] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 16:25:38] [INFO]   -> Found value: 2026000773
[2026-03-22 16:25:38] [INFO]   -> Set field 'incidentInternalId' = "2026000773"
[2026-03-22 16:25:38] [INFO]   -> Set field 'dispatchRunNumber' = "2026000773"
[2026-03-22 16:25:38] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 16:25:38] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 16:25:38] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 16:25:38] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 16:25:38] [INFO]   -> Found value: 509
[2026-03-22 16:25:38] [INFO]   -> Set field 'incidentLocationStreetNumber' = 509
[2026-03-22 16:25:38] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 16:25:38] [INFO]   -> Found value: TN
[2026-03-22 16:25:38] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 16:25:38] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 16:25:38] [INFO]   -> Found value: 38574
[2026-03-22 16:25:38] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 16:25:38] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 16:25:38] [INFO]   -> Found value: MONTEREY SHELL
[2026-03-22 16:25:38] [INFO]   -> Set field 'businessName' = "MONTEREY SHELL"
[2026-03-22 16:25:38] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 16:25:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:38] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 16:25:38] [INFO]   -> Found value: 36.14006
[2026-03-22 16:25:38] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14005999999999829697117093019187450408935546875
[2026-03-22 16:25:38] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 16:25:38] [INFO]   -> Found value: -85.26762
[2026-03-22 16:25:38] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.267619999999993751771398819983005523681640625
[2026-03-22 16:25:38] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 16:25:38] [INFO]   -> Found value: 2026-03-22 11:24:48
[2026-03-22 16:25:38] [INFO]   -> Set field 'alarm' = "2026-03-22 11:24:48"
[2026-03-22 16:25:38] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 16:25:38] [INFO]   -> Found value: 2026-03-22 11:24:48
[2026-03-22 16:25:38] [INFO]   -> Set field 'dispatched' = "2026-03-22 11:24:48"
[2026-03-22 16:25:38] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 16:25:38] [INFO]   -> Found value: 2026-03-22 11:25:28
[2026-03-22 16:25:38] [INFO]   -> Set field 'enroute' = "2026-03-22 11:25:28"
[2026-03-22 16:25:38] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 16:25:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:38] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 16:25:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:38] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 16:25:38] [INFO]   -> Found value: AGEE ST/INDUSTRIAL DR
[2026-03-22 16:25:38] [INFO]   -> Set field 'incidentLocationCross' = "AGEE ST\/INDUSTRIAL DR"
[2026-03-22 16:25:38] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 16:25:38] [INFO]   -> Found value: EN21
[2026-03-22 16:25:38] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-22 16:25:38] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 16:25:38] [INFO]   -> Found value: 2026-03-22 11:25:25
[2026-03-22 16:25:38] [INFO]   -> Set field 'timedispatch' = "2026-03-22 11:25:25"
[2026-03-22 16:25:38] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 16:25:38] [INFO]   -> Found value: 2026-03-22 11:25:28
[2026-03-22 16:25:38] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 11:25:28"
[2026-03-22 16:25:38] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 16:25:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:38] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 16:25:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:38] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 16:25:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:38] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 16:25:38] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 16:25:38] [INFO]   -> Found value: 20260030944
[2026-03-22 16:25:38] [INFO]   -> Set field 'policeReportNumber' = "20260030944"
[2026-03-22 16:25:38] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 16:25:38] [INFO]   -> Found value: Event spawned from FAINTING / SYNCOPE.  [03/22/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING...
[2026-03-22 16:25:38] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:25:38] [INFO]   -> Set field 'cADLog' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:25:38] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 16:25:38] [INFO]   -> Found value: MONTEREY
[2026-03-22 16:25:38] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 16:25:38] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 16:25:38] [INFO]   -> Found value: STRATTON
[2026-03-22 16:25:38] [INFO]   -> Set field 'streetName' = "STRATTON"
[2026-03-22 16:25:38] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 16:25:38] [INFO]   -> Found value: AVE
[2026-03-22 16:25:38] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 16:25:38] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 16:25:38] [INFO]   -> Found value: 509 E STRATTON AVE
[2026-03-22 16:25:38] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "509 E STRATTON AVE"
[2026-03-22 16:25:38] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 16:25:38] [INFO] Concatenating street name and type
[2026-03-22 16:25:38] [INFO]   -> Combined street name: STRATTON AVE
[2026-03-22 16:25:38] [INFO] Built locationCoordinates from lat/lng: 36.14006,-85.26762
[2026-03-22 16:25:38] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD\nRESC","incidentInternalId":"2026000773","dispatchRunNumber":"2026000773","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":509,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"MONTEREY SHELL","nERISIncidentLatitude":36.14005999999999829697117093019187450408935546875,"nERISIncidentLongitude":-85.267619999999993751771398819983005523681640625,"alarm":"2026-03-22 11:24:48","dispatched":"2026-03-22 11:24:48","enroute":"2026-03-22 11:25:28","incidentLocationCross":"AGEE ST\/INDUSTRIAL DR","cADVehicleID":"EN21","timedispatch":"2026-03-22 11:25:25","timeenroutetoscene":"2026-03-22 11:25:28","policeReportNumber":"20260030944","dispatchNotes":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","cADLog":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","incidentLocationCity":"MONTEREY","streetName":"STRATTON AVE","incidentAddressTextVersionStreet":"509 E STRATTON AVE","locationCoordinates":"36.14006,-85.26762"}
[2026-03-22 16:25:38] [INFO] Number of extracted fields: 24
[2026-03-22 16:25:38] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD
RESC'
[2026-03-22 16:25:38] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD
RESC', Parsed IDs = ["PCFD","EMS","MFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 16:25:38] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD","RESC"]
[2026-03-22 16:25:38] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 16:25:38] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 16:25:38] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD","RESC"]
[2026-03-22 16:25:38] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 16:25:38] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 16:25:38] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 16:25:38] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 16:25:38] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 16:25:38] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-22 16:25:38] [INFO] Found existing Dispatch with cADNumber '2026000773', ID: 69c017d71b34bea14 - will update instead of create
[2026-03-22 16:25:39] [INFO] Updated existing Dispatches record with ID: 69c017d71b34bea14
[2026-03-22 16:25:39] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162537.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030944_20260322_162537.XML
[2026-03-22 16:25:39] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162537.XML
[2026-03-22 16:25:39] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162537_1.XML
[2026-03-22 16:25:39] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162537_1.XML for user: 68f1466aed072ad4a
[2026-03-22 16:25:39] [INFO] File size: 6958 bytes
[2026-03-22 16:25:39] [INFO] Created FTPFiles record with ID: 69c018035374de860
[2026-03-22 16:25:39] [INFO] About to extract fields from XML. File size: 6958 bytes
[2026-03-22 16:25:39] [INFO] Number of mappings: 28
[2026-03-22 16:25:39] [INFO] Starting XML parsing. Content length: 6958
[2026-03-22 16:25:39] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 16:25:39] [INFO] Processing 28 field mappings
[2026-03-22 16:25:39] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 16:25:39] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 16:25:39] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 16:25:39] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 16:25:39] [INFO]   -> Found value: PCFD
EMS
MFD
RESC
[2026-03-22 16:25:39] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD\nRESC"
[2026-03-22 16:25:39] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 16:25:39] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 16:25:39] [INFO]   -> Found value: 2026000773
[2026-03-22 16:25:39] [INFO]   -> Set field 'incidentInternalId' = "2026000773"
[2026-03-22 16:25:39] [INFO]   -> Set field 'dispatchRunNumber' = "2026000773"
[2026-03-22 16:25:39] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 16:25:39] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 16:25:39] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 16:25:39] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 16:25:39] [INFO]   -> Found value: 509
[2026-03-22 16:25:39] [INFO]   -> Set field 'incidentLocationStreetNumber' = 509
[2026-03-22 16:25:39] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 16:25:39] [INFO]   -> Found value: TN
[2026-03-22 16:25:39] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 16:25:39] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 16:25:39] [INFO]   -> Found value: 38574
[2026-03-22 16:25:39] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 16:25:39] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 16:25:39] [INFO]   -> Found value: MONTEREY SHELL
[2026-03-22 16:25:39] [INFO]   -> Set field 'businessName' = "MONTEREY SHELL"
[2026-03-22 16:25:39] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 16:25:39] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:39] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 16:25:39] [INFO]   -> Found value: 36.14006
[2026-03-22 16:25:39] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14005999999999829697117093019187450408935546875
[2026-03-22 16:25:39] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 16:25:39] [INFO]   -> Found value: -85.26762
[2026-03-22 16:25:39] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.267619999999993751771398819983005523681640625
[2026-03-22 16:25:39] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 16:25:39] [INFO]   -> Found value: 2026-03-22 11:24:48
[2026-03-22 16:25:39] [INFO]   -> Set field 'alarm' = "2026-03-22 11:24:48"
[2026-03-22 16:25:39] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 16:25:39] [INFO]   -> Found value: 2026-03-22 11:24:48
[2026-03-22 16:25:39] [INFO]   -> Set field 'dispatched' = "2026-03-22 11:24:48"
[2026-03-22 16:25:39] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 16:25:39] [INFO]   -> Found value: 2026-03-22 11:25:28
[2026-03-22 16:25:39] [INFO]   -> Set field 'enroute' = "2026-03-22 11:25:28"
[2026-03-22 16:25:39] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 16:25:39] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:39] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 16:25:39] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:39] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 16:25:39] [INFO]   -> Found value: AGEE ST/INDUSTRIAL DR
[2026-03-22 16:25:39] [INFO]   -> Set field 'incidentLocationCross' = "AGEE ST\/INDUSTRIAL DR"
[2026-03-22 16:25:39] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 16:25:39] [INFO]   -> Found value: EN21
[2026-03-22 16:25:39] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-22 16:25:39] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 16:25:39] [INFO]   -> Found value: 2026-03-22 11:25:25
[2026-03-22 16:25:39] [INFO]   -> Set field 'timedispatch' = "2026-03-22 11:25:25"
[2026-03-22 16:25:39] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 16:25:39] [INFO]   -> Found value: 2026-03-22 11:25:28
[2026-03-22 16:25:39] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 11:25:28"
[2026-03-22 16:25:39] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 16:25:39] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:39] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 16:25:39] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:39] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 16:25:39] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:39] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 16:25:39] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 16:25:39] [INFO]   -> Found value: 20260030944
[2026-03-22 16:25:39] [INFO]   -> Set field 'policeReportNumber' = "20260030944"
[2026-03-22 16:25:39] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 16:25:39] [INFO]   -> Found value: Event spawned from FAINTING / SYNCOPE.  [03/22/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING...
[2026-03-22 16:25:39] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:25:39] [INFO]   -> Set field 'cADLog' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:25:39] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 16:25:39] [INFO]   -> Found value: MONTEREY
[2026-03-22 16:25:39] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 16:25:39] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 16:25:39] [INFO]   -> Found value: STRATTON
[2026-03-22 16:25:39] [INFO]   -> Set field 'streetName' = "STRATTON"
[2026-03-22 16:25:39] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 16:25:39] [INFO]   -> Found value: AVE
[2026-03-22 16:25:39] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 16:25:39] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 16:25:39] [INFO]   -> Found value: 509 E STRATTON AVE
[2026-03-22 16:25:39] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "509 E STRATTON AVE"
[2026-03-22 16:25:39] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 16:25:39] [INFO] Concatenating street name and type
[2026-03-22 16:25:39] [INFO]   -> Combined street name: STRATTON AVE
[2026-03-22 16:25:39] [INFO] Built locationCoordinates from lat/lng: 36.14006,-85.26762
[2026-03-22 16:25:39] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD\nRESC","incidentInternalId":"2026000773","dispatchRunNumber":"2026000773","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":509,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"MONTEREY SHELL","nERISIncidentLatitude":36.14005999999999829697117093019187450408935546875,"nERISIncidentLongitude":-85.267619999999993751771398819983005523681640625,"alarm":"2026-03-22 11:24:48","dispatched":"2026-03-22 11:24:48","enroute":"2026-03-22 11:25:28","incidentLocationCross":"AGEE ST\/INDUSTRIAL DR","cADVehicleID":"EN21","timedispatch":"2026-03-22 11:25:25","timeenroutetoscene":"2026-03-22 11:25:28","policeReportNumber":"20260030944","dispatchNotes":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","cADLog":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","incidentLocationCity":"MONTEREY","streetName":"STRATTON AVE","incidentAddressTextVersionStreet":"509 E STRATTON AVE","locationCoordinates":"36.14006,-85.26762"}
[2026-03-22 16:25:39] [INFO] Number of extracted fields: 24
[2026-03-22 16:25:39] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD
RESC'
[2026-03-22 16:25:39] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD
RESC', Parsed IDs = ["PCFD","EMS","MFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 16:25:39] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD","RESC"]
[2026-03-22 16:25:39] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 16:25:39] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 16:25:39] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD","RESC"]
[2026-03-22 16:25:39] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 16:25:39] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 16:25:39] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 16:25:39] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 16:25:39] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 16:25:39] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-22 16:25:40] [INFO] Found existing Dispatch with cADNumber '2026000773', ID: 69c017d71b34bea14 - will update instead of create
[2026-03-22 16:25:40] [INFO] Updated existing Dispatches record with ID: 69c017d71b34bea14
[2026-03-22 16:25:40] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162537_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030944_20260322_162537_1.XML
[2026-03-22 16:25:40] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162537_1.XML
[2026-03-22 16:25:40] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162538.XML
[2026-03-22 16:25:40] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162538.XML for user: 68f1466aed072ad4a
[2026-03-22 16:25:40] [INFO] File size: 6958 bytes
[2026-03-22 16:25:40] [INFO] Created FTPFiles record with ID: 69c01804869de4fe0
[2026-03-22 16:25:40] [INFO] About to extract fields from XML. File size: 6958 bytes
[2026-03-22 16:25:40] [INFO] Number of mappings: 28
[2026-03-22 16:25:40] [INFO] Starting XML parsing. Content length: 6958
[2026-03-22 16:25:40] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 16:25:40] [INFO] Processing 28 field mappings
[2026-03-22 16:25:40] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 16:25:40] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 16:25:40] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 16:25:40] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 16:25:40] [INFO]   -> Found value: PCFD
EMS
MFD
RESC
[2026-03-22 16:25:40] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD\nRESC"
[2026-03-22 16:25:40] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 16:25:40] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 16:25:40] [INFO]   -> Found value: 2026000773
[2026-03-22 16:25:40] [INFO]   -> Set field 'incidentInternalId' = "2026000773"
[2026-03-22 16:25:40] [INFO]   -> Set field 'dispatchRunNumber' = "2026000773"
[2026-03-22 16:25:40] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 16:25:40] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 16:25:40] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 16:25:40] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 16:25:40] [INFO]   -> Found value: 509
[2026-03-22 16:25:40] [INFO]   -> Set field 'incidentLocationStreetNumber' = 509
[2026-03-22 16:25:40] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 16:25:40] [INFO]   -> Found value: TN
[2026-03-22 16:25:40] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 16:25:40] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 16:25:40] [INFO]   -> Found value: 38574
[2026-03-22 16:25:40] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 16:25:40] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 16:25:40] [INFO]   -> Found value: MONTEREY SHELL
[2026-03-22 16:25:40] [INFO]   -> Set field 'businessName' = "MONTEREY SHELL"
[2026-03-22 16:25:40] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 16:25:40] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:40] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 16:25:40] [INFO]   -> Found value: 36.14006
[2026-03-22 16:25:40] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.14005999999999829697117093019187450408935546875
[2026-03-22 16:25:40] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 16:25:40] [INFO]   -> Found value: -85.26762
[2026-03-22 16:25:40] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.267619999999993751771398819983005523681640625
[2026-03-22 16:25:40] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 16:25:40] [INFO]   -> Found value: 2026-03-22 11:24:48
[2026-03-22 16:25:40] [INFO]   -> Set field 'alarm' = "2026-03-22 11:24:48"
[2026-03-22 16:25:40] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 16:25:40] [INFO]   -> Found value: 2026-03-22 11:24:48
[2026-03-22 16:25:40] [INFO]   -> Set field 'dispatched' = "2026-03-22 11:24:48"
[2026-03-22 16:25:40] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 16:25:40] [INFO]   -> Found value: 2026-03-22 11:25:28
[2026-03-22 16:25:40] [INFO]   -> Set field 'enroute' = "2026-03-22 11:25:28"
[2026-03-22 16:25:40] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 16:25:40] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:40] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 16:25:40] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:40] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 16:25:40] [INFO]   -> Found value: AGEE ST/INDUSTRIAL DR
[2026-03-22 16:25:40] [INFO]   -> Set field 'incidentLocationCross' = "AGEE ST\/INDUSTRIAL DR"
[2026-03-22 16:25:40] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 16:25:40] [INFO]   -> Found value: EN21
[2026-03-22 16:25:40] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-22 16:25:40] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 16:25:40] [INFO]   -> Found value: 2026-03-22 11:25:25
[2026-03-22 16:25:40] [INFO]   -> Set field 'timedispatch' = "2026-03-22 11:25:25"
[2026-03-22 16:25:40] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 16:25:40] [INFO]   -> Found value: 2026-03-22 11:25:28
[2026-03-22 16:25:40] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 11:25:28"
[2026-03-22 16:25:40] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 16:25:40] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:40] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 16:25:40] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:40] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 16:25:40] [INFO]   -> No value found (null or empty)
[2026-03-22 16:25:40] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 16:25:40] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 16:25:40] [INFO]   -> Found value: 20260030944
[2026-03-22 16:25:40] [INFO]   -> Set field 'policeReportNumber' = "20260030944"
[2026-03-22 16:25:40] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 16:25:40] [INFO]   -> Found value: Event spawned from FAINTING / SYNCOPE.  [03/22/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING...
[2026-03-22 16:25:40] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:25:40] [INFO]   -> Set field 'cADLog' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]"
[2026-03-22 16:25:40] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 16:25:40] [INFO]   -> Found value: MONTEREY
[2026-03-22 16:25:40] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 16:25:40] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 16:25:40] [INFO]   -> Found value: STRATTON
[2026-03-22 16:25:40] [INFO]   -> Set field 'streetName' = "STRATTON"
[2026-03-22 16:25:40] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 16:25:40] [INFO]   -> Found value: AVE
[2026-03-22 16:25:40] [INFO]   -> Set field 'streetType' = "AVE"
[2026-03-22 16:25:40] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 16:25:40] [INFO]   -> Found value: 509 E STRATTON AVE
[2026-03-22 16:25:40] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "509 E STRATTON AVE"
[2026-03-22 16:25:40] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 16:25:40] [INFO] Concatenating street name and type
[2026-03-22 16:25:40] [INFO]   -> Combined street name: STRATTON AVE
[2026-03-22 16:25:40] [INFO] Built locationCoordinates from lat/lng: 36.14006,-85.26762
[2026-03-22 16:25:40] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD\nRESC","incidentInternalId":"2026000773","dispatchRunNumber":"2026000773","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":509,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"MONTEREY SHELL","nERISIncidentLatitude":36.14005999999999829697117093019187450408935546875,"nERISIncidentLongitude":-85.267619999999993751771398819983005523681640625,"alarm":"2026-03-22 11:24:48","dispatched":"2026-03-22 11:24:48","enroute":"2026-03-22 11:25:28","incidentLocationCross":"AGEE ST\/INDUSTRIAL DR","cADVehicleID":"EN21","timedispatch":"2026-03-22 11:25:25","timeenroutetoscene":"2026-03-22 11:25:28","policeReportNumber":"20260030944","dispatchNotes":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","cADLog":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:24:48 KELLIS] [EMS] PAIN STARTED THIS MORNING  [03\/22\/26 11:24:48 KHILL] [EMS] PATIENT ROBERT &quot;TODD&quot; BISHOP   DOB  08\/05\/1966  [03\/22\/26 11:24:38 KHILL] [EMS] INTENSE PAIN  [03\/22\/26 11:24:06 KHILL] [EMS] GREY EXPEDITION  [03\/22\/26 11:23:45 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 11:23:39 KHILL] GETTING OFF THE EXIT  WILL BE AT THE SHELL STATION POSSIBLE KIDNEY STONES  [03\/22\/26 11:23:22 KHILL]","incidentLocationCity":"MONTEREY","streetName":"STRATTON AVE","incidentAddressTextVersionStreet":"509 E STRATTON AVE","locationCoordinates":"36.14006,-85.26762"}
[2026-03-22 16:25:40] [INFO] Number of extracted fields: 24
[2026-03-22 16:25:40] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD
RESC'
[2026-03-22 16:25:40] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD
RESC', Parsed IDs = ["PCFD","EMS","MFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 16:25:40] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD","RESC"]
[2026-03-22 16:25:40] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 16:25:40] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 16:25:40] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD","RESC"]
[2026-03-22 16:25: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-22 16:25: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-22 16:25:40] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 16:25:40] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 16:25:40] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 16:25:41] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-22 16:25:41] [INFO] Found existing Dispatch with cADNumber '2026000773', ID: 69c017d71b34bea14 - will update instead of create
[2026-03-22 16:25:41] [INFO] Updated existing Dispatches record with ID: 69c017d71b34bea14
[2026-03-22 16:25:41] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162538.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030944_20260322_162538.XML
[2026-03-22 16:25:41] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030944_20260322_162538.XML
[2026-03-22 16:54:37] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165437.XML
[2026-03-22 16:54:37] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165437.XML for user: 68f1466aed072ad4a
[2026-03-22 16:54:37] [INFO] File size: 5178 bytes
[2026-03-22 16:54:38] [INFO] Created FTPFiles record with ID: 69c01ece442514c7a
[2026-03-22 16:54:38] [INFO] About to extract fields from XML. File size: 5178 bytes
[2026-03-22 16:54:38] [INFO] Number of mappings: 28
[2026-03-22 16:54:38] [INFO] Starting XML parsing. Content length: 5178
[2026-03-22 16:54:38] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 16:54:38] [INFO] Processing 28 field mappings
[2026-03-22 16:54:38] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 16:54:38] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 16:54:38] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 16:54:38] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 16:54:38] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-22 16:54:38] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-22 16:54:38] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 16:54:38] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 16:54:38] [INFO]   -> Found value: 2026000774
[2026-03-22 16:54:38] [INFO]   -> Set field 'incidentInternalId' = "2026000774"
[2026-03-22 16:54:38] [INFO]   -> Set field 'dispatchRunNumber' = "2026000774"
[2026-03-22 16:54:38] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 16:54:38] [INFO]   -> Found value: FALL VICTIM
[2026-03-22 16:54:38] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-22 16:54:38] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 16:54:38] [INFO]   -> Found value: 1125
[2026-03-22 16:54:38] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1125
[2026-03-22 16:54:38] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 16:54:38] [INFO]   -> Found value: TN
[2026-03-22 16:54:38] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 16:54:38] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 16:54:38] [INFO]   -> Found value: 38501
[2026-03-22 16:54:38] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-22 16:54:38] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 16:54:38] [INFO]   -> Found value: ABSOLUTE CARE
[2026-03-22 16:54:38] [INFO]   -> Set field 'businessName' = "ABSOLUTE CARE"
[2026-03-22 16:54:38] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 16:54:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:38] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 16:54:38] [INFO]   -> Found value: 36.15172
[2026-03-22 16:54:38] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1517199999999974124875734560191631317138671875
[2026-03-22 16:54:38] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 16:54:38] [INFO]   -> Found value: -85.61602
[2026-03-22 16:54:38] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6160200000000060072125052101910114288330078125
[2026-03-22 16:54:38] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 16:54:38] [INFO]   -> Found value: 2026-03-22 11:53:55
[2026-03-22 16:54:38] [INFO]   -> Set field 'alarm' = "2026-03-22 11:53:55"
[2026-03-22 16:54:38] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 16:54:38] [INFO]   -> Found value: 2026-03-22 11:54:30
[2026-03-22 16:54:38] [INFO]   -> Set field 'dispatched' = "2026-03-22 11:54:30"
[2026-03-22 16:54:38] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 16:54:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:38] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 16:54:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:38] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 16:54:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:38] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 16:54:38] [INFO]   -> Found value: /FAWN DR
[2026-03-22 16:54:38] [INFO]   -> Set field 'incidentLocationCross' = "\/FAWN DR"
[2026-03-22 16:54:38] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 16:54:38] [INFO]   -> Found value: PCFR
[2026-03-22 16:54:38] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 16:54:38] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 16:54:38] [INFO]   -> Found value: 2026-03-22 11:54:30
[2026-03-22 16:54:38] [INFO]   -> Set field 'timedispatch' = "2026-03-22 11:54:30"
[2026-03-22 16:54:38] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 16:54:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:38] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 16:54:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:38] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 16:54:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:38] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 16:54:38] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:38] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 16:54:38] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 16:54:38] [INFO]   -> Found value: 20260030955
[2026-03-22 16:54:38] [INFO]   -> Set field 'policeReportNumber' = "20260030955"
[2026-03-22 16:54:38] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 16:54:38] [INFO]   -> Found value: Event spawned from FALL VICTIM.  [03/22/2026 11:53:55 KELLIS] 07/15/1956  FELL SEVERAL TIME LAST COU...
[2026-03-22 16:54:38] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]"
[2026-03-22 16:54:38] [INFO]   -> Set field 'cADLog' = "Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]"
[2026-03-22 16:54:38] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 16:54:38] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 16:54:38] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 16:54:38] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 16:54:38] [INFO]   -> Found value: DEER CREEK
[2026-03-22 16:54:38] [INFO]   -> Set field 'streetName' = "DEER CREEK"
[2026-03-22 16:54:38] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 16:54:38] [INFO]   -> Found value: DR
[2026-03-22 16:54:38] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-22 16:54:38] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 16:54:38] [INFO]   -> Found value: 1125 DEER CREEK DR
[2026-03-22 16:54:38] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1125 DEER CREEK DR"
[2026-03-22 16:54:38] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-22 16:54:38] [INFO] Concatenating street name and type
[2026-03-22 16:54:38] [INFO]   -> Combined street name: DEER CREEK DR
[2026-03-22 16:54:38] [INFO] Built locationCoordinates from lat/lng: 36.15172,-85.61602
[2026-03-22 16:54:38] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000774","dispatchRunNumber":"2026000774","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":1125,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"ABSOLUTE CARE","nERISIncidentLatitude":36.1517199999999974124875734560191631317138671875,"nERISIncidentLongitude":-85.6160200000000060072125052101910114288330078125,"alarm":"2026-03-22 11:53:55","dispatched":"2026-03-22 11:54:30","incidentLocationCross":"\/FAWN DR","cADVehicleID":"PCFR","timedispatch":"2026-03-22 11:54:30","policeReportNumber":"20260030955","dispatchNotes":"Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]","cADLog":"Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]","incidentLocationCity":"COOKEVILLE","streetName":"DEER CREEK DR","incidentAddressTextVersionStreet":"1125 DEER CREEK DR","locationCoordinates":"36.15172,-85.61602"}
[2026-03-22 16:54:38] [INFO] Number of extracted fields: 22
[2026-03-22 16:54:38] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-22 16:54:38] [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-22 16:54:38] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-22 16:54:38] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 16:54:38] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 16:54:38] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-22 16:54:38] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 16:54:38] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 16:54:38] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 16:54:38] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 16:54:38] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 16:54:39] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-22 16:54:51] [INFO] Created new Dispatches record with ID: 69c01ecfa0266bfee
[2026-03-22 16:54:51] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165437.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030955_20260322_165437.XML
[2026-03-22 16:54:51] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165437.XML
[2026-03-22 16:54:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165438.XML
[2026-03-22 16:54:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165438.XML for user: 68f1466aed072ad4a
[2026-03-22 16:54:51] [INFO] File size: 5178 bytes
[2026-03-22 16:54:51] [INFO] Created FTPFiles record with ID: 69c01edb8a55f8fce
[2026-03-22 16:54:51] [INFO] About to extract fields from XML. File size: 5178 bytes
[2026-03-22 16:54:51] [INFO] Number of mappings: 28
[2026-03-22 16:54:51] [INFO] Starting XML parsing. Content length: 5178
[2026-03-22 16:54:51] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 16:54:51] [INFO] Processing 28 field mappings
[2026-03-22 16:54:51] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 16:54:51] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 16:54:51] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 16:54:51] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 16:54:51] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-22 16:54:51] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-22 16:54:51] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 16:54:51] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 16:54:51] [INFO]   -> Found value: 2026000774
[2026-03-22 16:54:51] [INFO]   -> Set field 'incidentInternalId' = "2026000774"
[2026-03-22 16:54:51] [INFO]   -> Set field 'dispatchRunNumber' = "2026000774"
[2026-03-22 16:54:51] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 16:54:51] [INFO]   -> Found value: FALL VICTIM
[2026-03-22 16:54:51] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-22 16:54:51] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 16:54:51] [INFO]   -> Found value: 1125
[2026-03-22 16:54:51] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1125
[2026-03-22 16:54:51] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 16:54:51] [INFO]   -> Found value: TN
[2026-03-22 16:54:51] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 16:54:51] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 16:54:51] [INFO]   -> Found value: 38501
[2026-03-22 16:54:51] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-22 16:54:51] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 16:54:51] [INFO]   -> Found value: ABSOLUTE CARE
[2026-03-22 16:54:51] [INFO]   -> Set field 'businessName' = "ABSOLUTE CARE"
[2026-03-22 16:54:51] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 16:54:51] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:51] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 16:54:51] [INFO]   -> Found value: 36.15172
[2026-03-22 16:54:51] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1517199999999974124875734560191631317138671875
[2026-03-22 16:54:51] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 16:54:51] [INFO]   -> Found value: -85.61602
[2026-03-22 16:54:51] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6160200000000060072125052101910114288330078125
[2026-03-22 16:54:51] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 16:54:51] [INFO]   -> Found value: 2026-03-22 11:53:55
[2026-03-22 16:54:51] [INFO]   -> Set field 'alarm' = "2026-03-22 11:53:55"
[2026-03-22 16:54:51] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 16:54:51] [INFO]   -> Found value: 2026-03-22 11:54:30
[2026-03-22 16:54:51] [INFO]   -> Set field 'dispatched' = "2026-03-22 11:54:30"
[2026-03-22 16:54:51] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 16:54:51] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:51] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 16:54:51] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:51] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 16:54:51] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:51] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 16:54:51] [INFO]   -> Found value: /FAWN DR
[2026-03-22 16:54:51] [INFO]   -> Set field 'incidentLocationCross' = "\/FAWN DR"
[2026-03-22 16:54:51] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 16:54:51] [INFO]   -> Found value: PCFR
[2026-03-22 16:54:51] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 16:54:51] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 16:54:51] [INFO]   -> Found value: 2026-03-22 11:54:30
[2026-03-22 16:54:51] [INFO]   -> Set field 'timedispatch' = "2026-03-22 11:54:30"
[2026-03-22 16:54:51] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 16:54:51] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:51] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 16:54:51] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:51] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 16:54:51] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:51] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 16:54:51] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:51] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 16:54:51] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 16:54:51] [INFO]   -> Found value: 20260030955
[2026-03-22 16:54:51] [INFO]   -> Set field 'policeReportNumber' = "20260030955"
[2026-03-22 16:54:51] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 16:54:51] [INFO]   -> Found value: Event spawned from FALL VICTIM.  [03/22/2026 11:53:55 KELLIS] 07/15/1956  FELL SEVERAL TIME LAST COU...
[2026-03-22 16:54:51] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]"
[2026-03-22 16:54:51] [INFO]   -> Set field 'cADLog' = "Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]"
[2026-03-22 16:54:51] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 16:54:51] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 16:54:51] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 16:54:51] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 16:54:51] [INFO]   -> Found value: DEER CREEK
[2026-03-22 16:54:51] [INFO]   -> Set field 'streetName' = "DEER CREEK"
[2026-03-22 16:54:51] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 16:54:51] [INFO]   -> Found value: DR
[2026-03-22 16:54:51] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-22 16:54:51] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 16:54:51] [INFO]   -> Found value: 1125 DEER CREEK DR
[2026-03-22 16:54:51] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1125 DEER CREEK DR"
[2026-03-22 16:54:51] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-22 16:54:51] [INFO] Concatenating street name and type
[2026-03-22 16:54:51] [INFO]   -> Combined street name: DEER CREEK DR
[2026-03-22 16:54:51] [INFO] Built locationCoordinates from lat/lng: 36.15172,-85.61602
[2026-03-22 16:54:51] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000774","dispatchRunNumber":"2026000774","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":1125,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"ABSOLUTE CARE","nERISIncidentLatitude":36.1517199999999974124875734560191631317138671875,"nERISIncidentLongitude":-85.6160200000000060072125052101910114288330078125,"alarm":"2026-03-22 11:53:55","dispatched":"2026-03-22 11:54:30","incidentLocationCross":"\/FAWN DR","cADVehicleID":"PCFR","timedispatch":"2026-03-22 11:54:30","policeReportNumber":"20260030955","dispatchNotes":"Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]","cADLog":"Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]","incidentLocationCity":"COOKEVILLE","streetName":"DEER CREEK DR","incidentAddressTextVersionStreet":"1125 DEER CREEK DR","locationCoordinates":"36.15172,-85.61602"}
[2026-03-22 16:54:51] [INFO] Number of extracted fields: 22
[2026-03-22 16:54:51] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-22 16:54:51] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Non-empty count = 3, Total agency count = 3, Assigned Agencies count = 4
[2026-03-22 16:54:51] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-22 16:54:51] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 16:54:51] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 16:54:51] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-22 16:54:52] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 16:54:52] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 16:54:52] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 16:54:52] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 16:54:52] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 16:54:52] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-22 16:54:52] [INFO] Found existing Dispatch with cADNumber '2026000774', ID: 69c01ecfa0266bfee - will update instead of create
[2026-03-22 16:54:52] [INFO] Updated existing Dispatches record with ID: 69c01ecfa0266bfee
[2026-03-22 16:54:52] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165438.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030955_20260322_165438.XML
[2026-03-22 16:54:52] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165438.XML
[2026-03-22 16:54:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165438_1.XML
[2026-03-22 16:54:52] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165438_1.XML for user: 68f1466aed072ad4a
[2026-03-22 16:54:52] [INFO] File size: 5178 bytes
[2026-03-22 16:54:53] [INFO] Created FTPFiles record with ID: 69c01edd7174dc797
[2026-03-22 16:54:53] [INFO] About to extract fields from XML. File size: 5178 bytes
[2026-03-22 16:54:53] [INFO] Number of mappings: 28
[2026-03-22 16:54:53] [INFO] Starting XML parsing. Content length: 5178
[2026-03-22 16:54:53] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 16:54:53] [INFO] Processing 28 field mappings
[2026-03-22 16:54:53] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 16:54:53] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 16:54:53] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 16:54:53] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 16:54:53] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-22 16:54:53] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-22 16:54:53] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 16:54:53] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 16:54:53] [INFO]   -> Found value: 2026000774
[2026-03-22 16:54:53] [INFO]   -> Set field 'incidentInternalId' = "2026000774"
[2026-03-22 16:54:53] [INFO]   -> Set field 'dispatchRunNumber' = "2026000774"
[2026-03-22 16:54:53] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 16:54:53] [INFO]   -> Found value: FALL VICTIM
[2026-03-22 16:54:53] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-22 16:54:53] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 16:54:53] [INFO]   -> Found value: 1125
[2026-03-22 16:54:53] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1125
[2026-03-22 16:54:53] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 16:54:53] [INFO]   -> Found value: TN
[2026-03-22 16:54:53] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 16:54:53] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 16:54:53] [INFO]   -> Found value: 38501
[2026-03-22 16:54:53] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-22 16:54:53] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 16:54:53] [INFO]   -> Found value: ABSOLUTE CARE
[2026-03-22 16:54:53] [INFO]   -> Set field 'businessName' = "ABSOLUTE CARE"
[2026-03-22 16:54:53] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 16:54:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:53] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 16:54:53] [INFO]   -> Found value: 36.15172
[2026-03-22 16:54:53] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1517199999999974124875734560191631317138671875
[2026-03-22 16:54:53] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 16:54:53] [INFO]   -> Found value: -85.61602
[2026-03-22 16:54:53] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6160200000000060072125052101910114288330078125
[2026-03-22 16:54:53] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 16:54:53] [INFO]   -> Found value: 2026-03-22 11:53:55
[2026-03-22 16:54:53] [INFO]   -> Set field 'alarm' = "2026-03-22 11:53:55"
[2026-03-22 16:54:53] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 16:54:53] [INFO]   -> Found value: 2026-03-22 11:54:30
[2026-03-22 16:54:53] [INFO]   -> Set field 'dispatched' = "2026-03-22 11:54:30"
[2026-03-22 16:54:53] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 16:54:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:53] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 16:54:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:53] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 16:54:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:53] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 16:54:53] [INFO]   -> Found value: /FAWN DR
[2026-03-22 16:54:53] [INFO]   -> Set field 'incidentLocationCross' = "\/FAWN DR"
[2026-03-22 16:54:53] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 16:54:53] [INFO]   -> Found value: PCFR
[2026-03-22 16:54:53] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 16:54:53] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 16:54:53] [INFO]   -> Found value: 2026-03-22 11:54:30
[2026-03-22 16:54:53] [INFO]   -> Set field 'timedispatch' = "2026-03-22 11:54:30"
[2026-03-22 16:54:53] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 16:54:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:53] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 16:54:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:53] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 16:54:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:53] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 16:54:53] [INFO]   -> No value found (null or empty)
[2026-03-22 16:54:53] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 16:54:53] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 16:54:53] [INFO]   -> Found value: 20260030955
[2026-03-22 16:54:53] [INFO]   -> Set field 'policeReportNumber' = "20260030955"
[2026-03-22 16:54:53] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 16:54:53] [INFO]   -> Found value: Event spawned from FALL VICTIM.  [03/22/2026 11:53:55 KELLIS] 07/15/1956  FELL SEVERAL TIME LAST COU...
[2026-03-22 16:54:53] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]"
[2026-03-22 16:54:53] [INFO]   -> Set field 'cADLog' = "Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]"
[2026-03-22 16:54:53] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 16:54:53] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 16:54:53] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 16:54:53] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 16:54:53] [INFO]   -> Found value: DEER CREEK
[2026-03-22 16:54:53] [INFO]   -> Set field 'streetName' = "DEER CREEK"
[2026-03-22 16:54:53] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 16:54:53] [INFO]   -> Found value: DR
[2026-03-22 16:54:53] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-22 16:54:53] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 16:54:53] [INFO]   -> Found value: 1125 DEER CREEK DR
[2026-03-22 16:54:53] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1125 DEER CREEK DR"
[2026-03-22 16:54:53] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-22 16:54:53] [INFO] Concatenating street name and type
[2026-03-22 16:54:53] [INFO]   -> Combined street name: DEER CREEK DR
[2026-03-22 16:54:53] [INFO] Built locationCoordinates from lat/lng: 36.15172,-85.61602
[2026-03-22 16:54:53] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000774","dispatchRunNumber":"2026000774","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":1125,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"ABSOLUTE CARE","nERISIncidentLatitude":36.1517199999999974124875734560191631317138671875,"nERISIncidentLongitude":-85.6160200000000060072125052101910114288330078125,"alarm":"2026-03-22 11:53:55","dispatched":"2026-03-22 11:54:30","incidentLocationCross":"\/FAWN DR","cADVehicleID":"PCFR","timedispatch":"2026-03-22 11:54:30","policeReportNumber":"20260030955","dispatchNotes":"Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]","cADLog":"Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]","incidentLocationCity":"COOKEVILLE","streetName":"DEER CREEK DR","incidentAddressTextVersionStreet":"1125 DEER CREEK DR","locationCoordinates":"36.15172,-85.61602"}
[2026-03-22 16:54:53] [INFO] Number of extracted fields: 22
[2026-03-22 16:54:53] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-22 16:54:53] [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-22 16:54:53] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-22 16:54:53] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 16:54:53] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 16:54:53] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-22 16:54:54] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 16:54:54] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 16:54:54] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 16:54:54] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 16:54:54] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 16:54:54] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-22 16:54:54] [INFO] Found existing Dispatch with cADNumber '2026000774', ID: 69c01ecfa0266bfee - will update instead of create
[2026-03-22 16:54:54] [INFO] Updated existing Dispatches record with ID: 69c01ecfa0266bfee
[2026-03-22 16:54:54] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165438_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030955_20260322_165438_1.XML
[2026-03-22 16:54:54] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165438_1.XML
[2026-03-22 16:57:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165701.XML
[2026-03-22 16:57:01] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165701.XML for user: 68f1466aed072ad4a
[2026-03-22 16:57:01] [INFO] File size: 6215 bytes
[2026-03-22 16:57:01] [INFO] Created FTPFiles record with ID: 69c01f5d87f623980
[2026-03-22 16:57:01] [INFO] About to extract fields from XML. File size: 6215 bytes
[2026-03-22 16:57:01] [INFO] Number of mappings: 28
[2026-03-22 16:57:01] [INFO] Starting XML parsing. Content length: 6215
[2026-03-22 16:57:01] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 16:57:01] [INFO] Processing 28 field mappings
[2026-03-22 16:57:01] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 16:57:01] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 16:57:01] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 16:57:01] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 16:57:01] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-22 16:57:01] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-22 16:57:01] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 16:57:01] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 16:57:01] [INFO]   -> Found value: 2026000774
[2026-03-22 16:57:01] [INFO]   -> Set field 'incidentInternalId' = "2026000774"
[2026-03-22 16:57:01] [INFO]   -> Set field 'dispatchRunNumber' = "2026000774"
[2026-03-22 16:57:01] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 16:57:01] [INFO]   -> Found value: FALL VICTIM
[2026-03-22 16:57:01] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-22 16:57:01] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 16:57:01] [INFO]   -> Found value: 1125
[2026-03-22 16:57:01] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1125
[2026-03-22 16:57:01] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 16:57:01] [INFO]   -> Found value: TN
[2026-03-22 16:57:01] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 16:57:01] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 16:57:01] [INFO]   -> Found value: 38501
[2026-03-22 16:57:01] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-22 16:57:01] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 16:57:01] [INFO]   -> Found value: ABSOLUTE CARE
[2026-03-22 16:57:01] [INFO]   -> Set field 'businessName' = "ABSOLUTE CARE"
[2026-03-22 16:57:01] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 16:57:01] [INFO]   -> No value found (null or empty)
[2026-03-22 16:57:01] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 16:57:01] [INFO]   -> Found value: 36.15172
[2026-03-22 16:57:01] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1517199999999974124875734560191631317138671875
[2026-03-22 16:57:01] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 16:57:01] [INFO]   -> Found value: -85.61602
[2026-03-22 16:57:01] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6160200000000060072125052101910114288330078125
[2026-03-22 16:57:01] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 16:57:01] [INFO]   -> Found value: 2026-03-22 11:53:55
[2026-03-22 16:57:01] [INFO]   -> Set field 'alarm' = "2026-03-22 11:53:55"
[2026-03-22 16:57:01] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 16:57:01] [INFO]   -> Found value: 2026-03-22 11:54:30
[2026-03-22 16:57:01] [INFO]   -> Set field 'dispatched' = "2026-03-22 11:54:30"
[2026-03-22 16:57:01] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 16:57:01] [INFO]   -> Found value: 2026-03-22 11:56:55
[2026-03-22 16:57:01] [INFO]   -> Set field 'enroute' = "2026-03-22 11:56:55"
[2026-03-22 16:57:01] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 16:57:01] [INFO]   -> No value found (null or empty)
[2026-03-22 16:57:01] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 16:57:01] [INFO]   -> No value found (null or empty)
[2026-03-22 16:57:01] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 16:57:01] [INFO]   -> Found value: /FAWN DR
[2026-03-22 16:57:01] [INFO]   -> Set field 'incidentLocationCross' = "\/FAWN DR"
[2026-03-22 16:57:01] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 16:57:01] [INFO]   -> Found value: TK31
[2026-03-22 16:57:01] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-22 16:57:01] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 16:57:01] [INFO]   -> Found value: 2026-03-22 11:56:53
[2026-03-22 16:57:01] [INFO]   -> Set field 'timedispatch' = "2026-03-22 11:56:53"
[2026-03-22 16:57:01] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 16:57:01] [INFO]   -> Found value: 2026-03-22 11:56:55
[2026-03-22 16:57:01] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 11:56:55"
[2026-03-22 16:57:01] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 16:57:01] [INFO]   -> No value found (null or empty)
[2026-03-22 16:57:01] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 16:57:01] [INFO]   -> No value found (null or empty)
[2026-03-22 16:57:01] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 16:57:01] [INFO]   -> No value found (null or empty)
[2026-03-22 16:57:01] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 16:57:01] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 16:57:01] [INFO]   -> Found value: 20260030955
[2026-03-22 16:57:01] [INFO]   -> Set field 'policeReportNumber' = "20260030955"
[2026-03-22 16:57:01] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 16:57:01] [INFO]   -> Found value: [EMS] 931-316-0143 BRIAN TAYLOR   ON CALL  [03/22/26 11:55:53 KELLIS] [EMS] SANDRA CRAWFORD  UNKNOWN...
[2026-03-22 16:57:01] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 931-316-0143 BRIAN TAYLOR   ON CALL  [03\/22\/26 11:55:53 KELLIS] [EMS] SANDRA CRAWFORD  UNKNOWN IF ON BLOOD THINNERS  [03\/22\/26 11:55:16 KELLIS] Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]"
[2026-03-22 16:57:01] [INFO]   -> Set field 'cADLog' = "[EMS] 931-316-0143 BRIAN TAYLOR   ON CALL  [03\/22\/26 11:55:53 KELLIS] [EMS] SANDRA CRAWFORD  UNKNOWN IF ON BLOOD THINNERS  [03\/22\/26 11:55:16 KELLIS] Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]"
[2026-03-22 16:57:01] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 16:57:01] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 16:57:01] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 16:57:01] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 16:57:01] [INFO]   -> Found value: DEER CREEK
[2026-03-22 16:57:01] [INFO]   -> Set field 'streetName' = "DEER CREEK"
[2026-03-22 16:57:01] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 16:57:01] [INFO]   -> Found value: DR
[2026-03-22 16:57:01] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-22 16:57:01] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 16:57:01] [INFO]   -> Found value: 1125 DEER CREEK DR
[2026-03-22 16:57:01] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1125 DEER CREEK DR"
[2026-03-22 16:57:01] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 16:57:01] [INFO] Concatenating street name and type
[2026-03-22 16:57:01] [INFO]   -> Combined street name: DEER CREEK DR
[2026-03-22 16:57:01] [INFO] Built locationCoordinates from lat/lng: 36.15172,-85.61602
[2026-03-22 16:57:01] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000774","dispatchRunNumber":"2026000774","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":1125,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"ABSOLUTE CARE","nERISIncidentLatitude":36.1517199999999974124875734560191631317138671875,"nERISIncidentLongitude":-85.6160200000000060072125052101910114288330078125,"alarm":"2026-03-22 11:53:55","dispatched":"2026-03-22 11:54:30","enroute":"2026-03-22 11:56:55","incidentLocationCross":"\/FAWN DR","cADVehicleID":"TK31","timedispatch":"2026-03-22 11:56:53","timeenroutetoscene":"2026-03-22 11:56:55","policeReportNumber":"20260030955","dispatchNotes":"[EMS] 931-316-0143 BRIAN TAYLOR   ON CALL  [03\/22\/26 11:55:53 KELLIS] [EMS] SANDRA CRAWFORD  UNKNOWN IF ON BLOOD THINNERS  [03\/22\/26 11:55:16 KELLIS] Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]","cADLog":"[EMS] 931-316-0143 BRIAN TAYLOR   ON CALL  [03\/22\/26 11:55:53 KELLIS] [EMS] SANDRA CRAWFORD  UNKNOWN IF ON BLOOD THINNERS  [03\/22\/26 11:55:16 KELLIS] Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]","incidentLocationCity":"COOKEVILLE","streetName":"DEER CREEK DR","incidentAddressTextVersionStreet":"1125 DEER CREEK DR","locationCoordinates":"36.15172,-85.61602"}
[2026-03-22 16:57:01] [INFO] Number of extracted fields: 24
[2026-03-22 16:57:01] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-22 16:57:01] [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-22 16:57:01] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-22 16:57:01] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 16:57:01] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 16:57:01] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-22 16:57:02] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 16:57:02] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 16:57:02] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 16:57:02] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 16:57:02] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 16:57:02] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-22 16:57:02] [INFO] Found existing Dispatch with cADNumber '2026000774', ID: 69c01ecfa0266bfee - will update instead of create
[2026-03-22 16:57:02] [INFO] Updated existing Dispatches record with ID: 69c01ecfa0266bfee
[2026-03-22 16:57:02] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165701.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030955_20260322_165701.XML
[2026-03-22 16:57:02] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165701.XML
[2026-03-22 16:57:03] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165702.XML
[2026-03-22 16:57:03] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165702.XML for user: 68f1466aed072ad4a
[2026-03-22 16:57:03] [INFO] File size: 6215 bytes
[2026-03-22 16:57:03] [INFO] Created FTPFiles record with ID: 69c01f5f8694c2049
[2026-03-22 16:57:03] [INFO] About to extract fields from XML. File size: 6215 bytes
[2026-03-22 16:57:03] [INFO] Number of mappings: 28
[2026-03-22 16:57:03] [INFO] Starting XML parsing. Content length: 6215
[2026-03-22 16:57:03] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 16:57:03] [INFO] Processing 28 field mappings
[2026-03-22 16:57:03] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 16:57:03] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 16:57:03] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 16:57:03] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2026-03-22 16:57:03] [INFO]   -> Found value: PCFD
EMS
RESC
[2026-03-22 16:57:03] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2026-03-22 16:57:03] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 16:57:03] [INFO] Found 3 elements for 'ReportNumber', using FIRST value only
[2026-03-22 16:57:03] [INFO]   -> Found value: 2026000774
[2026-03-22 16:57:03] [INFO]   -> Set field 'incidentInternalId' = "2026000774"
[2026-03-22 16:57:03] [INFO]   -> Set field 'dispatchRunNumber' = "2026000774"
[2026-03-22 16:57:03] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 16:57:03] [INFO]   -> Found value: FALL VICTIM
[2026-03-22 16:57:03] [INFO]   -> Set field 'incidentTypeValue1' = "FALL VICTIM"
[2026-03-22 16:57:03] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 16:57:03] [INFO]   -> Found value: 1125
[2026-03-22 16:57:03] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1125
[2026-03-22 16:57:03] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 16:57:03] [INFO]   -> Found value: TN
[2026-03-22 16:57:03] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 16:57:03] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 16:57:03] [INFO]   -> Found value: 38501
[2026-03-22 16:57:03] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-22 16:57:03] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 16:57:03] [INFO]   -> Found value: ABSOLUTE CARE
[2026-03-22 16:57:03] [INFO]   -> Set field 'businessName' = "ABSOLUTE CARE"
[2026-03-22 16:57:03] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 16:57:03] [INFO]   -> No value found (null or empty)
[2026-03-22 16:57:03] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 16:57:03] [INFO]   -> Found value: 36.15172
[2026-03-22 16:57:03] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1517199999999974124875734560191631317138671875
[2026-03-22 16:57:03] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 16:57:03] [INFO]   -> Found value: -85.61602
[2026-03-22 16:57:03] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6160200000000060072125052101910114288330078125
[2026-03-22 16:57:03] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 16:57:03] [INFO]   -> Found value: 2026-03-22 11:53:55
[2026-03-22 16:57:03] [INFO]   -> Set field 'alarm' = "2026-03-22 11:53:55"
[2026-03-22 16:57:03] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 16:57:03] [INFO]   -> Found value: 2026-03-22 11:54:30
[2026-03-22 16:57:03] [INFO]   -> Set field 'dispatched' = "2026-03-22 11:54:30"
[2026-03-22 16:57:03] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 16:57:03] [INFO]   -> Found value: 2026-03-22 11:56:55
[2026-03-22 16:57:03] [INFO]   -> Set field 'enroute' = "2026-03-22 11:56:55"
[2026-03-22 16:57:03] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 16:57:03] [INFO]   -> No value found (null or empty)
[2026-03-22 16:57:03] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 16:57:03] [INFO]   -> No value found (null or empty)
[2026-03-22 16:57:03] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 16:57:03] [INFO]   -> Found value: /FAWN DR
[2026-03-22 16:57:03] [INFO]   -> Set field 'incidentLocationCross' = "\/FAWN DR"
[2026-03-22 16:57:03] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 16:57:03] [INFO]   -> Found value: TK31
[2026-03-22 16:57:03] [INFO]   -> Set field 'cADVehicleID' = "TK31"
[2026-03-22 16:57:03] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 16:57:03] [INFO]   -> Found value: 2026-03-22 11:56:53
[2026-03-22 16:57:03] [INFO]   -> Set field 'timedispatch' = "2026-03-22 11:56:53"
[2026-03-22 16:57:03] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 16:57:03] [INFO]   -> Found value: 2026-03-22 11:56:55
[2026-03-22 16:57:03] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 11:56:55"
[2026-03-22 16:57:03] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 16:57:03] [INFO]   -> No value found (null or empty)
[2026-03-22 16:57:03] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 16:57:03] [INFO]   -> No value found (null or empty)
[2026-03-22 16:57:03] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 16:57:03] [INFO]   -> No value found (null or empty)
[2026-03-22 16:57:03] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 16:57:03] [INFO] Found 3 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 16:57:03] [INFO]   -> Found value: 20260030955
[2026-03-22 16:57:03] [INFO]   -> Set field 'policeReportNumber' = "20260030955"
[2026-03-22 16:57:03] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 16:57:03] [INFO]   -> Found value: [EMS] 931-316-0143 BRIAN TAYLOR   ON CALL  [03/22/26 11:55:53 KELLIS] [EMS] SANDRA CRAWFORD  UNKNOWN...
[2026-03-22 16:57:03] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 931-316-0143 BRIAN TAYLOR   ON CALL  [03\/22\/26 11:55:53 KELLIS] [EMS] SANDRA CRAWFORD  UNKNOWN IF ON BLOOD THINNERS  [03\/22\/26 11:55:16 KELLIS] Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]"
[2026-03-22 16:57:03] [INFO]   -> Set field 'cADLog' = "[EMS] 931-316-0143 BRIAN TAYLOR   ON CALL  [03\/22\/26 11:55:53 KELLIS] [EMS] SANDRA CRAWFORD  UNKNOWN IF ON BLOOD THINNERS  [03\/22\/26 11:55:16 KELLIS] Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]"
[2026-03-22 16:57:03] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 16:57:03] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 16:57:03] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 16:57:03] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 16:57:03] [INFO]   -> Found value: DEER CREEK
[2026-03-22 16:57:03] [INFO]   -> Set field 'streetName' = "DEER CREEK"
[2026-03-22 16:57:03] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 16:57:03] [INFO]   -> Found value: DR
[2026-03-22 16:57:03] [INFO]   -> Set field 'streetType' = "DR"
[2026-03-22 16:57:03] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 16:57:03] [INFO]   -> Found value: 1125 DEER CREEK DR
[2026-03-22 16:57:03] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1125 DEER CREEK DR"
[2026-03-22 16:57:03] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 16:57:03] [INFO] Concatenating street name and type
[2026-03-22 16:57:03] [INFO]   -> Combined street name: DEER CREEK DR
[2026-03-22 16:57:03] [INFO] Built locationCoordinates from lat/lng: 36.15172,-85.61602
[2026-03-22 16:57:03] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2026000774","dispatchRunNumber":"2026000774","incidentTypeValue1":"FALL VICTIM","incidentLocationStreetNumber":1125,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"ABSOLUTE CARE","nERISIncidentLatitude":36.1517199999999974124875734560191631317138671875,"nERISIncidentLongitude":-85.6160200000000060072125052101910114288330078125,"alarm":"2026-03-22 11:53:55","dispatched":"2026-03-22 11:54:30","enroute":"2026-03-22 11:56:55","incidentLocationCross":"\/FAWN DR","cADVehicleID":"TK31","timedispatch":"2026-03-22 11:56:53","timeenroutetoscene":"2026-03-22 11:56:55","policeReportNumber":"20260030955","dispatchNotes":"[EMS] 931-316-0143 BRIAN TAYLOR   ON CALL  [03\/22\/26 11:55:53 KELLIS] [EMS] SANDRA CRAWFORD  UNKNOWN IF ON BLOOD THINNERS  [03\/22\/26 11:55:16 KELLIS] Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]","cADLog":"[EMS] 931-316-0143 BRIAN TAYLOR   ON CALL  [03\/22\/26 11:55:53 KELLIS] [EMS] SANDRA CRAWFORD  UNKNOWN IF ON BLOOD THINNERS  [03\/22\/26 11:55:16 KELLIS] Event spawned from FALL VICTIM.  [03\/22\/2026 11:53:55 KELLIS] 07\/15\/1956  FELL SEVERAL TIME LAST COUPLE OF DAYS   AND FELL THIS MORNING   STAFF OPEN WOUNDS  [03\/22\/26 11:53:51 KELLIS]]","incidentLocationCity":"COOKEVILLE","streetName":"DEER CREEK DR","incidentAddressTextVersionStreet":"1125 DEER CREEK DR","locationCoordinates":"36.15172,-85.61602"}
[2026-03-22 16:57:03] [INFO] Number of extracted fields: 24
[2026-03-22 16:57:03] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2026-03-22 16:57:03] [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-22 16:57:03] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2026-03-22 16:57:03] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 16:57:03] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 16:57:03] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC"]
[2026-03-22 16:57:04] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 16:57:04] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 16:57:04] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 3)
[2026-03-22 16:57:04] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 16:57:04] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 16:57:04] [INFO] Found existing IncidentTypeMapping with ID: 69372a143f466ddae
[2026-03-22 16:57:04] [INFO] Found existing Dispatch with cADNumber '2026000774', ID: 69c01ecfa0266bfee - will update instead of create
[2026-03-22 16:57:04] [INFO] Updated existing Dispatches record with ID: 69c01ecfa0266bfee
[2026-03-22 16:57:05] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165702.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260030955_20260322_165702.XML
[2026-03-22 16:57:05] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260030955_20260322_165702.XML
[2026-03-22 17:01:52] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170152.XML
[2026-03-22 17:01:52] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170152.XML for user: 68f1466aed072ad4a
[2026-03-22 17:01:52] [INFO] File size: 4922 bytes
[2026-03-22 17:01:53] [INFO] Created FTPFiles record with ID: 69c020816defb5d00
[2026-03-22 17:01:53] [INFO] About to extract fields from XML. File size: 4922 bytes
[2026-03-22 17:01:53] [INFO] Number of mappings: 28
[2026-03-22 17:01:53] [INFO] Starting XML parsing. Content length: 4922
[2026-03-22 17:01:53] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 17:01:53] [INFO] Processing 28 field mappings
[2026-03-22 17:01:53] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 17:01:53] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 17:01:53] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 17:01:53] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 17:01:53] [INFO]   -> Found value: AFD
BFD
[2026-03-22 17:01:53] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nBFD"
[2026-03-22 17:01:53] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 17:01:53] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 17:01:53] [INFO]   -> Found value: 2026000118
[2026-03-22 17:01:53] [INFO]   -> Set field 'incidentInternalId' = "2026000118"
[2026-03-22 17:01:53] [INFO]   -> Set field 'dispatchRunNumber' = "2026000118"
[2026-03-22 17:01:53] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 17:01:53] [INFO]   -> Found value: PUBLIC RELATIONS - FIRE
[2026-03-22 17:01:53] [INFO]   -> Set field 'incidentTypeValue1' = "PUBLIC RELATIONS - FIRE"
[2026-03-22 17:01:53] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 17:01:53] [INFO]   -> Found value: 215
[2026-03-22 17:01:53] [INFO]   -> Set field 'incidentLocationStreetNumber' = 215
[2026-03-22 17:01:53] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 17:01:53] [INFO]   -> Found value: TN
[2026-03-22 17:01:53] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 17:01:53] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 17:01:53] [INFO]   -> Found value: 38544
[2026-03-22 17:01:53] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-22 17:01:53] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 17:01:53] [INFO]   -> No value found (null or empty)
[2026-03-22 17:01:53] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 17:01:53] [INFO]   -> No value found (null or empty)
[2026-03-22 17:01:53] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 17:01:53] [INFO]   -> Found value: 36.15419
[2026-03-22 17:01:53] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.154189999999999827196006663143634796142578125
[2026-03-22 17:01:53] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 17:01:53] [INFO]   -> Found value: -85.64240
[2026-03-22 17:01:53] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6423999999999949750417727045714855194091796875
[2026-03-22 17:01:53] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 17:01:53] [INFO]   -> Found value: 2026-03-22 12:01:49
[2026-03-22 17:01:53] [INFO]   -> Set field 'alarm' = "2026-03-22 12:01:49"
[2026-03-22 17:01:53] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 17:01:53] [INFO]   -> Found value: 2026-03-22 12:01:49
[2026-03-22 17:01:53] [INFO]   -> Set field 'dispatched' = "2026-03-22 12:01:49"
[2026-03-22 17:01:53] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 17:01:53] [INFO]   -> No value found (null or empty)
[2026-03-22 17:01:53] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 17:01:53] [INFO]   -> No value found (null or empty)
[2026-03-22 17:01:53] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 17:01:53] [INFO]   -> No value found (null or empty)
[2026-03-22 17:01:53] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 17:01:53] [INFO]   -> Found value: FIRST AVE S/THIRD AVE N
[2026-03-22 17:01:53] [INFO]   -> Set field 'incidentLocationCross' = "FIRST AVE S\/THIRD AVE N"
[2026-03-22 17:01:53] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 17:01:53] [INFO]   -> Found value: AEN2
[2026-03-22 17:01:53] [INFO]   -> Set field 'cADVehicleID' = "AEN2"
[2026-03-22 17:01:53] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 17:01:53] [INFO]   -> Found value: 2026-03-22 12:01:49
[2026-03-22 17:01:53] [INFO]   -> Set field 'timedispatch' = "2026-03-22 12:01:49"
[2026-03-22 17:01:53] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 17:01:53] [INFO]   -> No value found (null or empty)
[2026-03-22 17:01:53] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 17:01:53] [INFO]   -> No value found (null or empty)
[2026-03-22 17:01:53] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 17:01:53] [INFO]   -> No value found (null or empty)
[2026-03-22 17:01:53] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 17:01:53] [INFO]   -> No value found (null or empty)
[2026-03-22 17:01:53] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 17:01:53] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 17:01:53] [INFO]   -> Found value: 20260030960
[2026-03-22 17:01:53] [INFO]   -> Set field 'policeReportNumber' = "20260030960"
[2026-03-22 17:01:53] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 17:01:53] [INFO]   -> Found value: Event spawned from PUBLIC RELATIONS - FIRE.  [03/22/2026 12:01:49 KMORGAN2]
[2026-03-22 17:01:53] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]"
[2026-03-22 17:01:53] [INFO]   -> Set field 'cADLog' = "Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]"
[2026-03-22 17:01:53] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 17:01:53] [INFO]   -> Found value: BAXTER
[2026-03-22 17:01:53] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-22 17:01:53] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 17:01:53] [INFO]   -> Found value: MAIN
[2026-03-22 17:01:53] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-03-22 17:01:53] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 17:01:53] [INFO]   -> Found value: ST
[2026-03-22 17:01:53] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-22 17:01:53] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 17:01:53] [INFO]   -> Found value: 215 MAIN ST
[2026-03-22 17:01:53] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "215 MAIN ST"
[2026-03-22 17:01:53] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 17:01:53] [INFO] Concatenating street name and type
[2026-03-22 17:01:53] [INFO]   -> Combined street name: MAIN ST
[2026-03-22 17:01:53] [INFO] Built locationCoordinates from lat/lng: 36.15419,-85.6424
[2026-03-22 17:01:53] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nBFD","incidentInternalId":"2026000118","dispatchRunNumber":"2026000118","incidentTypeValue1":"PUBLIC RELATIONS - FIRE","incidentLocationStreetNumber":215,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.154189999999999827196006663143634796142578125,"nERISIncidentLongitude":-85.6423999999999949750417727045714855194091796875,"alarm":"2026-03-22 12:01:49","dispatched":"2026-03-22 12:01:49","incidentLocationCross":"FIRST AVE S\/THIRD AVE N","cADVehicleID":"AEN2","timedispatch":"2026-03-22 12:01:49","policeReportNumber":"20260030960","dispatchNotes":"Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]","cADLog":"Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"MAIN ST","incidentAddressTextVersionStreet":"215 MAIN ST","locationCoordinates":"36.15419,-85.6424"}
[2026-03-22 17:01:53] [INFO] Number of extracted fields: 21
[2026-03-22 17:01:53] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
BFD'
[2026-03-22 17:01:53] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
BFD', Parsed IDs = ["AFD","BFD"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 17:01:53] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","BFD"]
[2026-03-22 17:01:53] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-22 17:01:53] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-22 17:01:53] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["BFD"]
[2026-03-22 17:01:53] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-22 17:01:53] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-22 17:01:53] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 17:01:53] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-03-22 17:01:54] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-22 17:01:54] [INFO] Found existing IncidentTypeMapping with ID: 698f52f67a616900a
[2026-03-22 17:01:59] [INFO] Created new Dispatches record with ID: 69c02082ce9ea2ac3
[2026-03-22 17:01:59] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170152.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/AFD_20260030960_20260322_170152.XML
[2026-03-22 17:01:59] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170152.XML
[2026-03-22 17:03:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170301.XML
[2026-03-22 17:03:01] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170301.XML for user: 68f1466aed072ad4a
[2026-03-22 17:03:01] [INFO] File size: 5028 bytes
[2026-03-22 17:03:01] [INFO] Created FTPFiles record with ID: 69c020c56fc56d895
[2026-03-22 17:03:01] [INFO] About to extract fields from XML. File size: 5028 bytes
[2026-03-22 17:03:01] [INFO] Number of mappings: 28
[2026-03-22 17:03:01] [INFO] Starting XML parsing. Content length: 5028
[2026-03-22 17:03:01] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 17:03:01] [INFO] Processing 28 field mappings
[2026-03-22 17:03:01] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 17:03:01] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 17:03:01] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 17:03:01] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 17:03:01] [INFO]   -> Found value: AFD
AFD
[2026-03-22 17:03:01] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nAFD"
[2026-03-22 17:03:01] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 17:03:01] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 17:03:01] [INFO]   -> Found value: 2026000118
[2026-03-22 17:03:01] [INFO]   -> Set field 'incidentInternalId' = "2026000118"
[2026-03-22 17:03:01] [INFO]   -> Set field 'dispatchRunNumber' = "2026000118"
[2026-03-22 17:03:01] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 17:03:01] [INFO]   -> Found value: PUBLIC RELATIONS - FIRE
[2026-03-22 17:03:01] [INFO]   -> Set field 'incidentTypeValue1' = "PUBLIC RELATIONS - FIRE"
[2026-03-22 17:03:01] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 17:03:01] [INFO]   -> Found value: 215
[2026-03-22 17:03:01] [INFO]   -> Set field 'incidentLocationStreetNumber' = 215
[2026-03-22 17:03:01] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 17:03:01] [INFO]   -> Found value: TN
[2026-03-22 17:03:01] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 17:03:01] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 17:03:01] [INFO]   -> Found value: 38544
[2026-03-22 17:03:01] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-22 17:03:01] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 17:03:01] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:01] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 17:03:01] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:01] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 17:03:01] [INFO]   -> Found value: 36.15419
[2026-03-22 17:03:01] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.154189999999999827196006663143634796142578125
[2026-03-22 17:03:01] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 17:03:01] [INFO]   -> Found value: -85.64240
[2026-03-22 17:03:01] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6423999999999949750417727045714855194091796875
[2026-03-22 17:03:01] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 17:03:01] [INFO]   -> Found value: 2026-03-22 12:01:49
[2026-03-22 17:03:01] [INFO]   -> Set field 'alarm' = "2026-03-22 12:01:49"
[2026-03-22 17:03:01] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 17:03:01] [INFO]   -> Found value: 2026-03-22 12:01:49
[2026-03-22 17:03:01] [INFO]   -> Set field 'dispatched' = "2026-03-22 12:01:49"
[2026-03-22 17:03:01] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 17:03:01] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:01] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 17:03:01] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:01] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 17:03:01] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:01] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 17:03:01] [INFO]   -> Found value: FIRST AVE S/THIRD AVE N
[2026-03-22 17:03:01] [INFO]   -> Set field 'incidentLocationCross' = "FIRST AVE S\/THIRD AVE N"
[2026-03-22 17:03:01] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 17:03:01] [INFO]   -> Found value: AEN2
[2026-03-22 17:03:01] [INFO]   -> Set field 'cADVehicleID' = "AEN2"
[2026-03-22 17:03:01] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 17:03:01] [INFO]   -> Found value: 2026-03-22 12:01:49
[2026-03-22 17:03:01] [INFO]   -> Set field 'timedispatch' = "2026-03-22 12:01:49"
[2026-03-22 17:03:01] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 17:03:01] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:01] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 17:03:01] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:01] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 17:03:01] [INFO]   -> Found value: 2026-03-22 12:02:57
[2026-03-22 17:03:01] [INFO]   -> Set field 'timeunitclear' = "2026-03-22 12:02:57"
[2026-03-22 17:03:01] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 17:03:01] [INFO]   -> Found value: 2026-03-22 12:02:57
[2026-03-22 17:03:01] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-22 12:02:57"
[2026-03-22 17:03:01] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 17:03:01] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 17:03:01] [INFO]   -> Found value: 20260030960
[2026-03-22 17:03:01] [INFO]   -> Set field 'policeReportNumber' = "20260030960"
[2026-03-22 17:03:01] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 17:03:01] [INFO]   -> Found value: Event spawned from PUBLIC RELATIONS - FIRE.  [03/22/2026 12:01:49 KMORGAN2]
[2026-03-22 17:03:01] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]"
[2026-03-22 17:03:01] [INFO]   -> Set field 'cADLog' = "Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]"
[2026-03-22 17:03:01] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 17:03:01] [INFO]   -> Found value: BAXTER
[2026-03-22 17:03:01] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-22 17:03:01] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 17:03:01] [INFO]   -> Found value: MAIN
[2026-03-22 17:03:01] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-03-22 17:03:01] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 17:03:01] [INFO]   -> Found value: ST
[2026-03-22 17:03:01] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-22 17:03:01] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 17:03:01] [INFO]   -> Found value: 215 MAIN ST
[2026-03-22 17:03:01] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "215 MAIN ST"
[2026-03-22 17:03:01] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 17:03:01] [INFO] Concatenating street name and type
[2026-03-22 17:03:01] [INFO]   -> Combined street name: MAIN ST
[2026-03-22 17:03:01] [INFO] Built locationCoordinates from lat/lng: 36.15419,-85.6424
[2026-03-22 17:03:01] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nAFD","incidentInternalId":"2026000118","dispatchRunNumber":"2026000118","incidentTypeValue1":"PUBLIC RELATIONS - FIRE","incidentLocationStreetNumber":215,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.154189999999999827196006663143634796142578125,"nERISIncidentLongitude":-85.6423999999999949750417727045714855194091796875,"alarm":"2026-03-22 12:01:49","dispatched":"2026-03-22 12:01:49","incidentLocationCross":"FIRST AVE S\/THIRD AVE N","cADVehicleID":"AEN2","timedispatch":"2026-03-22 12:01:49","timeunitclear":"2026-03-22 12:02:57","timecanceledenroute":"2026-03-22 12:02:57","policeReportNumber":"20260030960","dispatchNotes":"Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]","cADLog":"Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"MAIN ST","incidentAddressTextVersionStreet":"215 MAIN ST","locationCoordinates":"36.15419,-85.6424"}
[2026-03-22 17:03:01] [INFO] Number of extracted fields: 23
[2026-03-22 17:03:01] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
AFD'
[2026-03-22 17:03:01] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
AFD', Parsed IDs = ["AFD","AFD"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 17:03:01] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","AFD"]
[2026-03-22 17:03:01] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-22 17:03:01] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-22 17:03:01] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["AFD"]
[2026-03-22 17:03:01] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-22 17:03:01] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-22 17:03:01] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 17:03:01] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-03-22 17:03:01] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-22 17:03:02] [INFO] Found existing IncidentTypeMapping with ID: 698f52f67a616900a
[2026-03-22 17:03:02] [INFO] Found existing Dispatch with cADNumber '2026000118', ID: 69c02082ce9ea2ac3 - will update instead of create
[2026-03-22 17:03:02] [INFO] Updated existing Dispatches record with ID: 69c02082ce9ea2ac3
[2026-03-22 17:03:02] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170301.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/AFD_20260030960_20260322_170301.XML
[2026-03-22 17:03:02] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170301.XML
[2026-03-22 17:03:07] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170307.XML
[2026-03-22 17:03:07] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170307.XML for user: 68f1466aed072ad4a
[2026-03-22 17:03:07] [INFO] File size: 5028 bytes
[2026-03-22 17:03:08] [INFO] Created FTPFiles record with ID: 69c020cc08f4c71e1
[2026-03-22 17:03:08] [INFO] About to extract fields from XML. File size: 5028 bytes
[2026-03-22 17:03:08] [INFO] Number of mappings: 28
[2026-03-22 17:03:08] [INFO] Starting XML parsing. Content length: 5028
[2026-03-22 17:03:08] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 17:03:08] [INFO] Processing 28 field mappings
[2026-03-22 17:03:08] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 17:03:08] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 17:03:08] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 17:03:08] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 17:03:08] [INFO]   -> Found value: AFD
AFD
[2026-03-22 17:03:08] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nAFD"
[2026-03-22 17:03:08] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 17:03:08] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 17:03:08] [INFO]   -> Found value: 2026000118
[2026-03-22 17:03:08] [INFO]   -> Set field 'incidentInternalId' = "2026000118"
[2026-03-22 17:03:08] [INFO]   -> Set field 'dispatchRunNumber' = "2026000118"
[2026-03-22 17:03:08] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 17:03:08] [INFO]   -> Found value: PUBLIC RELATIONS - FIRE
[2026-03-22 17:03:08] [INFO]   -> Set field 'incidentTypeValue1' = "PUBLIC RELATIONS - FIRE"
[2026-03-22 17:03:08] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 17:03:08] [INFO]   -> Found value: 215
[2026-03-22 17:03:08] [INFO]   -> Set field 'incidentLocationStreetNumber' = 215
[2026-03-22 17:03:08] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 17:03:08] [INFO]   -> Found value: TN
[2026-03-22 17:03:08] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 17:03:08] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 17:03:08] [INFO]   -> Found value: 38544
[2026-03-22 17:03:08] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-22 17:03:08] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 17:03:08] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:08] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 17:03:08] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:08] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 17:03:08] [INFO]   -> Found value: 36.15419
[2026-03-22 17:03:08] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.154189999999999827196006663143634796142578125
[2026-03-22 17:03:08] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 17:03:08] [INFO]   -> Found value: -85.64240
[2026-03-22 17:03:08] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6423999999999949750417727045714855194091796875
[2026-03-22 17:03:08] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 17:03:08] [INFO]   -> Found value: 2026-03-22 12:01:49
[2026-03-22 17:03:08] [INFO]   -> Set field 'alarm' = "2026-03-22 12:01:49"
[2026-03-22 17:03:08] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 17:03:08] [INFO]   -> Found value: 2026-03-22 12:01:49
[2026-03-22 17:03:08] [INFO]   -> Set field 'dispatched' = "2026-03-22 12:01:49"
[2026-03-22 17:03:08] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 17:03:08] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:08] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 17:03:08] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:08] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 17:03:08] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:08] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 17:03:08] [INFO]   -> Found value: FIRST AVE S/THIRD AVE N
[2026-03-22 17:03:08] [INFO]   -> Set field 'incidentLocationCross' = "FIRST AVE S\/THIRD AVE N"
[2026-03-22 17:03:08] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 17:03:08] [INFO]   -> Found value: AEN2
[2026-03-22 17:03:08] [INFO]   -> Set field 'cADVehicleID' = "AEN2"
[2026-03-22 17:03:08] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 17:03:08] [INFO]   -> Found value: 2026-03-22 12:01:49
[2026-03-22 17:03:08] [INFO]   -> Set field 'timedispatch' = "2026-03-22 12:01:49"
[2026-03-22 17:03:08] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 17:03:08] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:08] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 17:03:08] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:08] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 17:03:08] [INFO]   -> Found value: 2026-03-22 12:02:57
[2026-03-22 17:03:08] [INFO]   -> Set field 'timeunitclear' = "2026-03-22 12:02:57"
[2026-03-22 17:03:08] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 17:03:08] [INFO]   -> Found value: 2026-03-22 12:02:57
[2026-03-22 17:03:08] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-22 12:02:57"
[2026-03-22 17:03:08] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 17:03:08] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 17:03:08] [INFO]   -> Found value: 20260030960
[2026-03-22 17:03:08] [INFO]   -> Set field 'policeReportNumber' = "20260030960"
[2026-03-22 17:03:08] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 17:03:08] [INFO]   -> Found value: Event spawned from PUBLIC RELATIONS - FIRE.  [03/22/2026 12:01:49 KMORGAN2]
[2026-03-22 17:03:08] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]"
[2026-03-22 17:03:08] [INFO]   -> Set field 'cADLog' = "Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]"
[2026-03-22 17:03:08] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 17:03:08] [INFO]   -> Found value: BAXTER
[2026-03-22 17:03:08] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-22 17:03:08] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 17:03:08] [INFO]   -> Found value: MAIN
[2026-03-22 17:03:08] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-03-22 17:03:08] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 17:03:08] [INFO]   -> Found value: ST
[2026-03-22 17:03:08] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-22 17:03:08] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 17:03:08] [INFO]   -> Found value: 215 MAIN ST
[2026-03-22 17:03:08] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "215 MAIN ST"
[2026-03-22 17:03:08] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 17:03:08] [INFO] Concatenating street name and type
[2026-03-22 17:03:08] [INFO]   -> Combined street name: MAIN ST
[2026-03-22 17:03:08] [INFO] Built locationCoordinates from lat/lng: 36.15419,-85.6424
[2026-03-22 17:03:08] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nAFD","incidentInternalId":"2026000118","dispatchRunNumber":"2026000118","incidentTypeValue1":"PUBLIC RELATIONS - FIRE","incidentLocationStreetNumber":215,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.154189999999999827196006663143634796142578125,"nERISIncidentLongitude":-85.6423999999999949750417727045714855194091796875,"alarm":"2026-03-22 12:01:49","dispatched":"2026-03-22 12:01:49","incidentLocationCross":"FIRST AVE S\/THIRD AVE N","cADVehicleID":"AEN2","timedispatch":"2026-03-22 12:01:49","timeunitclear":"2026-03-22 12:02:57","timecanceledenroute":"2026-03-22 12:02:57","policeReportNumber":"20260030960","dispatchNotes":"Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]","cADLog":"Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"MAIN ST","incidentAddressTextVersionStreet":"215 MAIN ST","locationCoordinates":"36.15419,-85.6424"}
[2026-03-22 17:03:08] [INFO] Number of extracted fields: 23
[2026-03-22 17:03:08] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
AFD'
[2026-03-22 17:03:08] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
AFD', Parsed IDs = ["AFD","AFD"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 17:03:08] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","AFD"]
[2026-03-22 17:03:08] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-22 17:03:08] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-22 17:03:08] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["AFD"]
[2026-03-22 17:03:08] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-22 17:03:08] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-22 17:03:08] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 17:03:08] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-03-22 17:03:08] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-22 17:03:08] [INFO] Found existing IncidentTypeMapping with ID: 698f52f67a616900a
[2026-03-22 17:03:08] [INFO] Found existing Dispatch with cADNumber '2026000118', ID: 69c02082ce9ea2ac3 - will update instead of create
[2026-03-22 17:03:09] [INFO] Updated existing Dispatches record with ID: 69c02082ce9ea2ac3
[2026-03-22 17:03:09] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170307.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/AFD_20260030960_20260322_170307.XML
[2026-03-22 17:03:09] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170307.XML
[2026-03-22 17:03:09] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170308.XML
[2026-03-22 17:03:09] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170308.XML for user: 68f1466aed072ad4a
[2026-03-22 17:03:09] [INFO] File size: 5028 bytes
[2026-03-22 17:03:09] [INFO] Created FTPFiles record with ID: 69c020cd5f745b25f
[2026-03-22 17:03:09] [INFO] About to extract fields from XML. File size: 5028 bytes
[2026-03-22 17:03:09] [INFO] Number of mappings: 28
[2026-03-22 17:03:09] [INFO] Starting XML parsing. Content length: 5028
[2026-03-22 17:03:09] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 17:03:09] [INFO] Processing 28 field mappings
[2026-03-22 17:03:09] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 17:03:09] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 17:03:09] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 17:03:09] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 17:03:09] [INFO]   -> Found value: AFD
AFD
[2026-03-22 17:03:09] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nAFD"
[2026-03-22 17:03:09] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 17:03:09] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 17:03:09] [INFO]   -> Found value: 2026000118
[2026-03-22 17:03:09] [INFO]   -> Set field 'incidentInternalId' = "2026000118"
[2026-03-22 17:03:09] [INFO]   -> Set field 'dispatchRunNumber' = "2026000118"
[2026-03-22 17:03:09] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 17:03:09] [INFO]   -> Found value: PUBLIC RELATIONS - FIRE
[2026-03-22 17:03:09] [INFO]   -> Set field 'incidentTypeValue1' = "PUBLIC RELATIONS - FIRE"
[2026-03-22 17:03:09] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 17:03:09] [INFO]   -> Found value: 215
[2026-03-22 17:03:09] [INFO]   -> Set field 'incidentLocationStreetNumber' = 215
[2026-03-22 17:03:09] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 17:03:09] [INFO]   -> Found value: TN
[2026-03-22 17:03:09] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 17:03:09] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 17:03:09] [INFO]   -> Found value: 38544
[2026-03-22 17:03:09] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-22 17:03:09] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 17:03:09] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:09] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 17:03:09] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:09] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 17:03:09] [INFO]   -> Found value: 36.15419
[2026-03-22 17:03:09] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.154189999999999827196006663143634796142578125
[2026-03-22 17:03:09] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 17:03:09] [INFO]   -> Found value: -85.64240
[2026-03-22 17:03:09] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6423999999999949750417727045714855194091796875
[2026-03-22 17:03:09] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 17:03:09] [INFO]   -> Found value: 2026-03-22 12:01:49
[2026-03-22 17:03:09] [INFO]   -> Set field 'alarm' = "2026-03-22 12:01:49"
[2026-03-22 17:03:09] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 17:03:09] [INFO]   -> Found value: 2026-03-22 12:01:49
[2026-03-22 17:03:09] [INFO]   -> Set field 'dispatched' = "2026-03-22 12:01:49"
[2026-03-22 17:03:09] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 17:03:09] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:09] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 17:03:09] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:09] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 17:03:09] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:09] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 17:03:09] [INFO]   -> Found value: FIRST AVE S/THIRD AVE N
[2026-03-22 17:03:09] [INFO]   -> Set field 'incidentLocationCross' = "FIRST AVE S\/THIRD AVE N"
[2026-03-22 17:03:09] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 17:03:09] [INFO]   -> Found value: AEN2
[2026-03-22 17:03:09] [INFO]   -> Set field 'cADVehicleID' = "AEN2"
[2026-03-22 17:03:09] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 17:03:09] [INFO]   -> Found value: 2026-03-22 12:01:49
[2026-03-22 17:03:09] [INFO]   -> Set field 'timedispatch' = "2026-03-22 12:01:49"
[2026-03-22 17:03:09] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 17:03:09] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:09] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 17:03:09] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:09] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 17:03:09] [INFO]   -> Found value: 2026-03-22 12:02:57
[2026-03-22 17:03:09] [INFO]   -> Set field 'timeunitclear' = "2026-03-22 12:02:57"
[2026-03-22 17:03:09] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 17:03:09] [INFO]   -> Found value: 2026-03-22 12:02:57
[2026-03-22 17:03:09] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-22 12:02:57"
[2026-03-22 17:03:09] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 17:03:09] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 17:03:09] [INFO]   -> Found value: 20260030960
[2026-03-22 17:03:09] [INFO]   -> Set field 'policeReportNumber' = "20260030960"
[2026-03-22 17:03:09] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 17:03:09] [INFO]   -> Found value: Event spawned from PUBLIC RELATIONS - FIRE.  [03/22/2026 12:01:49 KMORGAN2]
[2026-03-22 17:03:09] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]"
[2026-03-22 17:03:09] [INFO]   -> Set field 'cADLog' = "Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]"
[2026-03-22 17:03:09] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 17:03:09] [INFO]   -> Found value: BAXTER
[2026-03-22 17:03:09] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-22 17:03:09] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 17:03:09] [INFO]   -> Found value: MAIN
[2026-03-22 17:03:09] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-03-22 17:03:09] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 17:03:09] [INFO]   -> Found value: ST
[2026-03-22 17:03:09] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-22 17:03:09] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 17:03:09] [INFO]   -> Found value: 215 MAIN ST
[2026-03-22 17:03:09] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "215 MAIN ST"
[2026-03-22 17:03:09] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 17:03:09] [INFO] Concatenating street name and type
[2026-03-22 17:03:09] [INFO]   -> Combined street name: MAIN ST
[2026-03-22 17:03:09] [INFO] Built locationCoordinates from lat/lng: 36.15419,-85.6424
[2026-03-22 17:03:09] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nAFD","incidentInternalId":"2026000118","dispatchRunNumber":"2026000118","incidentTypeValue1":"PUBLIC RELATIONS - FIRE","incidentLocationStreetNumber":215,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.154189999999999827196006663143634796142578125,"nERISIncidentLongitude":-85.6423999999999949750417727045714855194091796875,"alarm":"2026-03-22 12:01:49","dispatched":"2026-03-22 12:01:49","incidentLocationCross":"FIRST AVE S\/THIRD AVE N","cADVehicleID":"AEN2","timedispatch":"2026-03-22 12:01:49","timeunitclear":"2026-03-22 12:02:57","timecanceledenroute":"2026-03-22 12:02:57","policeReportNumber":"20260030960","dispatchNotes":"Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]","cADLog":"Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"MAIN ST","incidentAddressTextVersionStreet":"215 MAIN ST","locationCoordinates":"36.15419,-85.6424"}
[2026-03-22 17:03:09] [INFO] Number of extracted fields: 23
[2026-03-22 17:03:09] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
AFD'
[2026-03-22 17:03:09] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
AFD', Parsed IDs = ["AFD","AFD"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 17:03:09] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","AFD"]
[2026-03-22 17:03:09] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-22 17:03:09] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-22 17:03:09] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["AFD"]
[2026-03-22 17:03:09] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-22 17:03:09] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-22 17:03:09] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 17:03:09] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-03-22 17:03:09] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-22 17:03:10] [INFO] Found existing IncidentTypeMapping with ID: 698f52f67a616900a
[2026-03-22 17:03:10] [INFO] Found existing Dispatch with cADNumber '2026000118', ID: 69c02082ce9ea2ac3 - will update instead of create
[2026-03-22 17:03:10] [INFO] Updated existing Dispatches record with ID: 69c02082ce9ea2ac3
[2026-03-22 17:03:10] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170308.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/AFD_20260030960_20260322_170308.XML
[2026-03-22 17:03:10] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170308.XML
[2026-03-22 17:03:10] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170308_1.XML
[2026-03-22 17:03:10] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170308_1.XML for user: 68f1466aed072ad4a
[2026-03-22 17:03:10] [INFO] File size: 5028 bytes
[2026-03-22 17:03:10] [INFO] Created FTPFiles record with ID: 69c020cea7b3570e1
[2026-03-22 17:03:10] [INFO] About to extract fields from XML. File size: 5028 bytes
[2026-03-22 17:03:10] [INFO] Number of mappings: 28
[2026-03-22 17:03:10] [INFO] Starting XML parsing. Content length: 5028
[2026-03-22 17:03:10] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 17:03:10] [INFO] Processing 28 field mappings
[2026-03-22 17:03:10] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 17:03:10] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 17:03:10] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 17:03:10] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 17:03:10] [INFO]   -> Found value: AFD
AFD
[2026-03-22 17:03:10] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nAFD"
[2026-03-22 17:03:10] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 17:03:10] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 17:03:10] [INFO]   -> Found value: 2026000118
[2026-03-22 17:03:10] [INFO]   -> Set field 'incidentInternalId' = "2026000118"
[2026-03-22 17:03:10] [INFO]   -> Set field 'dispatchRunNumber' = "2026000118"
[2026-03-22 17:03:10] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 17:03:10] [INFO]   -> Found value: PUBLIC RELATIONS - FIRE
[2026-03-22 17:03:10] [INFO]   -> Set field 'incidentTypeValue1' = "PUBLIC RELATIONS - FIRE"
[2026-03-22 17:03:10] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 17:03:10] [INFO]   -> Found value: 215
[2026-03-22 17:03:10] [INFO]   -> Set field 'incidentLocationStreetNumber' = 215
[2026-03-22 17:03:10] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 17:03:10] [INFO]   -> Found value: TN
[2026-03-22 17:03:10] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 17:03:10] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 17:03:10] [INFO]   -> Found value: 38544
[2026-03-22 17:03:10] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38544
[2026-03-22 17:03:10] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 17:03:10] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:10] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 17:03:10] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:10] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 17:03:10] [INFO]   -> Found value: 36.15419
[2026-03-22 17:03:10] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.154189999999999827196006663143634796142578125
[2026-03-22 17:03:10] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 17:03:10] [INFO]   -> Found value: -85.64240
[2026-03-22 17:03:10] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.6423999999999949750417727045714855194091796875
[2026-03-22 17:03:10] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 17:03:10] [INFO]   -> Found value: 2026-03-22 12:01:49
[2026-03-22 17:03:10] [INFO]   -> Set field 'alarm' = "2026-03-22 12:01:49"
[2026-03-22 17:03:10] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 17:03:10] [INFO]   -> Found value: 2026-03-22 12:01:49
[2026-03-22 17:03:10] [INFO]   -> Set field 'dispatched' = "2026-03-22 12:01:49"
[2026-03-22 17:03:10] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 17:03:10] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:10] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 17:03:10] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:10] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 17:03:10] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:10] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 17:03:10] [INFO]   -> Found value: FIRST AVE S/THIRD AVE N
[2026-03-22 17:03:10] [INFO]   -> Set field 'incidentLocationCross' = "FIRST AVE S\/THIRD AVE N"
[2026-03-22 17:03:10] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 17:03:10] [INFO]   -> Found value: AEN2
[2026-03-22 17:03:10] [INFO]   -> Set field 'cADVehicleID' = "AEN2"
[2026-03-22 17:03:10] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 17:03:10] [INFO]   -> Found value: 2026-03-22 12:01:49
[2026-03-22 17:03:10] [INFO]   -> Set field 'timedispatch' = "2026-03-22 12:01:49"
[2026-03-22 17:03:10] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 17:03:10] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:10] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 17:03:10] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:10] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 17:03:10] [INFO]   -> Found value: 2026-03-22 12:02:57
[2026-03-22 17:03:10] [INFO]   -> Set field 'timeunitclear' = "2026-03-22 12:02:57"
[2026-03-22 17:03:10] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 17:03:10] [INFO]   -> Found value: 2026-03-22 12:02:57
[2026-03-22 17:03:10] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-22 12:02:57"
[2026-03-22 17:03:10] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 17:03:10] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 17:03:10] [INFO]   -> Found value: 20260030960
[2026-03-22 17:03:10] [INFO]   -> Set field 'policeReportNumber' = "20260030960"
[2026-03-22 17:03:10] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 17:03:10] [INFO]   -> Found value: Event spawned from PUBLIC RELATIONS - FIRE.  [03/22/2026 12:01:49 KMORGAN2]
[2026-03-22 17:03:10] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]"
[2026-03-22 17:03:10] [INFO]   -> Set field 'cADLog' = "Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]"
[2026-03-22 17:03:10] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 17:03:10] [INFO]   -> Found value: BAXTER
[2026-03-22 17:03:10] [INFO]   -> Set field 'incidentLocationCity' = "BAXTER"
[2026-03-22 17:03:10] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 17:03:10] [INFO]   -> Found value: MAIN
[2026-03-22 17:03:10] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-03-22 17:03:10] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 17:03:10] [INFO]   -> Found value: ST
[2026-03-22 17:03:10] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-22 17:03:10] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 17:03:10] [INFO]   -> Found value: 215 MAIN ST
[2026-03-22 17:03:10] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "215 MAIN ST"
[2026-03-22 17:03:10] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 17:03:10] [INFO] Concatenating street name and type
[2026-03-22 17:03:10] [INFO]   -> Combined street name: MAIN ST
[2026-03-22 17:03:10] [INFO] Built locationCoordinates from lat/lng: 36.15419,-85.6424
[2026-03-22 17:03:10] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nAFD","incidentInternalId":"2026000118","dispatchRunNumber":"2026000118","incidentTypeValue1":"PUBLIC RELATIONS - FIRE","incidentLocationStreetNumber":215,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38544,"nERISIncidentLatitude":36.154189999999999827196006663143634796142578125,"nERISIncidentLongitude":-85.6423999999999949750417727045714855194091796875,"alarm":"2026-03-22 12:01:49","dispatched":"2026-03-22 12:01:49","incidentLocationCross":"FIRST AVE S\/THIRD AVE N","cADVehicleID":"AEN2","timedispatch":"2026-03-22 12:01:49","timeunitclear":"2026-03-22 12:02:57","timecanceledenroute":"2026-03-22 12:02:57","policeReportNumber":"20260030960","dispatchNotes":"Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]","cADLog":"Event spawned from PUBLIC RELATIONS - FIRE.  [03\/22\/2026 12:01:49 KMORGAN2]","incidentLocationCity":"BAXTER","streetName":"MAIN ST","incidentAddressTextVersionStreet":"215 MAIN ST","locationCoordinates":"36.15419,-85.6424"}
[2026-03-22 17:03:10] [INFO] Number of extracted fields: 23
[2026-03-22 17:03:10] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
AFD'
[2026-03-22 17:03:10] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
AFD', Parsed IDs = ["AFD","AFD"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 17:03:10] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","AFD"]
[2026-03-22 17:03:10] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-22 17:03:10] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-22 17:03:10] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["AFD"]
[2026-03-22 17:03:11] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-22 17:03:11] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-22 17:03:11] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 17:03:11] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-03-22 17:03:11] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-22 17:03:11] [INFO] Found existing IncidentTypeMapping with ID: 698f52f67a616900a
[2026-03-22 17:03:11] [INFO] Found existing Dispatch with cADNumber '2026000118', ID: 69c02082ce9ea2ac3 - will update instead of create
[2026-03-22 17:03:11] [INFO] Updated existing Dispatches record with ID: 69c02082ce9ea2ac3
[2026-03-22 17:03:11] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170308_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/AFD_20260030960_20260322_170308_1.XML
[2026-03-22 17:03:11] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030960_20260322_170308_1.XML
[2026-03-22 17:03:11] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170311.XML
[2026-03-22 17:03:11] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170311.XML for user: 68f1466aed072ad4a
[2026-03-22 17:03:11] [INFO] File size: 4825 bytes
[2026-03-22 17:03:12] [INFO] Created FTPFiles record with ID: 69c020cff1e150e25
[2026-03-22 17:03:12] [INFO] About to extract fields from XML. File size: 4825 bytes
[2026-03-22 17:03:12] [INFO] Number of mappings: 28
[2026-03-22 17:03:12] [INFO] Starting XML parsing. Content length: 4825
[2026-03-22 17:03:12] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 17:03:12] [INFO] Processing 28 field mappings
[2026-03-22 17:03:12] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 17:03:12] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 17:03:12] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 17:03:12] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 17:03:12] [INFO]   -> Found value: AFD
AFD
[2026-03-22 17:03:12] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD\nAFD"
[2026-03-22 17:03:12] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 17:03:12] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 17:03:12] [INFO]   -> Found value: 2026000101
[2026-03-22 17:03:12] [INFO]   -> Set field 'incidentInternalId' = "2026000101"
[2026-03-22 17:03:12] [INFO]   -> Set field 'dispatchRunNumber' = "2026000101"
[2026-03-22 17:03:12] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 17:03:12] [INFO]   -> Found value: PUBLIC RELATIONS - FIRE
[2026-03-22 17:03:12] [INFO]   -> Set field 'incidentTypeValue1' = "PUBLIC RELATIONS - FIRE"
[2026-03-22 17:03:12] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 17:03:12] [INFO]   -> Found value: 215
[2026-03-22 17:03:12] [INFO]   -> Set field 'incidentLocationStreetNumber' = 215
[2026-03-22 17:03:12] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 17:03:12] [INFO]   -> Found value: TN
[2026-03-22 17:03:12] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 17:03:12] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 17:03:12] [INFO]   -> Found value: 38506
[2026-03-22 17:03:12] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 17:03:12] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 17:03:12] [INFO]   -> Found value: ALGOOD CITY HALL
[2026-03-22 17:03:12] [INFO]   -> Set field 'businessName' = "ALGOOD CITY HALL"
[2026-03-22 17:03:12] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 17:03:12] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:12] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 17:03:12] [INFO]   -> Found value: 36.19286
[2026-03-22 17:03:12] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19286000000000314003045787103474140167236328125
[2026-03-22 17:03:12] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 17:03:12] [INFO]   -> Found value: -85.45087
[2026-03-22 17:03:12] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4508699999999947749529383145272731781005859375
[2026-03-22 17:03:12] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 17:03:12] [INFO]   -> Found value: 2026-03-22 12:01:17
[2026-03-22 17:03:12] [INFO]   -> Set field 'alarm' = "2026-03-22 12:01:17"
[2026-03-22 17:03:12] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 17:03:12] [INFO]   -> Found value: 2026-03-22 12:03:08
[2026-03-22 17:03:12] [INFO]   -> Set field 'dispatched' = "2026-03-22 12:03:08"
[2026-03-22 17:03:12] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 17:03:12] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:12] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 17:03:12] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:12] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 17:03:12] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:12] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 17:03:12] [INFO]   -> Found value: 4TH AVE/PENNOCK ST
[2026-03-22 17:03:12] [INFO]   -> Set field 'incidentLocationCross' = "4TH AVE\/PENNOCK ST"
[2026-03-22 17:03:12] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 17:03:12] [INFO]   -> Found value: AEN2
[2026-03-22 17:03:12] [INFO]   -> Set field 'cADVehicleID' = "AEN2"
[2026-03-22 17:03:12] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 17:03:12] [INFO]   -> Found value: 2026-03-22 12:03:08
[2026-03-22 17:03:12] [INFO]   -> Set field 'timedispatch' = "2026-03-22 12:03:08"
[2026-03-22 17:03:12] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 17:03:12] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:12] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 17:03:12] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:12] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 17:03:12] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:12] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 17:03:12] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:12] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 17:03:12] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 17:03:12] [INFO]   -> Found value: 20260030959
[2026-03-22 17:03:12] [INFO]   -> Set field 'policeReportNumber' = "20260030959"
[2026-03-22 17:03:12] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 17:03:12] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:12] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 17:03:12] [INFO]   -> Found value: ALGOOD
[2026-03-22 17:03:12] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-22 17:03:12] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 17:03:12] [INFO]   -> Found value: MAIN
[2026-03-22 17:03:12] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-03-22 17:03:12] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 17:03:12] [INFO]   -> Found value: ST
[2026-03-22 17:03:12] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-22 17:03:12] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 17:03:12] [INFO]   -> Found value: 215 W MAIN ST
[2026-03-22 17:03:12] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "215 W MAIN ST"
[2026-03-22 17:03:12] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-03-22 17:03:12] [INFO] Concatenating street name and type
[2026-03-22 17:03:12] [INFO]   -> Combined street name: MAIN ST
[2026-03-22 17:03:12] [INFO] Built locationCoordinates from lat/lng: 36.19286,-85.45087
[2026-03-22 17:03:12] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD\nAFD","incidentInternalId":"2026000101","dispatchRunNumber":"2026000101","incidentTypeValue1":"PUBLIC RELATIONS - FIRE","incidentLocationStreetNumber":215,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"ALGOOD CITY HALL","nERISIncidentLatitude":36.19286000000000314003045787103474140167236328125,"nERISIncidentLongitude":-85.4508699999999947749529383145272731781005859375,"alarm":"2026-03-22 12:01:17","dispatched":"2026-03-22 12:03:08","incidentLocationCross":"4TH AVE\/PENNOCK ST","cADVehicleID":"AEN2","timedispatch":"2026-03-22 12:03:08","policeReportNumber":"20260030959","incidentLocationCity":"ALGOOD","streetName":"MAIN ST","incidentAddressTextVersionStreet":"215 W MAIN ST","locationCoordinates":"36.19286,-85.45087"}
[2026-03-22 17:03:12] [INFO] Number of extracted fields: 20
[2026-03-22 17:03:12] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD
AFD'
[2026-03-22 17:03:12] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD
AFD', Parsed IDs = ["AFD","AFD"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 17:03:12] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD","AFD"]
[2026-03-22 17:03:12] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-22 17:03:12] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-22 17:03:12] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["AFD"]
[2026-03-22 17:03:12] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-22 17:03:12] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-22 17:03:12] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 17:03:12] [INFO] Filtered cADAgencyIdentifier to: AFD
[2026-03-22 17:03:12] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-22 17:03:12] [INFO] Found existing IncidentTypeMapping with ID: 698f52f67a616900a
[2026-03-22 17:03:12] [INFO] Found existing Dispatch with cADNumber '2026000101', ID: 69b42df98192916f6 - will update instead of create
[2026-03-22 17:03:12] [INFO] Updated existing Dispatches record with ID: 69b42df98192916f6
[2026-03-22 17:03:12] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170311.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/AFD_20260030959_20260322_170311.XML
[2026-03-22 17:03:12] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170311.XML
[2026-03-22 17:03:17] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170317.XML
[2026-03-22 17:03:17] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170317.XML for user: 68f1466aed072ad4a
[2026-03-22 17:03:17] [INFO] File size: 4686 bytes
[2026-03-22 17:03:18] [INFO] Created FTPFiles record with ID: 69c020d60f0471bc3
[2026-03-22 17:03:18] [INFO] About to extract fields from XML. File size: 4686 bytes
[2026-03-22 17:03:18] [INFO] Number of mappings: 28
[2026-03-22 17:03:18] [INFO] Starting XML parsing. Content length: 4686
[2026-03-22 17:03:18] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 17:03:18] [INFO] Processing 28 field mappings
[2026-03-22 17:03:18] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 17:03:18] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 17:03:18] [INFO]   -> Found value: AFD
[2026-03-22 17:03:18] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-03-22 17:03:18] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 17:03:18] [INFO]   -> Found value: 2026000101
[2026-03-22 17:03:18] [INFO]   -> Set field 'incidentInternalId' = "2026000101"
[2026-03-22 17:03:18] [INFO]   -> Set field 'dispatchRunNumber' = "2026000101"
[2026-03-22 17:03:18] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 17:03:18] [INFO]   -> Found value: PUBLIC RELATIONS - FIRE
[2026-03-22 17:03:18] [INFO]   -> Set field 'incidentTypeValue1' = "PUBLIC RELATIONS - FIRE"
[2026-03-22 17:03:18] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 17:03:18] [INFO]   -> Found value: 215
[2026-03-22 17:03:18] [INFO]   -> Set field 'incidentLocationStreetNumber' = 215
[2026-03-22 17:03:18] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 17:03:18] [INFO]   -> Found value: TN
[2026-03-22 17:03:18] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 17:03:18] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 17:03:18] [INFO]   -> Found value: 38506
[2026-03-22 17:03:18] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 17:03:18] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 17:03:18] [INFO]   -> Found value: ALGOOD CITY HALL
[2026-03-22 17:03:18] [INFO]   -> Set field 'businessName' = "ALGOOD CITY HALL"
[2026-03-22 17:03:18] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 17:03:18] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:18] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 17:03:18] [INFO]   -> Found value: 36.19286
[2026-03-22 17:03:18] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19286000000000314003045787103474140167236328125
[2026-03-22 17:03:18] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 17:03:18] [INFO]   -> Found value: -85.45087
[2026-03-22 17:03:18] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4508699999999947749529383145272731781005859375
[2026-03-22 17:03:18] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 17:03:18] [INFO]   -> Found value: 2026-03-22 12:01:17
[2026-03-22 17:03:18] [INFO]   -> Set field 'alarm' = "2026-03-22 12:01:17"
[2026-03-22 17:03:18] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 17:03:18] [INFO]   -> Found value: 2026-03-22 12:03:08
[2026-03-22 17:03:18] [INFO]   -> Set field 'dispatched' = "2026-03-22 12:03:08"
[2026-03-22 17:03:18] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 17:03:18] [INFO]   -> Found value: 2026-03-22 12:03:14
[2026-03-22 17:03:18] [INFO]   -> Set field 'enroute' = "2026-03-22 12:03:14"
[2026-03-22 17:03:18] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 17:03:18] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:18] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 17:03:18] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:18] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 17:03:18] [INFO]   -> Found value: 4TH AVE/PENNOCK ST
[2026-03-22 17:03:18] [INFO]   -> Set field 'incidentLocationCross' = "4TH AVE\/PENNOCK ST"
[2026-03-22 17:03:18] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 17:03:18] [INFO]   -> Found value: AEN2
[2026-03-22 17:03:18] [INFO]   -> Set field 'cADVehicleID' = "AEN2"
[2026-03-22 17:03:18] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 17:03:18] [INFO]   -> Found value: 2026-03-22 12:03:08
[2026-03-22 17:03:18] [INFO]   -> Set field 'timedispatch' = "2026-03-22 12:03:08"
[2026-03-22 17:03:18] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 17:03:18] [INFO]   -> Found value: 2026-03-22 12:03:14
[2026-03-22 17:03:18] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 12:03:14"
[2026-03-22 17:03:18] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 17:03:18] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:18] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 17:03:18] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:18] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 17:03:18] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:18] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 17:03:18] [INFO]   -> Found value: 20260030959
[2026-03-22 17:03:18] [INFO]   -> Set field 'policeReportNumber' = "20260030959"
[2026-03-22 17:03:18] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 17:03:18] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:18] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 17:03:18] [INFO]   -> Found value: ALGOOD
[2026-03-22 17:03:18] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-22 17:03:18] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 17:03:18] [INFO]   -> Found value: MAIN
[2026-03-22 17:03:18] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-03-22 17:03:18] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 17:03:18] [INFO]   -> Found value: ST
[2026-03-22 17:03:18] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-22 17:03:18] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 17:03:18] [INFO]   -> Found value: 215 W MAIN ST
[2026-03-22 17:03:18] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "215 W MAIN ST"
[2026-03-22 17:03:18] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-22 17:03:18] [INFO] Concatenating street name and type
[2026-03-22 17:03:18] [INFO]   -> Combined street name: MAIN ST
[2026-03-22 17:03:18] [INFO] Built locationCoordinates from lat/lng: 36.19286,-85.45087
[2026-03-22 17:03:18] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000101","dispatchRunNumber":"2026000101","incidentTypeValue1":"PUBLIC RELATIONS - FIRE","incidentLocationStreetNumber":215,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"ALGOOD CITY HALL","nERISIncidentLatitude":36.19286000000000314003045787103474140167236328125,"nERISIncidentLongitude":-85.4508699999999947749529383145272731781005859375,"alarm":"2026-03-22 12:01:17","dispatched":"2026-03-22 12:03:08","enroute":"2026-03-22 12:03:14","incidentLocationCross":"4TH AVE\/PENNOCK ST","cADVehicleID":"AEN2","timedispatch":"2026-03-22 12:03:08","timeenroutetoscene":"2026-03-22 12:03:14","policeReportNumber":"20260030959","incidentLocationCity":"ALGOOD","streetName":"MAIN ST","incidentAddressTextVersionStreet":"215 W MAIN ST","locationCoordinates":"36.19286,-85.45087"}
[2026-03-22 17:03:18] [INFO] Number of extracted fields: 22
[2026-03-22 17:03:18] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-03-22 17:03:18] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-22 17:03:18] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-03-22 17:03:18] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-22 17:03:18] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-22 17:03:18] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-22 17:03:18] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-22 17:03:18] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-22 17:03:18] [INFO] Found existing IncidentTypeMapping with ID: 698f52f67a616900a
[2026-03-22 17:03:18] [INFO] Found existing Dispatch with cADNumber '2026000101', ID: 69b42df98192916f6 - will update instead of create
[2026-03-22 17:03:19] [INFO] Updated existing Dispatches record with ID: 69b42df98192916f6
[2026-03-22 17:03:19] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170317.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/AFD_20260030959_20260322_170317.XML
[2026-03-22 17:03:19] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170317.XML
[2026-03-22 17:03:19] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170318.XML
[2026-03-22 17:03:19] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170318.XML for user: 68f1466aed072ad4a
[2026-03-22 17:03:19] [INFO] File size: 4686 bytes
[2026-03-22 17:03:19] [INFO] Created FTPFiles record with ID: 69c020d76c4050749
[2026-03-22 17:03:19] [INFO] About to extract fields from XML. File size: 4686 bytes
[2026-03-22 17:03:19] [INFO] Number of mappings: 28
[2026-03-22 17:03:19] [INFO] Starting XML parsing. Content length: 4686
[2026-03-22 17:03:19] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 17:03:19] [INFO] Processing 28 field mappings
[2026-03-22 17:03:19] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 17:03:19] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 17:03:19] [INFO]   -> Found value: AFD
[2026-03-22 17:03:19] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-03-22 17:03:19] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 17:03:19] [INFO]   -> Found value: 2026000101
[2026-03-22 17:03:19] [INFO]   -> Set field 'incidentInternalId' = "2026000101"
[2026-03-22 17:03:19] [INFO]   -> Set field 'dispatchRunNumber' = "2026000101"
[2026-03-22 17:03:19] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 17:03:19] [INFO]   -> Found value: PUBLIC RELATIONS - FIRE
[2026-03-22 17:03:19] [INFO]   -> Set field 'incidentTypeValue1' = "PUBLIC RELATIONS - FIRE"
[2026-03-22 17:03:19] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 17:03:19] [INFO]   -> Found value: 215
[2026-03-22 17:03:19] [INFO]   -> Set field 'incidentLocationStreetNumber' = 215
[2026-03-22 17:03:19] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 17:03:19] [INFO]   -> Found value: TN
[2026-03-22 17:03:19] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 17:03:19] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 17:03:19] [INFO]   -> Found value: 38506
[2026-03-22 17:03:19] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 17:03:19] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 17:03:19] [INFO]   -> Found value: ALGOOD CITY HALL
[2026-03-22 17:03:19] [INFO]   -> Set field 'businessName' = "ALGOOD CITY HALL"
[2026-03-22 17:03:19] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 17:03:19] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:19] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 17:03:19] [INFO]   -> Found value: 36.19286
[2026-03-22 17:03:19] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19286000000000314003045787103474140167236328125
[2026-03-22 17:03:19] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 17:03:19] [INFO]   -> Found value: -85.45087
[2026-03-22 17:03:19] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4508699999999947749529383145272731781005859375
[2026-03-22 17:03:19] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 17:03:19] [INFO]   -> Found value: 2026-03-22 12:01:17
[2026-03-22 17:03:19] [INFO]   -> Set field 'alarm' = "2026-03-22 12:01:17"
[2026-03-22 17:03:19] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 17:03:19] [INFO]   -> Found value: 2026-03-22 12:03:08
[2026-03-22 17:03:19] [INFO]   -> Set field 'dispatched' = "2026-03-22 12:03:08"
[2026-03-22 17:03:19] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 17:03:19] [INFO]   -> Found value: 2026-03-22 12:03:14
[2026-03-22 17:03:19] [INFO]   -> Set field 'enroute' = "2026-03-22 12:03:14"
[2026-03-22 17:03:19] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 17:03:19] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:19] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 17:03:19] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:19] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 17:03:19] [INFO]   -> Found value: 4TH AVE/PENNOCK ST
[2026-03-22 17:03:19] [INFO]   -> Set field 'incidentLocationCross' = "4TH AVE\/PENNOCK ST"
[2026-03-22 17:03:19] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 17:03:19] [INFO]   -> Found value: AEN2
[2026-03-22 17:03:19] [INFO]   -> Set field 'cADVehicleID' = "AEN2"
[2026-03-22 17:03:19] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 17:03:19] [INFO]   -> Found value: 2026-03-22 12:03:08
[2026-03-22 17:03:19] [INFO]   -> Set field 'timedispatch' = "2026-03-22 12:03:08"
[2026-03-22 17:03:19] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 17:03:19] [INFO]   -> Found value: 2026-03-22 12:03:14
[2026-03-22 17:03:19] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 12:03:14"
[2026-03-22 17:03:19] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 17:03:19] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:19] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 17:03:19] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:19] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 17:03:19] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:19] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 17:03:19] [INFO]   -> Found value: 20260030959
[2026-03-22 17:03:19] [INFO]   -> Set field 'policeReportNumber' = "20260030959"
[2026-03-22 17:03:19] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 17:03:19] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:19] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 17:03:19] [INFO]   -> Found value: ALGOOD
[2026-03-22 17:03:19] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-22 17:03:19] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 17:03:19] [INFO]   -> Found value: MAIN
[2026-03-22 17:03:19] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-03-22 17:03:19] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 17:03:19] [INFO]   -> Found value: ST
[2026-03-22 17:03:19] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-22 17:03:19] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 17:03:19] [INFO]   -> Found value: 215 W MAIN ST
[2026-03-22 17:03:19] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "215 W MAIN ST"
[2026-03-22 17:03:19] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-22 17:03:19] [INFO] Concatenating street name and type
[2026-03-22 17:03:19] [INFO]   -> Combined street name: MAIN ST
[2026-03-22 17:03:19] [INFO] Built locationCoordinates from lat/lng: 36.19286,-85.45087
[2026-03-22 17:03:19] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000101","dispatchRunNumber":"2026000101","incidentTypeValue1":"PUBLIC RELATIONS - FIRE","incidentLocationStreetNumber":215,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"ALGOOD CITY HALL","nERISIncidentLatitude":36.19286000000000314003045787103474140167236328125,"nERISIncidentLongitude":-85.4508699999999947749529383145272731781005859375,"alarm":"2026-03-22 12:01:17","dispatched":"2026-03-22 12:03:08","enroute":"2026-03-22 12:03:14","incidentLocationCross":"4TH AVE\/PENNOCK ST","cADVehicleID":"AEN2","timedispatch":"2026-03-22 12:03:08","timeenroutetoscene":"2026-03-22 12:03:14","policeReportNumber":"20260030959","incidentLocationCity":"ALGOOD","streetName":"MAIN ST","incidentAddressTextVersionStreet":"215 W MAIN ST","locationCoordinates":"36.19286,-85.45087"}
[2026-03-22 17:03:19] [INFO] Number of extracted fields: 22
[2026-03-22 17:03:19] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-03-22 17:03:19] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-22 17:03:19] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-03-22 17:03:19] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-22 17:03:19] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-22 17:03:19] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-22 17:03:19] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-22 17:03:19] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-22 17:03:20] [INFO] Found existing IncidentTypeMapping with ID: 698f52f67a616900a
[2026-03-22 17:03:20] [INFO] Found existing Dispatch with cADNumber '2026000101', ID: 69b42df98192916f6 - will update instead of create
[2026-03-22 17:03:20] [INFO] Updated existing Dispatches record with ID: 69b42df98192916f6
[2026-03-22 17:03:20] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170318.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/AFD_20260030959_20260322_170318.XML
[2026-03-22 17:03:20] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170318.XML
[2026-03-22 17:03:20] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170318_1.XML
[2026-03-22 17:03:20] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170318_1.XML for user: 68f1466aed072ad4a
[2026-03-22 17:03:20] [INFO] File size: 4686 bytes
[2026-03-22 17:03:20] [INFO] Created FTPFiles record with ID: 69c020d8b91c0b720
[2026-03-22 17:03:20] [INFO] About to extract fields from XML. File size: 4686 bytes
[2026-03-22 17:03:20] [INFO] Number of mappings: 28
[2026-03-22 17:03:20] [INFO] Starting XML parsing. Content length: 4686
[2026-03-22 17:03:20] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 17:03:20] [INFO] Processing 28 field mappings
[2026-03-22 17:03:20] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 17:03:20] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 17:03:20] [INFO]   -> Found value: AFD
[2026-03-22 17:03:20] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-03-22 17:03:20] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 17:03:20] [INFO]   -> Found value: 2026000101
[2026-03-22 17:03:20] [INFO]   -> Set field 'incidentInternalId' = "2026000101"
[2026-03-22 17:03:20] [INFO]   -> Set field 'dispatchRunNumber' = "2026000101"
[2026-03-22 17:03:20] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 17:03:20] [INFO]   -> Found value: PUBLIC RELATIONS - FIRE
[2026-03-22 17:03:20] [INFO]   -> Set field 'incidentTypeValue1' = "PUBLIC RELATIONS - FIRE"
[2026-03-22 17:03:20] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 17:03:20] [INFO]   -> Found value: 215
[2026-03-22 17:03:20] [INFO]   -> Set field 'incidentLocationStreetNumber' = 215
[2026-03-22 17:03:20] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 17:03:20] [INFO]   -> Found value: TN
[2026-03-22 17:03:20] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 17:03:20] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 17:03:20] [INFO]   -> Found value: 38506
[2026-03-22 17:03:20] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 17:03:20] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 17:03:20] [INFO]   -> Found value: ALGOOD CITY HALL
[2026-03-22 17:03:20] [INFO]   -> Set field 'businessName' = "ALGOOD CITY HALL"
[2026-03-22 17:03:20] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 17:03:20] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:20] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 17:03:20] [INFO]   -> Found value: 36.19286
[2026-03-22 17:03:20] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19286000000000314003045787103474140167236328125
[2026-03-22 17:03:20] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 17:03:20] [INFO]   -> Found value: -85.45087
[2026-03-22 17:03:20] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4508699999999947749529383145272731781005859375
[2026-03-22 17:03:20] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 17:03:20] [INFO]   -> Found value: 2026-03-22 12:01:17
[2026-03-22 17:03:20] [INFO]   -> Set field 'alarm' = "2026-03-22 12:01:17"
[2026-03-22 17:03:20] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 17:03:20] [INFO]   -> Found value: 2026-03-22 12:03:08
[2026-03-22 17:03:20] [INFO]   -> Set field 'dispatched' = "2026-03-22 12:03:08"
[2026-03-22 17:03:20] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 17:03:20] [INFO]   -> Found value: 2026-03-22 12:03:14
[2026-03-22 17:03:20] [INFO]   -> Set field 'enroute' = "2026-03-22 12:03:14"
[2026-03-22 17:03:20] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 17:03:20] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:20] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 17:03:20] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:20] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 17:03:20] [INFO]   -> Found value: 4TH AVE/PENNOCK ST
[2026-03-22 17:03:20] [INFO]   -> Set field 'incidentLocationCross' = "4TH AVE\/PENNOCK ST"
[2026-03-22 17:03:20] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 17:03:20] [INFO]   -> Found value: AEN2
[2026-03-22 17:03:20] [INFO]   -> Set field 'cADVehicleID' = "AEN2"
[2026-03-22 17:03:20] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 17:03:20] [INFO]   -> Found value: 2026-03-22 12:03:08
[2026-03-22 17:03:20] [INFO]   -> Set field 'timedispatch' = "2026-03-22 12:03:08"
[2026-03-22 17:03:20] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 17:03:20] [INFO]   -> Found value: 2026-03-22 12:03:14
[2026-03-22 17:03:20] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 12:03:14"
[2026-03-22 17:03:20] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 17:03:20] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:20] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 17:03:20] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:20] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 17:03:20] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:20] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 17:03:20] [INFO]   -> Found value: 20260030959
[2026-03-22 17:03:20] [INFO]   -> Set field 'policeReportNumber' = "20260030959"
[2026-03-22 17:03:20] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 17:03:20] [INFO]   -> No value found (null or empty)
[2026-03-22 17:03:20] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 17:03:20] [INFO]   -> Found value: ALGOOD
[2026-03-22 17:03:20] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-22 17:03:20] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 17:03:20] [INFO]   -> Found value: MAIN
[2026-03-22 17:03:20] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-03-22 17:03:20] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 17:03:20] [INFO]   -> Found value: ST
[2026-03-22 17:03:20] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-22 17:03:20] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 17:03:20] [INFO]   -> Found value: 215 W MAIN ST
[2026-03-22 17:03:20] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "215 W MAIN ST"
[2026-03-22 17:03:20] [INFO] Finished extracting fields. Total fields extracted: 22
[2026-03-22 17:03:20] [INFO] Concatenating street name and type
[2026-03-22 17:03:20] [INFO]   -> Combined street name: MAIN ST
[2026-03-22 17:03:20] [INFO] Built locationCoordinates from lat/lng: 36.19286,-85.45087
[2026-03-22 17:03:20] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000101","dispatchRunNumber":"2026000101","incidentTypeValue1":"PUBLIC RELATIONS - FIRE","incidentLocationStreetNumber":215,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"ALGOOD CITY HALL","nERISIncidentLatitude":36.19286000000000314003045787103474140167236328125,"nERISIncidentLongitude":-85.4508699999999947749529383145272731781005859375,"alarm":"2026-03-22 12:01:17","dispatched":"2026-03-22 12:03:08","enroute":"2026-03-22 12:03:14","incidentLocationCross":"4TH AVE\/PENNOCK ST","cADVehicleID":"AEN2","timedispatch":"2026-03-22 12:03:08","timeenroutetoscene":"2026-03-22 12:03:14","policeReportNumber":"20260030959","incidentLocationCity":"ALGOOD","streetName":"MAIN ST","incidentAddressTextVersionStreet":"215 W MAIN ST","locationCoordinates":"36.19286,-85.45087"}
[2026-03-22 17:03:20] [INFO] Number of extracted fields: 22
[2026-03-22 17:03:20] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-03-22 17:03:20] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-22 17:03:20] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-03-22 17:03:20] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-22 17:03:20] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-22 17:03:21] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-22 17:03:21] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-22 17:03:21] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-22 17:03:21] [INFO] Found existing IncidentTypeMapping with ID: 698f52f67a616900a
[2026-03-22 17:03:21] [INFO] Found existing Dispatch with cADNumber '2026000101', ID: 69b42df98192916f6 - will update instead of create
[2026-03-22 17:03:21] [INFO] Updated existing Dispatches record with ID: 69b42df98192916f6
[2026-03-22 17:03:21] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170318_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/AFD_20260030959_20260322_170318_1.XML
[2026-03-22 17:03:21] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170318_1.XML
[2026-03-22 17:04:13] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170412.XML
[2026-03-22 17:04:13] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170412.XML for user: 68f1466aed072ad4a
[2026-03-22 17:04:13] [INFO] File size: 4793 bytes
[2026-03-22 17:04:13] [INFO] Created FTPFiles record with ID: 69c0210d6f3a0e2ea
[2026-03-22 17:04:13] [INFO] About to extract fields from XML. File size: 4793 bytes
[2026-03-22 17:04:13] [INFO] Number of mappings: 28
[2026-03-22 17:04:13] [INFO] Starting XML parsing. Content length: 4793
[2026-03-22 17:04:13] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 17:04:13] [INFO] Processing 28 field mappings
[2026-03-22 17:04:13] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 17:04:13] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 17:04:13] [INFO]   -> Found value: AFD
[2026-03-22 17:04:13] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-03-22 17:04:13] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 17:04:13] [INFO]   -> Found value: 2026000101
[2026-03-22 17:04:13] [INFO]   -> Set field 'incidentInternalId' = "2026000101"
[2026-03-22 17:04:13] [INFO]   -> Set field 'dispatchRunNumber' = "2026000101"
[2026-03-22 17:04:13] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 17:04:13] [INFO]   -> Found value: PUBLIC RELATIONS - FIRE
[2026-03-22 17:04:13] [INFO]   -> Set field 'incidentTypeValue1' = "PUBLIC RELATIONS - FIRE"
[2026-03-22 17:04:13] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 17:04:13] [INFO]   -> Found value: 215
[2026-03-22 17:04:13] [INFO]   -> Set field 'incidentLocationStreetNumber' = 215
[2026-03-22 17:04:13] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 17:04:13] [INFO]   -> Found value: TN
[2026-03-22 17:04:13] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 17:04:13] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 17:04:13] [INFO]   -> Found value: 38506
[2026-03-22 17:04:13] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 17:04:13] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 17:04:13] [INFO]   -> Found value: ALGOOD CITY HALL
[2026-03-22 17:04:13] [INFO]   -> Set field 'businessName' = "ALGOOD CITY HALL"
[2026-03-22 17:04:13] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 17:04:13] [INFO]   -> No value found (null or empty)
[2026-03-22 17:04:13] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 17:04:13] [INFO]   -> Found value: 36.19286
[2026-03-22 17:04:13] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.19286000000000314003045787103474140167236328125
[2026-03-22 17:04:13] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 17:04:13] [INFO]   -> Found value: -85.45087
[2026-03-22 17:04:13] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4508699999999947749529383145272731781005859375
[2026-03-22 17:04:13] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 17:04:13] [INFO]   -> Found value: 2026-03-22 12:01:17
[2026-03-22 17:04:13] [INFO]   -> Set field 'alarm' = "2026-03-22 12:01:17"
[2026-03-22 17:04:13] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 17:04:13] [INFO]   -> Found value: 2026-03-22 12:03:08
[2026-03-22 17:04:13] [INFO]   -> Set field 'dispatched' = "2026-03-22 12:03:08"
[2026-03-22 17:04:13] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 17:04:13] [INFO]   -> Found value: 2026-03-22 12:03:14
[2026-03-22 17:04:13] [INFO]   -> Set field 'enroute' = "2026-03-22 12:03:14"
[2026-03-22 17:04:13] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 17:04:13] [INFO]   -> Found value: 2026-03-22 12:04:02
[2026-03-22 17:04:13] [INFO]   -> Set field 'onScene' = "2026-03-22 12:04:02"
[2026-03-22 17:04:13] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 17:04:13] [INFO]   -> No value found (null or empty)
[2026-03-22 17:04:13] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 17:04:13] [INFO]   -> Found value: 4TH AVE/PENNOCK ST
[2026-03-22 17:04:13] [INFO]   -> Set field 'incidentLocationCross' = "4TH AVE\/PENNOCK ST"
[2026-03-22 17:04:13] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 17:04:13] [INFO]   -> Found value: AEN2
[2026-03-22 17:04:13] [INFO]   -> Set field 'cADVehicleID' = "AEN2"
[2026-03-22 17:04:13] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 17:04:13] [INFO]   -> Found value: 2026-03-22 12:03:08
[2026-03-22 17:04:13] [INFO]   -> Set field 'timedispatch' = "2026-03-22 12:03:08"
[2026-03-22 17:04:13] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 17:04:13] [INFO]   -> Found value: 2026-03-22 12:03:14
[2026-03-22 17:04:13] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 12:03:14"
[2026-03-22 17:04:13] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 17:04:13] [INFO]   -> Found value: 2026-03-22 12:04:02
[2026-03-22 17:04:13] [INFO]   -> Set field 'timeonscene' = "2026-03-22 12:04:02"
[2026-03-22 17:04:13] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 17:04:13] [INFO]   -> No value found (null or empty)
[2026-03-22 17:04:13] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 17:04:13] [INFO]   -> No value found (null or empty)
[2026-03-22 17:04:13] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 17:04:13] [INFO]   -> Found value: 20260030959
[2026-03-22 17:04:13] [INFO]   -> Set field 'policeReportNumber' = "20260030959"
[2026-03-22 17:04:13] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 17:04:13] [INFO]   -> No value found (null or empty)
[2026-03-22 17:04:13] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 17:04:13] [INFO]   -> Found value: ALGOOD
[2026-03-22 17:04:13] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-22 17:04:13] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 17:04:13] [INFO]   -> Found value: MAIN
[2026-03-22 17:04:13] [INFO]   -> Set field 'streetName' = "MAIN"
[2026-03-22 17:04:13] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 17:04:13] [INFO]   -> Found value: ST
[2026-03-22 17:04:13] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-22 17:04:13] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 17:04:13] [INFO]   -> Found value: 215 W MAIN ST
[2026-03-22 17:04:13] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "215 W MAIN ST"
[2026-03-22 17:04:13] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 17:04:13] [INFO] Concatenating street name and type
[2026-03-22 17:04:13] [INFO]   -> Combined street name: MAIN ST
[2026-03-22 17:04:13] [INFO] Built locationCoordinates from lat/lng: 36.19286,-85.45087
[2026-03-22 17:04:13] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000101","dispatchRunNumber":"2026000101","incidentTypeValue1":"PUBLIC RELATIONS - FIRE","incidentLocationStreetNumber":215,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"businessName":"ALGOOD CITY HALL","nERISIncidentLatitude":36.19286000000000314003045787103474140167236328125,"nERISIncidentLongitude":-85.4508699999999947749529383145272731781005859375,"alarm":"2026-03-22 12:01:17","dispatched":"2026-03-22 12:03:08","enroute":"2026-03-22 12:03:14","onScene":"2026-03-22 12:04:02","incidentLocationCross":"4TH AVE\/PENNOCK ST","cADVehicleID":"AEN2","timedispatch":"2026-03-22 12:03:08","timeenroutetoscene":"2026-03-22 12:03:14","timeonscene":"2026-03-22 12:04:02","policeReportNumber":"20260030959","incidentLocationCity":"ALGOOD","streetName":"MAIN ST","incidentAddressTextVersionStreet":"215 W MAIN ST","locationCoordinates":"36.19286,-85.45087"}
[2026-03-22 17:04:13] [INFO] Number of extracted fields: 24
[2026-03-22 17:04:13] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-03-22 17:04:13] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-22 17:04:13] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-03-22 17:04:13] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-22 17:04:13] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-22 17:04:13] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-22 17:04:13] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-22 17:04:14] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-22 17:04:14] [INFO] Found existing IncidentTypeMapping with ID: 698f52f67a616900a
[2026-03-22 17:04:14] [INFO] Found existing Dispatch with cADNumber '2026000101', ID: 69b42df98192916f6 - will update instead of create
[2026-03-22 17:04:14] [INFO] Updated existing Dispatches record with ID: 69b42df98192916f6
[2026-03-22 17:04:14] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170412.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/AFD_20260030959_20260322_170412.XML
[2026-03-22 17:04:14] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260030959_20260322_170412.XML
[2026-03-22 19:12:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191201.XML
[2026-03-22 19:12:01] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191201.XML for user: 68f1466aed072ad4a
[2026-03-22 19:12:01] [INFO] File size: 5683 bytes
[2026-03-22 19:12:02] [INFO] Created FTPFiles record with ID: 69c03f020997cd2c9
[2026-03-22 19:12:02] [INFO] About to extract fields from XML. File size: 5683 bytes
[2026-03-22 19:12:02] [INFO] Number of mappings: 28
[2026-03-22 19:12:02] [INFO] Starting XML parsing. Content length: 5683
[2026-03-22 19:12:02] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 19:12:02] [INFO] Processing 28 field mappings
[2026-03-22 19:12:02] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 19:12:02] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 19:12:02] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 19:12:02] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 19:12:02] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 19:12:02] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 19:12:02] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 19:12:02] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 19:12:02] [INFO]   -> Found value: 2026000775
[2026-03-22 19:12:02] [INFO]   -> Set field 'incidentInternalId' = "2026000775"
[2026-03-22 19:12:02] [INFO]   -> Set field 'dispatchRunNumber' = "2026000775"
[2026-03-22 19:12:02] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 19:12:02] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-22 19:12:02] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-22 19:12:02] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 19:12:02] [INFO]   -> Found value: 3400
[2026-03-22 19:12:02] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3400
[2026-03-22 19:12:02] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 19:12:02] [INFO]   -> Found value: TN
[2026-03-22 19:12:02] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 19:12:02] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 19:12:02] [INFO]   -> Found value: 38506
[2026-03-22 19:12:02] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 19:12:02] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 19:12:02] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:02] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 19:12:02] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:02] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 19:12:02] [INFO]   -> Found value: 36.21066
[2026-03-22 19:12:02] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21065999999999718284016125835478305816650390625
[2026-03-22 19:12:02] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 19:12:02] [INFO]   -> Found value: -85.51230
[2026-03-22 19:12:02] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5122999999999962028596200980246067047119140625
[2026-03-22 19:12:02] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 19:12:02] [INFO]   -> Found value: 2026-03-22 14:10:20
[2026-03-22 19:12:02] [INFO]   -> Set field 'alarm' = "2026-03-22 14:10:20"
[2026-03-22 19:12:02] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 19:12:02] [INFO]   -> Found value: 2026-03-22 14:11:57
[2026-03-22 19:12:02] [INFO]   -> Set field 'dispatched' = "2026-03-22 14:11:57"
[2026-03-22 19:12:02] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 19:12:02] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:02] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 19:12:02] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:02] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 19:12:02] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:02] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 19:12:02] [INFO]   -> Found value: KINNIARD RD/N ALLEN RD
[2026-03-22 19:12:02] [INFO]   -> Set field 'incidentLocationCross' = "KINNIARD RD\/N ALLEN RD"
[2026-03-22 19:12:02] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 19:12:02] [INFO]   -> Found value: EN11
[2026-03-22 19:12:02] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-22 19:12:02] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 19:12:02] [INFO]   -> Found value: 2026-03-22 14:11:57
[2026-03-22 19:12:02] [INFO]   -> Set field 'timedispatch' = "2026-03-22 14:11:57"
[2026-03-22 19:12:02] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 19:12:02] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:02] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 19:12:02] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:02] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 19:12:02] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:02] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 19:12:02] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:02] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 19:12:02] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 19:12:02] [INFO]   -> Found value: 20260031000
[2026-03-22 19:12:02] [INFO]   -> Set field 'policeReportNumber' = "20260031000"
[2026-03-22 19:12:02] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 19:12:02] [INFO]   -> Found value: [EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03/22/26 14:11:48 KELLIS] [LAW] UDTS: L...
[2026-03-22 19:12:02] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]"
[2026-03-22 19:12:02] [INFO]   -> Set field 'cADLog' = "[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]"
[2026-03-22 19:12:02] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 19:12:02] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 19:12:02] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 19:12:02] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 19:12:02] [INFO]   -> Found value: DODSON BRANCH
[2026-03-22 19:12:02] [INFO]   -> Set field 'streetName' = "DODSON BRANCH"
[2026-03-22 19:12:02] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 19:12:02] [INFO]   -> Found value: RD
[2026-03-22 19:12:02] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 19:12:02] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 19:12:02] [INFO]   -> Found value: 3400 DODSON BRANCH RD
[2026-03-22 19:12:02] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3400 DODSON BRANCH RD"
[2026-03-22 19:12:02] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 19:12:02] [INFO] Concatenating street name and type
[2026-03-22 19:12:02] [INFO]   -> Combined street name: DODSON BRANCH RD
[2026-03-22 19:12:02] [INFO] Built locationCoordinates from lat/lng: 36.21066,-85.5123
[2026-03-22 19:12:02] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000775","dispatchRunNumber":"2026000775","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":3400,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.21065999999999718284016125835478305816650390625,"nERISIncidentLongitude":-85.5122999999999962028596200980246067047119140625,"alarm":"2026-03-22 14:10:20","dispatched":"2026-03-22 14:11:57","incidentLocationCross":"KINNIARD RD\/N ALLEN RD","cADVehicleID":"EN11","timedispatch":"2026-03-22 14:11:57","policeReportNumber":"20260031000","dispatchNotes":"[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]","cADLog":"[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]","incidentLocationCity":"COOKEVILLE","streetName":"DODSON BRANCH RD","incidentAddressTextVersionStreet":"3400 DODSON BRANCH RD","locationCoordinates":"36.21066,-85.5123"}
[2026-03-22 19:12:02] [INFO] Number of extracted fields: 21
[2026-03-22 19:12:02] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 19:12:02] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 19:12:02] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 19:12:02] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 19:12:02] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 19:12:02] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 19:12:03] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 19:12:03] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 19:12:03] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 19:12:03] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 19:12:03] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 19:12:03] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-03-22 19:12:14] [INFO] Created new Dispatches record with ID: 69c03f0411163dccd
[2026-03-22 19:12:14] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191201.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031000_20260322_191201.XML
[2026-03-22 19:12:14] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191201.XML
[2026-03-22 19:12:27] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191227.XML
[2026-03-22 19:12:27] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191227.XML for user: 68f1466aed072ad4a
[2026-03-22 19:12:27] [INFO] File size: 6425 bytes
[2026-03-22 19:12:28] [INFO] Created FTPFiles record with ID: 69c03f1c3cfb2b9b6
[2026-03-22 19:12:28] [INFO] About to extract fields from XML. File size: 6425 bytes
[2026-03-22 19:12:28] [INFO] Number of mappings: 28
[2026-03-22 19:12:28] [INFO] Starting XML parsing. Content length: 6425
[2026-03-22 19:12:28] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 19:12:28] [INFO] Processing 28 field mappings
[2026-03-22 19:12:28] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 19:12:28] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 19:12:28] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 19:12:28] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 19:12:28] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 19:12:28] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 19:12:28] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 19:12:28] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 19:12:28] [INFO]   -> Found value: 2026000775
[2026-03-22 19:12:28] [INFO]   -> Set field 'incidentInternalId' = "2026000775"
[2026-03-22 19:12:28] [INFO]   -> Set field 'dispatchRunNumber' = "2026000775"
[2026-03-22 19:12:28] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 19:12:28] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-22 19:12:28] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-22 19:12:28] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 19:12:28] [INFO]   -> Found value: 3400
[2026-03-22 19:12:28] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3400
[2026-03-22 19:12:28] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 19:12:28] [INFO]   -> Found value: TN
[2026-03-22 19:12:28] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 19:12:28] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 19:12:28] [INFO]   -> Found value: 38506
[2026-03-22 19:12:28] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 19:12:28] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 19:12:28] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:28] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 19:12:28] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:28] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 19:12:28] [INFO]   -> Found value: 36.21066
[2026-03-22 19:12:28] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21065999999999718284016125835478305816650390625
[2026-03-22 19:12:28] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 19:12:28] [INFO]   -> Found value: -85.51230
[2026-03-22 19:12:28] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5122999999999962028596200980246067047119140625
[2026-03-22 19:12:28] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 19:12:28] [INFO]   -> Found value: 2026-03-22 14:10:20
[2026-03-22 19:12:28] [INFO]   -> Set field 'alarm' = "2026-03-22 14:10:20"
[2026-03-22 19:12:28] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 19:12:28] [INFO]   -> Found value: 2026-03-22 14:11:57
[2026-03-22 19:12:28] [INFO]   -> Set field 'dispatched' = "2026-03-22 14:11:57"
[2026-03-22 19:12:28] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 19:12:28] [INFO]   -> Found value: 2026-03-22 14:12:24
[2026-03-22 19:12:28] [INFO]   -> Set field 'enroute' = "2026-03-22 14:12:24"
[2026-03-22 19:12:28] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 19:12:28] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:28] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 19:12:28] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:28] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 19:12:28] [INFO]   -> Found value: KINNIARD RD/N ALLEN RD
[2026-03-22 19:12:28] [INFO]   -> Set field 'incidentLocationCross' = "KINNIARD RD\/N ALLEN RD"
[2026-03-22 19:12:28] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 19:12:28] [INFO]   -> Found value: EN11
[2026-03-22 19:12:28] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-22 19:12:28] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 19:12:28] [INFO]   -> Found value: 2026-03-22 14:11:57
[2026-03-22 19:12:28] [INFO]   -> Set field 'timedispatch' = "2026-03-22 14:11:57"
[2026-03-22 19:12:28] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 19:12:28] [INFO]   -> Found value: 2026-03-22 14:12:24
[2026-03-22 19:12:28] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 14:12:24"
[2026-03-22 19:12:28] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 19:12:28] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:28] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 19:12:28] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:28] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 19:12:28] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:28] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 19:12:28] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 19:12:28] [INFO]   -> Found value: 20260031000
[2026-03-22 19:12:28] [INFO]   -> Set field 'policeReportNumber' = "20260031000"
[2026-03-22 19:12:28] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 19:12:28] [INFO]   -> Found value: [EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03/22/26 14:11:48 KELLIS] [LAW] UDTS: L...
[2026-03-22 19:12:28] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]"
[2026-03-22 19:12:28] [INFO]   -> Set field 'cADLog' = "[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]"
[2026-03-22 19:12:28] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 19:12:28] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 19:12:28] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 19:12:28] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 19:12:28] [INFO]   -> Found value: DODSON BRANCH
[2026-03-22 19:12:28] [INFO]   -> Set field 'streetName' = "DODSON BRANCH"
[2026-03-22 19:12:28] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 19:12:28] [INFO]   -> Found value: RD
[2026-03-22 19:12:28] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 19:12:28] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 19:12:28] [INFO]   -> Found value: 3400 DODSON BRANCH RD
[2026-03-22 19:12:28] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3400 DODSON BRANCH RD"
[2026-03-22 19:12:28] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 19:12:28] [INFO] Concatenating street name and type
[2026-03-22 19:12:28] [INFO]   -> Combined street name: DODSON BRANCH RD
[2026-03-22 19:12:28] [INFO] Built locationCoordinates from lat/lng: 36.21066,-85.5123
[2026-03-22 19:12:28] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000775","dispatchRunNumber":"2026000775","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":3400,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.21065999999999718284016125835478305816650390625,"nERISIncidentLongitude":-85.5122999999999962028596200980246067047119140625,"alarm":"2026-03-22 14:10:20","dispatched":"2026-03-22 14:11:57","enroute":"2026-03-22 14:12:24","incidentLocationCross":"KINNIARD RD\/N ALLEN RD","cADVehicleID":"EN11","timedispatch":"2026-03-22 14:11:57","timeenroutetoscene":"2026-03-22 14:12:24","policeReportNumber":"20260031000","dispatchNotes":"[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]","cADLog":"[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]","incidentLocationCity":"COOKEVILLE","streetName":"DODSON BRANCH RD","incidentAddressTextVersionStreet":"3400 DODSON BRANCH RD","locationCoordinates":"36.21066,-85.5123"}
[2026-03-22 19:12:28] [INFO] Number of extracted fields: 23
[2026-03-22 19:12:28] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 19:12:28] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 19:12:28] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 19:12:28] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 19:12:28] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 19:12:28] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 19:12:28] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 19:12:28] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 19:12:28] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 19:12:28] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 19:12:28] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 19:12:28] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-03-22 19:12:28] [INFO] Found existing Dispatch with cADNumber '2026000775', ID: 69c03f0411163dccd - will update instead of create
[2026-03-22 19:12:29] [INFO] Updated existing Dispatches record with ID: 69c03f0411163dccd
[2026-03-22 19:12:29] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191227.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031000_20260322_191227.XML
[2026-03-22 19:12:29] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191227.XML
[2026-03-22 19:12:29] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191228.XML
[2026-03-22 19:12:29] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191228.XML for user: 68f1466aed072ad4a
[2026-03-22 19:12:29] [INFO] File size: 6425 bytes
[2026-03-22 19:12:29] [INFO] Created FTPFiles record with ID: 69c03f1d79495503b
[2026-03-22 19:12:29] [INFO] About to extract fields from XML. File size: 6425 bytes
[2026-03-22 19:12:29] [INFO] Number of mappings: 28
[2026-03-22 19:12:29] [INFO] Starting XML parsing. Content length: 6425
[2026-03-22 19:12:29] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 19:12:29] [INFO] Processing 28 field mappings
[2026-03-22 19:12:29] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 19:12:29] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 19:12:29] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 19:12:29] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 19:12:29] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 19:12:29] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 19:12:29] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 19:12:29] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 19:12:29] [INFO]   -> Found value: 2026000775
[2026-03-22 19:12:29] [INFO]   -> Set field 'incidentInternalId' = "2026000775"
[2026-03-22 19:12:29] [INFO]   -> Set field 'dispatchRunNumber' = "2026000775"
[2026-03-22 19:12:29] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 19:12:29] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-22 19:12:29] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-22 19:12:29] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 19:12:29] [INFO]   -> Found value: 3400
[2026-03-22 19:12:29] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3400
[2026-03-22 19:12:29] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 19:12:29] [INFO]   -> Found value: TN
[2026-03-22 19:12:29] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 19:12:29] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 19:12:29] [INFO]   -> Found value: 38506
[2026-03-22 19:12:29] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 19:12:29] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 19:12:29] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:29] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 19:12:29] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:29] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 19:12:29] [INFO]   -> Found value: 36.21066
[2026-03-22 19:12:29] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21065999999999718284016125835478305816650390625
[2026-03-22 19:12:29] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 19:12:29] [INFO]   -> Found value: -85.51230
[2026-03-22 19:12:29] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5122999999999962028596200980246067047119140625
[2026-03-22 19:12:29] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 19:12:29] [INFO]   -> Found value: 2026-03-22 14:10:20
[2026-03-22 19:12:29] [INFO]   -> Set field 'alarm' = "2026-03-22 14:10:20"
[2026-03-22 19:12:29] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 19:12:29] [INFO]   -> Found value: 2026-03-22 14:11:57
[2026-03-22 19:12:29] [INFO]   -> Set field 'dispatched' = "2026-03-22 14:11:57"
[2026-03-22 19:12:29] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 19:12:29] [INFO]   -> Found value: 2026-03-22 14:12:24
[2026-03-22 19:12:29] [INFO]   -> Set field 'enroute' = "2026-03-22 14:12:24"
[2026-03-22 19:12:29] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 19:12:29] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:29] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 19:12:29] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:29] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 19:12:29] [INFO]   -> Found value: KINNIARD RD/N ALLEN RD
[2026-03-22 19:12:29] [INFO]   -> Set field 'incidentLocationCross' = "KINNIARD RD\/N ALLEN RD"
[2026-03-22 19:12:29] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 19:12:29] [INFO]   -> Found value: EN11
[2026-03-22 19:12:29] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-22 19:12:29] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 19:12:29] [INFO]   -> Found value: 2026-03-22 14:11:57
[2026-03-22 19:12:29] [INFO]   -> Set field 'timedispatch' = "2026-03-22 14:11:57"
[2026-03-22 19:12:29] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 19:12:29] [INFO]   -> Found value: 2026-03-22 14:12:24
[2026-03-22 19:12:29] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 14:12:24"
[2026-03-22 19:12:29] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 19:12:29] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:29] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 19:12:29] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:29] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 19:12:29] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:29] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 19:12:29] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 19:12:29] [INFO]   -> Found value: 20260031000
[2026-03-22 19:12:29] [INFO]   -> Set field 'policeReportNumber' = "20260031000"
[2026-03-22 19:12:29] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 19:12:29] [INFO]   -> Found value: [EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03/22/26 14:11:48 KELLIS] [LAW] UDTS: L...
[2026-03-22 19:12:29] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]"
[2026-03-22 19:12:29] [INFO]   -> Set field 'cADLog' = "[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]"
[2026-03-22 19:12:29] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 19:12:29] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 19:12:29] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 19:12:29] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 19:12:29] [INFO]   -> Found value: DODSON BRANCH
[2026-03-22 19:12:29] [INFO]   -> Set field 'streetName' = "DODSON BRANCH"
[2026-03-22 19:12:29] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 19:12:29] [INFO]   -> Found value: RD
[2026-03-22 19:12:29] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 19:12:29] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 19:12:29] [INFO]   -> Found value: 3400 DODSON BRANCH RD
[2026-03-22 19:12:29] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3400 DODSON BRANCH RD"
[2026-03-22 19:12:29] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 19:12:29] [INFO] Concatenating street name and type
[2026-03-22 19:12:29] [INFO]   -> Combined street name: DODSON BRANCH RD
[2026-03-22 19:12:29] [INFO] Built locationCoordinates from lat/lng: 36.21066,-85.5123
[2026-03-22 19:12:29] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000775","dispatchRunNumber":"2026000775","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":3400,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.21065999999999718284016125835478305816650390625,"nERISIncidentLongitude":-85.5122999999999962028596200980246067047119140625,"alarm":"2026-03-22 14:10:20","dispatched":"2026-03-22 14:11:57","enroute":"2026-03-22 14:12:24","incidentLocationCross":"KINNIARD RD\/N ALLEN RD","cADVehicleID":"EN11","timedispatch":"2026-03-22 14:11:57","timeenroutetoscene":"2026-03-22 14:12:24","policeReportNumber":"20260031000","dispatchNotes":"[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]","cADLog":"[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]","incidentLocationCity":"COOKEVILLE","streetName":"DODSON BRANCH RD","incidentAddressTextVersionStreet":"3400 DODSON BRANCH RD","locationCoordinates":"36.21066,-85.5123"}
[2026-03-22 19:12:29] [INFO] Number of extracted fields: 23
[2026-03-22 19:12:29] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 19:12:29] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 19:12:29] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 19:12:29] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 19:12:29] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 19:12:29] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 19:12:29] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 19:12:29] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 19:12:29] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 19:12:29] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 19:12:29] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 19:12:30] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-03-22 19:12:30] [INFO] Found existing Dispatch with cADNumber '2026000775', ID: 69c03f0411163dccd - will update instead of create
[2026-03-22 19:12:30] [INFO] Updated existing Dispatches record with ID: 69c03f0411163dccd
[2026-03-22 19:12:30] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191228.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031000_20260322_191228.XML
[2026-03-22 19:12:30] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191228.XML
[2026-03-22 19:12:30] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191229.XML
[2026-03-22 19:12:30] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191229.XML for user: 68f1466aed072ad4a
[2026-03-22 19:12:30] [INFO] File size: 6425 bytes
[2026-03-22 19:12:30] [INFO] Created FTPFiles record with ID: 69c03f1ec3ab9db97
[2026-03-22 19:12:30] [INFO] About to extract fields from XML. File size: 6425 bytes
[2026-03-22 19:12:30] [INFO] Number of mappings: 28
[2026-03-22 19:12:30] [INFO] Starting XML parsing. Content length: 6425
[2026-03-22 19:12:30] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 19:12:30] [INFO] Processing 28 field mappings
[2026-03-22 19:12:30] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 19:12:30] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 19:12:30] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 19:12:30] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 19:12:30] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 19:12:30] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 19:12:30] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 19:12:30] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 19:12:30] [INFO]   -> Found value: 2026000775
[2026-03-22 19:12:30] [INFO]   -> Set field 'incidentInternalId' = "2026000775"
[2026-03-22 19:12:30] [INFO]   -> Set field 'dispatchRunNumber' = "2026000775"
[2026-03-22 19:12:30] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 19:12:30] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-22 19:12:30] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-22 19:12:30] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 19:12:30] [INFO]   -> Found value: 3400
[2026-03-22 19:12:30] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3400
[2026-03-22 19:12:30] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 19:12:30] [INFO]   -> Found value: TN
[2026-03-22 19:12:30] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 19:12:30] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 19:12:30] [INFO]   -> Found value: 38506
[2026-03-22 19:12:30] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 19:12:30] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 19:12:30] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:30] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 19:12:30] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:30] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 19:12:30] [INFO]   -> Found value: 36.21066
[2026-03-22 19:12:30] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21065999999999718284016125835478305816650390625
[2026-03-22 19:12:30] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 19:12:30] [INFO]   -> Found value: -85.51230
[2026-03-22 19:12:30] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5122999999999962028596200980246067047119140625
[2026-03-22 19:12:30] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 19:12:30] [INFO]   -> Found value: 2026-03-22 14:10:20
[2026-03-22 19:12:30] [INFO]   -> Set field 'alarm' = "2026-03-22 14:10:20"
[2026-03-22 19:12:30] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 19:12:30] [INFO]   -> Found value: 2026-03-22 14:11:57
[2026-03-22 19:12:30] [INFO]   -> Set field 'dispatched' = "2026-03-22 14:11:57"
[2026-03-22 19:12:30] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 19:12:30] [INFO]   -> Found value: 2026-03-22 14:12:24
[2026-03-22 19:12:30] [INFO]   -> Set field 'enroute' = "2026-03-22 14:12:24"
[2026-03-22 19:12:30] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 19:12:30] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:30] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 19:12:30] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:30] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 19:12:30] [INFO]   -> Found value: KINNIARD RD/N ALLEN RD
[2026-03-22 19:12:30] [INFO]   -> Set field 'incidentLocationCross' = "KINNIARD RD\/N ALLEN RD"
[2026-03-22 19:12:30] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 19:12:30] [INFO]   -> Found value: EN11
[2026-03-22 19:12:30] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-22 19:12:30] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 19:12:30] [INFO]   -> Found value: 2026-03-22 14:11:57
[2026-03-22 19:12:30] [INFO]   -> Set field 'timedispatch' = "2026-03-22 14:11:57"
[2026-03-22 19:12:30] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 19:12:30] [INFO]   -> Found value: 2026-03-22 14:12:24
[2026-03-22 19:12:30] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 14:12:24"
[2026-03-22 19:12:30] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 19:12:30] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:30] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 19:12:30] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:30] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 19:12:30] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:30] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 19:12:30] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 19:12:30] [INFO]   -> Found value: 20260031000
[2026-03-22 19:12:30] [INFO]   -> Set field 'policeReportNumber' = "20260031000"
[2026-03-22 19:12:30] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 19:12:30] [INFO]   -> Found value: [EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03/22/26 14:11:48 KELLIS] [LAW] UDTS: L...
[2026-03-22 19:12:30] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]"
[2026-03-22 19:12:30] [INFO]   -> Set field 'cADLog' = "[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]"
[2026-03-22 19:12:30] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 19:12:30] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 19:12:30] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 19:12:30] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 19:12:30] [INFO]   -> Found value: DODSON BRANCH
[2026-03-22 19:12:30] [INFO]   -> Set field 'streetName' = "DODSON BRANCH"
[2026-03-22 19:12:30] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 19:12:30] [INFO]   -> Found value: RD
[2026-03-22 19:12:30] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 19:12:30] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 19:12:30] [INFO]   -> Found value: 3400 DODSON BRANCH RD
[2026-03-22 19:12:30] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3400 DODSON BRANCH RD"
[2026-03-22 19:12:30] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 19:12:30] [INFO] Concatenating street name and type
[2026-03-22 19:12:30] [INFO]   -> Combined street name: DODSON BRANCH RD
[2026-03-22 19:12:30] [INFO] Built locationCoordinates from lat/lng: 36.21066,-85.5123
[2026-03-22 19:12:30] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000775","dispatchRunNumber":"2026000775","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":3400,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.21065999999999718284016125835478305816650390625,"nERISIncidentLongitude":-85.5122999999999962028596200980246067047119140625,"alarm":"2026-03-22 14:10:20","dispatched":"2026-03-22 14:11:57","enroute":"2026-03-22 14:12:24","incidentLocationCross":"KINNIARD RD\/N ALLEN RD","cADVehicleID":"EN11","timedispatch":"2026-03-22 14:11:57","timeenroutetoscene":"2026-03-22 14:12:24","policeReportNumber":"20260031000","dispatchNotes":"[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]","cADLog":"[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]","incidentLocationCity":"COOKEVILLE","streetName":"DODSON BRANCH RD","incidentAddressTextVersionStreet":"3400 DODSON BRANCH RD","locationCoordinates":"36.21066,-85.5123"}
[2026-03-22 19:12:30] [INFO] Number of extracted fields: 23
[2026-03-22 19:12:30] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 19:12:30] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 19:12:30] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 19:12:30] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 19:12:30] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 19:12:30] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 19:12:31] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 19:12:31] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 19:12:31] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 19:12:31] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 19:12:31] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 19:12:31] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-03-22 19:12:31] [INFO] Found existing Dispatch with cADNumber '2026000775', ID: 69c03f0411163dccd - will update instead of create
[2026-03-22 19:12:31] [INFO] Updated existing Dispatches record with ID: 69c03f0411163dccd
[2026-03-22 19:12:31] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191229.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031000_20260322_191229.XML
[2026-03-22 19:12:31] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191229.XML
[2026-03-22 19:12:33] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191233.XML
[2026-03-22 19:12:33] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191233.XML for user: 68f1466aed072ad4a
[2026-03-22 19:12:33] [INFO] File size: 6425 bytes
[2026-03-22 19:12:34] [INFO] Created FTPFiles record with ID: 69c03f2204380dbc0
[2026-03-22 19:12:34] [INFO] About to extract fields from XML. File size: 6425 bytes
[2026-03-22 19:12:34] [INFO] Number of mappings: 28
[2026-03-22 19:12:34] [INFO] Starting XML parsing. Content length: 6425
[2026-03-22 19:12:34] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 19:12:34] [INFO] Processing 28 field mappings
[2026-03-22 19:12:34] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 19:12:34] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 19:12:34] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 19:12:34] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 19:12:34] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 19:12:34] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 19:12:34] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 19:12:34] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 19:12:34] [INFO]   -> Found value: 2026000775
[2026-03-22 19:12:34] [INFO]   -> Set field 'incidentInternalId' = "2026000775"
[2026-03-22 19:12:34] [INFO]   -> Set field 'dispatchRunNumber' = "2026000775"
[2026-03-22 19:12:34] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 19:12:34] [INFO]   -> Found value: MVC WITH INJURY
[2026-03-22 19:12:34] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2026-03-22 19:12:34] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 19:12:34] [INFO]   -> Found value: 3400
[2026-03-22 19:12:34] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3400
[2026-03-22 19:12:34] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 19:12:34] [INFO]   -> Found value: TN
[2026-03-22 19:12:34] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 19:12:34] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 19:12:34] [INFO]   -> Found value: 38506
[2026-03-22 19:12:34] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 19:12:34] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 19:12:34] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:34] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 19:12:34] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:34] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 19:12:34] [INFO]   -> Found value: 36.21066
[2026-03-22 19:12:34] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21065999999999718284016125835478305816650390625
[2026-03-22 19:12:34] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 19:12:34] [INFO]   -> Found value: -85.51230
[2026-03-22 19:12:34] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.5122999999999962028596200980246067047119140625
[2026-03-22 19:12:34] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 19:12:34] [INFO]   -> Found value: 2026-03-22 14:10:20
[2026-03-22 19:12:34] [INFO]   -> Set field 'alarm' = "2026-03-22 14:10:20"
[2026-03-22 19:12:34] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 19:12:34] [INFO]   -> Found value: 2026-03-22 14:11:57
[2026-03-22 19:12:34] [INFO]   -> Set field 'dispatched' = "2026-03-22 14:11:57"
[2026-03-22 19:12:34] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 19:12:34] [INFO]   -> Found value: 2026-03-22 14:12:24
[2026-03-22 19:12:34] [INFO]   -> Set field 'enroute' = "2026-03-22 14:12:24"
[2026-03-22 19:12:34] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 19:12:34] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:34] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 19:12:34] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:34] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 19:12:34] [INFO]   -> Found value: KINNIARD RD/N ALLEN RD
[2026-03-22 19:12:34] [INFO]   -> Set field 'incidentLocationCross' = "KINNIARD RD\/N ALLEN RD"
[2026-03-22 19:12:34] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 19:12:34] [INFO]   -> Found value: EN11
[2026-03-22 19:12:34] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-22 19:12:34] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 19:12:34] [INFO]   -> Found value: 2026-03-22 14:11:57
[2026-03-22 19:12:34] [INFO]   -> Set field 'timedispatch' = "2026-03-22 14:11:57"
[2026-03-22 19:12:34] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 19:12:34] [INFO]   -> Found value: 2026-03-22 14:12:24
[2026-03-22 19:12:34] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 14:12:24"
[2026-03-22 19:12:34] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 19:12:34] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:34] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 19:12:34] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:34] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 19:12:34] [INFO]   -> No value found (null or empty)
[2026-03-22 19:12:34] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 19:12:34] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 19:12:34] [INFO]   -> Found value: 20260031000
[2026-03-22 19:12:34] [INFO]   -> Set field 'policeReportNumber' = "20260031000"
[2026-03-22 19:12:34] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 19:12:34] [INFO]   -> Found value: [EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03/22/26 14:11:48 KELLIS] [LAW] UDTS: L...
[2026-03-22 19:12:34] [INFO]   -> Set field 'dispatchNotes' = "[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]"
[2026-03-22 19:12:34] [INFO]   -> Set field 'cADLog' = "[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]"
[2026-03-22 19:12:34] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 19:12:34] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 19:12:34] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 19:12:34] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 19:12:34] [INFO]   -> Found value: DODSON BRANCH
[2026-03-22 19:12:34] [INFO]   -> Set field 'streetName' = "DODSON BRANCH"
[2026-03-22 19:12:34] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 19:12:34] [INFO]   -> Found value: RD
[2026-03-22 19:12:34] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 19:12:34] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 19:12:34] [INFO]   -> Found value: 3400 DODSON BRANCH RD
[2026-03-22 19:12:34] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3400 DODSON BRANCH RD"
[2026-03-22 19:12:34] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 19:12:34] [INFO] Concatenating street name and type
[2026-03-22 19:12:34] [INFO]   -> Combined street name: DODSON BRANCH RD
[2026-03-22 19:12:34] [INFO] Built locationCoordinates from lat/lng: 36.21066,-85.5123
[2026-03-22 19:12:34] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000775","dispatchRunNumber":"2026000775","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":3400,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.21065999999999718284016125835478305816650390625,"nERISIncidentLongitude":-85.5122999999999962028596200980246067047119140625,"alarm":"2026-03-22 14:10:20","dispatched":"2026-03-22 14:11:57","enroute":"2026-03-22 14:12:24","incidentLocationCross":"KINNIARD RD\/N ALLEN RD","cADVehicleID":"EN11","timedispatch":"2026-03-22 14:11:57","timeenroutetoscene":"2026-03-22 14:12:24","policeReportNumber":"20260031000","dispatchNotes":"[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]","cADLog":"[EMS] 2 PEOPLE OUT OF VEHICLE BUCKET TRUCK   TREE TRIMMING  [03\/22\/26 14:11:48 KELLIS] [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 14:11:17 SBALLARD] [EMS] NOT BURGESS FALLS RD  [03\/22\/26 14:11:10 KELLIS] [EMS] 3400 DODSON BRANCH RD  [03\/22\/26 14:10:58 KELLIS] Event spawned from MVC ELECTRONIC CRASH NOTIFICAT.  [03\/22\/2026 14:10:20 KELLIS]","incidentLocationCity":"COOKEVILLE","streetName":"DODSON BRANCH RD","incidentAddressTextVersionStreet":"3400 DODSON BRANCH RD","locationCoordinates":"36.21066,-85.5123"}
[2026-03-22 19:12:34] [INFO] Number of extracted fields: 23
[2026-03-22 19:12:34] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 19:12:34] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 19:12:34] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 19:12:34] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 19:12:34] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 19:12:34] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 19:12:34] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 19:12:34] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 19:12:34] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 19:12:34] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 19:12:34] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 19:12:34] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2026-03-22 19:12:34] [INFO] Found existing Dispatch with cADNumber '2026000775', ID: 69c03f0411163dccd - will update instead of create
[2026-03-22 19:12:34] [INFO] Updated existing Dispatches record with ID: 69c03f0411163dccd
[2026-03-22 19:12:34] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191233.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031000_20260322_191233.XML
[2026-03-22 19:12:34] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031000_20260322_191233.XML
[2026-03-22 19:17:16] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08668.xml
[2026-03-22 19:17:16] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08668.xml for user: 68d56363ec1209189
[2026-03-22 19:17:16] [INFO] File size: 2554 bytes
[2026-03-22 19:17:17] [INFO] Created FTPFiles record with ID: 69c0403d0507d1283
[2026-03-22 19:17:17] [INFO] About to extract fields from XML. File size: 2554 bytes
[2026-03-22 19:17:17] [INFO] Number of mappings: 21
[2026-03-22 19:17:17] [INFO] Starting XML parsing. Content length: 2554
[2026-03-22 19:17:17] [INFO] XML parsed successfully. Root element: Incident
[2026-03-22 19:17:17] [INFO] Processing 21 field mappings
[2026-03-22 19:17:17] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-22 19:17:17] [INFO]   -> Found value: 26-08668
[2026-03-22 19:17:17] [INFO]   -> Set field 'dispatchRunNumber' = "26-08668"
[2026-03-22 19:17:17] [INFO]   -> Set field 'cADNumber' = "26-08668"
[2026-03-22 19:17:17] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-22 19:17:17] [INFO]   -> Found value: 103
[2026-03-22 19:17:17] [INFO]   -> Set field 'incidentLocationStreetNumber' = 103
[2026-03-22 19:17:17] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-22 19:17:17] [INFO]   -> Found value: KENNEDY DR
[2026-03-22 19:17:17] [INFO]   -> Set field 'streetName' = "KENNEDY DR"
[2026-03-22 19:17:17] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-22 19:17:17] [INFO]   -> No value found (null or empty)
[2026-03-22 19:17:17] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-22 19:17:17] [INFO]   -> Found value: SIKESTON
[2026-03-22 19:17:17] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-03-22 19:17:17] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-22 19:17:17] [INFO]   -> Found value: SIKESTON CONVALESCENT CENTER
[2026-03-22 19:17:17] [INFO]   -> Set field 'businessName' = "SIKESTON CONVALESCENT CENTER"
[2026-03-22 19:17:17] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-22 19:17:17] [INFO]   -> Found value: MO
[2026-03-22 19:17:17] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-03-22 19:17:17] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-22 19:17:17] [INFO]   -> Found value: 63801
[2026-03-22 19:17:17] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-03-22 19:17:17] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-22 19:17:17] [INFO]   -> Found value: 0
[2026-03-22 19:17:17] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-22 19:17:17] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-22 19:17:17] [INFO]   -> Found value: 0
[2026-03-22 19:17:17] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-22 19:17:17] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-22 19:17:17] [INFO]   -> Found value: FIRE-STRUCTURE
[2026-03-22 19:17:17] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-STRUCTURE"
[2026-03-22 19:17:17] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-22 19:17:17] [INFO]   -> Found value: 03-22-2026 14:05:36|Call Received on 03/22/2026 @ 14:05
MULCH FIRE
NEAR BLDG SPREAD FAST 03-22-2026 ...
[2026-03-22 19:17:17] [INFO]   -> Set field 'dispatchNotes' = "03-22-2026 14:05:36|Call Received on 03\/22\/2026 @ 14:05\nMULCH FIRE\nNEAR BLDG SPREAD FAST 03-22-2026 14:11:04|CANCEL ALL BUT ENG 2,SMOLDERING 03-22-2026 14:16:44|FIRE OUT"
[2026-03-22 19:17:17] [INFO]   -> Set field 'cADLog' = "03-22-2026 14:05:36|Call Received on 03\/22\/2026 @ 14:05\nMULCH FIRE\nNEAR BLDG SPREAD FAST 03-22-2026 14:11:04|CANCEL ALL BUT ENG 2,SMOLDERING 03-22-2026 14:16:44|FIRE OUT"
[2026-03-22 19:17:17] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-22 19:17:17] [INFO]   -> Found value: 03-22-2026T14:07:37
[2026-03-22 19:17:17] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T14:07:37
[2026-03-22 19:17:17] [ERROR] Error formatting datetime '2026-22-03T14:07:37': Failed to parse time string (2026-22-03T14:07:37) at position 6 (2): Unexpected character
[2026-03-22 19:17:17] [INFO]   -> Set field 'alarm' = null
[2026-03-22 19:17:17] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T14:07:37
[2026-03-22 19:17:17] [ERROR] Error formatting datetime '2026-22-03T14:07:37': Failed to parse time string (2026-22-03T14:07:37) at position 6 (2): Unexpected character
[2026-03-22 19:17:17] [INFO]   -> Set field 'dispatched' = null
[2026-03-22 19:17:17] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-22 19:17:17] [INFO]   -> Found value: 03-22-2026T14:13:05
[2026-03-22 19:17:17] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T14:13:05
[2026-03-22 19:17:17] [ERROR] Error formatting datetime '2026-22-03T14:13:05': Failed to parse time string (2026-22-03T14:13:05) at position 6 (2): Unexpected character
[2026-03-22 19:17:17] [INFO]   -> Set field 'onScene' = null
[2026-03-22 19:17:17] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-22 19:17:17] [INFO]   -> No value found (null or empty)
[2026-03-22 19:17:17] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-22 19:17:17] [INFO]   -> Found value: CANCEL
[2026-03-22 19:17:17] [INFO]   -> Set field 'cADVehicleID' = "CANCEL"
[2026-03-22 19:17:17] [INFO]   -> Set field 'name' = "CANCEL"
[2026-03-22 19:17:17] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-22 19:17:17] [INFO]   -> No value found (null or empty)
[2026-03-22 19:17:17] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-22 19:17:17] [INFO]   -> No value found (null or empty)
[2026-03-22 19:17:17] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-22 19:17:17] [INFO]   -> Found value: 03-22-2026T14:16:53
[2026-03-22 19:17:17] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T14:16:53
[2026-03-22 19:17:17] [ERROR] Error formatting datetime '2026-22-03T14:16:53': Failed to parse time string (2026-22-03T14:16:53) at position 6 (2): Unexpected character
[2026-03-22 19:17:17] [INFO]   -> Set field 'timeunitclear' = null
[2026-03-22 19:17:17] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-22 19:17:17] [INFO]   -> Found value: 03-22-2026T14:11:20
[2026-03-22 19:17:17] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T14:11:20
[2026-03-22 19:17:17] [ERROR] Error formatting datetime '2026-22-03T14:11:20': Failed to parse time string (2026-22-03T14:11:20) at position 6 (2): Unexpected character
[2026-03-22 19:17:17] [INFO]   -> Set field 'timedispatch' = null
[2026-03-22 19:17:17] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-22 19:17:17] [INFO]   -> Found value: SDPSFD
[2026-03-22 19:17:17] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-03-22 19:17:17] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 19:17:17] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-22 19:17:17] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-08668","cADNumber":"26-08668","incidentLocationStreetNumber":103,"streetName":"KENNEDY DR","incidentLocationCity":"SIKESTON","businessName":"SIKESTON CONVALESCENT CENTER","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-STRUCTURE","dispatchNotes":"03-22-2026 14:05:36|Call Received on 03\/22\/2026 @ 14:05\nMULCH FIRE\nNEAR BLDG SPREAD FAST 03-22-2026 14:11:04|CANCEL ALL BUT ENG 2,SMOLDERING 03-22-2026 14:16:44|FIRE OUT","cADLog":"03-22-2026 14:05:36|Call Received on 03\/22\/2026 @ 14:05\nMULCH FIRE\nNEAR BLDG SPREAD FAST 03-22-2026 14:11:04|CANCEL ALL BUT ENG 2,SMOLDERING 03-22-2026 14:16:44|FIRE OUT","alarm":null,"dispatched":null,"onScene":null,"cADVehicleID":"CANCEL","name":"CANCEL","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-03-22 19:17:17] [INFO] Number of extracted fields: 22
[2026-03-22 19:17:17] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-03-22 19:17:17] [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-22 19:17:17] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-03-22 19:17:17] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-03-22 19:17:17] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-03-22 19:17:17] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-03-22 19:17:17] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-03-22 19:17:17] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-03-22 19:17:17] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e868e55c0c
[2026-03-22 19:17:19] [INFO] Created new Dispatches record with ID: 69c0403dcb99543f0
[2026-03-22 19:17:19] [INFO] Created archive directory: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-22
[2026-03-22 19:17:19] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08668.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-22/SDPSFD_26-08668.xml
[2026-03-22 19:17:19] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08668.xml
[2026-03-22 19:47:28] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194728.XML
[2026-03-22 19:47:28] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194728.XML for user: 68f1466aed072ad4a
[2026-03-22 19:47:28] [INFO] File size: 4689 bytes
[2026-03-22 19:47:28] [INFO] Created FTPFiles record with ID: 69c047507cea519ce
[2026-03-22 19:47:28] [INFO] About to extract fields from XML. File size: 4689 bytes
[2026-03-22 19:47:28] [INFO] Number of mappings: 28
[2026-03-22 19:47:28] [INFO] Starting XML parsing. Content length: 4689
[2026-03-22 19:47:28] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 19:47:28] [INFO] Processing 28 field mappings
[2026-03-22 19:47:28] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 19:47:28] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 19:47:28] [INFO]   -> Found value: PCFD
[2026-03-22 19:47:28] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-22 19:47:28] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 19:47:28] [INFO]   -> Found value: 2026000776
[2026-03-22 19:47:28] [INFO]   -> Set field 'incidentInternalId' = "2026000776"
[2026-03-22 19:47:28] [INFO]   -> Set field 'dispatchRunNumber' = "2026000776"
[2026-03-22 19:47:28] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 19:47:28] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-22 19:47:28] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-22 19:47:28] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 19:47:28] [INFO]   -> Found value: 620
[2026-03-22 19:47:28] [INFO]   -> Set field 'incidentLocationStreetNumber' = 620
[2026-03-22 19:47:28] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 19:47:28] [INFO]   -> Found value: TN
[2026-03-22 19:47:28] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 19:47:28] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 19:47:28] [INFO]   -> Found value: 38574
[2026-03-22 19:47:28] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 19:47:28] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 19:47:28] [INFO]   -> No value found (null or empty)
[2026-03-22 19:47:28] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 19:47:28] [INFO]   -> No value found (null or empty)
[2026-03-22 19:47:28] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 19:47:28] [INFO]   -> Found value: 36.07188
[2026-03-22 19:47:28] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.07188000000000016598278307355940341949462890625
[2026-03-22 19:47:28] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 19:47:28] [INFO]   -> Found value: -85.29169
[2026-03-22 19:47:28] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2916900000000026693669497035443782806396484375
[2026-03-22 19:47:28] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 19:47:28] [INFO]   -> Found value: 2026-03-22 14:46:30
[2026-03-22 19:47:28] [INFO]   -> Set field 'alarm' = "2026-03-22 14:46:30"
[2026-03-22 19:47:28] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 19:47:28] [INFO]   -> Found value: 2026-03-22 14:47:25
[2026-03-22 19:47:28] [INFO]   -> Set field 'dispatched' = "2026-03-22 14:47:25"
[2026-03-22 19:47:28] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 19:47:28] [INFO]   -> No value found (null or empty)
[2026-03-22 19:47:28] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 19:47:28] [INFO]   -> No value found (null or empty)
[2026-03-22 19:47:28] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 19:47:28] [INFO]   -> No value found (null or empty)
[2026-03-22 19:47:28] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 19:47:28] [INFO]   -> Found value: CENTER PL/SAWMILL RD
[2026-03-22 19:47:28] [INFO]   -> Set field 'incidentLocationCross' = "CENTER PL\/SAWMILL RD"
[2026-03-22 19:47:28] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 19:47:28] [INFO]   -> Found value: EN23
[2026-03-22 19:47:28] [INFO]   -> Set field 'cADVehicleID' = "EN23"
[2026-03-22 19:47:28] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 19:47:28] [INFO]   -> Found value: 2026-03-22 14:47:25
[2026-03-22 19:47:28] [INFO]   -> Set field 'timedispatch' = "2026-03-22 14:47:25"
[2026-03-22 19:47:28] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 19:47:28] [INFO]   -> No value found (null or empty)
[2026-03-22 19:47:28] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 19:47:28] [INFO]   -> No value found (null or empty)
[2026-03-22 19:47:28] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 19:47:28] [INFO]   -> No value found (null or empty)
[2026-03-22 19:47:28] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 19:47:28] [INFO]   -> No value found (null or empty)
[2026-03-22 19:47:28] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 19:47:28] [INFO]   -> Found value: 20260031017
[2026-03-22 19:47:28] [INFO]   -> Set field 'policeReportNumber' = "20260031017"
[2026-03-22 19:47:28] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 19:47:28] [INFO]   -> No value found (null or empty)
[2026-03-22 19:47:28] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 19:47:28] [INFO]   -> Found value: MONTEREY
[2026-03-22 19:47:28] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 19:47:28] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 19:47:28] [INFO]   -> Found value: CLIFF PARK
[2026-03-22 19:47:28] [INFO]   -> Set field 'streetName' = "CLIFF PARK"
[2026-03-22 19:47:28] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 19:47:28] [INFO]   -> Found value: RD
[2026-03-22 19:47:28] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 19:47:28] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 19:47:28] [INFO]   -> Found value: 620 CLIFF PARK RD
[2026-03-22 19:47:28] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "620 CLIFF PARK RD"
[2026-03-22 19:47:28] [INFO] Finished extracting fields. Total fields extracted: 19
[2026-03-22 19:47:28] [INFO] Concatenating street name and type
[2026-03-22 19:47:28] [INFO]   -> Combined street name: CLIFF PARK RD
[2026-03-22 19:47:28] [INFO] Built locationCoordinates from lat/lng: 36.07188,-85.29169
[2026-03-22 19:47:28] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000776","dispatchRunNumber":"2026000776","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":620,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.07188000000000016598278307355940341949462890625,"nERISIncidentLongitude":-85.2916900000000026693669497035443782806396484375,"alarm":"2026-03-22 14:46:30","dispatched":"2026-03-22 14:47:25","incidentLocationCross":"CENTER PL\/SAWMILL RD","cADVehicleID":"EN23","timedispatch":"2026-03-22 14:47:25","policeReportNumber":"20260031017","incidentLocationCity":"MONTEREY","streetName":"CLIFF PARK RD","incidentAddressTextVersionStreet":"620 CLIFF PARK RD","locationCoordinates":"36.07188,-85.29169"}
[2026-03-22 19:47:28] [INFO] Number of extracted fields: 19
[2026-03-22 19:47:28] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-22 19:47:28] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-22 19:47:28] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-22 19:47:28] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 19:47:28] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 19:47:28] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 19:47:28] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 19:47:28] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 19:47:28] [INFO] Found existing IncidentTypeMapping with ID: 693de9e1e8922fc29
[2026-03-22 19:47:38] [INFO] Created new Dispatches record with ID: 69c047514ccdf27b6
[2026-03-22 19:47:38] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194728.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031017_20260322_194728.XML
[2026-03-22 19:47:38] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194728.XML
[2026-03-22 19:48:43] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194843.XML
[2026-03-22 19:48:43] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194843.XML for user: 68f1466aed072ad4a
[2026-03-22 19:48:43] [INFO] File size: 5818 bytes
[2026-03-22 19:48:44] [INFO] Created FTPFiles record with ID: 69c0479c07fbbc84a
[2026-03-22 19:48:44] [INFO] About to extract fields from XML. File size: 5818 bytes
[2026-03-22 19:48:44] [INFO] Number of mappings: 28
[2026-03-22 19:48:44] [INFO] Starting XML parsing. Content length: 5818
[2026-03-22 19:48:44] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 19:48:44] [INFO] Processing 28 field mappings
[2026-03-22 19:48:44] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 19:48:44] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 19:48:44] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 19:48:44] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 19:48:44] [INFO]   -> Found value: PCFD
PCSO
[2026-03-22 19:48:44] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO"
[2026-03-22 19:48:44] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 19:48:44] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 19:48:44] [INFO]   -> Found value: 2026000776
[2026-03-22 19:48:44] [INFO]   -> Set field 'incidentInternalId' = "2026000776"
[2026-03-22 19:48:44] [INFO]   -> Set field 'dispatchRunNumber' = "2026000776"
[2026-03-22 19:48:44] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 19:48:44] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-22 19:48:44] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-22 19:48:44] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 19:48:44] [INFO]   -> Found value: 620
[2026-03-22 19:48:44] [INFO]   -> Set field 'incidentLocationStreetNumber' = 620
[2026-03-22 19:48:44] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 19:48:44] [INFO]   -> Found value: TN
[2026-03-22 19:48:44] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 19:48:44] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 19:48:44] [INFO]   -> Found value: 38574
[2026-03-22 19:48:44] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 19:48:44] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 19:48:44] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:44] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 19:48:44] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:44] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 19:48:44] [INFO]   -> Found value: 36.07188
[2026-03-22 19:48:44] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.07188000000000016598278307355940341949462890625
[2026-03-22 19:48:44] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 19:48:44] [INFO]   -> Found value: -85.29169
[2026-03-22 19:48:44] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2916900000000026693669497035443782806396484375
[2026-03-22 19:48:44] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 19:48:44] [INFO]   -> Found value: 2026-03-22 14:46:30
[2026-03-22 19:48:44] [INFO]   -> Set field 'alarm' = "2026-03-22 14:46:30"
[2026-03-22 19:48:44] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 19:48:44] [INFO]   -> Found value: 2026-03-22 14:47:25
[2026-03-22 19:48:44] [INFO]   -> Set field 'dispatched' = "2026-03-22 14:47:25"
[2026-03-22 19:48:44] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 19:48:44] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:44] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 19:48:44] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:44] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 19:48:44] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:44] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 19:48:44] [INFO]   -> Found value: CENTER PL/SAWMILL RD
[2026-03-22 19:48:44] [INFO]   -> Set field 'incidentLocationCross' = "CENTER PL\/SAWMILL RD"
[2026-03-22 19:48:44] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 19:48:44] [INFO]   -> Found value: EN21
[2026-03-22 19:48:44] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-22 19:48:44] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 19:48:44] [INFO]   -> Found value: 2026-03-22 14:48:39
[2026-03-22 19:48:44] [INFO]   -> Set field 'timedispatch' = "2026-03-22 14:48:39"
[2026-03-22 19:48:44] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 19:48:44] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:44] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 19:48:44] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:44] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 19:48:44] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:44] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 19:48:44] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:44] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 19:48:44] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 19:48:44] [INFO]   -> Found value: 20260031017
[2026-03-22 19:48:44] [INFO]   -> Set field 'policeReportNumber' = "20260031017"
[2026-03-22 19:48:44] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 19:48:44] [INFO]   -> Found value: 50 YARDS AWAY FROM THE HOUSE  [03/22/26 14:47:45 KHILL]
[2026-03-22 19:48:44] [INFO]   -> Set field 'dispatchNotes' = "50 YARDS AWAY FROM THE HOUSE  [03\/22\/26 14:47:45 KHILL]"
[2026-03-22 19:48:44] [INFO]   -> Set field 'cADLog' = "50 YARDS AWAY FROM THE HOUSE  [03\/22\/26 14:47:45 KHILL]"
[2026-03-22 19:48:44] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 19:48:44] [INFO]   -> Found value: MONTEREY
[2026-03-22 19:48:44] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 19:48:44] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 19:48:44] [INFO]   -> Found value: CLIFF PARK
[2026-03-22 19:48:44] [INFO]   -> Set field 'streetName' = "CLIFF PARK"
[2026-03-22 19:48:44] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 19:48:44] [INFO]   -> Found value: RD
[2026-03-22 19:48:44] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 19:48:44] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 19:48:44] [INFO]   -> Found value: 620 CLIFF PARK RD
[2026-03-22 19:48:44] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "620 CLIFF PARK RD"
[2026-03-22 19:48:44] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 19:48:44] [INFO] Concatenating street name and type
[2026-03-22 19:48:44] [INFO]   -> Combined street name: CLIFF PARK RD
[2026-03-22 19:48:44] [INFO] Built locationCoordinates from lat/lng: 36.07188,-85.29169
[2026-03-22 19:48:44] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO","incidentInternalId":"2026000776","dispatchRunNumber":"2026000776","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":620,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.07188000000000016598278307355940341949462890625,"nERISIncidentLongitude":-85.2916900000000026693669497035443782806396484375,"alarm":"2026-03-22 14:46:30","dispatched":"2026-03-22 14:47:25","incidentLocationCross":"CENTER PL\/SAWMILL RD","cADVehicleID":"EN21","timedispatch":"2026-03-22 14:48:39","policeReportNumber":"20260031017","dispatchNotes":"50 YARDS AWAY FROM THE HOUSE  [03\/22\/26 14:47:45 KHILL]","cADLog":"50 YARDS AWAY FROM THE HOUSE  [03\/22\/26 14:47:45 KHILL]","incidentLocationCity":"MONTEREY","streetName":"CLIFF PARK RD","incidentAddressTextVersionStreet":"620 CLIFF PARK RD","locationCoordinates":"36.07188,-85.29169"}
[2026-03-22 19:48:44] [INFO] Number of extracted fields: 21
[2026-03-22 19:48:44] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO'
[2026-03-22 19:48:44] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO', Parsed IDs = ["PCFD","PCSO"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 19:48:44] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO"]
[2026-03-22 19:48:44] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 19:48:44] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 19:48:44] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO"]
[2026-03-22 19:48:44] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 19:48:44] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 19:48:44] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 19:48:44] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 19:48:44] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 19:48:44] [INFO] Found existing IncidentTypeMapping with ID: 693de9e1e8922fc29
[2026-03-22 19:48:44] [INFO] Found existing Dispatch with cADNumber '2026000776', ID: 69c047514ccdf27b6 - will update instead of create
[2026-03-22 19:48:44] [INFO] Updated existing Dispatches record with ID: 69c047514ccdf27b6
[2026-03-22 19:48:44] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194843.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031017_20260322_194843.XML
[2026-03-22 19:48:44] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194843.XML
[2026-03-22 19:48:47] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194847.XML
[2026-03-22 19:48:47] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194847.XML for user: 68f1466aed072ad4a
[2026-03-22 19:48:47] [INFO] File size: 6645 bytes
[2026-03-22 19:48:48] [INFO] Created FTPFiles record with ID: 69c047a03e4413e29
[2026-03-22 19:48:48] [INFO] About to extract fields from XML. File size: 6645 bytes
[2026-03-22 19:48:48] [INFO] Number of mappings: 28
[2026-03-22 19:48:48] [INFO] Starting XML parsing. Content length: 6645
[2026-03-22 19:48:48] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 19:48:48] [INFO] Processing 28 field mappings
[2026-03-22 19:48:48] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 19:48:48] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 19:48:48] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 19:48:48] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 19:48:48] [INFO]   -> Found value: PCFD
PCSO
[2026-03-22 19:48:48] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO"
[2026-03-22 19:48:48] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 19:48:48] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 19:48:48] [INFO]   -> Found value: 2026000776
[2026-03-22 19:48:48] [INFO]   -> Set field 'incidentInternalId' = "2026000776"
[2026-03-22 19:48:48] [INFO]   -> Set field 'dispatchRunNumber' = "2026000776"
[2026-03-22 19:48:48] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 19:48:48] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-22 19:48:48] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-22 19:48:48] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 19:48:48] [INFO]   -> Found value: 620
[2026-03-22 19:48:48] [INFO]   -> Set field 'incidentLocationStreetNumber' = 620
[2026-03-22 19:48:48] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 19:48:48] [INFO]   -> Found value: TN
[2026-03-22 19:48:48] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 19:48:48] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 19:48:48] [INFO]   -> Found value: 38574
[2026-03-22 19:48:48] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 19:48:48] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 19:48:48] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:48] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 19:48:48] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:48] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 19:48:48] [INFO]   -> Found value: 36.07188
[2026-03-22 19:48:48] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.07188000000000016598278307355940341949462890625
[2026-03-22 19:48:48] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 19:48:48] [INFO]   -> Found value: -85.29169
[2026-03-22 19:48:48] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2916900000000026693669497035443782806396484375
[2026-03-22 19:48:48] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 19:48:48] [INFO]   -> Found value: 2026-03-22 14:46:30
[2026-03-22 19:48:48] [INFO]   -> Set field 'alarm' = "2026-03-22 14:46:30"
[2026-03-22 19:48:48] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 19:48:48] [INFO]   -> Found value: 2026-03-22 14:47:25
[2026-03-22 19:48:48] [INFO]   -> Set field 'dispatched' = "2026-03-22 14:47:25"
[2026-03-22 19:48:48] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 19:48:48] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:48] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 19:48:48] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:48] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 19:48:48] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:48] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 19:48:48] [INFO]   -> Found value: CENTER PL/SAWMILL RD
[2026-03-22 19:48:48] [INFO]   -> Set field 'incidentLocationCross' = "CENTER PL\/SAWMILL RD"
[2026-03-22 19:48:48] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 19:48:48] [INFO]   -> Found value: BR21
[2026-03-22 19:48:48] [INFO]   -> Set field 'cADVehicleID' = "BR21"
[2026-03-22 19:48:48] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 19:48:48] [INFO]   -> Found value: 2026-03-22 14:48:42
[2026-03-22 19:48:48] [INFO]   -> Set field 'timedispatch' = "2026-03-22 14:48:42"
[2026-03-22 19:48:48] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 19:48:48] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:48] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 19:48:48] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:48] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 19:48:48] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:48] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 19:48:48] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:48] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 19:48:48] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 19:48:48] [INFO]   -> Found value: 20260031017
[2026-03-22 19:48:48] [INFO]   -> Set field 'policeReportNumber' = "20260031017"
[2026-03-22 19:48:48] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 19:48:48] [INFO]   -> Found value: PER CALLER WINDS ARE BLOWING IT NORTH TOWARDS ANOTHER HOUSE-- DIDN`T WANT TO STAY ON THE PHONE JUST ...
[2026-03-22 19:48:48] [INFO]   -> Set field 'dispatchNotes' = "PER CALLER WINDS ARE BLOWING IT NORTH TOWARDS ANOTHER HOUSE-- DIDN`T WANT TO STAY ON THE PHONE JUST WANTED PERSONEL TO HURRY  [03\/22\/26 14:48:41 KHILL] 50 YARDS AWAY FROM THE HOUSE  [03\/22\/26 14:47:45 KHILL]"
[2026-03-22 19:48:48] [INFO]   -> Set field 'cADLog' = "PER CALLER WINDS ARE BLOWING IT NORTH TOWARDS ANOTHER HOUSE-- DIDN`T WANT TO STAY ON THE PHONE JUST WANTED PERSONEL TO HURRY  [03\/22\/26 14:48:41 KHILL] 50 YARDS AWAY FROM THE HOUSE  [03\/22\/26 14:47:45 KHILL]"
[2026-03-22 19:48:48] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 19:48:48] [INFO]   -> Found value: MONTEREY
[2026-03-22 19:48:48] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 19:48:48] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 19:48:48] [INFO]   -> Found value: CLIFF PARK
[2026-03-22 19:48:48] [INFO]   -> Set field 'streetName' = "CLIFF PARK"
[2026-03-22 19:48:48] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 19:48:48] [INFO]   -> Found value: RD
[2026-03-22 19:48:48] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 19:48:48] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 19:48:48] [INFO]   -> Found value: 620 CLIFF PARK RD
[2026-03-22 19:48:48] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "620 CLIFF PARK RD"
[2026-03-22 19:48:48] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 19:48:48] [INFO] Concatenating street name and type
[2026-03-22 19:48:48] [INFO]   -> Combined street name: CLIFF PARK RD
[2026-03-22 19:48:48] [INFO] Built locationCoordinates from lat/lng: 36.07188,-85.29169
[2026-03-22 19:48:48] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO","incidentInternalId":"2026000776","dispatchRunNumber":"2026000776","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":620,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.07188000000000016598278307355940341949462890625,"nERISIncidentLongitude":-85.2916900000000026693669497035443782806396484375,"alarm":"2026-03-22 14:46:30","dispatched":"2026-03-22 14:47:25","incidentLocationCross":"CENTER PL\/SAWMILL RD","cADVehicleID":"BR21","timedispatch":"2026-03-22 14:48:42","policeReportNumber":"20260031017","dispatchNotes":"PER CALLER WINDS ARE BLOWING IT NORTH TOWARDS ANOTHER HOUSE-- DIDN`T WANT TO STAY ON THE PHONE JUST WANTED PERSONEL TO HURRY  [03\/22\/26 14:48:41 KHILL] 50 YARDS AWAY FROM THE HOUSE  [03\/22\/26 14:47:45 KHILL]","cADLog":"PER CALLER WINDS ARE BLOWING IT NORTH TOWARDS ANOTHER HOUSE-- DIDN`T WANT TO STAY ON THE PHONE JUST WANTED PERSONEL TO HURRY  [03\/22\/26 14:48:41 KHILL] 50 YARDS AWAY FROM THE HOUSE  [03\/22\/26 14:47:45 KHILL]","incidentLocationCity":"MONTEREY","streetName":"CLIFF PARK RD","incidentAddressTextVersionStreet":"620 CLIFF PARK RD","locationCoordinates":"36.07188,-85.29169"}
[2026-03-22 19:48:48] [INFO] Number of extracted fields: 21
[2026-03-22 19:48:48] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO'
[2026-03-22 19:48:48] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO', Parsed IDs = ["PCFD","PCSO"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 19:48:48] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO"]
[2026-03-22 19:48:48] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 19:48:48] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 19:48:48] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO"]
[2026-03-22 19:48:48] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 19:48:48] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 19:48:48] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 19:48:48] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 19:48:48] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 19:48:48] [INFO] Found existing IncidentTypeMapping with ID: 693de9e1e8922fc29
[2026-03-22 19:48:48] [INFO] Found existing Dispatch with cADNumber '2026000776', ID: 69c047514ccdf27b6 - will update instead of create
[2026-03-22 19:48:49] [INFO] Updated existing Dispatches record with ID: 69c047514ccdf27b6
[2026-03-22 19:48:49] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194847.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031017_20260322_194847.XML
[2026-03-22 19:48:49] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194847.XML
[2026-03-22 19:48:49] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194849.XML
[2026-03-22 19:48:49] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194849.XML for user: 68f1466aed072ad4a
[2026-03-22 19:48:49] [INFO] File size: 6712 bytes
[2026-03-22 19:48:50] [INFO] Created FTPFiles record with ID: 69c047a1ee589435c
[2026-03-22 19:48:50] [INFO] About to extract fields from XML. File size: 6712 bytes
[2026-03-22 19:48:50] [INFO] Number of mappings: 28
[2026-03-22 19:48:50] [INFO] Starting XML parsing. Content length: 6712
[2026-03-22 19:48:50] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 19:48:50] [INFO] Processing 28 field mappings
[2026-03-22 19:48:50] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 19:48:50] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 19:48:50] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 19:48:50] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 19:48:50] [INFO]   -> Found value: PCFD
PCSO
[2026-03-22 19:48:50] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO"
[2026-03-22 19:48:50] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 19:48:50] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 19:48:50] [INFO]   -> Found value: 2026000776
[2026-03-22 19:48:50] [INFO]   -> Set field 'incidentInternalId' = "2026000776"
[2026-03-22 19:48:50] [INFO]   -> Set field 'dispatchRunNumber' = "2026000776"
[2026-03-22 19:48:50] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 19:48:50] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-22 19:48:50] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-22 19:48:50] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 19:48:50] [INFO]   -> Found value: 620
[2026-03-22 19:48:50] [INFO]   -> Set field 'incidentLocationStreetNumber' = 620
[2026-03-22 19:48:50] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 19:48:50] [INFO]   -> Found value: TN
[2026-03-22 19:48:50] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 19:48:50] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 19:48:50] [INFO]   -> Found value: 38574
[2026-03-22 19:48:50] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 19:48:50] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 19:48:50] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:50] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 19:48:50] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:50] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 19:48:50] [INFO]   -> Found value: 36.07188
[2026-03-22 19:48:50] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.07188000000000016598278307355940341949462890625
[2026-03-22 19:48:50] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 19:48:50] [INFO]   -> Found value: -85.29169
[2026-03-22 19:48:50] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2916900000000026693669497035443782806396484375
[2026-03-22 19:48:50] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 19:48:50] [INFO]   -> Found value: 2026-03-22 14:46:30
[2026-03-22 19:48:50] [INFO]   -> Set field 'alarm' = "2026-03-22 14:46:30"
[2026-03-22 19:48:50] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 19:48:50] [INFO]   -> Found value: 2026-03-22 14:47:25
[2026-03-22 19:48:50] [INFO]   -> Set field 'dispatched' = "2026-03-22 14:47:25"
[2026-03-22 19:48:50] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 19:48:50] [INFO]   -> Found value: 2026-03-22 14:48:46
[2026-03-22 19:48:50] [INFO]   -> Set field 'enroute' = "2026-03-22 14:48:46"
[2026-03-22 19:48:50] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 19:48:50] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:50] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 19:48:50] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:50] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 19:48:50] [INFO]   -> Found value: CENTER PL/SAWMILL RD
[2026-03-22 19:48:50] [INFO]   -> Set field 'incidentLocationCross' = "CENTER PL\/SAWMILL RD"
[2026-03-22 19:48:50] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 19:48:50] [INFO]   -> Found value: EN21
[2026-03-22 19:48:50] [INFO]   -> Set field 'cADVehicleID' = "EN21"
[2026-03-22 19:48:50] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 19:48:50] [INFO]   -> Found value: 2026-03-22 14:48:39
[2026-03-22 19:48:50] [INFO]   -> Set field 'timedispatch' = "2026-03-22 14:48:39"
[2026-03-22 19:48:50] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 19:48:50] [INFO]   -> Found value: 2026-03-22 14:48:46
[2026-03-22 19:48:50] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 14:48:46"
[2026-03-22 19:48:50] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 19:48:50] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:50] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 19:48:50] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:50] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 19:48:50] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:50] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 19:48:50] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 19:48:50] [INFO]   -> Found value: 20260031017
[2026-03-22 19:48:50] [INFO]   -> Set field 'policeReportNumber' = "20260031017"
[2026-03-22 19:48:50] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 19:48:50] [INFO]   -> Found value: PER CALLER WINDS ARE BLOWING IT NORTH TOWARDS ANOTHER HOUSE-- DIDN`T WANT TO STAY ON THE PHONE JUST ...
[2026-03-22 19:48:50] [INFO]   -> Set field 'dispatchNotes' = "PER CALLER WINDS ARE BLOWING IT NORTH TOWARDS ANOTHER HOUSE-- DIDN`T WANT TO STAY ON THE PHONE JUST WANTED PERSONEL TO HURRY  [03\/22\/26 14:48:41 KHILL] 50 YARDS AWAY FROM THE HOUSE  [03\/22\/26 14:47:45 KHILL]"
[2026-03-22 19:48:50] [INFO]   -> Set field 'cADLog' = "PER CALLER WINDS ARE BLOWING IT NORTH TOWARDS ANOTHER HOUSE-- DIDN`T WANT TO STAY ON THE PHONE JUST WANTED PERSONEL TO HURRY  [03\/22\/26 14:48:41 KHILL] 50 YARDS AWAY FROM THE HOUSE  [03\/22\/26 14:47:45 KHILL]"
[2026-03-22 19:48:50] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 19:48:50] [INFO]   -> Found value: MONTEREY
[2026-03-22 19:48:50] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 19:48:50] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 19:48:50] [INFO]   -> Found value: CLIFF PARK
[2026-03-22 19:48:50] [INFO]   -> Set field 'streetName' = "CLIFF PARK"
[2026-03-22 19:48:50] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 19:48:50] [INFO]   -> Found value: RD
[2026-03-22 19:48:50] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 19:48:50] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 19:48:50] [INFO]   -> Found value: 620 CLIFF PARK RD
[2026-03-22 19:48:50] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "620 CLIFF PARK RD"
[2026-03-22 19:48:50] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 19:48:50] [INFO] Concatenating street name and type
[2026-03-22 19:48:50] [INFO]   -> Combined street name: CLIFF PARK RD
[2026-03-22 19:48:50] [INFO] Built locationCoordinates from lat/lng: 36.07188,-85.29169
[2026-03-22 19:48:50] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO","incidentInternalId":"2026000776","dispatchRunNumber":"2026000776","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":620,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.07188000000000016598278307355940341949462890625,"nERISIncidentLongitude":-85.2916900000000026693669497035443782806396484375,"alarm":"2026-03-22 14:46:30","dispatched":"2026-03-22 14:47:25","enroute":"2026-03-22 14:48:46","incidentLocationCross":"CENTER PL\/SAWMILL RD","cADVehicleID":"EN21","timedispatch":"2026-03-22 14:48:39","timeenroutetoscene":"2026-03-22 14:48:46","policeReportNumber":"20260031017","dispatchNotes":"PER CALLER WINDS ARE BLOWING IT NORTH TOWARDS ANOTHER HOUSE-- DIDN`T WANT TO STAY ON THE PHONE JUST WANTED PERSONEL TO HURRY  [03\/22\/26 14:48:41 KHILL] 50 YARDS AWAY FROM THE HOUSE  [03\/22\/26 14:47:45 KHILL]","cADLog":"PER CALLER WINDS ARE BLOWING IT NORTH TOWARDS ANOTHER HOUSE-- DIDN`T WANT TO STAY ON THE PHONE JUST WANTED PERSONEL TO HURRY  [03\/22\/26 14:48:41 KHILL] 50 YARDS AWAY FROM THE HOUSE  [03\/22\/26 14:47:45 KHILL]","incidentLocationCity":"MONTEREY","streetName":"CLIFF PARK RD","incidentAddressTextVersionStreet":"620 CLIFF PARK RD","locationCoordinates":"36.07188,-85.29169"}
[2026-03-22 19:48:50] [INFO] Number of extracted fields: 23
[2026-03-22 19:48:50] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO'
[2026-03-22 19:48:50] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO', Parsed IDs = ["PCFD","PCSO"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 19:48:50] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO"]
[2026-03-22 19:48:50] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 19:48:50] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 19:48:50] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO"]
[2026-03-22 19:48: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-22 19:48: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-22 19:48:50] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 19:48:50] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 19:48:50] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 19:48:50] [INFO] Found existing IncidentTypeMapping with ID: 693de9e1e8922fc29
[2026-03-22 19:48:50] [INFO] Found existing Dispatch with cADNumber '2026000776', ID: 69c047514ccdf27b6 - will update instead of create
[2026-03-22 19:48:50] [INFO] Updated existing Dispatches record with ID: 69c047514ccdf27b6
[2026-03-22 19:48:50] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194849.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031017_20260322_194849.XML
[2026-03-22 19:48:50] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194849.XML
[2026-03-22 19:48:51] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194851.XML
[2026-03-22 19:48:51] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194851.XML for user: 68f1466aed072ad4a
[2026-03-22 19:48:51] [INFO] File size: 6743 bytes
[2026-03-22 19:48:51] [INFO] Created FTPFiles record with ID: 69c047a3a31ed8340
[2026-03-22 19:48:51] [INFO] About to extract fields from XML. File size: 6743 bytes
[2026-03-22 19:48:51] [INFO] Number of mappings: 28
[2026-03-22 19:48:51] [INFO] Starting XML parsing. Content length: 6743
[2026-03-22 19:48:51] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 19:48:51] [INFO] Processing 28 field mappings
[2026-03-22 19:48:51] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 19:48:51] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 19:48:51] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 19:48:51] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 19:48:51] [INFO]   -> Found value: PCFD
PCSO
[2026-03-22 19:48:51] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nPCSO"
[2026-03-22 19:48:51] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 19:48:51] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 19:48:51] [INFO]   -> Found value: 2026000776
[2026-03-22 19:48:51] [INFO]   -> Set field 'incidentInternalId' = "2026000776"
[2026-03-22 19:48:51] [INFO]   -> Set field 'dispatchRunNumber' = "2026000776"
[2026-03-22 19:48:51] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 19:48:51] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-22 19:48:51] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-22 19:48:51] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 19:48:51] [INFO]   -> Found value: 620
[2026-03-22 19:48:51] [INFO]   -> Set field 'incidentLocationStreetNumber' = 620
[2026-03-22 19:48:51] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 19:48:51] [INFO]   -> Found value: TN
[2026-03-22 19:48:51] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 19:48:51] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 19:48:51] [INFO]   -> Found value: 38574
[2026-03-22 19:48:51] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 19:48:51] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 19:48:51] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:51] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 19:48:51] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:51] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 19:48:51] [INFO]   -> Found value: 36.07188
[2026-03-22 19:48:51] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.07188000000000016598278307355940341949462890625
[2026-03-22 19:48:51] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 19:48:51] [INFO]   -> Found value: -85.29169
[2026-03-22 19:48:51] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2916900000000026693669497035443782806396484375
[2026-03-22 19:48:51] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 19:48:51] [INFO]   -> Found value: 2026-03-22 14:46:30
[2026-03-22 19:48:51] [INFO]   -> Set field 'alarm' = "2026-03-22 14:46:30"
[2026-03-22 19:48:51] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 19:48:51] [INFO]   -> Found value: 2026-03-22 14:47:25
[2026-03-22 19:48:51] [INFO]   -> Set field 'dispatched' = "2026-03-22 14:47:25"
[2026-03-22 19:48:51] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 19:48:51] [INFO]   -> Found value: 2026-03-22 14:48:46
[2026-03-22 19:48:51] [INFO]   -> Set field 'enroute' = "2026-03-22 14:48:46"
[2026-03-22 19:48:51] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 19:48:51] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:51] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 19:48:51] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:51] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 19:48:51] [INFO]   -> Found value: CENTER PL/SAWMILL RD
[2026-03-22 19:48:51] [INFO]   -> Set field 'incidentLocationCross' = "CENTER PL\/SAWMILL RD"
[2026-03-22 19:48:51] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 19:48:51] [INFO]   -> Found value: BR21
[2026-03-22 19:48:51] [INFO]   -> Set field 'cADVehicleID' = "BR21"
[2026-03-22 19:48:51] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 19:48:51] [INFO]   -> Found value: 2026-03-22 14:48:42
[2026-03-22 19:48:51] [INFO]   -> Set field 'timedispatch' = "2026-03-22 14:48:42"
[2026-03-22 19:48:51] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 19:48:51] [INFO]   -> Found value: 2026-03-22 14:48:49
[2026-03-22 19:48:51] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 14:48:49"
[2026-03-22 19:48:51] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 19:48:51] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:51] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 19:48:51] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:51] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 19:48:51] [INFO]   -> No value found (null or empty)
[2026-03-22 19:48:51] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 19:48:51] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 19:48:51] [INFO]   -> Found value: 20260031017
[2026-03-22 19:48:51] [INFO]   -> Set field 'policeReportNumber' = "20260031017"
[2026-03-22 19:48:51] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 19:48:51] [INFO]   -> Found value: PER CALLER WINDS ARE BLOWING IT NORTH TOWARDS ANOTHER HOUSE-- DIDN`T WANT TO STAY ON THE PHONE JUST ...
[2026-03-22 19:48:51] [INFO]   -> Set field 'dispatchNotes' = "PER CALLER WINDS ARE BLOWING IT NORTH TOWARDS ANOTHER HOUSE-- DIDN`T WANT TO STAY ON THE PHONE JUST WANTED PERSONEL TO HURRY  [03\/22\/26 14:48:41 KHILL] 50 YARDS AWAY FROM THE HOUSE  [03\/22\/26 14:47:45 KHILL]"
[2026-03-22 19:48:51] [INFO]   -> Set field 'cADLog' = "PER CALLER WINDS ARE BLOWING IT NORTH TOWARDS ANOTHER HOUSE-- DIDN`T WANT TO STAY ON THE PHONE JUST WANTED PERSONEL TO HURRY  [03\/22\/26 14:48:41 KHILL] 50 YARDS AWAY FROM THE HOUSE  [03\/22\/26 14:47:45 KHILL]"
[2026-03-22 19:48:51] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 19:48:51] [INFO]   -> Found value: MONTEREY
[2026-03-22 19:48:51] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 19:48:51] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 19:48:51] [INFO]   -> Found value: CLIFF PARK
[2026-03-22 19:48:51] [INFO]   -> Set field 'streetName' = "CLIFF PARK"
[2026-03-22 19:48:51] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 19:48:51] [INFO]   -> Found value: RD
[2026-03-22 19:48:51] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 19:48:51] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 19:48:51] [INFO]   -> Found value: 620 CLIFF PARK RD
[2026-03-22 19:48:51] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "620 CLIFF PARK RD"
[2026-03-22 19:48:51] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 19:48:51] [INFO] Concatenating street name and type
[2026-03-22 19:48:51] [INFO]   -> Combined street name: CLIFF PARK RD
[2026-03-22 19:48:51] [INFO] Built locationCoordinates from lat/lng: 36.07188,-85.29169
[2026-03-22 19:48:51] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nPCSO","incidentInternalId":"2026000776","dispatchRunNumber":"2026000776","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":620,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"nERISIncidentLatitude":36.07188000000000016598278307355940341949462890625,"nERISIncidentLongitude":-85.2916900000000026693669497035443782806396484375,"alarm":"2026-03-22 14:46:30","dispatched":"2026-03-22 14:47:25","enroute":"2026-03-22 14:48:46","incidentLocationCross":"CENTER PL\/SAWMILL RD","cADVehicleID":"BR21","timedispatch":"2026-03-22 14:48:42","timeenroutetoscene":"2026-03-22 14:48:49","policeReportNumber":"20260031017","dispatchNotes":"PER CALLER WINDS ARE BLOWING IT NORTH TOWARDS ANOTHER HOUSE-- DIDN`T WANT TO STAY ON THE PHONE JUST WANTED PERSONEL TO HURRY  [03\/22\/26 14:48:41 KHILL] 50 YARDS AWAY FROM THE HOUSE  [03\/22\/26 14:47:45 KHILL]","cADLog":"PER CALLER WINDS ARE BLOWING IT NORTH TOWARDS ANOTHER HOUSE-- DIDN`T WANT TO STAY ON THE PHONE JUST WANTED PERSONEL TO HURRY  [03\/22\/26 14:48:41 KHILL] 50 YARDS AWAY FROM THE HOUSE  [03\/22\/26 14:47:45 KHILL]","incidentLocationCity":"MONTEREY","streetName":"CLIFF PARK RD","incidentAddressTextVersionStreet":"620 CLIFF PARK RD","locationCoordinates":"36.07188,-85.29169"}
[2026-03-22 19:48:51] [INFO] Number of extracted fields: 23
[2026-03-22 19:48:51] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
PCSO'
[2026-03-22 19:48:51] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
PCSO', Parsed IDs = ["PCFD","PCSO"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 19:48:51] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","PCSO"]
[2026-03-22 19:48:51] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 19:48:51] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 19:48:51] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["PCSO"]
[2026-03-22 19:48:52] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 19:48:52] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 19:48:52] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 19:48:52] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 19:48:52] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 19:48:52] [INFO] Found existing IncidentTypeMapping with ID: 693de9e1e8922fc29
[2026-03-22 19:48:52] [INFO] Found existing Dispatch with cADNumber '2026000776', ID: 69c047514ccdf27b6 - will update instead of create
[2026-03-22 19:48:52] [INFO] Updated existing Dispatches record with ID: 69c047514ccdf27b6
[2026-03-22 19:48:52] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194851.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031017_20260322_194851.XML
[2026-03-22 19:48:52] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031017_20260322_194851.XML
[2026-03-22 20:44:54] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204454.XML
[2026-03-22 20:44:54] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204454.XML for user: 68f1466aed072ad4a
[2026-03-22 20:44:54] [INFO] File size: 5350 bytes
[2026-03-22 20:44:54] [INFO] Created FTPFiles record with ID: 69c054c67725d2ad8
[2026-03-22 20:44:54] [INFO] About to extract fields from XML. File size: 5350 bytes
[2026-03-22 20:44:54] [INFO] Number of mappings: 28
[2026-03-22 20:44:54] [INFO] Starting XML parsing. Content length: 5350
[2026-03-22 20:44:54] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 20:44:54] [INFO] Processing 28 field mappings
[2026-03-22 20:44:54] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 20:44:54] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 20:44:54] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 20:44:54] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 20:44:54] [INFO]   -> Found value: MFD
EMS
[2026-03-22 20:44:54] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS"
[2026-03-22 20:44:54] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 20:44:54] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 20:44:54] [INFO]   -> Found value: 2026000105
[2026-03-22 20:44:54] [INFO]   -> Set field 'incidentInternalId' = "2026000105"
[2026-03-22 20:44:54] [INFO]   -> Set field 'dispatchRunNumber' = "2026000105"
[2026-03-22 20:44:54] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 20:44:54] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 20:44:54] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 20:44:54] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 20:44:54] [INFO]   -> Found value: 230
[2026-03-22 20:44:54] [INFO]   -> Set field 'incidentLocationStreetNumber' = 230
[2026-03-22 20:44:54] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 20:44:54] [INFO]   -> Found value: TN
[2026-03-22 20:44:54] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 20:44:54] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 20:44:54] [INFO]   -> Found value: 38574
[2026-03-22 20:44:54] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 20:44:54] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 20:44:54] [INFO]   -> Found value: 230 CATES RD
[2026-03-22 20:44:54] [INFO]   -> Set field 'businessName' = "230 CATES RD"
[2026-03-22 20:44:54] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 20:44:54] [INFO]   -> Found value: C20
[2026-03-22 20:44:54] [INFO]   -> Set field 'incidentLocationApt' = "C20"
[2026-03-22 20:44:54] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 20:44:54] [INFO]   -> Found value: 36.15606
[2026-03-22 20:44:54] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.156059999999996534825186245143413543701171875
[2026-03-22 20:44:54] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 20:44:54] [INFO]   -> Found value: -85.25698
[2026-03-22 20:44:54] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2569799999999986539478413760662078857421875
[2026-03-22 20:44:54] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 20:44:54] [INFO]   -> Found value: 2026-03-22 15:44:03
[2026-03-22 20:44:54] [INFO]   -> Set field 'alarm' = "2026-03-22 15:44:03"
[2026-03-22 20:44:54] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 20:44:54] [INFO]   -> Found value: 2026-03-22 15:44:50
[2026-03-22 20:44:54] [INFO]   -> Set field 'dispatched' = "2026-03-22 15:44:50"
[2026-03-22 20:44:54] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 20:44:54] [INFO]   -> No value found (null or empty)
[2026-03-22 20:44:54] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 20:44:54] [INFO]   -> No value found (null or empty)
[2026-03-22 20:44:54] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 20:44:54] [INFO]   -> No value found (null or empty)
[2026-03-22 20:44:54] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 20:44:54] [INFO]   -> Found value: N HOLLY ST/HICKORY AVE
[2026-03-22 20:44:54] [INFO]   -> Set field 'incidentLocationCross' = "N HOLLY ST\/HICKORY AVE"
[2026-03-22 20:44:54] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 20:44:54] [INFO]   -> Found value: MFR
[2026-03-22 20:44:54] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-03-22 20:44:54] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 20:44:54] [INFO]   -> Found value: 2026-03-22 15:44:50
[2026-03-22 20:44:54] [INFO]   -> Set field 'timedispatch' = "2026-03-22 15:44:50"
[2026-03-22 20:44:54] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 20:44:54] [INFO]   -> No value found (null or empty)
[2026-03-22 20:44:54] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 20:44:54] [INFO]   -> No value found (null or empty)
[2026-03-22 20:44:54] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 20:44:54] [INFO]   -> No value found (null or empty)
[2026-03-22 20:44:54] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 20:44:54] [INFO]   -> No value found (null or empty)
[2026-03-22 20:44:54] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 20:44:54] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 20:44:54] [INFO]   -> Found value: 20260031034
[2026-03-22 20:44:54] [INFO]   -> Set field 'policeReportNumber' = "20260031034"
[2026-03-22 20:44:54] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 20:44:54] [INFO]   -> Found value: [EMS] PATIENTS NAME BOBBY REYNOLDS  [03/22/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS H...
[2026-03-22 20:44:54] [INFO]   -> Set field 'dispatchNotes' = "[EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 20:44:54] [INFO]   -> Set field 'cADLog' = "[EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 20:44:54] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 20:44:54] [INFO]   -> Found value: MONTEREY
[2026-03-22 20:44:54] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 20:44:54] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 20:44:54] [INFO]   -> Found value: CATES
[2026-03-22 20:44:54] [INFO]   -> Set field 'streetName' = "CATES"
[2026-03-22 20:44:54] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 20:44:54] [INFO]   -> Found value: RD
[2026-03-22 20:44:54] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 20:44:54] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 20:44:54] [INFO]   -> Found value: 230-C20 CATES RD
[2026-03-22 20:44:54] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "230-C20 CATES RD"
[2026-03-22 20:44:54] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 20:44:54] [INFO] Concatenating street name and type
[2026-03-22 20:44:54] [INFO]   -> Combined street name: CATES RD
[2026-03-22 20:44:54] [INFO] Built locationCoordinates from lat/lng: 36.15606,-85.25698
[2026-03-22 20:44:54] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS","incidentInternalId":"2026000105","dispatchRunNumber":"2026000105","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":230,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"230 CATES RD","incidentLocationApt":"C20","nERISIncidentLatitude":36.156059999999996534825186245143413543701171875,"nERISIncidentLongitude":-85.2569799999999986539478413760662078857421875,"alarm":"2026-03-22 15:44:03","dispatched":"2026-03-22 15:44:50","incidentLocationCross":"N HOLLY ST\/HICKORY AVE","cADVehicleID":"MFR","timedispatch":"2026-03-22 15:44:50","policeReportNumber":"20260031034","dispatchNotes":"[EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","cADLog":"[EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","incidentLocationCity":"MONTEREY","streetName":"CATES RD","incidentAddressTextVersionStreet":"230-C20 CATES RD","locationCoordinates":"36.15606,-85.25698"}
[2026-03-22 20:44:54] [INFO] Number of extracted fields: 23
[2026-03-22 20:44:54] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS'
[2026-03-22 20:44:54] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS', Parsed IDs = ["MFD","EMS"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 20:44:54] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS"]
[2026-03-22 20:44:54] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 20:44:54] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 20:44:54] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS"]
[2026-03-22 20:44:55] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 20:44:55] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 20:44:55] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 20:44:55] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 20:44:55] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 20:44:55] [INFO] Found existing IncidentTypeMapping with ID: 697ea33628eb4de15
[2026-03-22 20:44:58] [INFO] Created new Dispatches record with ID: 69c054c8009cc012c
[2026-03-22 20:44:58] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204454.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260031034_20260322_204454.XML
[2026-03-22 20:44:58] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204454.XML
[2026-03-22 20:45:27] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08676.xml
[2026-03-22 20:45:27] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08676.xml for user: 68d56363ec1209189
[2026-03-22 20:45:27] [INFO] File size: 1450 bytes
[2026-03-22 20:45:27] [INFO] Created FTPFiles record with ID: 69c054e77644f9dfc
[2026-03-22 20:45:27] [INFO] About to extract fields from XML. File size: 1450 bytes
[2026-03-22 20:45:27] [INFO] Number of mappings: 21
[2026-03-22 20:45:27] [INFO] Starting XML parsing. Content length: 1450
[2026-03-22 20:45:27] [INFO] XML parsed successfully. Root element: Incident
[2026-03-22 20:45:27] [INFO] Processing 21 field mappings
[2026-03-22 20:45:27] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-22 20:45:27] [INFO]   -> Found value: 26-08676
[2026-03-22 20:45:27] [INFO]   -> Set field 'dispatchRunNumber' = "26-08676"
[2026-03-22 20:45:27] [INFO]   -> Set field 'cADNumber' = "26-08676"
[2026-03-22 20:45:27] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-22 20:45:27] [INFO]   -> Found value: 306
[2026-03-22 20:45:27] [INFO]   -> Set field 'incidentLocationStreetNumber' = 306
[2026-03-22 20:45:27] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-22 20:45:27] [INFO]   -> Found value: SUNSET DR
[2026-03-22 20:45:27] [INFO]   -> Set field 'streetName' = "SUNSET DR"
[2026-03-22 20:45:27] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-22 20:45:27] [INFO]   -> No value found (null or empty)
[2026-03-22 20:45:27] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-22 20:45:27] [INFO]   -> Found value: SIKESTON
[2026-03-22 20:45:27] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-03-22 20:45:27] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-22 20:45:27] [INFO]   -> No value found (null or empty)
[2026-03-22 20:45:27] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-22 20:45:27] [INFO]   -> Found value: MO
[2026-03-22 20:45:27] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-03-22 20:45:27] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-22 20:45:27] [INFO]   -> Found value: 63801
[2026-03-22 20:45:27] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-03-22 20:45:27] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-22 20:45:27] [INFO]   -> Found value: 0
[2026-03-22 20:45:27] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-22 20:45:27] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-22 20:45:27] [INFO]   -> Found value: 0
[2026-03-22 20:45:27] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-22 20:45:27] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-22 20:45:27] [INFO]   -> Found value: MEDICAL
[2026-03-22 20:45:27] [INFO]   -> Set field 'incidentTypeValue1' = "MEDICAL"
[2026-03-22 20:45:27] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-22 20:45:27] [INFO]   -> Found value: 03-22-2026 15:35:07|12 YEAR OLD FEMALE TOOK 8 PILLS.  03-22-2026 15:36:39|POSSIBLY HYDROXYZINE 03-22...
[2026-03-22 20:45:27] [INFO]   -> Set field 'dispatchNotes' = "03-22-2026 15:35:07|12 YEAR OLD FEMALE TOOK 8 PILLS.  03-22-2026 15:36:39|POSSIBLY HYDROXYZINE 03-22-2026 15:37:24|CHILD NOW OUTSIDE WEARING PINK SHIRT BLK PANTS"
[2026-03-22 20:45:27] [INFO]   -> Set field 'cADLog' = "03-22-2026 15:35:07|12 YEAR OLD FEMALE TOOK 8 PILLS.  03-22-2026 15:36:39|POSSIBLY HYDROXYZINE 03-22-2026 15:37:24|CHILD NOW OUTSIDE WEARING PINK SHIRT BLK PANTS"
[2026-03-22 20:45:27] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-22 20:45:27] [INFO]   -> Found value: 03-22-2026T15:36:01
[2026-03-22 20:45:27] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T15:36:01
[2026-03-22 20:45:27] [ERROR] Error formatting datetime '2026-22-03T15:36:01': Failed to parse time string (2026-22-03T15:36:01) at position 6 (2): Unexpected character
[2026-03-22 20:45:27] [INFO]   -> Set field 'alarm' = null
[2026-03-22 20:45:27] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T15:36:01
[2026-03-22 20:45:27] [ERROR] Error formatting datetime '2026-22-03T15:36:01': Failed to parse time string (2026-22-03T15:36:01) at position 6 (2): Unexpected character
[2026-03-22 20:45:27] [INFO]   -> Set field 'dispatched' = null
[2026-03-22 20:45:27] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-22 20:45:27] [INFO]   -> Found value: 03-22-2026T15:39:38
[2026-03-22 20:45:27] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T15:39:38
[2026-03-22 20:45:27] [ERROR] Error formatting datetime '2026-22-03T15:39:38': Failed to parse time string (2026-22-03T15:39:38) at position 6 (2): Unexpected character
[2026-03-22 20:45:27] [INFO]   -> Set field 'onScene' = null
[2026-03-22 20:45:27] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-22 20:45:27] [INFO]   -> No value found (null or empty)
[2026-03-22 20:45:27] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-22 20:45:27] [INFO]   -> Found value: L3
[2026-03-22 20:45:27] [INFO]   -> Set field 'cADVehicleID' = "L3"
[2026-03-22 20:45:27] [INFO]   -> Set field 'name' = "L3"
[2026-03-22 20:45:27] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-22 20:45:27] [INFO]   -> No value found (null or empty)
[2026-03-22 20:45:27] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-22 20:45:27] [INFO]   -> No value found (null or empty)
[2026-03-22 20:45:27] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-22 20:45:27] [INFO]   -> Found value: 03-22-2026T15:44:56
[2026-03-22 20:45:27] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T15:44:56
[2026-03-22 20:45:27] [ERROR] Error formatting datetime '2026-22-03T15:44:56': Failed to parse time string (2026-22-03T15:44:56) at position 6 (2): Unexpected character
[2026-03-22 20:45:27] [INFO]   -> Set field 'timeunitclear' = null
[2026-03-22 20:45:27] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-22 20:45:27] [INFO]   -> Found value: 03-22-2026T15:44:53
[2026-03-22 20:45:27] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T15:44:53
[2026-03-22 20:45:27] [ERROR] Error formatting datetime '2026-22-03T15:44:53': Failed to parse time string (2026-22-03T15:44:53) at position 6 (2): Unexpected character
[2026-03-22 20:45:27] [INFO]   -> Set field 'timedispatch' = null
[2026-03-22 20:45:27] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-22 20:45:27] [INFO]   -> Found value: SDPSFD
[2026-03-22 20:45:27] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-03-22 20:45:27] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-03-22 20:45:27] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-22 20:45:27] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-08676","cADNumber":"26-08676","incidentLocationStreetNumber":306,"streetName":"SUNSET DR","incidentLocationCity":"SIKESTON","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"MEDICAL","dispatchNotes":"03-22-2026 15:35:07|12 YEAR OLD FEMALE TOOK 8 PILLS.  03-22-2026 15:36:39|POSSIBLY HYDROXYZINE 03-22-2026 15:37:24|CHILD NOW OUTSIDE WEARING PINK SHIRT BLK PANTS","cADLog":"03-22-2026 15:35:07|12 YEAR OLD FEMALE TOOK 8 PILLS.  03-22-2026 15:36:39|POSSIBLY HYDROXYZINE 03-22-2026 15:37:24|CHILD NOW OUTSIDE WEARING PINK SHIRT BLK PANTS","alarm":null,"dispatched":null,"onScene":null,"cADVehicleID":"L3","name":"L3","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-03-22 20:45:27] [INFO] Number of extracted fields: 21
[2026-03-22 20:45:27] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-03-22 20:45:27] [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-22 20:45:27] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-03-22 20:45:27] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-03-22 20:45:27] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-03-22 20:45:27] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-03-22 20:45:27] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-03-22 20:45:27] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-03-22 20:45:28] [INFO] Found existing IncidentTypeMapping with ID: 6976908dc15ecc087
[2026-03-22 20:45:30] [INFO] Created new Dispatches record with ID: 69c054e853e757fa5
[2026-03-22 20:45:30] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08676.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-22/SDPSFD_26-08676.xml
[2026-03-22 20:45:30] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08676.xml
[2026-03-22 20:45:58] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_204558.XML
[2026-03-22 20:45:58] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_204558.XML for user: 68f1466aed072ad4a
[2026-03-22 20:45:58] [INFO] File size: 5846 bytes
[2026-03-22 20:45:58] [INFO] Created FTPFiles record with ID: 69c05506745842769
[2026-03-22 20:45:58] [INFO] About to extract fields from XML. File size: 5846 bytes
[2026-03-22 20:45:58] [INFO] Number of mappings: 28
[2026-03-22 20:45:58] [INFO] Starting XML parsing. Content length: 5846
[2026-03-22 20:45:58] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 20:45:58] [INFO] Processing 28 field mappings
[2026-03-22 20:45:58] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 20:45:58] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 20:45:58] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 20:45:58] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 20:45:58] [INFO]   -> Found value: PCFD
EMS
MFD
RESC
[2026-03-22 20:45:58] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD\nRESC"
[2026-03-22 20:45:58] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 20:45:58] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 20:45:58] [INFO]   -> Found value: 2026000777
[2026-03-22 20:45:58] [INFO]   -> Set field 'incidentInternalId' = "2026000777"
[2026-03-22 20:45:58] [INFO]   -> Set field 'dispatchRunNumber' = "2026000777"
[2026-03-22 20:45:58] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 20:45:58] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 20:45:58] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 20:45:58] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 20:45:58] [INFO]   -> Found value: 230
[2026-03-22 20:45:58] [INFO]   -> Set field 'incidentLocationStreetNumber' = 230
[2026-03-22 20:45:58] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 20:45:58] [INFO]   -> Found value: TN
[2026-03-22 20:45:58] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 20:45:58] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 20:45:58] [INFO]   -> Found value: 38574
[2026-03-22 20:45:58] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 20:45:58] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 20:45:58] [INFO]   -> Found value: 230 CATES RD
[2026-03-22 20:45:58] [INFO]   -> Set field 'businessName' = "230 CATES RD"
[2026-03-22 20:45:58] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 20:45:58] [INFO]   -> Found value: C20
[2026-03-22 20:45:58] [INFO]   -> Set field 'incidentLocationApt' = "C20"
[2026-03-22 20:45:58] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 20:45:58] [INFO]   -> Found value: 36.15606
[2026-03-22 20:45:58] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.156059999999996534825186245143413543701171875
[2026-03-22 20:45:58] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 20:45:58] [INFO]   -> Found value: -85.25698
[2026-03-22 20:45:58] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2569799999999986539478413760662078857421875
[2026-03-22 20:45:58] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 20:45:58] [INFO]   -> Found value: 2026-03-22 15:45:50
[2026-03-22 20:45:58] [INFO]   -> Set field 'alarm' = "2026-03-22 15:45:50"
[2026-03-22 20:45:58] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 20:45:58] [INFO]   -> Found value: 2026-03-22 15:45:50
[2026-03-22 20:45:58] [INFO]   -> Set field 'dispatched' = "2026-03-22 15:45:50"
[2026-03-22 20:45:58] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 20:45:58] [INFO]   -> No value found (null or empty)
[2026-03-22 20:45:58] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 20:45:58] [INFO]   -> No value found (null or empty)
[2026-03-22 20:45:58] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 20:45:58] [INFO]   -> No value found (null or empty)
[2026-03-22 20:45:58] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 20:45:58] [INFO]   -> Found value: N HOLLY ST/HICKORY AVE
[2026-03-22 20:45:58] [INFO]   -> Set field 'incidentLocationCross' = "N HOLLY ST\/HICKORY AVE"
[2026-03-22 20:45:58] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 20:45:58] [INFO]   -> Found value: PCFR
[2026-03-22 20:45:58] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 20:45:58] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 20:45:58] [INFO]   -> Found value: 2026-03-22 15:45:50
[2026-03-22 20:45:58] [INFO]   -> Set field 'timedispatch' = "2026-03-22 15:45:50"
[2026-03-22 20:45:58] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 20:45:58] [INFO]   -> No value found (null or empty)
[2026-03-22 20:45:58] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 20:45:58] [INFO]   -> No value found (null or empty)
[2026-03-22 20:45:58] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 20:45:58] [INFO]   -> No value found (null or empty)
[2026-03-22 20:45:58] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 20:45:58] [INFO]   -> No value found (null or empty)
[2026-03-22 20:45:58] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 20:45:58] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 20:45:58] [INFO]   -> Found value: 20260031038
[2026-03-22 20:45:58] [INFO]   -> Set field 'policeReportNumber' = "20260031038"
[2026-03-22 20:45:58] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 20:45:58] [INFO]   -> Found value: Event spawned from FAINTING / SYNCOPE.  [03/22/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03/22/26...
[2026-03-22 20:45:58] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 20:45:58] [INFO]   -> Set field 'cADLog' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 20:45:58] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 20:45:58] [INFO]   -> Found value: MONTEREY
[2026-03-22 20:45:58] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 20:45:58] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 20:45:58] [INFO]   -> Found value: CATES
[2026-03-22 20:45:58] [INFO]   -> Set field 'streetName' = "CATES"
[2026-03-22 20:45:58] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 20:45:58] [INFO]   -> Found value: RD
[2026-03-22 20:45:58] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 20:45:58] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 20:45:58] [INFO]   -> Found value: 230-C20 CATES RD
[2026-03-22 20:45:58] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "230-C20 CATES RD"
[2026-03-22 20:45:58] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 20:45:58] [INFO] Concatenating street name and type
[2026-03-22 20:45:58] [INFO]   -> Combined street name: CATES RD
[2026-03-22 20:45:58] [INFO] Built locationCoordinates from lat/lng: 36.15606,-85.25698
[2026-03-22 20:45:58] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD\nRESC","incidentInternalId":"2026000777","dispatchRunNumber":"2026000777","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":230,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"230 CATES RD","incidentLocationApt":"C20","nERISIncidentLatitude":36.156059999999996534825186245143413543701171875,"nERISIncidentLongitude":-85.2569799999999986539478413760662078857421875,"alarm":"2026-03-22 15:45:50","dispatched":"2026-03-22 15:45:50","incidentLocationCross":"N HOLLY ST\/HICKORY AVE","cADVehicleID":"PCFR","timedispatch":"2026-03-22 15:45:50","policeReportNumber":"20260031038","dispatchNotes":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","cADLog":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","incidentLocationCity":"MONTEREY","streetName":"CATES RD","incidentAddressTextVersionStreet":"230-C20 CATES RD","locationCoordinates":"36.15606,-85.25698"}
[2026-03-22 20:45:58] [INFO] Number of extracted fields: 23
[2026-03-22 20:45:58] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD
RESC'
[2026-03-22 20:45:58] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD
RESC', Parsed IDs = ["PCFD","EMS","MFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 20:45:58] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD","RESC"]
[2026-03-22 20:45:58] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 20:45:58] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 20:45:58] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD","RESC"]
[2026-03-22 20:45:58] [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-22 20:45:58] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 20:45:58] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 20:45:58] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 20:45:58] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 20:45:58] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-22 20:46:08] [INFO] Created new Dispatches record with ID: 69c055073c1129857
[2026-03-22 20:46:08] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_204558.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031038_20260322_204558.XML
[2026-03-22 20:46:08] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_204558.XML
[2026-03-22 20:46:08] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_204558_1.XML
[2026-03-22 20:46:08] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_204558_1.XML for user: 68f1466aed072ad4a
[2026-03-22 20:46:08] [INFO] File size: 5846 bytes
[2026-03-22 20:46:09] [INFO] Created FTPFiles record with ID: 69c05511478c8eaba
[2026-03-22 20:46:09] [INFO] About to extract fields from XML. File size: 5846 bytes
[2026-03-22 20:46:09] [INFO] Number of mappings: 28
[2026-03-22 20:46:09] [INFO] Starting XML parsing. Content length: 5846
[2026-03-22 20:46:09] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 20:46:09] [INFO] Processing 28 field mappings
[2026-03-22 20:46:09] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 20:46:09] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 20:46:09] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 20:46:09] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 20:46:09] [INFO]   -> Found value: PCFD
EMS
MFD
RESC
[2026-03-22 20:46:09] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nMFD\nRESC"
[2026-03-22 20:46:09] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 20:46:09] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 20:46:09] [INFO]   -> Found value: 2026000777
[2026-03-22 20:46:09] [INFO]   -> Set field 'incidentInternalId' = "2026000777"
[2026-03-22 20:46:09] [INFO]   -> Set field 'dispatchRunNumber' = "2026000777"
[2026-03-22 20:46:09] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 20:46:09] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 20:46:09] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 20:46:09] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 20:46:09] [INFO]   -> Found value: 230
[2026-03-22 20:46:09] [INFO]   -> Set field 'incidentLocationStreetNumber' = 230
[2026-03-22 20:46:09] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 20:46:09] [INFO]   -> Found value: TN
[2026-03-22 20:46:09] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 20:46:09] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 20:46:09] [INFO]   -> Found value: 38574
[2026-03-22 20:46:09] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 20:46:09] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 20:46:09] [INFO]   -> Found value: 230 CATES RD
[2026-03-22 20:46:09] [INFO]   -> Set field 'businessName' = "230 CATES RD"
[2026-03-22 20:46:09] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 20:46:09] [INFO]   -> Found value: C20
[2026-03-22 20:46:09] [INFO]   -> Set field 'incidentLocationApt' = "C20"
[2026-03-22 20:46:09] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 20:46:09] [INFO]   -> Found value: 36.15606
[2026-03-22 20:46:09] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.156059999999996534825186245143413543701171875
[2026-03-22 20:46:09] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 20:46:09] [INFO]   -> Found value: -85.25698
[2026-03-22 20:46:09] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2569799999999986539478413760662078857421875
[2026-03-22 20:46:09] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 20:46:09] [INFO]   -> Found value: 2026-03-22 15:45:50
[2026-03-22 20:46:09] [INFO]   -> Set field 'alarm' = "2026-03-22 15:45:50"
[2026-03-22 20:46:09] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 20:46:09] [INFO]   -> Found value: 2026-03-22 15:45:50
[2026-03-22 20:46:09] [INFO]   -> Set field 'dispatched' = "2026-03-22 15:45:50"
[2026-03-22 20:46:09] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 20:46:09] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:09] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 20:46:09] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:09] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 20:46:09] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:09] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 20:46:09] [INFO]   -> Found value: N HOLLY ST/HICKORY AVE
[2026-03-22 20:46:09] [INFO]   -> Set field 'incidentLocationCross' = "N HOLLY ST\/HICKORY AVE"
[2026-03-22 20:46:09] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 20:46:09] [INFO]   -> Found value: PCFR
[2026-03-22 20:46:09] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 20:46:09] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 20:46:09] [INFO]   -> Found value: 2026-03-22 15:45:50
[2026-03-22 20:46:09] [INFO]   -> Set field 'timedispatch' = "2026-03-22 15:45:50"
[2026-03-22 20:46:09] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 20:46:09] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:09] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 20:46:09] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:09] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 20:46:09] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:09] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 20:46:09] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:09] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 20:46:09] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 20:46:09] [INFO]   -> Found value: 20260031038
[2026-03-22 20:46:09] [INFO]   -> Set field 'policeReportNumber' = "20260031038"
[2026-03-22 20:46:09] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 20:46:09] [INFO]   -> Found value: Event spawned from FAINTING / SYNCOPE.  [03/22/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03/22/26...
[2026-03-22 20:46:09] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 20:46:09] [INFO]   -> Set field 'cADLog' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 20:46:09] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 20:46:09] [INFO]   -> Found value: MONTEREY
[2026-03-22 20:46:09] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 20:46:09] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 20:46:09] [INFO]   -> Found value: CATES
[2026-03-22 20:46:09] [INFO]   -> Set field 'streetName' = "CATES"
[2026-03-22 20:46:09] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 20:46:09] [INFO]   -> Found value: RD
[2026-03-22 20:46:09] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 20:46:09] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 20:46:09] [INFO]   -> Found value: 230-C20 CATES RD
[2026-03-22 20:46:09] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "230-C20 CATES RD"
[2026-03-22 20:46:09] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 20:46:09] [INFO] Concatenating street name and type
[2026-03-22 20:46:09] [INFO]   -> Combined street name: CATES RD
[2026-03-22 20:46:09] [INFO] Built locationCoordinates from lat/lng: 36.15606,-85.25698
[2026-03-22 20:46:09] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nMFD\nRESC","incidentInternalId":"2026000777","dispatchRunNumber":"2026000777","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":230,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"230 CATES RD","incidentLocationApt":"C20","nERISIncidentLatitude":36.156059999999996534825186245143413543701171875,"nERISIncidentLongitude":-85.2569799999999986539478413760662078857421875,"alarm":"2026-03-22 15:45:50","dispatched":"2026-03-22 15:45:50","incidentLocationCross":"N HOLLY ST\/HICKORY AVE","cADVehicleID":"PCFR","timedispatch":"2026-03-22 15:45:50","policeReportNumber":"20260031038","dispatchNotes":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","cADLog":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","incidentLocationCity":"MONTEREY","streetName":"CATES RD","incidentAddressTextVersionStreet":"230-C20 CATES RD","locationCoordinates":"36.15606,-85.25698"}
[2026-03-22 20:46:09] [INFO] Number of extracted fields: 23
[2026-03-22 20:46:09] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
MFD
RESC'
[2026-03-22 20:46:09] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
MFD
RESC', Parsed IDs = ["PCFD","EMS","MFD","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 20:46:09] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","MFD","RESC"]
[2026-03-22 20:46:09] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 20:46:09] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 20:46:09] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","MFD","RESC"]
[2026-03-22 20:46:09] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 20:46:09] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 20:46:09] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 20:46:09] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 20:46:09] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 20:46:09] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-22 20:46:09] [INFO] Found existing Dispatch with cADNumber '2026000777', ID: 69c055073c1129857 - will update instead of create
[2026-03-22 20:46:10] [INFO] Updated existing Dispatches record with ID: 69c055073c1129857
[2026-03-22 20:46:10] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_204558_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031038_20260322_204558_1.XML
[2026-03-22 20:46:10] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_204558_1.XML
[2026-03-22 20:46:10] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204608.XML
[2026-03-22 20:46:10] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204608.XML for user: 68f1466aed072ad4a
[2026-03-22 20:46:10] [INFO] File size: 6750 bytes
[2026-03-22 20:46:10] [INFO] Created FTPFiles record with ID: 69c055127e3802b9a
[2026-03-22 20:46:10] [INFO] About to extract fields from XML. File size: 6750 bytes
[2026-03-22 20:46:10] [INFO] Number of mappings: 28
[2026-03-22 20:46:10] [INFO] Starting XML parsing. Content length: 6750
[2026-03-22 20:46:10] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 20:46:10] [INFO] Processing 28 field mappings
[2026-03-22 20:46:10] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 20:46:10] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 20:46:10] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 20:46:10] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 20:46:10] [INFO]   -> Found value: MFD
EMS
RESC
PCFD
[2026-03-22 20:46:10] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nRESC\nPCFD"
[2026-03-22 20:46:10] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 20:46:10] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 20:46:10] [INFO]   -> Found value: 2026000105
[2026-03-22 20:46:10] [INFO]   -> Set field 'incidentInternalId' = "2026000105"
[2026-03-22 20:46:10] [INFO]   -> Set field 'dispatchRunNumber' = "2026000105"
[2026-03-22 20:46:10] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 20:46:10] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 20:46:10] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 20:46:10] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 20:46:10] [INFO]   -> Found value: 230
[2026-03-22 20:46:10] [INFO]   -> Set field 'incidentLocationStreetNumber' = 230
[2026-03-22 20:46:10] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 20:46:10] [INFO]   -> Found value: TN
[2026-03-22 20:46:10] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 20:46:10] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 20:46:10] [INFO]   -> Found value: 38574
[2026-03-22 20:46:10] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 20:46:10] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 20:46:10] [INFO]   -> Found value: 230 CATES RD
[2026-03-22 20:46:10] [INFO]   -> Set field 'businessName' = "230 CATES RD"
[2026-03-22 20:46:10] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 20:46:10] [INFO]   -> Found value: C20
[2026-03-22 20:46:10] [INFO]   -> Set field 'incidentLocationApt' = "C20"
[2026-03-22 20:46:10] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 20:46:10] [INFO]   -> Found value: 36.15606
[2026-03-22 20:46:10] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.156059999999996534825186245143413543701171875
[2026-03-22 20:46:10] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 20:46:10] [INFO]   -> Found value: -85.25698
[2026-03-22 20:46:10] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2569799999999986539478413760662078857421875
[2026-03-22 20:46:10] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 20:46:10] [INFO]   -> Found value: 2026-03-22 15:44:03
[2026-03-22 20:46:10] [INFO]   -> Set field 'alarm' = "2026-03-22 15:44:03"
[2026-03-22 20:46:10] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 20:46:10] [INFO]   -> Found value: 2026-03-22 15:44:50
[2026-03-22 20:46:10] [INFO]   -> Set field 'dispatched' = "2026-03-22 15:44:50"
[2026-03-22 20:46:10] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 20:46:10] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:10] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 20:46:10] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:10] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 20:46:10] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:10] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 20:46:10] [INFO]   -> Found value: N HOLLY ST/HICKORY AVE
[2026-03-22 20:46:10] [INFO]   -> Set field 'incidentLocationCross' = "N HOLLY ST\/HICKORY AVE"
[2026-03-22 20:46:10] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 20:46:10] [INFO]   -> Found value: MFR
[2026-03-22 20:46:10] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-03-22 20:46:10] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 20:46:10] [INFO]   -> Found value: 2026-03-22 15:44:50
[2026-03-22 20:46:10] [INFO]   -> Set field 'timedispatch' = "2026-03-22 15:44:50"
[2026-03-22 20:46:10] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 20:46:10] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:10] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 20:46:10] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:10] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 20:46:10] [INFO]   -> Found value: 2026-03-22 15:46:02
[2026-03-22 20:46:10] [INFO]   -> Set field 'timeunitclear' = "2026-03-22 15:46:02"
[2026-03-22 20:46:10] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 20:46:10] [INFO]   -> Found value: 2026-03-22 15:46:02
[2026-03-22 20:46:10] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-22 15:46:02"
[2026-03-22 20:46:10] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 20:46:10] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 20:46:10] [INFO]   -> Found value: 20260031034
[2026-03-22 20:46:10] [INFO]   -> Set field 'policeReportNumber' = "20260031034"
[2026-03-22 20:46:10] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 20:46:10] [INFO]   -> Found value: [EMS] WANTS TO GO LRH  [03/22/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03/22/26 15:44...
[2026-03-22 20:46:10] [INFO]   -> Set field 'dispatchNotes' = "[EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 20:46:10] [INFO]   -> Set field 'cADLog' = "[EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 20:46:10] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 20:46:10] [INFO]   -> Found value: MONTEREY
[2026-03-22 20:46:10] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 20:46:10] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 20:46:10] [INFO]   -> Found value: CATES
[2026-03-22 20:46:10] [INFO]   -> Set field 'streetName' = "CATES"
[2026-03-22 20:46:10] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 20:46:10] [INFO]   -> Found value: RD
[2026-03-22 20:46:10] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 20:46:10] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 20:46:10] [INFO]   -> Found value: 230-C20 CATES RD
[2026-03-22 20:46:10] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "230-C20 CATES RD"
[2026-03-22 20:46:10] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-03-22 20:46:10] [INFO] Concatenating street name and type
[2026-03-22 20:46:10] [INFO]   -> Combined street name: CATES RD
[2026-03-22 20:46:10] [INFO] Built locationCoordinates from lat/lng: 36.15606,-85.25698
[2026-03-22 20:46:10] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nRESC\nPCFD","incidentInternalId":"2026000105","dispatchRunNumber":"2026000105","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":230,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"230 CATES RD","incidentLocationApt":"C20","nERISIncidentLatitude":36.156059999999996534825186245143413543701171875,"nERISIncidentLongitude":-85.2569799999999986539478413760662078857421875,"alarm":"2026-03-22 15:44:03","dispatched":"2026-03-22 15:44:50","incidentLocationCross":"N HOLLY ST\/HICKORY AVE","cADVehicleID":"MFR","timedispatch":"2026-03-22 15:44:50","timeunitclear":"2026-03-22 15:46:02","timecanceledenroute":"2026-03-22 15:46:02","policeReportNumber":"20260031034","dispatchNotes":"[EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","cADLog":"[EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","incidentLocationCity":"MONTEREY","streetName":"CATES RD","incidentAddressTextVersionStreet":"230-C20 CATES RD","locationCoordinates":"36.15606,-85.25698"}
[2026-03-22 20:46:10] [INFO] Number of extracted fields: 25
[2026-03-22 20:46:10] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
RESC
PCFD'
[2026-03-22 20:46:10] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
RESC
PCFD', Parsed IDs = ["MFD","EMS","RESC","PCFD"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 20:46:10] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","RESC","PCFD"]
[2026-03-22 20:46:10] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 20:46:10] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 20:46:10] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC","PCFD"]
[2026-03-22 20:46:10] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 20:46:10] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 20:46:10] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 20:46:10] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 20:46:11] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 20:46:11] [INFO] Found existing IncidentTypeMapping with ID: 697ea33628eb4de15
[2026-03-22 20:46:11] [INFO] Found existing Dispatch with cADNumber '2026000105', ID: 69c054c8009cc012c - will update instead of create
[2026-03-22 20:46:11] [INFO] Updated existing Dispatches record with ID: 69c054c8009cc012c
[2026-03-22 20:46:11] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204608.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260031034_20260322_204608.XML
[2026-03-22 20:46:11] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204608.XML
[2026-03-22 20:46:11] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204608_1.XML
[2026-03-22 20:46:11] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204608_1.XML for user: 68f1466aed072ad4a
[2026-03-22 20:46:11] [INFO] File size: 6750 bytes
[2026-03-22 20:46:11] [INFO] Created FTPFiles record with ID: 69c05513d7ad3c247
[2026-03-22 20:46:11] [INFO] About to extract fields from XML. File size: 6750 bytes
[2026-03-22 20:46:11] [INFO] Number of mappings: 28
[2026-03-22 20:46:11] [INFO] Starting XML parsing. Content length: 6750
[2026-03-22 20:46:11] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 20:46:11] [INFO] Processing 28 field mappings
[2026-03-22 20:46:11] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 20:46:11] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 20:46:11] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 20:46:11] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 20:46:11] [INFO]   -> Found value: MFD
EMS
RESC
PCFD
[2026-03-22 20:46:11] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nRESC\nPCFD"
[2026-03-22 20:46:11] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 20:46:11] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 20:46:11] [INFO]   -> Found value: 2026000105
[2026-03-22 20:46:11] [INFO]   -> Set field 'incidentInternalId' = "2026000105"
[2026-03-22 20:46:11] [INFO]   -> Set field 'dispatchRunNumber' = "2026000105"
[2026-03-22 20:46:11] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 20:46:11] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 20:46:11] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 20:46:11] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 20:46:11] [INFO]   -> Found value: 230
[2026-03-22 20:46:11] [INFO]   -> Set field 'incidentLocationStreetNumber' = 230
[2026-03-22 20:46:11] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 20:46:11] [INFO]   -> Found value: TN
[2026-03-22 20:46:11] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 20:46:11] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 20:46:11] [INFO]   -> Found value: 38574
[2026-03-22 20:46:11] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 20:46:11] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 20:46:11] [INFO]   -> Found value: 230 CATES RD
[2026-03-22 20:46:11] [INFO]   -> Set field 'businessName' = "230 CATES RD"
[2026-03-22 20:46:11] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 20:46:11] [INFO]   -> Found value: C20
[2026-03-22 20:46:11] [INFO]   -> Set field 'incidentLocationApt' = "C20"
[2026-03-22 20:46:11] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 20:46:11] [INFO]   -> Found value: 36.15606
[2026-03-22 20:46:11] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.156059999999996534825186245143413543701171875
[2026-03-22 20:46:11] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 20:46:11] [INFO]   -> Found value: -85.25698
[2026-03-22 20:46:11] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2569799999999986539478413760662078857421875
[2026-03-22 20:46:11] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 20:46:11] [INFO]   -> Found value: 2026-03-22 15:44:03
[2026-03-22 20:46:11] [INFO]   -> Set field 'alarm' = "2026-03-22 15:44:03"
[2026-03-22 20:46:11] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 20:46:11] [INFO]   -> Found value: 2026-03-22 15:44:50
[2026-03-22 20:46:11] [INFO]   -> Set field 'dispatched' = "2026-03-22 15:44:50"
[2026-03-22 20:46:11] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 20:46:11] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:11] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 20:46:11] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:11] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 20:46:11] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:11] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 20:46:11] [INFO]   -> Found value: N HOLLY ST/HICKORY AVE
[2026-03-22 20:46:11] [INFO]   -> Set field 'incidentLocationCross' = "N HOLLY ST\/HICKORY AVE"
[2026-03-22 20:46:11] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 20:46:11] [INFO]   -> Found value: MFR
[2026-03-22 20:46:11] [INFO]   -> Set field 'cADVehicleID' = "MFR"
[2026-03-22 20:46:11] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 20:46:11] [INFO]   -> Found value: 2026-03-22 15:44:50
[2026-03-22 20:46:11] [INFO]   -> Set field 'timedispatch' = "2026-03-22 15:44:50"
[2026-03-22 20:46:11] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 20:46:11] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:11] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 20:46:11] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:11] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 20:46:11] [INFO]   -> Found value: 2026-03-22 15:46:02
[2026-03-22 20:46:11] [INFO]   -> Set field 'timeunitclear' = "2026-03-22 15:46:02"
[2026-03-22 20:46:11] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 20:46:11] [INFO]   -> Found value: 2026-03-22 15:46:02
[2026-03-22 20:46:11] [INFO]   -> Set field 'timecanceledenroute' = "2026-03-22 15:46:02"
[2026-03-22 20:46:11] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 20:46:11] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 20:46:11] [INFO]   -> Found value: 20260031034
[2026-03-22 20:46:11] [INFO]   -> Set field 'policeReportNumber' = "20260031034"
[2026-03-22 20:46:11] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 20:46:11] [INFO]   -> Found value: [EMS] WANTS TO GO LRH  [03/22/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03/22/26 15:44...
[2026-03-22 20:46:11] [INFO]   -> Set field 'dispatchNotes' = "[EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 20:46:11] [INFO]   -> Set field 'cADLog' = "[EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 20:46:11] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 20:46:11] [INFO]   -> Found value: MONTEREY
[2026-03-22 20:46:11] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 20:46:11] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 20:46:11] [INFO]   -> Found value: CATES
[2026-03-22 20:46:11] [INFO]   -> Set field 'streetName' = "CATES"
[2026-03-22 20:46:11] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 20:46:11] [INFO]   -> Found value: RD
[2026-03-22 20:46:11] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 20:46:11] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 20:46:11] [INFO]   -> Found value: 230-C20 CATES RD
[2026-03-22 20:46:11] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "230-C20 CATES RD"
[2026-03-22 20:46:11] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-03-22 20:46:11] [INFO] Concatenating street name and type
[2026-03-22 20:46:11] [INFO]   -> Combined street name: CATES RD
[2026-03-22 20:46:11] [INFO] Built locationCoordinates from lat/lng: 36.15606,-85.25698
[2026-03-22 20:46:11] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nRESC\nPCFD","incidentInternalId":"2026000105","dispatchRunNumber":"2026000105","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":230,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"230 CATES RD","incidentLocationApt":"C20","nERISIncidentLatitude":36.156059999999996534825186245143413543701171875,"nERISIncidentLongitude":-85.2569799999999986539478413760662078857421875,"alarm":"2026-03-22 15:44:03","dispatched":"2026-03-22 15:44:50","incidentLocationCross":"N HOLLY ST\/HICKORY AVE","cADVehicleID":"MFR","timedispatch":"2026-03-22 15:44:50","timeunitclear":"2026-03-22 15:46:02","timecanceledenroute":"2026-03-22 15:46:02","policeReportNumber":"20260031034","dispatchNotes":"[EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","cADLog":"[EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","incidentLocationCity":"MONTEREY","streetName":"CATES RD","incidentAddressTextVersionStreet":"230-C20 CATES RD","locationCoordinates":"36.15606,-85.25698"}
[2026-03-22 20:46:11] [INFO] Number of extracted fields: 25
[2026-03-22 20:46:11] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
RESC
PCFD'
[2026-03-22 20:46:11] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
RESC
PCFD', Parsed IDs = ["MFD","EMS","RESC","PCFD"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 20:46:11] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","RESC","PCFD"]
[2026-03-22 20:46:11] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 20:46:12] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 20:46:12] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC","PCFD"]
[2026-03-22 20:46:12] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 20:46:12] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 20:46:12] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 20:46:12] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 20:46:12] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 20:46:12] [INFO] Found existing IncidentTypeMapping with ID: 697ea33628eb4de15
[2026-03-22 20:46:12] [INFO] Found existing Dispatch with cADNumber '2026000105', ID: 69c054c8009cc012c - will update instead of create
[2026-03-22 20:46:12] [INFO] Updated existing Dispatches record with ID: 69c054c8009cc012c
[2026-03-22 20:46:12] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204608_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260031034_20260322_204608_1.XML
[2026-03-22 20:46:12] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204608_1.XML
[2026-03-22 20:46:12] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204609.XML
[2026-03-22 20:46:12] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204609.XML for user: 68f1466aed072ad4a
[2026-03-22 20:46:12] [INFO] File size: 6813 bytes
[2026-03-22 20:46:13] [INFO] Created FTPFiles record with ID: 69c055152f0aa0d04
[2026-03-22 20:46:13] [INFO] About to extract fields from XML. File size: 6813 bytes
[2026-03-22 20:46:13] [INFO] Number of mappings: 28
[2026-03-22 20:46:13] [INFO] Starting XML parsing. Content length: 6813
[2026-03-22 20:46:13] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 20:46:13] [INFO] Processing 28 field mappings
[2026-03-22 20:46:13] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 20:46:13] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 20:46:13] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 20:46:13] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 20:46:13] [INFO]   -> Found value: MFD
EMS
RESC
PCFD
[2026-03-22 20:46:13] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nRESC\nPCFD"
[2026-03-22 20:46:13] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 20:46:13] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 20:46:13] [INFO]   -> Found value: 2026000105
[2026-03-22 20:46:13] [INFO]   -> Set field 'incidentInternalId' = "2026000105"
[2026-03-22 20:46:13] [INFO]   -> Set field 'dispatchRunNumber' = "2026000105"
[2026-03-22 20:46:13] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 20:46:13] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 20:46:13] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 20:46:13] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 20:46:13] [INFO]   -> Found value: 230
[2026-03-22 20:46:13] [INFO]   -> Set field 'incidentLocationStreetNumber' = 230
[2026-03-22 20:46:13] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 20:46:13] [INFO]   -> Found value: TN
[2026-03-22 20:46:13] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 20:46:13] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 20:46:13] [INFO]   -> Found value: 38574
[2026-03-22 20:46:13] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 20:46:13] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 20:46:13] [INFO]   -> Found value: 230 CATES RD
[2026-03-22 20:46:13] [INFO]   -> Set field 'businessName' = "230 CATES RD"
[2026-03-22 20:46:13] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 20:46:13] [INFO]   -> Found value: C20
[2026-03-22 20:46:13] [INFO]   -> Set field 'incidentLocationApt' = "C20"
[2026-03-22 20:46:13] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 20:46:13] [INFO]   -> Found value: 36.15606
[2026-03-22 20:46:13] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.156059999999996534825186245143413543701171875
[2026-03-22 20:46:13] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 20:46:13] [INFO]   -> Found value: -85.25698
[2026-03-22 20:46:13] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2569799999999986539478413760662078857421875
[2026-03-22 20:46:13] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 20:46:13] [INFO]   -> Found value: 2026-03-22 15:44:03
[2026-03-22 20:46:13] [INFO]   -> Set field 'alarm' = "2026-03-22 15:44:03"
[2026-03-22 20:46:13] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 20:46:13] [INFO]   -> Found value: 2026-03-22 15:44:50
[2026-03-22 20:46:13] [INFO]   -> Set field 'dispatched' = "2026-03-22 15:44:50"
[2026-03-22 20:46:13] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 20:46:13] [INFO]   -> Found value: 2026-03-22 15:46:07
[2026-03-22 20:46:13] [INFO]   -> Set field 'enroute' = "2026-03-22 15:46:07"
[2026-03-22 20:46:13] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 20:46:13] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:13] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 20:46:13] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:13] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 20:46:13] [INFO]   -> Found value: N HOLLY ST/HICKORY AVE
[2026-03-22 20:46:13] [INFO]   -> Set field 'incidentLocationCross' = "N HOLLY ST\/HICKORY AVE"
[2026-03-22 20:46:13] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 20:46:13] [INFO]   -> Found value: MF111
[2026-03-22 20:46:13] [INFO]   -> Set field 'cADVehicleID' = "MF111"
[2026-03-22 20:46:13] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 20:46:13] [INFO]   -> Found value: 2026-03-22 15:46:02
[2026-03-22 20:46:13] [INFO]   -> Set field 'timedispatch' = "2026-03-22 15:46:02"
[2026-03-22 20:46:13] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 20:46:13] [INFO]   -> Found value: 2026-03-22 15:46:07
[2026-03-22 20:46:13] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 15:46:07"
[2026-03-22 20:46:13] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 20:46:13] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:13] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 20:46:13] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:13] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 20:46:13] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:13] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 20:46:13] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 20:46:13] [INFO]   -> Found value: 20260031034
[2026-03-22 20:46:13] [INFO]   -> Set field 'policeReportNumber' = "20260031034"
[2026-03-22 20:46:13] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 20:46:13] [INFO]   -> Found value: [EMS] WANTS TO GO LRH  [03/22/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03/22/26 15:44...
[2026-03-22 20:46:13] [INFO]   -> Set field 'dispatchNotes' = "[EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 20:46:13] [INFO]   -> Set field 'cADLog' = "[EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 20:46:13] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 20:46:13] [INFO]   -> Found value: MONTEREY
[2026-03-22 20:46:13] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 20:46:13] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 20:46:13] [INFO]   -> Found value: CATES
[2026-03-22 20:46:13] [INFO]   -> Set field 'streetName' = "CATES"
[2026-03-22 20:46:13] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 20:46:13] [INFO]   -> Found value: RD
[2026-03-22 20:46:13] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 20:46:13] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 20:46:13] [INFO]   -> Found value: 230-C20 CATES RD
[2026-03-22 20:46:13] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "230-C20 CATES RD"
[2026-03-22 20:46:13] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-03-22 20:46:13] [INFO] Concatenating street name and type
[2026-03-22 20:46:13] [INFO]   -> Combined street name: CATES RD
[2026-03-22 20:46:13] [INFO] Built locationCoordinates from lat/lng: 36.15606,-85.25698
[2026-03-22 20:46:13] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nRESC\nPCFD","incidentInternalId":"2026000105","dispatchRunNumber":"2026000105","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":230,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"230 CATES RD","incidentLocationApt":"C20","nERISIncidentLatitude":36.156059999999996534825186245143413543701171875,"nERISIncidentLongitude":-85.2569799999999986539478413760662078857421875,"alarm":"2026-03-22 15:44:03","dispatched":"2026-03-22 15:44:50","enroute":"2026-03-22 15:46:07","incidentLocationCross":"N HOLLY ST\/HICKORY AVE","cADVehicleID":"MF111","timedispatch":"2026-03-22 15:46:02","timeenroutetoscene":"2026-03-22 15:46:07","policeReportNumber":"20260031034","dispatchNotes":"[EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","cADLog":"[EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","incidentLocationCity":"MONTEREY","streetName":"CATES RD","incidentAddressTextVersionStreet":"230-C20 CATES RD","locationCoordinates":"36.15606,-85.25698"}
[2026-03-22 20:46:13] [INFO] Number of extracted fields: 25
[2026-03-22 20:46:13] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
RESC
PCFD'
[2026-03-22 20:46:13] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
RESC
PCFD', Parsed IDs = ["MFD","EMS","RESC","PCFD"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 20:46:13] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","RESC","PCFD"]
[2026-03-22 20:46:13] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 20:46:13] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 20:46:13] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC","PCFD"]
[2026-03-22 20:46:13] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 20:46:13] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 20:46:13] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 20:46:13] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 20:46:13] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 20:46:13] [INFO] Found existing IncidentTypeMapping with ID: 697ea33628eb4de15
[2026-03-22 20:46:14] [INFO] Found existing Dispatch with cADNumber '2026000105', ID: 69c054c8009cc012c - will update instead of create
[2026-03-22 20:46:14] [INFO] Updated existing Dispatches record with ID: 69c054c8009cc012c
[2026-03-22 20:46:14] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204609.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260031034_20260322_204609.XML
[2026-03-22 20:46:14] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204609.XML
[2026-03-22 20:46:14] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204611.XML
[2026-03-22 20:46:14] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204611.XML for user: 68f1466aed072ad4a
[2026-03-22 20:46:14] [INFO] File size: 6813 bytes
[2026-03-22 20:46:14] [INFO] Created FTPFiles record with ID: 69c055168d34bb2fe
[2026-03-22 20:46:14] [INFO] About to extract fields from XML. File size: 6813 bytes
[2026-03-22 20:46:14] [INFO] Number of mappings: 28
[2026-03-22 20:46:14] [INFO] Starting XML parsing. Content length: 6813
[2026-03-22 20:46:14] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 20:46:14] [INFO] Processing 28 field mappings
[2026-03-22 20:46:14] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 20:46:14] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 20:46:14] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 20:46:14] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 20:46:14] [INFO]   -> Found value: MFD
EMS
RESC
PCFD
[2026-03-22 20:46:14] [INFO]   -> Set field 'cADAgencyIdentifier' = "MFD\nEMS\nRESC\nPCFD"
[2026-03-22 20:46:14] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 20:46:14] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 20:46:14] [INFO]   -> Found value: 2026000105
[2026-03-22 20:46:14] [INFO]   -> Set field 'incidentInternalId' = "2026000105"
[2026-03-22 20:46:14] [INFO]   -> Set field 'dispatchRunNumber' = "2026000105"
[2026-03-22 20:46:14] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 20:46:14] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 20:46:14] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 20:46:14] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 20:46:14] [INFO]   -> Found value: 230
[2026-03-22 20:46:14] [INFO]   -> Set field 'incidentLocationStreetNumber' = 230
[2026-03-22 20:46:14] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 20:46:14] [INFO]   -> Found value: TN
[2026-03-22 20:46:14] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 20:46:14] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 20:46:14] [INFO]   -> Found value: 38574
[2026-03-22 20:46:14] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 20:46:14] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 20:46:14] [INFO]   -> Found value: 230 CATES RD
[2026-03-22 20:46:14] [INFO]   -> Set field 'businessName' = "230 CATES RD"
[2026-03-22 20:46:14] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 20:46:14] [INFO]   -> Found value: C20
[2026-03-22 20:46:14] [INFO]   -> Set field 'incidentLocationApt' = "C20"
[2026-03-22 20:46:14] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 20:46:14] [INFO]   -> Found value: 36.15606
[2026-03-22 20:46:14] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.156059999999996534825186245143413543701171875
[2026-03-22 20:46:14] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 20:46:14] [INFO]   -> Found value: -85.25698
[2026-03-22 20:46:14] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2569799999999986539478413760662078857421875
[2026-03-22 20:46:14] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 20:46:14] [INFO]   -> Found value: 2026-03-22 15:44:03
[2026-03-22 20:46:14] [INFO]   -> Set field 'alarm' = "2026-03-22 15:44:03"
[2026-03-22 20:46:14] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 20:46:14] [INFO]   -> Found value: 2026-03-22 15:44:50
[2026-03-22 20:46:14] [INFO]   -> Set field 'dispatched' = "2026-03-22 15:44:50"
[2026-03-22 20:46:14] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 20:46:14] [INFO]   -> Found value: 2026-03-22 15:46:07
[2026-03-22 20:46:14] [INFO]   -> Set field 'enroute' = "2026-03-22 15:46:07"
[2026-03-22 20:46:14] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 20:46:14] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:14] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 20:46:14] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:14] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 20:46:14] [INFO]   -> Found value: N HOLLY ST/HICKORY AVE
[2026-03-22 20:46:14] [INFO]   -> Set field 'incidentLocationCross' = "N HOLLY ST\/HICKORY AVE"
[2026-03-22 20:46:14] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 20:46:14] [INFO]   -> Found value: MF111
[2026-03-22 20:46:14] [INFO]   -> Set field 'cADVehicleID' = "MF111"
[2026-03-22 20:46:14] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 20:46:14] [INFO]   -> Found value: 2026-03-22 15:46:02
[2026-03-22 20:46:14] [INFO]   -> Set field 'timedispatch' = "2026-03-22 15:46:02"
[2026-03-22 20:46:14] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 20:46:14] [INFO]   -> Found value: 2026-03-22 15:46:07
[2026-03-22 20:46:14] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 15:46:07"
[2026-03-22 20:46:14] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 20:46:14] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:14] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 20:46:14] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:14] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 20:46:14] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:14] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 20:46:14] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 20:46:14] [INFO]   -> Found value: 20260031034
[2026-03-22 20:46:14] [INFO]   -> Set field 'policeReportNumber' = "20260031034"
[2026-03-22 20:46:14] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 20:46:14] [INFO]   -> Found value: [EMS] WANTS TO GO LRH  [03/22/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03/22/26 15:44...
[2026-03-22 20:46:14] [INFO]   -> Set field 'dispatchNotes' = "[EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 20:46:14] [INFO]   -> Set field 'cADLog' = "[EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 20:46:14] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 20:46:14] [INFO]   -> Found value: MONTEREY
[2026-03-22 20:46:14] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 20:46:14] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 20:46:14] [INFO]   -> Found value: CATES
[2026-03-22 20:46:14] [INFO]   -> Set field 'streetName' = "CATES"
[2026-03-22 20:46:14] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 20:46:14] [INFO]   -> Found value: RD
[2026-03-22 20:46:14] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 20:46:14] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 20:46:14] [INFO]   -> Found value: 230-C20 CATES RD
[2026-03-22 20:46:14] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "230-C20 CATES RD"
[2026-03-22 20:46:14] [INFO] Finished extracting fields. Total fields extracted: 25
[2026-03-22 20:46:14] [INFO] Concatenating street name and type
[2026-03-22 20:46:14] [INFO]   -> Combined street name: CATES RD
[2026-03-22 20:46:14] [INFO] Built locationCoordinates from lat/lng: 36.15606,-85.25698
[2026-03-22 20:46:14] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"MFD\nEMS\nRESC\nPCFD","incidentInternalId":"2026000105","dispatchRunNumber":"2026000105","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":230,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"230 CATES RD","incidentLocationApt":"C20","nERISIncidentLatitude":36.156059999999996534825186245143413543701171875,"nERISIncidentLongitude":-85.2569799999999986539478413760662078857421875,"alarm":"2026-03-22 15:44:03","dispatched":"2026-03-22 15:44:50","enroute":"2026-03-22 15:46:07","incidentLocationCross":"N HOLLY ST\/HICKORY AVE","cADVehicleID":"MF111","timedispatch":"2026-03-22 15:46:02","timeenroutetoscene":"2026-03-22 15:46:07","policeReportNumber":"20260031034","dispatchNotes":"[EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","cADLog":"[EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","incidentLocationCity":"MONTEREY","streetName":"CATES RD","incidentAddressTextVersionStreet":"230-C20 CATES RD","locationCoordinates":"36.15606,-85.25698"}
[2026-03-22 20:46:14] [INFO] Number of extracted fields: 25
[2026-03-22 20:46:14] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'MFD
EMS
RESC
PCFD'
[2026-03-22 20:46:14] [INFO] Multi-agency routing check: CAD Agency ID raw = 'MFD
EMS
RESC
PCFD', Parsed IDs = ["MFD","EMS","RESC","PCFD"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 20:46:14] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["MFD","EMS","RESC","PCFD"]
[2026-03-22 20:46:14] [INFO] Attempting SAASClient lookup for AgencyCode 'MFD' (index 0) within mailbox's assigned agencies
[2026-03-22 20:46:14] [INFO] SUCCESS: Routed to agency 'Monterey Fire Department' (ID: 68e67aaba2bb4565e) at INDEX 0 based on AgencyCode 'MFD'
[2026-03-22 20:46:14] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","RESC","PCFD"]
[2026-03-22 20:46:14] [INFO] Fetched 1 stations from Stations module for agency 'Monterey Fire Department': ["68ffe49c256b67300"]
[2026-03-22 20:46:14] [INFO] Final routing: saasclientId = 68e67aaba2bb4565e, dispatchStationsIds = ["68ffe49c256b67300"], matchedAgencyIndex = 0
[2026-03-22 20:46:14] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 20:46:14] [INFO] Filtered cADAgencyIdentifier to: MFD
[2026-03-22 20:46:15] [INFO] Updated FTPFiles record saasclientId to routed agency: 68e67aaba2bb4565e
[2026-03-22 20:46:15] [INFO] Found existing IncidentTypeMapping with ID: 697ea33628eb4de15
[2026-03-22 20:46:15] [INFO] Found existing Dispatch with cADNumber '2026000105', ID: 69c054c8009cc012c - will update instead of create
[2026-03-22 20:46:15] [INFO] Updated existing Dispatches record with ID: 69c054c8009cc012c
[2026-03-22 20:46:15] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204611.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/MFD_20260031034_20260322_204611.XML
[2026-03-22 20:46:15] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/MFD_20260031034_20260322_204611.XML
[2026-03-22 20:46:27] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08678.xml
[2026-03-22 20:46:27] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08678.xml for user: 68d56363ec1209189
[2026-03-22 20:46:27] [INFO] File size: 1586 bytes
[2026-03-22 20:46:27] [INFO] Created FTPFiles record with ID: 69c0552397f8e15c5
[2026-03-22 20:46:27] [INFO] About to extract fields from XML. File size: 1586 bytes
[2026-03-22 20:46:27] [INFO] Number of mappings: 21
[2026-03-22 20:46:27] [INFO] Starting XML parsing. Content length: 1586
[2026-03-22 20:46:27] [INFO] XML parsed successfully. Root element: Incident
[2026-03-22 20:46:27] [INFO] Processing 21 field mappings
[2026-03-22 20:46:27] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-22 20:46:27] [INFO]   -> Found value: 26-08678
[2026-03-22 20:46:27] [INFO]   -> Set field 'dispatchRunNumber' = "26-08678"
[2026-03-22 20:46:27] [INFO]   -> Set field 'cADNumber' = "26-08678"
[2026-03-22 20:46:27] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-22 20:46:27] [INFO]   -> Found value: 1008
[2026-03-22 20:46:27] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1008
[2026-03-22 20:46:27] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-22 20:46:27] [INFO]   -> Found value: N MAIN ST
[2026-03-22 20:46:27] [INFO]   -> Set field 'streetName' = "N MAIN ST"
[2026-03-22 20:46:27] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-22 20:46:27] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:27] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-22 20:46:27] [INFO]   -> Found value: SIKESTON
[2026-03-22 20:46:27] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-03-22 20:46:27] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-22 20:46:27] [INFO]   -> Found value: MDMC
[2026-03-22 20:46:27] [INFO]   -> Set field 'businessName' = "MDMC"
[2026-03-22 20:46:27] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-22 20:46:27] [INFO]   -> Found value: MO
[2026-03-22 20:46:27] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-03-22 20:46:27] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-22 20:46:27] [INFO]   -> Found value: 63801
[2026-03-22 20:46:27] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-03-22 20:46:27] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-22 20:46:27] [INFO]   -> Found value: 0
[2026-03-22 20:46:27] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-22 20:46:27] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-22 20:46:27] [INFO]   -> Found value: 0
[2026-03-22 20:46:27] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-22 20:46:27] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-22 20:46:27] [INFO]   -> Found value: FIRE-AIRCRAFT STANDBY
[2026-03-22 20:46:27] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-AIRCRAFT STANDBY"
[2026-03-22 20:46:27] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-22 20:46:27] [INFO]   -> Found value: 03-22-2026 15:42:11|AIR EVAC ETA 10 MIN
[2026-03-22 20:46:27] [INFO]   -> Set field 'dispatchNotes' = "03-22-2026 15:42:11|AIR EVAC ETA 10 MIN"
[2026-03-22 20:46:27] [INFO]   -> Set field 'cADLog' = "03-22-2026 15:42:11|AIR EVAC ETA 10 MIN"
[2026-03-22 20:46:27] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-22 20:46:27] [INFO]   -> Found value: 03-22-2026T15:44:01
[2026-03-22 20:46:27] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T15:44:01
[2026-03-22 20:46:27] [ERROR] Error formatting datetime '2026-22-03T15:44:01': Failed to parse time string (2026-22-03T15:44:01) at position 6 (2): Unexpected character
[2026-03-22 20:46:27] [INFO]   -> Set field 'alarm' = null
[2026-03-22 20:46:27] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T15:44:01
[2026-03-22 20:46:27] [ERROR] Error formatting datetime '2026-22-03T15:44:01': Failed to parse time string (2026-22-03T15:44:01) at position 6 (2): Unexpected character
[2026-03-22 20:46:27] [INFO]   -> Set field 'dispatched' = null
[2026-03-22 20:46:27] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-22 20:46:27] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:27] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-22 20:46:27] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:27] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-22 20:46:27] [INFO]   -> Found value: L3
[2026-03-22 20:46:27] [INFO]   -> Set field 'cADVehicleID' = "L3"
[2026-03-22 20:46:27] [INFO]   -> Set field 'name' = "L3"
[2026-03-22 20:46:27] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-22 20:46:27] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:27] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-22 20:46:27] [INFO]   -> No value found (null or empty)
[2026-03-22 20:46:27] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-22 20:46:27] [INFO]   -> Found value: 03-22-2026T15:46:09
[2026-03-22 20:46:27] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T15:46:09
[2026-03-22 20:46:27] [ERROR] Error formatting datetime '2026-22-03T15:46:09': Failed to parse time string (2026-22-03T15:46:09) at position 6 (2): Unexpected character
[2026-03-22 20:46:27] [INFO]   -> Set field 'timeunitclear' = null
[2026-03-22 20:46:27] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-22 20:46:27] [INFO]   -> Found value: 03-22-2026T15:46:07
[2026-03-22 20:46:27] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T15:46:07
[2026-03-22 20:46:27] [ERROR] Error formatting datetime '2026-22-03T15:46:07': Failed to parse time string (2026-22-03T15:46:07) at position 6 (2): Unexpected character
[2026-03-22 20:46:27] [INFO]   -> Set field 'timedispatch' = null
[2026-03-22 20:46:27] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-22 20:46:27] [INFO]   -> Found value: SDPSFD
[2026-03-22 20:46:27] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-03-22 20:46:27] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-03-22 20:46:27] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-22 20:46:27] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-08678","cADNumber":"26-08678","incidentLocationStreetNumber":1008,"streetName":"N MAIN ST","incidentLocationCity":"SIKESTON","businessName":"MDMC","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-AIRCRAFT STANDBY","dispatchNotes":"03-22-2026 15:42:11|AIR EVAC ETA 10 MIN","cADLog":"03-22-2026 15:42:11|AIR EVAC ETA 10 MIN","alarm":null,"dispatched":null,"cADVehicleID":"L3","name":"L3","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-03-22 20:46:27] [INFO] Number of extracted fields: 21
[2026-03-22 20:46:27] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-03-22 20:46:27] [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-22 20:46:27] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-03-22 20:46:27] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-03-22 20:46:27] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-03-22 20:46:27] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-03-22 20:46:27] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-03-22 20:46:27] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-03-22 20:46:28] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e875662f9c
[2026-03-22 20:46:30] [INFO] Created new Dispatches record with ID: 69c055246a222af10
[2026-03-22 20:46:30] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08678.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-22/SDPSFD_26-08678.xml
[2026-03-22 20:46:30] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08678.xml
[2026-03-22 20:47:27] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08678.xml
[2026-03-22 20:47:27] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08678.xml for user: 68d56363ec1209189
[2026-03-22 20:47:27] [INFO] File size: 1634 bytes
[2026-03-22 20:47:28] [INFO] Created FTPFiles record with ID: 69c055600942b00f9
[2026-03-22 20:47:28] [INFO] About to extract fields from XML. File size: 1634 bytes
[2026-03-22 20:47:28] [INFO] Number of mappings: 21
[2026-03-22 20:47:28] [INFO] Starting XML parsing. Content length: 1634
[2026-03-22 20:47:28] [INFO] XML parsed successfully. Root element: Incident
[2026-03-22 20:47:28] [INFO] Processing 21 field mappings
[2026-03-22 20:47:28] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-22 20:47:28] [INFO]   -> Found value: 26-08678
[2026-03-22 20:47:28] [INFO]   -> Set field 'dispatchRunNumber' = "26-08678"
[2026-03-22 20:47:28] [INFO]   -> Set field 'cADNumber' = "26-08678"
[2026-03-22 20:47:28] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-22 20:47:28] [INFO]   -> Found value: 1008
[2026-03-22 20:47:28] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1008
[2026-03-22 20:47:28] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-22 20:47:28] [INFO]   -> Found value: N MAIN ST
[2026-03-22 20:47:28] [INFO]   -> Set field 'streetName' = "N MAIN ST"
[2026-03-22 20:47:28] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-22 20:47:28] [INFO]   -> No value found (null or empty)
[2026-03-22 20:47:28] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-22 20:47:28] [INFO]   -> Found value: SIKESTON
[2026-03-22 20:47:28] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-03-22 20:47:28] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-22 20:47:28] [INFO]   -> Found value: MDMC
[2026-03-22 20:47:28] [INFO]   -> Set field 'businessName' = "MDMC"
[2026-03-22 20:47:28] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-22 20:47:28] [INFO]   -> Found value: MO
[2026-03-22 20:47:28] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-03-22 20:47:28] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-22 20:47:28] [INFO]   -> Found value: 63801
[2026-03-22 20:47:28] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-03-22 20:47:28] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-22 20:47:28] [INFO]   -> Found value: 0
[2026-03-22 20:47:28] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-22 20:47:28] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-22 20:47:28] [INFO]   -> Found value: 0
[2026-03-22 20:47:28] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-22 20:47:28] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-22 20:47:28] [INFO]   -> Found value: FIRE-AIRCRAFT STANDBY
[2026-03-22 20:47:28] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-AIRCRAFT STANDBY"
[2026-03-22 20:47:28] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-22 20:47:28] [INFO]   -> Found value: 03-22-2026 15:42:11|AIR EVAC ETA 10 MIN 03-22-2026 15:46:18|Disposition - SDPS FD:  NRN
[2026-03-22 20:47:28] [INFO]   -> Set field 'dispatchNotes' = "03-22-2026 15:42:11|AIR EVAC ETA 10 MIN 03-22-2026 15:46:18|Disposition - SDPS FD:  NRN"
[2026-03-22 20:47:28] [INFO]   -> Set field 'cADLog' = "03-22-2026 15:42:11|AIR EVAC ETA 10 MIN 03-22-2026 15:46:18|Disposition - SDPS FD:  NRN"
[2026-03-22 20:47:28] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-22 20:47:28] [INFO]   -> Found value: 03-22-2026T15:44:01
[2026-03-22 20:47:28] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T15:44:01
[2026-03-22 20:47:28] [ERROR] Error formatting datetime '2026-22-03T15:44:01': Failed to parse time string (2026-22-03T15:44:01) at position 6 (2): Unexpected character
[2026-03-22 20:47:28] [INFO]   -> Set field 'alarm' = null
[2026-03-22 20:47:28] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T15:44:01
[2026-03-22 20:47:28] [ERROR] Error formatting datetime '2026-22-03T15:44:01': Failed to parse time string (2026-22-03T15:44:01) at position 6 (2): Unexpected character
[2026-03-22 20:47:28] [INFO]   -> Set field 'dispatched' = null
[2026-03-22 20:47:28] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-22 20:47:28] [INFO]   -> No value found (null or empty)
[2026-03-22 20:47:28] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-22 20:47:28] [INFO]   -> No value found (null or empty)
[2026-03-22 20:47:28] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-22 20:47:28] [INFO]   -> Found value: L3
[2026-03-22 20:47:28] [INFO]   -> Set field 'cADVehicleID' = "L3"
[2026-03-22 20:47:28] [INFO]   -> Set field 'name' = "L3"
[2026-03-22 20:47:28] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-22 20:47:28] [INFO]   -> No value found (null or empty)
[2026-03-22 20:47:28] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-22 20:47:28] [INFO]   -> No value found (null or empty)
[2026-03-22 20:47:28] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-22 20:47:28] [INFO]   -> Found value: 03-22-2026T15:46:47
[2026-03-22 20:47:28] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T15:46:47
[2026-03-22 20:47:28] [ERROR] Error formatting datetime '2026-22-03T15:46:47': Failed to parse time string (2026-22-03T15:46:47) at position 6 (2): Unexpected character
[2026-03-22 20:47:28] [INFO]   -> Set field 'timeunitclear' = null
[2026-03-22 20:47:28] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-22 20:47:28] [INFO]   -> Found value: 03-22-2026T15:46:07
[2026-03-22 20:47:28] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T15:46:07
[2026-03-22 20:47:28] [ERROR] Error formatting datetime '2026-22-03T15:46:07': Failed to parse time string (2026-22-03T15:46:07) at position 6 (2): Unexpected character
[2026-03-22 20:47:28] [INFO]   -> Set field 'timedispatch' = null
[2026-03-22 20:47:28] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-22 20:47:28] [INFO]   -> Found value: SDPSFD
[2026-03-22 20:47:28] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-03-22 20:47:28] [INFO] Finished extracting fields. Total fields extracted: 20
[2026-03-22 20:47:28] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-22 20:47:28] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-08678","cADNumber":"26-08678","incidentLocationStreetNumber":1008,"streetName":"N MAIN ST","incidentLocationCity":"SIKESTON","businessName":"MDMC","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-AIRCRAFT STANDBY","dispatchNotes":"03-22-2026 15:42:11|AIR EVAC ETA 10 MIN 03-22-2026 15:46:18|Disposition - SDPS FD:  NRN","cADLog":"03-22-2026 15:42:11|AIR EVAC ETA 10 MIN 03-22-2026 15:46:18|Disposition - SDPS FD:  NRN","alarm":null,"dispatched":null,"cADVehicleID":"L3","name":"L3","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-03-22 20:47:28] [INFO] Number of extracted fields: 21
[2026-03-22 20:47:28] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-03-22 20:47:28] [INFO] Multi-agency routing check: CAD Agency ID raw = 'SDPSFD', Parsed IDs = ["SDPSFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 2
[2026-03-22 20:47:28] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-03-22 20:47:28] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-03-22 20:47:28] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-03-22 20:47:28] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-03-22 20:47:28] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-03-22 20:47:28] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-03-22 20:47:28] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e875662f9c
[2026-03-22 20:47:29] [INFO] Found existing Dispatch with cADNumber '26-08678', ID: 69c055246a222af10 - will update instead of create
[2026-03-22 20:47:29] [INFO] Updated existing Dispatches record with ID: 69c055246a222af10
[2026-03-22 20:47:29] [INFO] File already exists in archive, using unique name: SDPSFD_26-08678_1774212449.xml
[2026-03-22 20:47:29] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08678.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-22/SDPSFD_26-08678_1774212449.xml
[2026-03-22 20:47:29] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08678.xml
[2026-03-22 21:04:01] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_210401.XML
[2026-03-22 21:04:01] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_210401.XML for user: 68f1466aed072ad4a
[2026-03-22 21:04:01] [INFO] File size: 5749 bytes
[2026-03-22 21:04:02] [INFO] Created FTPFiles record with ID: 69c05942241e22b04
[2026-03-22 21:04:02] [INFO] About to extract fields from XML. File size: 5749 bytes
[2026-03-22 21:04:02] [INFO] Number of mappings: 28
[2026-03-22 21:04:02] [INFO] Starting XML parsing. Content length: 5749
[2026-03-22 21:04:02] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 21:04:02] [INFO] Processing 28 field mappings
[2026-03-22 21:04:02] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 21:04:02] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 21:04:02] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 21:04:02] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 21:04:02] [INFO]   -> Found value: PCFD
RESC
[2026-03-22 21:04:02] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC"
[2026-03-22 21:04:02] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 21:04:02] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 21:04:02] [INFO]   -> Found value: 2026000777
[2026-03-22 21:04:02] [INFO]   -> Set field 'incidentInternalId' = "2026000777"
[2026-03-22 21:04:02] [INFO]   -> Set field 'dispatchRunNumber' = "2026000777"
[2026-03-22 21:04:02] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 21:04:02] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 21:04:02] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 21:04:02] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 21:04:02] [INFO]   -> Found value: 230
[2026-03-22 21:04:02] [INFO]   -> Set field 'incidentLocationStreetNumber' = 230
[2026-03-22 21:04:02] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 21:04:02] [INFO]   -> Found value: TN
[2026-03-22 21:04:02] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 21:04:02] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 21:04:02] [INFO]   -> Found value: 38574
[2026-03-22 21:04:02] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 21:04:02] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 21:04:02] [INFO]   -> Found value: 230 CATES RD
[2026-03-22 21:04:02] [INFO]   -> Set field 'businessName' = "230 CATES RD"
[2026-03-22 21:04:02] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 21:04:02] [INFO]   -> Found value: C20
[2026-03-22 21:04:02] [INFO]   -> Set field 'incidentLocationApt' = "C20"
[2026-03-22 21:04:02] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 21:04:02] [INFO]   -> Found value: 36.15606
[2026-03-22 21:04:02] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.156059999999996534825186245143413543701171875
[2026-03-22 21:04:02] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 21:04:02] [INFO]   -> Found value: -85.25698
[2026-03-22 21:04:02] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2569799999999986539478413760662078857421875
[2026-03-22 21:04:02] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 21:04:02] [INFO]   -> Found value: 2026-03-22 15:45:50
[2026-03-22 21:04:02] [INFO]   -> Set field 'alarm' = "2026-03-22 15:45:50"
[2026-03-22 21:04:02] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 21:04:02] [INFO]   -> Found value: 2026-03-22 15:45:50
[2026-03-22 21:04:02] [INFO]   -> Set field 'dispatched' = "2026-03-22 15:45:50"
[2026-03-22 21:04:02] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 21:04:02] [INFO]   -> No value found (null or empty)
[2026-03-22 21:04:02] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 21:04:02] [INFO]   -> No value found (null or empty)
[2026-03-22 21:04:02] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 21:04:02] [INFO]   -> Found value: 2026-03-22 16:03:50
[2026-03-22 21:04:02] [INFO]   -> Set field 'cleared' = "2026-03-22 16:03:50"
[2026-03-22 21:04:02] [INFO]   -> Set field 'inService' = "2026-03-22 16:03:50"
[2026-03-22 21:04:02] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 21:04:02] [INFO]   -> Found value: N HOLLY ST/HICKORY AVE
[2026-03-22 21:04:02] [INFO]   -> Set field 'incidentLocationCross' = "N HOLLY ST\/HICKORY AVE"
[2026-03-22 21:04:02] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 21:04:02] [INFO]   -> Found value: PCFR
[2026-03-22 21:04:02] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 21:04:02] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 21:04:02] [INFO]   -> Found value: 2026-03-22 15:45:50
[2026-03-22 21:04:02] [INFO]   -> Set field 'timedispatch' = "2026-03-22 15:45:50"
[2026-03-22 21:04:02] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 21:04:02] [INFO]   -> No value found (null or empty)
[2026-03-22 21:04:02] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 21:04:02] [INFO]   -> No value found (null or empty)
[2026-03-22 21:04:02] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 21:04:02] [INFO]   -> Found value: 2026-03-22 16:03:50
[2026-03-22 21:04:02] [INFO]   -> Set field 'timeunitclear' = "2026-03-22 16:03:50"
[2026-03-22 21:04:02] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 21:04:02] [INFO]   -> No value found (null or empty)
[2026-03-22 21:04:02] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 21:04:02] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 21:04:02] [INFO]   -> Found value: 20260031038
[2026-03-22 21:04:02] [INFO]   -> Set field 'policeReportNumber' = "20260031038"
[2026-03-22 21:04:02] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 21:04:02] [INFO]   -> Found value: Event spawned from FAINTING / SYNCOPE.  [03/22/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03/22/26...
[2026-03-22 21:04:02] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 21:04:02] [INFO]   -> Set field 'cADLog' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 21:04:02] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 21:04:02] [INFO]   -> Found value: MONTEREY
[2026-03-22 21:04:02] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 21:04:02] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 21:04:02] [INFO]   -> Found value: CATES
[2026-03-22 21:04:02] [INFO]   -> Set field 'streetName' = "CATES"
[2026-03-22 21:04:02] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 21:04:02] [INFO]   -> Found value: RD
[2026-03-22 21:04:02] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 21:04:02] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 21:04:02] [INFO]   -> Found value: 230-C20 CATES RD
[2026-03-22 21:04:02] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "230-C20 CATES RD"
[2026-03-22 21:04:02] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-22 21:04:02] [INFO] Concatenating street name and type
[2026-03-22 21:04:02] [INFO]   -> Combined street name: CATES RD
[2026-03-22 21:04:02] [INFO] Built locationCoordinates from lat/lng: 36.15606,-85.25698
[2026-03-22 21:04:02] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nRESC","incidentInternalId":"2026000777","dispatchRunNumber":"2026000777","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":230,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"230 CATES RD","incidentLocationApt":"C20","nERISIncidentLatitude":36.156059999999996534825186245143413543701171875,"nERISIncidentLongitude":-85.2569799999999986539478413760662078857421875,"alarm":"2026-03-22 15:45:50","dispatched":"2026-03-22 15:45:50","cleared":"2026-03-22 16:03:50","inService":"2026-03-22 16:03:50","incidentLocationCross":"N HOLLY ST\/HICKORY AVE","cADVehicleID":"PCFR","timedispatch":"2026-03-22 15:45:50","timeunitclear":"2026-03-22 16:03:50","policeReportNumber":"20260031038","dispatchNotes":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","cADLog":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","incidentLocationCity":"MONTEREY","streetName":"CATES RD","incidentAddressTextVersionStreet":"230-C20 CATES RD","locationCoordinates":"36.15606,-85.25698"}
[2026-03-22 21:04:02] [INFO] Number of extracted fields: 26
[2026-03-22 21:04:02] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC'
[2026-03-22 21:04:02] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
RESC', Parsed IDs = ["PCFD","RESC"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 21:04:02] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC"]
[2026-03-22 21:04:02] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 21:04:02] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 21:04:02] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-22 21:04:02] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 21:04:02] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 21:04:02] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 21:04:02] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 21:04:02] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 21:04:02] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-22 21:04:03] [INFO] Found existing Dispatch with cADNumber '2026000777', ID: 69c055073c1129857 - will update instead of create
[2026-03-22 21:04:03] [INFO] Updated existing Dispatches record with ID: 69c055073c1129857
[2026-03-22 21:04:03] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_210401.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031038_20260322_210401.XML
[2026-03-22 21:04:03] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_210401.XML
[2026-03-22 21:04:04] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_210404.XML
[2026-03-22 21:04:04] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_210404.XML for user: 68f1466aed072ad4a
[2026-03-22 21:04:04] [INFO] File size: 5749 bytes
[2026-03-22 21:04:04] [INFO] Created FTPFiles record with ID: 69c059449725845fb
[2026-03-22 21:04:04] [INFO] About to extract fields from XML. File size: 5749 bytes
[2026-03-22 21:04:04] [INFO] Number of mappings: 28
[2026-03-22 21:04:04] [INFO] Starting XML parsing. Content length: 5749
[2026-03-22 21:04:04] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 21:04:04] [INFO] Processing 28 field mappings
[2026-03-22 21:04:04] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 21:04:04] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 21:04:04] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 21:04:04] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 21:04:04] [INFO]   -> Found value: PCFD
RESC
[2026-03-22 21:04:04] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC"
[2026-03-22 21:04:04] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 21:04:04] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 21:04:04] [INFO]   -> Found value: 2026000777
[2026-03-22 21:04:04] [INFO]   -> Set field 'incidentInternalId' = "2026000777"
[2026-03-22 21:04:04] [INFO]   -> Set field 'dispatchRunNumber' = "2026000777"
[2026-03-22 21:04:04] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 21:04:04] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 21:04:04] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 21:04:04] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 21:04:04] [INFO]   -> Found value: 230
[2026-03-22 21:04:04] [INFO]   -> Set field 'incidentLocationStreetNumber' = 230
[2026-03-22 21:04:04] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 21:04:04] [INFO]   -> Found value: TN
[2026-03-22 21:04:04] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 21:04:04] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 21:04:04] [INFO]   -> Found value: 38574
[2026-03-22 21:04:04] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 21:04:04] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 21:04:04] [INFO]   -> Found value: 230 CATES RD
[2026-03-22 21:04:04] [INFO]   -> Set field 'businessName' = "230 CATES RD"
[2026-03-22 21:04:04] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 21:04:04] [INFO]   -> Found value: C20
[2026-03-22 21:04:04] [INFO]   -> Set field 'incidentLocationApt' = "C20"
[2026-03-22 21:04:04] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 21:04:04] [INFO]   -> Found value: 36.15606
[2026-03-22 21:04:04] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.156059999999996534825186245143413543701171875
[2026-03-22 21:04:04] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 21:04:04] [INFO]   -> Found value: -85.25698
[2026-03-22 21:04:04] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2569799999999986539478413760662078857421875
[2026-03-22 21:04:04] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 21:04:04] [INFO]   -> Found value: 2026-03-22 15:45:50
[2026-03-22 21:04:04] [INFO]   -> Set field 'alarm' = "2026-03-22 15:45:50"
[2026-03-22 21:04:04] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 21:04:04] [INFO]   -> Found value: 2026-03-22 15:45:50
[2026-03-22 21:04:04] [INFO]   -> Set field 'dispatched' = "2026-03-22 15:45:50"
[2026-03-22 21:04:04] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 21:04:04] [INFO]   -> No value found (null or empty)
[2026-03-22 21:04:04] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 21:04:04] [INFO]   -> No value found (null or empty)
[2026-03-22 21:04:04] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 21:04:04] [INFO]   -> Found value: 2026-03-22 16:03:50
[2026-03-22 21:04:04] [INFO]   -> Set field 'cleared' = "2026-03-22 16:03:50"
[2026-03-22 21:04:04] [INFO]   -> Set field 'inService' = "2026-03-22 16:03:50"
[2026-03-22 21:04:04] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 21:04:04] [INFO]   -> Found value: N HOLLY ST/HICKORY AVE
[2026-03-22 21:04:04] [INFO]   -> Set field 'incidentLocationCross' = "N HOLLY ST\/HICKORY AVE"
[2026-03-22 21:04:04] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 21:04:04] [INFO]   -> Found value: PCFR
[2026-03-22 21:04:04] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 21:04:04] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 21:04:04] [INFO]   -> Found value: 2026-03-22 15:45:50
[2026-03-22 21:04:04] [INFO]   -> Set field 'timedispatch' = "2026-03-22 15:45:50"
[2026-03-22 21:04:04] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 21:04:04] [INFO]   -> No value found (null or empty)
[2026-03-22 21:04:04] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 21:04:04] [INFO]   -> No value found (null or empty)
[2026-03-22 21:04:04] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 21:04:04] [INFO]   -> Found value: 2026-03-22 16:03:50
[2026-03-22 21:04:04] [INFO]   -> Set field 'timeunitclear' = "2026-03-22 16:03:50"
[2026-03-22 21:04:04] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 21:04:04] [INFO]   -> No value found (null or empty)
[2026-03-22 21:04:04] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 21:04:04] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 21:04:04] [INFO]   -> Found value: 20260031038
[2026-03-22 21:04:04] [INFO]   -> Set field 'policeReportNumber' = "20260031038"
[2026-03-22 21:04:04] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 21:04:04] [INFO]   -> Found value: Event spawned from FAINTING / SYNCOPE.  [03/22/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03/22/26...
[2026-03-22 21:04:04] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 21:04:04] [INFO]   -> Set field 'cADLog' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 21:04:04] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 21:04:04] [INFO]   -> Found value: MONTEREY
[2026-03-22 21:04:04] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 21:04:04] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 21:04:04] [INFO]   -> Found value: CATES
[2026-03-22 21:04:04] [INFO]   -> Set field 'streetName' = "CATES"
[2026-03-22 21:04:04] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 21:04:04] [INFO]   -> Found value: RD
[2026-03-22 21:04:04] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 21:04:04] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 21:04:04] [INFO]   -> Found value: 230-C20 CATES RD
[2026-03-22 21:04:04] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "230-C20 CATES RD"
[2026-03-22 21:04:04] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-22 21:04:04] [INFO] Concatenating street name and type
[2026-03-22 21:04:04] [INFO]   -> Combined street name: CATES RD
[2026-03-22 21:04:04] [INFO] Built locationCoordinates from lat/lng: 36.15606,-85.25698
[2026-03-22 21:04:04] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nRESC","incidentInternalId":"2026000777","dispatchRunNumber":"2026000777","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":230,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"230 CATES RD","incidentLocationApt":"C20","nERISIncidentLatitude":36.156059999999996534825186245143413543701171875,"nERISIncidentLongitude":-85.2569799999999986539478413760662078857421875,"alarm":"2026-03-22 15:45:50","dispatched":"2026-03-22 15:45:50","cleared":"2026-03-22 16:03:50","inService":"2026-03-22 16:03:50","incidentLocationCross":"N HOLLY ST\/HICKORY AVE","cADVehicleID":"PCFR","timedispatch":"2026-03-22 15:45:50","timeunitclear":"2026-03-22 16:03:50","policeReportNumber":"20260031038","dispatchNotes":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","cADLog":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","incidentLocationCity":"MONTEREY","streetName":"CATES RD","incidentAddressTextVersionStreet":"230-C20 CATES RD","locationCoordinates":"36.15606,-85.25698"}
[2026-03-22 21:04:04] [INFO] Number of extracted fields: 26
[2026-03-22 21:04:04] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC'
[2026-03-22 21:04:04] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
RESC', Parsed IDs = ["PCFD","RESC"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 21:04:04] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC"]
[2026-03-22 21:04:04] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 21:04:04] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 21:04:04] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-22 21:04:05] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 21:04:05] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 21:04:05] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 21:04:05] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 21:04:05] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 21:04:05] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-22 21:04:05] [INFO] Found existing Dispatch with cADNumber '2026000777', ID: 69c055073c1129857 - will update instead of create
[2026-03-22 21:04:05] [INFO] Updated existing Dispatches record with ID: 69c055073c1129857
[2026-03-22 21:04:05] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_210404.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031038_20260322_210404.XML
[2026-03-22 21:04:05] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_210404.XML
[2026-03-22 21:04:09] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_210409.XML
[2026-03-22 21:04:09] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_210409.XML for user: 68f1466aed072ad4a
[2026-03-22 21:04:09] [INFO] File size: 5749 bytes
[2026-03-22 21:04:10] [INFO] Created FTPFiles record with ID: 69c0594a31a2f2fe4
[2026-03-22 21:04:10] [INFO] About to extract fields from XML. File size: 5749 bytes
[2026-03-22 21:04:10] [INFO] Number of mappings: 28
[2026-03-22 21:04:10] [INFO] Starting XML parsing. Content length: 5749
[2026-03-22 21:04:10] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 21:04:10] [INFO] Processing 28 field mappings
[2026-03-22 21:04:10] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 21:04:10] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 21:04:10] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 21:04:10] [INFO] Found 2 elements for 'AgencyCode', concatenating 2 non-empty values
[2026-03-22 21:04:10] [INFO]   -> Found value: PCFD
RESC
[2026-03-22 21:04:10] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nRESC"
[2026-03-22 21:04:10] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 21:04:10] [INFO] Found 2 elements for 'ReportNumber', using FIRST value only
[2026-03-22 21:04:10] [INFO]   -> Found value: 2026000777
[2026-03-22 21:04:10] [INFO]   -> Set field 'incidentInternalId' = "2026000777"
[2026-03-22 21:04:10] [INFO]   -> Set field 'dispatchRunNumber' = "2026000777"
[2026-03-22 21:04:10] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 21:04:10] [INFO]   -> Found value: FAINTING / SYNCOPE
[2026-03-22 21:04:10] [INFO]   -> Set field 'incidentTypeValue1' = "FAINTING \/ SYNCOPE"
[2026-03-22 21:04:10] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 21:04:10] [INFO]   -> Found value: 230
[2026-03-22 21:04:10] [INFO]   -> Set field 'incidentLocationStreetNumber' = 230
[2026-03-22 21:04:10] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 21:04:10] [INFO]   -> Found value: TN
[2026-03-22 21:04:10] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 21:04:10] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 21:04:10] [INFO]   -> Found value: 38574
[2026-03-22 21:04:10] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38574
[2026-03-22 21:04:10] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 21:04:10] [INFO]   -> Found value: 230 CATES RD
[2026-03-22 21:04:10] [INFO]   -> Set field 'businessName' = "230 CATES RD"
[2026-03-22 21:04:10] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 21:04:10] [INFO]   -> Found value: C20
[2026-03-22 21:04:10] [INFO]   -> Set field 'incidentLocationApt' = "C20"
[2026-03-22 21:04:10] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 21:04:10] [INFO]   -> Found value: 36.15606
[2026-03-22 21:04:10] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.156059999999996534825186245143413543701171875
[2026-03-22 21:04:10] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 21:04:10] [INFO]   -> Found value: -85.25698
[2026-03-22 21:04:10] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.2569799999999986539478413760662078857421875
[2026-03-22 21:04:10] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 21:04:10] [INFO]   -> Found value: 2026-03-22 15:45:50
[2026-03-22 21:04:10] [INFO]   -> Set field 'alarm' = "2026-03-22 15:45:50"
[2026-03-22 21:04:10] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 21:04:10] [INFO]   -> Found value: 2026-03-22 15:45:50
[2026-03-22 21:04:10] [INFO]   -> Set field 'dispatched' = "2026-03-22 15:45:50"
[2026-03-22 21:04:10] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 21:04:10] [INFO]   -> No value found (null or empty)
[2026-03-22 21:04:10] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 21:04:10] [INFO]   -> No value found (null or empty)
[2026-03-22 21:04:10] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 21:04:10] [INFO]   -> Found value: 2026-03-22 16:03:50
[2026-03-22 21:04:10] [INFO]   -> Set field 'cleared' = "2026-03-22 16:03:50"
[2026-03-22 21:04:10] [INFO]   -> Set field 'inService' = "2026-03-22 16:03:50"
[2026-03-22 21:04:10] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 21:04:10] [INFO]   -> Found value: N HOLLY ST/HICKORY AVE
[2026-03-22 21:04:10] [INFO]   -> Set field 'incidentLocationCross' = "N HOLLY ST\/HICKORY AVE"
[2026-03-22 21:04:10] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 21:04:10] [INFO]   -> Found value: PCFR
[2026-03-22 21:04:10] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 21:04:10] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 21:04:10] [INFO]   -> Found value: 2026-03-22 15:45:50
[2026-03-22 21:04:10] [INFO]   -> Set field 'timedispatch' = "2026-03-22 15:45:50"
[2026-03-22 21:04:10] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 21:04:10] [INFO]   -> No value found (null or empty)
[2026-03-22 21:04:10] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 21:04:10] [INFO]   -> No value found (null or empty)
[2026-03-22 21:04:10] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 21:04:10] [INFO]   -> Found value: 2026-03-22 16:03:50
[2026-03-22 21:04:10] [INFO]   -> Set field 'timeunitclear' = "2026-03-22 16:03:50"
[2026-03-22 21:04:10] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 21:04:10] [INFO]   -> No value found (null or empty)
[2026-03-22 21:04:10] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 21:04:10] [INFO] Found 2 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 21:04:10] [INFO]   -> Found value: 20260031038
[2026-03-22 21:04:10] [INFO]   -> Set field 'policeReportNumber' = "20260031038"
[2026-03-22 21:04:10] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 21:04:10] [INFO]   -> Found value: Event spawned from FAINTING / SYNCOPE.  [03/22/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03/22/26...
[2026-03-22 21:04:10] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 21:04:10] [INFO]   -> Set field 'cADLog' = "Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]"
[2026-03-22 21:04:10] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 21:04:10] [INFO]   -> Found value: MONTEREY
[2026-03-22 21:04:10] [INFO]   -> Set field 'incidentLocationCity' = "MONTEREY"
[2026-03-22 21:04:10] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 21:04:10] [INFO]   -> Found value: CATES
[2026-03-22 21:04:10] [INFO]   -> Set field 'streetName' = "CATES"
[2026-03-22 21:04:10] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 21:04:10] [INFO]   -> Found value: RD
[2026-03-22 21:04:10] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 21:04:10] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 21:04:10] [INFO]   -> Found value: 230-C20 CATES RD
[2026-03-22 21:04:10] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "230-C20 CATES RD"
[2026-03-22 21:04:10] [INFO] Finished extracting fields. Total fields extracted: 26
[2026-03-22 21:04:10] [INFO] Concatenating street name and type
[2026-03-22 21:04:10] [INFO]   -> Combined street name: CATES RD
[2026-03-22 21:04:10] [INFO] Built locationCoordinates from lat/lng: 36.15606,-85.25698
[2026-03-22 21:04:10] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nRESC","incidentInternalId":"2026000777","dispatchRunNumber":"2026000777","incidentTypeValue1":"FAINTING \/ SYNCOPE","incidentLocationStreetNumber":230,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38574,"businessName":"230 CATES RD","incidentLocationApt":"C20","nERISIncidentLatitude":36.156059999999996534825186245143413543701171875,"nERISIncidentLongitude":-85.2569799999999986539478413760662078857421875,"alarm":"2026-03-22 15:45:50","dispatched":"2026-03-22 15:45:50","cleared":"2026-03-22 16:03:50","inService":"2026-03-22 16:03:50","incidentLocationCross":"N HOLLY ST\/HICKORY AVE","cADVehicleID":"PCFR","timedispatch":"2026-03-22 15:45:50","timeunitclear":"2026-03-22 16:03:50","policeReportNumber":"20260031038","dispatchNotes":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","cADLog":"Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:45:50 KHILL] [EMS] WANTS TO GO LRH  [03\/22\/26 15:45:18 KHILL] [EMS] PATIENTS NAME BOBBY REYNOLDS  [03\/22\/26 15:44:47 KHILL] [EMS] NEIGHBOR THINKS HE HAS HIT HIS HEAD-POSSIBLY FALLEN BEFORE HE GOT THE NEIGHBOR  [03\/22\/26 15:44:33 KHILL] Event spawned from FAINTING \/ SYNCOPE.  [03\/22\/2026 15:44:03 KHILL] DIZZINESS  HAS HAD PREVIOUS SURGERY ON THEIR NECK  [03\/22\/26 15:43:59 KHILL]]","incidentLocationCity":"MONTEREY","streetName":"CATES RD","incidentAddressTextVersionStreet":"230-C20 CATES RD","locationCoordinates":"36.15606,-85.25698"}
[2026-03-22 21:04:10] [INFO] Number of extracted fields: 26
[2026-03-22 21:04:10] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
RESC'
[2026-03-22 21:04:10] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
RESC', Parsed IDs = ["PCFD","RESC"], Non-empty count = 2, Total agency count = 2, Assigned Agencies count = 4
[2026-03-22 21:04:10] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","RESC"]
[2026-03-22 21:04:10] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 21:04:10] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 21:04:10] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["RESC"]
[2026-03-22 21:04: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-22 21:04: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-22 21:04:10] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 2)
[2026-03-22 21:04:10] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 21:04:10] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 21:04:11] [INFO] Found existing IncidentTypeMapping with ID: 693861a57fd64f0b2
[2026-03-22 21:04:11] [INFO] Found existing Dispatch with cADNumber '2026000777', ID: 69c055073c1129857 - will update instead of create
[2026-03-22 21:04:11] [INFO] Updated existing Dispatches record with ID: 69c055073c1129857
[2026-03-22 21:04:11] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_210409.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031038_20260322_210409.XML
[2026-03-22 21:04:11] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031038_20260322_210409.XML
[2026-03-22 21:33:08] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213308.XML
[2026-03-22 21:33:08] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213308.XML for user: 68f1466aed072ad4a
[2026-03-22 21:33:08] [INFO] File size: 4932 bytes
[2026-03-22 21:33:08] [INFO] Created FTPFiles record with ID: 69c06014d9c2ddf39
[2026-03-22 21:33:08] [INFO] About to extract fields from XML. File size: 4932 bytes
[2026-03-22 21:33:08] [INFO] Number of mappings: 28
[2026-03-22 21:33:08] [INFO] Starting XML parsing. Content length: 4932
[2026-03-22 21:33:08] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 21:33:08] [INFO] Processing 28 field mappings
[2026-03-22 21:33:08] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 21:33:08] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 21:33:08] [INFO]   -> Found value: AFD
[2026-03-22 21:33:08] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-03-22 21:33:08] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 21:33:08] [INFO]   -> Found value: 2026000119
[2026-03-22 21:33:08] [INFO]   -> Set field 'incidentInternalId' = "2026000119"
[2026-03-22 21:33:08] [INFO]   -> Set field 'dispatchRunNumber' = "2026000119"
[2026-03-22 21:33:08] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 21:33:08] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-22 21:33:08] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-22 21:33:08] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 21:33:08] [INFO]   -> Found value: 260
[2026-03-22 21:33:08] [INFO]   -> Set field 'incidentLocationStreetNumber' = 260
[2026-03-22 21:33:08] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 21:33:08] [INFO]   -> Found value: TN
[2026-03-22 21:33:08] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 21:33:08] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 21:33:08] [INFO]   -> Found value: 38506
[2026-03-22 21:33:08] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 21:33:08] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 21:33:08] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:08] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 21:33:08] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:08] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 21:33:08] [INFO]   -> Found value: 36.20258
[2026-03-22 21:33:08] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2025799999999975398168317042291164398193359375
[2026-03-22 21:33:08] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 21:33:08] [INFO]   -> Found value: -85.44760
[2026-03-22 21:33:08] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.447599999999994224708643741905689239501953125
[2026-03-22 21:33:08] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 21:33:08] [INFO]   -> Found value: 2026-03-22 16:32:17
[2026-03-22 21:33:08] [INFO]   -> Set field 'alarm' = "2026-03-22 16:32:17"
[2026-03-22 21:33:08] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 21:33:08] [INFO]   -> Found value: 2026-03-22 16:33:03
[2026-03-22 21:33:08] [INFO]   -> Set field 'dispatched' = "2026-03-22 16:33:03"
[2026-03-22 21:33:08] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 21:33:08] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:08] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 21:33:08] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:08] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 21:33:08] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:08] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 21:33:08] [INFO]   -> Found value: HYDER ST
[2026-03-22 21:33:08] [INFO]   -> Set field 'incidentLocationCross' = "HYDER ST"
[2026-03-22 21:33:08] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 21:33:08] [INFO]   -> Found value: AEN1
[2026-03-22 21:33:08] [INFO]   -> Set field 'cADVehicleID' = "AEN1"
[2026-03-22 21:33:08] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 21:33:08] [INFO]   -> Found value: 2026-03-22 16:33:03
[2026-03-22 21:33:08] [INFO]   -> Set field 'timedispatch' = "2026-03-22 16:33:03"
[2026-03-22 21:33:08] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 21:33:08] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:08] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 21:33:08] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:08] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 21:33:08] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:08] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 21:33:08] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:08] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 21:33:08] [INFO]   -> Found value: 20260031056
[2026-03-22 21:33:08] [INFO]   -> Set field 'policeReportNumber' = "20260031056"
[2026-03-22 21:33:08] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 21:33:08] [INFO]   -> Found value: DADS OUT WITH IT NOW  [03/22/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03/22/26 16:32:...
[2026-03-22 21:33:08] [INFO]   -> Set field 'dispatchNotes' = "DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]"
[2026-03-22 21:33:08] [INFO]   -> Set field 'cADLog' = "DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]"
[2026-03-22 21:33:08] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 21:33:08] [INFO]   -> Found value: ALGOOD
[2026-03-22 21:33:08] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-22 21:33:08] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 21:33:08] [INFO]   -> Found value: PHILLIPS
[2026-03-22 21:33:08] [INFO]   -> Set field 'streetName' = "PHILLIPS"
[2026-03-22 21:33:08] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 21:33:08] [INFO]   -> Found value: ST
[2026-03-22 21:33:08] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-22 21:33:08] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 21:33:08] [INFO]   -> Found value: 260 PHILLIPS ST
[2026-03-22 21:33:08] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "260 PHILLIPS ST"
[2026-03-22 21:33:08] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 21:33:08] [INFO] Concatenating street name and type
[2026-03-22 21:33:08] [INFO]   -> Combined street name: PHILLIPS ST
[2026-03-22 21:33:08] [INFO] Built locationCoordinates from lat/lng: 36.20258,-85.4476
[2026-03-22 21:33:08] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000119","dispatchRunNumber":"2026000119","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":260,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.2025799999999975398168317042291164398193359375,"nERISIncidentLongitude":-85.447599999999994224708643741905689239501953125,"alarm":"2026-03-22 16:32:17","dispatched":"2026-03-22 16:33:03","incidentLocationCross":"HYDER ST","cADVehicleID":"AEN1","timedispatch":"2026-03-22 16:33:03","policeReportNumber":"20260031056","dispatchNotes":"DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]","cADLog":"DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]","incidentLocationCity":"ALGOOD","streetName":"PHILLIPS ST","incidentAddressTextVersionStreet":"260 PHILLIPS ST","locationCoordinates":"36.20258,-85.4476"}
[2026-03-22 21:33:08] [INFO] Number of extracted fields: 21
[2026-03-22 21:33:08] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-03-22 21:33:08] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-22 21:33:08] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-03-22 21:33:08] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-22 21:33:09] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-22 21:33:09] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-22 21:33:09] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-22 21:33:09] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-22 21:33:10] [INFO] Created new IncidentTypeMapping Data: {"cADIncidentType":"BRUSH \/ GRASS FIRE","saasclientId":"68910627445d6e167","name":"BRUSH \/ GRASS FIRE"}
[2026-03-22 21:33:10] [INFO] Created new IncidentTypeMapping with ID: 69c060165b3c0dfe6
[2026-03-22 21:33:15] [INFO] Created new Dispatches record with ID: 69c06016f41c6448a
[2026-03-22 21:33:15] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213308.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/AFD_20260031056_20260322_213308.XML
[2026-03-22 21:33:15] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213308.XML
[2026-03-22 21:33:15] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213308_1.XML
[2026-03-22 21:33:15] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213308_1.XML for user: 68f1466aed072ad4a
[2026-03-22 21:33:15] [INFO] File size: 4932 bytes
[2026-03-22 21:33:16] [INFO] Created FTPFiles record with ID: 69c0601c9a2d4087b
[2026-03-22 21:33:16] [INFO] About to extract fields from XML. File size: 4932 bytes
[2026-03-22 21:33:16] [INFO] Number of mappings: 28
[2026-03-22 21:33:16] [INFO] Starting XML parsing. Content length: 4932
[2026-03-22 21:33:16] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 21:33:16] [INFO] Processing 28 field mappings
[2026-03-22 21:33:16] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 21:33:16] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 21:33:16] [INFO]   -> Found value: AFD
[2026-03-22 21:33:16] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-03-22 21:33:16] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 21:33:16] [INFO]   -> Found value: 2026000119
[2026-03-22 21:33:16] [INFO]   -> Set field 'incidentInternalId' = "2026000119"
[2026-03-22 21:33:16] [INFO]   -> Set field 'dispatchRunNumber' = "2026000119"
[2026-03-22 21:33:16] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 21:33:16] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-22 21:33:16] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-22 21:33:16] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 21:33:16] [INFO]   -> Found value: 260
[2026-03-22 21:33:16] [INFO]   -> Set field 'incidentLocationStreetNumber' = 260
[2026-03-22 21:33:16] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 21:33:16] [INFO]   -> Found value: TN
[2026-03-22 21:33:16] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 21:33:16] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 21:33:16] [INFO]   -> Found value: 38506
[2026-03-22 21:33:16] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 21:33:16] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 21:33:16] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:16] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 21:33:16] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:16] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 21:33:16] [INFO]   -> Found value: 36.20258
[2026-03-22 21:33:16] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2025799999999975398168317042291164398193359375
[2026-03-22 21:33:16] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 21:33:16] [INFO]   -> Found value: -85.44760
[2026-03-22 21:33:16] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.447599999999994224708643741905689239501953125
[2026-03-22 21:33:16] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 21:33:16] [INFO]   -> Found value: 2026-03-22 16:32:17
[2026-03-22 21:33:16] [INFO]   -> Set field 'alarm' = "2026-03-22 16:32:17"
[2026-03-22 21:33:16] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 21:33:16] [INFO]   -> Found value: 2026-03-22 16:33:03
[2026-03-22 21:33:16] [INFO]   -> Set field 'dispatched' = "2026-03-22 16:33:03"
[2026-03-22 21:33:16] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 21:33:16] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:16] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 21:33:16] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:16] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 21:33:16] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:16] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 21:33:16] [INFO]   -> Found value: HYDER ST
[2026-03-22 21:33:16] [INFO]   -> Set field 'incidentLocationCross' = "HYDER ST"
[2026-03-22 21:33:16] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 21:33:16] [INFO]   -> Found value: AEN1
[2026-03-22 21:33:16] [INFO]   -> Set field 'cADVehicleID' = "AEN1"
[2026-03-22 21:33:16] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 21:33:16] [INFO]   -> Found value: 2026-03-22 16:33:03
[2026-03-22 21:33:16] [INFO]   -> Set field 'timedispatch' = "2026-03-22 16:33:03"
[2026-03-22 21:33:16] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 21:33:16] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:16] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 21:33:16] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:16] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 21:33:16] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:16] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 21:33:16] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:16] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 21:33:16] [INFO]   -> Found value: 20260031056
[2026-03-22 21:33:16] [INFO]   -> Set field 'policeReportNumber' = "20260031056"
[2026-03-22 21:33:16] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 21:33:16] [INFO]   -> Found value: DADS OUT WITH IT NOW  [03/22/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03/22/26 16:32:...
[2026-03-22 21:33:16] [INFO]   -> Set field 'dispatchNotes' = "DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]"
[2026-03-22 21:33:16] [INFO]   -> Set field 'cADLog' = "DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]"
[2026-03-22 21:33:16] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 21:33:16] [INFO]   -> Found value: ALGOOD
[2026-03-22 21:33:16] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-22 21:33:16] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 21:33:16] [INFO]   -> Found value: PHILLIPS
[2026-03-22 21:33:16] [INFO]   -> Set field 'streetName' = "PHILLIPS"
[2026-03-22 21:33:16] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 21:33:16] [INFO]   -> Found value: ST
[2026-03-22 21:33:16] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-22 21:33:16] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 21:33:16] [INFO]   -> Found value: 260 PHILLIPS ST
[2026-03-22 21:33:16] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "260 PHILLIPS ST"
[2026-03-22 21:33:16] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 21:33:16] [INFO] Concatenating street name and type
[2026-03-22 21:33:16] [INFO]   -> Combined street name: PHILLIPS ST
[2026-03-22 21:33:16] [INFO] Built locationCoordinates from lat/lng: 36.20258,-85.4476
[2026-03-22 21:33:16] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000119","dispatchRunNumber":"2026000119","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":260,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.2025799999999975398168317042291164398193359375,"nERISIncidentLongitude":-85.447599999999994224708643741905689239501953125,"alarm":"2026-03-22 16:32:17","dispatched":"2026-03-22 16:33:03","incidentLocationCross":"HYDER ST","cADVehicleID":"AEN1","timedispatch":"2026-03-22 16:33:03","policeReportNumber":"20260031056","dispatchNotes":"DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]","cADLog":"DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]","incidentLocationCity":"ALGOOD","streetName":"PHILLIPS ST","incidentAddressTextVersionStreet":"260 PHILLIPS ST","locationCoordinates":"36.20258,-85.4476"}
[2026-03-22 21:33:16] [INFO] Number of extracted fields: 21
[2026-03-22 21:33:16] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-03-22 21:33:16] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-22 21:33:16] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-03-22 21:33:16] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-22 21:33:16] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-22 21:33:17] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-22 21:33:17] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-22 21:33:17] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-22 21:33:17] [INFO] Found existing IncidentTypeMapping with ID: 69c060165b3c0dfe6
[2026-03-22 21:33:18] [INFO] Found existing Dispatch with cADNumber '2026000119', ID: 69c06016f41c6448a - will update instead of create
[2026-03-22 21:33:18] [INFO] Updated existing Dispatches record with ID: 69c06016f41c6448a
[2026-03-22 21:33:18] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213308_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/AFD_20260031056_20260322_213308_1.XML
[2026-03-22 21:33:18] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213308_1.XML
[2026-03-22 21:33:21] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213321.XML
[2026-03-22 21:33:21] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213321.XML for user: 68f1466aed072ad4a
[2026-03-22 21:33:21] [INFO] File size: 5825 bytes
[2026-03-22 21:33:22] [INFO] Created FTPFiles record with ID: 69c06022439b4eb97
[2026-03-22 21:33:22] [INFO] About to extract fields from XML. File size: 5825 bytes
[2026-03-22 21:33:22] [INFO] Number of mappings: 28
[2026-03-22 21:33:22] [INFO] Starting XML parsing. Content length: 5825
[2026-03-22 21:33:22] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 21:33:22] [INFO] Processing 28 field mappings
[2026-03-22 21:33:22] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 21:33:22] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 21:33:22] [INFO]   -> Found value: AFD
[2026-03-22 21:33:22] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-03-22 21:33:22] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 21:33:22] [INFO]   -> Found value: 2026000119
[2026-03-22 21:33:22] [INFO]   -> Set field 'incidentInternalId' = "2026000119"
[2026-03-22 21:33:22] [INFO]   -> Set field 'dispatchRunNumber' = "2026000119"
[2026-03-22 21:33:22] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 21:33:22] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-22 21:33:22] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-22 21:33:22] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 21:33:22] [INFO]   -> Found value: 260
[2026-03-22 21:33:22] [INFO]   -> Set field 'incidentLocationStreetNumber' = 260
[2026-03-22 21:33:22] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 21:33:22] [INFO]   -> Found value: TN
[2026-03-22 21:33:22] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 21:33:22] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 21:33:22] [INFO]   -> Found value: 38506
[2026-03-22 21:33:22] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 21:33:22] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 21:33:22] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:22] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 21:33:22] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:22] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 21:33:22] [INFO]   -> Found value: 36.20258
[2026-03-22 21:33:22] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2025799999999975398168317042291164398193359375
[2026-03-22 21:33:22] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 21:33:22] [INFO]   -> Found value: -85.44760
[2026-03-22 21:33:22] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.447599999999994224708643741905689239501953125
[2026-03-22 21:33:22] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 21:33:22] [INFO]   -> Found value: 2026-03-22 16:32:17
[2026-03-22 21:33:22] [INFO]   -> Set field 'alarm' = "2026-03-22 16:32:17"
[2026-03-22 21:33:22] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 21:33:22] [INFO]   -> Found value: 2026-03-22 16:33:03
[2026-03-22 21:33:22] [INFO]   -> Set field 'dispatched' = "2026-03-22 16:33:03"
[2026-03-22 21:33:22] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 21:33:22] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:22] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 21:33:22] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:22] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 21:33:22] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:22] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 21:33:22] [INFO]   -> Found value: HYDER ST
[2026-03-22 21:33:22] [INFO]   -> Set field 'incidentLocationCross' = "HYDER ST"
[2026-03-22 21:33:22] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 21:33:22] [INFO]   -> Found value: A1200
[2026-03-22 21:33:22] [INFO]   -> Set field 'cADVehicleID' = "A1200"
[2026-03-22 21:33:22] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 21:33:22] [INFO]   -> Found value: 2026-03-22 16:33:18
[2026-03-22 21:33:22] [INFO]   -> Set field 'timedispatch' = "2026-03-22 16:33:18"
[2026-03-22 21:33:22] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 21:33:22] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:22] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 21:33:22] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:22] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 21:33:22] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:22] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 21:33:22] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:22] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 21:33:22] [INFO]   -> Found value: 20260031056
[2026-03-22 21:33:22] [INFO]   -> Set field 'policeReportNumber' = "20260031056"
[2026-03-22 21:33:22] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 21:33:22] [INFO]   -> Found value: TREE LINE IS ON FIRE  [03/22/26 16:33:06 KHILL] DADS OUT WITH IT NOW  [03/22/26 16:32:57 KHILL] SPRE...
[2026-03-22 21:33:22] [INFO]   -> Set field 'dispatchNotes' = "TREE LINE IS ON FIRE  [03\/22\/26 16:33:06 KHILL] DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]"
[2026-03-22 21:33:22] [INFO]   -> Set field 'cADLog' = "TREE LINE IS ON FIRE  [03\/22\/26 16:33:06 KHILL] DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]"
[2026-03-22 21:33:22] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 21:33:22] [INFO]   -> Found value: ALGOOD
[2026-03-22 21:33:22] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-22 21:33:22] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 21:33:22] [INFO]   -> Found value: PHILLIPS
[2026-03-22 21:33:22] [INFO]   -> Set field 'streetName' = "PHILLIPS"
[2026-03-22 21:33:22] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 21:33:22] [INFO]   -> Found value: ST
[2026-03-22 21:33:22] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-22 21:33:22] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 21:33:22] [INFO]   -> Found value: 260 PHILLIPS ST
[2026-03-22 21:33:22] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "260 PHILLIPS ST"
[2026-03-22 21:33:22] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 21:33:22] [INFO] Concatenating street name and type
[2026-03-22 21:33:22] [INFO]   -> Combined street name: PHILLIPS ST
[2026-03-22 21:33:22] [INFO] Built locationCoordinates from lat/lng: 36.20258,-85.4476
[2026-03-22 21:33:22] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000119","dispatchRunNumber":"2026000119","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":260,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.2025799999999975398168317042291164398193359375,"nERISIncidentLongitude":-85.447599999999994224708643741905689239501953125,"alarm":"2026-03-22 16:32:17","dispatched":"2026-03-22 16:33:03","incidentLocationCross":"HYDER ST","cADVehicleID":"A1200","timedispatch":"2026-03-22 16:33:18","policeReportNumber":"20260031056","dispatchNotes":"TREE LINE IS ON FIRE  [03\/22\/26 16:33:06 KHILL] DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]","cADLog":"TREE LINE IS ON FIRE  [03\/22\/26 16:33:06 KHILL] DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]","incidentLocationCity":"ALGOOD","streetName":"PHILLIPS ST","incidentAddressTextVersionStreet":"260 PHILLIPS ST","locationCoordinates":"36.20258,-85.4476"}
[2026-03-22 21:33:22] [INFO] Number of extracted fields: 21
[2026-03-22 21:33:22] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-03-22 21:33:22] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-22 21:33:22] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-03-22 21:33:22] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-22 21:33:22] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-22 21:33:22] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-22 21:33:22] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-22 21:33:23] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-22 21:33:23] [INFO] Found existing IncidentTypeMapping with ID: 69c060165b3c0dfe6
[2026-03-22 21:33:23] [INFO] Found existing Dispatch with cADNumber '2026000119', ID: 69c06016f41c6448a - will update instead of create
[2026-03-22 21:33:24] [INFO] Updated existing Dispatches record with ID: 69c06016f41c6448a
[2026-03-22 21:33:24] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213321.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/AFD_20260031056_20260322_213321.XML
[2026-03-22 21:33:24] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213321.XML
[2026-03-22 21:33:24] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213324.XML
[2026-03-22 21:33:24] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213324.XML for user: 68f1466aed072ad4a
[2026-03-22 21:33:24] [INFO] File size: 5825 bytes
[2026-03-22 21:33:24] [INFO] Created FTPFiles record with ID: 69c06024cd8e3cc79
[2026-03-22 21:33:24] [INFO] About to extract fields from XML. File size: 5825 bytes
[2026-03-22 21:33:24] [INFO] Number of mappings: 28
[2026-03-22 21:33:24] [INFO] Starting XML parsing. Content length: 5825
[2026-03-22 21:33:24] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 21:33:24] [INFO] Processing 28 field mappings
[2026-03-22 21:33:24] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 21:33:24] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 21:33:24] [INFO]   -> Found value: AFD
[2026-03-22 21:33:24] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-03-22 21:33:24] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 21:33:24] [INFO]   -> Found value: 2026000119
[2026-03-22 21:33:24] [INFO]   -> Set field 'incidentInternalId' = "2026000119"
[2026-03-22 21:33:24] [INFO]   -> Set field 'dispatchRunNumber' = "2026000119"
[2026-03-22 21:33:24] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 21:33:24] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-22 21:33:24] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-22 21:33:24] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 21:33:24] [INFO]   -> Found value: 260
[2026-03-22 21:33:24] [INFO]   -> Set field 'incidentLocationStreetNumber' = 260
[2026-03-22 21:33:24] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 21:33:24] [INFO]   -> Found value: TN
[2026-03-22 21:33:24] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 21:33:24] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 21:33:24] [INFO]   -> Found value: 38506
[2026-03-22 21:33:24] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 21:33:24] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 21:33:24] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:24] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 21:33:24] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:24] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 21:33:24] [INFO]   -> Found value: 36.20258
[2026-03-22 21:33:24] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2025799999999975398168317042291164398193359375
[2026-03-22 21:33:24] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 21:33:24] [INFO]   -> Found value: -85.44760
[2026-03-22 21:33:24] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.447599999999994224708643741905689239501953125
[2026-03-22 21:33:24] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 21:33:24] [INFO]   -> Found value: 2026-03-22 16:32:17
[2026-03-22 21:33:24] [INFO]   -> Set field 'alarm' = "2026-03-22 16:32:17"
[2026-03-22 21:33:24] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 21:33:24] [INFO]   -> Found value: 2026-03-22 16:33:03
[2026-03-22 21:33:24] [INFO]   -> Set field 'dispatched' = "2026-03-22 16:33:03"
[2026-03-22 21:33:24] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 21:33:24] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:24] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 21:33:24] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:24] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 21:33:24] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:24] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 21:33:24] [INFO]   -> Found value: HYDER ST
[2026-03-22 21:33:24] [INFO]   -> Set field 'incidentLocationCross' = "HYDER ST"
[2026-03-22 21:33:24] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 21:33:24] [INFO]   -> Found value: A1200
[2026-03-22 21:33:24] [INFO]   -> Set field 'cADVehicleID' = "A1200"
[2026-03-22 21:33:24] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 21:33:24] [INFO]   -> Found value: 2026-03-22 16:33:18
[2026-03-22 21:33:24] [INFO]   -> Set field 'timedispatch' = "2026-03-22 16:33:18"
[2026-03-22 21:33:24] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 21:33:24] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:24] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 21:33:24] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:24] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 21:33:24] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:24] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 21:33:24] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:24] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 21:33:24] [INFO]   -> Found value: 20260031056
[2026-03-22 21:33:24] [INFO]   -> Set field 'policeReportNumber' = "20260031056"
[2026-03-22 21:33:24] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 21:33:24] [INFO]   -> Found value: TREE LINE IS ON FIRE  [03/22/26 16:33:06 KHILL] DADS OUT WITH IT NOW  [03/22/26 16:32:57 KHILL] SPRE...
[2026-03-22 21:33:24] [INFO]   -> Set field 'dispatchNotes' = "TREE LINE IS ON FIRE  [03\/22\/26 16:33:06 KHILL] DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]"
[2026-03-22 21:33:24] [INFO]   -> Set field 'cADLog' = "TREE LINE IS ON FIRE  [03\/22\/26 16:33:06 KHILL] DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]"
[2026-03-22 21:33:24] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 21:33:24] [INFO]   -> Found value: ALGOOD
[2026-03-22 21:33:24] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-22 21:33:24] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 21:33:24] [INFO]   -> Found value: PHILLIPS
[2026-03-22 21:33:24] [INFO]   -> Set field 'streetName' = "PHILLIPS"
[2026-03-22 21:33:24] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 21:33:24] [INFO]   -> Found value: ST
[2026-03-22 21:33:24] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-22 21:33:24] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 21:33:24] [INFO]   -> Found value: 260 PHILLIPS ST
[2026-03-22 21:33:24] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "260 PHILLIPS ST"
[2026-03-22 21:33:24] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 21:33:24] [INFO] Concatenating street name and type
[2026-03-22 21:33:24] [INFO]   -> Combined street name: PHILLIPS ST
[2026-03-22 21:33:24] [INFO] Built locationCoordinates from lat/lng: 36.20258,-85.4476
[2026-03-22 21:33:24] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000119","dispatchRunNumber":"2026000119","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":260,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.2025799999999975398168317042291164398193359375,"nERISIncidentLongitude":-85.447599999999994224708643741905689239501953125,"alarm":"2026-03-22 16:32:17","dispatched":"2026-03-22 16:33:03","incidentLocationCross":"HYDER ST","cADVehicleID":"A1200","timedispatch":"2026-03-22 16:33:18","policeReportNumber":"20260031056","dispatchNotes":"TREE LINE IS ON FIRE  [03\/22\/26 16:33:06 KHILL] DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]","cADLog":"TREE LINE IS ON FIRE  [03\/22\/26 16:33:06 KHILL] DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]","incidentLocationCity":"ALGOOD","streetName":"PHILLIPS ST","incidentAddressTextVersionStreet":"260 PHILLIPS ST","locationCoordinates":"36.20258,-85.4476"}
[2026-03-22 21:33:24] [INFO] Number of extracted fields: 21
[2026-03-22 21:33:24] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-03-22 21:33:24] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-22 21:33:24] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-03-22 21:33:24] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-22 21:33:25] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-22 21:33:25] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-22 21:33:25] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-22 21:33:25] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-22 21:33:26] [INFO] Found existing IncidentTypeMapping with ID: 69c060165b3c0dfe6
[2026-03-22 21:33:26] [INFO] Found existing Dispatch with cADNumber '2026000119', ID: 69c06016f41c6448a - will update instead of create
[2026-03-22 21:33:26] [INFO] Updated existing Dispatches record with ID: 69c06016f41c6448a
[2026-03-22 21:33:26] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213324.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/AFD_20260031056_20260322_213324.XML
[2026-03-22 21:33:26] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213324.XML
[2026-03-22 21:33:29] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213329.XML
[2026-03-22 21:33:29] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213329.XML for user: 68f1466aed072ad4a
[2026-03-22 21:33:29] [INFO] File size: 5825 bytes
[2026-03-22 21:33:29] [INFO] Created FTPFiles record with ID: 69c06029d5e0b4f08
[2026-03-22 21:33:29] [INFO] About to extract fields from XML. File size: 5825 bytes
[2026-03-22 21:33:29] [INFO] Number of mappings: 28
[2026-03-22 21:33:29] [INFO] Starting XML parsing. Content length: 5825
[2026-03-22 21:33:29] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 21:33:29] [INFO] Processing 28 field mappings
[2026-03-22 21:33:29] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 21:33:29] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 21:33:29] [INFO]   -> Found value: AFD
[2026-03-22 21:33:29] [INFO]   -> Set field 'cADAgencyIdentifier' = "AFD"
[2026-03-22 21:33:29] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 21:33:29] [INFO]   -> Found value: 2026000119
[2026-03-22 21:33:29] [INFO]   -> Set field 'incidentInternalId' = "2026000119"
[2026-03-22 21:33:29] [INFO]   -> Set field 'dispatchRunNumber' = "2026000119"
[2026-03-22 21:33:29] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 21:33:29] [INFO]   -> Found value: BRUSH / GRASS FIRE
[2026-03-22 21:33:29] [INFO]   -> Set field 'incidentTypeValue1' = "BRUSH \/ GRASS FIRE"
[2026-03-22 21:33:29] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 21:33:29] [INFO]   -> Found value: 260
[2026-03-22 21:33:29] [INFO]   -> Set field 'incidentLocationStreetNumber' = 260
[2026-03-22 21:33:29] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 21:33:29] [INFO]   -> Found value: TN
[2026-03-22 21:33:29] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 21:33:29] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 21:33:29] [INFO]   -> Found value: 38506
[2026-03-22 21:33:29] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 21:33:29] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 21:33:29] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:29] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 21:33:29] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:29] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 21:33:29] [INFO]   -> Found value: 36.20258
[2026-03-22 21:33:29] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.2025799999999975398168317042291164398193359375
[2026-03-22 21:33:29] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 21:33:29] [INFO]   -> Found value: -85.44760
[2026-03-22 21:33:29] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.447599999999994224708643741905689239501953125
[2026-03-22 21:33:29] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 21:33:29] [INFO]   -> Found value: 2026-03-22 16:32:17
[2026-03-22 21:33:29] [INFO]   -> Set field 'alarm' = "2026-03-22 16:32:17"
[2026-03-22 21:33:29] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 21:33:29] [INFO]   -> Found value: 2026-03-22 16:33:03
[2026-03-22 21:33:29] [INFO]   -> Set field 'dispatched' = "2026-03-22 16:33:03"
[2026-03-22 21:33:29] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 21:33:29] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:29] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 21:33:29] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:29] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 21:33:29] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:29] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 21:33:29] [INFO]   -> Found value: HYDER ST
[2026-03-22 21:33:29] [INFO]   -> Set field 'incidentLocationCross' = "HYDER ST"
[2026-03-22 21:33:29] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 21:33:29] [INFO]   -> Found value: A1200
[2026-03-22 21:33:29] [INFO]   -> Set field 'cADVehicleID' = "A1200"
[2026-03-22 21:33:29] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 21:33:29] [INFO]   -> Found value: 2026-03-22 16:33:18
[2026-03-22 21:33:29] [INFO]   -> Set field 'timedispatch' = "2026-03-22 16:33:18"
[2026-03-22 21:33:29] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 21:33:29] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:29] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 21:33:29] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:29] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 21:33:29] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:29] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 21:33:29] [INFO]   -> No value found (null or empty)
[2026-03-22 21:33:29] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 21:33:29] [INFO]   -> Found value: 20260031056
[2026-03-22 21:33:29] [INFO]   -> Set field 'policeReportNumber' = "20260031056"
[2026-03-22 21:33:29] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 21:33:29] [INFO]   -> Found value: TREE LINE IS ON FIRE  [03/22/26 16:33:06 KHILL] DADS OUT WITH IT NOW  [03/22/26 16:32:57 KHILL] SPRE...
[2026-03-22 21:33:29] [INFO]   -> Set field 'dispatchNotes' = "TREE LINE IS ON FIRE  [03\/22\/26 16:33:06 KHILL] DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]"
[2026-03-22 21:33:29] [INFO]   -> Set field 'cADLog' = "TREE LINE IS ON FIRE  [03\/22\/26 16:33:06 KHILL] DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]"
[2026-03-22 21:33:29] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 21:33:29] [INFO]   -> Found value: ALGOOD
[2026-03-22 21:33:29] [INFO]   -> Set field 'incidentLocationCity' = "ALGOOD"
[2026-03-22 21:33:29] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 21:33:29] [INFO]   -> Found value: PHILLIPS
[2026-03-22 21:33:29] [INFO]   -> Set field 'streetName' = "PHILLIPS"
[2026-03-22 21:33:29] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 21:33:29] [INFO]   -> Found value: ST
[2026-03-22 21:33:29] [INFO]   -> Set field 'streetType' = "ST"
[2026-03-22 21:33:29] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 21:33:29] [INFO]   -> Found value: 260 PHILLIPS ST
[2026-03-22 21:33:29] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "260 PHILLIPS ST"
[2026-03-22 21:33:29] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 21:33:29] [INFO] Concatenating street name and type
[2026-03-22 21:33:29] [INFO]   -> Combined street name: PHILLIPS ST
[2026-03-22 21:33:29] [INFO] Built locationCoordinates from lat/lng: 36.20258,-85.4476
[2026-03-22 21:33:29] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"AFD","incidentInternalId":"2026000119","dispatchRunNumber":"2026000119","incidentTypeValue1":"BRUSH \/ GRASS FIRE","incidentLocationStreetNumber":260,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.2025799999999975398168317042291164398193359375,"nERISIncidentLongitude":-85.447599999999994224708643741905689239501953125,"alarm":"2026-03-22 16:32:17","dispatched":"2026-03-22 16:33:03","incidentLocationCross":"HYDER ST","cADVehicleID":"A1200","timedispatch":"2026-03-22 16:33:18","policeReportNumber":"20260031056","dispatchNotes":"TREE LINE IS ON FIRE  [03\/22\/26 16:33:06 KHILL] DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]","cADLog":"TREE LINE IS ON FIRE  [03\/22\/26 16:33:06 KHILL] DADS OUT WITH IT NOW  [03\/22\/26 16:32:57 KHILL] SPREAD THROUGH THE WHOLE BACK YARD  [03\/22\/26 16:32:47 KHILL]","incidentLocationCity":"ALGOOD","streetName":"PHILLIPS ST","incidentAddressTextVersionStreet":"260 PHILLIPS ST","locationCoordinates":"36.20258,-85.4476"}
[2026-03-22 21:33:29] [INFO] Number of extracted fields: 21
[2026-03-22 21:33:29] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'AFD'
[2026-03-22 21:33:29] [INFO] Multi-agency routing check: CAD Agency ID raw = 'AFD', Parsed IDs = ["AFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-22 21:33:29] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["AFD"]
[2026-03-22 21:33:29] [INFO] Attempting SAASClient lookup for AgencyCode 'AFD' (index 0) within mailbox's assigned agencies
[2026-03-22 21:33:30] [INFO] SUCCESS: Routed to agency 'Algood Fire Department' (ID: 68910627445d6e167) at INDEX 0 based on AgencyCode 'AFD'
[2026-03-22 21:33:30] [INFO] Fetched 1 stations from Stations module for agency 'Algood Fire Department': ["68922bda7fe89f7ff"]
[2026-03-22 21:33:30] [INFO] Final routing: saasclientId = 68910627445d6e167, dispatchStationsIds = ["68922bda7fe89f7ff"], matchedAgencyIndex = 0
[2026-03-22 21:33:30] [INFO] Updated FTPFiles record saasclientId to routed agency: 68910627445d6e167
[2026-03-22 21:33:31] [INFO] Found existing IncidentTypeMapping with ID: 69c060165b3c0dfe6
[2026-03-22 21:33:31] [INFO] Found existing Dispatch with cADNumber '2026000119', ID: 69c06016f41c6448a - will update instead of create
[2026-03-22 21:33:31] [INFO] Updated existing Dispatches record with ID: 69c06016f41c6448a
[2026-03-22 21:33:31] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213329.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/AFD_20260031056_20260322_213329.XML
[2026-03-22 21:33:31] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/AFD_20260031056_20260322_213329.XML
[2026-03-22 21:42:10] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08678.xml
[2026-03-22 21:42:10] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08678.xml for user: 68d56363ec1209189
[2026-03-22 21:42:10] [INFO] File size: 1881 bytes
[2026-03-22 21:42:10] [INFO] Created FTPFiles record with ID: 69c062328ff5dd429
[2026-03-22 21:42:10] [INFO] About to extract fields from XML. File size: 1881 bytes
[2026-03-22 21:42:10] [INFO] Number of mappings: 21
[2026-03-22 21:42:10] [INFO] Starting XML parsing. Content length: 1881
[2026-03-22 21:42:10] [INFO] XML parsed successfully. Root element: Incident
[2026-03-22 21:42:10] [INFO] Processing 21 field mappings
[2026-03-22 21:42:10] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-22 21:42:10] [INFO]   -> Found value: 26-08678
[2026-03-22 21:42:10] [INFO]   -> Set field 'dispatchRunNumber' = "26-08678"
[2026-03-22 21:42:10] [INFO]   -> Set field 'cADNumber' = "26-08678"
[2026-03-22 21:42:10] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-22 21:42:10] [INFO]   -> Found value: 1008
[2026-03-22 21:42:10] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1008
[2026-03-22 21:42:10] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-22 21:42:10] [INFO]   -> Found value: N MAIN ST
[2026-03-22 21:42:10] [INFO]   -> Set field 'streetName' = "N MAIN ST"
[2026-03-22 21:42:10] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-22 21:42:10] [INFO]   -> No value found (null or empty)
[2026-03-22 21:42:10] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-22 21:42:10] [INFO]   -> Found value: SIKESTON
[2026-03-22 21:42:10] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-03-22 21:42:10] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-22 21:42:10] [INFO]   -> Found value: MDMC
[2026-03-22 21:42:10] [INFO]   -> Set field 'businessName' = "MDMC"
[2026-03-22 21:42:10] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-22 21:42:10] [INFO]   -> Found value: MO
[2026-03-22 21:42:10] [INFO]   -> Set field 'incidentLocationStateName' = "MO"
[2026-03-22 21:42:10] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-22 21:42:10] [INFO]   -> Found value: 63801
[2026-03-22 21:42:10] [INFO]   -> Set field 'nERISIncidentPostalCode' = 63801
[2026-03-22 21:42:10] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-22 21:42:10] [INFO]   -> Found value: 0
[2026-03-22 21:42:10] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-22 21:42:10] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-22 21:42:10] [INFO]   -> Found value: 0
[2026-03-22 21:42:10] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-22 21:42:10] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-22 21:42:10] [INFO]   -> Found value: FIRE-AIRCRAFT STANDBY
[2026-03-22 21:42:10] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-AIRCRAFT STANDBY"
[2026-03-22 21:42:10] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-22 21:42:10] [INFO]   -> Found value: 03-22-2026 15:42:11|AIR EVAC ETA 10 MIN 03-22-2026 15:46:18|Disposition - SDPS FD:  NRN 03-22-2026 1...
[2026-03-22 21:42:10] [INFO]   -> Set field 'dispatchNotes' = "03-22-2026 15:42:11|AIR EVAC ETA 10 MIN 03-22-2026 15:46:18|Disposition - SDPS FD:  NRN 03-22-2026 15:46:53|Disposition - SDPS FD:  RPT 03-22-2026 16:02:04|FLIGHT CREW ON BOARD ENROUTE TO ER 03-22-2026 16:02:51|1.2 AT ER 03-22-2026 16:35:39|Disposition - SSCA:  NRN\nDisposition - SSCA UNIT:  NRN"
[2026-03-22 21:42:10] [INFO]   -> Set field 'cADLog' = "03-22-2026 15:42:11|AIR EVAC ETA 10 MIN 03-22-2026 15:46:18|Disposition - SDPS FD:  NRN 03-22-2026 15:46:53|Disposition - SDPS FD:  RPT 03-22-2026 16:02:04|FLIGHT CREW ON BOARD ENROUTE TO ER 03-22-2026 16:02:51|1.2 AT ER 03-22-2026 16:35:39|Disposition - SSCA:  NRN\nDisposition - SSCA UNIT:  NRN"
[2026-03-22 21:42:10] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-22 21:42:10] [INFO]   -> Found value: 03-22-2026T15:44:01
[2026-03-22 21:42:10] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T15:44:01
[2026-03-22 21:42:10] [ERROR] Error formatting datetime '2026-22-03T15:44:01': Failed to parse time string (2026-22-03T15:44:01) at position 6 (2): Unexpected character
[2026-03-22 21:42:10] [INFO]   -> Set field 'alarm' = null
[2026-03-22 21:42:10] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T15:44:01
[2026-03-22 21:42:10] [ERROR] Error formatting datetime '2026-22-03T15:44:01': Failed to parse time string (2026-22-03T15:44:01) at position 6 (2): Unexpected character
[2026-03-22 21:42:10] [INFO]   -> Set field 'dispatched' = null
[2026-03-22 21:42:10] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-22 21:42:10] [INFO]   -> Found value: 03-22-2026T16:26:33
[2026-03-22 21:42:10] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T16:26:33
[2026-03-22 21:42:10] [ERROR] Error formatting datetime '2026-22-03T16:26:33': Failed to parse time string (2026-22-03T16:26:33) at position 6 (2): Unexpected character
[2026-03-22 21:42:10] [INFO]   -> Set field 'onScene' = null
[2026-03-22 21:42:10] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-22 21:42:10] [INFO]   -> Found value: 03-22-2026T16:35:18
[2026-03-22 21:42:10] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T16:35:18
[2026-03-22 21:42:10] [ERROR] Error formatting datetime '2026-22-03T16:35:18': Failed to parse time string (2026-22-03T16:35:18) at position 6 (2): Unexpected character
[2026-03-22 21:42:10] [INFO]   -> Set field 'cleared' = null
[2026-03-22 21:42:10] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T16:35:18
[2026-03-22 21:42:10] [ERROR] Error formatting datetime '2026-22-03T16:35:18': Failed to parse time string (2026-22-03T16:35:18) at position 6 (2): Unexpected character
[2026-03-22 21:42:10] [INFO]   -> Set field 'inService' = null
[2026-03-22 21:42:10] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-22 21:42:10] [INFO]   -> Found value: L3
[2026-03-22 21:42:10] [INFO]   -> Set field 'cADVehicleID' = "L3"
[2026-03-22 21:42:10] [INFO]   -> Set field 'name' = "L3"
[2026-03-22 21:42:10] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-22 21:42:10] [INFO]   -> No value found (null or empty)
[2026-03-22 21:42:10] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-22 21:42:10] [INFO]   -> No value found (null or empty)
[2026-03-22 21:42:10] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-22 21:42:10] [INFO]   -> Found value: 03-22-2026T15:46:47
[2026-03-22 21:42:10] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T15:46:47
[2026-03-22 21:42:10] [ERROR] Error formatting datetime '2026-22-03T15:46:47': Failed to parse time string (2026-22-03T15:46:47) at position 6 (2): Unexpected character
[2026-03-22 21:42:10] [INFO]   -> Set field 'timeunitclear' = null
[2026-03-22 21:42:10] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-22 21:42:10] [INFO]   -> Found value: 03-22-2026T15:46:07
[2026-03-22 21:42:10] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T15:46:07
[2026-03-22 21:42:10] [ERROR] Error formatting datetime '2026-22-03T15:46:07': Failed to parse time string (2026-22-03T15:46:07) at position 6 (2): Unexpected character
[2026-03-22 21:42:10] [INFO]   -> Set field 'timedispatch' = null
[2026-03-22 21:42:10] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-22 21:42:10] [INFO]   -> Found value: SDPSFD
[2026-03-22 21:42:10] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-03-22 21:42:10] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 21:42:10] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-22 21:42:10] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-08678","cADNumber":"26-08678","incidentLocationStreetNumber":1008,"streetName":"N MAIN ST","incidentLocationCity":"SIKESTON","businessName":"MDMC","incidentLocationStateName":"MO","nERISIncidentPostalCode":63801,"nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-AIRCRAFT STANDBY","dispatchNotes":"03-22-2026 15:42:11|AIR EVAC ETA 10 MIN 03-22-2026 15:46:18|Disposition - SDPS FD:  NRN 03-22-2026 15:46:53|Disposition - SDPS FD:  RPT 03-22-2026 16:02:04|FLIGHT CREW ON BOARD ENROUTE TO ER 03-22-2026 16:02:51|1.2 AT ER 03-22-2026 16:35:39|Disposition - SSCA:  NRN\nDisposition - SSCA UNIT:  NRN","cADLog":"03-22-2026 15:42:11|AIR EVAC ETA 10 MIN 03-22-2026 15:46:18|Disposition - SDPS FD:  NRN 03-22-2026 15:46:53|Disposition - SDPS FD:  RPT 03-22-2026 16:02:04|FLIGHT CREW ON BOARD ENROUTE TO ER 03-22-2026 16:02:51|1.2 AT ER 03-22-2026 16:35:39|Disposition - SSCA:  NRN\nDisposition - SSCA UNIT:  NRN","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"L3","name":"L3","timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-03-22 21:42:10] [INFO] Number of extracted fields: 24
[2026-03-22 21:42:10] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-03-22 21:42:10] [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-22 21:42:10] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-03-22 21:42:10] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-03-22 21:42:10] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-03-22 21:42:11] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-03-22 21:42:11] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-03-22 21:42:11] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-03-22 21:42:11] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e875662f9c
[2026-03-22 21:42:11] [INFO] Found existing Dispatch with cADNumber '26-08678', ID: 69c055246a222af10 - will update instead of create
[2026-03-22 21:42:11] [INFO] Updated existing Dispatches record with ID: 69c055246a222af10
[2026-03-22 21:42:11] [INFO] File already exists in archive, using unique name: SDPSFD_26-08678_1774215731.xml
[2026-03-22 21:42:11] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08678.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-22/SDPSFD_26-08678_1774215731.xml
[2026-03-22 21:42:11] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08678.xml
[2026-03-22 21:58:08] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215808.XML
[2026-03-22 21:58:08] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215808.XML for user: 68f1466aed072ad4a
[2026-03-22 21:58:08] [INFO] File size: 4926 bytes
[2026-03-22 21:58:09] [INFO] Created FTPFiles record with ID: 69c065f147553e820
[2026-03-22 21:58:09] [INFO] About to extract fields from XML. File size: 4926 bytes
[2026-03-22 21:58:09] [INFO] Number of mappings: 28
[2026-03-22 21:58:09] [INFO] Starting XML parsing. Content length: 4926
[2026-03-22 21:58:09] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 21:58:09] [INFO] Processing 28 field mappings
[2026-03-22 21:58:09] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 21:58:09] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 21:58:09] [INFO]   -> Found value: PCFD
[2026-03-22 21:58:09] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-22 21:58:09] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 21:58:09] [INFO]   -> Found value: 2026000778
[2026-03-22 21:58:09] [INFO]   -> Set field 'incidentInternalId' = "2026000778"
[2026-03-22 21:58:09] [INFO]   -> Set field 'dispatchRunNumber' = "2026000778"
[2026-03-22 21:58:09] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 21:58:09] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-22 21:58:09] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-22 21:58:09] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 21:58:09] [INFO]   -> Found value: 1428
[2026-03-22 21:58:09] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1428
[2026-03-22 21:58:09] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 21:58:09] [INFO]   -> Found value: TN
[2026-03-22 21:58:09] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 21:58:09] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 21:58:09] [INFO]   -> Found value: 38501
[2026-03-22 21:58:09] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-22 21:58:09] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 21:58:09] [INFO]   -> Found value: WILLIAM SMITH
[2026-03-22 21:58:09] [INFO]   -> Set field 'businessName' = "WILLIAM SMITH"
[2026-03-22 21:58:09] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 21:58:09] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:09] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 21:58:09] [INFO]   -> Found value: 36.19542
[2026-03-22 21:58:09] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1954199999999985948306857608258724212646484375
[2026-03-22 21:58:09] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 21:58:09] [INFO]   -> Found value: -85.57404
[2026-03-22 21:58:09] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.574039999999996553015080280601978302001953125
[2026-03-22 21:58:09] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 21:58:09] [INFO]   -> Found value: 2026-03-22 16:56:25
[2026-03-22 21:58:09] [INFO]   -> Set field 'alarm' = "2026-03-22 16:56:25"
[2026-03-22 21:58:09] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 21:58:09] [INFO]   -> Found value: 2026-03-22 16:58:07
[2026-03-22 21:58:09] [INFO]   -> Set field 'dispatched' = "2026-03-22 16:58:07"
[2026-03-22 21:58:09] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 21:58:09] [INFO]   -> Found value: 2026-03-22 16:58:07
[2026-03-22 21:58:09] [INFO]   -> Set field 'enroute' = "2026-03-22 16:58:07"
[2026-03-22 21:58:09] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 21:58:09] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:09] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 21:58:09] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:09] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 21:58:09] [INFO]   -> Found value: CARLISLE RD/SPENCE LN
[2026-03-22 21:58:09] [INFO]   -> Set field 'incidentLocationCross' = "CARLISLE RD\/SPENCE LN"
[2026-03-22 21:58:09] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 21:58:09] [INFO]   -> Found value: EN11
[2026-03-22 21:58:09] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-22 21:58:09] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 21:58:09] [INFO]   -> Found value: 2026-03-22 16:58:07
[2026-03-22 21:58:09] [INFO]   -> Set field 'timedispatch' = "2026-03-22 16:58:07"
[2026-03-22 21:58:09] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 21:58:09] [INFO]   -> Found value: 2026-03-22 16:58:07
[2026-03-22 21:58:09] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 16:58:07"
[2026-03-22 21:58:09] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 21:58:09] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:09] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 21:58:09] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:09] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 21:58:09] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:09] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 21:58:09] [INFO]   -> Found value: 20260031065
[2026-03-22 21:58:09] [INFO]   -> Set field 'policeReportNumber' = "20260031065"
[2026-03-22 21:58:09] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 21:58:09] [INFO]   -> Found value: TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03/22/26 16:57:56 K...
[2026-03-22 21:58:09] [INFO]   -> Set field 'dispatchNotes' = "TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]"
[2026-03-22 21:58:09] [INFO]   -> Set field 'cADLog' = "TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]"
[2026-03-22 21:58:09] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 21:58:09] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 21:58:09] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 21:58:09] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 21:58:09] [INFO]   -> Found value: GLENN
[2026-03-22 21:58:09] [INFO]   -> Set field 'streetName' = "GLENN"
[2026-03-22 21:58:09] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 21:58:09] [INFO]   -> Found value: RD
[2026-03-22 21:58:09] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 21:58:09] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 21:58:09] [INFO]   -> Found value: 1428 GLENN RD
[2026-03-22 21:58:09] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1428 GLENN RD"
[2026-03-22 21:58:09] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 21:58:09] [INFO] Concatenating street name and type
[2026-03-22 21:58:09] [INFO]   -> Combined street name: GLENN RD
[2026-03-22 21:58:09] [INFO] Built locationCoordinates from lat/lng: 36.19542,-85.57404
[2026-03-22 21:58:09] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000778","dispatchRunNumber":"2026000778","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":1428,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"WILLIAM SMITH","nERISIncidentLatitude":36.1954199999999985948306857608258724212646484375,"nERISIncidentLongitude":-85.574039999999996553015080280601978302001953125,"alarm":"2026-03-22 16:56:25","dispatched":"2026-03-22 16:58:07","enroute":"2026-03-22 16:58:07","incidentLocationCross":"CARLISLE RD\/SPENCE LN","cADVehicleID":"EN11","timedispatch":"2026-03-22 16:58:07","timeenroutetoscene":"2026-03-22 16:58:07","policeReportNumber":"20260031065","dispatchNotes":"TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]","cADLog":"TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]","incidentLocationCity":"COOKEVILLE","streetName":"GLENN RD","incidentAddressTextVersionStreet":"1428 GLENN RD","locationCoordinates":"36.19542,-85.57404"}
[2026-03-22 21:58:09] [INFO] Number of extracted fields: 24
[2026-03-22 21:58:09] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-22 21:58:09] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-22 21:58:09] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-22 21:58:09] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 21:58:09] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 21:58:09] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 21:58:09] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 21:58:09] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 21:58:09] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-22 21:58:20] [INFO] Created new Dispatches record with ID: 69c065f2257a49855
[2026-03-22 21:58:20] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215808.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031065_20260322_215808.XML
[2026-03-22 21:58:20] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215808.XML
[2026-03-22 21:58:20] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215811.XML
[2026-03-22 21:58:20] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215811.XML for user: 68f1466aed072ad4a
[2026-03-22 21:58:20] [INFO] File size: 4926 bytes
[2026-03-22 21:58:20] [INFO] Created FTPFiles record with ID: 69c065fcb52ac9cca
[2026-03-22 21:58:20] [INFO] About to extract fields from XML. File size: 4926 bytes
[2026-03-22 21:58:20] [INFO] Number of mappings: 28
[2026-03-22 21:58:20] [INFO] Starting XML parsing. Content length: 4926
[2026-03-22 21:58:20] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 21:58:20] [INFO] Processing 28 field mappings
[2026-03-22 21:58:20] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 21:58:20] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 21:58:20] [INFO]   -> Found value: PCFD
[2026-03-22 21:58:20] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-22 21:58:20] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 21:58:20] [INFO]   -> Found value: 2026000778
[2026-03-22 21:58:20] [INFO]   -> Set field 'incidentInternalId' = "2026000778"
[2026-03-22 21:58:20] [INFO]   -> Set field 'dispatchRunNumber' = "2026000778"
[2026-03-22 21:58:20] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 21:58:20] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-22 21:58:20] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-22 21:58:20] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 21:58:20] [INFO]   -> Found value: 1428
[2026-03-22 21:58:20] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1428
[2026-03-22 21:58:20] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 21:58:20] [INFO]   -> Found value: TN
[2026-03-22 21:58:20] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 21:58:20] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 21:58:20] [INFO]   -> Found value: 38501
[2026-03-22 21:58:20] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-22 21:58:20] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 21:58:20] [INFO]   -> Found value: WILLIAM SMITH
[2026-03-22 21:58:20] [INFO]   -> Set field 'businessName' = "WILLIAM SMITH"
[2026-03-22 21:58:20] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 21:58:20] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:20] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 21:58:20] [INFO]   -> Found value: 36.19542
[2026-03-22 21:58:20] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1954199999999985948306857608258724212646484375
[2026-03-22 21:58:20] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 21:58:20] [INFO]   -> Found value: -85.57404
[2026-03-22 21:58:20] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.574039999999996553015080280601978302001953125
[2026-03-22 21:58:20] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 21:58:20] [INFO]   -> Found value: 2026-03-22 16:56:25
[2026-03-22 21:58:20] [INFO]   -> Set field 'alarm' = "2026-03-22 16:56:25"
[2026-03-22 21:58:20] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 21:58:20] [INFO]   -> Found value: 2026-03-22 16:58:07
[2026-03-22 21:58:20] [INFO]   -> Set field 'dispatched' = "2026-03-22 16:58:07"
[2026-03-22 21:58:20] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 21:58:20] [INFO]   -> Found value: 2026-03-22 16:58:07
[2026-03-22 21:58:20] [INFO]   -> Set field 'enroute' = "2026-03-22 16:58:07"
[2026-03-22 21:58:20] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 21:58:20] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:20] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 21:58:20] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:20] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 21:58:20] [INFO]   -> Found value: CARLISLE RD/SPENCE LN
[2026-03-22 21:58:20] [INFO]   -> Set field 'incidentLocationCross' = "CARLISLE RD\/SPENCE LN"
[2026-03-22 21:58:20] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 21:58:20] [INFO]   -> Found value: EN11
[2026-03-22 21:58:20] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-22 21:58:20] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 21:58:20] [INFO]   -> Found value: 2026-03-22 16:58:07
[2026-03-22 21:58:20] [INFO]   -> Set field 'timedispatch' = "2026-03-22 16:58:07"
[2026-03-22 21:58:20] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 21:58:20] [INFO]   -> Found value: 2026-03-22 16:58:07
[2026-03-22 21:58:20] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 16:58:07"
[2026-03-22 21:58:20] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 21:58:20] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:20] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 21:58:20] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:20] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 21:58:20] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:20] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 21:58:20] [INFO]   -> Found value: 20260031065
[2026-03-22 21:58:20] [INFO]   -> Set field 'policeReportNumber' = "20260031065"
[2026-03-22 21:58:20] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 21:58:20] [INFO]   -> Found value: TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03/22/26 16:57:56 K...
[2026-03-22 21:58:20] [INFO]   -> Set field 'dispatchNotes' = "TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]"
[2026-03-22 21:58:20] [INFO]   -> Set field 'cADLog' = "TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]"
[2026-03-22 21:58:20] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 21:58:20] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 21:58:20] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 21:58:20] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 21:58:20] [INFO]   -> Found value: GLENN
[2026-03-22 21:58:20] [INFO]   -> Set field 'streetName' = "GLENN"
[2026-03-22 21:58:20] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 21:58:20] [INFO]   -> Found value: RD
[2026-03-22 21:58:20] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 21:58:20] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 21:58:20] [INFO]   -> Found value: 1428 GLENN RD
[2026-03-22 21:58:20] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1428 GLENN RD"
[2026-03-22 21:58:20] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 21:58:20] [INFO] Concatenating street name and type
[2026-03-22 21:58:20] [INFO]   -> Combined street name: GLENN RD
[2026-03-22 21:58:20] [INFO] Built locationCoordinates from lat/lng: 36.19542,-85.57404
[2026-03-22 21:58:20] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000778","dispatchRunNumber":"2026000778","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":1428,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"WILLIAM SMITH","nERISIncidentLatitude":36.1954199999999985948306857608258724212646484375,"nERISIncidentLongitude":-85.574039999999996553015080280601978302001953125,"alarm":"2026-03-22 16:56:25","dispatched":"2026-03-22 16:58:07","enroute":"2026-03-22 16:58:07","incidentLocationCross":"CARLISLE RD\/SPENCE LN","cADVehicleID":"EN11","timedispatch":"2026-03-22 16:58:07","timeenroutetoscene":"2026-03-22 16:58:07","policeReportNumber":"20260031065","dispatchNotes":"TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]","cADLog":"TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]","incidentLocationCity":"COOKEVILLE","streetName":"GLENN RD","incidentAddressTextVersionStreet":"1428 GLENN RD","locationCoordinates":"36.19542,-85.57404"}
[2026-03-22 21:58:20] [INFO] Number of extracted fields: 24
[2026-03-22 21:58:20] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-22 21:58:20] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-22 21:58:20] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-22 21:58:20] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 21:58:20] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 21:58: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-22 21:58: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-22 21:58:21] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 21:58:21] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-22 21:58:21] [INFO] Found existing Dispatch with cADNumber '2026000778', ID: 69c065f2257a49855 - will update instead of create
[2026-03-22 21:58:21] [INFO] Updated existing Dispatches record with ID: 69c065f2257a49855
[2026-03-22 21:58:21] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215811.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031065_20260322_215811.XML
[2026-03-22 21:58:21] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215811.XML
[2026-03-22 21:58:21] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215814.XML
[2026-03-22 21:58:21] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215814.XML for user: 68f1466aed072ad4a
[2026-03-22 21:58:21] [INFO] File size: 4926 bytes
[2026-03-22 21:58:21] [INFO] Created FTPFiles record with ID: 69c065fde594f928c
[2026-03-22 21:58:21] [INFO] About to extract fields from XML. File size: 4926 bytes
[2026-03-22 21:58:21] [INFO] Number of mappings: 28
[2026-03-22 21:58:21] [INFO] Starting XML parsing. Content length: 4926
[2026-03-22 21:58:21] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 21:58:21] [INFO] Processing 28 field mappings
[2026-03-22 21:58:21] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 21:58:21] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 21:58:21] [INFO]   -> Found value: PCFD
[2026-03-22 21:58:21] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-22 21:58:21] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 21:58:21] [INFO]   -> Found value: 2026000778
[2026-03-22 21:58:21] [INFO]   -> Set field 'incidentInternalId' = "2026000778"
[2026-03-22 21:58:21] [INFO]   -> Set field 'dispatchRunNumber' = "2026000778"
[2026-03-22 21:58:21] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 21:58:21] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-22 21:58:21] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-22 21:58:21] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 21:58:21] [INFO]   -> Found value: 1428
[2026-03-22 21:58:21] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1428
[2026-03-22 21:58:21] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 21:58:21] [INFO]   -> Found value: TN
[2026-03-22 21:58:21] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 21:58:21] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 21:58:21] [INFO]   -> Found value: 38501
[2026-03-22 21:58:21] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-22 21:58:21] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 21:58:21] [INFO]   -> Found value: WILLIAM SMITH
[2026-03-22 21:58:21] [INFO]   -> Set field 'businessName' = "WILLIAM SMITH"
[2026-03-22 21:58:21] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 21:58:21] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:21] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 21:58:21] [INFO]   -> Found value: 36.19542
[2026-03-22 21:58:21] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1954199999999985948306857608258724212646484375
[2026-03-22 21:58:21] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 21:58:21] [INFO]   -> Found value: -85.57404
[2026-03-22 21:58:21] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.574039999999996553015080280601978302001953125
[2026-03-22 21:58:21] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 21:58:21] [INFO]   -> Found value: 2026-03-22 16:56:25
[2026-03-22 21:58:21] [INFO]   -> Set field 'alarm' = "2026-03-22 16:56:25"
[2026-03-22 21:58:21] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 21:58:21] [INFO]   -> Found value: 2026-03-22 16:58:07
[2026-03-22 21:58:21] [INFO]   -> Set field 'dispatched' = "2026-03-22 16:58:07"
[2026-03-22 21:58:21] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 21:58:21] [INFO]   -> Found value: 2026-03-22 16:58:07
[2026-03-22 21:58:21] [INFO]   -> Set field 'enroute' = "2026-03-22 16:58:07"
[2026-03-22 21:58:21] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 21:58:21] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:21] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 21:58:21] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:21] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 21:58:21] [INFO]   -> Found value: CARLISLE RD/SPENCE LN
[2026-03-22 21:58:21] [INFO]   -> Set field 'incidentLocationCross' = "CARLISLE RD\/SPENCE LN"
[2026-03-22 21:58:21] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 21:58:21] [INFO]   -> Found value: EN11
[2026-03-22 21:58:21] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2026-03-22 21:58:21] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 21:58:21] [INFO]   -> Found value: 2026-03-22 16:58:07
[2026-03-22 21:58:21] [INFO]   -> Set field 'timedispatch' = "2026-03-22 16:58:07"
[2026-03-22 21:58:21] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 21:58:21] [INFO]   -> Found value: 2026-03-22 16:58:07
[2026-03-22 21:58:21] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 16:58:07"
[2026-03-22 21:58:21] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 21:58:21] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:21] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 21:58:21] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:21] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 21:58:21] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:21] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 21:58:21] [INFO]   -> Found value: 20260031065
[2026-03-22 21:58:21] [INFO]   -> Set field 'policeReportNumber' = "20260031065"
[2026-03-22 21:58:21] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 21:58:21] [INFO]   -> Found value: TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03/22/26 16:57:56 K...
[2026-03-22 21:58:21] [INFO]   -> Set field 'dispatchNotes' = "TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]"
[2026-03-22 21:58:21] [INFO]   -> Set field 'cADLog' = "TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]"
[2026-03-22 21:58:21] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 21:58:21] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 21:58:21] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 21:58:21] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 21:58:21] [INFO]   -> Found value: GLENN
[2026-03-22 21:58:21] [INFO]   -> Set field 'streetName' = "GLENN"
[2026-03-22 21:58:21] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 21:58:21] [INFO]   -> Found value: RD
[2026-03-22 21:58:21] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 21:58:21] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 21:58:21] [INFO]   -> Found value: 1428 GLENN RD
[2026-03-22 21:58:21] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1428 GLENN RD"
[2026-03-22 21:58:21] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 21:58:21] [INFO] Concatenating street name and type
[2026-03-22 21:58:21] [INFO]   -> Combined street name: GLENN RD
[2026-03-22 21:58:21] [INFO] Built locationCoordinates from lat/lng: 36.19542,-85.57404
[2026-03-22 21:58:21] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000778","dispatchRunNumber":"2026000778","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":1428,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"WILLIAM SMITH","nERISIncidentLatitude":36.1954199999999985948306857608258724212646484375,"nERISIncidentLongitude":-85.574039999999996553015080280601978302001953125,"alarm":"2026-03-22 16:56:25","dispatched":"2026-03-22 16:58:07","enroute":"2026-03-22 16:58:07","incidentLocationCross":"CARLISLE RD\/SPENCE LN","cADVehicleID":"EN11","timedispatch":"2026-03-22 16:58:07","timeenroutetoscene":"2026-03-22 16:58:07","policeReportNumber":"20260031065","dispatchNotes":"TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]","cADLog":"TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]","incidentLocationCity":"COOKEVILLE","streetName":"GLENN RD","incidentAddressTextVersionStreet":"1428 GLENN RD","locationCoordinates":"36.19542,-85.57404"}
[2026-03-22 21:58:21] [INFO] Number of extracted fields: 24
[2026-03-22 21:58:21] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-22 21:58:21] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-22 21:58:21] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-22 21:58:21] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 21:58:22] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 21:58: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-22 21:58: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-22 21:58:22] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 21:58:22] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-22 21:58:22] [INFO] Found existing Dispatch with cADNumber '2026000778', ID: 69c065f2257a49855 - will update instead of create
[2026-03-22 21:58:22] [INFO] Updated existing Dispatches record with ID: 69c065f2257a49855
[2026-03-22 21:58:22] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215814.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031065_20260322_215814.XML
[2026-03-22 21:58:22] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215814.XML
[2026-03-22 21:58:48] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215848.XML
[2026-03-22 21:58:48] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215848.XML for user: 68f1466aed072ad4a
[2026-03-22 21:58:48] [INFO] File size: 5668 bytes
[2026-03-22 21:58:48] [INFO] Created FTPFiles record with ID: 69c066189ba5c1c88
[2026-03-22 21:58:48] [INFO] About to extract fields from XML. File size: 5668 bytes
[2026-03-22 21:58:48] [INFO] Number of mappings: 28
[2026-03-22 21:58:48] [INFO] Starting XML parsing. Content length: 5668
[2026-03-22 21:58:48] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 21:58:48] [INFO] Processing 28 field mappings
[2026-03-22 21:58:48] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 21:58:48] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 21:58:48] [INFO]   -> Found value: PCFD
[2026-03-22 21:58:48] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-22 21:58:48] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 21:58:48] [INFO]   -> Found value: 2026000778
[2026-03-22 21:58:48] [INFO]   -> Set field 'incidentInternalId' = "2026000778"
[2026-03-22 21:58:48] [INFO]   -> Set field 'dispatchRunNumber' = "2026000778"
[2026-03-22 21:58:48] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 21:58:48] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-22 21:58:48] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-22 21:58:48] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 21:58:48] [INFO]   -> Found value: 1428
[2026-03-22 21:58:48] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1428
[2026-03-22 21:58:48] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 21:58:48] [INFO]   -> Found value: TN
[2026-03-22 21:58:48] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 21:58:48] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 21:58:48] [INFO]   -> Found value: 38501
[2026-03-22 21:58:48] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-22 21:58:48] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 21:58:48] [INFO]   -> Found value: WILLIAM SMITH
[2026-03-22 21:58:48] [INFO]   -> Set field 'businessName' = "WILLIAM SMITH"
[2026-03-22 21:58:48] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 21:58:48] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:48] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 21:58:48] [INFO]   -> Found value: 36.19542
[2026-03-22 21:58:48] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1954199999999985948306857608258724212646484375
[2026-03-22 21:58:48] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 21:58:48] [INFO]   -> Found value: -85.57404
[2026-03-22 21:58:48] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.574039999999996553015080280601978302001953125
[2026-03-22 21:58:48] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 21:58:48] [INFO]   -> Found value: 2026-03-22 16:56:25
[2026-03-22 21:58:48] [INFO]   -> Set field 'alarm' = "2026-03-22 16:56:25"
[2026-03-22 21:58:48] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 21:58:48] [INFO]   -> Found value: 2026-03-22 16:58:07
[2026-03-22 21:58:48] [INFO]   -> Set field 'dispatched' = "2026-03-22 16:58:07"
[2026-03-22 21:58:48] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 21:58:48] [INFO]   -> Found value: 2026-03-22 16:58:07
[2026-03-22 21:58:48] [INFO]   -> Set field 'enroute' = "2026-03-22 16:58:07"
[2026-03-22 21:58:48] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 21:58:48] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:48] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 21:58:48] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:48] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 21:58:48] [INFO]   -> Found value: CARLISLE RD/SPENCE LN
[2026-03-22 21:58:48] [INFO]   -> Set field 'incidentLocationCross' = "CARLISLE RD\/SPENCE LN"
[2026-03-22 21:58:48] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 21:58:48] [INFO]   -> Found value: BR11
[2026-03-22 21:58:48] [INFO]   -> Set field 'cADVehicleID' = "BR11"
[2026-03-22 21:58:48] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 21:58:48] [INFO]   -> Found value: 2026-03-22 16:58:44
[2026-03-22 21:58:48] [INFO]   -> Set field 'timedispatch' = "2026-03-22 16:58:44"
[2026-03-22 21:58:48] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 21:58:48] [INFO]   -> Found value: 2026-03-22 16:58:44
[2026-03-22 21:58:48] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 16:58:44"
[2026-03-22 21:58:48] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 21:58:48] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:48] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 21:58:48] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:48] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 21:58:48] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:48] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 21:58:48] [INFO]   -> Found value: 20260031065
[2026-03-22 21:58:48] [INFO]   -> Set field 'policeReportNumber' = "20260031065"
[2026-03-22 21:58:48] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 21:58:48] [INFO]   -> Found value: TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03/22/26 16:57:56 K...
[2026-03-22 21:58:48] [INFO]   -> Set field 'dispatchNotes' = "TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]"
[2026-03-22 21:58:48] [INFO]   -> Set field 'cADLog' = "TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]"
[2026-03-22 21:58:48] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 21:58:48] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 21:58:48] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 21:58:48] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 21:58:48] [INFO]   -> Found value: GLENN
[2026-03-22 21:58:48] [INFO]   -> Set field 'streetName' = "GLENN"
[2026-03-22 21:58:48] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 21:58:48] [INFO]   -> Found value: RD
[2026-03-22 21:58:48] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 21:58:48] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 21:58:48] [INFO]   -> Found value: 1428 GLENN RD
[2026-03-22 21:58:48] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1428 GLENN RD"
[2026-03-22 21:58:48] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 21:58:48] [INFO] Concatenating street name and type
[2026-03-22 21:58:48] [INFO]   -> Combined street name: GLENN RD
[2026-03-22 21:58:48] [INFO] Built locationCoordinates from lat/lng: 36.19542,-85.57404
[2026-03-22 21:58:48] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000778","dispatchRunNumber":"2026000778","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":1428,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"WILLIAM SMITH","nERISIncidentLatitude":36.1954199999999985948306857608258724212646484375,"nERISIncidentLongitude":-85.574039999999996553015080280601978302001953125,"alarm":"2026-03-22 16:56:25","dispatched":"2026-03-22 16:58:07","enroute":"2026-03-22 16:58:07","incidentLocationCross":"CARLISLE RD\/SPENCE LN","cADVehicleID":"BR11","timedispatch":"2026-03-22 16:58:44","timeenroutetoscene":"2026-03-22 16:58:44","policeReportNumber":"20260031065","dispatchNotes":"TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]","cADLog":"TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]","incidentLocationCity":"COOKEVILLE","streetName":"GLENN RD","incidentAddressTextVersionStreet":"1428 GLENN RD","locationCoordinates":"36.19542,-85.57404"}
[2026-03-22 21:58:48] [INFO] Number of extracted fields: 24
[2026-03-22 21:58:48] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-22 21:58:48] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD', Parsed IDs = ["PCFD"], Non-empty count = 1, Total agency count = 1, Assigned Agencies count = 4
[2026-03-22 21:58:48] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-22 21:58:48] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 21:58:48] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 21:58:48] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 21:58:48] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 21:58:48] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 21:58:49] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-22 21:58:49] [INFO] Found existing Dispatch with cADNumber '2026000778', ID: 69c065f2257a49855 - will update instead of create
[2026-03-22 21:58:49] [INFO] Updated existing Dispatches record with ID: 69c065f2257a49855
[2026-03-22 21:58:49] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215848.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031065_20260322_215848.XML
[2026-03-22 21:58:49] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215848.XML
[2026-03-22 21:58:49] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215848_1.XML
[2026-03-22 21:58:49] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215848_1.XML for user: 68f1466aed072ad4a
[2026-03-22 21:58:49] [INFO] File size: 5668 bytes
[2026-03-22 21:58:49] [INFO] Created FTPFiles record with ID: 69c06619d8f3e053a
[2026-03-22 21:58:49] [INFO] About to extract fields from XML. File size: 5668 bytes
[2026-03-22 21:58:49] [INFO] Number of mappings: 28
[2026-03-22 21:58:49] [INFO] Starting XML parsing. Content length: 5668
[2026-03-22 21:58:49] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 21:58:49] [INFO] Processing 28 field mappings
[2026-03-22 21:58:49] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 21:58:49] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 21:58:49] [INFO]   -> Found value: PCFD
[2026-03-22 21:58:49] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD"
[2026-03-22 21:58:49] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 21:58:49] [INFO]   -> Found value: 2026000778
[2026-03-22 21:58:49] [INFO]   -> Set field 'incidentInternalId' = "2026000778"
[2026-03-22 21:58:49] [INFO]   -> Set field 'dispatchRunNumber' = "2026000778"
[2026-03-22 21:58:49] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 21:58:49] [INFO]   -> Found value: FIRE INVESTIGATION
[2026-03-22 21:58:49] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE INVESTIGATION"
[2026-03-22 21:58:49] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 21:58:49] [INFO]   -> Found value: 1428
[2026-03-22 21:58:49] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1428
[2026-03-22 21:58:49] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 21:58:49] [INFO]   -> Found value: TN
[2026-03-22 21:58:49] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 21:58:49] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 21:58:49] [INFO]   -> Found value: 38501
[2026-03-22 21:58:49] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38501
[2026-03-22 21:58:49] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 21:58:49] [INFO]   -> Found value: WILLIAM SMITH
[2026-03-22 21:58:49] [INFO]   -> Set field 'businessName' = "WILLIAM SMITH"
[2026-03-22 21:58:49] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 21:58:49] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:49] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 21:58:49] [INFO]   -> Found value: 36.19542
[2026-03-22 21:58:49] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1954199999999985948306857608258724212646484375
[2026-03-22 21:58:49] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 21:58:49] [INFO]   -> Found value: -85.57404
[2026-03-22 21:58:49] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.574039999999996553015080280601978302001953125
[2026-03-22 21:58:49] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 21:58:49] [INFO]   -> Found value: 2026-03-22 16:56:25
[2026-03-22 21:58:49] [INFO]   -> Set field 'alarm' = "2026-03-22 16:56:25"
[2026-03-22 21:58:49] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 21:58:49] [INFO]   -> Found value: 2026-03-22 16:58:07
[2026-03-22 21:58:49] [INFO]   -> Set field 'dispatched' = "2026-03-22 16:58:07"
[2026-03-22 21:58:49] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 21:58:49] [INFO]   -> Found value: 2026-03-22 16:58:07
[2026-03-22 21:58:49] [INFO]   -> Set field 'enroute' = "2026-03-22 16:58:07"
[2026-03-22 21:58:49] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 21:58:49] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:49] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 21:58:49] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:49] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 21:58:49] [INFO]   -> Found value: CARLISLE RD/SPENCE LN
[2026-03-22 21:58:49] [INFO]   -> Set field 'incidentLocationCross' = "CARLISLE RD\/SPENCE LN"
[2026-03-22 21:58:49] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 21:58:49] [INFO]   -> Found value: BR11
[2026-03-22 21:58:49] [INFO]   -> Set field 'cADVehicleID' = "BR11"
[2026-03-22 21:58:49] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 21:58:49] [INFO]   -> Found value: 2026-03-22 16:58:44
[2026-03-22 21:58:49] [INFO]   -> Set field 'timedispatch' = "2026-03-22 16:58:44"
[2026-03-22 21:58:49] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 21:58:49] [INFO]   -> Found value: 2026-03-22 16:58:44
[2026-03-22 21:58:49] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 16:58:44"
[2026-03-22 21:58:49] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 21:58:49] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:49] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 21:58:49] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:49] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 21:58:49] [INFO]   -> No value found (null or empty)
[2026-03-22 21:58:49] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 21:58:49] [INFO]   -> Found value: 20260031065
[2026-03-22 21:58:49] [INFO]   -> Set field 'policeReportNumber' = "20260031065"
[2026-03-22 21:58:49] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 21:58:49] [INFO]   -> Found value: TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03/22/26 16:57:56 K...
[2026-03-22 21:58:49] [INFO]   -> Set field 'dispatchNotes' = "TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]"
[2026-03-22 21:58:49] [INFO]   -> Set field 'cADLog' = "TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]"
[2026-03-22 21:58:49] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 21:58:49] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 21:58:49] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 21:58:49] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 21:58:49] [INFO]   -> Found value: GLENN
[2026-03-22 21:58:49] [INFO]   -> Set field 'streetName' = "GLENN"
[2026-03-22 21:58:49] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 21:58:49] [INFO]   -> Found value: RD
[2026-03-22 21:58:49] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 21:58:49] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 21:58:49] [INFO]   -> Found value: 1428 GLENN RD
[2026-03-22 21:58:49] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "1428 GLENN RD"
[2026-03-22 21:58:49] [INFO] Finished extracting fields. Total fields extracted: 24
[2026-03-22 21:58:49] [INFO] Concatenating street name and type
[2026-03-22 21:58:49] [INFO]   -> Combined street name: GLENN RD
[2026-03-22 21:58:49] [INFO] Built locationCoordinates from lat/lng: 36.19542,-85.57404
[2026-03-22 21:58:49] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD","incidentInternalId":"2026000778","dispatchRunNumber":"2026000778","incidentTypeValue1":"FIRE INVESTIGATION","incidentLocationStreetNumber":1428,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38501,"businessName":"WILLIAM SMITH","nERISIncidentLatitude":36.1954199999999985948306857608258724212646484375,"nERISIncidentLongitude":-85.574039999999996553015080280601978302001953125,"alarm":"2026-03-22 16:56:25","dispatched":"2026-03-22 16:58:07","enroute":"2026-03-22 16:58:07","incidentLocationCross":"CARLISLE RD\/SPENCE LN","cADVehicleID":"BR11","timedispatch":"2026-03-22 16:58:44","timeenroutetoscene":"2026-03-22 16:58:44","policeReportNumber":"20260031065","dispatchNotes":"TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]","cADLog":"TRASH CAN IS CLOSE TO THE ROAD- AND PART OF THE YARD IS STARTING TO CATCH FIRE  [03\/22\/26 16:57:56 KHILL] TRASH CAN ON FIRE BY THE ROAD  [03\/22\/26 16:57:08 KHILL]]","incidentLocationCity":"COOKEVILLE","streetName":"GLENN RD","incidentAddressTextVersionStreet":"1428 GLENN RD","locationCoordinates":"36.19542,-85.57404"}
[2026-03-22 21:58:49] [INFO] Number of extracted fields: 24
[2026-03-22 21:58:49] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD'
[2026-03-22 21:58: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-22 21:58:49] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD"]
[2026-03-22 21:58:49] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 21:58:50] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 21:58: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-22 21:58: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-22 21:58:50] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 21:58:50] [INFO] Found existing IncidentTypeMapping with ID: 693fd3603dbcab356
[2026-03-22 21:58:50] [INFO] Found existing Dispatch with cADNumber '2026000778', ID: 69c065f2257a49855 - will update instead of create
[2026-03-22 21:58:50] [INFO] Updated existing Dispatches record with ID: 69c065f2257a49855
[2026-03-22 21:58:50] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215848_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031065_20260322_215848_1.XML
[2026-03-22 21:58:50] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031065_20260322_215848_1.XML
[2026-03-22 23:35:40] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-08682.xml
[2026-03-22 23:35:40] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-08682.xml for user: 68d56363ec1209189
[2026-03-22 23:35:40] [INFO] File size: 2325 bytes
[2026-03-22 23:35:40] [INFO] Created FTPFiles record with ID: 69c07cccb84b476ca
[2026-03-22 23:35:40] [INFO] About to extract fields from XML. File size: 2325 bytes
[2026-03-22 23:35:40] [INFO] Number of mappings: 21
[2026-03-22 23:35:40] [INFO] Starting XML parsing. Content length: 2325
[2026-03-22 23:35:40] [INFO] XML parsed successfully. Root element: Incident
[2026-03-22 23:35:40] [INFO] Processing 21 field mappings
[2026-03-22 23:35:40] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-22 23:35:40] [INFO]   -> Found value: 26-08682
[2026-03-22 23:35:40] [INFO]   -> Set field 'dispatchRunNumber' = "26-08682"
[2026-03-22 23:35:40] [INFO]   -> Set field 'cADNumber' = "26-08682"
[2026-03-22 23:35:40] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-22 23:35:40] [INFO]   -> Found value: 6974
[2026-03-22 23:35:40] [INFO]   -> Set field 'incidentLocationStreetNumber' = 6974
[2026-03-22 23:35:40] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-22 23:35:40] [INFO]   -> Found value: STATE HIGHWAY Z
[2026-03-22 23:35:40] [INFO]   -> Set field 'streetName' = "STATE HIGHWAY Z"
[2026-03-22 23:35:40] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-22 23:35:40] [INFO]   -> No value found (null or empty)
[2026-03-22 23:35:40] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-22 23:35:40] [INFO]   -> Found value: SIKESTON
[2026-03-22 23:35:40] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-03-22 23:35:40] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-22 23:35:40] [INFO]   -> Found value: MIDWEST ORGANICS
[2026-03-22 23:35:40] [INFO]   -> Set field 'businessName' = "MIDWEST ORGANICS"
[2026-03-22 23:35:40] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-22 23:35:40] [INFO]   -> No value found (null or empty)
[2026-03-22 23:35:40] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-22 23:35:40] [INFO]   -> No value found (null or empty)
[2026-03-22 23:35:40] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-22 23:35:40] [INFO]   -> Found value: 0
[2026-03-22 23:35:40] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-22 23:35:40] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-22 23:35:40] [INFO]   -> Found value: 0
[2026-03-22 23:35:40] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-22 23:35:40] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-22 23:35:40] [INFO]   -> Found value: FIRE-GRASS/BRUSH/TREES
[2026-03-22 23:35:40] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-GRASS\/BRUSH\/TREES"
[2026-03-22 23:35:40] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-22 23:35:40] [INFO]   -> Found value: 03-22-2026 16:52:48|GRASS FIRE 03-22-2026 16:54:50|NO STRUCTURES IN DANGER 03-22-2026 17:12:23|C84 O...
[2026-03-22 23:35:40] [INFO]   -> Set field 'dispatchNotes' = "03-22-2026 16:52:48|GRASS FIRE 03-22-2026 16:54:50|NO STRUCTURES IN DANGER 03-22-2026 17:12:23|C84 ON SCENE 03-22-2026 17:14:25|C84 ADVISED IT IS SCRF DISTRICT 03-22-2026 17:17:03|A21 ON SCENE 03-22-2026 17:18:50|1771 X2 03-22-2026 17:24:37|A21 ADVISING SCRF PERSONEL TO STAGE AT FRONT OF BUILDING 03-22-2026 17:25:34|1765 X1 03-22-2026 18:35:04|SCRF CLEAR FROM SCENE ENROUTE BACK TO QUARTERS, WILL ADVISED WHEN IN SERVICE"
[2026-03-22 23:35:40] [INFO]   -> Set field 'cADLog' = "03-22-2026 16:52:48|GRASS FIRE 03-22-2026 16:54:50|NO STRUCTURES IN DANGER 03-22-2026 17:12:23|C84 ON SCENE 03-22-2026 17:14:25|C84 ADVISED IT IS SCRF DISTRICT 03-22-2026 17:17:03|A21 ON SCENE 03-22-2026 17:18:50|1771 X2 03-22-2026 17:24:37|A21 ADVISING SCRF PERSONEL TO STAGE AT FRONT OF BUILDING 03-22-2026 17:25:34|1765 X1 03-22-2026 18:35:04|SCRF CLEAR FROM SCENE ENROUTE BACK TO QUARTERS, WILL ADVISED WHEN IN SERVICE"
[2026-03-22 23:35:40] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-22 23:35:40] [INFO]   -> Found value: 03-22-2026T16:57:30
[2026-03-22 23:35:40] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T16:57:30
[2026-03-22 23:35:40] [ERROR] Error formatting datetime '2026-22-03T16:57:30': Failed to parse time string (2026-22-03T16:57:30) at position 6 (2): Unexpected character
[2026-03-22 23:35:40] [INFO]   -> Set field 'alarm' = null
[2026-03-22 23:35:40] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T16:57:30
[2026-03-22 23:35:40] [ERROR] Error formatting datetime '2026-22-03T16:57:30': Failed to parse time string (2026-22-03T16:57:30) at position 6 (2): Unexpected character
[2026-03-22 23:35:40] [INFO]   -> Set field 'dispatched' = null
[2026-03-22 23:35:40] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-22 23:35:40] [INFO]   -> Found value: 03-22-2026T17:13:40
[2026-03-22 23:35:40] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T17:13:40
[2026-03-22 23:35:40] [ERROR] Error formatting datetime '2026-22-03T17:13:40': Failed to parse time string (2026-22-03T17:13:40) at position 6 (2): Unexpected character
[2026-03-22 23:35:40] [INFO]   -> Set field 'onScene' = null
[2026-03-22 23:35:40] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-22 23:35:40] [INFO]   -> No value found (null or empty)
[2026-03-22 23:35:40] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-22 23:35:40] [INFO]   -> Found value: 1765
[2026-03-22 23:35:40] [INFO]   -> Set field 'cADVehicleID' = 1765
[2026-03-22 23:35:40] [INFO]   -> Set field 'name' = "1765"
[2026-03-22 23:35:40] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-22 23:35:40] [INFO]   -> Found value: 03-22-2026T17:25:29
[2026-03-22 23:35:40] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T17:25:29
[2026-03-22 23:35:40] [ERROR] Error formatting datetime '2026-22-03T17:25:29': Failed to parse time string (2026-22-03T17:25:29) at position 6 (2): Unexpected character
[2026-03-22 23:35:40] [INFO]   -> Set field 'timeenroutetoscene' = null
[2026-03-22 23:35:40] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-22 23:35:40] [INFO]   -> Found value: 03-22-2026T17:37:55
[2026-03-22 23:35:40] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T17:37:55
[2026-03-22 23:35:40] [ERROR] Error formatting datetime '2026-22-03T17:37:55': Failed to parse time string (2026-22-03T17:37:55) at position 6 (2): Unexpected character
[2026-03-22 23:35:40] [INFO]   -> Set field 'timeonscene' = null
[2026-03-22 23:35:40] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-22 23:35:40] [INFO]   -> Found value: 03-22-2026T18:34:22
[2026-03-22 23:35:40] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T18:34:22
[2026-03-22 23:35:40] [ERROR] Error formatting datetime '2026-22-03T18:34:22': Failed to parse time string (2026-22-03T18:34:22) at position 6 (2): Unexpected character
[2026-03-22 23:35:40] [INFO]   -> Set field 'timeunitclear' = null
[2026-03-22 23:35:40] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-22 23:35:40] [INFO]   -> Found value: 03-22-2026T17:25:26
[2026-03-22 23:35:40] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T17:25:26
[2026-03-22 23:35:40] [ERROR] Error formatting datetime '2026-22-03T17:25:26': Failed to parse time string (2026-22-03T17:25:26) at position 6 (2): Unexpected character
[2026-03-22 23:35:40] [INFO]   -> Set field 'timedispatch' = null
[2026-03-22 23:35:40] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-22 23:35:40] [INFO]   -> Found value: SCRFD
[2026-03-22 23:35:40] [INFO]   -> Set field 'cADAgencyIdentifier' = "SCRFD"
[2026-03-22 23:35:40] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 23:35:40] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-22 23:35:40] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-08682","cADNumber":"26-08682","incidentLocationStreetNumber":6974,"streetName":"STATE HIGHWAY Z","incidentLocationCity":"SIKESTON","businessName":"MIDWEST ORGANICS","nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-GRASS\/BRUSH\/TREES","dispatchNotes":"03-22-2026 16:52:48|GRASS FIRE 03-22-2026 16:54:50|NO STRUCTURES IN DANGER 03-22-2026 17:12:23|C84 ON SCENE 03-22-2026 17:14:25|C84 ADVISED IT IS SCRF DISTRICT 03-22-2026 17:17:03|A21 ON SCENE 03-22-2026 17:18:50|1771 X2 03-22-2026 17:24:37|A21 ADVISING SCRF PERSONEL TO STAGE AT FRONT OF BUILDING 03-22-2026 17:25:34|1765 X1 03-22-2026 18:35:04|SCRF CLEAR FROM SCENE ENROUTE BACK TO QUARTERS, WILL ADVISED WHEN IN SERVICE","cADLog":"03-22-2026 16:52:48|GRASS FIRE 03-22-2026 16:54:50|NO STRUCTURES IN DANGER 03-22-2026 17:12:23|C84 ON SCENE 03-22-2026 17:14:25|C84 ADVISED IT IS SCRF DISTRICT 03-22-2026 17:17:03|A21 ON SCENE 03-22-2026 17:18:50|1771 X2 03-22-2026 17:24:37|A21 ADVISING SCRF PERSONEL TO STAGE AT FRONT OF BUILDING 03-22-2026 17:25:34|1765 X1 03-22-2026 18:35:04|SCRF CLEAR FROM SCENE ENROUTE BACK TO QUARTERS, WILL ADVISED WHEN IN SERVICE","alarm":null,"dispatched":null,"onScene":null,"cADVehicleID":1765,"name":"1765","timeenroutetoscene":null,"timeonscene":null,"timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SCRFD","locationCoordinates":"0,0"}
[2026-03-22 23:35:40] [INFO] Number of extracted fields: 22
[2026-03-22 23:35:40] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SCRFD'
[2026-03-22 23:35:40] [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-22 23:35:40] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SCRFD"]
[2026-03-22 23:35:40] [INFO] Attempting SAASClient lookup for AgencyCode 'SCRFD' (index 0) within mailbox's assigned agencies
[2026-03-22 23:35:41] [INFO] SUCCESS: Routed to agency 'Scott County Rural Fire Protection District' (ID: 6643bdb30659f00d8) at INDEX 0 based on AgencyCode 'SCRFD'
[2026-03-22 23:35:41] [INFO] Fetched 6 stations from Stations module for agency 'Scott County Rural Fire Protection District': ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"]
[2026-03-22 23:35:41] [INFO] Final routing: saasclientId = 6643bdb30659f00d8, dispatchStationsIds = ["690279491710f7b8e","6644dbe7e17f1c3de","6644dbb3886c9768f","6644d0c9be0e4ec53","6644e2fe1572c01ae","69027d47e7c4fc65b"], matchedAgencyIndex = 0
[2026-03-22 23:35:41] [INFO] Updated FTPFiles record saasclientId to routed agency: 6643bdb30659f00d8
[2026-03-22 23:35:41] [INFO] Found existing IncidentTypeMapping with ID: 6938ba16ac72f649f
[2026-03-22 23:35:42] [INFO] Found existing Dispatch with cADNumber '26-08682', ID: 69c0695c106a89181 - will update instead of create
[2026-03-22 23:35:42] [INFO] Updated existing Dispatches record with ID: 69c0695c106a89181
[2026-03-22 23:35:42] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-08682.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-22/SCRFD_26-08682.xml
[2026-03-22 23:35:42] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SCRFD_26-08682.xml
[2026-03-22 23:39:43] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08682.xml
[2026-03-22 23:39:43] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08682.xml for user: 68d56363ec1209189
[2026-03-22 23:39:43] [INFO] File size: 2478 bytes
[2026-03-22 23:39:43] [INFO] Created FTPFiles record with ID: 69c07dbf732ab16f0
[2026-03-22 23:39:43] [INFO] About to extract fields from XML. File size: 2478 bytes
[2026-03-22 23:39:43] [INFO] Number of mappings: 21
[2026-03-22 23:39:43] [INFO] Starting XML parsing. Content length: 2478
[2026-03-22 23:39:43] [INFO] XML parsed successfully. Root element: Incident
[2026-03-22 23:39:43] [INFO] Processing 21 field mappings
[2026-03-22 23:39:43] [INFO] Mapping #1: Extracting 'IncidentNumber' => ["dispatchRunNumber","cADNumber"]
[2026-03-22 23:39:43] [INFO]   -> Found value: 26-08682
[2026-03-22 23:39:43] [INFO]   -> Set field 'dispatchRunNumber' = "26-08682"
[2026-03-22 23:39:43] [INFO]   -> Set field 'cADNumber' = "26-08682"
[2026-03-22 23:39:43] [INFO] Mapping #2: Extracting 'house_number' => 'incidentLocationStreetNumber'
[2026-03-22 23:39:43] [INFO]   -> Found value: 6974
[2026-03-22 23:39:43] [INFO]   -> Set field 'incidentLocationStreetNumber' = 6974
[2026-03-22 23:39:43] [INFO] Mapping #3: Extracting 'street' => 'streetName'
[2026-03-22 23:39:43] [INFO]   -> Found value: STATE HIGHWAY Z
[2026-03-22 23:39:43] [INFO]   -> Set field 'streetName' = "STATE HIGHWAY Z"
[2026-03-22 23:39:43] [INFO] Mapping #4: Extracting 'apt' => 'incidentLocationApt'
[2026-03-22 23:39:43] [INFO]   -> No value found (null or empty)
[2026-03-22 23:39:43] [INFO] Mapping #5: Extracting 'city' => 'incidentLocationCity'
[2026-03-22 23:39:43] [INFO]   -> Found value: SIKESTON
[2026-03-22 23:39:43] [INFO]   -> Set field 'incidentLocationCity' = "SIKESTON"
[2026-03-22 23:39:43] [INFO] Mapping #6: Extracting 'location_name' => 'businessName'
[2026-03-22 23:39:43] [INFO]   -> Found value: MIDWEST ORGANICS
[2026-03-22 23:39:43] [INFO]   -> Set field 'businessName' = "MIDWEST ORGANICS"
[2026-03-22 23:39:43] [INFO] Mapping #7: Extracting 'STATE' => 'incidentLocationStateName'
[2026-03-22 23:39:43] [INFO]   -> No value found (null or empty)
[2026-03-22 23:39:43] [INFO] Mapping #8: Extracting 'ZIPCODE' => 'nERISIncidentPostalCode'
[2026-03-22 23:39:43] [INFO]   -> No value found (null or empty)
[2026-03-22 23:39:43] [INFO] Mapping #9: Extracting 'LATITUDE' => 'nERISIncidentLatitude'
[2026-03-22 23:39:43] [INFO]   -> Found value: 0
[2026-03-22 23:39:43] [INFO]   -> Set field 'nERISIncidentLatitude' = 0
[2026-03-22 23:39:43] [INFO] Mapping #10: Extracting 'LONGITUDE' => 'nERISIncidentLongitude'
[2026-03-22 23:39:43] [INFO]   -> Found value: 0
[2026-03-22 23:39:43] [INFO]   -> Set field 'nERISIncidentLongitude' = 0
[2026-03-22 23:39:43] [INFO] Mapping #11: Extracting 'incident_type' => 'incidentTypeValue1'
[2026-03-22 23:39:43] [INFO]   -> Found value: FIRE-GRASS/BRUSH/TREES
[2026-03-22 23:39:43] [INFO]   -> Set field 'incidentTypeValue1' = "FIRE-GRASS\/BRUSH\/TREES"
[2026-03-22 23:39:43] [INFO] Mapping #12: Extracting 'commentlist.comment' => ["dispatchNotes","cADLog"]
[2026-03-22 23:39:43] [INFO]   -> Found value: 03-22-2026 16:52:48|GRASS FIRE 03-22-2026 16:54:50|NO STRUCTURES IN DANGER 03-22-2026 17:12:23|C84 O...
[2026-03-22 23:39:43] [INFO]   -> Set field 'dispatchNotes' = "03-22-2026 16:52:48|GRASS FIRE 03-22-2026 16:54:50|NO STRUCTURES IN DANGER 03-22-2026 17:12:23|C84 ON SCENE 03-22-2026 17:14:25|C84 ADVISED IT IS SCRF DISTRICT 03-22-2026 17:17:03|A21 ON SCENE 03-22-2026 17:18:50|1771 X2 03-22-2026 17:24:37|A21 ADVISING SCRF PERSONEL TO STAGE AT FRONT OF BUILDING 03-22-2026 17:25:34|1765 X1 03-22-2026 18:35:04|SCRF CLEAR FROM SCENE ENROUTE BACK TO QUARTERS, WILL ADVISED WHEN IN SERVICE 03-22-2026 18:35:21|Disposition - Scott County Rural:  NRN 03-22-2026 18:39:04|ALL PERSONNEL CLEAR AND RETURNING TO CITY"
[2026-03-22 23:39:43] [INFO]   -> Set field 'cADLog' = "03-22-2026 16:52:48|GRASS FIRE 03-22-2026 16:54:50|NO STRUCTURES IN DANGER 03-22-2026 17:12:23|C84 ON SCENE 03-22-2026 17:14:25|C84 ADVISED IT IS SCRF DISTRICT 03-22-2026 17:17:03|A21 ON SCENE 03-22-2026 17:18:50|1771 X2 03-22-2026 17:24:37|A21 ADVISING SCRF PERSONEL TO STAGE AT FRONT OF BUILDING 03-22-2026 17:25:34|1765 X1 03-22-2026 18:35:04|SCRF CLEAR FROM SCENE ENROUTE BACK TO QUARTERS, WILL ADVISED WHEN IN SERVICE 03-22-2026 18:35:21|Disposition - Scott County Rural:  NRN 03-22-2026 18:39:04|ALL PERSONNEL CLEAR AND RETURNING TO CITY"
[2026-03-22 23:39:43] [INFO] Mapping #13: Extracting 'time_first_unit_assigned' => ["alarm","dispatched"]
[2026-03-22 23:39:43] [INFO]   -> Found value: 03-22-2026T16:57:30
[2026-03-22 23:39:43] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T16:57:30
[2026-03-22 23:39:43] [ERROR] Error formatting datetime '2026-22-03T16:57:30': Failed to parse time string (2026-22-03T16:57:30) at position 6 (2): Unexpected character
[2026-03-22 23:39:43] [INFO]   -> Set field 'alarm' = null
[2026-03-22 23:39:43] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T16:57:30
[2026-03-22 23:39:43] [ERROR] Error formatting datetime '2026-22-03T16:57:30': Failed to parse time string (2026-22-03T16:57:30) at position 6 (2): Unexpected character
[2026-03-22 23:39:43] [INFO]   -> Set field 'dispatched' = null
[2026-03-22 23:39:43] [INFO] Mapping #14: Extracting 'time_first_unit_arrived' => 'onScene'
[2026-03-22 23:39:43] [INFO]   -> Found value: 03-22-2026T17:13:40
[2026-03-22 23:39:43] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T17:13:40
[2026-03-22 23:39:43] [ERROR] Error formatting datetime '2026-22-03T17:13:40': Failed to parse time string (2026-22-03T17:13:40) at position 6 (2): Unexpected character
[2026-03-22 23:39:43] [INFO]   -> Set field 'onScene' = null
[2026-03-22 23:39:43] [INFO] Mapping #15: Extracting 'time_last_unit_cleared' => ["cleared","inService"]
[2026-03-22 23:39:43] [INFO]   -> Found value: 03-22-2026T18:39:10
[2026-03-22 23:39:43] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T18:39:10
[2026-03-22 23:39:43] [ERROR] Error formatting datetime '2026-22-03T18:39:10': Failed to parse time string (2026-22-03T18:39:10) at position 6 (2): Unexpected character
[2026-03-22 23:39:43] [INFO]   -> Set field 'cleared' = null
[2026-03-22 23:39:43] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T18:39:10
[2026-03-22 23:39:43] [ERROR] Error formatting datetime '2026-22-03T18:39:10': Failed to parse time string (2026-22-03T18:39:10) at position 6 (2): Unexpected character
[2026-03-22 23:39:43] [INFO]   -> Set field 'inService' = null
[2026-03-22 23:39:43] [INFO] Mapping #16: Extracting 'Units.Unit[0].radio_name' => ["cADVehicleID","name"]
[2026-03-22 23:39:43] [INFO]   -> Found value: R1
[2026-03-22 23:39:43] [INFO]   -> Set field 'cADVehicleID' = "R1"
[2026-03-22 23:39:43] [INFO]   -> Set field 'name' = "R1"
[2026-03-22 23:39:43] [INFO] Mapping #17: Extracting 'Units.Unit[0].time_enroute' => 'timeenroutetoscene'
[2026-03-22 23:39:43] [INFO]   -> Found value: 03-22-2026T17:01:28
[2026-03-22 23:39:43] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T17:01:28
[2026-03-22 23:39:43] [ERROR] Error formatting datetime '2026-22-03T17:01:28': Failed to parse time string (2026-22-03T17:01:28) at position 6 (2): Unexpected character
[2026-03-22 23:39:43] [INFO]   -> Set field 'timeenroutetoscene' = null
[2026-03-22 23:39:43] [INFO] Mapping #18: Extracting 'Units.Unit[0].time_arrivedatscene' => 'timeonscene'
[2026-03-22 23:39:43] [INFO]   -> Found value: 03-22-2026T17:13:40
[2026-03-22 23:39:43] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T17:13:40
[2026-03-22 23:39:43] [ERROR] Error formatting datetime '2026-22-03T17:13:40': Failed to parse time string (2026-22-03T17:13:40) at position 6 (2): Unexpected character
[2026-03-22 23:39:43] [INFO]   -> Set field 'timeonscene' = null
[2026-03-22 23:39:43] [INFO] Mapping #19: Extracting 'Units.Unit[0].time_depart_scene' => 'timeunitclear'
[2026-03-22 23:39:43] [INFO]   -> Found value: 03-22-2026T18:39:10
[2026-03-22 23:39:43] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T18:39:10
[2026-03-22 23:39:43] [ERROR] Error formatting datetime '2026-22-03T18:39:10': Failed to parse time string (2026-22-03T18:39:10) at position 6 (2): Unexpected character
[2026-03-22 23:39:43] [INFO]   -> Set field 'timeunitclear' = null
[2026-03-22 23:39:43] [INFO] Mapping #20: Extracting 'Units.Unit[0].time_assigned' => 'timedispatch'
[2026-03-22 23:39:43] [INFO]   -> Found value: 03-22-2026T17:01:26
[2026-03-22 23:39:43] [INFO] Reformatted DD-MM-YYYY date '03-22-2026' (day=03, month=22) to ISO: 2026-22-03T17:01:26
[2026-03-22 23:39:43] [ERROR] Error formatting datetime '2026-22-03T17:01:26': Failed to parse time string (2026-22-03T17:01:26) at position 6 (2): Unexpected character
[2026-03-22 23:39:43] [INFO]   -> Set field 'timedispatch' = null
[2026-03-22 23:39:43] [INFO] Mapping #21: Extracting 'Agency' => 'cADAgencyIdentifier'
[2026-03-22 23:39:43] [INFO]   -> Found value: SDPSFD
[2026-03-22 23:39:43] [INFO]   -> Set field 'cADAgencyIdentifier' = "SDPSFD"
[2026-03-22 23:39:43] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 23:39:43] [INFO] Built locationCoordinates from lat/lng: 0,0
[2026-03-22 23:39:43] [INFO] Extracted parsing rules data: {"dispatchRunNumber":"26-08682","cADNumber":"26-08682","incidentLocationStreetNumber":6974,"streetName":"STATE HIGHWAY Z","incidentLocationCity":"SIKESTON","businessName":"MIDWEST ORGANICS","nERISIncidentLatitude":0,"nERISIncidentLongitude":0,"incidentTypeValue1":"FIRE-GRASS\/BRUSH\/TREES","dispatchNotes":"03-22-2026 16:52:48|GRASS FIRE 03-22-2026 16:54:50|NO STRUCTURES IN DANGER 03-22-2026 17:12:23|C84 ON SCENE 03-22-2026 17:14:25|C84 ADVISED IT IS SCRF DISTRICT 03-22-2026 17:17:03|A21 ON SCENE 03-22-2026 17:18:50|1771 X2 03-22-2026 17:24:37|A21 ADVISING SCRF PERSONEL TO STAGE AT FRONT OF BUILDING 03-22-2026 17:25:34|1765 X1 03-22-2026 18:35:04|SCRF CLEAR FROM SCENE ENROUTE BACK TO QUARTERS, WILL ADVISED WHEN IN SERVICE 03-22-2026 18:35:21|Disposition - Scott County Rural:  NRN 03-22-2026 18:39:04|ALL PERSONNEL CLEAR AND RETURNING TO CITY","cADLog":"03-22-2026 16:52:48|GRASS FIRE 03-22-2026 16:54:50|NO STRUCTURES IN DANGER 03-22-2026 17:12:23|C84 ON SCENE 03-22-2026 17:14:25|C84 ADVISED IT IS SCRF DISTRICT 03-22-2026 17:17:03|A21 ON SCENE 03-22-2026 17:18:50|1771 X2 03-22-2026 17:24:37|A21 ADVISING SCRF PERSONEL TO STAGE AT FRONT OF BUILDING 03-22-2026 17:25:34|1765 X1 03-22-2026 18:35:04|SCRF CLEAR FROM SCENE ENROUTE BACK TO QUARTERS, WILL ADVISED WHEN IN SERVICE 03-22-2026 18:35:21|Disposition - Scott County Rural:  NRN 03-22-2026 18:39:04|ALL PERSONNEL CLEAR AND RETURNING TO CITY","alarm":null,"dispatched":null,"onScene":null,"cleared":null,"inService":null,"cADVehicleID":"R1","name":"R1","timeenroutetoscene":null,"timeonscene":null,"timeunitclear":null,"timedispatch":null,"cADAgencyIdentifier":"SDPSFD","locationCoordinates":"0,0"}
[2026-03-22 23:39:43] [INFO] Number of extracted fields: 24
[2026-03-22 23:39:43] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'SDPSFD'
[2026-03-22 23:39:43] [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-22 23:39:43] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["SDPSFD"]
[2026-03-22 23:39:43] [INFO] Attempting SAASClient lookup for AgencyCode 'SDPSFD' (index 0) within mailbox's assigned agencies
[2026-03-22 23:39:43] [INFO] SUCCESS: Routed to agency 'Sikeston DPS' (ID: 6772cab7157b2ebde) at INDEX 0 based on AgencyCode 'SDPSFD'
[2026-03-22 23:39:43] [INFO] Fetched 4 stations from Stations module for agency 'Sikeston DPS': ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"]
[2026-03-22 23:39:43] [INFO] Final routing: saasclientId = 6772cab7157b2ebde, dispatchStationsIds = ["67d843b7d3670caf0","67d843823ed523b5c","67d8434fe3dc432c7","68d5ab6eaa6dc3961"], matchedAgencyIndex = 0
[2026-03-22 23:39:43] [INFO] Multi-agency routing matched mailbox default agency: 6772cab7157b2ebde (no update needed)
[2026-03-22 23:39:43] [INFO] Found existing IncidentTypeMapping with ID: 68e4158e87079abb2
[2026-03-22 23:39:45] [INFO] Created new Dispatches record with ID: 69c07dc044996039b
[2026-03-22 23:39:45] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08682.xml -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/archive/2026-03-22/SDPSFD_26-08682.xml
[2026-03-22 23:39:45] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68d56363ec1209189/SDPSFD_26-08682.xml
[2026-03-22 23:48:55] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_234855.XML
[2026-03-22 23:48:55] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_234855.XML for user: 68f1466aed072ad4a
[2026-03-22 23:48:55] [INFO] File size: 5405 bytes
[2026-03-22 23:48:56] [INFO] Created FTPFiles record with ID: 69c07fe80ff79b455
[2026-03-22 23:48:56] [INFO] About to extract fields from XML. File size: 5405 bytes
[2026-03-22 23:48:56] [INFO] Number of mappings: 28
[2026-03-22 23:48:56] [INFO] Starting XML parsing. Content length: 5405
[2026-03-22 23:48:56] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 23:48:56] [INFO] Processing 28 field mappings
[2026-03-22 23:48:56] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 23:48:56] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 23:48:56] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 23:48:56] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 23:48:56] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 23:48:56] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 23:48:56] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 23:48:56] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 23:48:56] [INFO]   -> Found value: 2026000779
[2026-03-22 23:48:56] [INFO]   -> Set field 'incidentInternalId' = "2026000779"
[2026-03-22 23:48:56] [INFO]   -> Set field 'dispatchRunNumber' = "2026000779"
[2026-03-22 23:48:56] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 23:48:56] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 23:48:56] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 23:48:56] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 23:48:56] [INFO]   -> Found value: 3511
[2026-03-22 23:48:56] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3511
[2026-03-22 23:48:56] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 23:48:56] [INFO]   -> Found value: TN
[2026-03-22 23:48:56] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 23:48:56] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 23:48:56] [INFO]   -> Found value: 38506
[2026-03-22 23:48:56] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 23:48:56] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 23:48:56] [INFO]   -> No value found (null or empty)
[2026-03-22 23:48:56] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 23:48:56] [INFO]   -> No value found (null or empty)
[2026-03-22 23:48:56] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 23:48:56] [INFO]   -> Found value: 36.17770
[2026-03-22 23:48:56] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1777000000000015234036254696547985076904296875
[2026-03-22 23:48:56] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 23:48:56] [INFO]   -> Found value: -85.43790
[2026-03-22 23:48:56] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4378999999999990677679306827485561370849609375
[2026-03-22 23:48:56] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 23:48:56] [INFO]   -> Found value: 2026-03-22 18:48:41
[2026-03-22 23:48:56] [INFO]   -> Set field 'alarm' = "2026-03-22 18:48:41"
[2026-03-22 23:48:56] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 23:48:56] [INFO]   -> Found value: 2026-03-22 18:48:50
[2026-03-22 23:48:56] [INFO]   -> Set field 'dispatched' = "2026-03-22 18:48:50"
[2026-03-22 23:48:56] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 23:48:56] [INFO]   -> No value found (null or empty)
[2026-03-22 23:48:56] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 23:48:56] [INFO]   -> No value found (null or empty)
[2026-03-22 23:48:56] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 23:48:56] [INFO]   -> No value found (null or empty)
[2026-03-22 23:48:56] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 23:48:56] [INFO]   -> Found value: ENCLAVE PT/NEW HERITAGE DR
[2026-03-22 23:48:56] [INFO]   -> Set field 'incidentLocationCross' = "ENCLAVE PT\/NEW HERITAGE DR"
[2026-03-22 23:48:56] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 23:48:56] [INFO]   -> Found value: PCFR
[2026-03-22 23:48:56] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2026-03-22 23:48:56] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 23:48:56] [INFO]   -> Found value: 2026-03-22 18:48:50
[2026-03-22 23:48:56] [INFO]   -> Set field 'timedispatch' = "2026-03-22 18:48:50"
[2026-03-22 23:48:56] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 23:48:56] [INFO]   -> No value found (null or empty)
[2026-03-22 23:48:56] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 23:48:56] [INFO]   -> No value found (null or empty)
[2026-03-22 23:48:56] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 23:48:56] [INFO]   -> No value found (null or empty)
[2026-03-22 23:48:56] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 23:48:56] [INFO]   -> No value found (null or empty)
[2026-03-22 23:48:56] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 23:48:56] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 23:48:56] [INFO]   -> Found value: 20260031094
[2026-03-22 23:48:56] [INFO]   -> Set field 'policeReportNumber' = "20260031094"
[2026-03-22 23:48:56] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 23:48:56] [INFO]   -> Found value: Event spawned from UNCONSCIOUS.  [03/22/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03/22/26 18:48:35...
[2026-03-22 23:48:56] [INFO]   -> Set field 'dispatchNotes' = "Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]"
[2026-03-22 23:48:56] [INFO]   -> Set field 'cADLog' = "Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]"
[2026-03-22 23:48:56] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 23:48:56] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 23:48:56] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 23:48:56] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 23:48:56] [INFO]   -> Found value: BURTON COVE
[2026-03-22 23:48:56] [INFO]   -> Set field 'streetName' = "BURTON COVE"
[2026-03-22 23:48:56] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 23:48:56] [INFO]   -> Found value: RD
[2026-03-22 23:48:56] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 23:48:56] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 23:48:56] [INFO]   -> Found value: 3511 BURTON COVE RD
[2026-03-22 23:48:56] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3511 BURTON COVE RD"
[2026-03-22 23:48:56] [INFO] Finished extracting fields. Total fields extracted: 21
[2026-03-22 23:48:56] [INFO] Concatenating street name and type
[2026-03-22 23:48:56] [INFO]   -> Combined street name: BURTON COVE RD
[2026-03-22 23:48:56] [INFO] Built locationCoordinates from lat/lng: 36.1777,-85.4379
[2026-03-22 23:48:56] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000779","dispatchRunNumber":"2026000779","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":3511,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.1777000000000015234036254696547985076904296875,"nERISIncidentLongitude":-85.4378999999999990677679306827485561370849609375,"alarm":"2026-03-22 18:48:41","dispatched":"2026-03-22 18:48:50","incidentLocationCross":"ENCLAVE PT\/NEW HERITAGE DR","cADVehicleID":"PCFR","timedispatch":"2026-03-22 18:48:50","policeReportNumber":"20260031094","dispatchNotes":"Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]","cADLog":"Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]","incidentLocationCity":"COOKEVILLE","streetName":"BURTON COVE RD","incidentAddressTextVersionStreet":"3511 BURTON COVE RD","locationCoordinates":"36.1777,-85.4379"}
[2026-03-22 23:48:56] [INFO] Number of extracted fields: 21
[2026-03-22 23:48:56] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 23:48:56] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 23:48:56] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 23:48:56] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 23:48:56] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 23:48:56] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 23:48: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-22 23:48: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-22 23:48:56] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 23:48:56] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 23:48:56] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 23:48:56] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-22 23:49:07] [INFO] Created new Dispatches record with ID: 69c07fe9497f5a868
[2026-03-22 23:49:07] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_234855.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031094_20260322_234855.XML
[2026-03-22 23:49:07] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_234855.XML
[2026-03-22 23:51:22] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_235122.XML
[2026-03-22 23:51:22] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_235122.XML for user: 68f1466aed072ad4a
[2026-03-22 23:51:22] [INFO] File size: 6448 bytes
[2026-03-22 23:51:22] [INFO] Created FTPFiles record with ID: 69c0807a9559e4928
[2026-03-22 23:51:22] [INFO] About to extract fields from XML. File size: 6448 bytes
[2026-03-22 23:51:22] [INFO] Number of mappings: 28
[2026-03-22 23:51:22] [INFO] Starting XML parsing. Content length: 6448
[2026-03-22 23:51:22] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 23:51:22] [INFO] Processing 28 field mappings
[2026-03-22 23:51:22] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 23:51:22] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 23:51:22] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 23:51:22] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 23:51:22] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 23:51:22] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 23:51:22] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 23:51:22] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 23:51:22] [INFO]   -> Found value: 2026000779
[2026-03-22 23:51:22] [INFO]   -> Set field 'incidentInternalId' = "2026000779"
[2026-03-22 23:51:22] [INFO]   -> Set field 'dispatchRunNumber' = "2026000779"
[2026-03-22 23:51:22] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 23:51:22] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 23:51:22] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 23:51:22] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 23:51:22] [INFO]   -> Found value: 3511
[2026-03-22 23:51:22] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3511
[2026-03-22 23:51:22] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 23:51:22] [INFO]   -> Found value: TN
[2026-03-22 23:51:22] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 23:51:22] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 23:51:22] [INFO]   -> Found value: 38506
[2026-03-22 23:51:22] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 23:51:22] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 23:51:22] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:22] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 23:51:22] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:22] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 23:51:22] [INFO]   -> Found value: 36.17770
[2026-03-22 23:51:22] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1777000000000015234036254696547985076904296875
[2026-03-22 23:51:22] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 23:51:22] [INFO]   -> Found value: -85.43790
[2026-03-22 23:51:22] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4378999999999990677679306827485561370849609375
[2026-03-22 23:51:22] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 23:51:22] [INFO]   -> Found value: 2026-03-22 18:48:41
[2026-03-22 23:51:22] [INFO]   -> Set field 'alarm' = "2026-03-22 18:48:41"
[2026-03-22 23:51:22] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 23:51:22] [INFO]   -> Found value: 2026-03-22 18:48:50
[2026-03-22 23:51:22] [INFO]   -> Set field 'dispatched' = "2026-03-22 18:48:50"
[2026-03-22 23:51:22] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 23:51:22] [INFO]   -> Found value: 2026-03-22 18:51:19
[2026-03-22 23:51:22] [INFO]   -> Set field 'enroute' = "2026-03-22 18:51:19"
[2026-03-22 23:51:22] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 23:51:22] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:22] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 23:51:22] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:22] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 23:51:22] [INFO]   -> Found value: ENCLAVE PT/NEW HERITAGE DR
[2026-03-22 23:51:22] [INFO]   -> Set field 'incidentLocationCross' = "ENCLAVE PT\/NEW HERITAGE DR"
[2026-03-22 23:51:22] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 23:51:22] [INFO]   -> Found value: TK12
[2026-03-22 23:51:22] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-22 23:51:22] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 23:51:22] [INFO]   -> Found value: 2026-03-22 18:51:16
[2026-03-22 23:51:22] [INFO]   -> Set field 'timedispatch' = "2026-03-22 18:51:16"
[2026-03-22 23:51:22] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 23:51:22] [INFO]   -> Found value: 2026-03-22 18:51:19
[2026-03-22 23:51:22] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 18:51:19"
[2026-03-22 23:51:22] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 23:51:22] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:22] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 23:51:22] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:22] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 23:51:22] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:22] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 23:51:22] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 23:51:22] [INFO]   -> Found value: 20260031094
[2026-03-22 23:51:22] [INFO]   -> Set field 'policeReportNumber' = "20260031094"
[2026-03-22 23:51:22] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 23:51:22] [INFO]   -> Found value: [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03/22/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDI...
[2026-03-22 23:51:22] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING  [03\/22\/26 18:48:52 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]"
[2026-03-22 23:51:22] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING  [03\/22\/26 18:48:52 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]"
[2026-03-22 23:51:22] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 23:51:22] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 23:51:22] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 23:51:22] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 23:51:22] [INFO]   -> Found value: BURTON COVE
[2026-03-22 23:51:22] [INFO]   -> Set field 'streetName' = "BURTON COVE"
[2026-03-22 23:51:22] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 23:51:22] [INFO]   -> Found value: RD
[2026-03-22 23:51:22] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 23:51:22] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 23:51:22] [INFO]   -> Found value: 3511 BURTON COVE RD
[2026-03-22 23:51:22] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3511 BURTON COVE RD"
[2026-03-22 23:51:22] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 23:51:22] [INFO] Concatenating street name and type
[2026-03-22 23:51:22] [INFO]   -> Combined street name: BURTON COVE RD
[2026-03-22 23:51:22] [INFO] Built locationCoordinates from lat/lng: 36.1777,-85.4379
[2026-03-22 23:51:22] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000779","dispatchRunNumber":"2026000779","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":3511,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.1777000000000015234036254696547985076904296875,"nERISIncidentLongitude":-85.4378999999999990677679306827485561370849609375,"alarm":"2026-03-22 18:48:41","dispatched":"2026-03-22 18:48:50","enroute":"2026-03-22 18:51:19","incidentLocationCross":"ENCLAVE PT\/NEW HERITAGE DR","cADVehicleID":"TK12","timedispatch":"2026-03-22 18:51:16","timeenroutetoscene":"2026-03-22 18:51:19","policeReportNumber":"20260031094","dispatchNotes":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING  [03\/22\/26 18:48:52 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]","cADLog":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING  [03\/22\/26 18:48:52 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]","incidentLocationCity":"COOKEVILLE","streetName":"BURTON COVE RD","incidentAddressTextVersionStreet":"3511 BURTON COVE RD","locationCoordinates":"36.1777,-85.4379"}
[2026-03-22 23:51:22] [INFO] Number of extracted fields: 23
[2026-03-22 23:51:22] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 23:51:22] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 23:51:22] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 23:51:22] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 23:51:22] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 23:51:22] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 23:51:23] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 23:51:23] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 23:51:23] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 23:51:23] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 23:51:23] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 23:51:23] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-22 23:51:23] [INFO] Found existing Dispatch with cADNumber '2026000779', ID: 69c07fe9497f5a868 - will update instead of create
[2026-03-22 23:51:24] [INFO] Updated existing Dispatches record with ID: 69c07fe9497f5a868
[2026-03-22 23:51:24] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_235122.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031094_20260322_235122.XML
[2026-03-22 23:51:24] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_235122.XML
[2026-03-22 23:51:28] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_235128.XML
[2026-03-22 23:51:28] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_235128.XML for user: 68f1466aed072ad4a
[2026-03-22 23:51:28] [INFO] File size: 6448 bytes
[2026-03-22 23:51:29] [INFO] Created FTPFiles record with ID: 69c0808178a7b7d9d
[2026-03-22 23:51:29] [INFO] About to extract fields from XML. File size: 6448 bytes
[2026-03-22 23:51:29] [INFO] Number of mappings: 28
[2026-03-22 23:51:29] [INFO] Starting XML parsing. Content length: 6448
[2026-03-22 23:51:29] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 23:51:29] [INFO] Processing 28 field mappings
[2026-03-22 23:51:29] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 23:51:29] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 23:51:29] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 23:51:29] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 23:51:29] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 23:51:29] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 23:51:29] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 23:51:29] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 23:51:29] [INFO]   -> Found value: 2026000779
[2026-03-22 23:51:29] [INFO]   -> Set field 'incidentInternalId' = "2026000779"
[2026-03-22 23:51:29] [INFO]   -> Set field 'dispatchRunNumber' = "2026000779"
[2026-03-22 23:51:29] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 23:51:29] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 23:51:29] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 23:51:29] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 23:51:29] [INFO]   -> Found value: 3511
[2026-03-22 23:51:29] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3511
[2026-03-22 23:51:29] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 23:51:29] [INFO]   -> Found value: TN
[2026-03-22 23:51:29] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 23:51:29] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 23:51:29] [INFO]   -> Found value: 38506
[2026-03-22 23:51:29] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 23:51:29] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 23:51:29] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:29] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 23:51:29] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:29] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 23:51:29] [INFO]   -> Found value: 36.17770
[2026-03-22 23:51:29] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1777000000000015234036254696547985076904296875
[2026-03-22 23:51:29] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 23:51:29] [INFO]   -> Found value: -85.43790
[2026-03-22 23:51:29] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4378999999999990677679306827485561370849609375
[2026-03-22 23:51:29] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 23:51:29] [INFO]   -> Found value: 2026-03-22 18:48:41
[2026-03-22 23:51:29] [INFO]   -> Set field 'alarm' = "2026-03-22 18:48:41"
[2026-03-22 23:51:29] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 23:51:29] [INFO]   -> Found value: 2026-03-22 18:48:50
[2026-03-22 23:51:29] [INFO]   -> Set field 'dispatched' = "2026-03-22 18:48:50"
[2026-03-22 23:51:29] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 23:51:29] [INFO]   -> Found value: 2026-03-22 18:51:19
[2026-03-22 23:51:29] [INFO]   -> Set field 'enroute' = "2026-03-22 18:51:19"
[2026-03-22 23:51:29] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 23:51:29] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:29] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 23:51:29] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:29] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 23:51:29] [INFO]   -> Found value: ENCLAVE PT/NEW HERITAGE DR
[2026-03-22 23:51:29] [INFO]   -> Set field 'incidentLocationCross' = "ENCLAVE PT\/NEW HERITAGE DR"
[2026-03-22 23:51:29] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 23:51:29] [INFO]   -> Found value: TK12
[2026-03-22 23:51:29] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-22 23:51:29] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 23:51:29] [INFO]   -> Found value: 2026-03-22 18:51:16
[2026-03-22 23:51:29] [INFO]   -> Set field 'timedispatch' = "2026-03-22 18:51:16"
[2026-03-22 23:51:29] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 23:51:29] [INFO]   -> Found value: 2026-03-22 18:51:19
[2026-03-22 23:51:29] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 18:51:19"
[2026-03-22 23:51:29] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 23:51:29] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:29] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 23:51:29] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:29] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 23:51:29] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:29] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 23:51:29] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 23:51:29] [INFO]   -> Found value: 20260031094
[2026-03-22 23:51:29] [INFO]   -> Set field 'policeReportNumber' = "20260031094"
[2026-03-22 23:51:29] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 23:51:29] [INFO]   -> Found value: [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03/22/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDI...
[2026-03-22 23:51:29] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING  [03\/22\/26 18:48:52 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]"
[2026-03-22 23:51:29] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING  [03\/22\/26 18:48:52 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]"
[2026-03-22 23:51:29] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 23:51:29] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 23:51:29] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 23:51:29] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 23:51:29] [INFO]   -> Found value: BURTON COVE
[2026-03-22 23:51:29] [INFO]   -> Set field 'streetName' = "BURTON COVE"
[2026-03-22 23:51:29] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 23:51:29] [INFO]   -> Found value: RD
[2026-03-22 23:51:29] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 23:51:29] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 23:51:29] [INFO]   -> Found value: 3511 BURTON COVE RD
[2026-03-22 23:51:29] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3511 BURTON COVE RD"
[2026-03-22 23:51:29] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 23:51:29] [INFO] Concatenating street name and type
[2026-03-22 23:51:29] [INFO]   -> Combined street name: BURTON COVE RD
[2026-03-22 23:51:29] [INFO] Built locationCoordinates from lat/lng: 36.1777,-85.4379
[2026-03-22 23:51:29] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000779","dispatchRunNumber":"2026000779","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":3511,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.1777000000000015234036254696547985076904296875,"nERISIncidentLongitude":-85.4378999999999990677679306827485561370849609375,"alarm":"2026-03-22 18:48:41","dispatched":"2026-03-22 18:48:50","enroute":"2026-03-22 18:51:19","incidentLocationCross":"ENCLAVE PT\/NEW HERITAGE DR","cADVehicleID":"TK12","timedispatch":"2026-03-22 18:51:16","timeenroutetoscene":"2026-03-22 18:51:19","policeReportNumber":"20260031094","dispatchNotes":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING  [03\/22\/26 18:48:52 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]","cADLog":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING  [03\/22\/26 18:48:52 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]","incidentLocationCity":"COOKEVILLE","streetName":"BURTON COVE RD","incidentAddressTextVersionStreet":"3511 BURTON COVE RD","locationCoordinates":"36.1777,-85.4379"}
[2026-03-22 23:51:29] [INFO] Number of extracted fields: 23
[2026-03-22 23:51:29] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 23:51:29] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 23:51:29] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 23:51:29] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 23:51:29] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 23:51:29] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 23:51:30] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 23:51:30] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 23:51:30] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 23:51:30] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 23:51:30] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 23:51:30] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-22 23:51:30] [INFO] Found existing Dispatch with cADNumber '2026000779', ID: 69c07fe9497f5a868 - will update instead of create
[2026-03-22 23:51:30] [INFO] Updated existing Dispatches record with ID: 69c07fe9497f5a868
[2026-03-22 23:51:30] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_235128.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031094_20260322_235128.XML
[2026-03-22 23:51:30] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_235128.XML
[2026-03-22 23:51:30] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_235129.XML
[2026-03-22 23:51:30] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_235129.XML for user: 68f1466aed072ad4a
[2026-03-22 23:51:30] [INFO] File size: 6448 bytes
[2026-03-22 23:51:31] [INFO] Created FTPFiles record with ID: 69c080839581d520e
[2026-03-22 23:51:31] [INFO] About to extract fields from XML. File size: 6448 bytes
[2026-03-22 23:51:31] [INFO] Number of mappings: 28
[2026-03-22 23:51:31] [INFO] Starting XML parsing. Content length: 6448
[2026-03-22 23:51:31] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 23:51:31] [INFO] Processing 28 field mappings
[2026-03-22 23:51:31] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 23:51:31] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 23:51:31] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 23:51:31] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 23:51:31] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 23:51:31] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 23:51:31] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 23:51:31] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 23:51:31] [INFO]   -> Found value: 2026000779
[2026-03-22 23:51:31] [INFO]   -> Set field 'incidentInternalId' = "2026000779"
[2026-03-22 23:51:31] [INFO]   -> Set field 'dispatchRunNumber' = "2026000779"
[2026-03-22 23:51:31] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 23:51:31] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 23:51:31] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 23:51:31] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 23:51:31] [INFO]   -> Found value: 3511
[2026-03-22 23:51:31] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3511
[2026-03-22 23:51:31] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 23:51:31] [INFO]   -> Found value: TN
[2026-03-22 23:51:31] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 23:51:31] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 23:51:31] [INFO]   -> Found value: 38506
[2026-03-22 23:51:31] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 23:51:31] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 23:51:31] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:31] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 23:51:31] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:31] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 23:51:31] [INFO]   -> Found value: 36.17770
[2026-03-22 23:51:31] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1777000000000015234036254696547985076904296875
[2026-03-22 23:51:31] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 23:51:31] [INFO]   -> Found value: -85.43790
[2026-03-22 23:51:31] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4378999999999990677679306827485561370849609375
[2026-03-22 23:51:31] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 23:51:31] [INFO]   -> Found value: 2026-03-22 18:48:41
[2026-03-22 23:51:31] [INFO]   -> Set field 'alarm' = "2026-03-22 18:48:41"
[2026-03-22 23:51:31] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 23:51:31] [INFO]   -> Found value: 2026-03-22 18:48:50
[2026-03-22 23:51:31] [INFO]   -> Set field 'dispatched' = "2026-03-22 18:48:50"
[2026-03-22 23:51:31] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 23:51:31] [INFO]   -> Found value: 2026-03-22 18:51:19
[2026-03-22 23:51:31] [INFO]   -> Set field 'enroute' = "2026-03-22 18:51:19"
[2026-03-22 23:51:31] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 23:51:31] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:31] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 23:51:31] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:31] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 23:51:31] [INFO]   -> Found value: ENCLAVE PT/NEW HERITAGE DR
[2026-03-22 23:51:31] [INFO]   -> Set field 'incidentLocationCross' = "ENCLAVE PT\/NEW HERITAGE DR"
[2026-03-22 23:51:31] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 23:51:31] [INFO]   -> Found value: TK12
[2026-03-22 23:51:31] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-22 23:51:31] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 23:51:31] [INFO]   -> Found value: 2026-03-22 18:51:16
[2026-03-22 23:51:31] [INFO]   -> Set field 'timedispatch' = "2026-03-22 18:51:16"
[2026-03-22 23:51:31] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 23:51:31] [INFO]   -> Found value: 2026-03-22 18:51:19
[2026-03-22 23:51:31] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 18:51:19"
[2026-03-22 23:51:31] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 23:51:31] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:31] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 23:51:31] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:31] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 23:51:31] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:31] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 23:51:31] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 23:51:31] [INFO]   -> Found value: 20260031094
[2026-03-22 23:51:31] [INFO]   -> Set field 'policeReportNumber' = "20260031094"
[2026-03-22 23:51:31] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 23:51:31] [INFO]   -> Found value: [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03/22/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDI...
[2026-03-22 23:51:31] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING  [03\/22\/26 18:48:52 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]"
[2026-03-22 23:51:31] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING  [03\/22\/26 18:48:52 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]"
[2026-03-22 23:51:31] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 23:51:31] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 23:51:31] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 23:51:31] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 23:51:31] [INFO]   -> Found value: BURTON COVE
[2026-03-22 23:51:31] [INFO]   -> Set field 'streetName' = "BURTON COVE"
[2026-03-22 23:51:31] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 23:51:31] [INFO]   -> Found value: RD
[2026-03-22 23:51:31] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 23:51:31] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 23:51:31] [INFO]   -> Found value: 3511 BURTON COVE RD
[2026-03-22 23:51:31] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3511 BURTON COVE RD"
[2026-03-22 23:51:31] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 23:51:31] [INFO] Concatenating street name and type
[2026-03-22 23:51:31] [INFO]   -> Combined street name: BURTON COVE RD
[2026-03-22 23:51:31] [INFO] Built locationCoordinates from lat/lng: 36.1777,-85.4379
[2026-03-22 23:51:31] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000779","dispatchRunNumber":"2026000779","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":3511,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.1777000000000015234036254696547985076904296875,"nERISIncidentLongitude":-85.4378999999999990677679306827485561370849609375,"alarm":"2026-03-22 18:48:41","dispatched":"2026-03-22 18:48:50","enroute":"2026-03-22 18:51:19","incidentLocationCross":"ENCLAVE PT\/NEW HERITAGE DR","cADVehicleID":"TK12","timedispatch":"2026-03-22 18:51:16","timeenroutetoscene":"2026-03-22 18:51:19","policeReportNumber":"20260031094","dispatchNotes":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING  [03\/22\/26 18:48:52 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]","cADLog":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING  [03\/22\/26 18:48:52 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]","incidentLocationCity":"COOKEVILLE","streetName":"BURTON COVE RD","incidentAddressTextVersionStreet":"3511 BURTON COVE RD","locationCoordinates":"36.1777,-85.4379"}
[2026-03-22 23:51:31] [INFO] Number of extracted fields: 23
[2026-03-22 23:51:31] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 23:51:31] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 23:51:31] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 23:51:31] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 23:51:31] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 23:51:31] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 23:51:32] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 23:51:32] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 23:51:32] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 23:51:32] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 23:51:32] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 23:51:32] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-22 23:51:32] [INFO] Found existing Dispatch with cADNumber '2026000779', ID: 69c07fe9497f5a868 - will update instead of create
[2026-03-22 23:51:33] [INFO] Updated existing Dispatches record with ID: 69c07fe9497f5a868
[2026-03-22 23:51:33] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_235129.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031094_20260322_235129.XML
[2026-03-22 23:51:33] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_235129.XML
[2026-03-22 23:51:33] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_235129_1.XML
[2026-03-22 23:51:33] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_235129_1.XML for user: 68f1466aed072ad4a
[2026-03-22 23:51:33] [INFO] File size: 6448 bytes
[2026-03-22 23:51:33] [INFO] Created FTPFiles record with ID: 69c08085b34ab8e93
[2026-03-22 23:51:33] [INFO] About to extract fields from XML. File size: 6448 bytes
[2026-03-22 23:51:33] [INFO] Number of mappings: 28
[2026-03-22 23:51:33] [INFO] Starting XML parsing. Content length: 6448
[2026-03-22 23:51:33] [INFO] XML parsed successfully. Root element: CADExport
[2026-03-22 23:51:33] [INFO] Processing 28 field mappings
[2026-03-22 23:51:33] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2026-03-22 23:51:33] [INFO]   -> Multi-agency mode: Converting scoped path 'EventDetails.AgencyCode' to global 'AgencyCode' for cADAgencyIdentifier
[2026-03-22 23:51:33] [INFO] Target field 'cADAgencyIdentifier' is configured for multi-value concatenation
[2026-03-22 23:51:33] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2026-03-22 23:51:33] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2026-03-22 23:51:33] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2026-03-22 23:51:33] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2026-03-22 23:51:33] [INFO] Found 4 elements for 'ReportNumber', using FIRST value only
[2026-03-22 23:51:33] [INFO]   -> Found value: 2026000779
[2026-03-22 23:51:33] [INFO]   -> Set field 'incidentInternalId' = "2026000779"
[2026-03-22 23:51:33] [INFO]   -> Set field 'dispatchRunNumber' = "2026000779"
[2026-03-22 23:51:33] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2026-03-22 23:51:33] [INFO]   -> Found value: UNCONSCIOUS
[2026-03-22 23:51:33] [INFO]   -> Set field 'incidentTypeValue1' = "UNCONSCIOUS"
[2026-03-22 23:51:33] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2026-03-22 23:51:33] [INFO]   -> Found value: 3511
[2026-03-22 23:51:33] [INFO]   -> Set field 'incidentLocationStreetNumber' = 3511
[2026-03-22 23:51:33] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2026-03-22 23:51:33] [INFO]   -> Found value: TN
[2026-03-22 23:51:33] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2026-03-22 23:51:33] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2026-03-22 23:51:33] [INFO]   -> Found value: 38506
[2026-03-22 23:51:33] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2026-03-22 23:51:33] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2026-03-22 23:51:33] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:33] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2026-03-22 23:51:33] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:33] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2026-03-22 23:51:33] [INFO]   -> Found value: 36.17770
[2026-03-22 23:51:33] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.1777000000000015234036254696547985076904296875
[2026-03-22 23:51:33] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2026-03-22 23:51:33] [INFO]   -> Found value: -85.43790
[2026-03-22 23:51:33] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.4378999999999990677679306827485561370849609375
[2026-03-22 23:51:33] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2026-03-22 23:51:33] [INFO]   -> Found value: 2026-03-22 18:48:41
[2026-03-22 23:51:33] [INFO]   -> Set field 'alarm' = "2026-03-22 18:48:41"
[2026-03-22 23:51:33] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2026-03-22 23:51:33] [INFO]   -> Found value: 2026-03-22 18:48:50
[2026-03-22 23:51:33] [INFO]   -> Set field 'dispatched' = "2026-03-22 18:48:50"
[2026-03-22 23:51:33] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2026-03-22 23:51:33] [INFO]   -> Found value: 2026-03-22 18:51:19
[2026-03-22 23:51:33] [INFO]   -> Set field 'enroute' = "2026-03-22 18:51:19"
[2026-03-22 23:51:33] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2026-03-22 23:51:33] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:33] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2026-03-22 23:51:33] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:33] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2026-03-22 23:51:33] [INFO]   -> Found value: ENCLAVE PT/NEW HERITAGE DR
[2026-03-22 23:51:33] [INFO]   -> Set field 'incidentLocationCross' = "ENCLAVE PT\/NEW HERITAGE DR"
[2026-03-22 23:51:33] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2026-03-22 23:51:33] [INFO]   -> Found value: TK12
[2026-03-22 23:51:33] [INFO]   -> Set field 'cADVehicleID' = "TK12"
[2026-03-22 23:51:33] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2026-03-22 23:51:33] [INFO]   -> Found value: 2026-03-22 18:51:16
[2026-03-22 23:51:33] [INFO]   -> Set field 'timedispatch' = "2026-03-22 18:51:16"
[2026-03-22 23:51:33] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2026-03-22 23:51:33] [INFO]   -> Found value: 2026-03-22 18:51:19
[2026-03-22 23:51:33] [INFO]   -> Set field 'timeenroutetoscene' = "2026-03-22 18:51:19"
[2026-03-22 23:51:33] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2026-03-22 23:51:33] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:33] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2026-03-22 23:51:33] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:33] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2026-03-22 23:51:33] [INFO]   -> No value found (null or empty)
[2026-03-22 23:51:33] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2026-03-22 23:51:33] [INFO] Found 4 elements for 'CadInciNumber', using FIRST value only
[2026-03-22 23:51:33] [INFO]   -> Found value: 20260031094
[2026-03-22 23:51:33] [INFO]   -> Set field 'policeReportNumber' = "20260031094"
[2026-03-22 23:51:33] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2026-03-22 23:51:33] [INFO]   -> Found value: [LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03/22/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDI...
[2026-03-22 23:51:33] [INFO]   -> Set field 'dispatchNotes' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING  [03\/22\/26 18:48:52 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]"
[2026-03-22 23:51:33] [INFO]   -> Set field 'cADLog' = "[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING  [03\/22\/26 18:48:52 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]"
[2026-03-22 23:51:33] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2026-03-22 23:51:33] [INFO]   -> Found value: COOKEVILLE
[2026-03-22 23:51:33] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2026-03-22 23:51:33] [INFO] Mapping #26: Extracting 'EventDetails.StreetName' => 'streetName'
[2026-03-22 23:51:33] [INFO]   -> Found value: BURTON COVE
[2026-03-22 23:51:33] [INFO]   -> Set field 'streetName' = "BURTON COVE"
[2026-03-22 23:51:33] [INFO] Mapping #27: Extracting 'EventDetails.StreetType' => 'streetType'
[2026-03-22 23:51:33] [INFO]   -> Found value: RD
[2026-03-22 23:51:33] [INFO]   -> Set field 'streetType' = "RD"
[2026-03-22 23:51:33] [INFO] Mapping #28: Extracting 'EventDetails.FullAddress' => 'incidentAddressTextVersionStreet'
[2026-03-22 23:51:33] [INFO]   -> Found value: 3511 BURTON COVE RD
[2026-03-22 23:51:33] [INFO]   -> Set field 'incidentAddressTextVersionStreet' = "3511 BURTON COVE RD"
[2026-03-22 23:51:33] [INFO] Finished extracting fields. Total fields extracted: 23
[2026-03-22 23:51:33] [INFO] Concatenating street name and type
[2026-03-22 23:51:33] [INFO]   -> Combined street name: BURTON COVE RD
[2026-03-22 23:51:33] [INFO] Built locationCoordinates from lat/lng: 36.1777,-85.4379
[2026-03-22 23:51:33] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2026000779","dispatchRunNumber":"2026000779","incidentTypeValue1":"UNCONSCIOUS","incidentLocationStreetNumber":3511,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.1777000000000015234036254696547985076904296875,"nERISIncidentLongitude":-85.4378999999999990677679306827485561370849609375,"alarm":"2026-03-22 18:48:41","dispatched":"2026-03-22 18:48:50","enroute":"2026-03-22 18:51:19","incidentLocationCross":"ENCLAVE PT\/NEW HERITAGE DR","cADVehicleID":"TK12","timedispatch":"2026-03-22 18:51:16","timeenroutetoscene":"2026-03-22 18:51:19","policeReportNumber":"20260031094","dispatchNotes":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING  [03\/22\/26 18:48:52 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]","cADLog":"[LAW] UDTS: LAW CARD SEEN BY CPD-PCSO  [03\/22\/26 18:49:54 BAHARRIS] [EMS] BREATHING BUT NOT RESPONDING  [03\/22\/26 18:48:52 SVOKOUN2] Event spawned from UNCONSCIOUS.  [03\/22\/2026 18:48:41 SVOKOUN2] VISITACION 73YOF  [03\/22\/26 18:48:35 SVOKOUN2] BP 62\/40  [03\/22\/26 18:48:12 SVOKOUN2]","incidentLocationCity":"COOKEVILLE","streetName":"BURTON COVE RD","incidentAddressTextVersionStreet":"3511 BURTON COVE RD","locationCoordinates":"36.1777,-85.4379"}
[2026-03-22 23:51:33] [INFO] Number of extracted fields: 23
[2026-03-22 23:51:33] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2026-03-22 23:51:33] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Non-empty count = 4, Total agency count = 4, Assigned Agencies count = 4
[2026-03-22 23:51:33] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2026-03-22 23:51:33] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (index 0) within mailbox's assigned agencies
[2026-03-22 23:51:34] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) at INDEX 0 based on AgencyCode 'PCFD'
[2026-03-22 23:51:34] [INFO] INFO: Ignoring additional AgencyCode values after match at index 0: ["EMS","PCSO","RESC"]
[2026-03-22 23:51:34] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2026-03-22 23:51:34] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"], matchedAgencyIndex = 0
[2026-03-22 23:51:34] [INFO] Filtering multi-agency fields by matched index 0 (agency count: 4)
[2026-03-22 23:51:34] [INFO] Filtered cADAgencyIdentifier to: PCFD
[2026-03-22 23:51:34] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2026-03-22 23:51:34] [INFO] Found existing IncidentTypeMapping with ID: 693976706d4f7fb2e
[2026-03-22 23:51:34] [INFO] Found existing Dispatch with cADNumber '2026000779', ID: 69c07fe9497f5a868 - will update instead of create
[2026-03-22 23:51:35] [INFO] Updated existing Dispatches record with ID: 69c07fe9497f5a868
[2026-03-22 23:51:35] [INFO] Successfully archived file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_235129_1.XML -> /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/archive/2026-03-22/PCFD_20260031094_20260322_235129_1.XML
[2026-03-22 23:51:35] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20260031094_20260322_235129_1.XML
