[2025-12-17 01:07:08] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250138079_20251217_010708.XML
[2025-12-17 01:07:08] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250138079_20251217_010708.XML for user: 68f1466aed072ad4a
[2025-12-17 01:07:08] [INFO] File size: 5822 bytes
[2025-12-17 01:07:08] [INFO] Created FTPFiles record with ID: 6942023cbe66c70f9
[2025-12-17 01:07:08] [INFO] About to extract fields from XML. File size: 5822 bytes
[2025-12-17 01:07:08] [INFO] Number of mappings: 26
[2025-12-17 01:07:08] [INFO] Starting XML parsing. Content length: 5822
[2025-12-17 01:07:08] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-17 01:07:08] [INFO] Processing 26 field mappings
[2025-12-17 01:07:08] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-17 01:07:08] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2025-12-17 01:07:08] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2025-12-17 01:07:08] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2025-12-17 01:07:08] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-17 01:07:08] [INFO] Found 4 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-17 01:07:08] [INFO]   -> Found value: 2025003083
2025019565
[2025-12-17 01:07:08] [INFO]   -> Set field 'incidentInternalId' = "2025003083\n2025019565"
[2025-12-17 01:07:08] [INFO]   -> Set field 'dispatchRunNumber' = "2025003083\n2025019565"
[2025-12-17 01:07:08] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-17 01:07:08] [INFO]   -> Found value: MVC WITH INJURY
[2025-12-17 01:07:08] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2025-12-17 01:07:08] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-17 01:07:08] [INFO]   -> Found value: 2500
[2025-12-17 01:07:08] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2500
[2025-12-17 01:07:08] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-17 01:07:08] [INFO]   -> Found value: TN
[2025-12-17 01:07:08] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-17 01:07:08] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-17 01:07:08] [INFO]   -> Found value: 38506
[2025-12-17 01:07:08] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2025-12-17 01:07:08] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-17 01:07:08] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:08] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-17 01:07:08] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:08] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-17 01:07:08] [INFO]   -> Found value: 36.11783
[2025-12-17 01:07:08] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.11783
[2025-12-17 01:07:08] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-17 01:07:08] [INFO]   -> Found value: -85.46883
[2025-12-17 01:07:08] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.46883
[2025-12-17 01:07:08] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-17 01:07:08] [INFO]   -> Found value: 2025-12-16 19:05:32
[2025-12-17 01:07:08] [INFO]   -> Set field 'alarm' = "2025-12-16 19:05:32"
[2025-12-17 01:07:08] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-17 01:07:08] [INFO]   -> Found value: 2025-12-16 19:07:04
[2025-12-17 01:07:08] [INFO]   -> Set field 'dispatched' = "2025-12-16 19:07:04"
[2025-12-17 01:07:08] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-17 01:07:08] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:08] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-17 01:07:08] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:08] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-17 01:07:08] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:08] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-17 01:07:08] [INFO]   -> Found value: KIRBY LN/KIRBY SMITH RD
[2025-12-17 01:07:08] [INFO]   -> Set field 'incidentLocationCross' = "KIRBY LN\/KIRBY SMITH RD"
[2025-12-17 01:07:08] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-17 01:07:08] [INFO]   -> Found value: EN11
[2025-12-17 01:07:08] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2025-12-17 01:07:08] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-17 01:07:08] [INFO]   -> Found value: 2025-12-16 19:07:04
[2025-12-17 01:07:08] [INFO]   -> Set field 'timedispatch' = "2025-12-16 19:07:04"
[2025-12-17 01:07:08] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-17 01:07:08] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:08] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-17 01:07:08] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:08] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-17 01:07:08] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:08] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-17 01:07:08] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:08] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-17 01:07:08] [INFO] Found 4 elements for 'CadInciNumber', concatenating 4 non-empty values
[2025-12-17 01:07:08] [INFO]   -> Found value: 20250138079
20250138077
20250138078
20250138080
[2025-12-17 01:07:08] [INFO]   -> Set field 'policeReportNumber' = "20250138079\n20250138077\n20250138078\n20250138080"
[2025-12-17 01:07:08] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-17 01:07:08] [INFO]   -> Found value: [EMS] DRIVER AND 1 PASSENGER  [12/16/25 19:06:40 BPICHE] [EMS] car flipped over  [12/16/25 19:05:46 ...
[2025-12-17 01:07:08] [INFO]   -> Set field 'dispatchNotes' = "[EMS] DRIVER AND 1 PASSENGER  [12\/16\/25 19:06:40 BPICHE] [EMS] car flipped over  [12\/16\/25 19:05:46 BPICHE] [APCO INTELLICOMM] Case ID: SOw69Uglce Caller Phone: 9312520186 Caller Name: AT&amp;T MOBILITY Incident Location: 2500 BROWNS MILL RD Incident Location Detail: KIRBY LN\/KIRBY SMITH RD Nature: MVC WITH INJURY Incident #: 20250138077 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/16\/25 19:05:34 PSUTIL01] Event spawned from MVC WITH INJURY.  [12\/16\/2025 19:05:32 BPICHE]"
[2025-12-17 01:07:08] [INFO]   -> Set field 'cADLog' = "[EMS] DRIVER AND 1 PASSENGER  [12\/16\/25 19:06:40 BPICHE] [EMS] car flipped over  [12\/16\/25 19:05:46 BPICHE] [APCO INTELLICOMM] Case ID: SOw69Uglce Caller Phone: 9312520186 Caller Name: AT&amp;T MOBILITY Incident Location: 2500 BROWNS MILL RD Incident Location Detail: KIRBY LN\/KIRBY SMITH RD Nature: MVC WITH INJURY Incident #: 20250138077 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/16\/25 19:05:34 PSUTIL01] Event spawned from MVC WITH INJURY.  [12\/16\/2025 19:05:32 BPICHE]"
[2025-12-17 01:07:08] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-17 01:07:08] [INFO]   -> Found value: COOKEVILLE
[2025-12-17 01:07:08] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-17 01:07:08] [INFO] Mapping #26: Extracting 'EventDetails.FullAddress' => 'streetName'
[2025-12-17 01:07:08] [INFO]   -> Found value: 2500 BROWNS MILL RD
[2025-12-17 01:07:08] [INFO]   -> Set field 'streetName' = "2500 BROWNS MILL RD"
[2025-12-17 01:07:08] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-17 01:07:08] [INFO] Built locationCoordinates from lat/lng: 36.11783,-85.46883
[2025-12-17 01:07:08] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2025003083\n2025019565","dispatchRunNumber":"2025003083\n2025019565","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":2500,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.11783,"nERISIncidentLongitude":-85.46883,"alarm":"2025-12-16 19:05:32","dispatched":"2025-12-16 19:07:04","incidentLocationCross":"KIRBY LN\/KIRBY SMITH RD","cADVehicleID":"EN11","timedispatch":"2025-12-16 19:07:04","policeReportNumber":"20250138079\n20250138077\n20250138078\n20250138080","dispatchNotes":"[EMS] DRIVER AND 1 PASSENGER  [12\/16\/25 19:06:40 BPICHE] [EMS] car flipped over  [12\/16\/25 19:05:46 BPICHE] [APCO INTELLICOMM] Case ID: SOw69Uglce Caller Phone: 9312520186 Caller Name: AT&amp;T MOBILITY Incident Location: 2500 BROWNS MILL RD Incident Location Detail: KIRBY LN\/KIRBY SMITH RD Nature: MVC WITH INJURY Incident #: 20250138077 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/16\/25 19:05:34 PSUTIL01] Event spawned from MVC WITH INJURY.  [12\/16\/2025 19:05:32 BPICHE]","cADLog":"[EMS] DRIVER AND 1 PASSENGER  [12\/16\/25 19:06:40 BPICHE] [EMS] car flipped over  [12\/16\/25 19:05:46 BPICHE] [APCO INTELLICOMM] Case ID: SOw69Uglce Caller Phone: 9312520186 Caller Name: AT&amp;T MOBILITY Incident Location: 2500 BROWNS MILL RD Incident Location Detail: KIRBY LN\/KIRBY SMITH RD Nature: MVC WITH INJURY Incident #: 20250138077 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/16\/25 19:05:34 PSUTIL01] Event spawned from MVC WITH INJURY.  [12\/16\/2025 19:05:32 BPICHE]","incidentLocationCity":"COOKEVILLE","streetName":"2500 BROWNS MILL RD","locationCoordinates":"36.11783,-85.46883"}
[2025-12-17 01:07:08] [INFO] Number of extracted fields: 20
[2025-12-17 01:07:08] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2025-12-17 01:07:08] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Assigned Agencies count = 4
[2025-12-17 01:07:08] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2025-12-17 01:07:08] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (position 1)
[2025-12-17 01:07:08] [INFO] Found SAASClient match: ID = 68eeb686225c40db4, Name = Putnam County Fire Department for AgencyCode 'PCFD'
[2025-12-17 01:07:08] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) based on AgencyCode 'PCFD'
[2025-12-17 01:07:08] [INFO] INFO: Ignoring additional AgencyCode values after first match: ["EMS","PCSO","RESC"]
[2025-12-17 01:07: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"]
[2025-12-17 01:07:08] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-17 01:07:08] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2025-12-17 01:07:09] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2025-12-17 01:07:10] [INFO] Created new Dispatches record with ID: 6942023d1d71bf60e
[2025-12-17 01:07:10] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250138079_20251217_010708.XML
[2025-12-17 01:07:10] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250138079_20251217_010708.XML
[2025-12-17 01:07:10] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250138079_20251217_010710.XML
[2025-12-17 01:07:10] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250138079_20251217_010710.XML for user: 68f1466aed072ad4a
[2025-12-17 01:07:10] [INFO] File size: 5822 bytes
[2025-12-17 01:07:10] [INFO] Created FTPFiles record with ID: 6942023e97f78b35e
[2025-12-17 01:07:10] [INFO] About to extract fields from XML. File size: 5822 bytes
[2025-12-17 01:07:10] [INFO] Number of mappings: 26
[2025-12-17 01:07:10] [INFO] Starting XML parsing. Content length: 5822
[2025-12-17 01:07:10] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-17 01:07:10] [INFO] Processing 26 field mappings
[2025-12-17 01:07:10] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-17 01:07:10] [INFO] Found 4 elements for 'AgencyCode', concatenating 4 non-empty values
[2025-12-17 01:07:10] [INFO]   -> Found value: PCFD
EMS
PCSO
RESC
[2025-12-17 01:07:10] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nPCSO\nRESC"
[2025-12-17 01:07:10] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-17 01:07:10] [INFO] Found 4 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-17 01:07:10] [INFO]   -> Found value: 2025003083
2025019565
[2025-12-17 01:07:10] [INFO]   -> Set field 'incidentInternalId' = "2025003083\n2025019565"
[2025-12-17 01:07:10] [INFO]   -> Set field 'dispatchRunNumber' = "2025003083\n2025019565"
[2025-12-17 01:07:10] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-17 01:07:10] [INFO]   -> Found value: MVC WITH INJURY
[2025-12-17 01:07:10] [INFO]   -> Set field 'incidentTypeValue1' = "MVC WITH INJURY"
[2025-12-17 01:07:10] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-17 01:07:10] [INFO]   -> Found value: 2500
[2025-12-17 01:07:10] [INFO]   -> Set field 'incidentLocationStreetNumber' = 2500
[2025-12-17 01:07:10] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-17 01:07:10] [INFO]   -> Found value: TN
[2025-12-17 01:07:10] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-17 01:07:10] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-17 01:07:10] [INFO]   -> Found value: 38506
[2025-12-17 01:07:10] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2025-12-17 01:07:10] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-17 01:07:10] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:10] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-17 01:07:10] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:10] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-17 01:07:10] [INFO]   -> Found value: 36.11783
[2025-12-17 01:07:10] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.11783
[2025-12-17 01:07:10] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-17 01:07:10] [INFO]   -> Found value: -85.46883
[2025-12-17 01:07:10] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.46883
[2025-12-17 01:07:10] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-17 01:07:10] [INFO]   -> Found value: 2025-12-16 19:05:32
[2025-12-17 01:07:10] [INFO]   -> Set field 'alarm' = "2025-12-16 19:05:32"
[2025-12-17 01:07:10] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-17 01:07:10] [INFO]   -> Found value: 2025-12-16 19:07:04
[2025-12-17 01:07:10] [INFO]   -> Set field 'dispatched' = "2025-12-16 19:07:04"
[2025-12-17 01:07:10] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-17 01:07:10] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:10] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-17 01:07:10] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:10] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-17 01:07:10] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:10] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-17 01:07:10] [INFO]   -> Found value: KIRBY LN/KIRBY SMITH RD
[2025-12-17 01:07:10] [INFO]   -> Set field 'incidentLocationCross' = "KIRBY LN\/KIRBY SMITH RD"
[2025-12-17 01:07:10] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-17 01:07:10] [INFO]   -> Found value: EN11
[2025-12-17 01:07:10] [INFO]   -> Set field 'cADVehicleID' = "EN11"
[2025-12-17 01:07:10] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-17 01:07:10] [INFO]   -> Found value: 2025-12-16 19:07:04
[2025-12-17 01:07:10] [INFO]   -> Set field 'timedispatch' = "2025-12-16 19:07:04"
[2025-12-17 01:07:10] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-17 01:07:10] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:10] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-17 01:07:10] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:10] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-17 01:07:10] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:10] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-17 01:07:10] [INFO]   -> No value found (null or empty)
[2025-12-17 01:07:10] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-17 01:07:10] [INFO] Found 4 elements for 'CadInciNumber', concatenating 4 non-empty values
[2025-12-17 01:07:10] [INFO]   -> Found value: 20250138079
20250138077
20250138078
20250138080
[2025-12-17 01:07:10] [INFO]   -> Set field 'policeReportNumber' = "20250138079\n20250138077\n20250138078\n20250138080"
[2025-12-17 01:07:10] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-17 01:07:10] [INFO]   -> Found value: [EMS] DRIVER AND 1 PASSENGER  [12/16/25 19:06:40 BPICHE] [EMS] car flipped over  [12/16/25 19:05:46 ...
[2025-12-17 01:07:10] [INFO]   -> Set field 'dispatchNotes' = "[EMS] DRIVER AND 1 PASSENGER  [12\/16\/25 19:06:40 BPICHE] [EMS] car flipped over  [12\/16\/25 19:05:46 BPICHE] [APCO INTELLICOMM] Case ID: SOw69Uglce Caller Phone: 9312520186 Caller Name: AT&amp;T MOBILITY Incident Location: 2500 BROWNS MILL RD Incident Location Detail: KIRBY LN\/KIRBY SMITH RD Nature: MVC WITH INJURY Incident #: 20250138077 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/16\/25 19:05:34 PSUTIL01] Event spawned from MVC WITH INJURY.  [12\/16\/2025 19:05:32 BPICHE]"
[2025-12-17 01:07:10] [INFO]   -> Set field 'cADLog' = "[EMS] DRIVER AND 1 PASSENGER  [12\/16\/25 19:06:40 BPICHE] [EMS] car flipped over  [12\/16\/25 19:05:46 BPICHE] [APCO INTELLICOMM] Case ID: SOw69Uglce Caller Phone: 9312520186 Caller Name: AT&amp;T MOBILITY Incident Location: 2500 BROWNS MILL RD Incident Location Detail: KIRBY LN\/KIRBY SMITH RD Nature: MVC WITH INJURY Incident #: 20250138077 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/16\/25 19:05:34 PSUTIL01] Event spawned from MVC WITH INJURY.  [12\/16\/2025 19:05:32 BPICHE]"
[2025-12-17 01:07:10] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-17 01:07:10] [INFO]   -> Found value: COOKEVILLE
[2025-12-17 01:07:10] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-17 01:07:10] [INFO] Mapping #26: Extracting 'EventDetails.FullAddress' => 'streetName'
[2025-12-17 01:07:10] [INFO]   -> Found value: 2500 BROWNS MILL RD
[2025-12-17 01:07:10] [INFO]   -> Set field 'streetName' = "2500 BROWNS MILL RD"
[2025-12-17 01:07:10] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-17 01:07:10] [INFO] Built locationCoordinates from lat/lng: 36.11783,-85.46883
[2025-12-17 01:07:10] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nPCSO\nRESC","incidentInternalId":"2025003083\n2025019565","dispatchRunNumber":"2025003083\n2025019565","incidentTypeValue1":"MVC WITH INJURY","incidentLocationStreetNumber":2500,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.11783,"nERISIncidentLongitude":-85.46883,"alarm":"2025-12-16 19:05:32","dispatched":"2025-12-16 19:07:04","incidentLocationCross":"KIRBY LN\/KIRBY SMITH RD","cADVehicleID":"EN11","timedispatch":"2025-12-16 19:07:04","policeReportNumber":"20250138079\n20250138077\n20250138078\n20250138080","dispatchNotes":"[EMS] DRIVER AND 1 PASSENGER  [12\/16\/25 19:06:40 BPICHE] [EMS] car flipped over  [12\/16\/25 19:05:46 BPICHE] [APCO INTELLICOMM] Case ID: SOw69Uglce Caller Phone: 9312520186 Caller Name: AT&amp;T MOBILITY Incident Location: 2500 BROWNS MILL RD Incident Location Detail: KIRBY LN\/KIRBY SMITH RD Nature: MVC WITH INJURY Incident #: 20250138077 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/16\/25 19:05:34 PSUTIL01] Event spawned from MVC WITH INJURY.  [12\/16\/2025 19:05:32 BPICHE]","cADLog":"[EMS] DRIVER AND 1 PASSENGER  [12\/16\/25 19:06:40 BPICHE] [EMS] car flipped over  [12\/16\/25 19:05:46 BPICHE] [APCO INTELLICOMM] Case ID: SOw69Uglce Caller Phone: 9312520186 Caller Name: AT&amp;T MOBILITY Incident Location: 2500 BROWNS MILL RD Incident Location Detail: KIRBY LN\/KIRBY SMITH RD Nature: MVC WITH INJURY Incident #: 20250138077 CAD Call Taker: BPICHE Chief Complaint: (empty)  [12\/16\/25 19:05:34 PSUTIL01] Event spawned from MVC WITH INJURY.  [12\/16\/2025 19:05:32 BPICHE]","incidentLocationCity":"COOKEVILLE","streetName":"2500 BROWNS MILL RD","locationCoordinates":"36.11783,-85.46883"}
[2025-12-17 01:07:10] [INFO] Number of extracted fields: 20
[2025-12-17 01:07:10] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
PCSO
RESC'
[2025-12-17 01:07:10] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
PCSO
RESC', Parsed IDs = ["PCFD","EMS","PCSO","RESC"], Assigned Agencies count = 4
[2025-12-17 01:07:10] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","PCSO","RESC"]
[2025-12-17 01:07:10] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (position 1)
[2025-12-17 01:07:10] [INFO] Found SAASClient match: ID = 68eeb686225c40db4, Name = Putnam County Fire Department for AgencyCode 'PCFD'
[2025-12-17 01:07:10] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) based on AgencyCode 'PCFD'
[2025-12-17 01:07:10] [INFO] INFO: Ignoring additional AgencyCode values after first match: ["EMS","PCSO","RESC"]
[2025-12-17 01:07: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"]
[2025-12-17 01:07:10] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-17 01:07:10] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2025-12-17 01:07:10] [INFO] Found existing IncidentTypeMapping with ID: 69380b1bd578b1eb3
[2025-12-17 01:07:10] [INFO] Found existing Dispatch with cADNumber '2025003083
2025019565', ID: 6942023d1d71bf60e - will update instead of create
[2025-12-17 01:07:10] [INFO] Updated existing Dispatches record with ID: 6942023d1d71bf60e
[2025-12-17 01:07:10] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250138079_20251217_010710.XML
[2025-12-17 01:07:10] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250138079_20251217_010710.XML
[2025-12-17 01:51:20] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250138090_20251217_015120.XML
[2025-12-17 01:51:20] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250138090_20251217_015120.XML for user: 68f1466aed072ad4a
[2025-12-17 01:51:20] [INFO] File size: 5433 bytes
[2025-12-17 01:51:20] [INFO] Created FTPFiles record with ID: 69420c98bcc4f46cc
[2025-12-17 01:51:20] [INFO] About to extract fields from XML. File size: 5433 bytes
[2025-12-17 01:51:20] [INFO] Number of mappings: 26
[2025-12-17 01:51:20] [INFO] Starting XML parsing. Content length: 5433
[2025-12-17 01:51:20] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-17 01:51:20] [INFO] Processing 26 field mappings
[2025-12-17 01:51:20] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-17 01:51:20] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2025-12-17 01:51:20] [INFO]   -> Found value: PCFD
EMS
RESC
[2025-12-17 01:51:20] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2025-12-17 01:51:20] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-17 01:51:20] [INFO] Found 3 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-17 01:51:20] [INFO]   -> Found value: 2025003084
2025019567
[2025-12-17 01:51:20] [INFO]   -> Set field 'incidentInternalId' = "2025003084\n2025019567"
[2025-12-17 01:51:20] [INFO]   -> Set field 'dispatchRunNumber' = "2025003084\n2025019567"
[2025-12-17 01:51:20] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-17 01:51:20] [INFO]   -> Found value: BREATHING PROBLEMS
[2025-12-17 01:51:20] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2025-12-17 01:51:20] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-17 01:51:20] [INFO]   -> Found value: 1957
[2025-12-17 01:51:20] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1957
[2025-12-17 01:51:20] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-17 01:51:20] [INFO]   -> Found value: TN
[2025-12-17 01:51:20] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-17 01:51:20] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-17 01:51:20] [INFO]   -> Found value: 38506
[2025-12-17 01:51:20] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2025-12-17 01:51:20] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-17 01:51:20] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:20] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-17 01:51:20] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:20] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-17 01:51:20] [INFO]   -> Found value: 36.21354
[2025-12-17 01:51:20] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21354
[2025-12-17 01:51:20] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-17 01:51:20] [INFO]   -> Found value: -85.39581
[2025-12-17 01:51:20] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.39581
[2025-12-17 01:51:20] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-17 01:51:20] [INFO]   -> Found value: 2025-12-16 19:50:42
[2025-12-17 01:51:20] [INFO]   -> Set field 'alarm' = "2025-12-16 19:50:42"
[2025-12-17 01:51:20] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-17 01:51:20] [INFO]   -> Found value: 2025-12-16 19:51:16
[2025-12-17 01:51:20] [INFO]   -> Set field 'dispatched' = "2025-12-16 19:51:16"
[2025-12-17 01:51:20] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-17 01:51:20] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:20] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-17 01:51:20] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:20] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-17 01:51:20] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:20] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-17 01:51:20] [INFO]   -> Found value: BROTHERTON MOUNTAIN RD
[2025-12-17 01:51:20] [INFO]   -> Set field 'incidentLocationCross' = "BROTHERTON MOUNTAIN RD"
[2025-12-17 01:51:20] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-17 01:51:20] [INFO]   -> Found value: PCFR
[2025-12-17 01:51:20] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-17 01:51:20] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-17 01:51:20] [INFO]   -> Found value: 2025-12-16 19:51:16
[2025-12-17 01:51:20] [INFO]   -> Set field 'timedispatch' = "2025-12-16 19:51:16"
[2025-12-17 01:51:20] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-17 01:51:20] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:20] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-17 01:51:20] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:20] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-17 01:51:20] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:20] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-17 01:51:20] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:20] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-17 01:51:20] [INFO] Found 3 elements for 'CadInciNumber', concatenating 3 non-empty values
[2025-12-17 01:51:20] [INFO]   -> Found value: 20250138090
20250138089
20250138091
[2025-12-17 01:51:20] [INFO]   -> Set field 'policeReportNumber' = "20250138090\n20250138089\n20250138091"
[2025-12-17 01:51:20] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-17 01:51:20] [INFO]   -> Found value: [APCO INTELLICOMM] Case ID: j7jxv5S3M9 Caller Phone: 9312803253 Caller Name: VERIZON Incident Locati...
[2025-12-17 01:51:20] [INFO]   -> Set field 'dispatchNotes' = "[APCO INTELLICOMM] Case ID: j7jxv5S3M9 Caller Phone: 9312803253 Caller Name: VERIZON Incident Location: 1957 BENSON RD Incident Location Detail: BROTHERTON MOUNTAIN RD\/ Nature: BREATHING PROBLEMS Incident #: 20250138089 CAD Call Taker: BMEZIME Chief Complaint: (empty)  [12\/16\/25 19:50:44 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/16\/2025 19:50:42 BMEZIME]"
[2025-12-17 01:51:20] [INFO]   -> Set field 'cADLog' = "[APCO INTELLICOMM] Case ID: j7jxv5S3M9 Caller Phone: 9312803253 Caller Name: VERIZON Incident Location: 1957 BENSON RD Incident Location Detail: BROTHERTON MOUNTAIN RD\/ Nature: BREATHING PROBLEMS Incident #: 20250138089 CAD Call Taker: BMEZIME Chief Complaint: (empty)  [12\/16\/25 19:50:44 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/16\/2025 19:50:42 BMEZIME]"
[2025-12-17 01:51:20] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-17 01:51:20] [INFO]   -> Found value: COOKEVILLE
[2025-12-17 01:51:20] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-17 01:51:20] [INFO] Mapping #26: Extracting 'EventDetails.FullAddress' => 'streetName'
[2025-12-17 01:51:20] [INFO]   -> Found value: 1957 BENSON RD
[2025-12-17 01:51:20] [INFO]   -> Set field 'streetName' = "1957 BENSON RD"
[2025-12-17 01:51:20] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-17 01:51:20] [INFO] Built locationCoordinates from lat/lng: 36.21354,-85.39581
[2025-12-17 01:51:20] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2025003084\n2025019567","dispatchRunNumber":"2025003084\n2025019567","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":1957,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.21354,"nERISIncidentLongitude":-85.39581,"alarm":"2025-12-16 19:50:42","dispatched":"2025-12-16 19:51:16","incidentLocationCross":"BROTHERTON MOUNTAIN RD","cADVehicleID":"PCFR","timedispatch":"2025-12-16 19:51:16","policeReportNumber":"20250138090\n20250138089\n20250138091","dispatchNotes":"[APCO INTELLICOMM] Case ID: j7jxv5S3M9 Caller Phone: 9312803253 Caller Name: VERIZON Incident Location: 1957 BENSON RD Incident Location Detail: BROTHERTON MOUNTAIN RD\/ Nature: BREATHING PROBLEMS Incident #: 20250138089 CAD Call Taker: BMEZIME Chief Complaint: (empty)  [12\/16\/25 19:50:44 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/16\/2025 19:50:42 BMEZIME]","cADLog":"[APCO INTELLICOMM] Case ID: j7jxv5S3M9 Caller Phone: 9312803253 Caller Name: VERIZON Incident Location: 1957 BENSON RD Incident Location Detail: BROTHERTON MOUNTAIN RD\/ Nature: BREATHING PROBLEMS Incident #: 20250138089 CAD Call Taker: BMEZIME Chief Complaint: (empty)  [12\/16\/25 19:50:44 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/16\/2025 19:50:42 BMEZIME]","incidentLocationCity":"COOKEVILLE","streetName":"1957 BENSON RD","locationCoordinates":"36.21354,-85.39581"}
[2025-12-17 01:51:20] [INFO] Number of extracted fields: 20
[2025-12-17 01:51:20] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-17 01:51:20] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Assigned Agencies count = 4
[2025-12-17 01:51:20] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2025-12-17 01:51:20] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (position 1)
[2025-12-17 01:51:20] [INFO] Found SAASClient match: ID = 68eeb686225c40db4, Name = Putnam County Fire Department for AgencyCode 'PCFD'
[2025-12-17 01:51:20] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) based on AgencyCode 'PCFD'
[2025-12-17 01:51:20] [INFO] INFO: Ignoring additional AgencyCode values after first match: ["EMS","RESC"]
[2025-12-17 01:51:20] [INFO] Fetched 14 stations from Stations module for agency 'Putnam County Fire Department': ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-17 01:51:20] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-17 01:51:20] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2025-12-17 01:51:20] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2025-12-17 01:51:22] [INFO] Created new Dispatches record with ID: 69420c9910163440a
[2025-12-17 01:51:22] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250138090_20251217_015120.XML
[2025-12-17 01:51:22] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250138090_20251217_015120.XML
[2025-12-17 01:51:28] [INFO] Received file path: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250138090_20251217_015128.XML
[2025-12-17 01:51:28] [INFO] Processing file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250138090_20251217_015128.XML for user: 68f1466aed072ad4a
[2025-12-17 01:51:28] [INFO] File size: 5433 bytes
[2025-12-17 01:51:28] [INFO] Created FTPFiles record with ID: 69420ca0c6e88d922
[2025-12-17 01:51:28] [INFO] About to extract fields from XML. File size: 5433 bytes
[2025-12-17 01:51:28] [INFO] Number of mappings: 26
[2025-12-17 01:51:28] [INFO] Starting XML parsing. Content length: 5433
[2025-12-17 01:51:28] [INFO] XML parsed successfully. Root element: CADExport
[2025-12-17 01:51:28] [INFO] Processing 26 field mappings
[2025-12-17 01:51:28] [INFO] Mapping #1: Extracting 'EventDetails.AgencyCode' => 'cADAgencyIdentifier'
[2025-12-17 01:51:28] [INFO] Found 3 elements for 'AgencyCode', concatenating 3 non-empty values
[2025-12-17 01:51:28] [INFO]   -> Found value: PCFD
EMS
RESC
[2025-12-17 01:51:28] [INFO]   -> Set field 'cADAgencyIdentifier' = "PCFD\nEMS\nRESC"
[2025-12-17 01:51:28] [INFO] Mapping #2: Extracting 'EventDetails.ReportNumber' => ["incidentInternalId","dispatchRunNumber"]
[2025-12-17 01:51:28] [INFO] Found 3 elements for 'ReportNumber', concatenating 2 non-empty values
[2025-12-17 01:51:28] [INFO]   -> Found value: 2025003084
2025019567
[2025-12-17 01:51:28] [INFO]   -> Set field 'incidentInternalId' = "2025003084\n2025019567"
[2025-12-17 01:51:28] [INFO]   -> Set field 'dispatchRunNumber' = "2025003084\n2025019567"
[2025-12-17 01:51:28] [INFO] Mapping #3: Extracting 'EventDetails.NatureDescription' => 'incidentTypeValue1'
[2025-12-17 01:51:28] [INFO]   -> Found value: BREATHING PROBLEMS
[2025-12-17 01:51:28] [INFO]   -> Set field 'incidentTypeValue1' = "BREATHING PROBLEMS"
[2025-12-17 01:51:28] [INFO] Mapping #4: Extracting 'EventDetails.StreetNumber' => 'incidentLocationStreetNumber'
[2025-12-17 01:51:28] [INFO]   -> Found value: 1957
[2025-12-17 01:51:28] [INFO]   -> Set field 'incidentLocationStreetNumber' = 1957
[2025-12-17 01:51:28] [INFO] Mapping #5: Extracting 'EventDetails.State' => 'incidentLocationStateName'
[2025-12-17 01:51:28] [INFO]   -> Found value: TN
[2025-12-17 01:51:28] [INFO]   -> Set field 'incidentLocationStateName' = "TN"
[2025-12-17 01:51:28] [INFO] Mapping #6: Extracting 'EventDetails.ZipCode' => 'nERISIncidentPostalCode'
[2025-12-17 01:51:28] [INFO]   -> Found value: 38506
[2025-12-17 01:51:28] [INFO]   -> Set field 'nERISIncidentPostalCode' = 38506
[2025-12-17 01:51:28] [INFO] Mapping #7: Extracting 'EventDetails.SiteName' => 'businessName'
[2025-12-17 01:51:28] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:28] [INFO] Mapping #8: Extracting 'EventDetails.ApartmentSuite' => 'incidentLocationApt'
[2025-12-17 01:51:28] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:28] [INFO] Mapping #9: Extracting 'EventDetails.EventLatitude' => 'nERISIncidentLatitude'
[2025-12-17 01:51:28] [INFO]   -> Found value: 36.21354
[2025-12-17 01:51:28] [INFO]   -> Set field 'nERISIncidentLatitude' = 36.21354
[2025-12-17 01:51:28] [INFO] Mapping #10: Extracting 'EventDetails.EventLongitude' => 'nERISIncidentLongitude'
[2025-12-17 01:51:28] [INFO]   -> Found value: -85.39581
[2025-12-17 01:51:28] [INFO]   -> Set field 'nERISIncidentLongitude' = -85.39581
[2025-12-17 01:51:28] [INFO] Mapping #11: Extracting 'EventDetails.EventStartTime' => 'alarm'
[2025-12-17 01:51:28] [INFO]   -> Found value: 2025-12-16 19:50:42
[2025-12-17 01:51:28] [INFO]   -> Set field 'alarm' = "2025-12-16 19:50:42"
[2025-12-17 01:51:28] [INFO] Mapping #12: Extracting 'EventDetails.FirstDispatchTime' => 'dispatched'
[2025-12-17 01:51:28] [INFO]   -> Found value: 2025-12-16 19:51:16
[2025-12-17 01:51:28] [INFO]   -> Set field 'dispatched' = "2025-12-16 19:51:16"
[2025-12-17 01:51:28] [INFO] Mapping #13: Extracting 'EventDetails.FirstEnrouteTime' => 'enroute'
[2025-12-17 01:51:28] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:28] [INFO] Mapping #14: Extracting 'EventDetails.FirstOnSceneTime' => 'onScene'
[2025-12-17 01:51:28] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:28] [INFO] Mapping #15: Extracting 'EventDetails.LastUnitClearTime' => ["cleared","inService"]
[2025-12-17 01:51:28] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:28] [INFO] Mapping #16: Extracting 'EventDetails.CrossStreets' => 'incidentLocationCross'
[2025-12-17 01:51:28] [INFO]   -> Found value: BROTHERTON MOUNTAIN RD
[2025-12-17 01:51:28] [INFO]   -> Set field 'incidentLocationCross' = "BROTHERTON MOUNTAIN RD"
[2025-12-17 01:51:28] [INFO] Mapping #17: Extracting 'EventUnits.Unit[0].UnitCode' => 'cADVehicleID'
[2025-12-17 01:51:28] [INFO]   -> Found value: PCFR
[2025-12-17 01:51:28] [INFO]   -> Set field 'cADVehicleID' = "PCFR"
[2025-12-17 01:51:28] [INFO] Mapping #18: Extracting 'EventUnits.Unit[0].DispatchTime' => 'timedispatch'
[2025-12-17 01:51:28] [INFO]   -> Found value: 2025-12-16 19:51:16
[2025-12-17 01:51:28] [INFO]   -> Set field 'timedispatch' = "2025-12-16 19:51:16"
[2025-12-17 01:51:28] [INFO] Mapping #19: Extracting 'EventUnits.Unit[0].EnRouteTime' => 'timeenroutetoscene'
[2025-12-17 01:51:28] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:28] [INFO] Mapping #20: Extracting 'EventUnits.Unit[0].ArriveTime' => 'timeonscene'
[2025-12-17 01:51:28] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:28] [INFO] Mapping #21: Extracting 'EventUnits.Unit[0].ReturnToServiceTime' => 'timeunitclear'
[2025-12-17 01:51:28] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:28] [INFO] Mapping #22: Extracting 'EventUnits.Unit[0].CancelTime' => 'timecanceledenroute'
[2025-12-17 01:51:28] [INFO]   -> No value found (null or empty)
[2025-12-17 01:51:28] [INFO] Mapping #23: Extracting 'EventDetails.CadInciNumber' => 'policeReportNumber'
[2025-12-17 01:51:28] [INFO] Found 3 elements for 'CadInciNumber', concatenating 3 non-empty values
[2025-12-17 01:51:28] [INFO]   -> Found value: 20250138090
20250138089
20250138091
[2025-12-17 01:51:28] [INFO]   -> Set field 'policeReportNumber' = "20250138090\n20250138089\n20250138091"
[2025-12-17 01:51:28] [INFO] Mapping #24: Extracting 'EventDetails.CadNotes' => ["dispatchNotes","cADLog"]
[2025-12-17 01:51:28] [INFO]   -> Found value: [APCO INTELLICOMM] Case ID: j7jxv5S3M9 Caller Phone: 9312803253 Caller Name: VERIZON Incident Locati...
[2025-12-17 01:51:28] [INFO]   -> Set field 'dispatchNotes' = "[APCO INTELLICOMM] Case ID: j7jxv5S3M9 Caller Phone: 9312803253 Caller Name: VERIZON Incident Location: 1957 BENSON RD Incident Location Detail: BROTHERTON MOUNTAIN RD\/ Nature: BREATHING PROBLEMS Incident #: 20250138089 CAD Call Taker: BMEZIME Chief Complaint: (empty)  [12\/16\/25 19:50:44 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/16\/2025 19:50:42 BMEZIME]"
[2025-12-17 01:51:28] [INFO]   -> Set field 'cADLog' = "[APCO INTELLICOMM] Case ID: j7jxv5S3M9 Caller Phone: 9312803253 Caller Name: VERIZON Incident Location: 1957 BENSON RD Incident Location Detail: BROTHERTON MOUNTAIN RD\/ Nature: BREATHING PROBLEMS Incident #: 20250138089 CAD Call Taker: BMEZIME Chief Complaint: (empty)  [12\/16\/25 19:50:44 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/16\/2025 19:50:42 BMEZIME]"
[2025-12-17 01:51:28] [INFO] Mapping #25: Extracting 'EventDetails.CityCodeDescription' => 'incidentLocationCity'
[2025-12-17 01:51:28] [INFO]   -> Found value: COOKEVILLE
[2025-12-17 01:51:28] [INFO]   -> Set field 'incidentLocationCity' = "COOKEVILLE"
[2025-12-17 01:51:28] [INFO] Mapping #26: Extracting 'EventDetails.FullAddress' => 'streetName'
[2025-12-17 01:51:28] [INFO]   -> Found value: 1957 BENSON RD
[2025-12-17 01:51:28] [INFO]   -> Set field 'streetName' = "1957 BENSON RD"
[2025-12-17 01:51:28] [INFO] Finished extracting fields. Total fields extracted: 19
[2025-12-17 01:51:28] [INFO] Built locationCoordinates from lat/lng: 36.21354,-85.39581
[2025-12-17 01:51:28] [INFO] Extracted parsing rules data: {"cADAgencyIdentifier":"PCFD\nEMS\nRESC","incidentInternalId":"2025003084\n2025019567","dispatchRunNumber":"2025003084\n2025019567","incidentTypeValue1":"BREATHING PROBLEMS","incidentLocationStreetNumber":1957,"incidentLocationStateName":"TN","nERISIncidentPostalCode":38506,"nERISIncidentLatitude":36.21354,"nERISIncidentLongitude":-85.39581,"alarm":"2025-12-16 19:50:42","dispatched":"2025-12-16 19:51:16","incidentLocationCross":"BROTHERTON MOUNTAIN RD","cADVehicleID":"PCFR","timedispatch":"2025-12-16 19:51:16","policeReportNumber":"20250138090\n20250138089\n20250138091","dispatchNotes":"[APCO INTELLICOMM] Case ID: j7jxv5S3M9 Caller Phone: 9312803253 Caller Name: VERIZON Incident Location: 1957 BENSON RD Incident Location Detail: BROTHERTON MOUNTAIN RD\/ Nature: BREATHING PROBLEMS Incident #: 20250138089 CAD Call Taker: BMEZIME Chief Complaint: (empty)  [12\/16\/25 19:50:44 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/16\/2025 19:50:42 BMEZIME]","cADLog":"[APCO INTELLICOMM] Case ID: j7jxv5S3M9 Caller Phone: 9312803253 Caller Name: VERIZON Incident Location: 1957 BENSON RD Incident Location Detail: BROTHERTON MOUNTAIN RD\/ Nature: BREATHING PROBLEMS Incident #: 20250138089 CAD Call Taker: BMEZIME Chief Complaint: (empty)  [12\/16\/25 19:50:44 PSUTIL01] Event spawned from BREATHING PROBLEMS.  [12\/16\/2025 19:50:42 BMEZIME]","incidentLocationCity":"COOKEVILLE","streetName":"1957 BENSON RD","locationCoordinates":"36.21354,-85.39581"}
[2025-12-17 01:51:28] [INFO] Number of extracted fields: 20
[2025-12-17 01:51:28] [INFO] MULTI-AGENCY: Extracted cADAgencyIdentifier = 'PCFD
EMS
RESC'
[2025-12-17 01:51:28] [INFO] Multi-agency routing check: CAD Agency ID raw = 'PCFD
EMS
RESC', Parsed IDs = ["PCFD","EMS","RESC"], Assigned Agencies count = 4
[2025-12-17 01:51:28] [INFO] Multi-agency mode detected. Checking AgencyCode values in order: ["PCFD","EMS","RESC"]
[2025-12-17 01:51:28] [INFO] Attempting SAASClient lookup for AgencyCode 'PCFD' (position 1)
[2025-12-17 01:51:28] [INFO] Found SAASClient match: ID = 68eeb686225c40db4, Name = Putnam County Fire Department for AgencyCode 'PCFD'
[2025-12-17 01:51:28] [INFO] SUCCESS: Routed to agency 'Putnam County Fire Department' (ID: 68eeb686225c40db4) based on AgencyCode 'PCFD'
[2025-12-17 01:51:28] [INFO] INFO: Ignoring additional AgencyCode values after first match: ["EMS","RESC"]
[2025-12-17 01:51: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"]
[2025-12-17 01:51:28] [INFO] Final routing: saasclientId = 68eeb686225c40db4, dispatchStationsIds = ["68ffbebde83509b7c","68ffd433577d1ee1e","68ffbe83793eb4521","68eef9302d19f85fc","68ffbe45d3567d442","68ffbe0e8c5fa650f","68eef77e6a5b1e9d6","68ffbde067a9b162c","68ffbda5d8ebd5468","68ffbd6b1db8d8daa","68ffbd4220b20a872","68ffbcfb8b8911e4e","68eef6ffc8105af4e","68eeca5d553dc8756"]
[2025-12-17 01:51:28] [INFO] Multi-agency routing matched mailbox default agency: 68eeb686225c40db4 (no update needed)
[2025-12-17 01:51:29] [INFO] Found existing IncidentTypeMapping with ID: 693e326c3c0e41cb3
[2025-12-17 01:51:29] [INFO] Found existing Dispatch with cADNumber '2025003084
2025019567', ID: 69420c9910163440a - will update instead of create
[2025-12-17 01:51:29] [INFO] Updated existing Dispatches record with ID: 69420c9910163440a
[2025-12-17 01:51:29] [INFO] Successfully deleted file: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250138090_20251217_015128.XML
[2025-12-17 01:51:29] [INFO] File processed successfully: /home/dodom2/public_html/ftp.stationboss.net/dispatch/68f1466aed072ad4a/PCFD_20250138090_20251217_015128.XML
